Testing out the PPD42 Air Quality Sensor, with an MSP430 Launchpad and graphing the data with GNUplot.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

15935 lines
378 KiB

5 years ago
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <link rel="icon" type="image/vnd.microsoft.icon" href="http://www.gstatic.com/codesite/ph/images/phosting.ico">
  5. <script type="text/javascript">
  6. (function(){function a(e){this.t={};this.tick=function(f,c,d){c=d!=undefined?d:(new Date).getTime();this.t[f]=c};this.tick("start",null,e)}var b=new a;window.jstiming={Timer:a,load:b};try{var g=null;if(window.chrome&&window.chrome.csi)g=Math.floor(window.chrome.csi().pageT);if(g==null)if(window.gtbExternal)g=window.gtbExternal.pageT();if(g==null)if(window.external)g=window.external.pageT;if(g)window.jstiming.pt=g}catch(h){};})();
  7. var codesite_token = "c6974bcd72eb95455827185f7306e1fa";
  8. var logged_in_user_email = "Dung.Dang@gmail.com";
  9. var relative_base_url = "";
  10. </script>
  11. <title>PGraphics2D.java -
  12. processing -
  13. Project Hosting on Google Code</title>
  14. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
  15. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
  16. <meta name="ROBOTS" content="NOARCHIVE">
  17. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/ph_core.css">
  18. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/ph_detail.css" >
  19. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/d_sb_20080522.css" >
  20. <!--[if IE]>
  21. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/d_ie.css" >
  22. <![endif]-->
  23. <style type="text/css">
  24. .menuIcon.off { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -42px }
  25. .menuIcon.on { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -28px }
  26. .menuIcon.down { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 0; }
  27. tr.inline_comment {
  28. background: #fff;
  29. vertical-align: top;
  30. }
  31. div.draft, div.published {
  32. padding: .3em;
  33. border: 1px solid #999;
  34. margin-bottom: .1em;
  35. font-family: arial, sans-serif;
  36. max-width: 60em;
  37. }
  38. div.draft {
  39. background: #ffa;
  40. }
  41. div.published {
  42. background: #e5ecf9;
  43. }
  44. div.published .body, div.draft .body {
  45. padding: .5em .1em .1em .1em;
  46. max-width: 60em;
  47. white-space: pre-wrap;
  48. white-space: -moz-pre-wrap;
  49. white-space: -pre-wrap;
  50. white-space: -o-pre-wrap;
  51. word-wrap: break-word;
  52. font-size: 1em;
  53. }
  54. div.draft .actions {
  55. margin-left: 1em;
  56. font-size: 90%;
  57. }
  58. div.draft form {
  59. padding: .5em .5em .5em 0;
  60. }
  61. div.draft textarea, div.published textarea {
  62. width: 95%;
  63. height: 10em;
  64. font-family: arial, sans-serif;
  65. margin-bottom: .5em;
  66. }
  67. .nocursor, .nocursor td, .cursor_hidden, .cursor_hidden td {
  68. background-color: white;
  69. height: 2px;
  70. }
  71. .cursor, .cursor td {
  72. background-color: darkblue;
  73. height: 2px;
  74. display: '';
  75. }
  76. .list {
  77. border: 1px solid white;
  78. margin-bottom:0;
  79. }
  80. </style>
  81. </head>
  82. <body class="t4">
  83. <script type="text/javascript">
  84. var _gaq = _gaq || [];
  85. _gaq.push(
  86. ['siteTracker._setAccount', 'UA-18071-1'],
  87. ['siteTracker._trackPageview']);
  88. (function() {
  89. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  90. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  91. (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
  92. })();
  93. </script>
  94. <div class="headbg">
  95. <div id="gaia">
  96. <span>
  97. <b>Dung.Dang@gmail.com</b>
  98. | <a href="/u/@VhVRRVJYBRNNWwl6/" id="projects-dropdown" onclick="return false;"
  99. ><u>My favorites</u> <small>&#9660;</small></a>
  100. | <a href="/u/@VhVRRVJYBRNNWwl6/" onclick="_CS_click('/gb/ph/profile');"
  101. title="Profile, Updates, and Settings"
  102. ><u>Profile</u></a>
  103. | <a href="https://www.google.com/accounts/Logout?continue=http%3A%2F%2Fcode.google.com%2Fp%2Fprocessing%2Fsource%2Fbrowse%2Ftrunk%2Fprocessing%2Fcore%2Fsrc%2Fprocessing%2Fcore%2FPGraphics2D.java"
  104. onclick="_CS_click('/gb/ph/signout');"
  105. ><u>Sign out</u></a>
  106. </span>
  107. </div>
  108. <div class="gbh" style="left: 0pt;"></div>
  109. <div class="gbh" style="right: 0pt;"></div>
  110. <div style="height: 1px"></div>
  111. <!--[if lte IE 7]>
  112. <div style="text-align:center;">
  113. Your version of Internet Explorer is not supported. Try a browser that
  114. contributes to open source, such as <a href="http://www.firefox.com">Firefox</a>,
  115. <a href="http://www.google.com/chrome">Google Chrome</a>, or
  116. <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a>.
  117. </div>
  118. <![endif]-->
  119. <table style="padding:0px; margin: 0px 0px 10px 0px; width:100%" cellpadding="0" cellspacing="0">
  120. <tr style="height: 58px;">
  121. <td id="plogo">
  122. <a href="/p/processing/">
  123. <img src="http://www.gstatic.com/codesite/ph/images/defaultlogo.png" alt="Logo">
  124. </a>
  125. </td>
  126. <td style="padding-left: 0.5em">
  127. <div id="pname">
  128. <a href="/p/processing/">processing</a>
  129. </div>
  130. <div id="psum">
  131. <a id="project_summary_link" href="/p/processing/" >An open source programming language and environment for images, animation, and interactions.</a>
  132. </div>
  133. </td>
  134. <td style="white-space:nowrap;text-align:right; vertical-align:bottom;">
  135. <form action="/hosting/search">
  136. <input size="30" name="q" value="" type="text">
  137. <input type="submit" name="projectsearch" value="Search projects" >
  138. </form>
  139. </tr>
  140. </table>
  141. </div>
  142. <div id="mt" class="gtb">
  143. <a href="/p/processing/" class="tab ">Project&nbsp;Home</a>
  144. <a href="/p/processing/downloads/list" class="tab ">Downloads</a>
  145. <a href="/p/processing/w/list" class="tab ">Wiki</a>
  146. <a href="/p/processing/issues/list"
  147. class="tab ">Issues</a>
  148. <a href="/p/processing/source/checkout"
  149. class="tab active">Source</a>
  150. <div class=gtbc></div>
  151. </div>
  152. <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="st">
  153. <tr>
  154. <td class="subt">
  155. <div class="st2">
  156. <div class="isf">
  157. <span class="inst1"><a href="/p/processing/source/checkout">Checkout</a></span> &nbsp;
  158. <span class="inst2"><a href="/p/processing/source/browse/trunk/processing">Browse</a></span> &nbsp;
  159. <span class="inst3"><a href="/p/processing/source/list">Changes</a></span> &nbsp;
  160. <form action="http://www.google.com/codesearch" method="get" style="display:inline"
  161. onsubmit="document.getElementById('codesearchq').value = document.getElementById('origq').value + ' package:http://processing\\.googlecode\\.com'">
  162. <input type="hidden" name="q" id="codesearchq" value="">
  163. <input type="text" maxlength="2048" size="38" id="origq" name="origq" value="" title="Google Code Search" style="font-size:92%">&nbsp;<input type="submit" value="Search Trunk" name="btnG" style="font-size:92%">
  164. </form>
  165. </div>
  166. </div>
  167. </td>
  168. <td align="right" valign="top" class="bevel-right"></td>
  169. </tr>
  170. </table>
  171. <script type="text/javascript">
  172. var cancelBubble = false;
  173. function _go(url) { document.location = url; }
  174. </script>
  175. <div id="maincol"
  176. >
  177. <!-- IE -->
  178. <div class="expand">
  179. <div id="colcontrol">
  180. <style type="text/css">
  181. #file_flipper { white-space: nowrap; padding-right: 2em; }
  182. #file_flipper.hidden { display: none; }
  183. #file_flipper .pagelink { color: #0000CC; text-decoration: underline; }
  184. #file_flipper #visiblefiles { padding-left: 0.5em; padding-right: 0.5em; }
  185. </style>
  186. <table id="nav_and_rev" class="list"
  187. cellpadding="0" cellspacing="0" width="100%">
  188. <tr>
  189. <td nowrap="nowrap" class="src_crumbs src_nav" width="33%">
  190. <strong class="src_nav">Source path:&nbsp;</strong>
  191. <span id="crumb_root">
  192. <a href="/p/processing/source/browse/">svn</a>/&nbsp;</span>
  193. <span id="crumb_links" class="ifClosed"><a href="/p/processing/source/browse/trunk/">trunk</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/">processing</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/">core</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/src/">src</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/src/processing/">processing</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/">core</a><span class="sp">/&nbsp;</span>PGraphics2D.java</span>
  194. </td>
  195. <td nowrap="nowrap" width="33%" align="center">
  196. <a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics2D.java?edit=1"
  197. ><img src="http://www.gstatic.com/codesite/ph/images/pencil-y14.png"
  198. class="edit_icon">Edit file</a>
  199. </td>
  200. <td nowrap="nowrap" width="33%" align="right">
  201. <table cellpadding="0" cellspacing="0" style="font-size: 100%"><tr>
  202. <td class="flipper">
  203. <ul class="leftside">
  204. <li><a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics2D.java?r=5653" title="Previous">&lsaquo;r5653</a></li>
  205. </ul>
  206. </td>
  207. <td class="flipper"><b>r7768</b></td>
  208. </tr></table>
  209. </td>
  210. </tr>
  211. </table>
  212. <div class="fc">
  213. <style type="text/css">
  214. .undermouse span {
  215. background-image: url(http://www.gstatic.com/codesite/ph/images/comments.gif); }
  216. </style>
  217. <table class="opened" id="review_comment_area"
  218. ><tr>
  219. <td id="nums">
  220. <pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
  221. <pre><table width="100%" id="nums_table_0"><tr id="gr_svn7768_1"
  222. ><td id="1"><a href="#1">1</a></td></tr
  223. ><tr id="gr_svn7768_2"
  224. ><td id="2"><a href="#2">2</a></td></tr
  225. ><tr id="gr_svn7768_3"
  226. ><td id="3"><a href="#3">3</a></td></tr
  227. ><tr id="gr_svn7768_4"
  228. ><td id="4"><a href="#4">4</a></td></tr
  229. ><tr id="gr_svn7768_5"
  230. ><td id="5"><a href="#5">5</a></td></tr
  231. ><tr id="gr_svn7768_6"
  232. ><td id="6"><a href="#6">6</a></td></tr
  233. ><tr id="gr_svn7768_7"
  234. ><td id="7"><a href="#7">7</a></td></tr
  235. ><tr id="gr_svn7768_8"
  236. ><td id="8"><a href="#8">8</a></td></tr
  237. ><tr id="gr_svn7768_9"
  238. ><td id="9"><a href="#9">9</a></td></tr
  239. ><tr id="gr_svn7768_10"
  240. ><td id="10"><a href="#10">10</a></td></tr
  241. ><tr id="gr_svn7768_11"
  242. ><td id="11"><a href="#11">11</a></td></tr
  243. ><tr id="gr_svn7768_12"
  244. ><td id="12"><a href="#12">12</a></td></tr
  245. ><tr id="gr_svn7768_13"
  246. ><td id="13"><a href="#13">13</a></td></tr
  247. ><tr id="gr_svn7768_14"
  248. ><td id="14"><a href="#14">14</a></td></tr
  249. ><tr id="gr_svn7768_15"
  250. ><td id="15"><a href="#15">15</a></td></tr
  251. ><tr id="gr_svn7768_16"
  252. ><td id="16"><a href="#16">16</a></td></tr
  253. ><tr id="gr_svn7768_17"
  254. ><td id="17"><a href="#17">17</a></td></tr
  255. ><tr id="gr_svn7768_18"
  256. ><td id="18"><a href="#18">18</a></td></tr
  257. ><tr id="gr_svn7768_19"
  258. ><td id="19"><a href="#19">19</a></td></tr
  259. ><tr id="gr_svn7768_20"
  260. ><td id="20"><a href="#20">20</a></td></tr
  261. ><tr id="gr_svn7768_21"
  262. ><td id="21"><a href="#21">21</a></td></tr
  263. ><tr id="gr_svn7768_22"
  264. ><td id="22"><a href="#22">22</a></td></tr
  265. ><tr id="gr_svn7768_23"
  266. ><td id="23"><a href="#23">23</a></td></tr
  267. ><tr id="gr_svn7768_24"
  268. ><td id="24"><a href="#24">24</a></td></tr
  269. ><tr id="gr_svn7768_25"
  270. ><td id="25"><a href="#25">25</a></td></tr
  271. ><tr id="gr_svn7768_26"
  272. ><td id="26"><a href="#26">26</a></td></tr
  273. ><tr id="gr_svn7768_27"
  274. ><td id="27"><a href="#27">27</a></td></tr
  275. ><tr id="gr_svn7768_28"
  276. ><td id="28"><a href="#28">28</a></td></tr
  277. ><tr id="gr_svn7768_29"
  278. ><td id="29"><a href="#29">29</a></td></tr
  279. ><tr id="gr_svn7768_30"
  280. ><td id="30"><a href="#30">30</a></td></tr
  281. ><tr id="gr_svn7768_31"
  282. ><td id="31"><a href="#31">31</a></td></tr
  283. ><tr id="gr_svn7768_32"
  284. ><td id="32"><a href="#32">32</a></td></tr
  285. ><tr id="gr_svn7768_33"
  286. ><td id="33"><a href="#33">33</a></td></tr
  287. ><tr id="gr_svn7768_34"
  288. ><td id="34"><a href="#34">34</a></td></tr
  289. ><tr id="gr_svn7768_35"
  290. ><td id="35"><a href="#35">35</a></td></tr
  291. ><tr id="gr_svn7768_36"
  292. ><td id="36"><a href="#36">36</a></td></tr
  293. ><tr id="gr_svn7768_37"
  294. ><td id="37"><a href="#37">37</a></td></tr
  295. ><tr id="gr_svn7768_38"
  296. ><td id="38"><a href="#38">38</a></td></tr
  297. ><tr id="gr_svn7768_39"
  298. ><td id="39"><a href="#39">39</a></td></tr
  299. ><tr id="gr_svn7768_40"
  300. ><td id="40"><a href="#40">40</a></td></tr
  301. ><tr id="gr_svn7768_41"
  302. ><td id="41"><a href="#41">41</a></td></tr
  303. ><tr id="gr_svn7768_42"
  304. ><td id="42"><a href="#42">42</a></td></tr
  305. ><tr id="gr_svn7768_43"
  306. ><td id="43"><a href="#43">43</a></td></tr
  307. ><tr id="gr_svn7768_44"
  308. ><td id="44"><a href="#44">44</a></td></tr
  309. ><tr id="gr_svn7768_45"
  310. ><td id="45"><a href="#45">45</a></td></tr
  311. ><tr id="gr_svn7768_46"
  312. ><td id="46"><a href="#46">46</a></td></tr
  313. ><tr id="gr_svn7768_47"
  314. ><td id="47"><a href="#47">47</a></td></tr
  315. ><tr id="gr_svn7768_48"
  316. ><td id="48"><a href="#48">48</a></td></tr
  317. ><tr id="gr_svn7768_49"
  318. ><td id="49"><a href="#49">49</a></td></tr
  319. ><tr id="gr_svn7768_50"
  320. ><td id="50"><a href="#50">50</a></td></tr
  321. ><tr id="gr_svn7768_51"
  322. ><td id="51"><a href="#51">51</a></td></tr
  323. ><tr id="gr_svn7768_52"
  324. ><td id="52"><a href="#52">52</a></td></tr
  325. ><tr id="gr_svn7768_53"
  326. ><td id="53"><a href="#53">53</a></td></tr
  327. ><tr id="gr_svn7768_54"
  328. ><td id="54"><a href="#54">54</a></td></tr
  329. ><tr id="gr_svn7768_55"
  330. ><td id="55"><a href="#55">55</a></td></tr
  331. ><tr id="gr_svn7768_56"
  332. ><td id="56"><a href="#56">56</a></td></tr
  333. ><tr id="gr_svn7768_57"
  334. ><td id="57"><a href="#57">57</a></td></tr
  335. ><tr id="gr_svn7768_58"
  336. ><td id="58"><a href="#58">58</a></td></tr
  337. ><tr id="gr_svn7768_59"
  338. ><td id="59"><a href="#59">59</a></td></tr
  339. ><tr id="gr_svn7768_60"
  340. ><td id="60"><a href="#60">60</a></td></tr
  341. ><tr id="gr_svn7768_61"
  342. ><td id="61"><a href="#61">61</a></td></tr
  343. ><tr id="gr_svn7768_62"
  344. ><td id="62"><a href="#62">62</a></td></tr
  345. ><tr id="gr_svn7768_63"
  346. ><td id="63"><a href="#63">63</a></td></tr
  347. ><tr id="gr_svn7768_64"
  348. ><td id="64"><a href="#64">64</a></td></tr
  349. ><tr id="gr_svn7768_65"
  350. ><td id="65"><a href="#65">65</a></td></tr
  351. ><tr id="gr_svn7768_66"
  352. ><td id="66"><a href="#66">66</a></td></tr
  353. ><tr id="gr_svn7768_67"
  354. ><td id="67"><a href="#67">67</a></td></tr
  355. ><tr id="gr_svn7768_68"
  356. ><td id="68"><a href="#68">68</a></td></tr
  357. ><tr id="gr_svn7768_69"
  358. ><td id="69"><a href="#69">69</a></td></tr
  359. ><tr id="gr_svn7768_70"
  360. ><td id="70"><a href="#70">70</a></td></tr
  361. ><tr id="gr_svn7768_71"
  362. ><td id="71"><a href="#71">71</a></td></tr
  363. ><tr id="gr_svn7768_72"
  364. ><td id="72"><a href="#72">72</a></td></tr
  365. ><tr id="gr_svn7768_73"
  366. ><td id="73"><a href="#73">73</a></td></tr
  367. ><tr id="gr_svn7768_74"
  368. ><td id="74"><a href="#74">74</a></td></tr
  369. ><tr id="gr_svn7768_75"
  370. ><td id="75"><a href="#75">75</a></td></tr
  371. ><tr id="gr_svn7768_76"
  372. ><td id="76"><a href="#76">76</a></td></tr
  373. ><tr id="gr_svn7768_77"
  374. ><td id="77"><a href="#77">77</a></td></tr
  375. ><tr id="gr_svn7768_78"
  376. ><td id="78"><a href="#78">78</a></td></tr
  377. ><tr id="gr_svn7768_79"
  378. ><td id="79"><a href="#79">79</a></td></tr
  379. ><tr id="gr_svn7768_80"
  380. ><td id="80"><a href="#80">80</a></td></tr
  381. ><tr id="gr_svn7768_81"
  382. ><td id="81"><a href="#81">81</a></td></tr
  383. ><tr id="gr_svn7768_82"
  384. ><td id="82"><a href="#82">82</a></td></tr
  385. ><tr id="gr_svn7768_83"
  386. ><td id="83"><a href="#83">83</a></td></tr
  387. ><tr id="gr_svn7768_84"
  388. ><td id="84"><a href="#84">84</a></td></tr
  389. ><tr id="gr_svn7768_85"
  390. ><td id="85"><a href="#85">85</a></td></tr
  391. ><tr id="gr_svn7768_86"
  392. ><td id="86"><a href="#86">86</a></td></tr
  393. ><tr id="gr_svn7768_87"
  394. ><td id="87"><a href="#87">87</a></td></tr
  395. ><tr id="gr_svn7768_88"
  396. ><td id="88"><a href="#88">88</a></td></tr
  397. ><tr id="gr_svn7768_89"
  398. ><td id="89"><a href="#89">89</a></td></tr
  399. ><tr id="gr_svn7768_90"
  400. ><td id="90"><a href="#90">90</a></td></tr
  401. ><tr id="gr_svn7768_91"
  402. ><td id="91"><a href="#91">91</a></td></tr
  403. ><tr id="gr_svn7768_92"
  404. ><td id="92"><a href="#92">92</a></td></tr
  405. ><tr id="gr_svn7768_93"
  406. ><td id="93"><a href="#93">93</a></td></tr
  407. ><tr id="gr_svn7768_94"
  408. ><td id="94"><a href="#94">94</a></td></tr
  409. ><tr id="gr_svn7768_95"
  410. ><td id="95"><a href="#95">95</a></td></tr
  411. ><tr id="gr_svn7768_96"
  412. ><td id="96"><a href="#96">96</a></td></tr
  413. ><tr id="gr_svn7768_97"
  414. ><td id="97"><a href="#97">97</a></td></tr
  415. ><tr id="gr_svn7768_98"
  416. ><td id="98"><a href="#98">98</a></td></tr
  417. ><tr id="gr_svn7768_99"
  418. ><td id="99"><a href="#99">99</a></td></tr
  419. ><tr id="gr_svn7768_100"
  420. ><td id="100"><a href="#100">100</a></td></tr
  421. ><tr id="gr_svn7768_101"
  422. ><td id="101"><a href="#101">101</a></td></tr
  423. ><tr id="gr_svn7768_102"
  424. ><td id="102"><a href="#102">102</a></td></tr
  425. ><tr id="gr_svn7768_103"
  426. ><td id="103"><a href="#103">103</a></td></tr
  427. ><tr id="gr_svn7768_104"
  428. ><td id="104"><a href="#104">104</a></td></tr
  429. ><tr id="gr_svn7768_105"
  430. ><td id="105"><a href="#105">105</a></td></tr
  431. ><tr id="gr_svn7768_106"
  432. ><td id="106"><a href="#106">106</a></td></tr
  433. ><tr id="gr_svn7768_107"
  434. ><td id="107"><a href="#107">107</a></td></tr
  435. ><tr id="gr_svn7768_108"
  436. ><td id="108"><a href="#108">108</a></td></tr
  437. ><tr id="gr_svn7768_109"
  438. ><td id="109"><a href="#109">109</a></td></tr
  439. ><tr id="gr_svn7768_110"
  440. ><td id="110"><a href="#110">110</a></td></tr
  441. ><tr id="gr_svn7768_111"
  442. ><td id="111"><a href="#111">111</a></td></tr
  443. ><tr id="gr_svn7768_112"
  444. ><td id="112"><a href="#112">112</a></td></tr
  445. ><tr id="gr_svn7768_113"
  446. ><td id="113"><a href="#113">113</a></td></tr
  447. ><tr id="gr_svn7768_114"
  448. ><td id="114"><a href="#114">114</a></td></tr
  449. ><tr id="gr_svn7768_115"
  450. ><td id="115"><a href="#115">115</a></td></tr
  451. ><tr id="gr_svn7768_116"
  452. ><td id="116"><a href="#116">116</a></td></tr
  453. ><tr id="gr_svn7768_117"
  454. ><td id="117"><a href="#117">117</a></td></tr
  455. ><tr id="gr_svn7768_118"
  456. ><td id="118"><a href="#118">118</a></td></tr
  457. ><tr id="gr_svn7768_119"
  458. ><td id="119"><a href="#119">119</a></td></tr
  459. ><tr id="gr_svn7768_120"
  460. ><td id="120"><a href="#120">120</a></td></tr
  461. ><tr id="gr_svn7768_121"
  462. ><td id="121"><a href="#121">121</a></td></tr
  463. ><tr id="gr_svn7768_122"
  464. ><td id="122"><a href="#122">122</a></td></tr
  465. ><tr id="gr_svn7768_123"
  466. ><td id="123"><a href="#123">123</a></td></tr
  467. ><tr id="gr_svn7768_124"
  468. ><td id="124"><a href="#124">124</a></td></tr
  469. ><tr id="gr_svn7768_125"
  470. ><td id="125"><a href="#125">125</a></td></tr
  471. ><tr id="gr_svn7768_126"
  472. ><td id="126"><a href="#126">126</a></td></tr
  473. ><tr id="gr_svn7768_127"
  474. ><td id="127"><a href="#127">127</a></td></tr
  475. ><tr id="gr_svn7768_128"
  476. ><td id="128"><a href="#128">128</a></td></tr
  477. ><tr id="gr_svn7768_129"
  478. ><td id="129"><a href="#129">129</a></td></tr
  479. ><tr id="gr_svn7768_130"
  480. ><td id="130"><a href="#130">130</a></td></tr
  481. ><tr id="gr_svn7768_131"
  482. ><td id="131"><a href="#131">131</a></td></tr
  483. ><tr id="gr_svn7768_132"
  484. ><td id="132"><a href="#132">132</a></td></tr
  485. ><tr id="gr_svn7768_133"
  486. ><td id="133"><a href="#133">133</a></td></tr
  487. ><tr id="gr_svn7768_134"
  488. ><td id="134"><a href="#134">134</a></td></tr
  489. ><tr id="gr_svn7768_135"
  490. ><td id="135"><a href="#135">135</a></td></tr
  491. ><tr id="gr_svn7768_136"
  492. ><td id="136"><a href="#136">136</a></td></tr
  493. ><tr id="gr_svn7768_137"
  494. ><td id="137"><a href="#137">137</a></td></tr
  495. ><tr id="gr_svn7768_138"
  496. ><td id="138"><a href="#138">138</a></td></tr
  497. ><tr id="gr_svn7768_139"
  498. ><td id="139"><a href="#139">139</a></td></tr
  499. ><tr id="gr_svn7768_140"
  500. ><td id="140"><a href="#140">140</a></td></tr
  501. ><tr id="gr_svn7768_141"
  502. ><td id="141"><a href="#141">141</a></td></tr
  503. ><tr id="gr_svn7768_142"
  504. ><td id="142"><a href="#142">142</a></td></tr
  505. ><tr id="gr_svn7768_143"
  506. ><td id="143"><a href="#143">143</a></td></tr
  507. ><tr id="gr_svn7768_144"
  508. ><td id="144"><a href="#144">144</a></td></tr
  509. ><tr id="gr_svn7768_145"
  510. ><td id="145"><a href="#145">145</a></td></tr
  511. ><tr id="gr_svn7768_146"
  512. ><td id="146"><a href="#146">146</a></td></tr
  513. ><tr id="gr_svn7768_147"
  514. ><td id="147"><a href="#147">147</a></td></tr
  515. ><tr id="gr_svn7768_148"
  516. ><td id="148"><a href="#148">148</a></td></tr
  517. ><tr id="gr_svn7768_149"
  518. ><td id="149"><a href="#149">149</a></td></tr
  519. ><tr id="gr_svn7768_150"
  520. ><td id="150"><a href="#150">150</a></td></tr
  521. ><tr id="gr_svn7768_151"
  522. ><td id="151"><a href="#151">151</a></td></tr
  523. ><tr id="gr_svn7768_152"
  524. ><td id="152"><a href="#152">152</a></td></tr
  525. ><tr id="gr_svn7768_153"
  526. ><td id="153"><a href="#153">153</a></td></tr
  527. ><tr id="gr_svn7768_154"
  528. ><td id="154"><a href="#154">154</a></td></tr
  529. ><tr id="gr_svn7768_155"
  530. ><td id="155"><a href="#155">155</a></td></tr
  531. ><tr id="gr_svn7768_156"
  532. ><td id="156"><a href="#156">156</a></td></tr
  533. ><tr id="gr_svn7768_157"
  534. ><td id="157"><a href="#157">157</a></td></tr
  535. ><tr id="gr_svn7768_158"
  536. ><td id="158"><a href="#158">158</a></td></tr
  537. ><tr id="gr_svn7768_159"
  538. ><td id="159"><a href="#159">159</a></td></tr
  539. ><tr id="gr_svn7768_160"
  540. ><td id="160"><a href="#160">160</a></td></tr
  541. ><tr id="gr_svn7768_161"
  542. ><td id="161"><a href="#161">161</a></td></tr
  543. ><tr id="gr_svn7768_162"
  544. ><td id="162"><a href="#162">162</a></td></tr
  545. ><tr id="gr_svn7768_163"
  546. ><td id="163"><a href="#163">163</a></td></tr
  547. ><tr id="gr_svn7768_164"
  548. ><td id="164"><a href="#164">164</a></td></tr
  549. ><tr id="gr_svn7768_165"
  550. ><td id="165"><a href="#165">165</a></td></tr
  551. ><tr id="gr_svn7768_166"
  552. ><td id="166"><a href="#166">166</a></td></tr
  553. ><tr id="gr_svn7768_167"
  554. ><td id="167"><a href="#167">167</a></td></tr
  555. ><tr id="gr_svn7768_168"
  556. ><td id="168"><a href="#168">168</a></td></tr
  557. ><tr id="gr_svn7768_169"
  558. ><td id="169"><a href="#169">169</a></td></tr
  559. ><tr id="gr_svn7768_170"
  560. ><td id="170"><a href="#170">170</a></td></tr
  561. ><tr id="gr_svn7768_171"
  562. ><td id="171"><a href="#171">171</a></td></tr
  563. ><tr id="gr_svn7768_172"
  564. ><td id="172"><a href="#172">172</a></td></tr
  565. ><tr id="gr_svn7768_173"
  566. ><td id="173"><a href="#173">173</a></td></tr
  567. ><tr id="gr_svn7768_174"
  568. ><td id="174"><a href="#174">174</a></td></tr
  569. ><tr id="gr_svn7768_175"
  570. ><td id="175"><a href="#175">175</a></td></tr
  571. ><tr id="gr_svn7768_176"
  572. ><td id="176"><a href="#176">176</a></td></tr
  573. ><tr id="gr_svn7768_177"
  574. ><td id="177"><a href="#177">177</a></td></tr
  575. ><tr id="gr_svn7768_178"
  576. ><td id="178"><a href="#178">178</a></td></tr
  577. ><tr id="gr_svn7768_179"
  578. ><td id="179"><a href="#179">179</a></td></tr
  579. ><tr id="gr_svn7768_180"
  580. ><td id="180"><a href="#180">180</a></td></tr
  581. ><tr id="gr_svn7768_181"
  582. ><td id="181"><a href="#181">181</a></td></tr
  583. ><tr id="gr_svn7768_182"
  584. ><td id="182"><a href="#182">182</a></td></tr
  585. ><tr id="gr_svn7768_183"
  586. ><td id="183"><a href="#183">183</a></td></tr
  587. ><tr id="gr_svn7768_184"
  588. ><td id="184"><a href="#184">184</a></td></tr
  589. ><tr id="gr_svn7768_185"
  590. ><td id="185"><a href="#185">185</a></td></tr
  591. ><tr id="gr_svn7768_186"
  592. ><td id="186"><a href="#186">186</a></td></tr
  593. ><tr id="gr_svn7768_187"
  594. ><td id="187"><a href="#187">187</a></td></tr
  595. ><tr id="gr_svn7768_188"
  596. ><td id="188"><a href="#188">188</a></td></tr
  597. ><tr id="gr_svn7768_189"
  598. ><td id="189"><a href="#189">189</a></td></tr
  599. ><tr id="gr_svn7768_190"
  600. ><td id="190"><a href="#190">190</a></td></tr
  601. ><tr id="gr_svn7768_191"
  602. ><td id="191"><a href="#191">191</a></td></tr
  603. ><tr id="gr_svn7768_192"
  604. ><td id="192"><a href="#192">192</a></td></tr
  605. ><tr id="gr_svn7768_193"
  606. ><td id="193"><a href="#193">193</a></td></tr
  607. ><tr id="gr_svn7768_194"
  608. ><td id="194"><a href="#194">194</a></td></tr
  609. ><tr id="gr_svn7768_195"
  610. ><td id="195"><a href="#195">195</a></td></tr
  611. ><tr id="gr_svn7768_196"
  612. ><td id="196"><a href="#196">196</a></td></tr
  613. ><tr id="gr_svn7768_197"
  614. ><td id="197"><a href="#197">197</a></td></tr
  615. ><tr id="gr_svn7768_198"
  616. ><td id="198"><a href="#198">198</a></td></tr
  617. ><tr id="gr_svn7768_199"
  618. ><td id="199"><a href="#199">199</a></td></tr
  619. ><tr id="gr_svn7768_200"
  620. ><td id="200"><a href="#200">200</a></td></tr
  621. ><tr id="gr_svn7768_201"
  622. ><td id="201"><a href="#201">201</a></td></tr
  623. ><tr id="gr_svn7768_202"
  624. ><td id="202"><a href="#202">202</a></td></tr
  625. ><tr id="gr_svn7768_203"
  626. ><td id="203"><a href="#203">203</a></td></tr
  627. ><tr id="gr_svn7768_204"
  628. ><td id="204"><a href="#204">204</a></td></tr
  629. ><tr id="gr_svn7768_205"
  630. ><td id="205"><a href="#205">205</a></td></tr
  631. ><tr id="gr_svn7768_206"
  632. ><td id="206"><a href="#206">206</a></td></tr
  633. ><tr id="gr_svn7768_207"
  634. ><td id="207"><a href="#207">207</a></td></tr
  635. ><tr id="gr_svn7768_208"
  636. ><td id="208"><a href="#208">208</a></td></tr
  637. ><tr id="gr_svn7768_209"
  638. ><td id="209"><a href="#209">209</a></td></tr
  639. ><tr id="gr_svn7768_210"
  640. ><td id="210"><a href="#210">210</a></td></tr
  641. ><tr id="gr_svn7768_211"
  642. ><td id="211"><a href="#211">211</a></td></tr
  643. ><tr id="gr_svn7768_212"
  644. ><td id="212"><a href="#212">212</a></td></tr
  645. ><tr id="gr_svn7768_213"
  646. ><td id="213"><a href="#213">213</a></td></tr
  647. ><tr id="gr_svn7768_214"
  648. ><td id="214"><a href="#214">214</a></td></tr
  649. ><tr id="gr_svn7768_215"
  650. ><td id="215"><a href="#215">215</a></td></tr
  651. ><tr id="gr_svn7768_216"
  652. ><td id="216"><a href="#216">216</a></td></tr
  653. ><tr id="gr_svn7768_217"
  654. ><td id="217"><a href="#217">217</a></td></tr
  655. ><tr id="gr_svn7768_218"
  656. ><td id="218"><a href="#218">218</a></td></tr
  657. ><tr id="gr_svn7768_219"
  658. ><td id="219"><a href="#219">219</a></td></tr
  659. ><tr id="gr_svn7768_220"
  660. ><td id="220"><a href="#220">220</a></td></tr
  661. ><tr id="gr_svn7768_221"
  662. ><td id="221"><a href="#221">221</a></td></tr
  663. ><tr id="gr_svn7768_222"
  664. ><td id="222"><a href="#222">222</a></td></tr
  665. ><tr id="gr_svn7768_223"
  666. ><td id="223"><a href="#223">223</a></td></tr
  667. ><tr id="gr_svn7768_224"
  668. ><td id="224"><a href="#224">224</a></td></tr
  669. ><tr id="gr_svn7768_225"
  670. ><td id="225"><a href="#225">225</a></td></tr
  671. ><tr id="gr_svn7768_226"
  672. ><td id="226"><a href="#226">226</a></td></tr
  673. ><tr id="gr_svn7768_227"
  674. ><td id="227"><a href="#227">227</a></td></tr
  675. ><tr id="gr_svn7768_228"
  676. ><td id="228"><a href="#228">228</a></td></tr
  677. ><tr id="gr_svn7768_229"
  678. ><td id="229"><a href="#229">229</a></td></tr
  679. ><tr id="gr_svn7768_230"
  680. ><td id="230"><a href="#230">230</a></td></tr
  681. ><tr id="gr_svn7768_231"
  682. ><td id="231"><a href="#231">231</a></td></tr
  683. ><tr id="gr_svn7768_232"
  684. ><td id="232"><a href="#232">232</a></td></tr
  685. ><tr id="gr_svn7768_233"
  686. ><td id="233"><a href="#233">233</a></td></tr
  687. ><tr id="gr_svn7768_234"
  688. ><td id="234"><a href="#234">234</a></td></tr
  689. ><tr id="gr_svn7768_235"
  690. ><td id="235"><a href="#235">235</a></td></tr
  691. ><tr id="gr_svn7768_236"
  692. ><td id="236"><a href="#236">236</a></td></tr
  693. ><tr id="gr_svn7768_237"
  694. ><td id="237"><a href="#237">237</a></td></tr
  695. ><tr id="gr_svn7768_238"
  696. ><td id="238"><a href="#238">238</a></td></tr
  697. ><tr id="gr_svn7768_239"
  698. ><td id="239"><a href="#239">239</a></td></tr
  699. ><tr id="gr_svn7768_240"
  700. ><td id="240"><a href="#240">240</a></td></tr
  701. ><tr id="gr_svn7768_241"
  702. ><td id="241"><a href="#241">241</a></td></tr
  703. ><tr id="gr_svn7768_242"
  704. ><td id="242"><a href="#242">242</a></td></tr
  705. ><tr id="gr_svn7768_243"
  706. ><td id="243"><a href="#243">243</a></td></tr
  707. ><tr id="gr_svn7768_244"
  708. ><td id="244"><a href="#244">244</a></td></tr
  709. ><tr id="gr_svn7768_245"
  710. ><td id="245"><a href="#245">245</a></td></tr
  711. ><tr id="gr_svn7768_246"
  712. ><td id="246"><a href="#246">246</a></td></tr
  713. ><tr id="gr_svn7768_247"
  714. ><td id="247"><a href="#247">247</a></td></tr
  715. ><tr id="gr_svn7768_248"
  716. ><td id="248"><a href="#248">248</a></td></tr
  717. ><tr id="gr_svn7768_249"
  718. ><td id="249"><a href="#249">249</a></td></tr
  719. ><tr id="gr_svn7768_250"
  720. ><td id="250"><a href="#250">250</a></td></tr
  721. ><tr id="gr_svn7768_251"
  722. ><td id="251"><a href="#251">251</a></td></tr
  723. ><tr id="gr_svn7768_252"
  724. ><td id="252"><a href="#252">252</a></td></tr
  725. ><tr id="gr_svn7768_253"
  726. ><td id="253"><a href="#253">253</a></td></tr
  727. ><tr id="gr_svn7768_254"
  728. ><td id="254"><a href="#254">254</a></td></tr
  729. ><tr id="gr_svn7768_255"
  730. ><td id="255"><a href="#255">255</a></td></tr
  731. ><tr id="gr_svn7768_256"
  732. ><td id="256"><a href="#256">256</a></td></tr
  733. ><tr id="gr_svn7768_257"
  734. ><td id="257"><a href="#257">257</a></td></tr
  735. ><tr id="gr_svn7768_258"
  736. ><td id="258"><a href="#258">258</a></td></tr
  737. ><tr id="gr_svn7768_259"
  738. ><td id="259"><a href="#259">259</a></td></tr
  739. ><tr id="gr_svn7768_260"
  740. ><td id="260"><a href="#260">260</a></td></tr
  741. ><tr id="gr_svn7768_261"
  742. ><td id="261"><a href="#261">261</a></td></tr
  743. ><tr id="gr_svn7768_262"
  744. ><td id="262"><a href="#262">262</a></td></tr
  745. ><tr id="gr_svn7768_263"
  746. ><td id="263"><a href="#263">263</a></td></tr
  747. ><tr id="gr_svn7768_264"
  748. ><td id="264"><a href="#264">264</a></td></tr
  749. ><tr id="gr_svn7768_265"
  750. ><td id="265"><a href="#265">265</a></td></tr
  751. ><tr id="gr_svn7768_266"
  752. ><td id="266"><a href="#266">266</a></td></tr
  753. ><tr id="gr_svn7768_267"
  754. ><td id="267"><a href="#267">267</a></td></tr
  755. ><tr id="gr_svn7768_268"
  756. ><td id="268"><a href="#268">268</a></td></tr
  757. ><tr id="gr_svn7768_269"
  758. ><td id="269"><a href="#269">269</a></td></tr
  759. ><tr id="gr_svn7768_270"
  760. ><td id="270"><a href="#270">270</a></td></tr
  761. ><tr id="gr_svn7768_271"
  762. ><td id="271"><a href="#271">271</a></td></tr
  763. ><tr id="gr_svn7768_272"
  764. ><td id="272"><a href="#272">272</a></td></tr
  765. ><tr id="gr_svn7768_273"
  766. ><td id="273"><a href="#273">273</a></td></tr
  767. ><tr id="gr_svn7768_274"
  768. ><td id="274"><a href="#274">274</a></td></tr
  769. ><tr id="gr_svn7768_275"
  770. ><td id="275"><a href="#275">275</a></td></tr
  771. ><tr id="gr_svn7768_276"
  772. ><td id="276"><a href="#276">276</a></td></tr
  773. ><tr id="gr_svn7768_277"
  774. ><td id="277"><a href="#277">277</a></td></tr
  775. ><tr id="gr_svn7768_278"
  776. ><td id="278"><a href="#278">278</a></td></tr
  777. ><tr id="gr_svn7768_279"
  778. ><td id="279"><a href="#279">279</a></td></tr
  779. ><tr id="gr_svn7768_280"
  780. ><td id="280"><a href="#280">280</a></td></tr
  781. ><tr id="gr_svn7768_281"
  782. ><td id="281"><a href="#281">281</a></td></tr
  783. ><tr id="gr_svn7768_282"
  784. ><td id="282"><a href="#282">282</a></td></tr
  785. ><tr id="gr_svn7768_283"
  786. ><td id="283"><a href="#283">283</a></td></tr
  787. ><tr id="gr_svn7768_284"
  788. ><td id="284"><a href="#284">284</a></td></tr
  789. ><tr id="gr_svn7768_285"
  790. ><td id="285"><a href="#285">285</a></td></tr
  791. ><tr id="gr_svn7768_286"
  792. ><td id="286"><a href="#286">286</a></td></tr
  793. ><tr id="gr_svn7768_287"
  794. ><td id="287"><a href="#287">287</a></td></tr
  795. ><tr id="gr_svn7768_288"
  796. ><td id="288"><a href="#288">288</a></td></tr
  797. ><tr id="gr_svn7768_289"
  798. ><td id="289"><a href="#289">289</a></td></tr
  799. ><tr id="gr_svn7768_290"
  800. ><td id="290"><a href="#290">290</a></td></tr
  801. ><tr id="gr_svn7768_291"
  802. ><td id="291"><a href="#291">291</a></td></tr
  803. ><tr id="gr_svn7768_292"
  804. ><td id="292"><a href="#292">292</a></td></tr
  805. ><tr id="gr_svn7768_293"
  806. ><td id="293"><a href="#293">293</a></td></tr
  807. ><tr id="gr_svn7768_294"
  808. ><td id="294"><a href="#294">294</a></td></tr
  809. ><tr id="gr_svn7768_295"
  810. ><td id="295"><a href="#295">295</a></td></tr
  811. ><tr id="gr_svn7768_296"
  812. ><td id="296"><a href="#296">296</a></td></tr
  813. ><tr id="gr_svn7768_297"
  814. ><td id="297"><a href="#297">297</a></td></tr
  815. ><tr id="gr_svn7768_298"
  816. ><td id="298"><a href="#298">298</a></td></tr
  817. ><tr id="gr_svn7768_299"
  818. ><td id="299"><a href="#299">299</a></td></tr
  819. ><tr id="gr_svn7768_300"
  820. ><td id="300"><a href="#300">300</a></td></tr
  821. ><tr id="gr_svn7768_301"
  822. ><td id="301"><a href="#301">301</a></td></tr
  823. ><tr id="gr_svn7768_302"
  824. ><td id="302"><a href="#302">302</a></td></tr
  825. ><tr id="gr_svn7768_303"
  826. ><td id="303"><a href="#303">303</a></td></tr
  827. ><tr id="gr_svn7768_304"
  828. ><td id="304"><a href="#304">304</a></td></tr
  829. ><tr id="gr_svn7768_305"
  830. ><td id="305"><a href="#305">305</a></td></tr
  831. ><tr id="gr_svn7768_306"
  832. ><td id="306"><a href="#306">306</a></td></tr
  833. ><tr id="gr_svn7768_307"
  834. ><td id="307"><a href="#307">307</a></td></tr
  835. ><tr id="gr_svn7768_308"
  836. ><td id="308"><a href="#308">308</a></td></tr
  837. ><tr id="gr_svn7768_309"
  838. ><td id="309"><a href="#309">309</a></td></tr
  839. ><tr id="gr_svn7768_310"
  840. ><td id="310"><a href="#310">310</a></td></tr
  841. ><tr id="gr_svn7768_311"
  842. ><td id="311"><a href="#311">311</a></td></tr
  843. ><tr id="gr_svn7768_312"
  844. ><td id="312"><a href="#312">312</a></td></tr
  845. ><tr id="gr_svn7768_313"
  846. ><td id="313"><a href="#313">313</a></td></tr
  847. ><tr id="gr_svn7768_314"
  848. ><td id="314"><a href="#314">314</a></td></tr
  849. ><tr id="gr_svn7768_315"
  850. ><td id="315"><a href="#315">315</a></td></tr
  851. ><tr id="gr_svn7768_316"
  852. ><td id="316"><a href="#316">316</a></td></tr
  853. ><tr id="gr_svn7768_317"
  854. ><td id="317"><a href="#317">317</a></td></tr
  855. ><tr id="gr_svn7768_318"
  856. ><td id="318"><a href="#318">318</a></td></tr
  857. ><tr id="gr_svn7768_319"
  858. ><td id="319"><a href="#319">319</a></td></tr
  859. ><tr id="gr_svn7768_320"
  860. ><td id="320"><a href="#320">320</a></td></tr
  861. ><tr id="gr_svn7768_321"
  862. ><td id="321"><a href="#321">321</a></td></tr
  863. ><tr id="gr_svn7768_322"
  864. ><td id="322"><a href="#322">322</a></td></tr
  865. ><tr id="gr_svn7768_323"
  866. ><td id="323"><a href="#323">323</a></td></tr
  867. ><tr id="gr_svn7768_324"
  868. ><td id="324"><a href="#324">324</a></td></tr
  869. ><tr id="gr_svn7768_325"
  870. ><td id="325"><a href="#325">325</a></td></tr
  871. ><tr id="gr_svn7768_326"
  872. ><td id="326"><a href="#326">326</a></td></tr
  873. ><tr id="gr_svn7768_327"
  874. ><td id="327"><a href="#327">327</a></td></tr
  875. ><tr id="gr_svn7768_328"
  876. ><td id="328"><a href="#328">328</a></td></tr
  877. ><tr id="gr_svn7768_329"
  878. ><td id="329"><a href="#329">329</a></td></tr
  879. ><tr id="gr_svn7768_330"
  880. ><td id="330"><a href="#330">330</a></td></tr
  881. ><tr id="gr_svn7768_331"
  882. ><td id="331"><a href="#331">331</a></td></tr
  883. ><tr id="gr_svn7768_332"
  884. ><td id="332"><a href="#332">332</a></td></tr
  885. ><tr id="gr_svn7768_333"
  886. ><td id="333"><a href="#333">333</a></td></tr
  887. ><tr id="gr_svn7768_334"
  888. ><td id="334"><a href="#334">334</a></td></tr
  889. ><tr id="gr_svn7768_335"
  890. ><td id="335"><a href="#335">335</a></td></tr
  891. ><tr id="gr_svn7768_336"
  892. ><td id="336"><a href="#336">336</a></td></tr
  893. ><tr id="gr_svn7768_337"
  894. ><td id="337"><a href="#337">337</a></td></tr
  895. ><tr id="gr_svn7768_338"
  896. ><td id="338"><a href="#338">338</a></td></tr
  897. ><tr id="gr_svn7768_339"
  898. ><td id="339"><a href="#339">339</a></td></tr
  899. ><tr id="gr_svn7768_340"
  900. ><td id="340"><a href="#340">340</a></td></tr
  901. ><tr id="gr_svn7768_341"
  902. ><td id="341"><a href="#341">341</a></td></tr
  903. ><tr id="gr_svn7768_342"
  904. ><td id="342"><a href="#342">342</a></td></tr
  905. ><tr id="gr_svn7768_343"
  906. ><td id="343"><a href="#343">343</a></td></tr
  907. ><tr id="gr_svn7768_344"
  908. ><td id="344"><a href="#344">344</a></td></tr
  909. ><tr id="gr_svn7768_345"
  910. ><td id="345"><a href="#345">345</a></td></tr
  911. ><tr id="gr_svn7768_346"
  912. ><td id="346"><a href="#346">346</a></td></tr
  913. ><tr id="gr_svn7768_347"
  914. ><td id="347"><a href="#347">347</a></td></tr
  915. ><tr id="gr_svn7768_348"
  916. ><td id="348"><a href="#348">348</a></td></tr
  917. ><tr id="gr_svn7768_349"
  918. ><td id="349"><a href="#349">349</a></td></tr
  919. ><tr id="gr_svn7768_350"
  920. ><td id="350"><a href="#350">350</a></td></tr
  921. ><tr id="gr_svn7768_351"
  922. ><td id="351"><a href="#351">351</a></td></tr
  923. ><tr id="gr_svn7768_352"
  924. ><td id="352"><a href="#352">352</a></td></tr
  925. ><tr id="gr_svn7768_353"
  926. ><td id="353"><a href="#353">353</a></td></tr
  927. ><tr id="gr_svn7768_354"
  928. ><td id="354"><a href="#354">354</a></td></tr
  929. ><tr id="gr_svn7768_355"
  930. ><td id="355"><a href="#355">355</a></td></tr
  931. ><tr id="gr_svn7768_356"
  932. ><td id="356"><a href="#356">356</a></td></tr
  933. ><tr id="gr_svn7768_357"
  934. ><td id="357"><a href="#357">357</a></td></tr
  935. ><tr id="gr_svn7768_358"
  936. ><td id="358"><a href="#358">358</a></td></tr
  937. ><tr id="gr_svn7768_359"
  938. ><td id="359"><a href="#359">359</a></td></tr
  939. ><tr id="gr_svn7768_360"
  940. ><td id="360"><a href="#360">360</a></td></tr
  941. ><tr id="gr_svn7768_361"
  942. ><td id="361"><a href="#361">361</a></td></tr
  943. ><tr id="gr_svn7768_362"
  944. ><td id="362"><a href="#362">362</a></td></tr
  945. ><tr id="gr_svn7768_363"
  946. ><td id="363"><a href="#363">363</a></td></tr
  947. ><tr id="gr_svn7768_364"
  948. ><td id="364"><a href="#364">364</a></td></tr
  949. ><tr id="gr_svn7768_365"
  950. ><td id="365"><a href="#365">365</a></td></tr
  951. ><tr id="gr_svn7768_366"
  952. ><td id="366"><a href="#366">366</a></td></tr
  953. ><tr id="gr_svn7768_367"
  954. ><td id="367"><a href="#367">367</a></td></tr
  955. ><tr id="gr_svn7768_368"
  956. ><td id="368"><a href="#368">368</a></td></tr
  957. ><tr id="gr_svn7768_369"
  958. ><td id="369"><a href="#369">369</a></td></tr
  959. ><tr id="gr_svn7768_370"
  960. ><td id="370"><a href="#370">370</a></td></tr
  961. ><tr id="gr_svn7768_371"
  962. ><td id="371"><a href="#371">371</a></td></tr
  963. ><tr id="gr_svn7768_372"
  964. ><td id="372"><a href="#372">372</a></td></tr
  965. ><tr id="gr_svn7768_373"
  966. ><td id="373"><a href="#373">373</a></td></tr
  967. ><tr id="gr_svn7768_374"
  968. ><td id="374"><a href="#374">374</a></td></tr
  969. ><tr id="gr_svn7768_375"
  970. ><td id="375"><a href="#375">375</a></td></tr
  971. ><tr id="gr_svn7768_376"
  972. ><td id="376"><a href="#376">376</a></td></tr
  973. ><tr id="gr_svn7768_377"
  974. ><td id="377"><a href="#377">377</a></td></tr
  975. ><tr id="gr_svn7768_378"
  976. ><td id="378"><a href="#378">378</a></td></tr
  977. ><tr id="gr_svn7768_379"
  978. ><td id="379"><a href="#379">379</a></td></tr
  979. ><tr id="gr_svn7768_380"
  980. ><td id="380"><a href="#380">380</a></td></tr
  981. ><tr id="gr_svn7768_381"
  982. ><td id="381"><a href="#381">381</a></td></tr
  983. ><tr id="gr_svn7768_382"
  984. ><td id="382"><a href="#382">382</a></td></tr
  985. ><tr id="gr_svn7768_383"
  986. ><td id="383"><a href="#383">383</a></td></tr
  987. ><tr id="gr_svn7768_384"
  988. ><td id="384"><a href="#384">384</a></td></tr
  989. ><tr id="gr_svn7768_385"
  990. ><td id="385"><a href="#385">385</a></td></tr
  991. ><tr id="gr_svn7768_386"
  992. ><td id="386"><a href="#386">386</a></td></tr
  993. ><tr id="gr_svn7768_387"
  994. ><td id="387"><a href="#387">387</a></td></tr
  995. ><tr id="gr_svn7768_388"
  996. ><td id="388"><a href="#388">388</a></td></tr
  997. ><tr id="gr_svn7768_389"
  998. ><td id="389"><a href="#389">389</a></td></tr
  999. ><tr id="gr_svn7768_390"
  1000. ><td id="390"><a href="#390">390</a></td></tr
  1001. ><tr id="gr_svn7768_391"
  1002. ><td id="391"><a href="#391">391</a></td></tr
  1003. ><tr id="gr_svn7768_392"
  1004. ><td id="392"><a href="#392">392</a></td></tr
  1005. ><tr id="gr_svn7768_393"
  1006. ><td id="393"><a href="#393">393</a></td></tr
  1007. ><tr id="gr_svn7768_394"
  1008. ><td id="394"><a href="#394">394</a></td></tr
  1009. ><tr id="gr_svn7768_395"
  1010. ><td id="395"><a href="#395">395</a></td></tr
  1011. ><tr id="gr_svn7768_396"
  1012. ><td id="396"><a href="#396">396</a></td></tr
  1013. ><tr id="gr_svn7768_397"
  1014. ><td id="397"><a href="#397">397</a></td></tr
  1015. ><tr id="gr_svn7768_398"
  1016. ><td id="398"><a href="#398">398</a></td></tr
  1017. ><tr id="gr_svn7768_399"
  1018. ><td id="399"><a href="#399">399</a></td></tr
  1019. ><tr id="gr_svn7768_400"
  1020. ><td id="400"><a href="#400">400</a></td></tr
  1021. ><tr id="gr_svn7768_401"
  1022. ><td id="401"><a href="#401">401</a></td></tr
  1023. ><tr id="gr_svn7768_402"
  1024. ><td id="402"><a href="#402">402</a></td></tr
  1025. ><tr id="gr_svn7768_403"
  1026. ><td id="403"><a href="#403">403</a></td></tr
  1027. ><tr id="gr_svn7768_404"
  1028. ><td id="404"><a href="#404">404</a></td></tr
  1029. ><tr id="gr_svn7768_405"
  1030. ><td id="405"><a href="#405">405</a></td></tr
  1031. ><tr id="gr_svn7768_406"
  1032. ><td id="406"><a href="#406">406</a></td></tr
  1033. ><tr id="gr_svn7768_407"
  1034. ><td id="407"><a href="#407">407</a></td></tr
  1035. ><tr id="gr_svn7768_408"
  1036. ><td id="408"><a href="#408">408</a></td></tr
  1037. ><tr id="gr_svn7768_409"
  1038. ><td id="409"><a href="#409">409</a></td></tr
  1039. ><tr id="gr_svn7768_410"
  1040. ><td id="410"><a href="#410">410</a></td></tr
  1041. ><tr id="gr_svn7768_411"
  1042. ><td id="411"><a href="#411">411</a></td></tr
  1043. ><tr id="gr_svn7768_412"
  1044. ><td id="412"><a href="#412">412</a></td></tr
  1045. ><tr id="gr_svn7768_413"
  1046. ><td id="413"><a href="#413">413</a></td></tr
  1047. ><tr id="gr_svn7768_414"
  1048. ><td id="414"><a href="#414">414</a></td></tr
  1049. ><tr id="gr_svn7768_415"
  1050. ><td id="415"><a href="#415">415</a></td></tr
  1051. ><tr id="gr_svn7768_416"
  1052. ><td id="416"><a href="#416">416</a></td></tr
  1053. ><tr id="gr_svn7768_417"
  1054. ><td id="417"><a href="#417">417</a></td></tr
  1055. ><tr id="gr_svn7768_418"
  1056. ><td id="418"><a href="#418">418</a></td></tr
  1057. ><tr id="gr_svn7768_419"
  1058. ><td id="419"><a href="#419">419</a></td></tr
  1059. ><tr id="gr_svn7768_420"
  1060. ><td id="420"><a href="#420">420</a></td></tr
  1061. ><tr id="gr_svn7768_421"
  1062. ><td id="421"><a href="#421">421</a></td></tr
  1063. ><tr id="gr_svn7768_422"
  1064. ><td id="422"><a href="#422">422</a></td></tr
  1065. ><tr id="gr_svn7768_423"
  1066. ><td id="423"><a href="#423">423</a></td></tr
  1067. ><tr id="gr_svn7768_424"
  1068. ><td id="424"><a href="#424">424</a></td></tr
  1069. ><tr id="gr_svn7768_425"
  1070. ><td id="425"><a href="#425">425</a></td></tr
  1071. ><tr id="gr_svn7768_426"
  1072. ><td id="426"><a href="#426">426</a></td></tr
  1073. ><tr id="gr_svn7768_427"
  1074. ><td id="427"><a href="#427">427</a></td></tr
  1075. ><tr id="gr_svn7768_428"
  1076. ><td id="428"><a href="#428">428</a></td></tr
  1077. ><tr id="gr_svn7768_429"
  1078. ><td id="429"><a href="#429">429</a></td></tr
  1079. ><tr id="gr_svn7768_430"
  1080. ><td id="430"><a href="#430">430</a></td></tr
  1081. ><tr id="gr_svn7768_431"
  1082. ><td id="431"><a href="#431">431</a></td></tr
  1083. ><tr id="gr_svn7768_432"
  1084. ><td id="432"><a href="#432">432</a></td></tr
  1085. ><tr id="gr_svn7768_433"
  1086. ><td id="433"><a href="#433">433</a></td></tr
  1087. ><tr id="gr_svn7768_434"
  1088. ><td id="434"><a href="#434">434</a></td></tr
  1089. ><tr id="gr_svn7768_435"
  1090. ><td id="435"><a href="#435">435</a></td></tr
  1091. ><tr id="gr_svn7768_436"
  1092. ><td id="436"><a href="#436">436</a></td></tr
  1093. ><tr id="gr_svn7768_437"
  1094. ><td id="437"><a href="#437">437</a></td></tr
  1095. ><tr id="gr_svn7768_438"
  1096. ><td id="438"><a href="#438">438</a></td></tr
  1097. ><tr id="gr_svn7768_439"
  1098. ><td id="439"><a href="#439">439</a></td></tr
  1099. ><tr id="gr_svn7768_440"
  1100. ><td id="440"><a href="#440">440</a></td></tr
  1101. ><tr id="gr_svn7768_441"
  1102. ><td id="441"><a href="#441">441</a></td></tr
  1103. ><tr id="gr_svn7768_442"
  1104. ><td id="442"><a href="#442">442</a></td></tr
  1105. ><tr id="gr_svn7768_443"
  1106. ><td id="443"><a href="#443">443</a></td></tr
  1107. ><tr id="gr_svn7768_444"
  1108. ><td id="444"><a href="#444">444</a></td></tr
  1109. ><tr id="gr_svn7768_445"
  1110. ><td id="445"><a href="#445">445</a></td></tr
  1111. ><tr id="gr_svn7768_446"
  1112. ><td id="446"><a href="#446">446</a></td></tr
  1113. ><tr id="gr_svn7768_447"
  1114. ><td id="447"><a href="#447">447</a></td></tr
  1115. ><tr id="gr_svn7768_448"
  1116. ><td id="448"><a href="#448">448</a></td></tr
  1117. ><tr id="gr_svn7768_449"
  1118. ><td id="449"><a href="#449">449</a></td></tr
  1119. ><tr id="gr_svn7768_450"
  1120. ><td id="450"><a href="#450">450</a></td></tr
  1121. ><tr id="gr_svn7768_451"
  1122. ><td id="451"><a href="#451">451</a></td></tr
  1123. ><tr id="gr_svn7768_452"
  1124. ><td id="452"><a href="#452">452</a></td></tr
  1125. ><tr id="gr_svn7768_453"
  1126. ><td id="453"><a href="#453">453</a></td></tr
  1127. ><tr id="gr_svn7768_454"
  1128. ><td id="454"><a href="#454">454</a></td></tr
  1129. ><tr id="gr_svn7768_455"
  1130. ><td id="455"><a href="#455">455</a></td></tr
  1131. ><tr id="gr_svn7768_456"
  1132. ><td id="456"><a href="#456">456</a></td></tr
  1133. ><tr id="gr_svn7768_457"
  1134. ><td id="457"><a href="#457">457</a></td></tr
  1135. ><tr id="gr_svn7768_458"
  1136. ><td id="458"><a href="#458">458</a></td></tr
  1137. ><tr id="gr_svn7768_459"
  1138. ><td id="459"><a href="#459">459</a></td></tr
  1139. ><tr id="gr_svn7768_460"
  1140. ><td id="460"><a href="#460">460</a></td></tr
  1141. ><tr id="gr_svn7768_461"
  1142. ><td id="461"><a href="#461">461</a></td></tr
  1143. ><tr id="gr_svn7768_462"
  1144. ><td id="462"><a href="#462">462</a></td></tr
  1145. ><tr id="gr_svn7768_463"
  1146. ><td id="463"><a href="#463">463</a></td></tr
  1147. ><tr id="gr_svn7768_464"
  1148. ><td id="464"><a href="#464">464</a></td></tr
  1149. ><tr id="gr_svn7768_465"
  1150. ><td id="465"><a href="#465">465</a></td></tr
  1151. ><tr id="gr_svn7768_466"
  1152. ><td id="466"><a href="#466">466</a></td></tr
  1153. ><tr id="gr_svn7768_467"
  1154. ><td id="467"><a href="#467">467</a></td></tr
  1155. ><tr id="gr_svn7768_468"
  1156. ><td id="468"><a href="#468">468</a></td></tr
  1157. ><tr id="gr_svn7768_469"
  1158. ><td id="469"><a href="#469">469</a></td></tr
  1159. ><tr id="gr_svn7768_470"
  1160. ><td id="470"><a href="#470">470</a></td></tr
  1161. ><tr id="gr_svn7768_471"
  1162. ><td id="471"><a href="#471">471</a></td></tr
  1163. ><tr id="gr_svn7768_472"
  1164. ><td id="472"><a href="#472">472</a></td></tr
  1165. ><tr id="gr_svn7768_473"
  1166. ><td id="473"><a href="#473">473</a></td></tr
  1167. ><tr id="gr_svn7768_474"
  1168. ><td id="474"><a href="#474">474</a></td></tr
  1169. ><tr id="gr_svn7768_475"
  1170. ><td id="475"><a href="#475">475</a></td></tr
  1171. ><tr id="gr_svn7768_476"
  1172. ><td id="476"><a href="#476">476</a></td></tr
  1173. ><tr id="gr_svn7768_477"
  1174. ><td id="477"><a href="#477">477</a></td></tr
  1175. ><tr id="gr_svn7768_478"
  1176. ><td id="478"><a href="#478">478</a></td></tr
  1177. ><tr id="gr_svn7768_479"
  1178. ><td id="479"><a href="#479">479</a></td></tr
  1179. ><tr id="gr_svn7768_480"
  1180. ><td id="480"><a href="#480">480</a></td></tr
  1181. ><tr id="gr_svn7768_481"
  1182. ><td id="481"><a href="#481">481</a></td></tr
  1183. ><tr id="gr_svn7768_482"
  1184. ><td id="482"><a href="#482">482</a></td></tr
  1185. ><tr id="gr_svn7768_483"
  1186. ><td id="483"><a href="#483">483</a></td></tr
  1187. ><tr id="gr_svn7768_484"
  1188. ><td id="484"><a href="#484">484</a></td></tr
  1189. ><tr id="gr_svn7768_485"
  1190. ><td id="485"><a href="#485">485</a></td></tr
  1191. ><tr id="gr_svn7768_486"
  1192. ><td id="486"><a href="#486">486</a></td></tr
  1193. ><tr id="gr_svn7768_487"
  1194. ><td id="487"><a href="#487">487</a></td></tr
  1195. ><tr id="gr_svn7768_488"
  1196. ><td id="488"><a href="#488">488</a></td></tr
  1197. ><tr id="gr_svn7768_489"
  1198. ><td id="489"><a href="#489">489</a></td></tr
  1199. ><tr id="gr_svn7768_490"
  1200. ><td id="490"><a href="#490">490</a></td></tr
  1201. ><tr id="gr_svn7768_491"
  1202. ><td id="491"><a href="#491">491</a></td></tr
  1203. ><tr id="gr_svn7768_492"
  1204. ><td id="492"><a href="#492">492</a></td></tr
  1205. ><tr id="gr_svn7768_493"
  1206. ><td id="493"><a href="#493">493</a></td></tr
  1207. ><tr id="gr_svn7768_494"
  1208. ><td id="494"><a href="#494">494</a></td></tr
  1209. ><tr id="gr_svn7768_495"
  1210. ><td id="495"><a href="#495">495</a></td></tr
  1211. ><tr id="gr_svn7768_496"
  1212. ><td id="496"><a href="#496">496</a></td></tr
  1213. ><tr id="gr_svn7768_497"
  1214. ><td id="497"><a href="#497">497</a></td></tr
  1215. ><tr id="gr_svn7768_498"
  1216. ><td id="498"><a href="#498">498</a></td></tr
  1217. ><tr id="gr_svn7768_499"
  1218. ><td id="499"><a href="#499">499</a></td></tr
  1219. ><tr id="gr_svn7768_500"
  1220. ><td id="500"><a href="#500">500</a></td></tr
  1221. ><tr id="gr_svn7768_501"
  1222. ><td id="501"><a href="#501">501</a></td></tr
  1223. ><tr id="gr_svn7768_502"
  1224. ><td id="502"><a href="#502">502</a></td></tr
  1225. ><tr id="gr_svn7768_503"
  1226. ><td id="503"><a href="#503">503</a></td></tr
  1227. ><tr id="gr_svn7768_504"
  1228. ><td id="504"><a href="#504">504</a></td></tr
  1229. ><tr id="gr_svn7768_505"
  1230. ><td id="505"><a href="#505">505</a></td></tr
  1231. ><tr id="gr_svn7768_506"
  1232. ><td id="506"><a href="#506">506</a></td></tr
  1233. ><tr id="gr_svn7768_507"
  1234. ><td id="507"><a href="#507">507</a></td></tr
  1235. ><tr id="gr_svn7768_508"
  1236. ><td id="508"><a href="#508">508</a></td></tr
  1237. ><tr id="gr_svn7768_509"
  1238. ><td id="509"><a href="#509">509</a></td></tr
  1239. ><tr id="gr_svn7768_510"
  1240. ><td id="510"><a href="#510">510</a></td></tr
  1241. ><tr id="gr_svn7768_511"
  1242. ><td id="511"><a href="#511">511</a></td></tr
  1243. ><tr id="gr_svn7768_512"
  1244. ><td id="512"><a href="#512">512</a></td></tr
  1245. ><tr id="gr_svn7768_513"
  1246. ><td id="513"><a href="#513">513</a></td></tr
  1247. ><tr id="gr_svn7768_514"
  1248. ><td id="514"><a href="#514">514</a></td></tr
  1249. ><tr id="gr_svn7768_515"
  1250. ><td id="515"><a href="#515">515</a></td></tr
  1251. ><tr id="gr_svn7768_516"
  1252. ><td id="516"><a href="#516">516</a></td></tr
  1253. ><tr id="gr_svn7768_517"
  1254. ><td id="517"><a href="#517">517</a></td></tr
  1255. ><tr id="gr_svn7768_518"
  1256. ><td id="518"><a href="#518">518</a></td></tr
  1257. ><tr id="gr_svn7768_519"
  1258. ><td id="519"><a href="#519">519</a></td></tr
  1259. ><tr id="gr_svn7768_520"
  1260. ><td id="520"><a href="#520">520</a></td></tr
  1261. ><tr id="gr_svn7768_521"
  1262. ><td id="521"><a href="#521">521</a></td></tr
  1263. ><tr id="gr_svn7768_522"
  1264. ><td id="522"><a href="#522">522</a></td></tr
  1265. ><tr id="gr_svn7768_523"
  1266. ><td id="523"><a href="#523">523</a></td></tr
  1267. ><tr id="gr_svn7768_524"
  1268. ><td id="524"><a href="#524">524</a></td></tr
  1269. ><tr id="gr_svn7768_525"
  1270. ><td id="525"><a href="#525">525</a></td></tr
  1271. ><tr id="gr_svn7768_526"
  1272. ><td id="526"><a href="#526">526</a></td></tr
  1273. ><tr id="gr_svn7768_527"
  1274. ><td id="527"><a href="#527">527</a></td></tr
  1275. ><tr id="gr_svn7768_528"
  1276. ><td id="528"><a href="#528">528</a></td></tr
  1277. ><tr id="gr_svn7768_529"
  1278. ><td id="529"><a href="#529">529</a></td></tr
  1279. ><tr id="gr_svn7768_530"
  1280. ><td id="530"><a href="#530">530</a></td></tr
  1281. ><tr id="gr_svn7768_531"
  1282. ><td id="531"><a href="#531">531</a></td></tr
  1283. ><tr id="gr_svn7768_532"
  1284. ><td id="532"><a href="#532">532</a></td></tr
  1285. ><tr id="gr_svn7768_533"
  1286. ><td id="533"><a href="#533">533</a></td></tr
  1287. ><tr id="gr_svn7768_534"
  1288. ><td id="534"><a href="#534">534</a></td></tr
  1289. ><tr id="gr_svn7768_535"
  1290. ><td id="535"><a href="#535">535</a></td></tr
  1291. ><tr id="gr_svn7768_536"
  1292. ><td id="536"><a href="#536">536</a></td></tr
  1293. ><tr id="gr_svn7768_537"
  1294. ><td id="537"><a href="#537">537</a></td></tr
  1295. ><tr id="gr_svn7768_538"
  1296. ><td id="538"><a href="#538">538</a></td></tr
  1297. ><tr id="gr_svn7768_539"
  1298. ><td id="539"><a href="#539">539</a></td></tr
  1299. ><tr id="gr_svn7768_540"
  1300. ><td id="540"><a href="#540">540</a></td></tr
  1301. ><tr id="gr_svn7768_541"
  1302. ><td id="541"><a href="#541">541</a></td></tr
  1303. ><tr id="gr_svn7768_542"
  1304. ><td id="542"><a href="#542">542</a></td></tr
  1305. ><tr id="gr_svn7768_543"
  1306. ><td id="543"><a href="#543">543</a></td></tr
  1307. ><tr id="gr_svn7768_544"
  1308. ><td id="544"><a href="#544">544</a></td></tr
  1309. ><tr id="gr_svn7768_545"
  1310. ><td id="545"><a href="#545">545</a></td></tr
  1311. ><tr id="gr_svn7768_546"
  1312. ><td id="546"><a href="#546">546</a></td></tr
  1313. ><tr id="gr_svn7768_547"
  1314. ><td id="547"><a href="#547">547</a></td></tr
  1315. ><tr id="gr_svn7768_548"
  1316. ><td id="548"><a href="#548">548</a></td></tr
  1317. ><tr id="gr_svn7768_549"
  1318. ><td id="549"><a href="#549">549</a></td></tr
  1319. ><tr id="gr_svn7768_550"
  1320. ><td id="550"><a href="#550">550</a></td></tr
  1321. ><tr id="gr_svn7768_551"
  1322. ><td id="551"><a href="#551">551</a></td></tr
  1323. ><tr id="gr_svn7768_552"
  1324. ><td id="552"><a href="#552">552</a></td></tr
  1325. ><tr id="gr_svn7768_553"
  1326. ><td id="553"><a href="#553">553</a></td></tr
  1327. ><tr id="gr_svn7768_554"
  1328. ><td id="554"><a href="#554">554</a></td></tr
  1329. ><tr id="gr_svn7768_555"
  1330. ><td id="555"><a href="#555">555</a></td></tr
  1331. ><tr id="gr_svn7768_556"
  1332. ><td id="556"><a href="#556">556</a></td></tr
  1333. ><tr id="gr_svn7768_557"
  1334. ><td id="557"><a href="#557">557</a></td></tr
  1335. ><tr id="gr_svn7768_558"
  1336. ><td id="558"><a href="#558">558</a></td></tr
  1337. ><tr id="gr_svn7768_559"
  1338. ><td id="559"><a href="#559">559</a></td></tr
  1339. ><tr id="gr_svn7768_560"
  1340. ><td id="560"><a href="#560">560</a></td></tr
  1341. ><tr id="gr_svn7768_561"
  1342. ><td id="561"><a href="#561">561</a></td></tr
  1343. ><tr id="gr_svn7768_562"
  1344. ><td id="562"><a href="#562">562</a></td></tr
  1345. ><tr id="gr_svn7768_563"
  1346. ><td id="563"><a href="#563">563</a></td></tr
  1347. ><tr id="gr_svn7768_564"
  1348. ><td id="564"><a href="#564">564</a></td></tr
  1349. ><tr id="gr_svn7768_565"
  1350. ><td id="565"><a href="#565">565</a></td></tr
  1351. ><tr id="gr_svn7768_566"
  1352. ><td id="566"><a href="#566">566</a></td></tr
  1353. ><tr id="gr_svn7768_567"
  1354. ><td id="567"><a href="#567">567</a></td></tr
  1355. ><tr id="gr_svn7768_568"
  1356. ><td id="568"><a href="#568">568</a></td></tr
  1357. ><tr id="gr_svn7768_569"
  1358. ><td id="569"><a href="#569">569</a></td></tr
  1359. ><tr id="gr_svn7768_570"
  1360. ><td id="570"><a href="#570">570</a></td></tr
  1361. ><tr id="gr_svn7768_571"
  1362. ><td id="571"><a href="#571">571</a></td></tr
  1363. ><tr id="gr_svn7768_572"
  1364. ><td id="572"><a href="#572">572</a></td></tr
  1365. ><tr id="gr_svn7768_573"
  1366. ><td id="573"><a href="#573">573</a></td></tr
  1367. ><tr id="gr_svn7768_574"
  1368. ><td id="574"><a href="#574">574</a></td></tr
  1369. ><tr id="gr_svn7768_575"
  1370. ><td id="575"><a href="#575">575</a></td></tr
  1371. ><tr id="gr_svn7768_576"
  1372. ><td id="576"><a href="#576">576</a></td></tr
  1373. ><tr id="gr_svn7768_577"
  1374. ><td id="577"><a href="#577">577</a></td></tr
  1375. ><tr id="gr_svn7768_578"
  1376. ><td id="578"><a href="#578">578</a></td></tr
  1377. ><tr id="gr_svn7768_579"
  1378. ><td id="579"><a href="#579">579</a></td></tr
  1379. ><tr id="gr_svn7768_580"
  1380. ><td id="580"><a href="#580">580</a></td></tr
  1381. ><tr id="gr_svn7768_581"
  1382. ><td id="581"><a href="#581">581</a></td></tr
  1383. ><tr id="gr_svn7768_582"
  1384. ><td id="582"><a href="#582">582</a></td></tr
  1385. ><tr id="gr_svn7768_583"
  1386. ><td id="583"><a href="#583">583</a></td></tr
  1387. ><tr id="gr_svn7768_584"
  1388. ><td id="584"><a href="#584">584</a></td></tr
  1389. ><tr id="gr_svn7768_585"
  1390. ><td id="585"><a href="#585">585</a></td></tr
  1391. ><tr id="gr_svn7768_586"
  1392. ><td id="586"><a href="#586">586</a></td></tr
  1393. ><tr id="gr_svn7768_587"
  1394. ><td id="587"><a href="#587">587</a></td></tr
  1395. ><tr id="gr_svn7768_588"
  1396. ><td id="588"><a href="#588">588</a></td></tr
  1397. ><tr id="gr_svn7768_589"
  1398. ><td id="589"><a href="#589">589</a></td></tr
  1399. ><tr id="gr_svn7768_590"
  1400. ><td id="590"><a href="#590">590</a></td></tr
  1401. ><tr id="gr_svn7768_591"
  1402. ><td id="591"><a href="#591">591</a></td></tr
  1403. ><tr id="gr_svn7768_592"
  1404. ><td id="592"><a href="#592">592</a></td></tr
  1405. ><tr id="gr_svn7768_593"
  1406. ><td id="593"><a href="#593">593</a></td></tr
  1407. ><tr id="gr_svn7768_594"
  1408. ><td id="594"><a href="#594">594</a></td></tr
  1409. ><tr id="gr_svn7768_595"
  1410. ><td id="595"><a href="#595">595</a></td></tr
  1411. ><tr id="gr_svn7768_596"
  1412. ><td id="596"><a href="#596">596</a></td></tr
  1413. ><tr id="gr_svn7768_597"
  1414. ><td id="597"><a href="#597">597</a></td></tr
  1415. ><tr id="gr_svn7768_598"
  1416. ><td id="598"><a href="#598">598</a></td></tr
  1417. ><tr id="gr_svn7768_599"
  1418. ><td id="599"><a href="#599">599</a></td></tr
  1419. ><tr id="gr_svn7768_600"
  1420. ><td id="600"><a href="#600">600</a></td></tr
  1421. ><tr id="gr_svn7768_601"
  1422. ><td id="601"><a href="#601">601</a></td></tr
  1423. ><tr id="gr_svn7768_602"
  1424. ><td id="602"><a href="#602">602</a></td></tr
  1425. ><tr id="gr_svn7768_603"
  1426. ><td id="603"><a href="#603">603</a></td></tr
  1427. ><tr id="gr_svn7768_604"
  1428. ><td id="604"><a href="#604">604</a></td></tr
  1429. ><tr id="gr_svn7768_605"
  1430. ><td id="605"><a href="#605">605</a></td></tr
  1431. ><tr id="gr_svn7768_606"
  1432. ><td id="606"><a href="#606">606</a></td></tr
  1433. ><tr id="gr_svn7768_607"
  1434. ><td id="607"><a href="#607">607</a></td></tr
  1435. ><tr id="gr_svn7768_608"
  1436. ><td id="608"><a href="#608">608</a></td></tr
  1437. ><tr id="gr_svn7768_609"
  1438. ><td id="609"><a href="#609">609</a></td></tr
  1439. ><tr id="gr_svn7768_610"
  1440. ><td id="610"><a href="#610">610</a></td></tr
  1441. ><tr id="gr_svn7768_611"
  1442. ><td id="611"><a href="#611">611</a></td></tr
  1443. ><tr id="gr_svn7768_612"
  1444. ><td id="612"><a href="#612">612</a></td></tr
  1445. ><tr id="gr_svn7768_613"
  1446. ><td id="613"><a href="#613">613</a></td></tr
  1447. ><tr id="gr_svn7768_614"
  1448. ><td id="614"><a href="#614">614</a></td></tr
  1449. ><tr id="gr_svn7768_615"
  1450. ><td id="615"><a href="#615">615</a></td></tr
  1451. ><tr id="gr_svn7768_616"
  1452. ><td id="616"><a href="#616">616</a></td></tr
  1453. ><tr id="gr_svn7768_617"
  1454. ><td id="617"><a href="#617">617</a></td></tr
  1455. ><tr id="gr_svn7768_618"
  1456. ><td id="618"><a href="#618">618</a></td></tr
  1457. ><tr id="gr_svn7768_619"
  1458. ><td id="619"><a href="#619">619</a></td></tr
  1459. ><tr id="gr_svn7768_620"
  1460. ><td id="620"><a href="#620">620</a></td></tr
  1461. ><tr id="gr_svn7768_621"
  1462. ><td id="621"><a href="#621">621</a></td></tr
  1463. ><tr id="gr_svn7768_622"
  1464. ><td id="622"><a href="#622">622</a></td></tr
  1465. ><tr id="gr_svn7768_623"
  1466. ><td id="623"><a href="#623">623</a></td></tr
  1467. ><tr id="gr_svn7768_624"
  1468. ><td id="624"><a href="#624">624</a></td></tr
  1469. ><tr id="gr_svn7768_625"
  1470. ><td id="625"><a href="#625">625</a></td></tr
  1471. ><tr id="gr_svn7768_626"
  1472. ><td id="626"><a href="#626">626</a></td></tr
  1473. ><tr id="gr_svn7768_627"
  1474. ><td id="627"><a href="#627">627</a></td></tr
  1475. ><tr id="gr_svn7768_628"
  1476. ><td id="628"><a href="#628">628</a></td></tr
  1477. ><tr id="gr_svn7768_629"
  1478. ><td id="629"><a href="#629">629</a></td></tr
  1479. ><tr id="gr_svn7768_630"
  1480. ><td id="630"><a href="#630">630</a></td></tr
  1481. ><tr id="gr_svn7768_631"
  1482. ><td id="631"><a href="#631">631</a></td></tr
  1483. ><tr id="gr_svn7768_632"
  1484. ><td id="632"><a href="#632">632</a></td></tr
  1485. ><tr id="gr_svn7768_633"
  1486. ><td id="633"><a href="#633">633</a></td></tr
  1487. ><tr id="gr_svn7768_634"
  1488. ><td id="634"><a href="#634">634</a></td></tr
  1489. ><tr id="gr_svn7768_635"
  1490. ><td id="635"><a href="#635">635</a></td></tr
  1491. ><tr id="gr_svn7768_636"
  1492. ><td id="636"><a href="#636">636</a></td></tr
  1493. ><tr id="gr_svn7768_637"
  1494. ><td id="637"><a href="#637">637</a></td></tr
  1495. ><tr id="gr_svn7768_638"
  1496. ><td id="638"><a href="#638">638</a></td></tr
  1497. ><tr id="gr_svn7768_639"
  1498. ><td id="639"><a href="#639">639</a></td></tr
  1499. ><tr id="gr_svn7768_640"
  1500. ><td id="640"><a href="#640">640</a></td></tr
  1501. ><tr id="gr_svn7768_641"
  1502. ><td id="641"><a href="#641">641</a></td></tr
  1503. ><tr id="gr_svn7768_642"
  1504. ><td id="642"><a href="#642">642</a></td></tr
  1505. ><tr id="gr_svn7768_643"
  1506. ><td id="643"><a href="#643">643</a></td></tr
  1507. ><tr id="gr_svn7768_644"
  1508. ><td id="644"><a href="#644">644</a></td></tr
  1509. ><tr id="gr_svn7768_645"
  1510. ><td id="645"><a href="#645">645</a></td></tr
  1511. ><tr id="gr_svn7768_646"
  1512. ><td id="646"><a href="#646">646</a></td></tr
  1513. ><tr id="gr_svn7768_647"
  1514. ><td id="647"><a href="#647">647</a></td></tr
  1515. ><tr id="gr_svn7768_648"
  1516. ><td id="648"><a href="#648">648</a></td></tr
  1517. ><tr id="gr_svn7768_649"
  1518. ><td id="649"><a href="#649">649</a></td></tr
  1519. ><tr id="gr_svn7768_650"
  1520. ><td id="650"><a href="#650">650</a></td></tr
  1521. ><tr id="gr_svn7768_651"
  1522. ><td id="651"><a href="#651">651</a></td></tr
  1523. ><tr id="gr_svn7768_652"
  1524. ><td id="652"><a href="#652">652</a></td></tr
  1525. ><tr id="gr_svn7768_653"
  1526. ><td id="653"><a href="#653">653</a></td></tr
  1527. ><tr id="gr_svn7768_654"
  1528. ><td id="654"><a href="#654">654</a></td></tr
  1529. ><tr id="gr_svn7768_655"
  1530. ><td id="655"><a href="#655">655</a></td></tr
  1531. ><tr id="gr_svn7768_656"
  1532. ><td id="656"><a href="#656">656</a></td></tr
  1533. ><tr id="gr_svn7768_657"
  1534. ><td id="657"><a href="#657">657</a></td></tr
  1535. ><tr id="gr_svn7768_658"
  1536. ><td id="658"><a href="#658">658</a></td></tr
  1537. ><tr id="gr_svn7768_659"
  1538. ><td id="659"><a href="#659">659</a></td></tr
  1539. ><tr id="gr_svn7768_660"
  1540. ><td id="660"><a href="#660">660</a></td></tr
  1541. ><tr id="gr_svn7768_661"
  1542. ><td id="661"><a href="#661">661</a></td></tr
  1543. ><tr id="gr_svn7768_662"
  1544. ><td id="662"><a href="#662">662</a></td></tr
  1545. ><tr id="gr_svn7768_663"
  1546. ><td id="663"><a href="#663">663</a></td></tr
  1547. ><tr id="gr_svn7768_664"
  1548. ><td id="664"><a href="#664">664</a></td></tr
  1549. ><tr id="gr_svn7768_665"
  1550. ><td id="665"><a href="#665">665</a></td></tr
  1551. ><tr id="gr_svn7768_666"
  1552. ><td id="666"><a href="#666">666</a></td></tr
  1553. ><tr id="gr_svn7768_667"
  1554. ><td id="667"><a href="#667">667</a></td></tr
  1555. ><tr id="gr_svn7768_668"
  1556. ><td id="668"><a href="#668">668</a></td></tr
  1557. ><tr id="gr_svn7768_669"
  1558. ><td id="669"><a href="#669">669</a></td></tr
  1559. ><tr id="gr_svn7768_670"
  1560. ><td id="670"><a href="#670">670</a></td></tr
  1561. ><tr id="gr_svn7768_671"
  1562. ><td id="671"><a href="#671">671</a></td></tr
  1563. ><tr id="gr_svn7768_672"
  1564. ><td id="672"><a href="#672">672</a></td></tr
  1565. ><tr id="gr_svn7768_673"
  1566. ><td id="673"><a href="#673">673</a></td></tr
  1567. ><tr id="gr_svn7768_674"
  1568. ><td id="674"><a href="#674">674</a></td></tr
  1569. ><tr id="gr_svn7768_675"
  1570. ><td id="675"><a href="#675">675</a></td></tr
  1571. ><tr id="gr_svn7768_676"
  1572. ><td id="676"><a href="#676">676</a></td></tr
  1573. ><tr id="gr_svn7768_677"
  1574. ><td id="677"><a href="#677">677</a></td></tr
  1575. ><tr id="gr_svn7768_678"
  1576. ><td id="678"><a href="#678">678</a></td></tr
  1577. ><tr id="gr_svn7768_679"
  1578. ><td id="679"><a href="#679">679</a></td></tr
  1579. ><tr id="gr_svn7768_680"
  1580. ><td id="680"><a href="#680">680</a></td></tr
  1581. ><tr id="gr_svn7768_681"
  1582. ><td id="681"><a href="#681">681</a></td></tr
  1583. ><tr id="gr_svn7768_682"
  1584. ><td id="682"><a href="#682">682</a></td></tr
  1585. ><tr id="gr_svn7768_683"
  1586. ><td id="683"><a href="#683">683</a></td></tr
  1587. ><tr id="gr_svn7768_684"
  1588. ><td id="684"><a href="#684">684</a></td></tr
  1589. ><tr id="gr_svn7768_685"
  1590. ><td id="685"><a href="#685">685</a></td></tr
  1591. ><tr id="gr_svn7768_686"
  1592. ><td id="686"><a href="#686">686</a></td></tr
  1593. ><tr id="gr_svn7768_687"
  1594. ><td id="687"><a href="#687">687</a></td></tr
  1595. ><tr id="gr_svn7768_688"
  1596. ><td id="688"><a href="#688">688</a></td></tr
  1597. ><tr id="gr_svn7768_689"
  1598. ><td id="689"><a href="#689">689</a></td></tr
  1599. ><tr id="gr_svn7768_690"
  1600. ><td id="690"><a href="#690">690</a></td></tr
  1601. ><tr id="gr_svn7768_691"
  1602. ><td id="691"><a href="#691">691</a></td></tr
  1603. ><tr id="gr_svn7768_692"
  1604. ><td id="692"><a href="#692">692</a></td></tr
  1605. ><tr id="gr_svn7768_693"
  1606. ><td id="693"><a href="#693">693</a></td></tr
  1607. ><tr id="gr_svn7768_694"
  1608. ><td id="694"><a href="#694">694</a></td></tr
  1609. ><tr id="gr_svn7768_695"
  1610. ><td id="695"><a href="#695">695</a></td></tr
  1611. ><tr id="gr_svn7768_696"
  1612. ><td id="696"><a href="#696">696</a></td></tr
  1613. ><tr id="gr_svn7768_697"
  1614. ><td id="697"><a href="#697">697</a></td></tr
  1615. ><tr id="gr_svn7768_698"
  1616. ><td id="698"><a href="#698">698</a></td></tr
  1617. ><tr id="gr_svn7768_699"
  1618. ><td id="699"><a href="#699">699</a></td></tr
  1619. ><tr id="gr_svn7768_700"
  1620. ><td id="700"><a href="#700">700</a></td></tr
  1621. ><tr id="gr_svn7768_701"
  1622. ><td id="701"><a href="#701">701</a></td></tr
  1623. ><tr id="gr_svn7768_702"
  1624. ><td id="702"><a href="#702">702</a></td></tr
  1625. ><tr id="gr_svn7768_703"
  1626. ><td id="703"><a href="#703">703</a></td></tr
  1627. ><tr id="gr_svn7768_704"
  1628. ><td id="704"><a href="#704">704</a></td></tr
  1629. ><tr id="gr_svn7768_705"
  1630. ><td id="705"><a href="#705">705</a></td></tr
  1631. ><tr id="gr_svn7768_706"
  1632. ><td id="706"><a href="#706">706</a></td></tr
  1633. ><tr id="gr_svn7768_707"
  1634. ><td id="707"><a href="#707">707</a></td></tr
  1635. ><tr id="gr_svn7768_708"
  1636. ><td id="708"><a href="#708">708</a></td></tr
  1637. ><tr id="gr_svn7768_709"
  1638. ><td id="709"><a href="#709">709</a></td></tr
  1639. ><tr id="gr_svn7768_710"
  1640. ><td id="710"><a href="#710">710</a></td></tr
  1641. ><tr id="gr_svn7768_711"
  1642. ><td id="711"><a href="#711">711</a></td></tr
  1643. ><tr id="gr_svn7768_712"
  1644. ><td id="712"><a href="#712">712</a></td></tr
  1645. ><tr id="gr_svn7768_713"
  1646. ><td id="713"><a href="#713">713</a></td></tr
  1647. ><tr id="gr_svn7768_714"
  1648. ><td id="714"><a href="#714">714</a></td></tr
  1649. ><tr id="gr_svn7768_715"
  1650. ><td id="715"><a href="#715">715</a></td></tr
  1651. ><tr id="gr_svn7768_716"
  1652. ><td id="716"><a href="#716">716</a></td></tr
  1653. ><tr id="gr_svn7768_717"
  1654. ><td id="717"><a href="#717">717</a></td></tr
  1655. ><tr id="gr_svn7768_718"
  1656. ><td id="718"><a href="#718">718</a></td></tr
  1657. ><tr id="gr_svn7768_719"
  1658. ><td id="719"><a href="#719">719</a></td></tr
  1659. ><tr id="gr_svn7768_720"
  1660. ><td id="720"><a href="#720">720</a></td></tr
  1661. ><tr id="gr_svn7768_721"
  1662. ><td id="721"><a href="#721">721</a></td></tr
  1663. ><tr id="gr_svn7768_722"
  1664. ><td id="722"><a href="#722">722</a></td></tr
  1665. ><tr id="gr_svn7768_723"
  1666. ><td id="723"><a href="#723">723</a></td></tr
  1667. ><tr id="gr_svn7768_724"
  1668. ><td id="724"><a href="#724">724</a></td></tr
  1669. ><tr id="gr_svn7768_725"
  1670. ><td id="725"><a href="#725">725</a></td></tr
  1671. ><tr id="gr_svn7768_726"
  1672. ><td id="726"><a href="#726">726</a></td></tr
  1673. ><tr id="gr_svn7768_727"
  1674. ><td id="727"><a href="#727">727</a></td></tr
  1675. ><tr id="gr_svn7768_728"
  1676. ><td id="728"><a href="#728">728</a></td></tr
  1677. ><tr id="gr_svn7768_729"
  1678. ><td id="729"><a href="#729">729</a></td></tr
  1679. ><tr id="gr_svn7768_730"
  1680. ><td id="730"><a href="#730">730</a></td></tr
  1681. ><tr id="gr_svn7768_731"
  1682. ><td id="731"><a href="#731">731</a></td></tr
  1683. ><tr id="gr_svn7768_732"
  1684. ><td id="732"><a href="#732">732</a></td></tr
  1685. ><tr id="gr_svn7768_733"
  1686. ><td id="733"><a href="#733">733</a></td></tr
  1687. ><tr id="gr_svn7768_734"
  1688. ><td id="734"><a href="#734">734</a></td></tr
  1689. ><tr id="gr_svn7768_735"
  1690. ><td id="735"><a href="#735">735</a></td></tr
  1691. ><tr id="gr_svn7768_736"
  1692. ><td id="736"><a href="#736">736</a></td></tr
  1693. ><tr id="gr_svn7768_737"
  1694. ><td id="737"><a href="#737">737</a></td></tr
  1695. ><tr id="gr_svn7768_738"
  1696. ><td id="738"><a href="#738">738</a></td></tr
  1697. ><tr id="gr_svn7768_739"
  1698. ><td id="739"><a href="#739">739</a></td></tr
  1699. ><tr id="gr_svn7768_740"
  1700. ><td id="740"><a href="#740">740</a></td></tr
  1701. ><tr id="gr_svn7768_741"
  1702. ><td id="741"><a href="#741">741</a></td></tr
  1703. ><tr id="gr_svn7768_742"
  1704. ><td id="742"><a href="#742">742</a></td></tr
  1705. ><tr id="gr_svn7768_743"
  1706. ><td id="743"><a href="#743">743</a></td></tr
  1707. ><tr id="gr_svn7768_744"
  1708. ><td id="744"><a href="#744">744</a></td></tr
  1709. ><tr id="gr_svn7768_745"
  1710. ><td id="745"><a href="#745">745</a></td></tr
  1711. ><tr id="gr_svn7768_746"
  1712. ><td id="746"><a href="#746">746</a></td></tr
  1713. ><tr id="gr_svn7768_747"
  1714. ><td id="747"><a href="#747">747</a></td></tr
  1715. ><tr id="gr_svn7768_748"
  1716. ><td id="748"><a href="#748">748</a></td></tr
  1717. ><tr id="gr_svn7768_749"
  1718. ><td id="749"><a href="#749">749</a></td></tr
  1719. ><tr id="gr_svn7768_750"
  1720. ><td id="750"><a href="#750">750</a></td></tr
  1721. ><tr id="gr_svn7768_751"
  1722. ><td id="751"><a href="#751">751</a></td></tr
  1723. ><tr id="gr_svn7768_752"
  1724. ><td id="752"><a href="#752">752</a></td></tr
  1725. ><tr id="gr_svn7768_753"
  1726. ><td id="753"><a href="#753">753</a></td></tr
  1727. ><tr id="gr_svn7768_754"
  1728. ><td id="754"><a href="#754">754</a></td></tr
  1729. ><tr id="gr_svn7768_755"
  1730. ><td id="755"><a href="#755">755</a></td></tr
  1731. ><tr id="gr_svn7768_756"
  1732. ><td id="756"><a href="#756">756</a></td></tr
  1733. ><tr id="gr_svn7768_757"
  1734. ><td id="757"><a href="#757">757</a></td></tr
  1735. ><tr id="gr_svn7768_758"
  1736. ><td id="758"><a href="#758">758</a></td></tr
  1737. ><tr id="gr_svn7768_759"
  1738. ><td id="759"><a href="#759">759</a></td></tr
  1739. ><tr id="gr_svn7768_760"
  1740. ><td id="760"><a href="#760">760</a></td></tr
  1741. ><tr id="gr_svn7768_761"
  1742. ><td id="761"><a href="#761">761</a></td></tr
  1743. ><tr id="gr_svn7768_762"
  1744. ><td id="762"><a href="#762">762</a></td></tr
  1745. ><tr id="gr_svn7768_763"
  1746. ><td id="763"><a href="#763">763</a></td></tr
  1747. ><tr id="gr_svn7768_764"
  1748. ><td id="764"><a href="#764">764</a></td></tr
  1749. ><tr id="gr_svn7768_765"
  1750. ><td id="765"><a href="#765">765</a></td></tr
  1751. ><tr id="gr_svn7768_766"
  1752. ><td id="766"><a href="#766">766</a></td></tr
  1753. ><tr id="gr_svn7768_767"
  1754. ><td id="767"><a href="#767">767</a></td></tr
  1755. ><tr id="gr_svn7768_768"
  1756. ><td id="768"><a href="#768">768</a></td></tr
  1757. ><tr id="gr_svn7768_769"
  1758. ><td id="769"><a href="#769">769</a></td></tr
  1759. ><tr id="gr_svn7768_770"
  1760. ><td id="770"><a href="#770">770</a></td></tr
  1761. ><tr id="gr_svn7768_771"
  1762. ><td id="771"><a href="#771">771</a></td></tr
  1763. ><tr id="gr_svn7768_772"
  1764. ><td id="772"><a href="#772">772</a></td></tr
  1765. ><tr id="gr_svn7768_773"
  1766. ><td id="773"><a href="#773">773</a></td></tr
  1767. ><tr id="gr_svn7768_774"
  1768. ><td id="774"><a href="#774">774</a></td></tr
  1769. ><tr id="gr_svn7768_775"
  1770. ><td id="775"><a href="#775">775</a></td></tr
  1771. ><tr id="gr_svn7768_776"
  1772. ><td id="776"><a href="#776">776</a></td></tr
  1773. ><tr id="gr_svn7768_777"
  1774. ><td id="777"><a href="#777">777</a></td></tr
  1775. ><tr id="gr_svn7768_778"
  1776. ><td id="778"><a href="#778">778</a></td></tr
  1777. ><tr id="gr_svn7768_779"
  1778. ><td id="779"><a href="#779">779</a></td></tr
  1779. ><tr id="gr_svn7768_780"
  1780. ><td id="780"><a href="#780">780</a></td></tr
  1781. ><tr id="gr_svn7768_781"
  1782. ><td id="781"><a href="#781">781</a></td></tr
  1783. ><tr id="gr_svn7768_782"
  1784. ><td id="782"><a href="#782">782</a></td></tr
  1785. ><tr id="gr_svn7768_783"
  1786. ><td id="783"><a href="#783">783</a></td></tr
  1787. ><tr id="gr_svn7768_784"
  1788. ><td id="784"><a href="#784">784</a></td></tr
  1789. ><tr id="gr_svn7768_785"
  1790. ><td id="785"><a href="#785">785</a></td></tr
  1791. ><tr id="gr_svn7768_786"
  1792. ><td id="786"><a href="#786">786</a></td></tr
  1793. ><tr id="gr_svn7768_787"
  1794. ><td id="787"><a href="#787">787</a></td></tr
  1795. ><tr id="gr_svn7768_788"
  1796. ><td id="788"><a href="#788">788</a></td></tr
  1797. ><tr id="gr_svn7768_789"
  1798. ><td id="789"><a href="#789">789</a></td></tr
  1799. ><tr id="gr_svn7768_790"
  1800. ><td id="790"><a href="#790">790</a></td></tr
  1801. ><tr id="gr_svn7768_791"
  1802. ><td id="791"><a href="#791">791</a></td></tr
  1803. ><tr id="gr_svn7768_792"
  1804. ><td id="792"><a href="#792">792</a></td></tr
  1805. ><tr id="gr_svn7768_793"
  1806. ><td id="793"><a href="#793">793</a></td></tr
  1807. ><tr id="gr_svn7768_794"
  1808. ><td id="794"><a href="#794">794</a></td></tr
  1809. ><tr id="gr_svn7768_795"
  1810. ><td id="795"><a href="#795">795</a></td></tr
  1811. ><tr id="gr_svn7768_796"
  1812. ><td id="796"><a href="#796">796</a></td></tr
  1813. ><tr id="gr_svn7768_797"
  1814. ><td id="797"><a href="#797">797</a></td></tr
  1815. ><tr id="gr_svn7768_798"
  1816. ><td id="798"><a href="#798">798</a></td></tr
  1817. ><tr id="gr_svn7768_799"
  1818. ><td id="799"><a href="#799">799</a></td></tr
  1819. ><tr id="gr_svn7768_800"
  1820. ><td id="800"><a href="#800">800</a></td></tr
  1821. ><tr id="gr_svn7768_801"
  1822. ><td id="801"><a href="#801">801</a></td></tr
  1823. ><tr id="gr_svn7768_802"
  1824. ><td id="802"><a href="#802">802</a></td></tr
  1825. ><tr id="gr_svn7768_803"
  1826. ><td id="803"><a href="#803">803</a></td></tr
  1827. ><tr id="gr_svn7768_804"
  1828. ><td id="804"><a href="#804">804</a></td></tr
  1829. ><tr id="gr_svn7768_805"
  1830. ><td id="805"><a href="#805">805</a></td></tr
  1831. ><tr id="gr_svn7768_806"
  1832. ><td id="806"><a href="#806">806</a></td></tr
  1833. ><tr id="gr_svn7768_807"
  1834. ><td id="807"><a href="#807">807</a></td></tr
  1835. ><tr id="gr_svn7768_808"
  1836. ><td id="808"><a href="#808">808</a></td></tr
  1837. ><tr id="gr_svn7768_809"
  1838. ><td id="809"><a href="#809">809</a></td></tr
  1839. ><tr id="gr_svn7768_810"
  1840. ><td id="810"><a href="#810">810</a></td></tr
  1841. ><tr id="gr_svn7768_811"
  1842. ><td id="811"><a href="#811">811</a></td></tr
  1843. ><tr id="gr_svn7768_812"
  1844. ><td id="812"><a href="#812">812</a></td></tr
  1845. ><tr id="gr_svn7768_813"
  1846. ><td id="813"><a href="#813">813</a></td></tr
  1847. ><tr id="gr_svn7768_814"
  1848. ><td id="814"><a href="#814">814</a></td></tr
  1849. ><tr id="gr_svn7768_815"
  1850. ><td id="815"><a href="#815">815</a></td></tr
  1851. ><tr id="gr_svn7768_816"
  1852. ><td id="816"><a href="#816">816</a></td></tr
  1853. ><tr id="gr_svn7768_817"
  1854. ><td id="817"><a href="#817">817</a></td></tr
  1855. ><tr id="gr_svn7768_818"
  1856. ><td id="818"><a href="#818">818</a></td></tr
  1857. ><tr id="gr_svn7768_819"
  1858. ><td id="819"><a href="#819">819</a></td></tr
  1859. ><tr id="gr_svn7768_820"
  1860. ><td id="820"><a href="#820">820</a></td></tr
  1861. ><tr id="gr_svn7768_821"
  1862. ><td id="821"><a href="#821">821</a></td></tr
  1863. ><tr id="gr_svn7768_822"
  1864. ><td id="822"><a href="#822">822</a></td></tr
  1865. ><tr id="gr_svn7768_823"
  1866. ><td id="823"><a href="#823">823</a></td></tr
  1867. ><tr id="gr_svn7768_824"
  1868. ><td id="824"><a href="#824">824</a></td></tr
  1869. ><tr id="gr_svn7768_825"
  1870. ><td id="825"><a href="#825">825</a></td></tr
  1871. ><tr id="gr_svn7768_826"
  1872. ><td id="826"><a href="#826">826</a></td></tr
  1873. ><tr id="gr_svn7768_827"
  1874. ><td id="827"><a href="#827">827</a></td></tr
  1875. ><tr id="gr_svn7768_828"
  1876. ><td id="828"><a href="#828">828</a></td></tr
  1877. ><tr id="gr_svn7768_829"
  1878. ><td id="829"><a href="#829">829</a></td></tr
  1879. ><tr id="gr_svn7768_830"
  1880. ><td id="830"><a href="#830">830</a></td></tr
  1881. ><tr id="gr_svn7768_831"
  1882. ><td id="831"><a href="#831">831</a></td></tr
  1883. ><tr id="gr_svn7768_832"
  1884. ><td id="832"><a href="#832">832</a></td></tr
  1885. ><tr id="gr_svn7768_833"
  1886. ><td id="833"><a href="#833">833</a></td></tr
  1887. ><tr id="gr_svn7768_834"
  1888. ><td id="834"><a href="#834">834</a></td></tr
  1889. ><tr id="gr_svn7768_835"
  1890. ><td id="835"><a href="#835">835</a></td></tr
  1891. ><tr id="gr_svn7768_836"
  1892. ><td id="836"><a href="#836">836</a></td></tr
  1893. ><tr id="gr_svn7768_837"
  1894. ><td id="837"><a href="#837">837</a></td></tr
  1895. ><tr id="gr_svn7768_838"
  1896. ><td id="838"><a href="#838">838</a></td></tr
  1897. ><tr id="gr_svn7768_839"
  1898. ><td id="839"><a href="#839">839</a></td></tr
  1899. ><tr id="gr_svn7768_840"
  1900. ><td id="840"><a href="#840">840</a></td></tr
  1901. ><tr id="gr_svn7768_841"
  1902. ><td id="841"><a href="#841">841</a></td></tr
  1903. ><tr id="gr_svn7768_842"
  1904. ><td id="842"><a href="#842">842</a></td></tr
  1905. ><tr id="gr_svn7768_843"
  1906. ><td id="843"><a href="#843">843</a></td></tr
  1907. ><tr id="gr_svn7768_844"
  1908. ><td id="844"><a href="#844">844</a></td></tr
  1909. ><tr id="gr_svn7768_845"
  1910. ><td id="845"><a href="#845">845</a></td></tr
  1911. ><tr id="gr_svn7768_846"
  1912. ><td id="846"><a href="#846">846</a></td></tr
  1913. ><tr id="gr_svn7768_847"
  1914. ><td id="847"><a href="#847">847</a></td></tr
  1915. ><tr id="gr_svn7768_848"
  1916. ><td id="848"><a href="#848">848</a></td></tr
  1917. ><tr id="gr_svn7768_849"
  1918. ><td id="849"><a href="#849">849</a></td></tr
  1919. ><tr id="gr_svn7768_850"
  1920. ><td id="850"><a href="#850">850</a></td></tr
  1921. ><tr id="gr_svn7768_851"
  1922. ><td id="851"><a href="#851">851</a></td></tr
  1923. ><tr id="gr_svn7768_852"
  1924. ><td id="852"><a href="#852">852</a></td></tr
  1925. ><tr id="gr_svn7768_853"
  1926. ><td id="853"><a href="#853">853</a></td></tr
  1927. ><tr id="gr_svn7768_854"
  1928. ><td id="854"><a href="#854">854</a></td></tr
  1929. ><tr id="gr_svn7768_855"
  1930. ><td id="855"><a href="#855">855</a></td></tr
  1931. ><tr id="gr_svn7768_856"
  1932. ><td id="856"><a href="#856">856</a></td></tr
  1933. ><tr id="gr_svn7768_857"
  1934. ><td id="857"><a href="#857">857</a></td></tr
  1935. ><tr id="gr_svn7768_858"
  1936. ><td id="858"><a href="#858">858</a></td></tr
  1937. ><tr id="gr_svn7768_859"
  1938. ><td id="859"><a href="#859">859</a></td></tr
  1939. ><tr id="gr_svn7768_860"
  1940. ><td id="860"><a href="#860">860</a></td></tr
  1941. ><tr id="gr_svn7768_861"
  1942. ><td id="861"><a href="#861">861</a></td></tr
  1943. ><tr id="gr_svn7768_862"
  1944. ><td id="862"><a href="#862">862</a></td></tr
  1945. ><tr id="gr_svn7768_863"
  1946. ><td id="863"><a href="#863">863</a></td></tr
  1947. ><tr id="gr_svn7768_864"
  1948. ><td id="864"><a href="#864">864</a></td></tr
  1949. ><tr id="gr_svn7768_865"
  1950. ><td id="865"><a href="#865">865</a></td></tr
  1951. ><tr id="gr_svn7768_866"
  1952. ><td id="866"><a href="#866">866</a></td></tr
  1953. ><tr id="gr_svn7768_867"
  1954. ><td id="867"><a href="#867">867</a></td></tr
  1955. ><tr id="gr_svn7768_868"
  1956. ><td id="868"><a href="#868">868</a></td></tr
  1957. ><tr id="gr_svn7768_869"
  1958. ><td id="869"><a href="#869">869</a></td></tr
  1959. ><tr id="gr_svn7768_870"
  1960. ><td id="870"><a href="#870">870</a></td></tr
  1961. ><tr id="gr_svn7768_871"
  1962. ><td id="871"><a href="#871">871</a></td></tr
  1963. ><tr id="gr_svn7768_872"
  1964. ><td id="872"><a href="#872">872</a></td></tr
  1965. ><tr id="gr_svn7768_873"
  1966. ><td id="873"><a href="#873">873</a></td></tr
  1967. ><tr id="gr_svn7768_874"
  1968. ><td id="874"><a href="#874">874</a></td></tr
  1969. ><tr id="gr_svn7768_875"
  1970. ><td id="875"><a href="#875">875</a></td></tr
  1971. ><tr id="gr_svn7768_876"
  1972. ><td id="876"><a href="#876">876</a></td></tr
  1973. ><tr id="gr_svn7768_877"
  1974. ><td id="877"><a href="#877">877</a></td></tr
  1975. ><tr id="gr_svn7768_878"
  1976. ><td id="878"><a href="#878">878</a></td></tr
  1977. ><tr id="gr_svn7768_879"
  1978. ><td id="879"><a href="#879">879</a></td></tr
  1979. ><tr id="gr_svn7768_880"
  1980. ><td id="880"><a href="#880">880</a></td></tr
  1981. ><tr id="gr_svn7768_881"
  1982. ><td id="881"><a href="#881">881</a></td></tr
  1983. ><tr id="gr_svn7768_882"
  1984. ><td id="882"><a href="#882">882</a></td></tr
  1985. ><tr id="gr_svn7768_883"
  1986. ><td id="883"><a href="#883">883</a></td></tr
  1987. ><tr id="gr_svn7768_884"
  1988. ><td id="884"><a href="#884">884</a></td></tr
  1989. ><tr id="gr_svn7768_885"
  1990. ><td id="885"><a href="#885">885</a></td></tr
  1991. ><tr id="gr_svn7768_886"
  1992. ><td id="886"><a href="#886">886</a></td></tr
  1993. ><tr id="gr_svn7768_887"
  1994. ><td id="887"><a href="#887">887</a></td></tr
  1995. ><tr id="gr_svn7768_888"
  1996. ><td id="888"><a href="#888">888</a></td></tr
  1997. ><tr id="gr_svn7768_889"
  1998. ><td id="889"><a href="#889">889</a></td></tr
  1999. ><tr id="gr_svn7768_890"
  2000. ><td id="890"><a href="#890">890</a></td></tr
  2001. ><tr id="gr_svn7768_891"
  2002. ><td id="891"><a href="#891">891</a></td></tr
  2003. ><tr id="gr_svn7768_892"
  2004. ><td id="892"><a href="#892">892</a></td></tr
  2005. ><tr id="gr_svn7768_893"
  2006. ><td id="893"><a href="#893">893</a></td></tr
  2007. ><tr id="gr_svn7768_894"
  2008. ><td id="894"><a href="#894">894</a></td></tr
  2009. ><tr id="gr_svn7768_895"
  2010. ><td id="895"><a href="#895">895</a></td></tr
  2011. ><tr id="gr_svn7768_896"
  2012. ><td id="896"><a href="#896">896</a></td></tr
  2013. ><tr id="gr_svn7768_897"
  2014. ><td id="897"><a href="#897">897</a></td></tr
  2015. ><tr id="gr_svn7768_898"
  2016. ><td id="898"><a href="#898">898</a></td></tr
  2017. ><tr id="gr_svn7768_899"
  2018. ><td id="899"><a href="#899">899</a></td></tr
  2019. ><tr id="gr_svn7768_900"
  2020. ><td id="900"><a href="#900">900</a></td></tr
  2021. ><tr id="gr_svn7768_901"
  2022. ><td id="901"><a href="#901">901</a></td></tr
  2023. ><tr id="gr_svn7768_902"
  2024. ><td id="902"><a href="#902">902</a></td></tr
  2025. ><tr id="gr_svn7768_903"
  2026. ><td id="903"><a href="#903">903</a></td></tr
  2027. ><tr id="gr_svn7768_904"
  2028. ><td id="904"><a href="#904">904</a></td></tr
  2029. ><tr id="gr_svn7768_905"
  2030. ><td id="905"><a href="#905">905</a></td></tr
  2031. ><tr id="gr_svn7768_906"
  2032. ><td id="906"><a href="#906">906</a></td></tr
  2033. ><tr id="gr_svn7768_907"
  2034. ><td id="907"><a href="#907">907</a></td></tr
  2035. ><tr id="gr_svn7768_908"
  2036. ><td id="908"><a href="#908">908</a></td></tr
  2037. ><tr id="gr_svn7768_909"
  2038. ><td id="909"><a href="#909">909</a></td></tr
  2039. ><tr id="gr_svn7768_910"
  2040. ><td id="910"><a href="#910">910</a></td></tr
  2041. ><tr id="gr_svn7768_911"
  2042. ><td id="911"><a href="#911">911</a></td></tr
  2043. ><tr id="gr_svn7768_912"
  2044. ><td id="912"><a href="#912">912</a></td></tr
  2045. ><tr id="gr_svn7768_913"
  2046. ><td id="913"><a href="#913">913</a></td></tr
  2047. ><tr id="gr_svn7768_914"
  2048. ><td id="914"><a href="#914">914</a></td></tr
  2049. ><tr id="gr_svn7768_915"
  2050. ><td id="915"><a href="#915">915</a></td></tr
  2051. ><tr id="gr_svn7768_916"
  2052. ><td id="916"><a href="#916">916</a></td></tr
  2053. ><tr id="gr_svn7768_917"
  2054. ><td id="917"><a href="#917">917</a></td></tr
  2055. ><tr id="gr_svn7768_918"
  2056. ><td id="918"><a href="#918">918</a></td></tr
  2057. ><tr id="gr_svn7768_919"
  2058. ><td id="919"><a href="#919">919</a></td></tr
  2059. ><tr id="gr_svn7768_920"
  2060. ><td id="920"><a href="#920">920</a></td></tr
  2061. ><tr id="gr_svn7768_921"
  2062. ><td id="921"><a href="#921">921</a></td></tr
  2063. ><tr id="gr_svn7768_922"
  2064. ><td id="922"><a href="#922">922</a></td></tr
  2065. ><tr id="gr_svn7768_923"
  2066. ><td id="923"><a href="#923">923</a></td></tr
  2067. ><tr id="gr_svn7768_924"
  2068. ><td id="924"><a href="#924">924</a></td></tr
  2069. ><tr id="gr_svn7768_925"
  2070. ><td id="925"><a href="#925">925</a></td></tr
  2071. ><tr id="gr_svn7768_926"
  2072. ><td id="926"><a href="#926">926</a></td></tr
  2073. ><tr id="gr_svn7768_927"
  2074. ><td id="927"><a href="#927">927</a></td></tr
  2075. ><tr id="gr_svn7768_928"
  2076. ><td id="928"><a href="#928">928</a></td></tr
  2077. ><tr id="gr_svn7768_929"
  2078. ><td id="929"><a href="#929">929</a></td></tr
  2079. ><tr id="gr_svn7768_930"
  2080. ><td id="930"><a href="#930">930</a></td></tr
  2081. ><tr id="gr_svn7768_931"
  2082. ><td id="931"><a href="#931">931</a></td></tr
  2083. ><tr id="gr_svn7768_932"
  2084. ><td id="932"><a href="#932">932</a></td></tr
  2085. ><tr id="gr_svn7768_933"
  2086. ><td id="933"><a href="#933">933</a></td></tr
  2087. ><tr id="gr_svn7768_934"
  2088. ><td id="934"><a href="#934">934</a></td></tr
  2089. ><tr id="gr_svn7768_935"
  2090. ><td id="935"><a href="#935">935</a></td></tr
  2091. ><tr id="gr_svn7768_936"
  2092. ><td id="936"><a href="#936">936</a></td></tr
  2093. ><tr id="gr_svn7768_937"
  2094. ><td id="937"><a href="#937">937</a></td></tr
  2095. ><tr id="gr_svn7768_938"
  2096. ><td id="938"><a href="#938">938</a></td></tr
  2097. ><tr id="gr_svn7768_939"
  2098. ><td id="939"><a href="#939">939</a></td></tr
  2099. ><tr id="gr_svn7768_940"
  2100. ><td id="940"><a href="#940">940</a></td></tr
  2101. ><tr id="gr_svn7768_941"
  2102. ><td id="941"><a href="#941">941</a></td></tr
  2103. ><tr id="gr_svn7768_942"
  2104. ><td id="942"><a href="#942">942</a></td></tr
  2105. ><tr id="gr_svn7768_943"
  2106. ><td id="943"><a href="#943">943</a></td></tr
  2107. ><tr id="gr_svn7768_944"
  2108. ><td id="944"><a href="#944">944</a></td></tr
  2109. ><tr id="gr_svn7768_945"
  2110. ><td id="945"><a href="#945">945</a></td></tr
  2111. ><tr id="gr_svn7768_946"
  2112. ><td id="946"><a href="#946">946</a></td></tr
  2113. ><tr id="gr_svn7768_947"
  2114. ><td id="947"><a href="#947">947</a></td></tr
  2115. ><tr id="gr_svn7768_948"
  2116. ><td id="948"><a href="#948">948</a></td></tr
  2117. ><tr id="gr_svn7768_949"
  2118. ><td id="949"><a href="#949">949</a></td></tr
  2119. ><tr id="gr_svn7768_950"
  2120. ><td id="950"><a href="#950">950</a></td></tr
  2121. ><tr id="gr_svn7768_951"
  2122. ><td id="951"><a href="#951">951</a></td></tr
  2123. ><tr id="gr_svn7768_952"
  2124. ><td id="952"><a href="#952">952</a></td></tr
  2125. ><tr id="gr_svn7768_953"
  2126. ><td id="953"><a href="#953">953</a></td></tr
  2127. ><tr id="gr_svn7768_954"
  2128. ><td id="954"><a href="#954">954</a></td></tr
  2129. ><tr id="gr_svn7768_955"
  2130. ><td id="955"><a href="#955">955</a></td></tr
  2131. ><tr id="gr_svn7768_956"
  2132. ><td id="956"><a href="#956">956</a></td></tr
  2133. ><tr id="gr_svn7768_957"
  2134. ><td id="957"><a href="#957">957</a></td></tr
  2135. ><tr id="gr_svn7768_958"
  2136. ><td id="958"><a href="#958">958</a></td></tr
  2137. ><tr id="gr_svn7768_959"
  2138. ><td id="959"><a href="#959">959</a></td></tr
  2139. ><tr id="gr_svn7768_960"
  2140. ><td id="960"><a href="#960">960</a></td></tr
  2141. ><tr id="gr_svn7768_961"
  2142. ><td id="961"><a href="#961">961</a></td></tr
  2143. ><tr id="gr_svn7768_962"
  2144. ><td id="962"><a href="#962">962</a></td></tr
  2145. ><tr id="gr_svn7768_963"
  2146. ><td id="963"><a href="#963">963</a></td></tr
  2147. ><tr id="gr_svn7768_964"
  2148. ><td id="964"><a href="#964">964</a></td></tr
  2149. ><tr id="gr_svn7768_965"
  2150. ><td id="965"><a href="#965">965</a></td></tr
  2151. ><tr id="gr_svn7768_966"
  2152. ><td id="966"><a href="#966">966</a></td></tr
  2153. ><tr id="gr_svn7768_967"
  2154. ><td id="967"><a href="#967">967</a></td></tr
  2155. ><tr id="gr_svn7768_968"
  2156. ><td id="968"><a href="#968">968</a></td></tr
  2157. ><tr id="gr_svn7768_969"
  2158. ><td id="969"><a href="#969">969</a></td></tr
  2159. ><tr id="gr_svn7768_970"
  2160. ><td id="970"><a href="#970">970</a></td></tr
  2161. ><tr id="gr_svn7768_971"
  2162. ><td id="971"><a href="#971">971</a></td></tr
  2163. ><tr id="gr_svn7768_972"
  2164. ><td id="972"><a href="#972">972</a></td></tr
  2165. ><tr id="gr_svn7768_973"
  2166. ><td id="973"><a href="#973">973</a></td></tr
  2167. ><tr id="gr_svn7768_974"
  2168. ><td id="974"><a href="#974">974</a></td></tr
  2169. ><tr id="gr_svn7768_975"
  2170. ><td id="975"><a href="#975">975</a></td></tr
  2171. ><tr id="gr_svn7768_976"
  2172. ><td id="976"><a href="#976">976</a></td></tr
  2173. ><tr id="gr_svn7768_977"
  2174. ><td id="977"><a href="#977">977</a></td></tr
  2175. ><tr id="gr_svn7768_978"
  2176. ><td id="978"><a href="#978">978</a></td></tr
  2177. ><tr id="gr_svn7768_979"
  2178. ><td id="979"><a href="#979">979</a></td></tr
  2179. ><tr id="gr_svn7768_980"
  2180. ><td id="980"><a href="#980">980</a></td></tr
  2181. ><tr id="gr_svn7768_981"
  2182. ><td id="981"><a href="#981">981</a></td></tr
  2183. ><tr id="gr_svn7768_982"
  2184. ><td id="982"><a href="#982">982</a></td></tr
  2185. ><tr id="gr_svn7768_983"
  2186. ><td id="983"><a href="#983">983</a></td></tr
  2187. ><tr id="gr_svn7768_984"
  2188. ><td id="984"><a href="#984">984</a></td></tr
  2189. ><tr id="gr_svn7768_985"
  2190. ><td id="985"><a href="#985">985</a></td></tr
  2191. ><tr id="gr_svn7768_986"
  2192. ><td id="986"><a href="#986">986</a></td></tr
  2193. ><tr id="gr_svn7768_987"
  2194. ><td id="987"><a href="#987">987</a></td></tr
  2195. ><tr id="gr_svn7768_988"
  2196. ><td id="988"><a href="#988">988</a></td></tr
  2197. ><tr id="gr_svn7768_989"
  2198. ><td id="989"><a href="#989">989</a></td></tr
  2199. ><tr id="gr_svn7768_990"
  2200. ><td id="990"><a href="#990">990</a></td></tr
  2201. ><tr id="gr_svn7768_991"
  2202. ><td id="991"><a href="#991">991</a></td></tr
  2203. ><tr id="gr_svn7768_992"
  2204. ><td id="992"><a href="#992">992</a></td></tr
  2205. ><tr id="gr_svn7768_993"
  2206. ><td id="993"><a href="#993">993</a></td></tr
  2207. ><tr id="gr_svn7768_994"
  2208. ><td id="994"><a href="#994">994</a></td></tr
  2209. ><tr id="gr_svn7768_995"
  2210. ><td id="995"><a href="#995">995</a></td></tr
  2211. ><tr id="gr_svn7768_996"
  2212. ><td id="996"><a href="#996">996</a></td></tr
  2213. ><tr id="gr_svn7768_997"
  2214. ><td id="997"><a href="#997">997</a></td></tr
  2215. ><tr id="gr_svn7768_998"
  2216. ><td id="998"><a href="#998">998</a></td></tr
  2217. ><tr id="gr_svn7768_999"
  2218. ><td id="999"><a href="#999">999</a></td></tr
  2219. ><tr id="gr_svn7768_1000"
  2220. ><td id="1000"><a href="#1000">1000</a></td></tr
  2221. ><tr id="gr_svn7768_1001"
  2222. ><td id="1001"><a href="#1001">1001</a></td></tr
  2223. ><tr id="gr_svn7768_1002"
  2224. ><td id="1002"><a href="#1002">1002</a></td></tr
  2225. ><tr id="gr_svn7768_1003"
  2226. ><td id="1003"><a href="#1003">1003</a></td></tr
  2227. ><tr id="gr_svn7768_1004"
  2228. ><td id="1004"><a href="#1004">1004</a></td></tr
  2229. ><tr id="gr_svn7768_1005"
  2230. ><td id="1005"><a href="#1005">1005</a></td></tr
  2231. ><tr id="gr_svn7768_1006"
  2232. ><td id="1006"><a href="#1006">1006</a></td></tr
  2233. ><tr id="gr_svn7768_1007"
  2234. ><td id="1007"><a href="#1007">1007</a></td></tr
  2235. ><tr id="gr_svn7768_1008"
  2236. ><td id="1008"><a href="#1008">1008</a></td></tr
  2237. ><tr id="gr_svn7768_1009"
  2238. ><td id="1009"><a href="#1009">1009</a></td></tr
  2239. ><tr id="gr_svn7768_1010"
  2240. ><td id="1010"><a href="#1010">1010</a></td></tr
  2241. ><tr id="gr_svn7768_1011"
  2242. ><td id="1011"><a href="#1011">1011</a></td></tr
  2243. ><tr id="gr_svn7768_1012"
  2244. ><td id="1012"><a href="#1012">1012</a></td></tr
  2245. ><tr id="gr_svn7768_1013"
  2246. ><td id="1013"><a href="#1013">1013</a></td></tr
  2247. ><tr id="gr_svn7768_1014"
  2248. ><td id="1014"><a href="#1014">1014</a></td></tr
  2249. ><tr id="gr_svn7768_1015"
  2250. ><td id="1015"><a href="#1015">1015</a></td></tr
  2251. ><tr id="gr_svn7768_1016"
  2252. ><td id="1016"><a href="#1016">1016</a></td></tr
  2253. ><tr id="gr_svn7768_1017"
  2254. ><td id="1017"><a href="#1017">1017</a></td></tr
  2255. ><tr id="gr_svn7768_1018"
  2256. ><td id="1018"><a href="#1018">1018</a></td></tr
  2257. ><tr id="gr_svn7768_1019"
  2258. ><td id="1019"><a href="#1019">1019</a></td></tr
  2259. ><tr id="gr_svn7768_1020"
  2260. ><td id="1020"><a href="#1020">1020</a></td></tr
  2261. ><tr id="gr_svn7768_1021"
  2262. ><td id="1021"><a href="#1021">1021</a></td></tr
  2263. ><tr id="gr_svn7768_1022"
  2264. ><td id="1022"><a href="#1022">1022</a></td></tr
  2265. ><tr id="gr_svn7768_1023"
  2266. ><td id="1023"><a href="#1023">1023</a></td></tr
  2267. ><tr id="gr_svn7768_1024"
  2268. ><td id="1024"><a href="#1024">1024</a></td></tr
  2269. ><tr id="gr_svn7768_1025"
  2270. ><td id="1025"><a href="#1025">1025</a></td></tr
  2271. ><tr id="gr_svn7768_1026"
  2272. ><td id="1026"><a href="#1026">1026</a></td></tr
  2273. ><tr id="gr_svn7768_1027"
  2274. ><td id="1027"><a href="#1027">1027</a></td></tr
  2275. ><tr id="gr_svn7768_1028"
  2276. ><td id="1028"><a href="#1028">1028</a></td></tr
  2277. ><tr id="gr_svn7768_1029"
  2278. ><td id="1029"><a href="#1029">1029</a></td></tr
  2279. ><tr id="gr_svn7768_1030"
  2280. ><td id="1030"><a href="#1030">1030</a></td></tr
  2281. ><tr id="gr_svn7768_1031"
  2282. ><td id="1031"><a href="#1031">1031</a></td></tr
  2283. ><tr id="gr_svn7768_1032"
  2284. ><td id="1032"><a href="#1032">1032</a></td></tr
  2285. ><tr id="gr_svn7768_1033"
  2286. ><td id="1033"><a href="#1033">1033</a></td></tr
  2287. ><tr id="gr_svn7768_1034"
  2288. ><td id="1034"><a href="#1034">1034</a></td></tr
  2289. ><tr id="gr_svn7768_1035"
  2290. ><td id="1035"><a href="#1035">1035</a></td></tr
  2291. ><tr id="gr_svn7768_1036"
  2292. ><td id="1036"><a href="#1036">1036</a></td></tr
  2293. ><tr id="gr_svn7768_1037"
  2294. ><td id="1037"><a href="#1037">1037</a></td></tr
  2295. ><tr id="gr_svn7768_1038"
  2296. ><td id="1038"><a href="#1038">1038</a></td></tr
  2297. ><tr id="gr_svn7768_1039"
  2298. ><td id="1039"><a href="#1039">1039</a></td></tr
  2299. ><tr id="gr_svn7768_1040"
  2300. ><td id="1040"><a href="#1040">1040</a></td></tr
  2301. ><tr id="gr_svn7768_1041"
  2302. ><td id="1041"><a href="#1041">1041</a></td></tr
  2303. ><tr id="gr_svn7768_1042"
  2304. ><td id="1042"><a href="#1042">1042</a></td></tr
  2305. ><tr id="gr_svn7768_1043"
  2306. ><td id="1043"><a href="#1043">1043</a></td></tr
  2307. ><tr id="gr_svn7768_1044"
  2308. ><td id="1044"><a href="#1044">1044</a></td></tr
  2309. ><tr id="gr_svn7768_1045"
  2310. ><td id="1045"><a href="#1045">1045</a></td></tr
  2311. ><tr id="gr_svn7768_1046"
  2312. ><td id="1046"><a href="#1046">1046</a></td></tr
  2313. ><tr id="gr_svn7768_1047"
  2314. ><td id="1047"><a href="#1047">1047</a></td></tr
  2315. ><tr id="gr_svn7768_1048"
  2316. ><td id="1048"><a href="#1048">1048</a></td></tr
  2317. ><tr id="gr_svn7768_1049"
  2318. ><td id="1049"><a href="#1049">1049</a></td></tr
  2319. ><tr id="gr_svn7768_1050"
  2320. ><td id="1050"><a href="#1050">1050</a></td></tr
  2321. ><tr id="gr_svn7768_1051"
  2322. ><td id="1051"><a href="#1051">1051</a></td></tr
  2323. ><tr id="gr_svn7768_1052"
  2324. ><td id="1052"><a href="#1052">1052</a></td></tr
  2325. ><tr id="gr_svn7768_1053"
  2326. ><td id="1053"><a href="#1053">1053</a></td></tr
  2327. ><tr id="gr_svn7768_1054"
  2328. ><td id="1054"><a href="#1054">1054</a></td></tr
  2329. ><tr id="gr_svn7768_1055"
  2330. ><td id="1055"><a href="#1055">1055</a></td></tr
  2331. ><tr id="gr_svn7768_1056"
  2332. ><td id="1056"><a href="#1056">1056</a></td></tr
  2333. ><tr id="gr_svn7768_1057"
  2334. ><td id="1057"><a href="#1057">1057</a></td></tr
  2335. ><tr id="gr_svn7768_1058"
  2336. ><td id="1058"><a href="#1058">1058</a></td></tr
  2337. ><tr id="gr_svn7768_1059"
  2338. ><td id="1059"><a href="#1059">1059</a></td></tr
  2339. ><tr id="gr_svn7768_1060"
  2340. ><td id="1060"><a href="#1060">1060</a></td></tr
  2341. ><tr id="gr_svn7768_1061"
  2342. ><td id="1061"><a href="#1061">1061</a></td></tr
  2343. ><tr id="gr_svn7768_1062"
  2344. ><td id="1062"><a href="#1062">1062</a></td></tr
  2345. ><tr id="gr_svn7768_1063"
  2346. ><td id="1063"><a href="#1063">1063</a></td></tr
  2347. ><tr id="gr_svn7768_1064"
  2348. ><td id="1064"><a href="#1064">1064</a></td></tr
  2349. ><tr id="gr_svn7768_1065"
  2350. ><td id="1065"><a href="#1065">1065</a></td></tr
  2351. ><tr id="gr_svn7768_1066"
  2352. ><td id="1066"><a href="#1066">1066</a></td></tr
  2353. ><tr id="gr_svn7768_1067"
  2354. ><td id="1067"><a href="#1067">1067</a></td></tr
  2355. ><tr id="gr_svn7768_1068"
  2356. ><td id="1068"><a href="#1068">1068</a></td></tr
  2357. ><tr id="gr_svn7768_1069"
  2358. ><td id="1069"><a href="#1069">1069</a></td></tr
  2359. ><tr id="gr_svn7768_1070"
  2360. ><td id="1070"><a href="#1070">1070</a></td></tr
  2361. ><tr id="gr_svn7768_1071"
  2362. ><td id="1071"><a href="#1071">1071</a></td></tr
  2363. ><tr id="gr_svn7768_1072"
  2364. ><td id="1072"><a href="#1072">1072</a></td></tr
  2365. ><tr id="gr_svn7768_1073"
  2366. ><td id="1073"><a href="#1073">1073</a></td></tr
  2367. ><tr id="gr_svn7768_1074"
  2368. ><td id="1074"><a href="#1074">1074</a></td></tr
  2369. ><tr id="gr_svn7768_1075"
  2370. ><td id="1075"><a href="#1075">1075</a></td></tr
  2371. ><tr id="gr_svn7768_1076"
  2372. ><td id="1076"><a href="#1076">1076</a></td></tr
  2373. ><tr id="gr_svn7768_1077"
  2374. ><td id="1077"><a href="#1077">1077</a></td></tr
  2375. ><tr id="gr_svn7768_1078"
  2376. ><td id="1078"><a href="#1078">1078</a></td></tr
  2377. ><tr id="gr_svn7768_1079"
  2378. ><td id="1079"><a href="#1079">1079</a></td></tr
  2379. ><tr id="gr_svn7768_1080"
  2380. ><td id="1080"><a href="#1080">1080</a></td></tr
  2381. ><tr id="gr_svn7768_1081"
  2382. ><td id="1081"><a href="#1081">1081</a></td></tr
  2383. ><tr id="gr_svn7768_1082"
  2384. ><td id="1082"><a href="#1082">1082</a></td></tr
  2385. ><tr id="gr_svn7768_1083"
  2386. ><td id="1083"><a href="#1083">1083</a></td></tr
  2387. ><tr id="gr_svn7768_1084"
  2388. ><td id="1084"><a href="#1084">1084</a></td></tr
  2389. ><tr id="gr_svn7768_1085"
  2390. ><td id="1085"><a href="#1085">1085</a></td></tr
  2391. ><tr id="gr_svn7768_1086"
  2392. ><td id="1086"><a href="#1086">1086</a></td></tr
  2393. ><tr id="gr_svn7768_1087"
  2394. ><td id="1087"><a href="#1087">1087</a></td></tr
  2395. ><tr id="gr_svn7768_1088"
  2396. ><td id="1088"><a href="#1088">1088</a></td></tr
  2397. ><tr id="gr_svn7768_1089"
  2398. ><td id="1089"><a href="#1089">1089</a></td></tr
  2399. ><tr id="gr_svn7768_1090"
  2400. ><td id="1090"><a href="#1090">1090</a></td></tr
  2401. ><tr id="gr_svn7768_1091"
  2402. ><td id="1091"><a href="#1091">1091</a></td></tr
  2403. ><tr id="gr_svn7768_1092"
  2404. ><td id="1092"><a href="#1092">1092</a></td></tr
  2405. ><tr id="gr_svn7768_1093"
  2406. ><td id="1093"><a href="#1093">1093</a></td></tr
  2407. ><tr id="gr_svn7768_1094"
  2408. ><td id="1094"><a href="#1094">1094</a></td></tr
  2409. ><tr id="gr_svn7768_1095"
  2410. ><td id="1095"><a href="#1095">1095</a></td></tr
  2411. ><tr id="gr_svn7768_1096"
  2412. ><td id="1096"><a href="#1096">1096</a></td></tr
  2413. ><tr id="gr_svn7768_1097"
  2414. ><td id="1097"><a href="#1097">1097</a></td></tr
  2415. ><tr id="gr_svn7768_1098"
  2416. ><td id="1098"><a href="#1098">1098</a></td></tr
  2417. ><tr id="gr_svn7768_1099"
  2418. ><td id="1099"><a href="#1099">1099</a></td></tr
  2419. ><tr id="gr_svn7768_1100"
  2420. ><td id="1100"><a href="#1100">1100</a></td></tr
  2421. ><tr id="gr_svn7768_1101"
  2422. ><td id="1101"><a href="#1101">1101</a></td></tr
  2423. ><tr id="gr_svn7768_1102"
  2424. ><td id="1102"><a href="#1102">1102</a></td></tr
  2425. ><tr id="gr_svn7768_1103"
  2426. ><td id="1103"><a href="#1103">1103</a></td></tr
  2427. ><tr id="gr_svn7768_1104"
  2428. ><td id="1104"><a href="#1104">1104</a></td></tr
  2429. ><tr id="gr_svn7768_1105"
  2430. ><td id="1105"><a href="#1105">1105</a></td></tr
  2431. ><tr id="gr_svn7768_1106"
  2432. ><td id="1106"><a href="#1106">1106</a></td></tr
  2433. ><tr id="gr_svn7768_1107"
  2434. ><td id="1107"><a href="#1107">1107</a></td></tr
  2435. ><tr id="gr_svn7768_1108"
  2436. ><td id="1108"><a href="#1108">1108</a></td></tr
  2437. ><tr id="gr_svn7768_1109"
  2438. ><td id="1109"><a href="#1109">1109</a></td></tr
  2439. ><tr id="gr_svn7768_1110"
  2440. ><td id="1110"><a href="#1110">1110</a></td></tr
  2441. ><tr id="gr_svn7768_1111"
  2442. ><td id="1111"><a href="#1111">1111</a></td></tr
  2443. ><tr id="gr_svn7768_1112"
  2444. ><td id="1112"><a href="#1112">1112</a></td></tr
  2445. ><tr id="gr_svn7768_1113"
  2446. ><td id="1113"><a href="#1113">1113</a></td></tr
  2447. ><tr id="gr_svn7768_1114"
  2448. ><td id="1114"><a href="#1114">1114</a></td></tr
  2449. ><tr id="gr_svn7768_1115"
  2450. ><td id="1115"><a href="#1115">1115</a></td></tr
  2451. ><tr id="gr_svn7768_1116"
  2452. ><td id="1116"><a href="#1116">1116</a></td></tr
  2453. ><tr id="gr_svn7768_1117"
  2454. ><td id="1117"><a href="#1117">1117</a></td></tr
  2455. ><tr id="gr_svn7768_1118"
  2456. ><td id="1118"><a href="#1118">1118</a></td></tr
  2457. ><tr id="gr_svn7768_1119"
  2458. ><td id="1119"><a href="#1119">1119</a></td></tr
  2459. ><tr id="gr_svn7768_1120"
  2460. ><td id="1120"><a href="#1120">1120</a></td></tr
  2461. ><tr id="gr_svn7768_1121"
  2462. ><td id="1121"><a href="#1121">1121</a></td></tr
  2463. ><tr id="gr_svn7768_1122"
  2464. ><td id="1122"><a href="#1122">1122</a></td></tr
  2465. ><tr id="gr_svn7768_1123"
  2466. ><td id="1123"><a href="#1123">1123</a></td></tr
  2467. ><tr id="gr_svn7768_1124"
  2468. ><td id="1124"><a href="#1124">1124</a></td></tr
  2469. ><tr id="gr_svn7768_1125"
  2470. ><td id="1125"><a href="#1125">1125</a></td></tr
  2471. ><tr id="gr_svn7768_1126"
  2472. ><td id="1126"><a href="#1126">1126</a></td></tr
  2473. ><tr id="gr_svn7768_1127"
  2474. ><td id="1127"><a href="#1127">1127</a></td></tr
  2475. ><tr id="gr_svn7768_1128"
  2476. ><td id="1128"><a href="#1128">1128</a></td></tr
  2477. ><tr id="gr_svn7768_1129"
  2478. ><td id="1129"><a href="#1129">1129</a></td></tr
  2479. ><tr id="gr_svn7768_1130"
  2480. ><td id="1130"><a href="#1130">1130</a></td></tr
  2481. ><tr id="gr_svn7768_1131"
  2482. ><td id="1131"><a href="#1131">1131</a></td></tr
  2483. ><tr id="gr_svn7768_1132"
  2484. ><td id="1132"><a href="#1132">1132</a></td></tr
  2485. ><tr id="gr_svn7768_1133"
  2486. ><td id="1133"><a href="#1133">1133</a></td></tr
  2487. ><tr id="gr_svn7768_1134"
  2488. ><td id="1134"><a href="#1134">1134</a></td></tr
  2489. ><tr id="gr_svn7768_1135"
  2490. ><td id="1135"><a href="#1135">1135</a></td></tr
  2491. ><tr id="gr_svn7768_1136"
  2492. ><td id="1136"><a href="#1136">1136</a></td></tr
  2493. ><tr id="gr_svn7768_1137"
  2494. ><td id="1137"><a href="#1137">1137</a></td></tr
  2495. ><tr id="gr_svn7768_1138"
  2496. ><td id="1138"><a href="#1138">1138</a></td></tr
  2497. ><tr id="gr_svn7768_1139"
  2498. ><td id="1139"><a href="#1139">1139</a></td></tr
  2499. ><tr id="gr_svn7768_1140"
  2500. ><td id="1140"><a href="#1140">1140</a></td></tr
  2501. ><tr id="gr_svn7768_1141"
  2502. ><td id="1141"><a href="#1141">1141</a></td></tr
  2503. ><tr id="gr_svn7768_1142"
  2504. ><td id="1142"><a href="#1142">1142</a></td></tr
  2505. ><tr id="gr_svn7768_1143"
  2506. ><td id="1143"><a href="#1143">1143</a></td></tr
  2507. ><tr id="gr_svn7768_1144"
  2508. ><td id="1144"><a href="#1144">1144</a></td></tr
  2509. ><tr id="gr_svn7768_1145"
  2510. ><td id="1145"><a href="#1145">1145</a></td></tr
  2511. ><tr id="gr_svn7768_1146"
  2512. ><td id="1146"><a href="#1146">1146</a></td></tr
  2513. ><tr id="gr_svn7768_1147"
  2514. ><td id="1147"><a href="#1147">1147</a></td></tr
  2515. ><tr id="gr_svn7768_1148"
  2516. ><td id="1148"><a href="#1148">1148</a></td></tr
  2517. ><tr id="gr_svn7768_1149"
  2518. ><td id="1149"><a href="#1149">1149</a></td></tr
  2519. ><tr id="gr_svn7768_1150"
  2520. ><td id="1150"><a href="#1150">1150</a></td></tr
  2521. ><tr id="gr_svn7768_1151"
  2522. ><td id="1151"><a href="#1151">1151</a></td></tr
  2523. ><tr id="gr_svn7768_1152"
  2524. ><td id="1152"><a href="#1152">1152</a></td></tr
  2525. ><tr id="gr_svn7768_1153"
  2526. ><td id="1153"><a href="#1153">1153</a></td></tr
  2527. ><tr id="gr_svn7768_1154"
  2528. ><td id="1154"><a href="#1154">1154</a></td></tr
  2529. ><tr id="gr_svn7768_1155"
  2530. ><td id="1155"><a href="#1155">1155</a></td></tr
  2531. ><tr id="gr_svn7768_1156"
  2532. ><td id="1156"><a href="#1156">1156</a></td></tr
  2533. ><tr id="gr_svn7768_1157"
  2534. ><td id="1157"><a href="#1157">1157</a></td></tr
  2535. ><tr id="gr_svn7768_1158"
  2536. ><td id="1158"><a href="#1158">1158</a></td></tr
  2537. ><tr id="gr_svn7768_1159"
  2538. ><td id="1159"><a href="#1159">1159</a></td></tr
  2539. ><tr id="gr_svn7768_1160"
  2540. ><td id="1160"><a href="#1160">1160</a></td></tr
  2541. ><tr id="gr_svn7768_1161"
  2542. ><td id="1161"><a href="#1161">1161</a></td></tr
  2543. ><tr id="gr_svn7768_1162"
  2544. ><td id="1162"><a href="#1162">1162</a></td></tr
  2545. ><tr id="gr_svn7768_1163"
  2546. ><td id="1163"><a href="#1163">1163</a></td></tr
  2547. ><tr id="gr_svn7768_1164"
  2548. ><td id="1164"><a href="#1164">1164</a></td></tr
  2549. ><tr id="gr_svn7768_1165"
  2550. ><td id="1165"><a href="#1165">1165</a></td></tr
  2551. ><tr id="gr_svn7768_1166"
  2552. ><td id="1166"><a href="#1166">1166</a></td></tr
  2553. ><tr id="gr_svn7768_1167"
  2554. ><td id="1167"><a href="#1167">1167</a></td></tr
  2555. ><tr id="gr_svn7768_1168"
  2556. ><td id="1168"><a href="#1168">1168</a></td></tr
  2557. ><tr id="gr_svn7768_1169"
  2558. ><td id="1169"><a href="#1169">1169</a></td></tr
  2559. ><tr id="gr_svn7768_1170"
  2560. ><td id="1170"><a href="#1170">1170</a></td></tr
  2561. ><tr id="gr_svn7768_1171"
  2562. ><td id="1171"><a href="#1171">1171</a></td></tr
  2563. ><tr id="gr_svn7768_1172"
  2564. ><td id="1172"><a href="#1172">1172</a></td></tr
  2565. ><tr id="gr_svn7768_1173"
  2566. ><td id="1173"><a href="#1173">1173</a></td></tr
  2567. ><tr id="gr_svn7768_1174"
  2568. ><td id="1174"><a href="#1174">1174</a></td></tr
  2569. ><tr id="gr_svn7768_1175"
  2570. ><td id="1175"><a href="#1175">1175</a></td></tr
  2571. ><tr id="gr_svn7768_1176"
  2572. ><td id="1176"><a href="#1176">1176</a></td></tr
  2573. ><tr id="gr_svn7768_1177"
  2574. ><td id="1177"><a href="#1177">1177</a></td></tr
  2575. ><tr id="gr_svn7768_1178"
  2576. ><td id="1178"><a href="#1178">1178</a></td></tr
  2577. ><tr id="gr_svn7768_1179"
  2578. ><td id="1179"><a href="#1179">1179</a></td></tr
  2579. ><tr id="gr_svn7768_1180"
  2580. ><td id="1180"><a href="#1180">1180</a></td></tr
  2581. ><tr id="gr_svn7768_1181"
  2582. ><td id="1181"><a href="#1181">1181</a></td></tr
  2583. ><tr id="gr_svn7768_1182"
  2584. ><td id="1182"><a href="#1182">1182</a></td></tr
  2585. ><tr id="gr_svn7768_1183"
  2586. ><td id="1183"><a href="#1183">1183</a></td></tr
  2587. ><tr id="gr_svn7768_1184"
  2588. ><td id="1184"><a href="#1184">1184</a></td></tr
  2589. ><tr id="gr_svn7768_1185"
  2590. ><td id="1185"><a href="#1185">1185</a></td></tr
  2591. ><tr id="gr_svn7768_1186"
  2592. ><td id="1186"><a href="#1186">1186</a></td></tr
  2593. ><tr id="gr_svn7768_1187"
  2594. ><td id="1187"><a href="#1187">1187</a></td></tr
  2595. ><tr id="gr_svn7768_1188"
  2596. ><td id="1188"><a href="#1188">1188</a></td></tr
  2597. ><tr id="gr_svn7768_1189"
  2598. ><td id="1189"><a href="#1189">1189</a></td></tr
  2599. ><tr id="gr_svn7768_1190"
  2600. ><td id="1190"><a href="#1190">1190</a></td></tr
  2601. ><tr id="gr_svn7768_1191"
  2602. ><td id="1191"><a href="#1191">1191</a></td></tr
  2603. ><tr id="gr_svn7768_1192"
  2604. ><td id="1192"><a href="#1192">1192</a></td></tr
  2605. ><tr id="gr_svn7768_1193"
  2606. ><td id="1193"><a href="#1193">1193</a></td></tr
  2607. ><tr id="gr_svn7768_1194"
  2608. ><td id="1194"><a href="#1194">1194</a></td></tr
  2609. ><tr id="gr_svn7768_1195"
  2610. ><td id="1195"><a href="#1195">1195</a></td></tr
  2611. ><tr id="gr_svn7768_1196"
  2612. ><td id="1196"><a href="#1196">1196</a></td></tr
  2613. ><tr id="gr_svn7768_1197"
  2614. ><td id="1197"><a href="#1197">1197</a></td></tr
  2615. ><tr id="gr_svn7768_1198"
  2616. ><td id="1198"><a href="#1198">1198</a></td></tr
  2617. ><tr id="gr_svn7768_1199"
  2618. ><td id="1199"><a href="#1199">1199</a></td></tr
  2619. ><tr id="gr_svn7768_1200"
  2620. ><td id="1200"><a href="#1200">1200</a></td></tr
  2621. ><tr id="gr_svn7768_1201"
  2622. ><td id="1201"><a href="#1201">1201</a></td></tr
  2623. ><tr id="gr_svn7768_1202"
  2624. ><td id="1202"><a href="#1202">1202</a></td></tr
  2625. ><tr id="gr_svn7768_1203"
  2626. ><td id="1203"><a href="#1203">1203</a></td></tr
  2627. ><tr id="gr_svn7768_1204"
  2628. ><td id="1204"><a href="#1204">1204</a></td></tr
  2629. ><tr id="gr_svn7768_1205"
  2630. ><td id="1205"><a href="#1205">1205</a></td></tr
  2631. ><tr id="gr_svn7768_1206"
  2632. ><td id="1206"><a href="#1206">1206</a></td></tr
  2633. ><tr id="gr_svn7768_1207"
  2634. ><td id="1207"><a href="#1207">1207</a></td></tr
  2635. ><tr id="gr_svn7768_1208"
  2636. ><td id="1208"><a href="#1208">1208</a></td></tr
  2637. ><tr id="gr_svn7768_1209"
  2638. ><td id="1209"><a href="#1209">1209</a></td></tr
  2639. ><tr id="gr_svn7768_1210"
  2640. ><td id="1210"><a href="#1210">1210</a></td></tr
  2641. ><tr id="gr_svn7768_1211"
  2642. ><td id="1211"><a href="#1211">1211</a></td></tr
  2643. ><tr id="gr_svn7768_1212"
  2644. ><td id="1212"><a href="#1212">1212</a></td></tr
  2645. ><tr id="gr_svn7768_1213"
  2646. ><td id="1213"><a href="#1213">1213</a></td></tr
  2647. ><tr id="gr_svn7768_1214"
  2648. ><td id="1214"><a href="#1214">1214</a></td></tr
  2649. ><tr id="gr_svn7768_1215"
  2650. ><td id="1215"><a href="#1215">1215</a></td></tr
  2651. ><tr id="gr_svn7768_1216"
  2652. ><td id="1216"><a href="#1216">1216</a></td></tr
  2653. ><tr id="gr_svn7768_1217"
  2654. ><td id="1217"><a href="#1217">1217</a></td></tr
  2655. ><tr id="gr_svn7768_1218"
  2656. ><td id="1218"><a href="#1218">1218</a></td></tr
  2657. ><tr id="gr_svn7768_1219"
  2658. ><td id="1219"><a href="#1219">1219</a></td></tr
  2659. ><tr id="gr_svn7768_1220"
  2660. ><td id="1220"><a href="#1220">1220</a></td></tr
  2661. ><tr id="gr_svn7768_1221"
  2662. ><td id="1221"><a href="#1221">1221</a></td></tr
  2663. ><tr id="gr_svn7768_1222"
  2664. ><td id="1222"><a href="#1222">1222</a></td></tr
  2665. ><tr id="gr_svn7768_1223"
  2666. ><td id="1223"><a href="#1223">1223</a></td></tr
  2667. ><tr id="gr_svn7768_1224"
  2668. ><td id="1224"><a href="#1224">1224</a></td></tr
  2669. ><tr id="gr_svn7768_1225"
  2670. ><td id="1225"><a href="#1225">1225</a></td></tr
  2671. ><tr id="gr_svn7768_1226"
  2672. ><td id="1226"><a href="#1226">1226</a></td></tr
  2673. ><tr id="gr_svn7768_1227"
  2674. ><td id="1227"><a href="#1227">1227</a></td></tr
  2675. ><tr id="gr_svn7768_1228"
  2676. ><td id="1228"><a href="#1228">1228</a></td></tr
  2677. ><tr id="gr_svn7768_1229"
  2678. ><td id="1229"><a href="#1229">1229</a></td></tr
  2679. ><tr id="gr_svn7768_1230"
  2680. ><td id="1230"><a href="#1230">1230</a></td></tr
  2681. ><tr id="gr_svn7768_1231"
  2682. ><td id="1231"><a href="#1231">1231</a></td></tr
  2683. ><tr id="gr_svn7768_1232"
  2684. ><td id="1232"><a href="#1232">1232</a></td></tr
  2685. ><tr id="gr_svn7768_1233"
  2686. ><td id="1233"><a href="#1233">1233</a></td></tr
  2687. ><tr id="gr_svn7768_1234"
  2688. ><td id="1234"><a href="#1234">1234</a></td></tr
  2689. ><tr id="gr_svn7768_1235"
  2690. ><td id="1235"><a href="#1235">1235</a></td></tr
  2691. ><tr id="gr_svn7768_1236"
  2692. ><td id="1236"><a href="#1236">1236</a></td></tr
  2693. ><tr id="gr_svn7768_1237"
  2694. ><td id="1237"><a href="#1237">1237</a></td></tr
  2695. ><tr id="gr_svn7768_1238"
  2696. ><td id="1238"><a href="#1238">1238</a></td></tr
  2697. ><tr id="gr_svn7768_1239"
  2698. ><td id="1239"><a href="#1239">1239</a></td></tr
  2699. ><tr id="gr_svn7768_1240"
  2700. ><td id="1240"><a href="#1240">1240</a></td></tr
  2701. ><tr id="gr_svn7768_1241"
  2702. ><td id="1241"><a href="#1241">1241</a></td></tr
  2703. ><tr id="gr_svn7768_1242"
  2704. ><td id="1242"><a href="#1242">1242</a></td></tr
  2705. ><tr id="gr_svn7768_1243"
  2706. ><td id="1243"><a href="#1243">1243</a></td></tr
  2707. ><tr id="gr_svn7768_1244"
  2708. ><td id="1244"><a href="#1244">1244</a></td></tr
  2709. ><tr id="gr_svn7768_1245"
  2710. ><td id="1245"><a href="#1245">1245</a></td></tr
  2711. ><tr id="gr_svn7768_1246"
  2712. ><td id="1246"><a href="#1246">1246</a></td></tr
  2713. ><tr id="gr_svn7768_1247"
  2714. ><td id="1247"><a href="#1247">1247</a></td></tr
  2715. ><tr id="gr_svn7768_1248"
  2716. ><td id="1248"><a href="#1248">1248</a></td></tr
  2717. ><tr id="gr_svn7768_1249"
  2718. ><td id="1249"><a href="#1249">1249</a></td></tr
  2719. ><tr id="gr_svn7768_1250"
  2720. ><td id="1250"><a href="#1250">1250</a></td></tr
  2721. ><tr id="gr_svn7768_1251"
  2722. ><td id="1251"><a href="#1251">1251</a></td></tr
  2723. ><tr id="gr_svn7768_1252"
  2724. ><td id="1252"><a href="#1252">1252</a></td></tr
  2725. ><tr id="gr_svn7768_1253"
  2726. ><td id="1253"><a href="#1253">1253</a></td></tr
  2727. ><tr id="gr_svn7768_1254"
  2728. ><td id="1254"><a href="#1254">1254</a></td></tr
  2729. ><tr id="gr_svn7768_1255"
  2730. ><td id="1255"><a href="#1255">1255</a></td></tr
  2731. ><tr id="gr_svn7768_1256"
  2732. ><td id="1256"><a href="#1256">1256</a></td></tr
  2733. ><tr id="gr_svn7768_1257"
  2734. ><td id="1257"><a href="#1257">1257</a></td></tr
  2735. ><tr id="gr_svn7768_1258"
  2736. ><td id="1258"><a href="#1258">1258</a></td></tr
  2737. ><tr id="gr_svn7768_1259"
  2738. ><td id="1259"><a href="#1259">1259</a></td></tr
  2739. ><tr id="gr_svn7768_1260"
  2740. ><td id="1260"><a href="#1260">1260</a></td></tr
  2741. ><tr id="gr_svn7768_1261"
  2742. ><td id="1261"><a href="#1261">1261</a></td></tr
  2743. ><tr id="gr_svn7768_1262"
  2744. ><td id="1262"><a href="#1262">1262</a></td></tr
  2745. ><tr id="gr_svn7768_1263"
  2746. ><td id="1263"><a href="#1263">1263</a></td></tr
  2747. ><tr id="gr_svn7768_1264"
  2748. ><td id="1264"><a href="#1264">1264</a></td></tr
  2749. ><tr id="gr_svn7768_1265"
  2750. ><td id="1265"><a href="#1265">1265</a></td></tr
  2751. ><tr id="gr_svn7768_1266"
  2752. ><td id="1266"><a href="#1266">1266</a></td></tr
  2753. ><tr id="gr_svn7768_1267"
  2754. ><td id="1267"><a href="#1267">1267</a></td></tr
  2755. ><tr id="gr_svn7768_1268"
  2756. ><td id="1268"><a href="#1268">1268</a></td></tr
  2757. ><tr id="gr_svn7768_1269"
  2758. ><td id="1269"><a href="#1269">1269</a></td></tr
  2759. ><tr id="gr_svn7768_1270"
  2760. ><td id="1270"><a href="#1270">1270</a></td></tr
  2761. ><tr id="gr_svn7768_1271"
  2762. ><td id="1271"><a href="#1271">1271</a></td></tr
  2763. ><tr id="gr_svn7768_1272"
  2764. ><td id="1272"><a href="#1272">1272</a></td></tr
  2765. ><tr id="gr_svn7768_1273"
  2766. ><td id="1273"><a href="#1273">1273</a></td></tr
  2767. ><tr id="gr_svn7768_1274"
  2768. ><td id="1274"><a href="#1274">1274</a></td></tr
  2769. ><tr id="gr_svn7768_1275"
  2770. ><td id="1275"><a href="#1275">1275</a></td></tr
  2771. ><tr id="gr_svn7768_1276"
  2772. ><td id="1276"><a href="#1276">1276</a></td></tr
  2773. ><tr id="gr_svn7768_1277"
  2774. ><td id="1277"><a href="#1277">1277</a></td></tr
  2775. ><tr id="gr_svn7768_1278"
  2776. ><td id="1278"><a href="#1278">1278</a></td></tr
  2777. ><tr id="gr_svn7768_1279"
  2778. ><td id="1279"><a href="#1279">1279</a></td></tr
  2779. ><tr id="gr_svn7768_1280"
  2780. ><td id="1280"><a href="#1280">1280</a></td></tr
  2781. ><tr id="gr_svn7768_1281"
  2782. ><td id="1281"><a href="#1281">1281</a></td></tr
  2783. ><tr id="gr_svn7768_1282"
  2784. ><td id="1282"><a href="#1282">1282</a></td></tr
  2785. ><tr id="gr_svn7768_1283"
  2786. ><td id="1283"><a href="#1283">1283</a></td></tr
  2787. ><tr id="gr_svn7768_1284"
  2788. ><td id="1284"><a href="#1284">1284</a></td></tr
  2789. ><tr id="gr_svn7768_1285"
  2790. ><td id="1285"><a href="#1285">1285</a></td></tr
  2791. ><tr id="gr_svn7768_1286"
  2792. ><td id="1286"><a href="#1286">1286</a></td></tr
  2793. ><tr id="gr_svn7768_1287"
  2794. ><td id="1287"><a href="#1287">1287</a></td></tr
  2795. ><tr id="gr_svn7768_1288"
  2796. ><td id="1288"><a href="#1288">1288</a></td></tr
  2797. ><tr id="gr_svn7768_1289"
  2798. ><td id="1289"><a href="#1289">1289</a></td></tr
  2799. ><tr id="gr_svn7768_1290"
  2800. ><td id="1290"><a href="#1290">1290</a></td></tr
  2801. ><tr id="gr_svn7768_1291"
  2802. ><td id="1291"><a href="#1291">1291</a></td></tr
  2803. ><tr id="gr_svn7768_1292"
  2804. ><td id="1292"><a href="#1292">1292</a></td></tr
  2805. ><tr id="gr_svn7768_1293"
  2806. ><td id="1293"><a href="#1293">1293</a></td></tr
  2807. ><tr id="gr_svn7768_1294"
  2808. ><td id="1294"><a href="#1294">1294</a></td></tr
  2809. ><tr id="gr_svn7768_1295"
  2810. ><td id="1295"><a href="#1295">1295</a></td></tr
  2811. ><tr id="gr_svn7768_1296"
  2812. ><td id="1296"><a href="#1296">1296</a></td></tr
  2813. ><tr id="gr_svn7768_1297"
  2814. ><td id="1297"><a href="#1297">1297</a></td></tr
  2815. ><tr id="gr_svn7768_1298"
  2816. ><td id="1298"><a href="#1298">1298</a></td></tr
  2817. ><tr id="gr_svn7768_1299"
  2818. ><td id="1299"><a href="#1299">1299</a></td></tr
  2819. ><tr id="gr_svn7768_1300"
  2820. ><td id="1300"><a href="#1300">1300</a></td></tr
  2821. ><tr id="gr_svn7768_1301"
  2822. ><td id="1301"><a href="#1301">1301</a></td></tr
  2823. ><tr id="gr_svn7768_1302"
  2824. ><td id="1302"><a href="#1302">1302</a></td></tr
  2825. ><tr id="gr_svn7768_1303"
  2826. ><td id="1303"><a href="#1303">1303</a></td></tr
  2827. ><tr id="gr_svn7768_1304"
  2828. ><td id="1304"><a href="#1304">1304</a></td></tr
  2829. ><tr id="gr_svn7768_1305"
  2830. ><td id="1305"><a href="#1305">1305</a></td></tr
  2831. ><tr id="gr_svn7768_1306"
  2832. ><td id="1306"><a href="#1306">1306</a></td></tr
  2833. ><tr id="gr_svn7768_1307"
  2834. ><td id="1307"><a href="#1307">1307</a></td></tr
  2835. ><tr id="gr_svn7768_1308"
  2836. ><td id="1308"><a href="#1308">1308</a></td></tr
  2837. ><tr id="gr_svn7768_1309"
  2838. ><td id="1309"><a href="#1309">1309</a></td></tr
  2839. ><tr id="gr_svn7768_1310"
  2840. ><td id="1310"><a href="#1310">1310</a></td></tr
  2841. ><tr id="gr_svn7768_1311"
  2842. ><td id="1311"><a href="#1311">1311</a></td></tr
  2843. ><tr id="gr_svn7768_1312"
  2844. ><td id="1312"><a href="#1312">1312</a></td></tr
  2845. ><tr id="gr_svn7768_1313"
  2846. ><td id="1313"><a href="#1313">1313</a></td></tr
  2847. ><tr id="gr_svn7768_1314"
  2848. ><td id="1314"><a href="#1314">1314</a></td></tr
  2849. ><tr id="gr_svn7768_1315"
  2850. ><td id="1315"><a href="#1315">1315</a></td></tr
  2851. ><tr id="gr_svn7768_1316"
  2852. ><td id="1316"><a href="#1316">1316</a></td></tr
  2853. ><tr id="gr_svn7768_1317"
  2854. ><td id="1317"><a href="#1317">1317</a></td></tr
  2855. ><tr id="gr_svn7768_1318"
  2856. ><td id="1318"><a href="#1318">1318</a></td></tr
  2857. ><tr id="gr_svn7768_1319"
  2858. ><td id="1319"><a href="#1319">1319</a></td></tr
  2859. ><tr id="gr_svn7768_1320"
  2860. ><td id="1320"><a href="#1320">1320</a></td></tr
  2861. ><tr id="gr_svn7768_1321"
  2862. ><td id="1321"><a href="#1321">1321</a></td></tr
  2863. ><tr id="gr_svn7768_1322"
  2864. ><td id="1322"><a href="#1322">1322</a></td></tr
  2865. ><tr id="gr_svn7768_1323"
  2866. ><td id="1323"><a href="#1323">1323</a></td></tr
  2867. ><tr id="gr_svn7768_1324"
  2868. ><td id="1324"><a href="#1324">1324</a></td></tr
  2869. ><tr id="gr_svn7768_1325"
  2870. ><td id="1325"><a href="#1325">1325</a></td></tr
  2871. ><tr id="gr_svn7768_1326"
  2872. ><td id="1326"><a href="#1326">1326</a></td></tr
  2873. ><tr id="gr_svn7768_1327"
  2874. ><td id="1327"><a href="#1327">1327</a></td></tr
  2875. ><tr id="gr_svn7768_1328"
  2876. ><td id="1328"><a href="#1328">1328</a></td></tr
  2877. ><tr id="gr_svn7768_1329"
  2878. ><td id="1329"><a href="#1329">1329</a></td></tr
  2879. ><tr id="gr_svn7768_1330"
  2880. ><td id="1330"><a href="#1330">1330</a></td></tr
  2881. ><tr id="gr_svn7768_1331"
  2882. ><td id="1331"><a href="#1331">1331</a></td></tr
  2883. ><tr id="gr_svn7768_1332"
  2884. ><td id="1332"><a href="#1332">1332</a></td></tr
  2885. ><tr id="gr_svn7768_1333"
  2886. ><td id="1333"><a href="#1333">1333</a></td></tr
  2887. ><tr id="gr_svn7768_1334"
  2888. ><td id="1334"><a href="#1334">1334</a></td></tr
  2889. ><tr id="gr_svn7768_1335"
  2890. ><td id="1335"><a href="#1335">1335</a></td></tr
  2891. ><tr id="gr_svn7768_1336"
  2892. ><td id="1336"><a href="#1336">1336</a></td></tr
  2893. ><tr id="gr_svn7768_1337"
  2894. ><td id="1337"><a href="#1337">1337</a></td></tr
  2895. ><tr id="gr_svn7768_1338"
  2896. ><td id="1338"><a href="#1338">1338</a></td></tr
  2897. ><tr id="gr_svn7768_1339"
  2898. ><td id="1339"><a href="#1339">1339</a></td></tr
  2899. ><tr id="gr_svn7768_1340"
  2900. ><td id="1340"><a href="#1340">1340</a></td></tr
  2901. ><tr id="gr_svn7768_1341"
  2902. ><td id="1341"><a href="#1341">1341</a></td></tr
  2903. ><tr id="gr_svn7768_1342"
  2904. ><td id="1342"><a href="#1342">1342</a></td></tr
  2905. ><tr id="gr_svn7768_1343"
  2906. ><td id="1343"><a href="#1343">1343</a></td></tr
  2907. ><tr id="gr_svn7768_1344"
  2908. ><td id="1344"><a href="#1344">1344</a></td></tr
  2909. ><tr id="gr_svn7768_1345"
  2910. ><td id="1345"><a href="#1345">1345</a></td></tr
  2911. ><tr id="gr_svn7768_1346"
  2912. ><td id="1346"><a href="#1346">1346</a></td></tr
  2913. ><tr id="gr_svn7768_1347"
  2914. ><td id="1347"><a href="#1347">1347</a></td></tr
  2915. ><tr id="gr_svn7768_1348"
  2916. ><td id="1348"><a href="#1348">1348</a></td></tr
  2917. ><tr id="gr_svn7768_1349"
  2918. ><td id="1349"><a href="#1349">1349</a></td></tr
  2919. ><tr id="gr_svn7768_1350"
  2920. ><td id="1350"><a href="#1350">1350</a></td></tr
  2921. ><tr id="gr_svn7768_1351"
  2922. ><td id="1351"><a href="#1351">1351</a></td></tr
  2923. ><tr id="gr_svn7768_1352"
  2924. ><td id="1352"><a href="#1352">1352</a></td></tr
  2925. ><tr id="gr_svn7768_1353"
  2926. ><td id="1353"><a href="#1353">1353</a></td></tr
  2927. ><tr id="gr_svn7768_1354"
  2928. ><td id="1354"><a href="#1354">1354</a></td></tr
  2929. ><tr id="gr_svn7768_1355"
  2930. ><td id="1355"><a href="#1355">1355</a></td></tr
  2931. ><tr id="gr_svn7768_1356"
  2932. ><td id="1356"><a href="#1356">1356</a></td></tr
  2933. ><tr id="gr_svn7768_1357"
  2934. ><td id="1357"><a href="#1357">1357</a></td></tr
  2935. ><tr id="gr_svn7768_1358"
  2936. ><td id="1358"><a href="#1358">1358</a></td></tr
  2937. ><tr id="gr_svn7768_1359"
  2938. ><td id="1359"><a href="#1359">1359</a></td></tr
  2939. ><tr id="gr_svn7768_1360"
  2940. ><td id="1360"><a href="#1360">1360</a></td></tr
  2941. ><tr id="gr_svn7768_1361"
  2942. ><td id="1361"><a href="#1361">1361</a></td></tr
  2943. ><tr id="gr_svn7768_1362"
  2944. ><td id="1362"><a href="#1362">1362</a></td></tr
  2945. ><tr id="gr_svn7768_1363"
  2946. ><td id="1363"><a href="#1363">1363</a></td></tr
  2947. ><tr id="gr_svn7768_1364"
  2948. ><td id="1364"><a href="#1364">1364</a></td></tr
  2949. ><tr id="gr_svn7768_1365"
  2950. ><td id="1365"><a href="#1365">1365</a></td></tr
  2951. ><tr id="gr_svn7768_1366"
  2952. ><td id="1366"><a href="#1366">1366</a></td></tr
  2953. ><tr id="gr_svn7768_1367"
  2954. ><td id="1367"><a href="#1367">1367</a></td></tr
  2955. ><tr id="gr_svn7768_1368"
  2956. ><td id="1368"><a href="#1368">1368</a></td></tr
  2957. ><tr id="gr_svn7768_1369"
  2958. ><td id="1369"><a href="#1369">1369</a></td></tr
  2959. ><tr id="gr_svn7768_1370"
  2960. ><td id="1370"><a href="#1370">1370</a></td></tr
  2961. ><tr id="gr_svn7768_1371"
  2962. ><td id="1371"><a href="#1371">1371</a></td></tr
  2963. ><tr id="gr_svn7768_1372"
  2964. ><td id="1372"><a href="#1372">1372</a></td></tr
  2965. ><tr id="gr_svn7768_1373"
  2966. ><td id="1373"><a href="#1373">1373</a></td></tr
  2967. ><tr id="gr_svn7768_1374"
  2968. ><td id="1374"><a href="#1374">1374</a></td></tr
  2969. ><tr id="gr_svn7768_1375"
  2970. ><td id="1375"><a href="#1375">1375</a></td></tr
  2971. ><tr id="gr_svn7768_1376"
  2972. ><td id="1376"><a href="#1376">1376</a></td></tr
  2973. ><tr id="gr_svn7768_1377"
  2974. ><td id="1377"><a href="#1377">1377</a></td></tr
  2975. ><tr id="gr_svn7768_1378"
  2976. ><td id="1378"><a href="#1378">1378</a></td></tr
  2977. ><tr id="gr_svn7768_1379"
  2978. ><td id="1379"><a href="#1379">1379</a></td></tr
  2979. ><tr id="gr_svn7768_1380"
  2980. ><td id="1380"><a href="#1380">1380</a></td></tr
  2981. ><tr id="gr_svn7768_1381"
  2982. ><td id="1381"><a href="#1381">1381</a></td></tr
  2983. ><tr id="gr_svn7768_1382"
  2984. ><td id="1382"><a href="#1382">1382</a></td></tr
  2985. ><tr id="gr_svn7768_1383"
  2986. ><td id="1383"><a href="#1383">1383</a></td></tr
  2987. ><tr id="gr_svn7768_1384"
  2988. ><td id="1384"><a href="#1384">1384</a></td></tr
  2989. ><tr id="gr_svn7768_1385"
  2990. ><td id="1385"><a href="#1385">1385</a></td></tr
  2991. ><tr id="gr_svn7768_1386"
  2992. ><td id="1386"><a href="#1386">1386</a></td></tr
  2993. ><tr id="gr_svn7768_1387"
  2994. ><td id="1387"><a href="#1387">1387</a></td></tr
  2995. ><tr id="gr_svn7768_1388"
  2996. ><td id="1388"><a href="#1388">1388</a></td></tr
  2997. ><tr id="gr_svn7768_1389"
  2998. ><td id="1389"><a href="#1389">1389</a></td></tr
  2999. ><tr id="gr_svn7768_1390"
  3000. ><td id="1390"><a href="#1390">1390</a></td></tr
  3001. ><tr id="gr_svn7768_1391"
  3002. ><td id="1391"><a href="#1391">1391</a></td></tr
  3003. ><tr id="gr_svn7768_1392"
  3004. ><td id="1392"><a href="#1392">1392</a></td></tr
  3005. ><tr id="gr_svn7768_1393"
  3006. ><td id="1393"><a href="#1393">1393</a></td></tr
  3007. ><tr id="gr_svn7768_1394"
  3008. ><td id="1394"><a href="#1394">1394</a></td></tr
  3009. ><tr id="gr_svn7768_1395"
  3010. ><td id="1395"><a href="#1395">1395</a></td></tr
  3011. ><tr id="gr_svn7768_1396"
  3012. ><td id="1396"><a href="#1396">1396</a></td></tr
  3013. ><tr id="gr_svn7768_1397"
  3014. ><td id="1397"><a href="#1397">1397</a></td></tr
  3015. ><tr id="gr_svn7768_1398"
  3016. ><td id="1398"><a href="#1398">1398</a></td></tr
  3017. ><tr id="gr_svn7768_1399"
  3018. ><td id="1399"><a href="#1399">1399</a></td></tr
  3019. ><tr id="gr_svn7768_1400"
  3020. ><td id="1400"><a href="#1400">1400</a></td></tr
  3021. ><tr id="gr_svn7768_1401"
  3022. ><td id="1401"><a href="#1401">1401</a></td></tr
  3023. ><tr id="gr_svn7768_1402"
  3024. ><td id="1402"><a href="#1402">1402</a></td></tr
  3025. ><tr id="gr_svn7768_1403"
  3026. ><td id="1403"><a href="#1403">1403</a></td></tr
  3027. ><tr id="gr_svn7768_1404"
  3028. ><td id="1404"><a href="#1404">1404</a></td></tr
  3029. ><tr id="gr_svn7768_1405"
  3030. ><td id="1405"><a href="#1405">1405</a></td></tr
  3031. ><tr id="gr_svn7768_1406"
  3032. ><td id="1406"><a href="#1406">1406</a></td></tr
  3033. ><tr id="gr_svn7768_1407"
  3034. ><td id="1407"><a href="#1407">1407</a></td></tr
  3035. ><tr id="gr_svn7768_1408"
  3036. ><td id="1408"><a href="#1408">1408</a></td></tr
  3037. ><tr id="gr_svn7768_1409"
  3038. ><td id="1409"><a href="#1409">1409</a></td></tr
  3039. ><tr id="gr_svn7768_1410"
  3040. ><td id="1410"><a href="#1410">1410</a></td></tr
  3041. ><tr id="gr_svn7768_1411"
  3042. ><td id="1411"><a href="#1411">1411</a></td></tr
  3043. ><tr id="gr_svn7768_1412"
  3044. ><td id="1412"><a href="#1412">1412</a></td></tr
  3045. ><tr id="gr_svn7768_1413"
  3046. ><td id="1413"><a href="#1413">1413</a></td></tr
  3047. ><tr id="gr_svn7768_1414"
  3048. ><td id="1414"><a href="#1414">1414</a></td></tr
  3049. ><tr id="gr_svn7768_1415"
  3050. ><td id="1415"><a href="#1415">1415</a></td></tr
  3051. ><tr id="gr_svn7768_1416"
  3052. ><td id="1416"><a href="#1416">1416</a></td></tr
  3053. ><tr id="gr_svn7768_1417"
  3054. ><td id="1417"><a href="#1417">1417</a></td></tr
  3055. ><tr id="gr_svn7768_1418"
  3056. ><td id="1418"><a href="#1418">1418</a></td></tr
  3057. ><tr id="gr_svn7768_1419"
  3058. ><td id="1419"><a href="#1419">1419</a></td></tr
  3059. ><tr id="gr_svn7768_1420"
  3060. ><td id="1420"><a href="#1420">1420</a></td></tr
  3061. ><tr id="gr_svn7768_1421"
  3062. ><td id="1421"><a href="#1421">1421</a></td></tr
  3063. ><tr id="gr_svn7768_1422"
  3064. ><td id="1422"><a href="#1422">1422</a></td></tr
  3065. ><tr id="gr_svn7768_1423"
  3066. ><td id="1423"><a href="#1423">1423</a></td></tr
  3067. ><tr id="gr_svn7768_1424"
  3068. ><td id="1424"><a href="#1424">1424</a></td></tr
  3069. ><tr id="gr_svn7768_1425"
  3070. ><td id="1425"><a href="#1425">1425</a></td></tr
  3071. ><tr id="gr_svn7768_1426"
  3072. ><td id="1426"><a href="#1426">1426</a></td></tr
  3073. ><tr id="gr_svn7768_1427"
  3074. ><td id="1427"><a href="#1427">1427</a></td></tr
  3075. ><tr id="gr_svn7768_1428"
  3076. ><td id="1428"><a href="#1428">1428</a></td></tr
  3077. ><tr id="gr_svn7768_1429"
  3078. ><td id="1429"><a href="#1429">1429</a></td></tr
  3079. ><tr id="gr_svn7768_1430"
  3080. ><td id="1430"><a href="#1430">1430</a></td></tr
  3081. ><tr id="gr_svn7768_1431"
  3082. ><td id="1431"><a href="#1431">1431</a></td></tr
  3083. ><tr id="gr_svn7768_1432"
  3084. ><td id="1432"><a href="#1432">1432</a></td></tr
  3085. ><tr id="gr_svn7768_1433"
  3086. ><td id="1433"><a href="#1433">1433</a></td></tr
  3087. ><tr id="gr_svn7768_1434"
  3088. ><td id="1434"><a href="#1434">1434</a></td></tr
  3089. ><tr id="gr_svn7768_1435"
  3090. ><td id="1435"><a href="#1435">1435</a></td></tr
  3091. ><tr id="gr_svn7768_1436"
  3092. ><td id="1436"><a href="#1436">1436</a></td></tr
  3093. ><tr id="gr_svn7768_1437"
  3094. ><td id="1437"><a href="#1437">1437</a></td></tr
  3095. ><tr id="gr_svn7768_1438"
  3096. ><td id="1438"><a href="#1438">1438</a></td></tr
  3097. ><tr id="gr_svn7768_1439"
  3098. ><td id="1439"><a href="#1439">1439</a></td></tr
  3099. ><tr id="gr_svn7768_1440"
  3100. ><td id="1440"><a href="#1440">1440</a></td></tr
  3101. ><tr id="gr_svn7768_1441"
  3102. ><td id="1441"><a href="#1441">1441</a></td></tr
  3103. ><tr id="gr_svn7768_1442"
  3104. ><td id="1442"><a href="#1442">1442</a></td></tr
  3105. ><tr id="gr_svn7768_1443"
  3106. ><td id="1443"><a href="#1443">1443</a></td></tr
  3107. ><tr id="gr_svn7768_1444"
  3108. ><td id="1444"><a href="#1444">1444</a></td></tr
  3109. ><tr id="gr_svn7768_1445"
  3110. ><td id="1445"><a href="#1445">1445</a></td></tr
  3111. ><tr id="gr_svn7768_1446"
  3112. ><td id="1446"><a href="#1446">1446</a></td></tr
  3113. ><tr id="gr_svn7768_1447"
  3114. ><td id="1447"><a href="#1447">1447</a></td></tr
  3115. ><tr id="gr_svn7768_1448"
  3116. ><td id="1448"><a href="#1448">1448</a></td></tr
  3117. ><tr id="gr_svn7768_1449"
  3118. ><td id="1449"><a href="#1449">1449</a></td></tr
  3119. ><tr id="gr_svn7768_1450"
  3120. ><td id="1450"><a href="#1450">1450</a></td></tr
  3121. ><tr id="gr_svn7768_1451"
  3122. ><td id="1451"><a href="#1451">1451</a></td></tr
  3123. ><tr id="gr_svn7768_1452"
  3124. ><td id="1452"><a href="#1452">1452</a></td></tr
  3125. ><tr id="gr_svn7768_1453"
  3126. ><td id="1453"><a href="#1453">1453</a></td></tr
  3127. ><tr id="gr_svn7768_1454"
  3128. ><td id="1454"><a href="#1454">1454</a></td></tr
  3129. ><tr id="gr_svn7768_1455"
  3130. ><td id="1455"><a href="#1455">1455</a></td></tr
  3131. ><tr id="gr_svn7768_1456"
  3132. ><td id="1456"><a href="#1456">1456</a></td></tr
  3133. ><tr id="gr_svn7768_1457"
  3134. ><td id="1457"><a href="#1457">1457</a></td></tr
  3135. ><tr id="gr_svn7768_1458"
  3136. ><td id="1458"><a href="#1458">1458</a></td></tr
  3137. ><tr id="gr_svn7768_1459"
  3138. ><td id="1459"><a href="#1459">1459</a></td></tr
  3139. ><tr id="gr_svn7768_1460"
  3140. ><td id="1460"><a href="#1460">1460</a></td></tr
  3141. ><tr id="gr_svn7768_1461"
  3142. ><td id="1461"><a href="#1461">1461</a></td></tr
  3143. ><tr id="gr_svn7768_1462"
  3144. ><td id="1462"><a href="#1462">1462</a></td></tr
  3145. ><tr id="gr_svn7768_1463"
  3146. ><td id="1463"><a href="#1463">1463</a></td></tr
  3147. ><tr id="gr_svn7768_1464"
  3148. ><td id="1464"><a href="#1464">1464</a></td></tr
  3149. ><tr id="gr_svn7768_1465"
  3150. ><td id="1465"><a href="#1465">1465</a></td></tr
  3151. ><tr id="gr_svn7768_1466"
  3152. ><td id="1466"><a href="#1466">1466</a></td></tr
  3153. ><tr id="gr_svn7768_1467"
  3154. ><td id="1467"><a href="#1467">1467</a></td></tr
  3155. ><tr id="gr_svn7768_1468"
  3156. ><td id="1468"><a href="#1468">1468</a></td></tr
  3157. ><tr id="gr_svn7768_1469"
  3158. ><td id="1469"><a href="#1469">1469</a></td></tr
  3159. ><tr id="gr_svn7768_1470"
  3160. ><td id="1470"><a href="#1470">1470</a></td></tr
  3161. ><tr id="gr_svn7768_1471"
  3162. ><td id="1471"><a href="#1471">1471</a></td></tr
  3163. ><tr id="gr_svn7768_1472"
  3164. ><td id="1472"><a href="#1472">1472</a></td></tr
  3165. ><tr id="gr_svn7768_1473"
  3166. ><td id="1473"><a href="#1473">1473</a></td></tr
  3167. ><tr id="gr_svn7768_1474"
  3168. ><td id="1474"><a href="#1474">1474</a></td></tr
  3169. ><tr id="gr_svn7768_1475"
  3170. ><td id="1475"><a href="#1475">1475</a></td></tr
  3171. ><tr id="gr_svn7768_1476"
  3172. ><td id="1476"><a href="#1476">1476</a></td></tr
  3173. ><tr id="gr_svn7768_1477"
  3174. ><td id="1477"><a href="#1477">1477</a></td></tr
  3175. ><tr id="gr_svn7768_1478"
  3176. ><td id="1478"><a href="#1478">1478</a></td></tr
  3177. ><tr id="gr_svn7768_1479"
  3178. ><td id="1479"><a href="#1479">1479</a></td></tr
  3179. ><tr id="gr_svn7768_1480"
  3180. ><td id="1480"><a href="#1480">1480</a></td></tr
  3181. ><tr id="gr_svn7768_1481"
  3182. ><td id="1481"><a href="#1481">1481</a></td></tr
  3183. ><tr id="gr_svn7768_1482"
  3184. ><td id="1482"><a href="#1482">1482</a></td></tr
  3185. ><tr id="gr_svn7768_1483"
  3186. ><td id="1483"><a href="#1483">1483</a></td></tr
  3187. ><tr id="gr_svn7768_1484"
  3188. ><td id="1484"><a href="#1484">1484</a></td></tr
  3189. ><tr id="gr_svn7768_1485"
  3190. ><td id="1485"><a href="#1485">1485</a></td></tr
  3191. ><tr id="gr_svn7768_1486"
  3192. ><td id="1486"><a href="#1486">1486</a></td></tr
  3193. ><tr id="gr_svn7768_1487"
  3194. ><td id="1487"><a href="#1487">1487</a></td></tr
  3195. ><tr id="gr_svn7768_1488"
  3196. ><td id="1488"><a href="#1488">1488</a></td></tr
  3197. ><tr id="gr_svn7768_1489"
  3198. ><td id="1489"><a href="#1489">1489</a></td></tr
  3199. ><tr id="gr_svn7768_1490"
  3200. ><td id="1490"><a href="#1490">1490</a></td></tr
  3201. ><tr id="gr_svn7768_1491"
  3202. ><td id="1491"><a href="#1491">1491</a></td></tr
  3203. ><tr id="gr_svn7768_1492"
  3204. ><td id="1492"><a href="#1492">1492</a></td></tr
  3205. ><tr id="gr_svn7768_1493"
  3206. ><td id="1493"><a href="#1493">1493</a></td></tr
  3207. ><tr id="gr_svn7768_1494"
  3208. ><td id="1494"><a href="#1494">1494</a></td></tr
  3209. ><tr id="gr_svn7768_1495"
  3210. ><td id="1495"><a href="#1495">1495</a></td></tr
  3211. ><tr id="gr_svn7768_1496"
  3212. ><td id="1496"><a href="#1496">1496</a></td></tr
  3213. ><tr id="gr_svn7768_1497"
  3214. ><td id="1497"><a href="#1497">1497</a></td></tr
  3215. ><tr id="gr_svn7768_1498"
  3216. ><td id="1498"><a href="#1498">1498</a></td></tr
  3217. ><tr id="gr_svn7768_1499"
  3218. ><td id="1499"><a href="#1499">1499</a></td></tr
  3219. ><tr id="gr_svn7768_1500"
  3220. ><td id="1500"><a href="#1500">1500</a></td></tr
  3221. ><tr id="gr_svn7768_1501"
  3222. ><td id="1501"><a href="#1501">1501</a></td></tr
  3223. ><tr id="gr_svn7768_1502"
  3224. ><td id="1502"><a href="#1502">1502</a></td></tr
  3225. ><tr id="gr_svn7768_1503"
  3226. ><td id="1503"><a href="#1503">1503</a></td></tr
  3227. ><tr id="gr_svn7768_1504"
  3228. ><td id="1504"><a href="#1504">1504</a></td></tr
  3229. ><tr id="gr_svn7768_1505"
  3230. ><td id="1505"><a href="#1505">1505</a></td></tr
  3231. ><tr id="gr_svn7768_1506"
  3232. ><td id="1506"><a href="#1506">1506</a></td></tr
  3233. ><tr id="gr_svn7768_1507"
  3234. ><td id="1507"><a href="#1507">1507</a></td></tr
  3235. ><tr id="gr_svn7768_1508"
  3236. ><td id="1508"><a href="#1508">1508</a></td></tr
  3237. ><tr id="gr_svn7768_1509"
  3238. ><td id="1509"><a href="#1509">1509</a></td></tr
  3239. ><tr id="gr_svn7768_1510"
  3240. ><td id="1510"><a href="#1510">1510</a></td></tr
  3241. ><tr id="gr_svn7768_1511"
  3242. ><td id="1511"><a href="#1511">1511</a></td></tr
  3243. ><tr id="gr_svn7768_1512"
  3244. ><td id="1512"><a href="#1512">1512</a></td></tr
  3245. ><tr id="gr_svn7768_1513"
  3246. ><td id="1513"><a href="#1513">1513</a></td></tr
  3247. ><tr id="gr_svn7768_1514"
  3248. ><td id="1514"><a href="#1514">1514</a></td></tr
  3249. ><tr id="gr_svn7768_1515"
  3250. ><td id="1515"><a href="#1515">1515</a></td></tr
  3251. ><tr id="gr_svn7768_1516"
  3252. ><td id="1516"><a href="#1516">1516</a></td></tr
  3253. ><tr id="gr_svn7768_1517"
  3254. ><td id="1517"><a href="#1517">1517</a></td></tr
  3255. ><tr id="gr_svn7768_1518"
  3256. ><td id="1518"><a href="#1518">1518</a></td></tr
  3257. ><tr id="gr_svn7768_1519"
  3258. ><td id="1519"><a href="#1519">1519</a></td></tr
  3259. ><tr id="gr_svn7768_1520"
  3260. ><td id="1520"><a href="#1520">1520</a></td></tr
  3261. ><tr id="gr_svn7768_1521"
  3262. ><td id="1521"><a href="#1521">1521</a></td></tr
  3263. ><tr id="gr_svn7768_1522"
  3264. ><td id="1522"><a href="#1522">1522</a></td></tr
  3265. ><tr id="gr_svn7768_1523"
  3266. ><td id="1523"><a href="#1523">1523</a></td></tr
  3267. ><tr id="gr_svn7768_1524"
  3268. ><td id="1524"><a href="#1524">1524</a></td></tr
  3269. ><tr id="gr_svn7768_1525"
  3270. ><td id="1525"><a href="#1525">1525</a></td></tr
  3271. ><tr id="gr_svn7768_1526"
  3272. ><td id="1526"><a href="#1526">1526</a></td></tr
  3273. ><tr id="gr_svn7768_1527"
  3274. ><td id="1527"><a href="#1527">1527</a></td></tr
  3275. ><tr id="gr_svn7768_1528"
  3276. ><td id="1528"><a href="#1528">1528</a></td></tr
  3277. ><tr id="gr_svn7768_1529"
  3278. ><td id="1529"><a href="#1529">1529</a></td></tr
  3279. ><tr id="gr_svn7768_1530"
  3280. ><td id="1530"><a href="#1530">1530</a></td></tr
  3281. ><tr id="gr_svn7768_1531"
  3282. ><td id="1531"><a href="#1531">1531</a></td></tr
  3283. ><tr id="gr_svn7768_1532"
  3284. ><td id="1532"><a href="#1532">1532</a></td></tr
  3285. ><tr id="gr_svn7768_1533"
  3286. ><td id="1533"><a href="#1533">1533</a></td></tr
  3287. ><tr id="gr_svn7768_1534"
  3288. ><td id="1534"><a href="#1534">1534</a></td></tr
  3289. ><tr id="gr_svn7768_1535"
  3290. ><td id="1535"><a href="#1535">1535</a></td></tr
  3291. ><tr id="gr_svn7768_1536"
  3292. ><td id="1536"><a href="#1536">1536</a></td></tr
  3293. ><tr id="gr_svn7768_1537"
  3294. ><td id="1537"><a href="#1537">1537</a></td></tr
  3295. ><tr id="gr_svn7768_1538"
  3296. ><td id="1538"><a href="#1538">1538</a></td></tr
  3297. ><tr id="gr_svn7768_1539"
  3298. ><td id="1539"><a href="#1539">1539</a></td></tr
  3299. ><tr id="gr_svn7768_1540"
  3300. ><td id="1540"><a href="#1540">1540</a></td></tr
  3301. ><tr id="gr_svn7768_1541"
  3302. ><td id="1541"><a href="#1541">1541</a></td></tr
  3303. ><tr id="gr_svn7768_1542"
  3304. ><td id="1542"><a href="#1542">1542</a></td></tr
  3305. ><tr id="gr_svn7768_1543"
  3306. ><td id="1543"><a href="#1543">1543</a></td></tr
  3307. ><tr id="gr_svn7768_1544"
  3308. ><td id="1544"><a href="#1544">1544</a></td></tr
  3309. ><tr id="gr_svn7768_1545"
  3310. ><td id="1545"><a href="#1545">1545</a></td></tr
  3311. ><tr id="gr_svn7768_1546"
  3312. ><td id="1546"><a href="#1546">1546</a></td></tr
  3313. ><tr id="gr_svn7768_1547"
  3314. ><td id="1547"><a href="#1547">1547</a></td></tr
  3315. ><tr id="gr_svn7768_1548"
  3316. ><td id="1548"><a href="#1548">1548</a></td></tr
  3317. ><tr id="gr_svn7768_1549"
  3318. ><td id="1549"><a href="#1549">1549</a></td></tr
  3319. ><tr id="gr_svn7768_1550"
  3320. ><td id="1550"><a href="#1550">1550</a></td></tr
  3321. ><tr id="gr_svn7768_1551"
  3322. ><td id="1551"><a href="#1551">1551</a></td></tr
  3323. ><tr id="gr_svn7768_1552"
  3324. ><td id="1552"><a href="#1552">1552</a></td></tr
  3325. ><tr id="gr_svn7768_1553"
  3326. ><td id="1553"><a href="#1553">1553</a></td></tr
  3327. ><tr id="gr_svn7768_1554"
  3328. ><td id="1554"><a href="#1554">1554</a></td></tr
  3329. ><tr id="gr_svn7768_1555"
  3330. ><td id="1555"><a href="#1555">1555</a></td></tr
  3331. ><tr id="gr_svn7768_1556"
  3332. ><td id="1556"><a href="#1556">1556</a></td></tr
  3333. ><tr id="gr_svn7768_1557"
  3334. ><td id="1557"><a href="#1557">1557</a></td></tr
  3335. ><tr id="gr_svn7768_1558"
  3336. ><td id="1558"><a href="#1558">1558</a></td></tr
  3337. ><tr id="gr_svn7768_1559"
  3338. ><td id="1559"><a href="#1559">1559</a></td></tr
  3339. ><tr id="gr_svn7768_1560"
  3340. ><td id="1560"><a href="#1560">1560</a></td></tr
  3341. ><tr id="gr_svn7768_1561"
  3342. ><td id="1561"><a href="#1561">1561</a></td></tr
  3343. ><tr id="gr_svn7768_1562"
  3344. ><td id="1562"><a href="#1562">1562</a></td></tr
  3345. ><tr id="gr_svn7768_1563"
  3346. ><td id="1563"><a href="#1563">1563</a></td></tr
  3347. ><tr id="gr_svn7768_1564"
  3348. ><td id="1564"><a href="#1564">1564</a></td></tr
  3349. ><tr id="gr_svn7768_1565"
  3350. ><td id="1565"><a href="#1565">1565</a></td></tr
  3351. ><tr id="gr_svn7768_1566"
  3352. ><td id="1566"><a href="#1566">1566</a></td></tr
  3353. ><tr id="gr_svn7768_1567"
  3354. ><td id="1567"><a href="#1567">1567</a></td></tr
  3355. ><tr id="gr_svn7768_1568"
  3356. ><td id="1568"><a href="#1568">1568</a></td></tr
  3357. ><tr id="gr_svn7768_1569"
  3358. ><td id="1569"><a href="#1569">1569</a></td></tr
  3359. ><tr id="gr_svn7768_1570"
  3360. ><td id="1570"><a href="#1570">1570</a></td></tr
  3361. ><tr id="gr_svn7768_1571"
  3362. ><td id="1571"><a href="#1571">1571</a></td></tr
  3363. ><tr id="gr_svn7768_1572"
  3364. ><td id="1572"><a href="#1572">1572</a></td></tr
  3365. ><tr id="gr_svn7768_1573"
  3366. ><td id="1573"><a href="#1573">1573</a></td></tr
  3367. ><tr id="gr_svn7768_1574"
  3368. ><td id="1574"><a href="#1574">1574</a></td></tr
  3369. ><tr id="gr_svn7768_1575"
  3370. ><td id="1575"><a href="#1575">1575</a></td></tr
  3371. ><tr id="gr_svn7768_1576"
  3372. ><td id="1576"><a href="#1576">1576</a></td></tr
  3373. ><tr id="gr_svn7768_1577"
  3374. ><td id="1577"><a href="#1577">1577</a></td></tr
  3375. ><tr id="gr_svn7768_1578"
  3376. ><td id="1578"><a href="#1578">1578</a></td></tr
  3377. ><tr id="gr_svn7768_1579"
  3378. ><td id="1579"><a href="#1579">1579</a></td></tr
  3379. ><tr id="gr_svn7768_1580"
  3380. ><td id="1580"><a href="#1580">1580</a></td></tr
  3381. ><tr id="gr_svn7768_1581"
  3382. ><td id="1581"><a href="#1581">1581</a></td></tr
  3383. ><tr id="gr_svn7768_1582"
  3384. ><td id="1582"><a href="#1582">1582</a></td></tr
  3385. ><tr id="gr_svn7768_1583"
  3386. ><td id="1583"><a href="#1583">1583</a></td></tr
  3387. ><tr id="gr_svn7768_1584"
  3388. ><td id="1584"><a href="#1584">1584</a></td></tr
  3389. ><tr id="gr_svn7768_1585"
  3390. ><td id="1585"><a href="#1585">1585</a></td></tr
  3391. ><tr id="gr_svn7768_1586"
  3392. ><td id="1586"><a href="#1586">1586</a></td></tr
  3393. ><tr id="gr_svn7768_1587"
  3394. ><td id="1587"><a href="#1587">1587</a></td></tr
  3395. ><tr id="gr_svn7768_1588"
  3396. ><td id="1588"><a href="#1588">1588</a></td></tr
  3397. ><tr id="gr_svn7768_1589"
  3398. ><td id="1589"><a href="#1589">1589</a></td></tr
  3399. ><tr id="gr_svn7768_1590"
  3400. ><td id="1590"><a href="#1590">1590</a></td></tr
  3401. ><tr id="gr_svn7768_1591"
  3402. ><td id="1591"><a href="#1591">1591</a></td></tr
  3403. ><tr id="gr_svn7768_1592"
  3404. ><td id="1592"><a href="#1592">1592</a></td></tr
  3405. ><tr id="gr_svn7768_1593"
  3406. ><td id="1593"><a href="#1593">1593</a></td></tr
  3407. ><tr id="gr_svn7768_1594"
  3408. ><td id="1594"><a href="#1594">1594</a></td></tr
  3409. ><tr id="gr_svn7768_1595"
  3410. ><td id="1595"><a href="#1595">1595</a></td></tr
  3411. ><tr id="gr_svn7768_1596"
  3412. ><td id="1596"><a href="#1596">1596</a></td></tr
  3413. ><tr id="gr_svn7768_1597"
  3414. ><td id="1597"><a href="#1597">1597</a></td></tr
  3415. ><tr id="gr_svn7768_1598"
  3416. ><td id="1598"><a href="#1598">1598</a></td></tr
  3417. ><tr id="gr_svn7768_1599"
  3418. ><td id="1599"><a href="#1599">1599</a></td></tr
  3419. ><tr id="gr_svn7768_1600"
  3420. ><td id="1600"><a href="#1600">1600</a></td></tr
  3421. ><tr id="gr_svn7768_1601"
  3422. ><td id="1601"><a href="#1601">1601</a></td></tr
  3423. ><tr id="gr_svn7768_1602"
  3424. ><td id="1602"><a href="#1602">1602</a></td></tr
  3425. ><tr id="gr_svn7768_1603"
  3426. ><td id="1603"><a href="#1603">1603</a></td></tr
  3427. ><tr id="gr_svn7768_1604"
  3428. ><td id="1604"><a href="#1604">1604</a></td></tr
  3429. ><tr id="gr_svn7768_1605"
  3430. ><td id="1605"><a href="#1605">1605</a></td></tr
  3431. ><tr id="gr_svn7768_1606"
  3432. ><td id="1606"><a href="#1606">1606</a></td></tr
  3433. ><tr id="gr_svn7768_1607"
  3434. ><td id="1607"><a href="#1607">1607</a></td></tr
  3435. ><tr id="gr_svn7768_1608"
  3436. ><td id="1608"><a href="#1608">1608</a></td></tr
  3437. ><tr id="gr_svn7768_1609"
  3438. ><td id="1609"><a href="#1609">1609</a></td></tr
  3439. ><tr id="gr_svn7768_1610"
  3440. ><td id="1610"><a href="#1610">1610</a></td></tr
  3441. ><tr id="gr_svn7768_1611"
  3442. ><td id="1611"><a href="#1611">1611</a></td></tr
  3443. ><tr id="gr_svn7768_1612"
  3444. ><td id="1612"><a href="#1612">1612</a></td></tr
  3445. ><tr id="gr_svn7768_1613"
  3446. ><td id="1613"><a href="#1613">1613</a></td></tr
  3447. ><tr id="gr_svn7768_1614"
  3448. ><td id="1614"><a href="#1614">1614</a></td></tr
  3449. ><tr id="gr_svn7768_1615"
  3450. ><td id="1615"><a href="#1615">1615</a></td></tr
  3451. ><tr id="gr_svn7768_1616"
  3452. ><td id="1616"><a href="#1616">1616</a></td></tr
  3453. ><tr id="gr_svn7768_1617"
  3454. ><td id="1617"><a href="#1617">1617</a></td></tr
  3455. ><tr id="gr_svn7768_1618"
  3456. ><td id="1618"><a href="#1618">1618</a></td></tr
  3457. ><tr id="gr_svn7768_1619"
  3458. ><td id="1619"><a href="#1619">1619</a></td></tr
  3459. ><tr id="gr_svn7768_1620"
  3460. ><td id="1620"><a href="#1620">1620</a></td></tr
  3461. ><tr id="gr_svn7768_1621"
  3462. ><td id="1621"><a href="#1621">1621</a></td></tr
  3463. ><tr id="gr_svn7768_1622"
  3464. ><td id="1622"><a href="#1622">1622</a></td></tr
  3465. ><tr id="gr_svn7768_1623"
  3466. ><td id="1623"><a href="#1623">1623</a></td></tr
  3467. ><tr id="gr_svn7768_1624"
  3468. ><td id="1624"><a href="#1624">1624</a></td></tr
  3469. ><tr id="gr_svn7768_1625"
  3470. ><td id="1625"><a href="#1625">1625</a></td></tr
  3471. ><tr id="gr_svn7768_1626"
  3472. ><td id="1626"><a href="#1626">1626</a></td></tr
  3473. ><tr id="gr_svn7768_1627"
  3474. ><td id="1627"><a href="#1627">1627</a></td></tr
  3475. ><tr id="gr_svn7768_1628"
  3476. ><td id="1628"><a href="#1628">1628</a></td></tr
  3477. ><tr id="gr_svn7768_1629"
  3478. ><td id="1629"><a href="#1629">1629</a></td></tr
  3479. ><tr id="gr_svn7768_1630"
  3480. ><td id="1630"><a href="#1630">1630</a></td></tr
  3481. ><tr id="gr_svn7768_1631"
  3482. ><td id="1631"><a href="#1631">1631</a></td></tr
  3483. ><tr id="gr_svn7768_1632"
  3484. ><td id="1632"><a href="#1632">1632</a></td></tr
  3485. ><tr id="gr_svn7768_1633"
  3486. ><td id="1633"><a href="#1633">1633</a></td></tr
  3487. ><tr id="gr_svn7768_1634"
  3488. ><td id="1634"><a href="#1634">1634</a></td></tr
  3489. ><tr id="gr_svn7768_1635"
  3490. ><td id="1635"><a href="#1635">1635</a></td></tr
  3491. ><tr id="gr_svn7768_1636"
  3492. ><td id="1636"><a href="#1636">1636</a></td></tr
  3493. ><tr id="gr_svn7768_1637"
  3494. ><td id="1637"><a href="#1637">1637</a></td></tr
  3495. ><tr id="gr_svn7768_1638"
  3496. ><td id="1638"><a href="#1638">1638</a></td></tr
  3497. ><tr id="gr_svn7768_1639"
  3498. ><td id="1639"><a href="#1639">1639</a></td></tr
  3499. ><tr id="gr_svn7768_1640"
  3500. ><td id="1640"><a href="#1640">1640</a></td></tr
  3501. ><tr id="gr_svn7768_1641"
  3502. ><td id="1641"><a href="#1641">1641</a></td></tr
  3503. ><tr id="gr_svn7768_1642"
  3504. ><td id="1642"><a href="#1642">1642</a></td></tr
  3505. ><tr id="gr_svn7768_1643"
  3506. ><td id="1643"><a href="#1643">1643</a></td></tr
  3507. ><tr id="gr_svn7768_1644"
  3508. ><td id="1644"><a href="#1644">1644</a></td></tr
  3509. ><tr id="gr_svn7768_1645"
  3510. ><td id="1645"><a href="#1645">1645</a></td></tr
  3511. ><tr id="gr_svn7768_1646"
  3512. ><td id="1646"><a href="#1646">1646</a></td></tr
  3513. ><tr id="gr_svn7768_1647"
  3514. ><td id="1647"><a href="#1647">1647</a></td></tr
  3515. ><tr id="gr_svn7768_1648"
  3516. ><td id="1648"><a href="#1648">1648</a></td></tr
  3517. ><tr id="gr_svn7768_1649"
  3518. ><td id="1649"><a href="#1649">1649</a></td></tr
  3519. ><tr id="gr_svn7768_1650"
  3520. ><td id="1650"><a href="#1650">1650</a></td></tr
  3521. ><tr id="gr_svn7768_1651"
  3522. ><td id="1651"><a href="#1651">1651</a></td></tr
  3523. ><tr id="gr_svn7768_1652"
  3524. ><td id="1652"><a href="#1652">1652</a></td></tr
  3525. ><tr id="gr_svn7768_1653"
  3526. ><td id="1653"><a href="#1653">1653</a></td></tr
  3527. ><tr id="gr_svn7768_1654"
  3528. ><td id="1654"><a href="#1654">1654</a></td></tr
  3529. ><tr id="gr_svn7768_1655"
  3530. ><td id="1655"><a href="#1655">1655</a></td></tr
  3531. ><tr id="gr_svn7768_1656"
  3532. ><td id="1656"><a href="#1656">1656</a></td></tr
  3533. ><tr id="gr_svn7768_1657"
  3534. ><td id="1657"><a href="#1657">1657</a></td></tr
  3535. ><tr id="gr_svn7768_1658"
  3536. ><td id="1658"><a href="#1658">1658</a></td></tr
  3537. ><tr id="gr_svn7768_1659"
  3538. ><td id="1659"><a href="#1659">1659</a></td></tr
  3539. ><tr id="gr_svn7768_1660"
  3540. ><td id="1660"><a href="#1660">1660</a></td></tr
  3541. ><tr id="gr_svn7768_1661"
  3542. ><td id="1661"><a href="#1661">1661</a></td></tr
  3543. ><tr id="gr_svn7768_1662"
  3544. ><td id="1662"><a href="#1662">1662</a></td></tr
  3545. ><tr id="gr_svn7768_1663"
  3546. ><td id="1663"><a href="#1663">1663</a></td></tr
  3547. ><tr id="gr_svn7768_1664"
  3548. ><td id="1664"><a href="#1664">1664</a></td></tr
  3549. ><tr id="gr_svn7768_1665"
  3550. ><td id="1665"><a href="#1665">1665</a></td></tr
  3551. ><tr id="gr_svn7768_1666"
  3552. ><td id="1666"><a href="#1666">1666</a></td></tr
  3553. ><tr id="gr_svn7768_1667"
  3554. ><td id="1667"><a href="#1667">1667</a></td></tr
  3555. ><tr id="gr_svn7768_1668"
  3556. ><td id="1668"><a href="#1668">1668</a></td></tr
  3557. ><tr id="gr_svn7768_1669"
  3558. ><td id="1669"><a href="#1669">1669</a></td></tr
  3559. ><tr id="gr_svn7768_1670"
  3560. ><td id="1670"><a href="#1670">1670</a></td></tr
  3561. ><tr id="gr_svn7768_1671"
  3562. ><td id="1671"><a href="#1671">1671</a></td></tr
  3563. ><tr id="gr_svn7768_1672"
  3564. ><td id="1672"><a href="#1672">1672</a></td></tr
  3565. ><tr id="gr_svn7768_1673"
  3566. ><td id="1673"><a href="#1673">1673</a></td></tr
  3567. ><tr id="gr_svn7768_1674"
  3568. ><td id="1674"><a href="#1674">1674</a></td></tr
  3569. ><tr id="gr_svn7768_1675"
  3570. ><td id="1675"><a href="#1675">1675</a></td></tr
  3571. ><tr id="gr_svn7768_1676"
  3572. ><td id="1676"><a href="#1676">1676</a></td></tr
  3573. ><tr id="gr_svn7768_1677"
  3574. ><td id="1677"><a href="#1677">1677</a></td></tr
  3575. ><tr id="gr_svn7768_1678"
  3576. ><td id="1678"><a href="#1678">1678</a></td></tr
  3577. ><tr id="gr_svn7768_1679"
  3578. ><td id="1679"><a href="#1679">1679</a></td></tr
  3579. ><tr id="gr_svn7768_1680"
  3580. ><td id="1680"><a href="#1680">1680</a></td></tr
  3581. ><tr id="gr_svn7768_1681"
  3582. ><td id="1681"><a href="#1681">1681</a></td></tr
  3583. ><tr id="gr_svn7768_1682"
  3584. ><td id="1682"><a href="#1682">1682</a></td></tr
  3585. ><tr id="gr_svn7768_1683"
  3586. ><td id="1683"><a href="#1683">1683</a></td></tr
  3587. ><tr id="gr_svn7768_1684"
  3588. ><td id="1684"><a href="#1684">1684</a></td></tr
  3589. ><tr id="gr_svn7768_1685"
  3590. ><td id="1685"><a href="#1685">1685</a></td></tr
  3591. ><tr id="gr_svn7768_1686"
  3592. ><td id="1686"><a href="#1686">1686</a></td></tr
  3593. ><tr id="gr_svn7768_1687"
  3594. ><td id="1687"><a href="#1687">1687</a></td></tr
  3595. ><tr id="gr_svn7768_1688"
  3596. ><td id="1688"><a href="#1688">1688</a></td></tr
  3597. ><tr id="gr_svn7768_1689"
  3598. ><td id="1689"><a href="#1689">1689</a></td></tr
  3599. ><tr id="gr_svn7768_1690"
  3600. ><td id="1690"><a href="#1690">1690</a></td></tr
  3601. ><tr id="gr_svn7768_1691"
  3602. ><td id="1691"><a href="#1691">1691</a></td></tr
  3603. ><tr id="gr_svn7768_1692"
  3604. ><td id="1692"><a href="#1692">1692</a></td></tr
  3605. ><tr id="gr_svn7768_1693"
  3606. ><td id="1693"><a href="#1693">1693</a></td></tr
  3607. ><tr id="gr_svn7768_1694"
  3608. ><td id="1694"><a href="#1694">1694</a></td></tr
  3609. ><tr id="gr_svn7768_1695"
  3610. ><td id="1695"><a href="#1695">1695</a></td></tr
  3611. ><tr id="gr_svn7768_1696"
  3612. ><td id="1696"><a href="#1696">1696</a></td></tr
  3613. ><tr id="gr_svn7768_1697"
  3614. ><td id="1697"><a href="#1697">1697</a></td></tr
  3615. ><tr id="gr_svn7768_1698"
  3616. ><td id="1698"><a href="#1698">1698</a></td></tr
  3617. ><tr id="gr_svn7768_1699"
  3618. ><td id="1699"><a href="#1699">1699</a></td></tr
  3619. ><tr id="gr_svn7768_1700"
  3620. ><td id="1700"><a href="#1700">1700</a></td></tr
  3621. ><tr id="gr_svn7768_1701"
  3622. ><td id="1701"><a href="#1701">1701</a></td></tr
  3623. ><tr id="gr_svn7768_1702"
  3624. ><td id="1702"><a href="#1702">1702</a></td></tr
  3625. ><tr id="gr_svn7768_1703"
  3626. ><td id="1703"><a href="#1703">1703</a></td></tr
  3627. ><tr id="gr_svn7768_1704"
  3628. ><td id="1704"><a href="#1704">1704</a></td></tr
  3629. ><tr id="gr_svn7768_1705"
  3630. ><td id="1705"><a href="#1705">1705</a></td></tr
  3631. ><tr id="gr_svn7768_1706"
  3632. ><td id="1706"><a href="#1706">1706</a></td></tr
  3633. ><tr id="gr_svn7768_1707"
  3634. ><td id="1707"><a href="#1707">1707</a></td></tr
  3635. ><tr id="gr_svn7768_1708"
  3636. ><td id="1708"><a href="#1708">1708</a></td></tr
  3637. ><tr id="gr_svn7768_1709"
  3638. ><td id="1709"><a href="#1709">1709</a></td></tr
  3639. ><tr id="gr_svn7768_1710"
  3640. ><td id="1710"><a href="#1710">1710</a></td></tr
  3641. ><tr id="gr_svn7768_1711"
  3642. ><td id="1711"><a href="#1711">1711</a></td></tr
  3643. ><tr id="gr_svn7768_1712"
  3644. ><td id="1712"><a href="#1712">1712</a></td></tr
  3645. ><tr id="gr_svn7768_1713"
  3646. ><td id="1713"><a href="#1713">1713</a></td></tr
  3647. ><tr id="gr_svn7768_1714"
  3648. ><td id="1714"><a href="#1714">1714</a></td></tr
  3649. ><tr id="gr_svn7768_1715"
  3650. ><td id="1715"><a href="#1715">1715</a></td></tr
  3651. ><tr id="gr_svn7768_1716"
  3652. ><td id="1716"><a href="#1716">1716</a></td></tr
  3653. ><tr id="gr_svn7768_1717"
  3654. ><td id="1717"><a href="#1717">1717</a></td></tr
  3655. ><tr id="gr_svn7768_1718"
  3656. ><td id="1718"><a href="#1718">1718</a></td></tr
  3657. ><tr id="gr_svn7768_1719"
  3658. ><td id="1719"><a href="#1719">1719</a></td></tr
  3659. ><tr id="gr_svn7768_1720"
  3660. ><td id="1720"><a href="#1720">1720</a></td></tr
  3661. ><tr id="gr_svn7768_1721"
  3662. ><td id="1721"><a href="#1721">1721</a></td></tr
  3663. ><tr id="gr_svn7768_1722"
  3664. ><td id="1722"><a href="#1722">1722</a></td></tr
  3665. ><tr id="gr_svn7768_1723"
  3666. ><td id="1723"><a href="#1723">1723</a></td></tr
  3667. ><tr id="gr_svn7768_1724"
  3668. ><td id="1724"><a href="#1724">1724</a></td></tr
  3669. ><tr id="gr_svn7768_1725"
  3670. ><td id="1725"><a href="#1725">1725</a></td></tr
  3671. ><tr id="gr_svn7768_1726"
  3672. ><td id="1726"><a href="#1726">1726</a></td></tr
  3673. ><tr id="gr_svn7768_1727"
  3674. ><td id="1727"><a href="#1727">1727</a></td></tr
  3675. ><tr id="gr_svn7768_1728"
  3676. ><td id="1728"><a href="#1728">1728</a></td></tr
  3677. ><tr id="gr_svn7768_1729"
  3678. ><td id="1729"><a href="#1729">1729</a></td></tr
  3679. ><tr id="gr_svn7768_1730"
  3680. ><td id="1730"><a href="#1730">1730</a></td></tr
  3681. ><tr id="gr_svn7768_1731"
  3682. ><td id="1731"><a href="#1731">1731</a></td></tr
  3683. ><tr id="gr_svn7768_1732"
  3684. ><td id="1732"><a href="#1732">1732</a></td></tr
  3685. ><tr id="gr_svn7768_1733"
  3686. ><td id="1733"><a href="#1733">1733</a></td></tr
  3687. ><tr id="gr_svn7768_1734"
  3688. ><td id="1734"><a href="#1734">1734</a></td></tr
  3689. ><tr id="gr_svn7768_1735"
  3690. ><td id="1735"><a href="#1735">1735</a></td></tr
  3691. ><tr id="gr_svn7768_1736"
  3692. ><td id="1736"><a href="#1736">1736</a></td></tr
  3693. ><tr id="gr_svn7768_1737"
  3694. ><td id="1737"><a href="#1737">1737</a></td></tr
  3695. ><tr id="gr_svn7768_1738"
  3696. ><td id="1738"><a href="#1738">1738</a></td></tr
  3697. ><tr id="gr_svn7768_1739"
  3698. ><td id="1739"><a href="#1739">1739</a></td></tr
  3699. ><tr id="gr_svn7768_1740"
  3700. ><td id="1740"><a href="#1740">1740</a></td></tr
  3701. ><tr id="gr_svn7768_1741"
  3702. ><td id="1741"><a href="#1741">1741</a></td></tr
  3703. ><tr id="gr_svn7768_1742"
  3704. ><td id="1742"><a href="#1742">1742</a></td></tr
  3705. ><tr id="gr_svn7768_1743"
  3706. ><td id="1743"><a href="#1743">1743</a></td></tr
  3707. ><tr id="gr_svn7768_1744"
  3708. ><td id="1744"><a href="#1744">1744</a></td></tr
  3709. ><tr id="gr_svn7768_1745"
  3710. ><td id="1745"><a href="#1745">1745</a></td></tr
  3711. ><tr id="gr_svn7768_1746"
  3712. ><td id="1746"><a href="#1746">1746</a></td></tr
  3713. ><tr id="gr_svn7768_1747"
  3714. ><td id="1747"><a href="#1747">1747</a></td></tr
  3715. ><tr id="gr_svn7768_1748"
  3716. ><td id="1748"><a href="#1748">1748</a></td></tr
  3717. ><tr id="gr_svn7768_1749"
  3718. ><td id="1749"><a href="#1749">1749</a></td></tr
  3719. ><tr id="gr_svn7768_1750"
  3720. ><td id="1750"><a href="#1750">1750</a></td></tr
  3721. ><tr id="gr_svn7768_1751"
  3722. ><td id="1751"><a href="#1751">1751</a></td></tr
  3723. ><tr id="gr_svn7768_1752"
  3724. ><td id="1752"><a href="#1752">1752</a></td></tr
  3725. ><tr id="gr_svn7768_1753"
  3726. ><td id="1753"><a href="#1753">1753</a></td></tr
  3727. ><tr id="gr_svn7768_1754"
  3728. ><td id="1754"><a href="#1754">1754</a></td></tr
  3729. ><tr id="gr_svn7768_1755"
  3730. ><td id="1755"><a href="#1755">1755</a></td></tr
  3731. ><tr id="gr_svn7768_1756"
  3732. ><td id="1756"><a href="#1756">1756</a></td></tr
  3733. ><tr id="gr_svn7768_1757"
  3734. ><td id="1757"><a href="#1757">1757</a></td></tr
  3735. ><tr id="gr_svn7768_1758"
  3736. ><td id="1758"><a href="#1758">1758</a></td></tr
  3737. ><tr id="gr_svn7768_1759"
  3738. ><td id="1759"><a href="#1759">1759</a></td></tr
  3739. ><tr id="gr_svn7768_1760"
  3740. ><td id="1760"><a href="#1760">1760</a></td></tr
  3741. ><tr id="gr_svn7768_1761"
  3742. ><td id="1761"><a href="#1761">1761</a></td></tr
  3743. ><tr id="gr_svn7768_1762"
  3744. ><td id="1762"><a href="#1762">1762</a></td></tr
  3745. ><tr id="gr_svn7768_1763"
  3746. ><td id="1763"><a href="#1763">1763</a></td></tr
  3747. ><tr id="gr_svn7768_1764"
  3748. ><td id="1764"><a href="#1764">1764</a></td></tr
  3749. ><tr id="gr_svn7768_1765"
  3750. ><td id="1765"><a href="#1765">1765</a></td></tr
  3751. ><tr id="gr_svn7768_1766"
  3752. ><td id="1766"><a href="#1766">1766</a></td></tr
  3753. ><tr id="gr_svn7768_1767"
  3754. ><td id="1767"><a href="#1767">1767</a></td></tr
  3755. ><tr id="gr_svn7768_1768"
  3756. ><td id="1768"><a href="#1768">1768</a></td></tr
  3757. ><tr id="gr_svn7768_1769"
  3758. ><td id="1769"><a href="#1769">1769</a></td></tr
  3759. ><tr id="gr_svn7768_1770"
  3760. ><td id="1770"><a href="#1770">1770</a></td></tr
  3761. ><tr id="gr_svn7768_1771"
  3762. ><td id="1771"><a href="#1771">1771</a></td></tr
  3763. ><tr id="gr_svn7768_1772"
  3764. ><td id="1772"><a href="#1772">1772</a></td></tr
  3765. ><tr id="gr_svn7768_1773"
  3766. ><td id="1773"><a href="#1773">1773</a></td></tr
  3767. ><tr id="gr_svn7768_1774"
  3768. ><td id="1774"><a href="#1774">1774</a></td></tr
  3769. ><tr id="gr_svn7768_1775"
  3770. ><td id="1775"><a href="#1775">1775</a></td></tr
  3771. ><tr id="gr_svn7768_1776"
  3772. ><td id="1776"><a href="#1776">1776</a></td></tr
  3773. ><tr id="gr_svn7768_1777"
  3774. ><td id="1777"><a href="#1777">1777</a></td></tr
  3775. ><tr id="gr_svn7768_1778"
  3776. ><td id="1778"><a href="#1778">1778</a></td></tr
  3777. ><tr id="gr_svn7768_1779"
  3778. ><td id="1779"><a href="#1779">1779</a></td></tr
  3779. ><tr id="gr_svn7768_1780"
  3780. ><td id="1780"><a href="#1780">1780</a></td></tr
  3781. ><tr id="gr_svn7768_1781"
  3782. ><td id="1781"><a href="#1781">1781</a></td></tr
  3783. ><tr id="gr_svn7768_1782"
  3784. ><td id="1782"><a href="#1782">1782</a></td></tr
  3785. ><tr id="gr_svn7768_1783"
  3786. ><td id="1783"><a href="#1783">1783</a></td></tr
  3787. ><tr id="gr_svn7768_1784"
  3788. ><td id="1784"><a href="#1784">1784</a></td></tr
  3789. ><tr id="gr_svn7768_1785"
  3790. ><td id="1785"><a href="#1785">1785</a></td></tr
  3791. ><tr id="gr_svn7768_1786"
  3792. ><td id="1786"><a href="#1786">1786</a></td></tr
  3793. ><tr id="gr_svn7768_1787"
  3794. ><td id="1787"><a href="#1787">1787</a></td></tr
  3795. ><tr id="gr_svn7768_1788"
  3796. ><td id="1788"><a href="#1788">1788</a></td></tr
  3797. ><tr id="gr_svn7768_1789"
  3798. ><td id="1789"><a href="#1789">1789</a></td></tr
  3799. ><tr id="gr_svn7768_1790"
  3800. ><td id="1790"><a href="#1790">1790</a></td></tr
  3801. ><tr id="gr_svn7768_1791"
  3802. ><td id="1791"><a href="#1791">1791</a></td></tr
  3803. ><tr id="gr_svn7768_1792"
  3804. ><td id="1792"><a href="#1792">1792</a></td></tr
  3805. ><tr id="gr_svn7768_1793"
  3806. ><td id="1793"><a href="#1793">1793</a></td></tr
  3807. ><tr id="gr_svn7768_1794"
  3808. ><td id="1794"><a href="#1794">1794</a></td></tr
  3809. ><tr id="gr_svn7768_1795"
  3810. ><td id="1795"><a href="#1795">1795</a></td></tr
  3811. ><tr id="gr_svn7768_1796"
  3812. ><td id="1796"><a href="#1796">1796</a></td></tr
  3813. ><tr id="gr_svn7768_1797"
  3814. ><td id="1797"><a href="#1797">1797</a></td></tr
  3815. ><tr id="gr_svn7768_1798"
  3816. ><td id="1798"><a href="#1798">1798</a></td></tr
  3817. ><tr id="gr_svn7768_1799"
  3818. ><td id="1799"><a href="#1799">1799</a></td></tr
  3819. ><tr id="gr_svn7768_1800"
  3820. ><td id="1800"><a href="#1800">1800</a></td></tr
  3821. ><tr id="gr_svn7768_1801"
  3822. ><td id="1801"><a href="#1801">1801</a></td></tr
  3823. ><tr id="gr_svn7768_1802"
  3824. ><td id="1802"><a href="#1802">1802</a></td></tr
  3825. ><tr id="gr_svn7768_1803"
  3826. ><td id="1803"><a href="#1803">1803</a></td></tr
  3827. ><tr id="gr_svn7768_1804"
  3828. ><td id="1804"><a href="#1804">1804</a></td></tr
  3829. ><tr id="gr_svn7768_1805"
  3830. ><td id="1805"><a href="#1805">1805</a></td></tr
  3831. ><tr id="gr_svn7768_1806"
  3832. ><td id="1806"><a href="#1806">1806</a></td></tr
  3833. ><tr id="gr_svn7768_1807"
  3834. ><td id="1807"><a href="#1807">1807</a></td></tr
  3835. ><tr id="gr_svn7768_1808"
  3836. ><td id="1808"><a href="#1808">1808</a></td></tr
  3837. ><tr id="gr_svn7768_1809"
  3838. ><td id="1809"><a href="#1809">1809</a></td></tr
  3839. ><tr id="gr_svn7768_1810"
  3840. ><td id="1810"><a href="#1810">1810</a></td></tr
  3841. ><tr id="gr_svn7768_1811"
  3842. ><td id="1811"><a href="#1811">1811</a></td></tr
  3843. ><tr id="gr_svn7768_1812"
  3844. ><td id="1812"><a href="#1812">1812</a></td></tr
  3845. ><tr id="gr_svn7768_1813"
  3846. ><td id="1813"><a href="#1813">1813</a></td></tr
  3847. ><tr id="gr_svn7768_1814"
  3848. ><td id="1814"><a href="#1814">1814</a></td></tr
  3849. ><tr id="gr_svn7768_1815"
  3850. ><td id="1815"><a href="#1815">1815</a></td></tr
  3851. ><tr id="gr_svn7768_1816"
  3852. ><td id="1816"><a href="#1816">1816</a></td></tr
  3853. ><tr id="gr_svn7768_1817"
  3854. ><td id="1817"><a href="#1817">1817</a></td></tr
  3855. ><tr id="gr_svn7768_1818"
  3856. ><td id="1818"><a href="#1818">1818</a></td></tr
  3857. ><tr id="gr_svn7768_1819"
  3858. ><td id="1819"><a href="#1819">1819</a></td></tr
  3859. ><tr id="gr_svn7768_1820"
  3860. ><td id="1820"><a href="#1820">1820</a></td></tr
  3861. ><tr id="gr_svn7768_1821"
  3862. ><td id="1821"><a href="#1821">1821</a></td></tr
  3863. ><tr id="gr_svn7768_1822"
  3864. ><td id="1822"><a href="#1822">1822</a></td></tr
  3865. ><tr id="gr_svn7768_1823"
  3866. ><td id="1823"><a href="#1823">1823</a></td></tr
  3867. ><tr id="gr_svn7768_1824"
  3868. ><td id="1824"><a href="#1824">1824</a></td></tr
  3869. ><tr id="gr_svn7768_1825"
  3870. ><td id="1825"><a href="#1825">1825</a></td></tr
  3871. ><tr id="gr_svn7768_1826"
  3872. ><td id="1826"><a href="#1826">1826</a></td></tr
  3873. ><tr id="gr_svn7768_1827"
  3874. ><td id="1827"><a href="#1827">1827</a></td></tr
  3875. ><tr id="gr_svn7768_1828"
  3876. ><td id="1828"><a href="#1828">1828</a></td></tr
  3877. ><tr id="gr_svn7768_1829"
  3878. ><td id="1829"><a href="#1829">1829</a></td></tr
  3879. ><tr id="gr_svn7768_1830"
  3880. ><td id="1830"><a href="#1830">1830</a></td></tr
  3881. ><tr id="gr_svn7768_1831"
  3882. ><td id="1831"><a href="#1831">1831</a></td></tr
  3883. ><tr id="gr_svn7768_1832"
  3884. ><td id="1832"><a href="#1832">1832</a></td></tr
  3885. ><tr id="gr_svn7768_1833"
  3886. ><td id="1833"><a href="#1833">1833</a></td></tr
  3887. ><tr id="gr_svn7768_1834"
  3888. ><td id="1834"><a href="#1834">1834</a></td></tr
  3889. ><tr id="gr_svn7768_1835"
  3890. ><td id="1835"><a href="#1835">1835</a></td></tr
  3891. ><tr id="gr_svn7768_1836"
  3892. ><td id="1836"><a href="#1836">1836</a></td></tr
  3893. ><tr id="gr_svn7768_1837"
  3894. ><td id="1837"><a href="#1837">1837</a></td></tr
  3895. ><tr id="gr_svn7768_1838"
  3896. ><td id="1838"><a href="#1838">1838</a></td></tr
  3897. ><tr id="gr_svn7768_1839"
  3898. ><td id="1839"><a href="#1839">1839</a></td></tr
  3899. ><tr id="gr_svn7768_1840"
  3900. ><td id="1840"><a href="#1840">1840</a></td></tr
  3901. ><tr id="gr_svn7768_1841"
  3902. ><td id="1841"><a href="#1841">1841</a></td></tr
  3903. ><tr id="gr_svn7768_1842"
  3904. ><td id="1842"><a href="#1842">1842</a></td></tr
  3905. ><tr id="gr_svn7768_1843"
  3906. ><td id="1843"><a href="#1843">1843</a></td></tr
  3907. ><tr id="gr_svn7768_1844"
  3908. ><td id="1844"><a href="#1844">1844</a></td></tr
  3909. ><tr id="gr_svn7768_1845"
  3910. ><td id="1845"><a href="#1845">1845</a></td></tr
  3911. ><tr id="gr_svn7768_1846"
  3912. ><td id="1846"><a href="#1846">1846</a></td></tr
  3913. ><tr id="gr_svn7768_1847"
  3914. ><td id="1847"><a href="#1847">1847</a></td></tr
  3915. ><tr id="gr_svn7768_1848"
  3916. ><td id="1848"><a href="#1848">1848</a></td></tr
  3917. ><tr id="gr_svn7768_1849"
  3918. ><td id="1849"><a href="#1849">1849</a></td></tr
  3919. ><tr id="gr_svn7768_1850"
  3920. ><td id="1850"><a href="#1850">1850</a></td></tr
  3921. ><tr id="gr_svn7768_1851"
  3922. ><td id="1851"><a href="#1851">1851</a></td></tr
  3923. ><tr id="gr_svn7768_1852"
  3924. ><td id="1852"><a href="#1852">1852</a></td></tr
  3925. ><tr id="gr_svn7768_1853"
  3926. ><td id="1853"><a href="#1853">1853</a></td></tr
  3927. ><tr id="gr_svn7768_1854"
  3928. ><td id="1854"><a href="#1854">1854</a></td></tr
  3929. ><tr id="gr_svn7768_1855"
  3930. ><td id="1855"><a href="#1855">1855</a></td></tr
  3931. ><tr id="gr_svn7768_1856"
  3932. ><td id="1856"><a href="#1856">1856</a></td></tr
  3933. ><tr id="gr_svn7768_1857"
  3934. ><td id="1857"><a href="#1857">1857</a></td></tr
  3935. ><tr id="gr_svn7768_1858"
  3936. ><td id="1858"><a href="#1858">1858</a></td></tr
  3937. ><tr id="gr_svn7768_1859"
  3938. ><td id="1859"><a href="#1859">1859</a></td></tr
  3939. ><tr id="gr_svn7768_1860"
  3940. ><td id="1860"><a href="#1860">1860</a></td></tr
  3941. ><tr id="gr_svn7768_1861"
  3942. ><td id="1861"><a href="#1861">1861</a></td></tr
  3943. ><tr id="gr_svn7768_1862"
  3944. ><td id="1862"><a href="#1862">1862</a></td></tr
  3945. ><tr id="gr_svn7768_1863"
  3946. ><td id="1863"><a href="#1863">1863</a></td></tr
  3947. ><tr id="gr_svn7768_1864"
  3948. ><td id="1864"><a href="#1864">1864</a></td></tr
  3949. ><tr id="gr_svn7768_1865"
  3950. ><td id="1865"><a href="#1865">1865</a></td></tr
  3951. ><tr id="gr_svn7768_1866"
  3952. ><td id="1866"><a href="#1866">1866</a></td></tr
  3953. ><tr id="gr_svn7768_1867"
  3954. ><td id="1867"><a href="#1867">1867</a></td></tr
  3955. ><tr id="gr_svn7768_1868"
  3956. ><td id="1868"><a href="#1868">1868</a></td></tr
  3957. ><tr id="gr_svn7768_1869"
  3958. ><td id="1869"><a href="#1869">1869</a></td></tr
  3959. ><tr id="gr_svn7768_1870"
  3960. ><td id="1870"><a href="#1870">1870</a></td></tr
  3961. ><tr id="gr_svn7768_1871"
  3962. ><td id="1871"><a href="#1871">1871</a></td></tr
  3963. ><tr id="gr_svn7768_1872"
  3964. ><td id="1872"><a href="#1872">1872</a></td></tr
  3965. ><tr id="gr_svn7768_1873"
  3966. ><td id="1873"><a href="#1873">1873</a></td></tr
  3967. ><tr id="gr_svn7768_1874"
  3968. ><td id="1874"><a href="#1874">1874</a></td></tr
  3969. ><tr id="gr_svn7768_1875"
  3970. ><td id="1875"><a href="#1875">1875</a></td></tr
  3971. ><tr id="gr_svn7768_1876"
  3972. ><td id="1876"><a href="#1876">1876</a></td></tr
  3973. ><tr id="gr_svn7768_1877"
  3974. ><td id="1877"><a href="#1877">1877</a></td></tr
  3975. ><tr id="gr_svn7768_1878"
  3976. ><td id="1878"><a href="#1878">1878</a></td></tr
  3977. ><tr id="gr_svn7768_1879"
  3978. ><td id="1879"><a href="#1879">1879</a></td></tr
  3979. ><tr id="gr_svn7768_1880"
  3980. ><td id="1880"><a href="#1880">1880</a></td></tr
  3981. ><tr id="gr_svn7768_1881"
  3982. ><td id="1881"><a href="#1881">1881</a></td></tr
  3983. ><tr id="gr_svn7768_1882"
  3984. ><td id="1882"><a href="#1882">1882</a></td></tr
  3985. ><tr id="gr_svn7768_1883"
  3986. ><td id="1883"><a href="#1883">1883</a></td></tr
  3987. ><tr id="gr_svn7768_1884"
  3988. ><td id="1884"><a href="#1884">1884</a></td></tr
  3989. ><tr id="gr_svn7768_1885"
  3990. ><td id="1885"><a href="#1885">1885</a></td></tr
  3991. ><tr id="gr_svn7768_1886"
  3992. ><td id="1886"><a href="#1886">1886</a></td></tr
  3993. ><tr id="gr_svn7768_1887"
  3994. ><td id="1887"><a href="#1887">1887</a></td></tr
  3995. ><tr id="gr_svn7768_1888"
  3996. ><td id="1888"><a href="#1888">1888</a></td></tr
  3997. ><tr id="gr_svn7768_1889"
  3998. ><td id="1889"><a href="#1889">1889</a></td></tr
  3999. ><tr id="gr_svn7768_1890"
  4000. ><td id="1890"><a href="#1890">1890</a></td></tr
  4001. ><tr id="gr_svn7768_1891"
  4002. ><td id="1891"><a href="#1891">1891</a></td></tr
  4003. ><tr id="gr_svn7768_1892"
  4004. ><td id="1892"><a href="#1892">1892</a></td></tr
  4005. ><tr id="gr_svn7768_1893"
  4006. ><td id="1893"><a href="#1893">1893</a></td></tr
  4007. ><tr id="gr_svn7768_1894"
  4008. ><td id="1894"><a href="#1894">1894</a></td></tr
  4009. ><tr id="gr_svn7768_1895"
  4010. ><td id="1895"><a href="#1895">1895</a></td></tr
  4011. ><tr id="gr_svn7768_1896"
  4012. ><td id="1896"><a href="#1896">1896</a></td></tr
  4013. ><tr id="gr_svn7768_1897"
  4014. ><td id="1897"><a href="#1897">1897</a></td></tr
  4015. ><tr id="gr_svn7768_1898"
  4016. ><td id="1898"><a href="#1898">1898</a></td></tr
  4017. ><tr id="gr_svn7768_1899"
  4018. ><td id="1899"><a href="#1899">1899</a></td></tr
  4019. ><tr id="gr_svn7768_1900"
  4020. ><td id="1900"><a href="#1900">1900</a></td></tr
  4021. ><tr id="gr_svn7768_1901"
  4022. ><td id="1901"><a href="#1901">1901</a></td></tr
  4023. ><tr id="gr_svn7768_1902"
  4024. ><td id="1902"><a href="#1902">1902</a></td></tr
  4025. ><tr id="gr_svn7768_1903"
  4026. ><td id="1903"><a href="#1903">1903</a></td></tr
  4027. ><tr id="gr_svn7768_1904"
  4028. ><td id="1904"><a href="#1904">1904</a></td></tr
  4029. ><tr id="gr_svn7768_1905"
  4030. ><td id="1905"><a href="#1905">1905</a></td></tr
  4031. ><tr id="gr_svn7768_1906"
  4032. ><td id="1906"><a href="#1906">1906</a></td></tr
  4033. ><tr id="gr_svn7768_1907"
  4034. ><td id="1907"><a href="#1907">1907</a></td></tr
  4035. ><tr id="gr_svn7768_1908"
  4036. ><td id="1908"><a href="#1908">1908</a></td></tr
  4037. ><tr id="gr_svn7768_1909"
  4038. ><td id="1909"><a href="#1909">1909</a></td></tr
  4039. ><tr id="gr_svn7768_1910"
  4040. ><td id="1910"><a href="#1910">1910</a></td></tr
  4041. ><tr id="gr_svn7768_1911"
  4042. ><td id="1911"><a href="#1911">1911</a></td></tr
  4043. ><tr id="gr_svn7768_1912"
  4044. ><td id="1912"><a href="#1912">1912</a></td></tr
  4045. ><tr id="gr_svn7768_1913"
  4046. ><td id="1913"><a href="#1913">1913</a></td></tr
  4047. ><tr id="gr_svn7768_1914"
  4048. ><td id="1914"><a href="#1914">1914</a></td></tr
  4049. ><tr id="gr_svn7768_1915"
  4050. ><td id="1915"><a href="#1915">1915</a></td></tr
  4051. ><tr id="gr_svn7768_1916"
  4052. ><td id="1916"><a href="#1916">1916</a></td></tr
  4053. ><tr id="gr_svn7768_1917"
  4054. ><td id="1917"><a href="#1917">1917</a></td></tr
  4055. ><tr id="gr_svn7768_1918"
  4056. ><td id="1918"><a href="#1918">1918</a></td></tr
  4057. ><tr id="gr_svn7768_1919"
  4058. ><td id="1919"><a href="#1919">1919</a></td></tr
  4059. ><tr id="gr_svn7768_1920"
  4060. ><td id="1920"><a href="#1920">1920</a></td></tr
  4061. ><tr id="gr_svn7768_1921"
  4062. ><td id="1921"><a href="#1921">1921</a></td></tr
  4063. ><tr id="gr_svn7768_1922"
  4064. ><td id="1922"><a href="#1922">1922</a></td></tr
  4065. ><tr id="gr_svn7768_1923"
  4066. ><td id="1923"><a href="#1923">1923</a></td></tr
  4067. ><tr id="gr_svn7768_1924"
  4068. ><td id="1924"><a href="#1924">1924</a></td></tr
  4069. ><tr id="gr_svn7768_1925"
  4070. ><td id="1925"><a href="#1925">1925</a></td></tr
  4071. ><tr id="gr_svn7768_1926"
  4072. ><td id="1926"><a href="#1926">1926</a></td></tr
  4073. ><tr id="gr_svn7768_1927"
  4074. ><td id="1927"><a href="#1927">1927</a></td></tr
  4075. ><tr id="gr_svn7768_1928"
  4076. ><td id="1928"><a href="#1928">1928</a></td></tr
  4077. ><tr id="gr_svn7768_1929"
  4078. ><td id="1929"><a href="#1929">1929</a></td></tr
  4079. ><tr id="gr_svn7768_1930"
  4080. ><td id="1930"><a href="#1930">1930</a></td></tr
  4081. ><tr id="gr_svn7768_1931"
  4082. ><td id="1931"><a href="#1931">1931</a></td></tr
  4083. ><tr id="gr_svn7768_1932"
  4084. ><td id="1932"><a href="#1932">1932</a></td></tr
  4085. ><tr id="gr_svn7768_1933"
  4086. ><td id="1933"><a href="#1933">1933</a></td></tr
  4087. ><tr id="gr_svn7768_1934"
  4088. ><td id="1934"><a href="#1934">1934</a></td></tr
  4089. ><tr id="gr_svn7768_1935"
  4090. ><td id="1935"><a href="#1935">1935</a></td></tr
  4091. ><tr id="gr_svn7768_1936"
  4092. ><td id="1936"><a href="#1936">1936</a></td></tr
  4093. ><tr id="gr_svn7768_1937"
  4094. ><td id="1937"><a href="#1937">1937</a></td></tr
  4095. ><tr id="gr_svn7768_1938"
  4096. ><td id="1938"><a href="#1938">1938</a></td></tr
  4097. ><tr id="gr_svn7768_1939"
  4098. ><td id="1939"><a href="#1939">1939</a></td></tr
  4099. ><tr id="gr_svn7768_1940"
  4100. ><td id="1940"><a href="#1940">1940</a></td></tr
  4101. ><tr id="gr_svn7768_1941"
  4102. ><td id="1941"><a href="#1941">1941</a></td></tr
  4103. ><tr id="gr_svn7768_1942"
  4104. ><td id="1942"><a href="#1942">1942</a></td></tr
  4105. ><tr id="gr_svn7768_1943"
  4106. ><td id="1943"><a href="#1943">1943</a></td></tr
  4107. ><tr id="gr_svn7768_1944"
  4108. ><td id="1944"><a href="#1944">1944</a></td></tr
  4109. ><tr id="gr_svn7768_1945"
  4110. ><td id="1945"><a href="#1945">1945</a></td></tr
  4111. ><tr id="gr_svn7768_1946"
  4112. ><td id="1946"><a href="#1946">1946</a></td></tr
  4113. ><tr id="gr_svn7768_1947"
  4114. ><td id="1947"><a href="#1947">1947</a></td></tr
  4115. ><tr id="gr_svn7768_1948"
  4116. ><td id="1948"><a href="#1948">1948</a></td></tr
  4117. ><tr id="gr_svn7768_1949"
  4118. ><td id="1949"><a href="#1949">1949</a></td></tr
  4119. ><tr id="gr_svn7768_1950"
  4120. ><td id="1950"><a href="#1950">1950</a></td></tr
  4121. ><tr id="gr_svn7768_1951"
  4122. ><td id="1951"><a href="#1951">1951</a></td></tr
  4123. ><tr id="gr_svn7768_1952"
  4124. ><td id="1952"><a href="#1952">1952</a></td></tr
  4125. ><tr id="gr_svn7768_1953"
  4126. ><td id="1953"><a href="#1953">1953</a></td></tr
  4127. ><tr id="gr_svn7768_1954"
  4128. ><td id="1954"><a href="#1954">1954</a></td></tr
  4129. ><tr id="gr_svn7768_1955"
  4130. ><td id="1955"><a href="#1955">1955</a></td></tr
  4131. ><tr id="gr_svn7768_1956"
  4132. ><td id="1956"><a href="#1956">1956</a></td></tr
  4133. ><tr id="gr_svn7768_1957"
  4134. ><td id="1957"><a href="#1957">1957</a></td></tr
  4135. ><tr id="gr_svn7768_1958"
  4136. ><td id="1958"><a href="#1958">1958</a></td></tr
  4137. ><tr id="gr_svn7768_1959"
  4138. ><td id="1959"><a href="#1959">1959</a></td></tr
  4139. ><tr id="gr_svn7768_1960"
  4140. ><td id="1960"><a href="#1960">1960</a></td></tr
  4141. ><tr id="gr_svn7768_1961"
  4142. ><td id="1961"><a href="#1961">1961</a></td></tr
  4143. ><tr id="gr_svn7768_1962"
  4144. ><td id="1962"><a href="#1962">1962</a></td></tr
  4145. ><tr id="gr_svn7768_1963"
  4146. ><td id="1963"><a href="#1963">1963</a></td></tr
  4147. ><tr id="gr_svn7768_1964"
  4148. ><td id="1964"><a href="#1964">1964</a></td></tr
  4149. ><tr id="gr_svn7768_1965"
  4150. ><td id="1965"><a href="#1965">1965</a></td></tr
  4151. ><tr id="gr_svn7768_1966"
  4152. ><td id="1966"><a href="#1966">1966</a></td></tr
  4153. ><tr id="gr_svn7768_1967"
  4154. ><td id="1967"><a href="#1967">1967</a></td></tr
  4155. ><tr id="gr_svn7768_1968"
  4156. ><td id="1968"><a href="#1968">1968</a></td></tr
  4157. ><tr id="gr_svn7768_1969"
  4158. ><td id="1969"><a href="#1969">1969</a></td></tr
  4159. ><tr id="gr_svn7768_1970"
  4160. ><td id="1970"><a href="#1970">1970</a></td></tr
  4161. ><tr id="gr_svn7768_1971"
  4162. ><td id="1971"><a href="#1971">1971</a></td></tr
  4163. ><tr id="gr_svn7768_1972"
  4164. ><td id="1972"><a href="#1972">1972</a></td></tr
  4165. ><tr id="gr_svn7768_1973"
  4166. ><td id="1973"><a href="#1973">1973</a></td></tr
  4167. ><tr id="gr_svn7768_1974"
  4168. ><td id="1974"><a href="#1974">1974</a></td></tr
  4169. ><tr id="gr_svn7768_1975"
  4170. ><td id="1975"><a href="#1975">1975</a></td></tr
  4171. ><tr id="gr_svn7768_1976"
  4172. ><td id="1976"><a href="#1976">1976</a></td></tr
  4173. ><tr id="gr_svn7768_1977"
  4174. ><td id="1977"><a href="#1977">1977</a></td></tr
  4175. ><tr id="gr_svn7768_1978"
  4176. ><td id="1978"><a href="#1978">1978</a></td></tr
  4177. ><tr id="gr_svn7768_1979"
  4178. ><td id="1979"><a href="#1979">1979</a></td></tr
  4179. ><tr id="gr_svn7768_1980"
  4180. ><td id="1980"><a href="#1980">1980</a></td></tr
  4181. ><tr id="gr_svn7768_1981"
  4182. ><td id="1981"><a href="#1981">1981</a></td></tr
  4183. ><tr id="gr_svn7768_1982"
  4184. ><td id="1982"><a href="#1982">1982</a></td></tr
  4185. ><tr id="gr_svn7768_1983"
  4186. ><td id="1983"><a href="#1983">1983</a></td></tr
  4187. ><tr id="gr_svn7768_1984"
  4188. ><td id="1984"><a href="#1984">1984</a></td></tr
  4189. ><tr id="gr_svn7768_1985"
  4190. ><td id="1985"><a href="#1985">1985</a></td></tr
  4191. ><tr id="gr_svn7768_1986"
  4192. ><td id="1986"><a href="#1986">1986</a></td></tr
  4193. ><tr id="gr_svn7768_1987"
  4194. ><td id="1987"><a href="#1987">1987</a></td></tr
  4195. ><tr id="gr_svn7768_1988"
  4196. ><td id="1988"><a href="#1988">1988</a></td></tr
  4197. ><tr id="gr_svn7768_1989"
  4198. ><td id="1989"><a href="#1989">1989</a></td></tr
  4199. ><tr id="gr_svn7768_1990"
  4200. ><td id="1990"><a href="#1990">1990</a></td></tr
  4201. ><tr id="gr_svn7768_1991"
  4202. ><td id="1991"><a href="#1991">1991</a></td></tr
  4203. ><tr id="gr_svn7768_1992"
  4204. ><td id="1992"><a href="#1992">1992</a></td></tr
  4205. ><tr id="gr_svn7768_1993"
  4206. ><td id="1993"><a href="#1993">1993</a></td></tr
  4207. ><tr id="gr_svn7768_1994"
  4208. ><td id="1994"><a href="#1994">1994</a></td></tr
  4209. ><tr id="gr_svn7768_1995"
  4210. ><td id="1995"><a href="#1995">1995</a></td></tr
  4211. ><tr id="gr_svn7768_1996"
  4212. ><td id="1996"><a href="#1996">1996</a></td></tr
  4213. ><tr id="gr_svn7768_1997"
  4214. ><td id="1997"><a href="#1997">1997</a></td></tr
  4215. ><tr id="gr_svn7768_1998"
  4216. ><td id="1998"><a href="#1998">1998</a></td></tr
  4217. ><tr id="gr_svn7768_1999"
  4218. ><td id="1999"><a href="#1999">1999</a></td></tr
  4219. ><tr id="gr_svn7768_2000"
  4220. ><td id="2000"><a href="#2000">2000</a></td></tr
  4221. ><tr id="gr_svn7768_2001"
  4222. ><td id="2001"><a href="#2001">2001</a></td></tr
  4223. ><tr id="gr_svn7768_2002"
  4224. ><td id="2002"><a href="#2002">2002</a></td></tr
  4225. ><tr id="gr_svn7768_2003"
  4226. ><td id="2003"><a href="#2003">2003</a></td></tr
  4227. ><tr id="gr_svn7768_2004"
  4228. ><td id="2004"><a href="#2004">2004</a></td></tr
  4229. ><tr id="gr_svn7768_2005"
  4230. ><td id="2005"><a href="#2005">2005</a></td></tr
  4231. ><tr id="gr_svn7768_2006"
  4232. ><td id="2006"><a href="#2006">2006</a></td></tr
  4233. ><tr id="gr_svn7768_2007"
  4234. ><td id="2007"><a href="#2007">2007</a></td></tr
  4235. ><tr id="gr_svn7768_2008"
  4236. ><td id="2008"><a href="#2008">2008</a></td></tr
  4237. ><tr id="gr_svn7768_2009"
  4238. ><td id="2009"><a href="#2009">2009</a></td></tr
  4239. ><tr id="gr_svn7768_2010"
  4240. ><td id="2010"><a href="#2010">2010</a></td></tr
  4241. ><tr id="gr_svn7768_2011"
  4242. ><td id="2011"><a href="#2011">2011</a></td></tr
  4243. ><tr id="gr_svn7768_2012"
  4244. ><td id="2012"><a href="#2012">2012</a></td></tr
  4245. ><tr id="gr_svn7768_2013"
  4246. ><td id="2013"><a href="#2013">2013</a></td></tr
  4247. ><tr id="gr_svn7768_2014"
  4248. ><td id="2014"><a href="#2014">2014</a></td></tr
  4249. ><tr id="gr_svn7768_2015"
  4250. ><td id="2015"><a href="#2015">2015</a></td></tr
  4251. ><tr id="gr_svn7768_2016"
  4252. ><td id="2016"><a href="#2016">2016</a></td></tr
  4253. ><tr id="gr_svn7768_2017"
  4254. ><td id="2017"><a href="#2017">2017</a></td></tr
  4255. ><tr id="gr_svn7768_2018"
  4256. ><td id="2018"><a href="#2018">2018</a></td></tr
  4257. ><tr id="gr_svn7768_2019"
  4258. ><td id="2019"><a href="#2019">2019</a></td></tr
  4259. ><tr id="gr_svn7768_2020"
  4260. ><td id="2020"><a href="#2020">2020</a></td></tr
  4261. ><tr id="gr_svn7768_2021"
  4262. ><td id="2021"><a href="#2021">2021</a></td></tr
  4263. ><tr id="gr_svn7768_2022"
  4264. ><td id="2022"><a href="#2022">2022</a></td></tr
  4265. ><tr id="gr_svn7768_2023"
  4266. ><td id="2023"><a href="#2023">2023</a></td></tr
  4267. ><tr id="gr_svn7768_2024"
  4268. ><td id="2024"><a href="#2024">2024</a></td></tr
  4269. ><tr id="gr_svn7768_2025"
  4270. ><td id="2025"><a href="#2025">2025</a></td></tr
  4271. ><tr id="gr_svn7768_2026"
  4272. ><td id="2026"><a href="#2026">2026</a></td></tr
  4273. ><tr id="gr_svn7768_2027"
  4274. ><td id="2027"><a href="#2027">2027</a></td></tr
  4275. ><tr id="gr_svn7768_2028"
  4276. ><td id="2028"><a href="#2028">2028</a></td></tr
  4277. ><tr id="gr_svn7768_2029"
  4278. ><td id="2029"><a href="#2029">2029</a></td></tr
  4279. ><tr id="gr_svn7768_2030"
  4280. ><td id="2030"><a href="#2030">2030</a></td></tr
  4281. ><tr id="gr_svn7768_2031"
  4282. ><td id="2031"><a href="#2031">2031</a></td></tr
  4283. ><tr id="gr_svn7768_2032"
  4284. ><td id="2032"><a href="#2032">2032</a></td></tr
  4285. ><tr id="gr_svn7768_2033"
  4286. ><td id="2033"><a href="#2033">2033</a></td></tr
  4287. ><tr id="gr_svn7768_2034"
  4288. ><td id="2034"><a href="#2034">2034</a></td></tr
  4289. ><tr id="gr_svn7768_2035"
  4290. ><td id="2035"><a href="#2035">2035</a></td></tr
  4291. ><tr id="gr_svn7768_2036"
  4292. ><td id="2036"><a href="#2036">2036</a></td></tr
  4293. ><tr id="gr_svn7768_2037"
  4294. ><td id="2037"><a href="#2037">2037</a></td></tr
  4295. ><tr id="gr_svn7768_2038"
  4296. ><td id="2038"><a href="#2038">2038</a></td></tr
  4297. ><tr id="gr_svn7768_2039"
  4298. ><td id="2039"><a href="#2039">2039</a></td></tr
  4299. ><tr id="gr_svn7768_2040"
  4300. ><td id="2040"><a href="#2040">2040</a></td></tr
  4301. ><tr id="gr_svn7768_2041"
  4302. ><td id="2041"><a href="#2041">2041</a></td></tr
  4303. ><tr id="gr_svn7768_2042"
  4304. ><td id="2042"><a href="#2042">2042</a></td></tr
  4305. ><tr id="gr_svn7768_2043"
  4306. ><td id="2043"><a href="#2043">2043</a></td></tr
  4307. ><tr id="gr_svn7768_2044"
  4308. ><td id="2044"><a href="#2044">2044</a></td></tr
  4309. ><tr id="gr_svn7768_2045"
  4310. ><td id="2045"><a href="#2045">2045</a></td></tr
  4311. ><tr id="gr_svn7768_2046"
  4312. ><td id="2046"><a href="#2046">2046</a></td></tr
  4313. ><tr id="gr_svn7768_2047"
  4314. ><td id="2047"><a href="#2047">2047</a></td></tr
  4315. ><tr id="gr_svn7768_2048"
  4316. ><td id="2048"><a href="#2048">2048</a></td></tr
  4317. ><tr id="gr_svn7768_2049"
  4318. ><td id="2049"><a href="#2049">2049</a></td></tr
  4319. ><tr id="gr_svn7768_2050"
  4320. ><td id="2050"><a href="#2050">2050</a></td></tr
  4321. ><tr id="gr_svn7768_2051"
  4322. ><td id="2051"><a href="#2051">2051</a></td></tr
  4323. ><tr id="gr_svn7768_2052"
  4324. ><td id="2052"><a href="#2052">2052</a></td></tr
  4325. ><tr id="gr_svn7768_2053"
  4326. ><td id="2053"><a href="#2053">2053</a></td></tr
  4327. ><tr id="gr_svn7768_2054"
  4328. ><td id="2054"><a href="#2054">2054</a></td></tr
  4329. ><tr id="gr_svn7768_2055"
  4330. ><td id="2055"><a href="#2055">2055</a></td></tr
  4331. ><tr id="gr_svn7768_2056"
  4332. ><td id="2056"><a href="#2056">2056</a></td></tr
  4333. ><tr id="gr_svn7768_2057"
  4334. ><td id="2057"><a href="#2057">2057</a></td></tr
  4335. ><tr id="gr_svn7768_2058"
  4336. ><td id="2058"><a href="#2058">2058</a></td></tr
  4337. ><tr id="gr_svn7768_2059"
  4338. ><td id="2059"><a href="#2059">2059</a></td></tr
  4339. ><tr id="gr_svn7768_2060"
  4340. ><td id="2060"><a href="#2060">2060</a></td></tr
  4341. ><tr id="gr_svn7768_2061"
  4342. ><td id="2061"><a href="#2061">2061</a></td></tr
  4343. ><tr id="gr_svn7768_2062"
  4344. ><td id="2062"><a href="#2062">2062</a></td></tr
  4345. ><tr id="gr_svn7768_2063"
  4346. ><td id="2063"><a href="#2063">2063</a></td></tr
  4347. ><tr id="gr_svn7768_2064"
  4348. ><td id="2064"><a href="#2064">2064</a></td></tr
  4349. ><tr id="gr_svn7768_2065"
  4350. ><td id="2065"><a href="#2065">2065</a></td></tr
  4351. ><tr id="gr_svn7768_2066"
  4352. ><td id="2066"><a href="#2066">2066</a></td></tr
  4353. ><tr id="gr_svn7768_2067"
  4354. ><td id="2067"><a href="#2067">2067</a></td></tr
  4355. ><tr id="gr_svn7768_2068"
  4356. ><td id="2068"><a href="#2068">2068</a></td></tr
  4357. ><tr id="gr_svn7768_2069"
  4358. ><td id="2069"><a href="#2069">2069</a></td></tr
  4359. ><tr id="gr_svn7768_2070"
  4360. ><td id="2070"><a href="#2070">2070</a></td></tr
  4361. ><tr id="gr_svn7768_2071"
  4362. ><td id="2071"><a href="#2071">2071</a></td></tr
  4363. ><tr id="gr_svn7768_2072"
  4364. ><td id="2072"><a href="#2072">2072</a></td></tr
  4365. ><tr id="gr_svn7768_2073"
  4366. ><td id="2073"><a href="#2073">2073</a></td></tr
  4367. ><tr id="gr_svn7768_2074"
  4368. ><td id="2074"><a href="#2074">2074</a></td></tr
  4369. ><tr id="gr_svn7768_2075"
  4370. ><td id="2075"><a href="#2075">2075</a></td></tr
  4371. ><tr id="gr_svn7768_2076"
  4372. ><td id="2076"><a href="#2076">2076</a></td></tr
  4373. ><tr id="gr_svn7768_2077"
  4374. ><td id="2077"><a href="#2077">2077</a></td></tr
  4375. ><tr id="gr_svn7768_2078"
  4376. ><td id="2078"><a href="#2078">2078</a></td></tr
  4377. ><tr id="gr_svn7768_2079"
  4378. ><td id="2079"><a href="#2079">2079</a></td></tr
  4379. ><tr id="gr_svn7768_2080"
  4380. ><td id="2080"><a href="#2080">2080</a></td></tr
  4381. ><tr id="gr_svn7768_2081"
  4382. ><td id="2081"><a href="#2081">2081</a></td></tr
  4383. ><tr id="gr_svn7768_2082"
  4384. ><td id="2082"><a href="#2082">2082</a></td></tr
  4385. ><tr id="gr_svn7768_2083"
  4386. ><td id="2083"><a href="#2083">2083</a></td></tr
  4387. ><tr id="gr_svn7768_2084"
  4388. ><td id="2084"><a href="#2084">2084</a></td></tr
  4389. ><tr id="gr_svn7768_2085"
  4390. ><td id="2085"><a href="#2085">2085</a></td></tr
  4391. ><tr id="gr_svn7768_2086"
  4392. ><td id="2086"><a href="#2086">2086</a></td></tr
  4393. ><tr id="gr_svn7768_2087"
  4394. ><td id="2087"><a href="#2087">2087</a></td></tr
  4395. ><tr id="gr_svn7768_2088"
  4396. ><td id="2088"><a href="#2088">2088</a></td></tr
  4397. ><tr id="gr_svn7768_2089"
  4398. ><td id="2089"><a href="#2089">2089</a></td></tr
  4399. ><tr id="gr_svn7768_2090"
  4400. ><td id="2090"><a href="#2090">2090</a></td></tr
  4401. ><tr id="gr_svn7768_2091"
  4402. ><td id="2091"><a href="#2091">2091</a></td></tr
  4403. ><tr id="gr_svn7768_2092"
  4404. ><td id="2092"><a href="#2092">2092</a></td></tr
  4405. ><tr id="gr_svn7768_2093"
  4406. ><td id="2093"><a href="#2093">2093</a></td></tr
  4407. ><tr id="gr_svn7768_2094"
  4408. ><td id="2094"><a href="#2094">2094</a></td></tr
  4409. ><tr id="gr_svn7768_2095"
  4410. ><td id="2095"><a href="#2095">2095</a></td></tr
  4411. ><tr id="gr_svn7768_2096"
  4412. ><td id="2096"><a href="#2096">2096</a></td></tr
  4413. ><tr id="gr_svn7768_2097"
  4414. ><td id="2097"><a href="#2097">2097</a></td></tr
  4415. ><tr id="gr_svn7768_2098"
  4416. ><td id="2098"><a href="#2098">2098</a></td></tr
  4417. ><tr id="gr_svn7768_2099"
  4418. ><td id="2099"><a href="#2099">2099</a></td></tr
  4419. ><tr id="gr_svn7768_2100"
  4420. ><td id="2100"><a href="#2100">2100</a></td></tr
  4421. ><tr id="gr_svn7768_2101"
  4422. ><td id="2101"><a href="#2101">2101</a></td></tr
  4423. ><tr id="gr_svn7768_2102"
  4424. ><td id="2102"><a href="#2102">2102</a></td></tr
  4425. ><tr id="gr_svn7768_2103"
  4426. ><td id="2103"><a href="#2103">2103</a></td></tr
  4427. ><tr id="gr_svn7768_2104"
  4428. ><td id="2104"><a href="#2104">2104</a></td></tr
  4429. ><tr id="gr_svn7768_2105"
  4430. ><td id="2105"><a href="#2105">2105</a></td></tr
  4431. ><tr id="gr_svn7768_2106"
  4432. ><td id="2106"><a href="#2106">2106</a></td></tr
  4433. ><tr id="gr_svn7768_2107"
  4434. ><td id="2107"><a href="#2107">2107</a></td></tr
  4435. ><tr id="gr_svn7768_2108"
  4436. ><td id="2108"><a href="#2108">2108</a></td></tr
  4437. ><tr id="gr_svn7768_2109"
  4438. ><td id="2109"><a href="#2109">2109</a></td></tr
  4439. ><tr id="gr_svn7768_2110"
  4440. ><td id="2110"><a href="#2110">2110</a></td></tr
  4441. ><tr id="gr_svn7768_2111"
  4442. ><td id="2111"><a href="#2111">2111</a></td></tr
  4443. ><tr id="gr_svn7768_2112"
  4444. ><td id="2112"><a href="#2112">2112</a></td></tr
  4445. ><tr id="gr_svn7768_2113"
  4446. ><td id="2113"><a href="#2113">2113</a></td></tr
  4447. ><tr id="gr_svn7768_2114"
  4448. ><td id="2114"><a href="#2114">2114</a></td></tr
  4449. ><tr id="gr_svn7768_2115"
  4450. ><td id="2115"><a href="#2115">2115</a></td></tr
  4451. ><tr id="gr_svn7768_2116"
  4452. ><td id="2116"><a href="#2116">2116</a></td></tr
  4453. ><tr id="gr_svn7768_2117"
  4454. ><td id="2117"><a href="#2117">2117</a></td></tr
  4455. ><tr id="gr_svn7768_2118"
  4456. ><td id="2118"><a href="#2118">2118</a></td></tr
  4457. ><tr id="gr_svn7768_2119"
  4458. ><td id="2119"><a href="#2119">2119</a></td></tr
  4459. ><tr id="gr_svn7768_2120"
  4460. ><td id="2120"><a href="#2120">2120</a></td></tr
  4461. ><tr id="gr_svn7768_2121"
  4462. ><td id="2121"><a href="#2121">2121</a></td></tr
  4463. ><tr id="gr_svn7768_2122"
  4464. ><td id="2122"><a href="#2122">2122</a></td></tr
  4465. ><tr id="gr_svn7768_2123"
  4466. ><td id="2123"><a href="#2123">2123</a></td></tr
  4467. ><tr id="gr_svn7768_2124"
  4468. ><td id="2124"><a href="#2124">2124</a></td></tr
  4469. ><tr id="gr_svn7768_2125"
  4470. ><td id="2125"><a href="#2125">2125</a></td></tr
  4471. ><tr id="gr_svn7768_2126"
  4472. ><td id="2126"><a href="#2126">2126</a></td></tr
  4473. ><tr id="gr_svn7768_2127"
  4474. ><td id="2127"><a href="#2127">2127</a></td></tr
  4475. ><tr id="gr_svn7768_2128"
  4476. ><td id="2128"><a href="#2128">2128</a></td></tr
  4477. ><tr id="gr_svn7768_2129"
  4478. ><td id="2129"><a href="#2129">2129</a></td></tr
  4479. ><tr id="gr_svn7768_2130"
  4480. ><td id="2130"><a href="#2130">2130</a></td></tr
  4481. ><tr id="gr_svn7768_2131"
  4482. ><td id="2131"><a href="#2131">2131</a></td></tr
  4483. ><tr id="gr_svn7768_2132"
  4484. ><td id="2132"><a href="#2132">2132</a></td></tr
  4485. ><tr id="gr_svn7768_2133"
  4486. ><td id="2133"><a href="#2133">2133</a></td></tr
  4487. ><tr id="gr_svn7768_2134"
  4488. ><td id="2134"><a href="#2134">2134</a></td></tr
  4489. ><tr id="gr_svn7768_2135"
  4490. ><td id="2135"><a href="#2135">2135</a></td></tr
  4491. ><tr id="gr_svn7768_2136"
  4492. ><td id="2136"><a href="#2136">2136</a></td></tr
  4493. ><tr id="gr_svn7768_2137"
  4494. ><td id="2137"><a href="#2137">2137</a></td></tr
  4495. ><tr id="gr_svn7768_2138"
  4496. ><td id="2138"><a href="#2138">2138</a></td></tr
  4497. ><tr id="gr_svn7768_2139"
  4498. ><td id="2139"><a href="#2139">2139</a></td></tr
  4499. ><tr id="gr_svn7768_2140"
  4500. ><td id="2140"><a href="#2140">2140</a></td></tr
  4501. ><tr id="gr_svn7768_2141"
  4502. ><td id="2141"><a href="#2141">2141</a></td></tr
  4503. ><tr id="gr_svn7768_2142"
  4504. ><td id="2142"><a href="#2142">2142</a></td></tr
  4505. ><tr id="gr_svn7768_2143"
  4506. ><td id="2143"><a href="#2143">2143</a></td></tr
  4507. ><tr id="gr_svn7768_2144"
  4508. ><td id="2144"><a href="#2144">2144</a></td></tr
  4509. ><tr id="gr_svn7768_2145"
  4510. ><td id="2145"><a href="#2145">2145</a></td></tr
  4511. ><tr id="gr_svn7768_2146"
  4512. ><td id="2146"><a href="#2146">2146</a></td></tr
  4513. ><tr id="gr_svn7768_2147"
  4514. ><td id="2147"><a href="#2147">2147</a></td></tr
  4515. ><tr id="gr_svn7768_2148"
  4516. ><td id="2148"><a href="#2148">2148</a></td></tr
  4517. ><tr id="gr_svn7768_2149"
  4518. ><td id="2149"><a href="#2149">2149</a></td></tr
  4519. ><tr id="gr_svn7768_2150"
  4520. ><td id="2150"><a href="#2150">2150</a></td></tr
  4521. ><tr id="gr_svn7768_2151"
  4522. ><td id="2151"><a href="#2151">2151</a></td></tr
  4523. ><tr id="gr_svn7768_2152"
  4524. ><td id="2152"><a href="#2152">2152</a></td></tr
  4525. ><tr id="gr_svn7768_2153"
  4526. ><td id="2153"><a href="#2153">2153</a></td></tr
  4527. ><tr id="gr_svn7768_2154"
  4528. ><td id="2154"><a href="#2154">2154</a></td></tr
  4529. ></table></pre>
  4530. <pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
  4531. </td>
  4532. <td id="lines">
  4533. <pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
  4534. <pre class="prettyprint lang-java"><table id="src_table_0"><tr
  4535. id=sl_svn7768_1
  4536. ><td class="source">/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */<br></td></tr
  4537. ><tr
  4538. id=sl_svn7768_2
  4539. ><td class="source"><br></td></tr
  4540. ><tr
  4541. id=sl_svn7768_3
  4542. ><td class="source">/*<br></td></tr
  4543. ><tr
  4544. id=sl_svn7768_4
  4545. ><td class="source"> Part of the Processing project - http://processing.org<br></td></tr
  4546. ><tr
  4547. id=sl_svn7768_5
  4548. ><td class="source"><br></td></tr
  4549. ><tr
  4550. id=sl_svn7768_6
  4551. ><td class="source"> Copyright (c) 2006-08 Ben Fry and Casey Reas<br></td></tr
  4552. ><tr
  4553. id=sl_svn7768_7
  4554. ><td class="source"><br></td></tr
  4555. ><tr
  4556. id=sl_svn7768_8
  4557. ><td class="source"> This library is free software; you can redistribute it and/or<br></td></tr
  4558. ><tr
  4559. id=sl_svn7768_9
  4560. ><td class="source"> modify it under the terms of the GNU Lesser General Public<br></td></tr
  4561. ><tr
  4562. id=sl_svn7768_10
  4563. ><td class="source"> License as published by the Free Software Foundation; either<br></td></tr
  4564. ><tr
  4565. id=sl_svn7768_11
  4566. ><td class="source"> version 2.1 of the License, or (at your option) any later version.<br></td></tr
  4567. ><tr
  4568. id=sl_svn7768_12
  4569. ><td class="source"><br></td></tr
  4570. ><tr
  4571. id=sl_svn7768_13
  4572. ><td class="source"> This library is distributed in the hope that it will be useful,<br></td></tr
  4573. ><tr
  4574. id=sl_svn7768_14
  4575. ><td class="source"> but WITHOUT ANY WARRANTY; without even the implied warranty of<br></td></tr
  4576. ><tr
  4577. id=sl_svn7768_15
  4578. ><td class="source"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br></td></tr
  4579. ><tr
  4580. id=sl_svn7768_16
  4581. ><td class="source"> Lesser General Public License for more details.<br></td></tr
  4582. ><tr
  4583. id=sl_svn7768_17
  4584. ><td class="source"><br></td></tr
  4585. ><tr
  4586. id=sl_svn7768_18
  4587. ><td class="source"> You should have received a copy of the GNU Lesser General<br></td></tr
  4588. ><tr
  4589. id=sl_svn7768_19
  4590. ><td class="source"> Public License along with this library; if not, write to the<br></td></tr
  4591. ><tr
  4592. id=sl_svn7768_20
  4593. ><td class="source"> Free Software Foundation, Inc., 59 Temple Place, Suite 330,<br></td></tr
  4594. ><tr
  4595. id=sl_svn7768_21
  4596. ><td class="source"> Boston, MA 02111-1307 USA<br></td></tr
  4597. ><tr
  4598. id=sl_svn7768_22
  4599. ><td class="source">*/<br></td></tr
  4600. ><tr
  4601. id=sl_svn7768_23
  4602. ><td class="source"><br></td></tr
  4603. ><tr
  4604. id=sl_svn7768_24
  4605. ><td class="source">package processing.core;<br></td></tr
  4606. ><tr
  4607. id=sl_svn7768_25
  4608. ><td class="source"><br></td></tr
  4609. ><tr
  4610. id=sl_svn7768_26
  4611. ><td class="source">import java.awt.Toolkit;<br></td></tr
  4612. ><tr
  4613. id=sl_svn7768_27
  4614. ><td class="source">import java.awt.image.DirectColorModel;<br></td></tr
  4615. ><tr
  4616. id=sl_svn7768_28
  4617. ><td class="source">import java.awt.image.MemoryImageSource;<br></td></tr
  4618. ><tr
  4619. id=sl_svn7768_29
  4620. ><td class="source">import java.util.Arrays;<br></td></tr
  4621. ><tr
  4622. id=sl_svn7768_30
  4623. ><td class="source"><br></td></tr
  4624. ><tr
  4625. id=sl_svn7768_31
  4626. ><td class="source"><br></td></tr
  4627. ><tr
  4628. id=sl_svn7768_32
  4629. ><td class="source">/**<br></td></tr
  4630. ><tr
  4631. id=sl_svn7768_33
  4632. ><td class="source"> * Subclass of PGraphics that handles fast 2D rendering using a<br></td></tr
  4633. ><tr
  4634. id=sl_svn7768_34
  4635. ><td class="source"> * MemoryImageSource. The renderer found in this class is not as accurate as<br></td></tr
  4636. ><tr
  4637. id=sl_svn7768_35
  4638. ><td class="source"> * PGraphicsJava2D, but offers certain speed tradeoffs, particular when<br></td></tr
  4639. ><tr
  4640. id=sl_svn7768_36
  4641. ><td class="source"> * messing with the pixels array, or displaying image or video data.<br></td></tr
  4642. ><tr
  4643. id=sl_svn7768_37
  4644. ><td class="source"> */<br></td></tr
  4645. ><tr
  4646. id=sl_svn7768_38
  4647. ><td class="source">public class PGraphics2D extends PGraphics {<br></td></tr
  4648. ><tr
  4649. id=sl_svn7768_39
  4650. ><td class="source"><br></td></tr
  4651. ><tr
  4652. id=sl_svn7768_40
  4653. ><td class="source"> PMatrix2D ctm = new PMatrix2D();<br></td></tr
  4654. ><tr
  4655. id=sl_svn7768_41
  4656. ><td class="source"><br></td></tr
  4657. ><tr
  4658. id=sl_svn7768_42
  4659. ><td class="source"> //PPolygon polygon; // general polygon to use for shape<br></td></tr
  4660. ><tr
  4661. id=sl_svn7768_43
  4662. ><td class="source"> PPolygon fpolygon; // used to fill polys for tri or quad strips<br></td></tr
  4663. ><tr
  4664. id=sl_svn7768_44
  4665. ><td class="source"> PPolygon spolygon; // stroke/line polygon<br></td></tr
  4666. ><tr
  4667. id=sl_svn7768_45
  4668. ><td class="source"> float svertices[][]; // temp vertices used for stroking end of poly<br></td></tr
  4669. ><tr
  4670. id=sl_svn7768_46
  4671. ><td class="source"><br></td></tr
  4672. ><tr
  4673. id=sl_svn7768_47
  4674. ><td class="source"> PPolygon tpolygon;<br></td></tr
  4675. ><tr
  4676. id=sl_svn7768_48
  4677. ><td class="source"> int[] vertexOrder;<br></td></tr
  4678. ><tr
  4679. id=sl_svn7768_49
  4680. ><td class="source"><br></td></tr
  4681. ><tr
  4682. id=sl_svn7768_50
  4683. ><td class="source"> PLine line;<br></td></tr
  4684. ><tr
  4685. id=sl_svn7768_51
  4686. ><td class="source"><br></td></tr
  4687. ><tr
  4688. id=sl_svn7768_52
  4689. ><td class="source"> float[][] matrixStack = new float[MATRIX_STACK_DEPTH][6];<br></td></tr
  4690. ><tr
  4691. id=sl_svn7768_53
  4692. ><td class="source"> int matrixStackDepth;<br></td></tr
  4693. ><tr
  4694. id=sl_svn7768_54
  4695. ><td class="source"><br></td></tr
  4696. ><tr
  4697. id=sl_svn7768_55
  4698. ><td class="source"> DirectColorModel cm;<br></td></tr
  4699. ><tr
  4700. id=sl_svn7768_56
  4701. ><td class="source"> MemoryImageSource mis;<br></td></tr
  4702. ><tr
  4703. id=sl_svn7768_57
  4704. ><td class="source"><br></td></tr
  4705. ><tr
  4706. id=sl_svn7768_58
  4707. ><td class="source"><br></td></tr
  4708. ><tr
  4709. id=sl_svn7768_59
  4710. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  4711. ><tr
  4712. id=sl_svn7768_60
  4713. ><td class="source"><br></td></tr
  4714. ><tr
  4715. id=sl_svn7768_61
  4716. ><td class="source"><br></td></tr
  4717. ><tr
  4718. id=sl_svn7768_62
  4719. ><td class="source"> public PGraphics2D() { }<br></td></tr
  4720. ><tr
  4721. id=sl_svn7768_63
  4722. ><td class="source"><br></td></tr
  4723. ><tr
  4724. id=sl_svn7768_64
  4725. ><td class="source"><br></td></tr
  4726. ><tr
  4727. id=sl_svn7768_65
  4728. ><td class="source"> //public void setParent(PApplet parent)<br></td></tr
  4729. ><tr
  4730. id=sl_svn7768_66
  4731. ><td class="source"><br></td></tr
  4732. ><tr
  4733. id=sl_svn7768_67
  4734. ><td class="source"><br></td></tr
  4735. ><tr
  4736. id=sl_svn7768_68
  4737. ><td class="source"> //public void setPrimary(boolean primary)<br></td></tr
  4738. ><tr
  4739. id=sl_svn7768_69
  4740. ><td class="source"><br></td></tr
  4741. ><tr
  4742. id=sl_svn7768_70
  4743. ><td class="source"><br></td></tr
  4744. ><tr
  4745. id=sl_svn7768_71
  4746. ><td class="source"> //public void setPath(String path)<br></td></tr
  4747. ><tr
  4748. id=sl_svn7768_72
  4749. ><td class="source"><br></td></tr
  4750. ><tr
  4751. id=sl_svn7768_73
  4752. ><td class="source"><br></td></tr
  4753. ><tr
  4754. id=sl_svn7768_74
  4755. ><td class="source"> //public void setSize(int iwidth, int iheight)<br></td></tr
  4756. ><tr
  4757. id=sl_svn7768_75
  4758. ><td class="source"><br></td></tr
  4759. ><tr
  4760. id=sl_svn7768_76
  4761. ><td class="source"><br></td></tr
  4762. ><tr
  4763. id=sl_svn7768_77
  4764. ><td class="source"> protected void allocate() {<br></td></tr
  4765. ><tr
  4766. id=sl_svn7768_78
  4767. ><td class="source"> pixelCount = width * height;<br></td></tr
  4768. ><tr
  4769. id=sl_svn7768_79
  4770. ><td class="source"> pixels = new int[pixelCount];<br></td></tr
  4771. ><tr
  4772. id=sl_svn7768_80
  4773. ><td class="source"><br></td></tr
  4774. ><tr
  4775. id=sl_svn7768_81
  4776. ><td class="source"> if (primarySurface) {<br></td></tr
  4777. ><tr
  4778. id=sl_svn7768_82
  4779. ><td class="source"> cm = new DirectColorModel(32, 0x00ff0000, 0x0000ff00, 0x000000ff);;<br></td></tr
  4780. ><tr
  4781. id=sl_svn7768_83
  4782. ><td class="source"> mis = new MemoryImageSource(width, height, pixels, 0, width);<br></td></tr
  4783. ><tr
  4784. id=sl_svn7768_84
  4785. ><td class="source"> mis.setFullBufferUpdates(true);<br></td></tr
  4786. ><tr
  4787. id=sl_svn7768_85
  4788. ><td class="source"> mis.setAnimated(true);<br></td></tr
  4789. ><tr
  4790. id=sl_svn7768_86
  4791. ><td class="source"> image = Toolkit.getDefaultToolkit().createImage(mis);<br></td></tr
  4792. ><tr
  4793. id=sl_svn7768_87
  4794. ><td class="source"> }<br></td></tr
  4795. ><tr
  4796. id=sl_svn7768_88
  4797. ><td class="source"> }<br></td></tr
  4798. ><tr
  4799. id=sl_svn7768_89
  4800. ><td class="source"><br></td></tr
  4801. ><tr
  4802. id=sl_svn7768_90
  4803. ><td class="source"><br></td></tr
  4804. ><tr
  4805. id=sl_svn7768_91
  4806. ><td class="source"> //public void dispose()<br></td></tr
  4807. ><tr
  4808. id=sl_svn7768_92
  4809. ><td class="source"><br></td></tr
  4810. ><tr
  4811. id=sl_svn7768_93
  4812. ><td class="source"><br></td></tr
  4813. ><tr
  4814. id=sl_svn7768_94
  4815. ><td class="source"><br></td></tr
  4816. ><tr
  4817. id=sl_svn7768_95
  4818. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  4819. ><tr
  4820. id=sl_svn7768_96
  4821. ><td class="source"><br></td></tr
  4822. ><tr
  4823. id=sl_svn7768_97
  4824. ><td class="source"><br></td></tr
  4825. ><tr
  4826. id=sl_svn7768_98
  4827. ><td class="source"> public boolean canDraw() {<br></td></tr
  4828. ><tr
  4829. id=sl_svn7768_99
  4830. ><td class="source"> return true;<br></td></tr
  4831. ><tr
  4832. id=sl_svn7768_100
  4833. ><td class="source"> }<br></td></tr
  4834. ><tr
  4835. id=sl_svn7768_101
  4836. ><td class="source"><br></td></tr
  4837. ><tr
  4838. id=sl_svn7768_102
  4839. ><td class="source"><br></td></tr
  4840. ><tr
  4841. id=sl_svn7768_103
  4842. ><td class="source"> public void beginDraw() {<br></td></tr
  4843. ><tr
  4844. id=sl_svn7768_104
  4845. ><td class="source"> // need to call defaults(), but can only be done when it&#39;s ok to draw<br></td></tr
  4846. ><tr
  4847. id=sl_svn7768_105
  4848. ><td class="source"> // (i.e. for OpenGL, no drawing can be done outside beginDraw/endDraw).<br></td></tr
  4849. ><tr
  4850. id=sl_svn7768_106
  4851. ><td class="source"> if (!settingsInited) {<br></td></tr
  4852. ><tr
  4853. id=sl_svn7768_107
  4854. ><td class="source"> defaultSettings();<br></td></tr
  4855. ><tr
  4856. id=sl_svn7768_108
  4857. ><td class="source"><br></td></tr
  4858. ><tr
  4859. id=sl_svn7768_109
  4860. ><td class="source">// polygon = new PPolygon(this);<br></td></tr
  4861. ><tr
  4862. id=sl_svn7768_110
  4863. ><td class="source"> fpolygon = new PPolygon(this);<br></td></tr
  4864. ><tr
  4865. id=sl_svn7768_111
  4866. ><td class="source"> spolygon = new PPolygon(this);<br></td></tr
  4867. ><tr
  4868. id=sl_svn7768_112
  4869. ><td class="source"> spolygon.vertexCount = 4;<br></td></tr
  4870. ><tr
  4871. id=sl_svn7768_113
  4872. ><td class="source"> svertices = new float[2][];<br></td></tr
  4873. ><tr
  4874. id=sl_svn7768_114
  4875. ><td class="source"> }<br></td></tr
  4876. ><tr
  4877. id=sl_svn7768_115
  4878. ><td class="source"><br></td></tr
  4879. ><tr
  4880. id=sl_svn7768_116
  4881. ><td class="source"> resetMatrix(); // reset model matrix<br></td></tr
  4882. ><tr
  4883. id=sl_svn7768_117
  4884. ><td class="source"><br></td></tr
  4885. ><tr
  4886. id=sl_svn7768_118
  4887. ><td class="source"> // reset vertices<br></td></tr
  4888. ><tr
  4889. id=sl_svn7768_119
  4890. ><td class="source"> vertexCount = 0;<br></td></tr
  4891. ><tr
  4892. id=sl_svn7768_120
  4893. ><td class="source"> }<br></td></tr
  4894. ><tr
  4895. id=sl_svn7768_121
  4896. ><td class="source"><br></td></tr
  4897. ><tr
  4898. id=sl_svn7768_122
  4899. ><td class="source"><br></td></tr
  4900. ><tr
  4901. id=sl_svn7768_123
  4902. ><td class="source"> public void endDraw() {<br></td></tr
  4903. ><tr
  4904. id=sl_svn7768_124
  4905. ><td class="source"> if (mis != null) {<br></td></tr
  4906. ><tr
  4907. id=sl_svn7768_125
  4908. ><td class="source"> mis.newPixels(pixels, cm, 0, width);<br></td></tr
  4909. ><tr
  4910. id=sl_svn7768_126
  4911. ><td class="source"> }<br></td></tr
  4912. ><tr
  4913. id=sl_svn7768_127
  4914. ><td class="source"> // mark pixels as having been updated, so that they&#39;ll work properly<br></td></tr
  4915. ><tr
  4916. id=sl_svn7768_128
  4917. ><td class="source"> // when this PGraphics is drawn using image().<br></td></tr
  4918. ><tr
  4919. id=sl_svn7768_129
  4920. ><td class="source"> updatePixels();<br></td></tr
  4921. ><tr
  4922. id=sl_svn7768_130
  4923. ><td class="source"> }<br></td></tr
  4924. ><tr
  4925. id=sl_svn7768_131
  4926. ><td class="source"><br></td></tr
  4927. ><tr
  4928. id=sl_svn7768_132
  4929. ><td class="source"><br></td></tr
  4930. ><tr
  4931. id=sl_svn7768_133
  4932. ><td class="source"> // public void flush()<br></td></tr
  4933. ><tr
  4934. id=sl_svn7768_134
  4935. ><td class="source"><br></td></tr
  4936. ><tr
  4937. id=sl_svn7768_135
  4938. ><td class="source"><br></td></tr
  4939. ><tr
  4940. id=sl_svn7768_136
  4941. ><td class="source"><br></td></tr
  4942. ><tr
  4943. id=sl_svn7768_137
  4944. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  4945. ><tr
  4946. id=sl_svn7768_138
  4947. ><td class="source"><br></td></tr
  4948. ><tr
  4949. id=sl_svn7768_139
  4950. ><td class="source"><br></td></tr
  4951. ><tr
  4952. id=sl_svn7768_140
  4953. ><td class="source"> //protected void checkSettings()<br></td></tr
  4954. ><tr
  4955. id=sl_svn7768_141
  4956. ><td class="source"><br></td></tr
  4957. ><tr
  4958. id=sl_svn7768_142
  4959. ><td class="source"><br></td></tr
  4960. ><tr
  4961. id=sl_svn7768_143
  4962. ><td class="source"> //protected void defaultSettings()<br></td></tr
  4963. ><tr
  4964. id=sl_svn7768_144
  4965. ><td class="source"><br></td></tr
  4966. ><tr
  4967. id=sl_svn7768_145
  4968. ><td class="source"><br></td></tr
  4969. ><tr
  4970. id=sl_svn7768_146
  4971. ><td class="source"> //protected void reapplySettings()<br></td></tr
  4972. ><tr
  4973. id=sl_svn7768_147
  4974. ><td class="source"><br></td></tr
  4975. ><tr
  4976. id=sl_svn7768_148
  4977. ><td class="source"><br></td></tr
  4978. ><tr
  4979. id=sl_svn7768_149
  4980. ><td class="source"><br></td></tr
  4981. ><tr
  4982. id=sl_svn7768_150
  4983. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  4984. ><tr
  4985. id=sl_svn7768_151
  4986. ><td class="source"><br></td></tr
  4987. ><tr
  4988. id=sl_svn7768_152
  4989. ><td class="source"><br></td></tr
  4990. ><tr
  4991. id=sl_svn7768_153
  4992. ><td class="source"> //public void hint(int which)<br></td></tr
  4993. ><tr
  4994. id=sl_svn7768_154
  4995. ><td class="source"><br></td></tr
  4996. ><tr
  4997. id=sl_svn7768_155
  4998. ><td class="source"><br></td></tr
  4999. ><tr
  5000. id=sl_svn7768_156
  5001. ><td class="source"><br></td></tr
  5002. ><tr
  5003. id=sl_svn7768_157
  5004. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  5005. ><tr
  5006. id=sl_svn7768_158
  5007. ><td class="source"><br></td></tr
  5008. ><tr
  5009. id=sl_svn7768_159
  5010. ><td class="source"><br></td></tr
  5011. ><tr
  5012. id=sl_svn7768_160
  5013. ><td class="source"> //public void beginShape()<br></td></tr
  5014. ><tr
  5015. id=sl_svn7768_161
  5016. ><td class="source"><br></td></tr
  5017. ><tr
  5018. id=sl_svn7768_162
  5019. ><td class="source"><br></td></tr
  5020. ><tr
  5021. id=sl_svn7768_163
  5022. ><td class="source"> public void beginShape(int kind) {<br></td></tr
  5023. ><tr
  5024. id=sl_svn7768_164
  5025. ><td class="source"> shape = kind;<br></td></tr
  5026. ><tr
  5027. id=sl_svn7768_165
  5028. ><td class="source"> vertexCount = 0;<br></td></tr
  5029. ><tr
  5030. id=sl_svn7768_166
  5031. ><td class="source"> curveVertexCount = 0;<br></td></tr
  5032. ><tr
  5033. id=sl_svn7768_167
  5034. ><td class="source"><br></td></tr
  5035. ><tr
  5036. id=sl_svn7768_168
  5037. ><td class="source">// polygon.reset(0);<br></td></tr
  5038. ><tr
  5039. id=sl_svn7768_169
  5040. ><td class="source"> fpolygon.reset(4);<br></td></tr
  5041. ><tr
  5042. id=sl_svn7768_170
  5043. ><td class="source"> spolygon.reset(4);<br></td></tr
  5044. ><tr
  5045. id=sl_svn7768_171
  5046. ><td class="source"><br></td></tr
  5047. ><tr
  5048. id=sl_svn7768_172
  5049. ><td class="source"> textureImage = null;<br></td></tr
  5050. ><tr
  5051. id=sl_svn7768_173
  5052. ><td class="source">// polygon.interpUV = false;<br></td></tr
  5053. ><tr
  5054. id=sl_svn7768_174
  5055. ><td class="source"> }<br></td></tr
  5056. ><tr
  5057. id=sl_svn7768_175
  5058. ><td class="source"><br></td></tr
  5059. ><tr
  5060. id=sl_svn7768_176
  5061. ><td class="source"><br></td></tr
  5062. ><tr
  5063. id=sl_svn7768_177
  5064. ><td class="source"> //public void edge(boolean e)<br></td></tr
  5065. ><tr
  5066. id=sl_svn7768_178
  5067. ><td class="source"><br></td></tr
  5068. ><tr
  5069. id=sl_svn7768_179
  5070. ><td class="source"><br></td></tr
  5071. ><tr
  5072. id=sl_svn7768_180
  5073. ><td class="source"> //public void normal(float nx, float ny, float nz)<br></td></tr
  5074. ><tr
  5075. id=sl_svn7768_181
  5076. ><td class="source"><br></td></tr
  5077. ><tr
  5078. id=sl_svn7768_182
  5079. ><td class="source"><br></td></tr
  5080. ><tr
  5081. id=sl_svn7768_183
  5082. ><td class="source"> //public void textureMode(int mode)<br></td></tr
  5083. ><tr
  5084. id=sl_svn7768_184
  5085. ><td class="source"><br></td></tr
  5086. ><tr
  5087. id=sl_svn7768_185
  5088. ><td class="source"><br></td></tr
  5089. ><tr
  5090. id=sl_svn7768_186
  5091. ><td class="source"> //public void texture(PImage image)<br></td></tr
  5092. ><tr
  5093. id=sl_svn7768_187
  5094. ><td class="source"><br></td></tr
  5095. ><tr
  5096. id=sl_svn7768_188
  5097. ><td class="source"><br></td></tr
  5098. ><tr
  5099. id=sl_svn7768_189
  5100. ><td class="source"> /*<br></td></tr
  5101. ><tr
  5102. id=sl_svn7768_190
  5103. ><td class="source"> public void vertex(float x, float y) {<br></td></tr
  5104. ><tr
  5105. id=sl_svn7768_191
  5106. ><td class="source"> if (shape == POINTS) {<br></td></tr
  5107. ><tr
  5108. id=sl_svn7768_192
  5109. ><td class="source"> point(x, y);<br></td></tr
  5110. ><tr
  5111. id=sl_svn7768_193
  5112. ><td class="source"> } else {<br></td></tr
  5113. ><tr
  5114. id=sl_svn7768_194
  5115. ><td class="source"> super.vertex(x, y);<br></td></tr
  5116. ><tr
  5117. id=sl_svn7768_195
  5118. ><td class="source"> }<br></td></tr
  5119. ><tr
  5120. id=sl_svn7768_196
  5121. ><td class="source"> }<br></td></tr
  5122. ><tr
  5123. id=sl_svn7768_197
  5124. ><td class="source"> */<br></td></tr
  5125. ><tr
  5126. id=sl_svn7768_198
  5127. ><td class="source"><br></td></tr
  5128. ><tr
  5129. id=sl_svn7768_199
  5130. ><td class="source"><br></td></tr
  5131. ><tr
  5132. id=sl_svn7768_200
  5133. ><td class="source"> public void vertex(float x, float y, float z) {<br></td></tr
  5134. ><tr
  5135. id=sl_svn7768_201
  5136. ><td class="source"> showDepthWarningXYZ(&quot;vertex&quot;);<br></td></tr
  5137. ><tr
  5138. id=sl_svn7768_202
  5139. ><td class="source"> }<br></td></tr
  5140. ><tr
  5141. id=sl_svn7768_203
  5142. ><td class="source"><br></td></tr
  5143. ><tr
  5144. id=sl_svn7768_204
  5145. ><td class="source"><br></td></tr
  5146. ><tr
  5147. id=sl_svn7768_205
  5148. ><td class="source"> //public void vertex(float x, float y, float u, float v)<br></td></tr
  5149. ><tr
  5150. id=sl_svn7768_206
  5151. ><td class="source"><br></td></tr
  5152. ><tr
  5153. id=sl_svn7768_207
  5154. ><td class="source"><br></td></tr
  5155. ><tr
  5156. id=sl_svn7768_208
  5157. ><td class="source"> public void vertex(float x, float y, float z, float u, float v) {<br></td></tr
  5158. ><tr
  5159. id=sl_svn7768_209
  5160. ><td class="source"> showDepthWarningXYZ(&quot;vertex&quot;);<br></td></tr
  5161. ><tr
  5162. id=sl_svn7768_210
  5163. ><td class="source"> }<br></td></tr
  5164. ><tr
  5165. id=sl_svn7768_211
  5166. ><td class="source"><br></td></tr
  5167. ><tr
  5168. id=sl_svn7768_212
  5169. ><td class="source"><br></td></tr
  5170. ><tr
  5171. id=sl_svn7768_213
  5172. ><td class="source"> //protected void vertexTexture(float u, float v);<br></td></tr
  5173. ><tr
  5174. id=sl_svn7768_214
  5175. ><td class="source"><br></td></tr
  5176. ><tr
  5177. id=sl_svn7768_215
  5178. ><td class="source"><br></td></tr
  5179. ><tr
  5180. id=sl_svn7768_216
  5181. ><td class="source"> public void breakShape() {<br></td></tr
  5182. ><tr
  5183. id=sl_svn7768_217
  5184. ><td class="source"> showWarning(&quot;This renderer cannot handle concave shapes &quot; +<br></td></tr
  5185. ><tr
  5186. id=sl_svn7768_218
  5187. ><td class="source"> &quot;or shapes with holes.&quot;);<br></td></tr
  5188. ><tr
  5189. id=sl_svn7768_219
  5190. ><td class="source"> }<br></td></tr
  5191. ><tr
  5192. id=sl_svn7768_220
  5193. ><td class="source"><br></td></tr
  5194. ><tr
  5195. id=sl_svn7768_221
  5196. ><td class="source"><br></td></tr
  5197. ><tr
  5198. id=sl_svn7768_222
  5199. ><td class="source"> //public void endShape()<br></td></tr
  5200. ><tr
  5201. id=sl_svn7768_223
  5202. ><td class="source"><br></td></tr
  5203. ><tr
  5204. id=sl_svn7768_224
  5205. ><td class="source"><br></td></tr
  5206. ><tr
  5207. id=sl_svn7768_225
  5208. ><td class="source"> public void endShape(int mode) {<br></td></tr
  5209. ><tr
  5210. id=sl_svn7768_226
  5211. ><td class="source"> if (ctm.isIdentity()) {<br></td></tr
  5212. ><tr
  5213. id=sl_svn7768_227
  5214. ><td class="source"> for (int i = 0; i &lt; vertexCount; i++) {<br></td></tr
  5215. ><tr
  5216. id=sl_svn7768_228
  5217. ><td class="source"> vertices[i][TX] = vertices[i][X];<br></td></tr
  5218. ><tr
  5219. id=sl_svn7768_229
  5220. ><td class="source"> vertices[i][TY] = vertices[i][Y];<br></td></tr
  5221. ><tr
  5222. id=sl_svn7768_230
  5223. ><td class="source"> }<br></td></tr
  5224. ><tr
  5225. id=sl_svn7768_231
  5226. ><td class="source"> } else {<br></td></tr
  5227. ><tr
  5228. id=sl_svn7768_232
  5229. ><td class="source"> for (int i = 0; i &lt; vertexCount; i++) {<br></td></tr
  5230. ><tr
  5231. id=sl_svn7768_233
  5232. ><td class="source"> vertices[i][TX] = ctm.multX(vertices[i][X], vertices[i][Y]);<br></td></tr
  5233. ><tr
  5234. id=sl_svn7768_234
  5235. ><td class="source"> vertices[i][TY] = ctm.multY(vertices[i][X], vertices[i][Y]);<br></td></tr
  5236. ><tr
  5237. id=sl_svn7768_235
  5238. ><td class="source"> }<br></td></tr
  5239. ><tr
  5240. id=sl_svn7768_236
  5241. ><td class="source"> }<br></td></tr
  5242. ><tr
  5243. id=sl_svn7768_237
  5244. ><td class="source"><br></td></tr
  5245. ><tr
  5246. id=sl_svn7768_238
  5247. ><td class="source"> // ------------------------------------------------------------------<br></td></tr
  5248. ><tr
  5249. id=sl_svn7768_239
  5250. ><td class="source"> // TEXTURES<br></td></tr
  5251. ><tr
  5252. id=sl_svn7768_240
  5253. ><td class="source"><br></td></tr
  5254. ><tr
  5255. id=sl_svn7768_241
  5256. ><td class="source"> fpolygon.texture(textureImage);<br></td></tr
  5257. ><tr
  5258. id=sl_svn7768_242
  5259. ><td class="source"><br></td></tr
  5260. ><tr
  5261. id=sl_svn7768_243
  5262. ><td class="source"> // ------------------------------------------------------------------<br></td></tr
  5263. ><tr
  5264. id=sl_svn7768_244
  5265. ><td class="source"> // COLORS<br></td></tr
  5266. ><tr
  5267. id=sl_svn7768_245
  5268. ><td class="source"> // calculate RGB for each vertex<br></td></tr
  5269. ><tr
  5270. id=sl_svn7768_246
  5271. ><td class="source"><br></td></tr
  5272. ><tr
  5273. id=sl_svn7768_247
  5274. ><td class="source"> spolygon.interpARGB = true; //strokeChanged; //false;<br></td></tr
  5275. ><tr
  5276. id=sl_svn7768_248
  5277. ><td class="source"> fpolygon.interpARGB = true; //fillChanged; //false;<br></td></tr
  5278. ><tr
  5279. id=sl_svn7768_249
  5280. ><td class="source"><br></td></tr
  5281. ><tr
  5282. id=sl_svn7768_250
  5283. ><td class="source"> // all the values for r, g, b have been set with calls to vertex()<br></td></tr
  5284. ><tr
  5285. id=sl_svn7768_251
  5286. ><td class="source"> // (no need to re-calculate anything here)<br></td></tr
  5287. ><tr
  5288. id=sl_svn7768_252
  5289. ><td class="source"><br></td></tr
  5290. ><tr
  5291. id=sl_svn7768_253
  5292. ><td class="source"> // ------------------------------------------------------------------<br></td></tr
  5293. ><tr
  5294. id=sl_svn7768_254
  5295. ><td class="source"> // RENDER SHAPES<br></td></tr
  5296. ><tr
  5297. id=sl_svn7768_255
  5298. ><td class="source"><br></td></tr
  5299. ><tr
  5300. id=sl_svn7768_256
  5301. ><td class="source"> int increment;<br></td></tr
  5302. ><tr
  5303. id=sl_svn7768_257
  5304. ><td class="source"><br></td></tr
  5305. ><tr
  5306. id=sl_svn7768_258
  5307. ><td class="source"> switch (shape) {<br></td></tr
  5308. ><tr
  5309. id=sl_svn7768_259
  5310. ><td class="source"> case POINTS:<br></td></tr
  5311. ><tr
  5312. id=sl_svn7768_260
  5313. ><td class="source"> // stroke cannot change inside beginShape(POINTS);<br></td></tr
  5314. ><tr
  5315. id=sl_svn7768_261
  5316. ><td class="source"> if (stroke) {<br></td></tr
  5317. ><tr
  5318. id=sl_svn7768_262
  5319. ><td class="source"> if ((ctm.m00 == ctm.m11) &amp;&amp; (strokeWeight == 1)) {<br></td></tr
  5320. ><tr
  5321. id=sl_svn7768_263
  5322. ><td class="source"> for (int i = 0; i &lt; vertexCount; i++) {<br></td></tr
  5323. ><tr
  5324. id=sl_svn7768_264
  5325. ><td class="source"> thin_point(vertices[i][TX], vertices[i][TY], strokeColor);<br></td></tr
  5326. ><tr
  5327. id=sl_svn7768_265
  5328. ><td class="source"> }<br></td></tr
  5329. ><tr
  5330. id=sl_svn7768_266
  5331. ><td class="source"> } else {<br></td></tr
  5332. ><tr
  5333. id=sl_svn7768_267
  5334. ><td class="source"> for (int i = 0; i &lt; vertexCount; i++) {<br></td></tr
  5335. ><tr
  5336. id=sl_svn7768_268
  5337. ><td class="source"> float[] v = vertices[i];<br></td></tr
  5338. ><tr
  5339. id=sl_svn7768_269
  5340. ><td class="source"> thick_point(v[TX], v[TY], v[TZ], v[SR], v[SG], v[SB], v[SA]);<br></td></tr
  5341. ><tr
  5342. id=sl_svn7768_270
  5343. ><td class="source"> }<br></td></tr
  5344. ><tr
  5345. id=sl_svn7768_271
  5346. ><td class="source"> }<br></td></tr
  5347. ><tr
  5348. id=sl_svn7768_272
  5349. ><td class="source"> }<br></td></tr
  5350. ><tr
  5351. id=sl_svn7768_273
  5352. ><td class="source"> break;<br></td></tr
  5353. ><tr
  5354. id=sl_svn7768_274
  5355. ><td class="source"><br></td></tr
  5356. ><tr
  5357. id=sl_svn7768_275
  5358. ><td class="source"> case LINES:<br></td></tr
  5359. ><tr
  5360. id=sl_svn7768_276
  5361. ><td class="source"> if (stroke) {<br></td></tr
  5362. ><tr
  5363. id=sl_svn7768_277
  5364. ><td class="source"> // increment by two for individual lines<br></td></tr
  5365. ><tr
  5366. id=sl_svn7768_278
  5367. ><td class="source"> increment = (shape == LINES) ? 2 : 1;<br></td></tr
  5368. ><tr
  5369. id=sl_svn7768_279
  5370. ><td class="source"> draw_lines(vertices, vertexCount-1, 1, increment, 0);<br></td></tr
  5371. ><tr
  5372. id=sl_svn7768_280
  5373. ><td class="source"> }<br></td></tr
  5374. ><tr
  5375. id=sl_svn7768_281
  5376. ><td class="source"> break;<br></td></tr
  5377. ><tr
  5378. id=sl_svn7768_282
  5379. ><td class="source"><br></td></tr
  5380. ><tr
  5381. id=sl_svn7768_283
  5382. ><td class="source"> case TRIANGLE_FAN:<br></td></tr
  5383. ><tr
  5384. id=sl_svn7768_284
  5385. ><td class="source"> // do fill and stroke separately because otherwise<br></td></tr
  5386. ><tr
  5387. id=sl_svn7768_285
  5388. ><td class="source"> // the lines will be stroked more than necessary<br></td></tr
  5389. ><tr
  5390. id=sl_svn7768_286
  5391. ><td class="source"> if (fill || textureImage != null) {<br></td></tr
  5392. ><tr
  5393. id=sl_svn7768_287
  5394. ><td class="source"> fpolygon.vertexCount = 3;<br></td></tr
  5395. ><tr
  5396. id=sl_svn7768_288
  5397. ><td class="source"><br></td></tr
  5398. ><tr
  5399. id=sl_svn7768_289
  5400. ><td class="source"> for (int i = 1; i &lt; vertexCount-1; i++) {<br></td></tr
  5401. ><tr
  5402. id=sl_svn7768_290
  5403. ><td class="source">// System.out.println(i + &quot; of &quot; + vertexCount);<br></td></tr
  5404. ><tr
  5405. id=sl_svn7768_291
  5406. ><td class="source"><br></td></tr
  5407. ><tr
  5408. id=sl_svn7768_292
  5409. ><td class="source"> fpolygon.vertices[2][R] = vertices[0][R];<br></td></tr
  5410. ><tr
  5411. id=sl_svn7768_293
  5412. ><td class="source"> fpolygon.vertices[2][G] = vertices[0][G];<br></td></tr
  5413. ><tr
  5414. id=sl_svn7768_294
  5415. ><td class="source"> fpolygon.vertices[2][B] = vertices[0][B];<br></td></tr
  5416. ><tr
  5417. id=sl_svn7768_295
  5418. ><td class="source"> fpolygon.vertices[2][A] = vertices[0][A];<br></td></tr
  5419. ><tr
  5420. id=sl_svn7768_296
  5421. ><td class="source"><br></td></tr
  5422. ><tr
  5423. id=sl_svn7768_297
  5424. ><td class="source"> fpolygon.vertices[2][TX] = vertices[0][TX];<br></td></tr
  5425. ><tr
  5426. id=sl_svn7768_298
  5427. ><td class="source"> fpolygon.vertices[2][TY] = vertices[0][TY];<br></td></tr
  5428. ><tr
  5429. id=sl_svn7768_299
  5430. ><td class="source"><br></td></tr
  5431. ><tr
  5432. id=sl_svn7768_300
  5433. ><td class="source"> if (textureImage != null) {<br></td></tr
  5434. ><tr
  5435. id=sl_svn7768_301
  5436. ><td class="source"> fpolygon.vertices[2][U] = vertices[0][U];<br></td></tr
  5437. ><tr
  5438. id=sl_svn7768_302
  5439. ><td class="source"> fpolygon.vertices[2][V] = vertices[0][V];<br></td></tr
  5440. ><tr
  5441. id=sl_svn7768_303
  5442. ><td class="source"> }<br></td></tr
  5443. ><tr
  5444. id=sl_svn7768_304
  5445. ><td class="source">// System.out.println(fpolygon.vertices[2][TX] + &quot; &quot; + fpolygon.vertices[2][TY]);<br></td></tr
  5446. ><tr
  5447. id=sl_svn7768_305
  5448. ><td class="source"><br></td></tr
  5449. ><tr
  5450. id=sl_svn7768_306
  5451. ><td class="source"> for (int j = 0; j &lt; 2; j++) {<br></td></tr
  5452. ><tr
  5453. id=sl_svn7768_307
  5454. ><td class="source"> fpolygon.vertices[j][R] = vertices[i+j][R];<br></td></tr
  5455. ><tr
  5456. id=sl_svn7768_308
  5457. ><td class="source"> fpolygon.vertices[j][G] = vertices[i+j][G];<br></td></tr
  5458. ><tr
  5459. id=sl_svn7768_309
  5460. ><td class="source"> fpolygon.vertices[j][B] = vertices[i+j][B];<br></td></tr
  5461. ><tr
  5462. id=sl_svn7768_310
  5463. ><td class="source"> fpolygon.vertices[j][A] = vertices[i+j][A];<br></td></tr
  5464. ><tr
  5465. id=sl_svn7768_311
  5466. ><td class="source"><br></td></tr
  5467. ><tr
  5468. id=sl_svn7768_312
  5469. ><td class="source"> fpolygon.vertices[j][TX] = vertices[i+j][TX];<br></td></tr
  5470. ><tr
  5471. id=sl_svn7768_313
  5472. ><td class="source"> fpolygon.vertices[j][TY] = vertices[i+j][TY];<br></td></tr
  5473. ><tr
  5474. id=sl_svn7768_314
  5475. ><td class="source"><br></td></tr
  5476. ><tr
  5477. id=sl_svn7768_315
  5478. ><td class="source">// System.out.println(fpolygon.vertices[j][TX] + &quot; &quot; + fpolygon.vertices[j][TY]);<br></td></tr
  5479. ><tr
  5480. id=sl_svn7768_316
  5481. ><td class="source"><br></td></tr
  5482. ><tr
  5483. id=sl_svn7768_317
  5484. ><td class="source"> if (textureImage != null) {<br></td></tr
  5485. ><tr
  5486. id=sl_svn7768_318
  5487. ><td class="source"> fpolygon.vertices[j][U] = vertices[i+j][U];<br></td></tr
  5488. ><tr
  5489. id=sl_svn7768_319
  5490. ><td class="source"> fpolygon.vertices[j][V] = vertices[i+j][V];<br></td></tr
  5491. ><tr
  5492. id=sl_svn7768_320
  5493. ><td class="source"> }<br></td></tr
  5494. ><tr
  5495. id=sl_svn7768_321
  5496. ><td class="source"> }<br></td></tr
  5497. ><tr
  5498. id=sl_svn7768_322
  5499. ><td class="source">// System.out.println();<br></td></tr
  5500. ><tr
  5501. id=sl_svn7768_323
  5502. ><td class="source"> fpolygon.render();<br></td></tr
  5503. ><tr
  5504. id=sl_svn7768_324
  5505. ><td class="source"> }<br></td></tr
  5506. ><tr
  5507. id=sl_svn7768_325
  5508. ><td class="source"> }<br></td></tr
  5509. ><tr
  5510. id=sl_svn7768_326
  5511. ><td class="source"> if (stroke) {<br></td></tr
  5512. ><tr
  5513. id=sl_svn7768_327
  5514. ><td class="source"> // draw internal lines<br></td></tr
  5515. ><tr
  5516. id=sl_svn7768_328
  5517. ><td class="source"> for (int i = 1; i &lt; vertexCount; i++) {<br></td></tr
  5518. ><tr
  5519. id=sl_svn7768_329
  5520. ><td class="source"> draw_line(vertices[0], vertices[i]);<br></td></tr
  5521. ><tr
  5522. id=sl_svn7768_330
  5523. ><td class="source"> }<br></td></tr
  5524. ><tr
  5525. id=sl_svn7768_331
  5526. ><td class="source"> // draw a ring around the outside<br></td></tr
  5527. ><tr
  5528. id=sl_svn7768_332
  5529. ><td class="source"> for (int i = 1; i &lt; vertexCount-1; i++) {<br></td></tr
  5530. ><tr
  5531. id=sl_svn7768_333
  5532. ><td class="source"> draw_line(vertices[i], vertices[i+1]);<br></td></tr
  5533. ><tr
  5534. id=sl_svn7768_334
  5535. ><td class="source"> }<br></td></tr
  5536. ><tr
  5537. id=sl_svn7768_335
  5538. ><td class="source"> // close the shape<br></td></tr
  5539. ><tr
  5540. id=sl_svn7768_336
  5541. ><td class="source"> draw_line(vertices[vertexCount-1], vertices[1]);<br></td></tr
  5542. ><tr
  5543. id=sl_svn7768_337
  5544. ><td class="source"> }<br></td></tr
  5545. ><tr
  5546. id=sl_svn7768_338
  5547. ><td class="source"> break;<br></td></tr
  5548. ><tr
  5549. id=sl_svn7768_339
  5550. ><td class="source"><br></td></tr
  5551. ><tr
  5552. id=sl_svn7768_340
  5553. ><td class="source"> case TRIANGLES:<br></td></tr
  5554. ><tr
  5555. id=sl_svn7768_341
  5556. ><td class="source"> case TRIANGLE_STRIP:<br></td></tr
  5557. ><tr
  5558. id=sl_svn7768_342
  5559. ><td class="source"> increment = (shape == TRIANGLES) ? 3 : 1;<br></td></tr
  5560. ><tr
  5561. id=sl_svn7768_343
  5562. ><td class="source"> // do fill and stroke separately because otherwise<br></td></tr
  5563. ><tr
  5564. id=sl_svn7768_344
  5565. ><td class="source"> // the lines will be stroked more than necessary<br></td></tr
  5566. ><tr
  5567. id=sl_svn7768_345
  5568. ><td class="source"> if (fill || textureImage != null) {<br></td></tr
  5569. ><tr
  5570. id=sl_svn7768_346
  5571. ><td class="source"> fpolygon.vertexCount = 3;<br></td></tr
  5572. ><tr
  5573. id=sl_svn7768_347
  5574. ><td class="source"> for (int i = 0; i &lt; vertexCount-2; i += increment) {<br></td></tr
  5575. ><tr
  5576. id=sl_svn7768_348
  5577. ><td class="source"> for (int j = 0; j &lt; 3; j++) {<br></td></tr
  5578. ><tr
  5579. id=sl_svn7768_349
  5580. ><td class="source"> fpolygon.vertices[j][R] = vertices[i+j][R];<br></td></tr
  5581. ><tr
  5582. id=sl_svn7768_350
  5583. ><td class="source"> fpolygon.vertices[j][G] = vertices[i+j][G];<br></td></tr
  5584. ><tr
  5585. id=sl_svn7768_351
  5586. ><td class="source"> fpolygon.vertices[j][B] = vertices[i+j][B];<br></td></tr
  5587. ><tr
  5588. id=sl_svn7768_352
  5589. ><td class="source"> fpolygon.vertices[j][A] = vertices[i+j][A];<br></td></tr
  5590. ><tr
  5591. id=sl_svn7768_353
  5592. ><td class="source"><br></td></tr
  5593. ><tr
  5594. id=sl_svn7768_354
  5595. ><td class="source"> fpolygon.vertices[j][TX] = vertices[i+j][TX];<br></td></tr
  5596. ><tr
  5597. id=sl_svn7768_355
  5598. ><td class="source"> fpolygon.vertices[j][TY] = vertices[i+j][TY];<br></td></tr
  5599. ><tr
  5600. id=sl_svn7768_356
  5601. ><td class="source"> fpolygon.vertices[j][TZ] = vertices[i+j][TZ];<br></td></tr
  5602. ><tr
  5603. id=sl_svn7768_357
  5604. ><td class="source"><br></td></tr
  5605. ><tr
  5606. id=sl_svn7768_358
  5607. ><td class="source"> if (textureImage != null) {<br></td></tr
  5608. ><tr
  5609. id=sl_svn7768_359
  5610. ><td class="source"> fpolygon.vertices[j][U] = vertices[i+j][U];<br></td></tr
  5611. ><tr
  5612. id=sl_svn7768_360
  5613. ><td class="source"> fpolygon.vertices[j][V] = vertices[i+j][V];<br></td></tr
  5614. ><tr
  5615. id=sl_svn7768_361
  5616. ><td class="source"> }<br></td></tr
  5617. ><tr
  5618. id=sl_svn7768_362
  5619. ><td class="source"> }<br></td></tr
  5620. ><tr
  5621. id=sl_svn7768_363
  5622. ><td class="source"> fpolygon.render();<br></td></tr
  5623. ><tr
  5624. id=sl_svn7768_364
  5625. ><td class="source"> }<br></td></tr
  5626. ><tr
  5627. id=sl_svn7768_365
  5628. ><td class="source"> }<br></td></tr
  5629. ><tr
  5630. id=sl_svn7768_366
  5631. ><td class="source"> if (stroke) {<br></td></tr
  5632. ><tr
  5633. id=sl_svn7768_367
  5634. ><td class="source"> // first draw all vertices as a line strip<br></td></tr
  5635. ><tr
  5636. id=sl_svn7768_368
  5637. ><td class="source"> if (shape == TRIANGLE_STRIP) {<br></td></tr
  5638. ><tr
  5639. id=sl_svn7768_369
  5640. ><td class="source"> draw_lines(vertices, vertexCount-1, 1, 1, 0);<br></td></tr
  5641. ><tr
  5642. id=sl_svn7768_370
  5643. ><td class="source"> } else {<br></td></tr
  5644. ><tr
  5645. id=sl_svn7768_371
  5646. ><td class="source"> draw_lines(vertices, vertexCount-1, 1, 1, 3);<br></td></tr
  5647. ><tr
  5648. id=sl_svn7768_372
  5649. ><td class="source"> }<br></td></tr
  5650. ><tr
  5651. id=sl_svn7768_373
  5652. ><td class="source"> // then draw from vertex (n) to (n+2)<br></td></tr
  5653. ><tr
  5654. id=sl_svn7768_374
  5655. ><td class="source"> // incrementing n using the same as above<br></td></tr
  5656. ><tr
  5657. id=sl_svn7768_375
  5658. ><td class="source"> draw_lines(vertices, vertexCount-2, 2, increment, 0);<br></td></tr
  5659. ><tr
  5660. id=sl_svn7768_376
  5661. ><td class="source"> // changed this to vertexCount-2, because it seemed<br></td></tr
  5662. ><tr
  5663. id=sl_svn7768_377
  5664. ><td class="source"> // to be adding an extra (nonexistant) line<br></td></tr
  5665. ><tr
  5666. id=sl_svn7768_378
  5667. ><td class="source"> }<br></td></tr
  5668. ><tr
  5669. id=sl_svn7768_379
  5670. ><td class="source"> break;<br></td></tr
  5671. ><tr
  5672. id=sl_svn7768_380
  5673. ><td class="source"><br></td></tr
  5674. ><tr
  5675. id=sl_svn7768_381
  5676. ><td class="source"> case QUADS:<br></td></tr
  5677. ><tr
  5678. id=sl_svn7768_382
  5679. ><td class="source"> if (fill || textureImage != null) {<br></td></tr
  5680. ><tr
  5681. id=sl_svn7768_383
  5682. ><td class="source"> fpolygon.vertexCount = 4;<br></td></tr
  5683. ><tr
  5684. id=sl_svn7768_384
  5685. ><td class="source"> for (int i = 0; i &lt; vertexCount-3; i += 4) {<br></td></tr
  5686. ><tr
  5687. id=sl_svn7768_385
  5688. ><td class="source"> for (int j = 0; j &lt; 4; j++) {<br></td></tr
  5689. ><tr
  5690. id=sl_svn7768_386
  5691. ><td class="source"> int jj = i+j;<br></td></tr
  5692. ><tr
  5693. id=sl_svn7768_387
  5694. ><td class="source"> fpolygon.vertices[j][R] = vertices[jj][R];<br></td></tr
  5695. ><tr
  5696. id=sl_svn7768_388
  5697. ><td class="source"> fpolygon.vertices[j][G] = vertices[jj][G];<br></td></tr
  5698. ><tr
  5699. id=sl_svn7768_389
  5700. ><td class="source"> fpolygon.vertices[j][B] = vertices[jj][B];<br></td></tr
  5701. ><tr
  5702. id=sl_svn7768_390
  5703. ><td class="source"> fpolygon.vertices[j][A] = vertices[jj][A];<br></td></tr
  5704. ><tr
  5705. id=sl_svn7768_391
  5706. ><td class="source"><br></td></tr
  5707. ><tr
  5708. id=sl_svn7768_392
  5709. ><td class="source"> fpolygon.vertices[j][TX] = vertices[jj][TX];<br></td></tr
  5710. ><tr
  5711. id=sl_svn7768_393
  5712. ><td class="source"> fpolygon.vertices[j][TY] = vertices[jj][TY];<br></td></tr
  5713. ><tr
  5714. id=sl_svn7768_394
  5715. ><td class="source"> fpolygon.vertices[j][TZ] = vertices[jj][TZ];<br></td></tr
  5716. ><tr
  5717. id=sl_svn7768_395
  5718. ><td class="source"><br></td></tr
  5719. ><tr
  5720. id=sl_svn7768_396
  5721. ><td class="source"> if (textureImage != null) {<br></td></tr
  5722. ><tr
  5723. id=sl_svn7768_397
  5724. ><td class="source"> fpolygon.vertices[j][U] = vertices[jj][U];<br></td></tr
  5725. ><tr
  5726. id=sl_svn7768_398
  5727. ><td class="source"> fpolygon.vertices[j][V] = vertices[jj][V];<br></td></tr
  5728. ><tr
  5729. id=sl_svn7768_399
  5730. ><td class="source"> }<br></td></tr
  5731. ><tr
  5732. id=sl_svn7768_400
  5733. ><td class="source"> }<br></td></tr
  5734. ><tr
  5735. id=sl_svn7768_401
  5736. ><td class="source"> fpolygon.render();<br></td></tr
  5737. ><tr
  5738. id=sl_svn7768_402
  5739. ><td class="source"> }<br></td></tr
  5740. ><tr
  5741. id=sl_svn7768_403
  5742. ><td class="source"> }<br></td></tr
  5743. ><tr
  5744. id=sl_svn7768_404
  5745. ><td class="source"> if (stroke) {<br></td></tr
  5746. ><tr
  5747. id=sl_svn7768_405
  5748. ><td class="source"> for (int i = 0; i &lt; vertexCount-3; i += 4) {<br></td></tr
  5749. ><tr
  5750. id=sl_svn7768_406
  5751. ><td class="source"> draw_line(vertices[i+0], vertices[i+1]);<br></td></tr
  5752. ><tr
  5753. id=sl_svn7768_407
  5754. ><td class="source"> draw_line(vertices[i+1], vertices[i+2]);<br></td></tr
  5755. ><tr
  5756. id=sl_svn7768_408
  5757. ><td class="source"> draw_line(vertices[i+2], vertices[i+3]);<br></td></tr
  5758. ><tr
  5759. id=sl_svn7768_409
  5760. ><td class="source"> draw_line(vertices[i+3], vertices[i+0]);<br></td></tr
  5761. ><tr
  5762. id=sl_svn7768_410
  5763. ><td class="source"> }<br></td></tr
  5764. ><tr
  5765. id=sl_svn7768_411
  5766. ><td class="source"> }<br></td></tr
  5767. ><tr
  5768. id=sl_svn7768_412
  5769. ><td class="source"> break;<br></td></tr
  5770. ><tr
  5771. id=sl_svn7768_413
  5772. ><td class="source"><br></td></tr
  5773. ><tr
  5774. id=sl_svn7768_414
  5775. ><td class="source"> case QUAD_STRIP:<br></td></tr
  5776. ><tr
  5777. id=sl_svn7768_415
  5778. ><td class="source"> if (fill || textureImage != null) {<br></td></tr
  5779. ><tr
  5780. id=sl_svn7768_416
  5781. ><td class="source"> fpolygon.vertexCount = 4;<br></td></tr
  5782. ><tr
  5783. id=sl_svn7768_417
  5784. ><td class="source"> for (int i = 0; i &lt; vertexCount-3; i += 2) {<br></td></tr
  5785. ><tr
  5786. id=sl_svn7768_418
  5787. ><td class="source"> for (int j = 0; j &lt; 4; j++) {<br></td></tr
  5788. ><tr
  5789. id=sl_svn7768_419
  5790. ><td class="source"> int jj = i+j;<br></td></tr
  5791. ><tr
  5792. id=sl_svn7768_420
  5793. ><td class="source"> if (j == 2) jj = i+3; // swap 2nd and 3rd vertex<br></td></tr
  5794. ><tr
  5795. id=sl_svn7768_421
  5796. ><td class="source"> if (j == 3) jj = i+2;<br></td></tr
  5797. ><tr
  5798. id=sl_svn7768_422
  5799. ><td class="source"><br></td></tr
  5800. ><tr
  5801. id=sl_svn7768_423
  5802. ><td class="source"> fpolygon.vertices[j][R] = vertices[jj][R];<br></td></tr
  5803. ><tr
  5804. id=sl_svn7768_424
  5805. ><td class="source"> fpolygon.vertices[j][G] = vertices[jj][G];<br></td></tr
  5806. ><tr
  5807. id=sl_svn7768_425
  5808. ><td class="source"> fpolygon.vertices[j][B] = vertices[jj][B];<br></td></tr
  5809. ><tr
  5810. id=sl_svn7768_426
  5811. ><td class="source"> fpolygon.vertices[j][A] = vertices[jj][A];<br></td></tr
  5812. ><tr
  5813. id=sl_svn7768_427
  5814. ><td class="source"><br></td></tr
  5815. ><tr
  5816. id=sl_svn7768_428
  5817. ><td class="source"> fpolygon.vertices[j][TX] = vertices[jj][TX];<br></td></tr
  5818. ><tr
  5819. id=sl_svn7768_429
  5820. ><td class="source"> fpolygon.vertices[j][TY] = vertices[jj][TY];<br></td></tr
  5821. ><tr
  5822. id=sl_svn7768_430
  5823. ><td class="source"> fpolygon.vertices[j][TZ] = vertices[jj][TZ];<br></td></tr
  5824. ><tr
  5825. id=sl_svn7768_431
  5826. ><td class="source"><br></td></tr
  5827. ><tr
  5828. id=sl_svn7768_432
  5829. ><td class="source"> if (textureImage != null) {<br></td></tr
  5830. ><tr
  5831. id=sl_svn7768_433
  5832. ><td class="source"> fpolygon.vertices[j][U] = vertices[jj][U];<br></td></tr
  5833. ><tr
  5834. id=sl_svn7768_434
  5835. ><td class="source"> fpolygon.vertices[j][V] = vertices[jj][V];<br></td></tr
  5836. ><tr
  5837. id=sl_svn7768_435
  5838. ><td class="source"> }<br></td></tr
  5839. ><tr
  5840. id=sl_svn7768_436
  5841. ><td class="source"> }<br></td></tr
  5842. ><tr
  5843. id=sl_svn7768_437
  5844. ><td class="source"> fpolygon.render();<br></td></tr
  5845. ><tr
  5846. id=sl_svn7768_438
  5847. ><td class="source"> }<br></td></tr
  5848. ><tr
  5849. id=sl_svn7768_439
  5850. ><td class="source"> }<br></td></tr
  5851. ><tr
  5852. id=sl_svn7768_440
  5853. ><td class="source"> if (stroke) {<br></td></tr
  5854. ><tr
  5855. id=sl_svn7768_441
  5856. ><td class="source"> draw_lines(vertices, vertexCount-1, 1, 2, 0); // inner lines<br></td></tr
  5857. ><tr
  5858. id=sl_svn7768_442
  5859. ><td class="source"> draw_lines(vertices, vertexCount-2, 2, 1, 0); // outer lines<br></td></tr
  5860. ><tr
  5861. id=sl_svn7768_443
  5862. ><td class="source"> }<br></td></tr
  5863. ><tr
  5864. id=sl_svn7768_444
  5865. ><td class="source"> break;<br></td></tr
  5866. ><tr
  5867. id=sl_svn7768_445
  5868. ><td class="source"><br></td></tr
  5869. ><tr
  5870. id=sl_svn7768_446
  5871. ><td class="source"> case POLYGON:<br></td></tr
  5872. ><tr
  5873. id=sl_svn7768_447
  5874. ><td class="source"> if (isConvex()) {<br></td></tr
  5875. ><tr
  5876. id=sl_svn7768_448
  5877. ><td class="source"> if (fill || textureImage != null) {<br></td></tr
  5878. ><tr
  5879. id=sl_svn7768_449
  5880. ><td class="source"> //System.out.println(&quot;convex&quot;);<br></td></tr
  5881. ><tr
  5882. id=sl_svn7768_450
  5883. ><td class="source"> fpolygon.renderPolygon(vertices, vertexCount);<br></td></tr
  5884. ><tr
  5885. id=sl_svn7768_451
  5886. ><td class="source"> //if (stroke) polygon.unexpand();<br></td></tr
  5887. ><tr
  5888. id=sl_svn7768_452
  5889. ><td class="source"> }<br></td></tr
  5890. ><tr
  5891. id=sl_svn7768_453
  5892. ><td class="source"><br></td></tr
  5893. ><tr
  5894. id=sl_svn7768_454
  5895. ><td class="source"> if (stroke) {<br></td></tr
  5896. ><tr
  5897. id=sl_svn7768_455
  5898. ><td class="source"> draw_lines(vertices, vertexCount-1, 1, 1, 0);<br></td></tr
  5899. ><tr
  5900. id=sl_svn7768_456
  5901. ><td class="source"> if (mode == CLOSE) {<br></td></tr
  5902. ><tr
  5903. id=sl_svn7768_457
  5904. ><td class="source"> // draw the last line connecting back to the first point in poly<br></td></tr
  5905. ><tr
  5906. id=sl_svn7768_458
  5907. ><td class="source"> //svertices[0] = vertices[vertexCount-1];<br></td></tr
  5908. ><tr
  5909. id=sl_svn7768_459
  5910. ><td class="source"> //svertices[1] = vertices[0];<br></td></tr
  5911. ><tr
  5912. id=sl_svn7768_460
  5913. ><td class="source"> //draw_lines(svertices, 1, 1, 1, 0);<br></td></tr
  5914. ><tr
  5915. id=sl_svn7768_461
  5916. ><td class="source"> draw_line(vertices[vertexCount-1], vertices[0]);<br></td></tr
  5917. ><tr
  5918. id=sl_svn7768_462
  5919. ><td class="source"> }<br></td></tr
  5920. ><tr
  5921. id=sl_svn7768_463
  5922. ><td class="source"> }<br></td></tr
  5923. ><tr
  5924. id=sl_svn7768_464
  5925. ><td class="source"> } else { // not convex<br></td></tr
  5926. ><tr
  5927. id=sl_svn7768_465
  5928. ><td class="source"> //System.out.println(&quot;concave&quot;);<br></td></tr
  5929. ><tr
  5930. id=sl_svn7768_466
  5931. ><td class="source"> if (fill || textureImage != null) {<br></td></tr
  5932. ><tr
  5933. id=sl_svn7768_467
  5934. ><td class="source"> // the triangulator produces polygons that don&#39;t align<br></td></tr
  5935. ><tr
  5936. id=sl_svn7768_468
  5937. ><td class="source"> // when smoothing is enabled. but if there is a stroke around<br></td></tr
  5938. ><tr
  5939. id=sl_svn7768_469
  5940. ><td class="source"> // the polygon, then smoothing can be temporarily disabled.<br></td></tr
  5941. ><tr
  5942. id=sl_svn7768_470
  5943. ><td class="source"> boolean smoov = smooth;<br></td></tr
  5944. ><tr
  5945. id=sl_svn7768_471
  5946. ><td class="source"> //if (stroke &amp;&amp; !hints[DISABLE_SMOOTH_HACK]) smooth = false;<br></td></tr
  5947. ><tr
  5948. id=sl_svn7768_472
  5949. ><td class="source"> if (stroke) smooth = false;<br></td></tr
  5950. ><tr
  5951. id=sl_svn7768_473
  5952. ><td class="source"> concaveRender();<br></td></tr
  5953. ><tr
  5954. id=sl_svn7768_474
  5955. ><td class="source"> //if (stroke &amp;&amp; !hints[DISABLE_SMOOTH_HACK]) smooth = smoov;<br></td></tr
  5956. ><tr
  5957. id=sl_svn7768_475
  5958. ><td class="source"> if (stroke) smooth = smoov;<br></td></tr
  5959. ><tr
  5960. id=sl_svn7768_476
  5961. ><td class="source"> }<br></td></tr
  5962. ><tr
  5963. id=sl_svn7768_477
  5964. ><td class="source"><br></td></tr
  5965. ><tr
  5966. id=sl_svn7768_478
  5967. ><td class="source"> if (stroke) {<br></td></tr
  5968. ><tr
  5969. id=sl_svn7768_479
  5970. ><td class="source"> draw_lines(vertices, vertexCount-1, 1, 1, 0);<br></td></tr
  5971. ><tr
  5972. id=sl_svn7768_480
  5973. ><td class="source"> if (mode == CLOSE) {<br></td></tr
  5974. ><tr
  5975. id=sl_svn7768_481
  5976. ><td class="source"> // draw the last line connecting back<br></td></tr
  5977. ><tr
  5978. id=sl_svn7768_482
  5979. ><td class="source"> // to the first point in poly<br></td></tr
  5980. ><tr
  5981. id=sl_svn7768_483
  5982. ><td class="source">// svertices[0] = vertices[vertexCount-1];<br></td></tr
  5983. ><tr
  5984. id=sl_svn7768_484
  5985. ><td class="source">// svertices[1] = vertices[0];<br></td></tr
  5986. ><tr
  5987. id=sl_svn7768_485
  5988. ><td class="source">// draw_lines(svertices, 1, 1, 1, 0);<br></td></tr
  5989. ><tr
  5990. id=sl_svn7768_486
  5991. ><td class="source"> draw_line(vertices[vertexCount-1], vertices[0]);<br></td></tr
  5992. ><tr
  5993. id=sl_svn7768_487
  5994. ><td class="source"> }<br></td></tr
  5995. ><tr
  5996. id=sl_svn7768_488
  5997. ><td class="source"> }<br></td></tr
  5998. ><tr
  5999. id=sl_svn7768_489
  6000. ><td class="source"> }<br></td></tr
  6001. ><tr
  6002. id=sl_svn7768_490
  6003. ><td class="source"> break;<br></td></tr
  6004. ><tr
  6005. id=sl_svn7768_491
  6006. ><td class="source"> }<br></td></tr
  6007. ><tr
  6008. id=sl_svn7768_492
  6009. ><td class="source"><br></td></tr
  6010. ><tr
  6011. id=sl_svn7768_493
  6012. ><td class="source"> // to signify no shape being drawn<br></td></tr
  6013. ><tr
  6014. id=sl_svn7768_494
  6015. ><td class="source"> shape = 0;<br></td></tr
  6016. ><tr
  6017. id=sl_svn7768_495
  6018. ><td class="source"> }<br></td></tr
  6019. ><tr
  6020. id=sl_svn7768_496
  6021. ><td class="source"><br></td></tr
  6022. ><tr
  6023. id=sl_svn7768_497
  6024. ><td class="source"><br></td></tr
  6025. ><tr
  6026. id=sl_svn7768_498
  6027. ><td class="source"><br></td></tr
  6028. ><tr
  6029. id=sl_svn7768_499
  6030. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  6031. ><tr
  6032. id=sl_svn7768_500
  6033. ><td class="source"><br></td></tr
  6034. ><tr
  6035. id=sl_svn7768_501
  6036. ><td class="source"> // CONCAVE/CONVEX POLYGONS<br></td></tr
  6037. ><tr
  6038. id=sl_svn7768_502
  6039. ><td class="source"><br></td></tr
  6040. ><tr
  6041. id=sl_svn7768_503
  6042. ><td class="source"><br></td></tr
  6043. ><tr
  6044. id=sl_svn7768_504
  6045. ><td class="source"> private boolean isConvex() {<br></td></tr
  6046. ><tr
  6047. id=sl_svn7768_505
  6048. ><td class="source"> //float v[][] = polygon.vertices;<br></td></tr
  6049. ><tr
  6050. id=sl_svn7768_506
  6051. ><td class="source"> //int n = polygon.vertexCount;<br></td></tr
  6052. ><tr
  6053. id=sl_svn7768_507
  6054. ><td class="source"> //int j,k;<br></td></tr
  6055. ><tr
  6056. id=sl_svn7768_508
  6057. ><td class="source"> //float tol = 0.001f;<br></td></tr
  6058. ><tr
  6059. id=sl_svn7768_509
  6060. ><td class="source"><br></td></tr
  6061. ><tr
  6062. id=sl_svn7768_510
  6063. ><td class="source"> if (vertexCount &lt; 3) {<br></td></tr
  6064. ><tr
  6065. id=sl_svn7768_511
  6066. ><td class="source"> // ERROR: this is a line or a point, render as convex<br></td></tr
  6067. ><tr
  6068. id=sl_svn7768_512
  6069. ><td class="source"> return true;<br></td></tr
  6070. ><tr
  6071. id=sl_svn7768_513
  6072. ><td class="source"> }<br></td></tr
  6073. ><tr
  6074. id=sl_svn7768_514
  6075. ><td class="source"><br></td></tr
  6076. ><tr
  6077. id=sl_svn7768_515
  6078. ><td class="source"> int flag = 0;<br></td></tr
  6079. ><tr
  6080. id=sl_svn7768_516
  6081. ><td class="source"> // iterate along border doing dot product.<br></td></tr
  6082. ><tr
  6083. id=sl_svn7768_517
  6084. ><td class="source"> // if the sign of the result changes, then is concave<br></td></tr
  6085. ><tr
  6086. id=sl_svn7768_518
  6087. ><td class="source"> for (int i = 0; i &lt; vertexCount; i++) {<br></td></tr
  6088. ><tr
  6089. id=sl_svn7768_519
  6090. ><td class="source"> float[] vi = vertices[i];<br></td></tr
  6091. ><tr
  6092. id=sl_svn7768_520
  6093. ><td class="source"> float[] vj = vertices[(i + 1) % vertexCount];<br></td></tr
  6094. ><tr
  6095. id=sl_svn7768_521
  6096. ><td class="source"> float[] vk = vertices[(i + 2) % vertexCount];<br></td></tr
  6097. ><tr
  6098. id=sl_svn7768_522
  6099. ><td class="source"> float calc = ((vj[TX] - vi[TX]) * (vk[TY] - vj[TY]) -<br></td></tr
  6100. ><tr
  6101. id=sl_svn7768_523
  6102. ><td class="source"> (vj[TY] - vi[TY]) * (vk[TX] - vj[TX]));<br></td></tr
  6103. ><tr
  6104. id=sl_svn7768_524
  6105. ><td class="source"> if (calc &lt; 0) {<br></td></tr
  6106. ><tr
  6107. id=sl_svn7768_525
  6108. ><td class="source"> flag |= 1;<br></td></tr
  6109. ><tr
  6110. id=sl_svn7768_526
  6111. ><td class="source"> } else if (calc &gt; 0) {<br></td></tr
  6112. ><tr
  6113. id=sl_svn7768_527
  6114. ><td class="source"> flag |= 2;<br></td></tr
  6115. ><tr
  6116. id=sl_svn7768_528
  6117. ><td class="source"> }<br></td></tr
  6118. ><tr
  6119. id=sl_svn7768_529
  6120. ><td class="source"> if (flag == 3) {<br></td></tr
  6121. ><tr
  6122. id=sl_svn7768_530
  6123. ><td class="source"> return false; // CONCAVE<br></td></tr
  6124. ><tr
  6125. id=sl_svn7768_531
  6126. ><td class="source"> }<br></td></tr
  6127. ><tr
  6128. id=sl_svn7768_532
  6129. ><td class="source"> }<br></td></tr
  6130. ><tr
  6131. id=sl_svn7768_533
  6132. ><td class="source"> if (flag != 0) {<br></td></tr
  6133. ><tr
  6134. id=sl_svn7768_534
  6135. ><td class="source"> return true; // CONVEX<br></td></tr
  6136. ><tr
  6137. id=sl_svn7768_535
  6138. ><td class="source"> } else {<br></td></tr
  6139. ><tr
  6140. id=sl_svn7768_536
  6141. ><td class="source"> // ERROR: colinear points, self intersection<br></td></tr
  6142. ><tr
  6143. id=sl_svn7768_537
  6144. ><td class="source"> // treat as CONVEX<br></td></tr
  6145. ><tr
  6146. id=sl_svn7768_538
  6147. ><td class="source"> return true;<br></td></tr
  6148. ><tr
  6149. id=sl_svn7768_539
  6150. ><td class="source"> }<br></td></tr
  6151. ><tr
  6152. id=sl_svn7768_540
  6153. ><td class="source"> }<br></td></tr
  6154. ><tr
  6155. id=sl_svn7768_541
  6156. ><td class="source"><br></td></tr
  6157. ><tr
  6158. id=sl_svn7768_542
  6159. ><td class="source"><br></td></tr
  6160. ><tr
  6161. id=sl_svn7768_543
  6162. ><td class="source"> /**<br></td></tr
  6163. ><tr
  6164. id=sl_svn7768_544
  6165. ><td class="source"> * Triangulate the current polygon.<br></td></tr
  6166. ><tr
  6167. id=sl_svn7768_545
  6168. ><td class="source"> * &lt;BR&gt; &lt;BR&gt;<br></td></tr
  6169. ><tr
  6170. id=sl_svn7768_546
  6171. ><td class="source"> * Simple ear clipping polygon triangulation adapted from code by<br></td></tr
  6172. ><tr
  6173. id=sl_svn7768_547
  6174. ><td class="source"> * John W. Ratcliff (jratcliff at verant.com). Presumably<br></td></tr
  6175. ><tr
  6176. id=sl_svn7768_548
  6177. ><td class="source"> * &lt;A HREF=&quot;http://www.flipcode.org/cgi-bin/fcarticles.cgi?show=63943&quot;&gt;this&lt;/A&gt;<br></td></tr
  6178. ><tr
  6179. id=sl_svn7768_549
  6180. ><td class="source"> * bit of code from the web.<br></td></tr
  6181. ><tr
  6182. id=sl_svn7768_550
  6183. ><td class="source"> */<br></td></tr
  6184. ><tr
  6185. id=sl_svn7768_551
  6186. ><td class="source"> protected void concaveRender() {<br></td></tr
  6187. ><tr
  6188. id=sl_svn7768_552
  6189. ><td class="source"> if (vertexOrder == null || vertexOrder.length != vertices.length) {<br></td></tr
  6190. ><tr
  6191. id=sl_svn7768_553
  6192. ><td class="source"> vertexOrder = new int[vertices.length];<br></td></tr
  6193. ><tr
  6194. id=sl_svn7768_554
  6195. ><td class="source">// int[] temp = new int[vertices.length];<br></td></tr
  6196. ><tr
  6197. id=sl_svn7768_555
  6198. ><td class="source">// // since vertex_start may not be zero, might need to keep old stuff around<br></td></tr
  6199. ><tr
  6200. id=sl_svn7768_556
  6201. ><td class="source">// PApplet.arrayCopy(vertexOrder, temp, vertexCount);<br></td></tr
  6202. ><tr
  6203. id=sl_svn7768_557
  6204. ><td class="source">// vertexOrder = temp;<br></td></tr
  6205. ><tr
  6206. id=sl_svn7768_558
  6207. ><td class="source"> }<br></td></tr
  6208. ><tr
  6209. id=sl_svn7768_559
  6210. ><td class="source"><br></td></tr
  6211. ><tr
  6212. id=sl_svn7768_560
  6213. ><td class="source"> if (tpolygon == null) {<br></td></tr
  6214. ><tr
  6215. id=sl_svn7768_561
  6216. ><td class="source"> tpolygon = new PPolygon(this);<br></td></tr
  6217. ><tr
  6218. id=sl_svn7768_562
  6219. ><td class="source"> }<br></td></tr
  6220. ><tr
  6221. id=sl_svn7768_563
  6222. ><td class="source"> tpolygon.reset(3);<br></td></tr
  6223. ><tr
  6224. id=sl_svn7768_564
  6225. ><td class="source"><br></td></tr
  6226. ><tr
  6227. id=sl_svn7768_565
  6228. ><td class="source"> // first we check if the polygon goes clockwise or counterclockwise<br></td></tr
  6229. ><tr
  6230. id=sl_svn7768_566
  6231. ><td class="source"> float area = 0;<br></td></tr
  6232. ><tr
  6233. id=sl_svn7768_567
  6234. ><td class="source"> for (int p = vertexCount - 1, q = 0; q &lt; vertexCount; p = q++) {<br></td></tr
  6235. ><tr
  6236. id=sl_svn7768_568
  6237. ><td class="source"> area += (vertices[q][X] * vertices[p][Y] -<br></td></tr
  6238. ><tr
  6239. id=sl_svn7768_569
  6240. ><td class="source"> vertices[p][X] * vertices[q][Y]);<br></td></tr
  6241. ><tr
  6242. id=sl_svn7768_570
  6243. ><td class="source"> }<br></td></tr
  6244. ><tr
  6245. id=sl_svn7768_571
  6246. ><td class="source"> // ain&#39;t nuthin there<br></td></tr
  6247. ><tr
  6248. id=sl_svn7768_572
  6249. ><td class="source"> if (area == 0) return;<br></td></tr
  6250. ><tr
  6251. id=sl_svn7768_573
  6252. ><td class="source"><br></td></tr
  6253. ><tr
  6254. id=sl_svn7768_574
  6255. ><td class="source"> // don&#39;t allow polygons to come back and meet themselves,<br></td></tr
  6256. ><tr
  6257. id=sl_svn7768_575
  6258. ><td class="source"> // otherwise it will anger the triangulator<br></td></tr
  6259. ><tr
  6260. id=sl_svn7768_576
  6261. ><td class="source"> // http://dev.processing.org/bugs/show_bug.cgi?id=97<br></td></tr
  6262. ><tr
  6263. id=sl_svn7768_577
  6264. ><td class="source"> float vfirst[] = vertices[0];<br></td></tr
  6265. ><tr
  6266. id=sl_svn7768_578
  6267. ><td class="source"> float vlast[] = vertices[vertexCount-1];<br></td></tr
  6268. ><tr
  6269. id=sl_svn7768_579
  6270. ><td class="source"> if ((Math.abs(vfirst[X] - vlast[X]) &lt; EPSILON) &amp;&amp;<br></td></tr
  6271. ><tr
  6272. id=sl_svn7768_580
  6273. ><td class="source"> (Math.abs(vfirst[Y] - vlast[Y]) &lt; EPSILON) &amp;&amp;<br></td></tr
  6274. ><tr
  6275. id=sl_svn7768_581
  6276. ><td class="source"> (Math.abs(vfirst[Z] - vlast[Z]) &lt; EPSILON)) {<br></td></tr
  6277. ><tr
  6278. id=sl_svn7768_582
  6279. ><td class="source"> vertexCount--;<br></td></tr
  6280. ><tr
  6281. id=sl_svn7768_583
  6282. ><td class="source"> }<br></td></tr
  6283. ><tr
  6284. id=sl_svn7768_584
  6285. ><td class="source"><br></td></tr
  6286. ><tr
  6287. id=sl_svn7768_585
  6288. ><td class="source"> // then sort the vertices so they are always in a counterclockwise order<br></td></tr
  6289. ><tr
  6290. id=sl_svn7768_586
  6291. ><td class="source"> for (int i = 0; i &lt; vertexCount; i++) {<br></td></tr
  6292. ><tr
  6293. id=sl_svn7768_587
  6294. ><td class="source"> vertexOrder[i] = (area &gt; 0) ? i : (vertexCount-1 - i);<br></td></tr
  6295. ><tr
  6296. id=sl_svn7768_588
  6297. ><td class="source"> }<br></td></tr
  6298. ><tr
  6299. id=sl_svn7768_589
  6300. ><td class="source"><br></td></tr
  6301. ><tr
  6302. id=sl_svn7768_590
  6303. ><td class="source"> // remove vc-2 Vertices, creating 1 triangle every time<br></td></tr
  6304. ><tr
  6305. id=sl_svn7768_591
  6306. ><td class="source"> int vc = vertexCount; // vc will be decremented while working<br></td></tr
  6307. ><tr
  6308. id=sl_svn7768_592
  6309. ><td class="source"> int count = 2*vc; // complex polygon detection<br></td></tr
  6310. ><tr
  6311. id=sl_svn7768_593
  6312. ><td class="source"><br></td></tr
  6313. ><tr
  6314. id=sl_svn7768_594
  6315. ><td class="source"> for (int m = 0, v = vc - 1; vc &gt; 2; ) {<br></td></tr
  6316. ><tr
  6317. id=sl_svn7768_595
  6318. ><td class="source"> boolean snip = true;<br></td></tr
  6319. ><tr
  6320. id=sl_svn7768_596
  6321. ><td class="source"><br></td></tr
  6322. ><tr
  6323. id=sl_svn7768_597
  6324. ><td class="source"> // if we start over again, is a complex polygon<br></td></tr
  6325. ><tr
  6326. id=sl_svn7768_598
  6327. ><td class="source"> if (0 &gt;= (count--)) {<br></td></tr
  6328. ><tr
  6329. id=sl_svn7768_599
  6330. ><td class="source"> break; // triangulation failed<br></td></tr
  6331. ><tr
  6332. id=sl_svn7768_600
  6333. ><td class="source"> }<br></td></tr
  6334. ><tr
  6335. id=sl_svn7768_601
  6336. ><td class="source"><br></td></tr
  6337. ><tr
  6338. id=sl_svn7768_602
  6339. ><td class="source"> // get 3 consecutive vertices &lt;u,v,w&gt;<br></td></tr
  6340. ><tr
  6341. id=sl_svn7768_603
  6342. ><td class="source"> int u = v ; if (vc &lt;= u) u = 0; // previous<br></td></tr
  6343. ><tr
  6344. id=sl_svn7768_604
  6345. ><td class="source"> v = u + 1; if (vc &lt;= v) v = 0; // current<br></td></tr
  6346. ><tr
  6347. id=sl_svn7768_605
  6348. ><td class="source"> int w = v + 1; if (vc &lt;= w) w = 0; // next<br></td></tr
  6349. ><tr
  6350. id=sl_svn7768_606
  6351. ><td class="source"><br></td></tr
  6352. ><tr
  6353. id=sl_svn7768_607
  6354. ><td class="source"> // Upgrade values to doubles, and multiply by 10 so that we can have<br></td></tr
  6355. ><tr
  6356. id=sl_svn7768_608
  6357. ><td class="source"> // some better accuracy as we tessellate. This seems to have negligible<br></td></tr
  6358. ><tr
  6359. id=sl_svn7768_609
  6360. ><td class="source"> // speed differences on Windows and Intel Macs, but causes a 50% speed<br></td></tr
  6361. ><tr
  6362. id=sl_svn7768_610
  6363. ><td class="source"> // drop for PPC Macs with the bug&#39;s example code that draws ~200 points<br></td></tr
  6364. ><tr
  6365. id=sl_svn7768_611
  6366. ><td class="source"> // in a concave polygon. Apple has abandoned PPC so we may as well too.<br></td></tr
  6367. ><tr
  6368. id=sl_svn7768_612
  6369. ><td class="source"> // http://dev.processing.org/bugs/show_bug.cgi?id=774<br></td></tr
  6370. ><tr
  6371. id=sl_svn7768_613
  6372. ><td class="source"><br></td></tr
  6373. ><tr
  6374. id=sl_svn7768_614
  6375. ><td class="source"> // triangle A B C<br></td></tr
  6376. ><tr
  6377. id=sl_svn7768_615
  6378. ><td class="source"> double Ax = -10 * vertices[vertexOrder[u]][X];<br></td></tr
  6379. ><tr
  6380. id=sl_svn7768_616
  6381. ><td class="source"> double Ay = 10 * vertices[vertexOrder[u]][Y];<br></td></tr
  6382. ><tr
  6383. id=sl_svn7768_617
  6384. ><td class="source"> double Bx = -10 * vertices[vertexOrder[v]][X];<br></td></tr
  6385. ><tr
  6386. id=sl_svn7768_618
  6387. ><td class="source"> double By = 10 * vertices[vertexOrder[v]][Y];<br></td></tr
  6388. ><tr
  6389. id=sl_svn7768_619
  6390. ><td class="source"> double Cx = -10 * vertices[vertexOrder[w]][X];<br></td></tr
  6391. ><tr
  6392. id=sl_svn7768_620
  6393. ><td class="source"> double Cy = 10 * vertices[vertexOrder[w]][Y];<br></td></tr
  6394. ><tr
  6395. id=sl_svn7768_621
  6396. ><td class="source"><br></td></tr
  6397. ><tr
  6398. id=sl_svn7768_622
  6399. ><td class="source"> // first we check if &lt;u,v,w&gt; continues going ccw<br></td></tr
  6400. ><tr
  6401. id=sl_svn7768_623
  6402. ><td class="source"> if (EPSILON &gt; (((Bx-Ax) * (Cy-Ay)) - ((By-Ay) * (Cx-Ax)))) {<br></td></tr
  6403. ><tr
  6404. id=sl_svn7768_624
  6405. ><td class="source"> continue;<br></td></tr
  6406. ><tr
  6407. id=sl_svn7768_625
  6408. ><td class="source"> }<br></td></tr
  6409. ><tr
  6410. id=sl_svn7768_626
  6411. ><td class="source"><br></td></tr
  6412. ><tr
  6413. id=sl_svn7768_627
  6414. ><td class="source"> for (int p = 0; p &lt; vc; p++) {<br></td></tr
  6415. ><tr
  6416. id=sl_svn7768_628
  6417. ><td class="source"> if ((p == u) || (p == v) || (p == w)) {<br></td></tr
  6418. ><tr
  6419. id=sl_svn7768_629
  6420. ><td class="source"> continue;<br></td></tr
  6421. ><tr
  6422. id=sl_svn7768_630
  6423. ><td class="source"> }<br></td></tr
  6424. ><tr
  6425. id=sl_svn7768_631
  6426. ><td class="source"><br></td></tr
  6427. ><tr
  6428. id=sl_svn7768_632
  6429. ><td class="source"> double Px = -10 * vertices[vertexOrder[p]][X];<br></td></tr
  6430. ><tr
  6431. id=sl_svn7768_633
  6432. ><td class="source"> double Py = 10 * vertices[vertexOrder[p]][Y];<br></td></tr
  6433. ><tr
  6434. id=sl_svn7768_634
  6435. ><td class="source"><br></td></tr
  6436. ><tr
  6437. id=sl_svn7768_635
  6438. ><td class="source"> double ax = Cx - Bx; double ay = Cy - By;<br></td></tr
  6439. ><tr
  6440. id=sl_svn7768_636
  6441. ><td class="source"> double bx = Ax - Cx; double by = Ay - Cy;<br></td></tr
  6442. ><tr
  6443. id=sl_svn7768_637
  6444. ><td class="source"> double cx = Bx - Ax; double cy = By - Ay;<br></td></tr
  6445. ><tr
  6446. id=sl_svn7768_638
  6447. ><td class="source"> double apx = Px - Ax; double apy = Py - Ay;<br></td></tr
  6448. ><tr
  6449. id=sl_svn7768_639
  6450. ><td class="source"> double bpx = Px - Bx; double bpy = Py - By;<br></td></tr
  6451. ><tr
  6452. id=sl_svn7768_640
  6453. ><td class="source"> double cpx = Px - Cx; double cpy = Py - Cy;<br></td></tr
  6454. ><tr
  6455. id=sl_svn7768_641
  6456. ><td class="source"><br></td></tr
  6457. ><tr
  6458. id=sl_svn7768_642
  6459. ><td class="source"> double aCROSSbp = ax * bpy - ay * bpx;<br></td></tr
  6460. ><tr
  6461. id=sl_svn7768_643
  6462. ><td class="source"> double cCROSSap = cx * apy - cy * apx;<br></td></tr
  6463. ><tr
  6464. id=sl_svn7768_644
  6465. ><td class="source"> double bCROSScp = bx * cpy - by * cpx;<br></td></tr
  6466. ><tr
  6467. id=sl_svn7768_645
  6468. ><td class="source"><br></td></tr
  6469. ><tr
  6470. id=sl_svn7768_646
  6471. ><td class="source"> if ((aCROSSbp &gt;= 0.0) &amp;&amp; (bCROSScp &gt;= 0.0) &amp;&amp; (cCROSSap &gt;= 0.0)) {<br></td></tr
  6472. ><tr
  6473. id=sl_svn7768_647
  6474. ><td class="source"> snip = false;<br></td></tr
  6475. ><tr
  6476. id=sl_svn7768_648
  6477. ><td class="source"> }<br></td></tr
  6478. ><tr
  6479. id=sl_svn7768_649
  6480. ><td class="source"> }<br></td></tr
  6481. ><tr
  6482. id=sl_svn7768_650
  6483. ><td class="source"><br></td></tr
  6484. ><tr
  6485. id=sl_svn7768_651
  6486. ><td class="source"> if (snip) {<br></td></tr
  6487. ><tr
  6488. id=sl_svn7768_652
  6489. ><td class="source"> tpolygon.renderTriangle(vertices[vertexOrder[u]],<br></td></tr
  6490. ><tr
  6491. id=sl_svn7768_653
  6492. ><td class="source"> vertices[vertexOrder[v]],<br></td></tr
  6493. ><tr
  6494. id=sl_svn7768_654
  6495. ><td class="source"> vertices[vertexOrder[w]]);<br></td></tr
  6496. ><tr
  6497. id=sl_svn7768_655
  6498. ><td class="source"> m++;<br></td></tr
  6499. ><tr
  6500. id=sl_svn7768_656
  6501. ><td class="source"><br></td></tr
  6502. ><tr
  6503. id=sl_svn7768_657
  6504. ><td class="source"> // remove v from remaining polygon<br></td></tr
  6505. ><tr
  6506. id=sl_svn7768_658
  6507. ><td class="source"> for (int s = v, t = v + 1; t &lt; vc; s++, t++) {<br></td></tr
  6508. ><tr
  6509. id=sl_svn7768_659
  6510. ><td class="source"> vertexOrder[s] = vertexOrder[t];<br></td></tr
  6511. ><tr
  6512. id=sl_svn7768_660
  6513. ><td class="source"> }<br></td></tr
  6514. ><tr
  6515. id=sl_svn7768_661
  6516. ><td class="source"> vc--;<br></td></tr
  6517. ><tr
  6518. id=sl_svn7768_662
  6519. ><td class="source"><br></td></tr
  6520. ><tr
  6521. id=sl_svn7768_663
  6522. ><td class="source"> // reset error detection counter<br></td></tr
  6523. ><tr
  6524. id=sl_svn7768_664
  6525. ><td class="source"> count = 2 * vc;<br></td></tr
  6526. ><tr
  6527. id=sl_svn7768_665
  6528. ><td class="source"> }<br></td></tr
  6529. ><tr
  6530. id=sl_svn7768_666
  6531. ><td class="source"> }<br></td></tr
  6532. ><tr
  6533. id=sl_svn7768_667
  6534. ><td class="source"> }<br></td></tr
  6535. ><tr
  6536. id=sl_svn7768_668
  6537. ><td class="source"><br></td></tr
  6538. ><tr
  6539. id=sl_svn7768_669
  6540. ><td class="source"><br></td></tr
  6541. ><tr
  6542. id=sl_svn7768_670
  6543. ><td class="source"> /*<br></td></tr
  6544. ><tr
  6545. id=sl_svn7768_671
  6546. ><td class="source"> // triangulate the current polygon<br></td></tr
  6547. ><tr
  6548. id=sl_svn7768_672
  6549. ><td class="source"> private void concaveRender() {<br></td></tr
  6550. ><tr
  6551. id=sl_svn7768_673
  6552. ><td class="source"> float polyVertices[][] = polygon.vertices;<br></td></tr
  6553. ><tr
  6554. id=sl_svn7768_674
  6555. ><td class="source"><br></td></tr
  6556. ><tr
  6557. id=sl_svn7768_675
  6558. ><td class="source"> if (tpolygon == null) {<br></td></tr
  6559. ><tr
  6560. id=sl_svn7768_676
  6561. ><td class="source"> // allocate on first use, rather than slowing<br></td></tr
  6562. ><tr
  6563. id=sl_svn7768_677
  6564. ><td class="source"> // the startup of the class.<br></td></tr
  6565. ><tr
  6566. id=sl_svn7768_678
  6567. ><td class="source"> tpolygon = new PPolygon(this);<br></td></tr
  6568. ><tr
  6569. id=sl_svn7768_679
  6570. ><td class="source"> tpolygon_vertex_order = new int[TPOLYGON_MAX_VERTICES];<br></td></tr
  6571. ><tr
  6572. id=sl_svn7768_680
  6573. ><td class="source"> }<br></td></tr
  6574. ><tr
  6575. id=sl_svn7768_681
  6576. ><td class="source"> tpolygon.reset(3);<br></td></tr
  6577. ><tr
  6578. id=sl_svn7768_682
  6579. ><td class="source"><br></td></tr
  6580. ><tr
  6581. id=sl_svn7768_683
  6582. ><td class="source"> // copy render parameters<br></td></tr
  6583. ><tr
  6584. id=sl_svn7768_684
  6585. ><td class="source"><br></td></tr
  6586. ><tr
  6587. id=sl_svn7768_685
  6588. ><td class="source"> if (textureImage != null) {<br></td></tr
  6589. ><tr
  6590. id=sl_svn7768_686
  6591. ><td class="source"> tpolygon.texture(textureImage); //polygon.timage);<br></td></tr
  6592. ><tr
  6593. id=sl_svn7768_687
  6594. ><td class="source"> }<br></td></tr
  6595. ><tr
  6596. id=sl_svn7768_688
  6597. ><td class="source"><br></td></tr
  6598. ><tr
  6599. id=sl_svn7768_689
  6600. ><td class="source"> tpolygon.interpX = polygon.interpX;<br></td></tr
  6601. ><tr
  6602. id=sl_svn7768_690
  6603. ><td class="source"> tpolygon.interpUV = polygon.interpUV;<br></td></tr
  6604. ><tr
  6605. id=sl_svn7768_691
  6606. ><td class="source"> tpolygon.interpARGB = polygon.interpARGB;<br></td></tr
  6607. ><tr
  6608. id=sl_svn7768_692
  6609. ><td class="source"><br></td></tr
  6610. ><tr
  6611. id=sl_svn7768_693
  6612. ><td class="source"> // simple ear clipping polygon triangulation<br></td></tr
  6613. ><tr
  6614. id=sl_svn7768_694
  6615. ><td class="source"> // addapted from code by john w. ratcliff (jratcliff@verant.com)<br></td></tr
  6616. ><tr
  6617. id=sl_svn7768_695
  6618. ><td class="source"><br></td></tr
  6619. ><tr
  6620. id=sl_svn7768_696
  6621. ><td class="source"> // 1 - first we check if the polygon goes CW or CCW<br></td></tr
  6622. ><tr
  6623. id=sl_svn7768_697
  6624. ><td class="source"> // CW-CCW ordering adapted from code by<br></td></tr
  6625. ><tr
  6626. id=sl_svn7768_698
  6627. ><td class="source"> // Joseph O&#39;Rourke orourke@cs.smith.edu<br></td></tr
  6628. ><tr
  6629. id=sl_svn7768_699
  6630. ><td class="source"> // 1A - we start by finding the lowest-right most vertex<br></td></tr
  6631. ><tr
  6632. id=sl_svn7768_700
  6633. ><td class="source"><br></td></tr
  6634. ><tr
  6635. id=sl_svn7768_701
  6636. ><td class="source"> boolean ccw = false; // clockwise<br></td></tr
  6637. ><tr
  6638. id=sl_svn7768_702
  6639. ><td class="source"><br></td></tr
  6640. ><tr
  6641. id=sl_svn7768_703
  6642. ><td class="source"> int n = polygon.vertexCount;<br></td></tr
  6643. ><tr
  6644. id=sl_svn7768_704
  6645. ><td class="source"> int mm; // postion for LR vertex<br></td></tr
  6646. ><tr
  6647. id=sl_svn7768_705
  6648. ><td class="source"> //float min[] = new float[2];<br></td></tr
  6649. ><tr
  6650. id=sl_svn7768_706
  6651. ><td class="source"> float minX = polyVertices[0][TX];<br></td></tr
  6652. ><tr
  6653. id=sl_svn7768_707
  6654. ><td class="source"> float minY = polyVertices[0][TY];<br></td></tr
  6655. ><tr
  6656. id=sl_svn7768_708
  6657. ><td class="source"> mm = 0;<br></td></tr
  6658. ><tr
  6659. id=sl_svn7768_709
  6660. ><td class="source"><br></td></tr
  6661. ><tr
  6662. id=sl_svn7768_710
  6663. ><td class="source"> for(int i = 0; i &lt; n; i++ ) {<br></td></tr
  6664. ><tr
  6665. id=sl_svn7768_711
  6666. ><td class="source"> if ((polyVertices[i][TY] &lt; minY) ||<br></td></tr
  6667. ><tr
  6668. id=sl_svn7768_712
  6669. ><td class="source"> ((polyVertices[i][TY] == minY) &amp;&amp; (polyVertices[i][TX] &gt; minX) )<br></td></tr
  6670. ><tr
  6671. id=sl_svn7768_713
  6672. ><td class="source"> ) {<br></td></tr
  6673. ><tr
  6674. id=sl_svn7768_714
  6675. ><td class="source"> mm = i;<br></td></tr
  6676. ><tr
  6677. id=sl_svn7768_715
  6678. ><td class="source"> minX = polyVertices[mm][TX];<br></td></tr
  6679. ><tr
  6680. id=sl_svn7768_716
  6681. ><td class="source"> minY = polyVertices[mm][TY];<br></td></tr
  6682. ><tr
  6683. id=sl_svn7768_717
  6684. ><td class="source"> }<br></td></tr
  6685. ><tr
  6686. id=sl_svn7768_718
  6687. ><td class="source"> }<br></td></tr
  6688. ><tr
  6689. id=sl_svn7768_719
  6690. ><td class="source"><br></td></tr
  6691. ><tr
  6692. id=sl_svn7768_720
  6693. ><td class="source"> // 1B - now we compute the cross product of the edges of this vertex<br></td></tr
  6694. ><tr
  6695. id=sl_svn7768_721
  6696. ><td class="source"> float cp;<br></td></tr
  6697. ><tr
  6698. id=sl_svn7768_722
  6699. ><td class="source"> int mm1;<br></td></tr
  6700. ><tr
  6701. id=sl_svn7768_723
  6702. ><td class="source"><br></td></tr
  6703. ><tr
  6704. id=sl_svn7768_724
  6705. ><td class="source"> // just for renaming<br></td></tr
  6706. ><tr
  6707. id=sl_svn7768_725
  6708. ><td class="source"> float a[] = new float[2];<br></td></tr
  6709. ><tr
  6710. id=sl_svn7768_726
  6711. ><td class="source"> float b[] = new float[2];<br></td></tr
  6712. ><tr
  6713. id=sl_svn7768_727
  6714. ><td class="source"> float c[] = new float[2];<br></td></tr
  6715. ><tr
  6716. id=sl_svn7768_728
  6717. ><td class="source"><br></td></tr
  6718. ><tr
  6719. id=sl_svn7768_729
  6720. ><td class="source"> mm1 = (mm + (n-1)) % n;<br></td></tr
  6721. ><tr
  6722. id=sl_svn7768_730
  6723. ><td class="source"><br></td></tr
  6724. ><tr
  6725. id=sl_svn7768_731
  6726. ><td class="source"> // assign a[0] to point to poly[m1][0] etc.<br></td></tr
  6727. ><tr
  6728. id=sl_svn7768_732
  6729. ><td class="source"> for(int i = 0; i &lt; 2; i++ ) {<br></td></tr
  6730. ><tr
  6731. id=sl_svn7768_733
  6732. ><td class="source"> a[i] = polyVertices[mm1][i];<br></td></tr
  6733. ><tr
  6734. id=sl_svn7768_734
  6735. ><td class="source"> b[i] = polyVertices[mm][i];<br></td></tr
  6736. ><tr
  6737. id=sl_svn7768_735
  6738. ><td class="source"> c[i] = polyVertices[(mm+1)%n][i];<br></td></tr
  6739. ><tr
  6740. id=sl_svn7768_736
  6741. ><td class="source"> }<br></td></tr
  6742. ><tr
  6743. id=sl_svn7768_737
  6744. ><td class="source"><br></td></tr
  6745. ><tr
  6746. id=sl_svn7768_738
  6747. ><td class="source"> cp = a[0] * b[1] - a[1] * b[0] +<br></td></tr
  6748. ><tr
  6749. id=sl_svn7768_739
  6750. ><td class="source"> a[1] * c[0] - a[0] * c[1] +<br></td></tr
  6751. ><tr
  6752. id=sl_svn7768_740
  6753. ><td class="source"> b[0] * c[1] - c[0] * b[1];<br></td></tr
  6754. ><tr
  6755. id=sl_svn7768_741
  6756. ><td class="source"><br></td></tr
  6757. ><tr
  6758. id=sl_svn7768_742
  6759. ><td class="source"> if ( cp &gt; 0 )<br></td></tr
  6760. ><tr
  6761. id=sl_svn7768_743
  6762. ><td class="source"> ccw = true; // CCW<br></td></tr
  6763. ><tr
  6764. id=sl_svn7768_744
  6765. ><td class="source"> else<br></td></tr
  6766. ><tr
  6767. id=sl_svn7768_745
  6768. ><td class="source"> ccw = false; // CW<br></td></tr
  6769. ><tr
  6770. id=sl_svn7768_746
  6771. ><td class="source"><br></td></tr
  6772. ><tr
  6773. id=sl_svn7768_747
  6774. ><td class="source"> // 1C - then we sort the vertices so they<br></td></tr
  6775. ><tr
  6776. id=sl_svn7768_748
  6777. ><td class="source"> // are always in a counterclockwise order<br></td></tr
  6778. ><tr
  6779. id=sl_svn7768_749
  6780. ><td class="source"> //int j = 0;<br></td></tr
  6781. ><tr
  6782. id=sl_svn7768_750
  6783. ><td class="source"> if (!ccw) {<br></td></tr
  6784. ><tr
  6785. id=sl_svn7768_751
  6786. ><td class="source"> // keep the same order<br></td></tr
  6787. ><tr
  6788. id=sl_svn7768_752
  6789. ><td class="source"> for (int i = 0; i &lt; n; i++) {<br></td></tr
  6790. ><tr
  6791. id=sl_svn7768_753
  6792. ><td class="source"> tpolygon_vertex_order[i] = i;<br></td></tr
  6793. ><tr
  6794. id=sl_svn7768_754
  6795. ><td class="source"> }<br></td></tr
  6796. ><tr
  6797. id=sl_svn7768_755
  6798. ><td class="source"><br></td></tr
  6799. ><tr
  6800. id=sl_svn7768_756
  6801. ><td class="source"> } else {<br></td></tr
  6802. ><tr
  6803. id=sl_svn7768_757
  6804. ><td class="source"> // invert the order<br></td></tr
  6805. ><tr
  6806. id=sl_svn7768_758
  6807. ><td class="source"> for (int i = 0; i &lt; n; i++) {<br></td></tr
  6808. ><tr
  6809. id=sl_svn7768_759
  6810. ><td class="source"> tpolygon_vertex_order[i] = (n - 1) - i;<br></td></tr
  6811. ><tr
  6812. id=sl_svn7768_760
  6813. ><td class="source"> }<br></td></tr
  6814. ><tr
  6815. id=sl_svn7768_761
  6816. ><td class="source"> }<br></td></tr
  6817. ><tr
  6818. id=sl_svn7768_762
  6819. ><td class="source"><br></td></tr
  6820. ><tr
  6821. id=sl_svn7768_763
  6822. ><td class="source"> // 2 - begin triangulation<br></td></tr
  6823. ><tr
  6824. id=sl_svn7768_764
  6825. ><td class="source"> // resulting triangles are stored in the triangle array<br></td></tr
  6826. ><tr
  6827. id=sl_svn7768_765
  6828. ><td class="source"> // remove vc-2 Vertices, creating 1 triangle every time<br></td></tr
  6829. ><tr
  6830. id=sl_svn7768_766
  6831. ><td class="source"> int vc = n;<br></td></tr
  6832. ><tr
  6833. id=sl_svn7768_767
  6834. ><td class="source"> int count = 2*vc; // complex polygon detection<br></td></tr
  6835. ><tr
  6836. id=sl_svn7768_768
  6837. ><td class="source"><br></td></tr
  6838. ><tr
  6839. id=sl_svn7768_769
  6840. ><td class="source"> for (int m = 0, v = vc - 1; vc &gt; 2; ) {<br></td></tr
  6841. ><tr
  6842. id=sl_svn7768_770
  6843. ><td class="source"> boolean snip = true;<br></td></tr
  6844. ><tr
  6845. id=sl_svn7768_771
  6846. ><td class="source"><br></td></tr
  6847. ><tr
  6848. id=sl_svn7768_772
  6849. ><td class="source"> // if we start over again, is a complex polygon<br></td></tr
  6850. ><tr
  6851. id=sl_svn7768_773
  6852. ><td class="source"> if (0 &gt;= (count--)) {<br></td></tr
  6853. ><tr
  6854. id=sl_svn7768_774
  6855. ><td class="source"> break; // triangulation failed<br></td></tr
  6856. ><tr
  6857. id=sl_svn7768_775
  6858. ><td class="source"> }<br></td></tr
  6859. ><tr
  6860. id=sl_svn7768_776
  6861. ><td class="source"><br></td></tr
  6862. ><tr
  6863. id=sl_svn7768_777
  6864. ><td class="source"> // get 3 consecutive vertices &lt;u,v,w&gt;<br></td></tr
  6865. ><tr
  6866. id=sl_svn7768_778
  6867. ><td class="source"> int u = v ; if (vc &lt;= u) u = 0; // previous<br></td></tr
  6868. ><tr
  6869. id=sl_svn7768_779
  6870. ><td class="source"> v = u+1; if (vc &lt;= v) v = 0; // current<br></td></tr
  6871. ><tr
  6872. id=sl_svn7768_780
  6873. ><td class="source"> int w = v+1; if (vc &lt;= w) w = 0; // next<br></td></tr
  6874. ><tr
  6875. id=sl_svn7768_781
  6876. ><td class="source"><br></td></tr
  6877. ><tr
  6878. id=sl_svn7768_782
  6879. ><td class="source"> // triangle A B C<br></td></tr
  6880. ><tr
  6881. id=sl_svn7768_783
  6882. ><td class="source"> float Ax, Ay, Bx, By, Cx, Cy, Px, Py;<br></td></tr
  6883. ><tr
  6884. id=sl_svn7768_784
  6885. ><td class="source"><br></td></tr
  6886. ><tr
  6887. id=sl_svn7768_785
  6888. ><td class="source"> Ax = -polyVertices[tpolygon_vertex_order[u]][TX];<br></td></tr
  6889. ><tr
  6890. id=sl_svn7768_786
  6891. ><td class="source"> Ay = polyVertices[tpolygon_vertex_order[u]][TY];<br></td></tr
  6892. ><tr
  6893. id=sl_svn7768_787
  6894. ><td class="source"> Bx = -polyVertices[tpolygon_vertex_order[v]][TX];<br></td></tr
  6895. ><tr
  6896. id=sl_svn7768_788
  6897. ><td class="source"> By = polyVertices[tpolygon_vertex_order[v]][TY];<br></td></tr
  6898. ><tr
  6899. id=sl_svn7768_789
  6900. ><td class="source"> Cx = -polyVertices[tpolygon_vertex_order[w]][TX];<br></td></tr
  6901. ><tr
  6902. id=sl_svn7768_790
  6903. ><td class="source"> Cy = polyVertices[tpolygon_vertex_order[w]][TY];<br></td></tr
  6904. ><tr
  6905. id=sl_svn7768_791
  6906. ><td class="source"><br></td></tr
  6907. ><tr
  6908. id=sl_svn7768_792
  6909. ><td class="source"> if ( EPSILON &gt; (((Bx-Ax) * (Cy-Ay)) - ((By-Ay) * (Cx-Ax)))) {<br></td></tr
  6910. ><tr
  6911. id=sl_svn7768_793
  6912. ><td class="source"> continue;<br></td></tr
  6913. ><tr
  6914. id=sl_svn7768_794
  6915. ><td class="source"> }<br></td></tr
  6916. ><tr
  6917. id=sl_svn7768_795
  6918. ><td class="source"><br></td></tr
  6919. ><tr
  6920. id=sl_svn7768_796
  6921. ><td class="source"> for (int p = 0; p &lt; vc; p++) {<br></td></tr
  6922. ><tr
  6923. id=sl_svn7768_797
  6924. ><td class="source"><br></td></tr
  6925. ><tr
  6926. id=sl_svn7768_798
  6927. ><td class="source"> // this part is a bit osbscure, basically what it does<br></td></tr
  6928. ><tr
  6929. id=sl_svn7768_799
  6930. ><td class="source"> // is test if this tree vertices are and ear or not, looking for<br></td></tr
  6931. ><tr
  6932. id=sl_svn7768_800
  6933. ><td class="source"> // intersections with the remaining vertices using a cross product<br></td></tr
  6934. ><tr
  6935. id=sl_svn7768_801
  6936. ><td class="source"> float ax, ay, bx, by, cx, cy, apx, apy, bpx, bpy, cpx, cpy;<br></td></tr
  6937. ><tr
  6938. id=sl_svn7768_802
  6939. ><td class="source"> float cCROSSap, bCROSScp, aCROSSbp;<br></td></tr
  6940. ><tr
  6941. id=sl_svn7768_803
  6942. ><td class="source"><br></td></tr
  6943. ><tr
  6944. id=sl_svn7768_804
  6945. ><td class="source"> if( (p == u) || (p == v) || (p == w) ) {<br></td></tr
  6946. ><tr
  6947. id=sl_svn7768_805
  6948. ><td class="source"> continue;<br></td></tr
  6949. ><tr
  6950. id=sl_svn7768_806
  6951. ><td class="source"> }<br></td></tr
  6952. ><tr
  6953. id=sl_svn7768_807
  6954. ><td class="source"><br></td></tr
  6955. ><tr
  6956. id=sl_svn7768_808
  6957. ><td class="source"> Px = -polyVertices[tpolygon_vertex_order[p]][TX];<br></td></tr
  6958. ><tr
  6959. id=sl_svn7768_809
  6960. ><td class="source"> Py = polyVertices[tpolygon_vertex_order[p]][TY];<br></td></tr
  6961. ><tr
  6962. id=sl_svn7768_810
  6963. ><td class="source"><br></td></tr
  6964. ><tr
  6965. id=sl_svn7768_811
  6966. ><td class="source"> ax = Cx - Bx; ay = Cy - By;<br></td></tr
  6967. ><tr
  6968. id=sl_svn7768_812
  6969. ><td class="source"> bx = Ax - Cx; by = Ay - Cy;<br></td></tr
  6970. ><tr
  6971. id=sl_svn7768_813
  6972. ><td class="source"> cx = Bx - Ax; cy = By - Ay;<br></td></tr
  6973. ><tr
  6974. id=sl_svn7768_814
  6975. ><td class="source"> apx= Px - Ax; apy= Py - Ay;<br></td></tr
  6976. ><tr
  6977. id=sl_svn7768_815
  6978. ><td class="source"> bpx= Px - Bx; bpy= Py - By;<br></td></tr
  6979. ><tr
  6980. id=sl_svn7768_816
  6981. ><td class="source"> cpx= Px - Cx; cpy= Py - Cy;<br></td></tr
  6982. ><tr
  6983. id=sl_svn7768_817
  6984. ><td class="source"><br></td></tr
  6985. ><tr
  6986. id=sl_svn7768_818
  6987. ><td class="source"> aCROSSbp = ax * bpy - ay * bpx;<br></td></tr
  6988. ><tr
  6989. id=sl_svn7768_819
  6990. ><td class="source"> cCROSSap = cx * apy - cy * apx;<br></td></tr
  6991. ><tr
  6992. id=sl_svn7768_820
  6993. ><td class="source"> bCROSScp = bx * cpy - by * cpx;<br></td></tr
  6994. ><tr
  6995. id=sl_svn7768_821
  6996. ><td class="source"><br></td></tr
  6997. ><tr
  6998. id=sl_svn7768_822
  6999. ><td class="source"> if ((aCROSSbp &gt;= 0.0f) &amp;&amp; (bCROSScp &gt;= 0.0f) &amp;&amp; (cCROSSap &gt;= 0.0f)) {<br></td></tr
  7000. ><tr
  7001. id=sl_svn7768_823
  7002. ><td class="source"> snip = false;<br></td></tr
  7003. ><tr
  7004. id=sl_svn7768_824
  7005. ><td class="source"> }<br></td></tr
  7006. ><tr
  7007. id=sl_svn7768_825
  7008. ><td class="source"> }<br></td></tr
  7009. ><tr
  7010. id=sl_svn7768_826
  7011. ><td class="source"><br></td></tr
  7012. ><tr
  7013. id=sl_svn7768_827
  7014. ><td class="source"> if (snip) {<br></td></tr
  7015. ><tr
  7016. id=sl_svn7768_828
  7017. ><td class="source"> // yes, the trio is an ear, render it and cut it<br></td></tr
  7018. ><tr
  7019. id=sl_svn7768_829
  7020. ><td class="source"><br></td></tr
  7021. ><tr
  7022. id=sl_svn7768_830
  7023. ><td class="source"> int triangle_vertices[] = new int[3];<br></td></tr
  7024. ><tr
  7025. id=sl_svn7768_831
  7026. ><td class="source"> int s,t;<br></td></tr
  7027. ><tr
  7028. id=sl_svn7768_832
  7029. ><td class="source"><br></td></tr
  7030. ><tr
  7031. id=sl_svn7768_833
  7032. ><td class="source"> // true names of the vertices<br></td></tr
  7033. ><tr
  7034. id=sl_svn7768_834
  7035. ><td class="source"> triangle_vertices[0] = tpolygon_vertex_order[u];<br></td></tr
  7036. ><tr
  7037. id=sl_svn7768_835
  7038. ><td class="source"> triangle_vertices[1] = tpolygon_vertex_order[v];<br></td></tr
  7039. ><tr
  7040. id=sl_svn7768_836
  7041. ><td class="source"> triangle_vertices[2] = tpolygon_vertex_order[w];<br></td></tr
  7042. ><tr
  7043. id=sl_svn7768_837
  7044. ><td class="source"><br></td></tr
  7045. ><tr
  7046. id=sl_svn7768_838
  7047. ><td class="source"> // create triangle<br></td></tr
  7048. ><tr
  7049. id=sl_svn7768_839
  7050. ><td class="source"> //render_triangle(triangle_vertices);<br></td></tr
  7051. ><tr
  7052. id=sl_svn7768_840
  7053. ><td class="source"> //private final void render_triangle(int[] triangle_vertices) {<br></td></tr
  7054. ><tr
  7055. id=sl_svn7768_841
  7056. ><td class="source"> // copy all fields of the triangle vertices<br></td></tr
  7057. ><tr
  7058. id=sl_svn7768_842
  7059. ><td class="source"> for (int i = 0; i &lt; 3; i++) {<br></td></tr
  7060. ><tr
  7061. id=sl_svn7768_843
  7062. ><td class="source"> float[] src = polygon.vertices[triangle_vertices[i]];<br></td></tr
  7063. ><tr
  7064. id=sl_svn7768_844
  7065. ><td class="source"> float[] dest = tpolygon.vertices[i];<br></td></tr
  7066. ><tr
  7067. id=sl_svn7768_845
  7068. ><td class="source"> for (int k = 0; k &lt; VERTEX_FIELD_COUNT; k++) {<br></td></tr
  7069. ><tr
  7070. id=sl_svn7768_846
  7071. ><td class="source"> dest[k] = src[k];<br></td></tr
  7072. ><tr
  7073. id=sl_svn7768_847
  7074. ><td class="source"> }<br></td></tr
  7075. ><tr
  7076. id=sl_svn7768_848
  7077. ><td class="source"> }<br></td></tr
  7078. ><tr
  7079. id=sl_svn7768_849
  7080. ><td class="source"> // render triangle<br></td></tr
  7081. ><tr
  7082. id=sl_svn7768_850
  7083. ><td class="source"> tpolygon.render();<br></td></tr
  7084. ><tr
  7085. id=sl_svn7768_851
  7086. ><td class="source"> //}<br></td></tr
  7087. ><tr
  7088. id=sl_svn7768_852
  7089. ><td class="source"><br></td></tr
  7090. ><tr
  7091. id=sl_svn7768_853
  7092. ><td class="source"> m++;<br></td></tr
  7093. ><tr
  7094. id=sl_svn7768_854
  7095. ><td class="source"><br></td></tr
  7096. ><tr
  7097. id=sl_svn7768_855
  7098. ><td class="source"> // remove v from remaining polygon<br></td></tr
  7099. ><tr
  7100. id=sl_svn7768_856
  7101. ><td class="source"> for( s = v, t = v + 1; t &lt; vc; s++, t++) {<br></td></tr
  7102. ><tr
  7103. id=sl_svn7768_857
  7104. ><td class="source"> tpolygon_vertex_order[s] = tpolygon_vertex_order[t];<br></td></tr
  7105. ><tr
  7106. id=sl_svn7768_858
  7107. ><td class="source"> }<br></td></tr
  7108. ><tr
  7109. id=sl_svn7768_859
  7110. ><td class="source"><br></td></tr
  7111. ><tr
  7112. id=sl_svn7768_860
  7113. ><td class="source"> vc--;<br></td></tr
  7114. ><tr
  7115. id=sl_svn7768_861
  7116. ><td class="source"><br></td></tr
  7117. ><tr
  7118. id=sl_svn7768_862
  7119. ><td class="source"> // resest error detection counter<br></td></tr
  7120. ><tr
  7121. id=sl_svn7768_863
  7122. ><td class="source"> count = 2 * vc;<br></td></tr
  7123. ><tr
  7124. id=sl_svn7768_864
  7125. ><td class="source"> }<br></td></tr
  7126. ><tr
  7127. id=sl_svn7768_865
  7128. ><td class="source"> }<br></td></tr
  7129. ><tr
  7130. id=sl_svn7768_866
  7131. ><td class="source"> }<br></td></tr
  7132. ><tr
  7133. id=sl_svn7768_867
  7134. ><td class="source"> */<br></td></tr
  7135. ><tr
  7136. id=sl_svn7768_868
  7137. ><td class="source"><br></td></tr
  7138. ><tr
  7139. id=sl_svn7768_869
  7140. ><td class="source"><br></td></tr
  7141. ><tr
  7142. id=sl_svn7768_870
  7143. ><td class="source"><br></td></tr
  7144. ><tr
  7145. id=sl_svn7768_871
  7146. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  7147. ><tr
  7148. id=sl_svn7768_872
  7149. ><td class="source"><br></td></tr
  7150. ><tr
  7151. id=sl_svn7768_873
  7152. ><td class="source"> // BEZIER VERTICES<br></td></tr
  7153. ><tr
  7154. id=sl_svn7768_874
  7155. ><td class="source"><br></td></tr
  7156. ><tr
  7157. id=sl_svn7768_875
  7158. ><td class="source"><br></td></tr
  7159. ><tr
  7160. id=sl_svn7768_876
  7161. ><td class="source"> //public void bezierVertex(float x2, float y2,<br></td></tr
  7162. ><tr
  7163. id=sl_svn7768_877
  7164. ><td class="source"> // float x3, float y3,<br></td></tr
  7165. ><tr
  7166. id=sl_svn7768_878
  7167. ><td class="source"> // float x4, float y4)<br></td></tr
  7168. ><tr
  7169. id=sl_svn7768_879
  7170. ><td class="source"><br></td></tr
  7171. ><tr
  7172. id=sl_svn7768_880
  7173. ><td class="source"><br></td></tr
  7174. ><tr
  7175. id=sl_svn7768_881
  7176. ><td class="source"> //public void bezierVertex(float x2, float y2, float z2,<br></td></tr
  7177. ><tr
  7178. id=sl_svn7768_882
  7179. ><td class="source"> // float x3, float y3, float z3,<br></td></tr
  7180. ><tr
  7181. id=sl_svn7768_883
  7182. ><td class="source"> // float x4, float y4, float z4)<br></td></tr
  7183. ><tr
  7184. id=sl_svn7768_884
  7185. ><td class="source"><br></td></tr
  7186. ><tr
  7187. id=sl_svn7768_885
  7188. ><td class="source"><br></td></tr
  7189. ><tr
  7190. id=sl_svn7768_886
  7191. ><td class="source"><br></td></tr
  7192. ><tr
  7193. id=sl_svn7768_887
  7194. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  7195. ><tr
  7196. id=sl_svn7768_888
  7197. ><td class="source"><br></td></tr
  7198. ><tr
  7199. id=sl_svn7768_889
  7200. ><td class="source"> // CURVE VERTICES<br></td></tr
  7201. ><tr
  7202. id=sl_svn7768_890
  7203. ><td class="source"><br></td></tr
  7204. ><tr
  7205. id=sl_svn7768_891
  7206. ><td class="source"><br></td></tr
  7207. ><tr
  7208. id=sl_svn7768_892
  7209. ><td class="source"> //public void curveVertex(float x, float y)<br></td></tr
  7210. ><tr
  7211. id=sl_svn7768_893
  7212. ><td class="source"><br></td></tr
  7213. ><tr
  7214. id=sl_svn7768_894
  7215. ><td class="source"><br></td></tr
  7216. ><tr
  7217. id=sl_svn7768_895
  7218. ><td class="source"> //public void curveVertex(float x, float y, float z)<br></td></tr
  7219. ><tr
  7220. id=sl_svn7768_896
  7221. ><td class="source"><br></td></tr
  7222. ><tr
  7223. id=sl_svn7768_897
  7224. ><td class="source"><br></td></tr
  7225. ><tr
  7226. id=sl_svn7768_898
  7227. ><td class="source"><br></td></tr
  7228. ><tr
  7229. id=sl_svn7768_899
  7230. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  7231. ><tr
  7232. id=sl_svn7768_900
  7233. ><td class="source"><br></td></tr
  7234. ><tr
  7235. id=sl_svn7768_901
  7236. ><td class="source"> // FLUSH<br></td></tr
  7237. ><tr
  7238. id=sl_svn7768_902
  7239. ><td class="source"><br></td></tr
  7240. ><tr
  7241. id=sl_svn7768_903
  7242. ><td class="source"><br></td></tr
  7243. ><tr
  7244. id=sl_svn7768_904
  7245. ><td class="source"> //public void flush()<br></td></tr
  7246. ><tr
  7247. id=sl_svn7768_905
  7248. ><td class="source"><br></td></tr
  7249. ><tr
  7250. id=sl_svn7768_906
  7251. ><td class="source"><br></td></tr
  7252. ><tr
  7253. id=sl_svn7768_907
  7254. ><td class="source"><br></td></tr
  7255. ><tr
  7256. id=sl_svn7768_908
  7257. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  7258. ><tr
  7259. id=sl_svn7768_909
  7260. ><td class="source"><br></td></tr
  7261. ><tr
  7262. id=sl_svn7768_910
  7263. ><td class="source"> // PRIMITIVES<br></td></tr
  7264. ><tr
  7265. id=sl_svn7768_911
  7266. ><td class="source"><br></td></tr
  7267. ><tr
  7268. id=sl_svn7768_912
  7269. ><td class="source"><br></td></tr
  7270. ><tr
  7271. id=sl_svn7768_913
  7272. ><td class="source"> //public void point(float x, float y)<br></td></tr
  7273. ><tr
  7274. id=sl_svn7768_914
  7275. ><td class="source"><br></td></tr
  7276. ><tr
  7277. id=sl_svn7768_915
  7278. ><td class="source"><br></td></tr
  7279. ><tr
  7280. id=sl_svn7768_916
  7281. ><td class="source"> public void point(float x, float y, float z) {<br></td></tr
  7282. ><tr
  7283. id=sl_svn7768_917
  7284. ><td class="source"> showDepthWarningXYZ(&quot;point&quot;);<br></td></tr
  7285. ><tr
  7286. id=sl_svn7768_918
  7287. ><td class="source"> }<br></td></tr
  7288. ><tr
  7289. id=sl_svn7768_919
  7290. ><td class="source"><br></td></tr
  7291. ><tr
  7292. id=sl_svn7768_920
  7293. ><td class="source"><br></td></tr
  7294. ><tr
  7295. id=sl_svn7768_921
  7296. ><td class="source"> //public void line(float x1, float y1, float x2, float y2)<br></td></tr
  7297. ><tr
  7298. id=sl_svn7768_922
  7299. ><td class="source"><br></td></tr
  7300. ><tr
  7301. id=sl_svn7768_923
  7302. ><td class="source"><br></td></tr
  7303. ><tr
  7304. id=sl_svn7768_924
  7305. ><td class="source"> //public void line(float x1, float y1, float z1,<br></td></tr
  7306. ><tr
  7307. id=sl_svn7768_925
  7308. ><td class="source"> // float x2, float y2, float z2)<br></td></tr
  7309. ><tr
  7310. id=sl_svn7768_926
  7311. ><td class="source"><br></td></tr
  7312. ><tr
  7313. id=sl_svn7768_927
  7314. ><td class="source"><br></td></tr
  7315. ><tr
  7316. id=sl_svn7768_928
  7317. ><td class="source"> //public void triangle(float x1, float y1,<br></td></tr
  7318. ><tr
  7319. id=sl_svn7768_929
  7320. ><td class="source"> // float x2, float y2,<br></td></tr
  7321. ><tr
  7322. id=sl_svn7768_930
  7323. ><td class="source"> // float x3, float y3)<br></td></tr
  7324. ><tr
  7325. id=sl_svn7768_931
  7326. ><td class="source"><br></td></tr
  7327. ><tr
  7328. id=sl_svn7768_932
  7329. ><td class="source"><br></td></tr
  7330. ><tr
  7331. id=sl_svn7768_933
  7332. ><td class="source"> //public void quad(float x1, float y1, float x2, float y2,<br></td></tr
  7333. ><tr
  7334. id=sl_svn7768_934
  7335. ><td class="source"> // float x3, float y3, float x4, float y4)<br></td></tr
  7336. ><tr
  7337. id=sl_svn7768_935
  7338. ><td class="source"><br></td></tr
  7339. ><tr
  7340. id=sl_svn7768_936
  7341. ><td class="source"><br></td></tr
  7342. ><tr
  7343. id=sl_svn7768_937
  7344. ><td class="source"><br></td></tr
  7345. ><tr
  7346. id=sl_svn7768_938
  7347. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  7348. ><tr
  7349. id=sl_svn7768_939
  7350. ><td class="source"><br></td></tr
  7351. ><tr
  7352. id=sl_svn7768_940
  7353. ><td class="source"> // RECT<br></td></tr
  7354. ><tr
  7355. id=sl_svn7768_941
  7356. ><td class="source"><br></td></tr
  7357. ><tr
  7358. id=sl_svn7768_942
  7359. ><td class="source"><br></td></tr
  7360. ><tr
  7361. id=sl_svn7768_943
  7362. ><td class="source"> protected void rectImpl(float x1f, float y1f, float x2f, float y2f) {<br></td></tr
  7363. ><tr
  7364. id=sl_svn7768_944
  7365. ><td class="source"> if (smooth || strokeAlpha || ctm.isWarped()) {<br></td></tr
  7366. ><tr
  7367. id=sl_svn7768_945
  7368. ><td class="source"> // screw the efficiency, send this off to beginShape().<br></td></tr
  7369. ><tr
  7370. id=sl_svn7768_946
  7371. ><td class="source"> super.rectImpl(x1f, y1f, x2f, y2f);<br></td></tr
  7372. ><tr
  7373. id=sl_svn7768_947
  7374. ><td class="source"><br></td></tr
  7375. ><tr
  7376. id=sl_svn7768_948
  7377. ><td class="source"> } else {<br></td></tr
  7378. ><tr
  7379. id=sl_svn7768_949
  7380. ><td class="source"> int x1 = (int) (x1f + ctm.m02);<br></td></tr
  7381. ><tr
  7382. id=sl_svn7768_950
  7383. ><td class="source"> int y1 = (int) (y1f + ctm.m12);<br></td></tr
  7384. ><tr
  7385. id=sl_svn7768_951
  7386. ><td class="source"> int x2 = (int) (x2f + ctm.m02);<br></td></tr
  7387. ><tr
  7388. id=sl_svn7768_952
  7389. ><td class="source"> int y2 = (int) (y2f + ctm.m12);<br></td></tr
  7390. ><tr
  7391. id=sl_svn7768_953
  7392. ><td class="source"><br></td></tr
  7393. ><tr
  7394. id=sl_svn7768_954
  7395. ><td class="source"> if (fill) {<br></td></tr
  7396. ><tr
  7397. id=sl_svn7768_955
  7398. ><td class="source"> simple_rect_fill(x1, y1, x2, y2);<br></td></tr
  7399. ><tr
  7400. id=sl_svn7768_956
  7401. ><td class="source"> }<br></td></tr
  7402. ><tr
  7403. id=sl_svn7768_957
  7404. ><td class="source"><br></td></tr
  7405. ><tr
  7406. id=sl_svn7768_958
  7407. ><td class="source"> if (stroke) {<br></td></tr
  7408. ><tr
  7409. id=sl_svn7768_959
  7410. ><td class="source"> if (strokeWeight == 1) {<br></td></tr
  7411. ><tr
  7412. id=sl_svn7768_960
  7413. ><td class="source"> thin_flat_line(x1, y1, x2, y1);<br></td></tr
  7414. ><tr
  7415. id=sl_svn7768_961
  7416. ><td class="source"> thin_flat_line(x2, y1, x2, y2);<br></td></tr
  7417. ><tr
  7418. id=sl_svn7768_962
  7419. ><td class="source"> thin_flat_line(x2, y2, x1, y2);<br></td></tr
  7420. ><tr
  7421. id=sl_svn7768_963
  7422. ><td class="source"> thin_flat_line(x1, y2, x1, y1);<br></td></tr
  7423. ><tr
  7424. id=sl_svn7768_964
  7425. ><td class="source"><br></td></tr
  7426. ><tr
  7427. id=sl_svn7768_965
  7428. ><td class="source"> } else {<br></td></tr
  7429. ><tr
  7430. id=sl_svn7768_966
  7431. ><td class="source"> thick_flat_line(x1, y1, strokeR, strokeG, strokeB, strokeA,<br></td></tr
  7432. ><tr
  7433. id=sl_svn7768_967
  7434. ><td class="source"> x2, y1, strokeR, strokeG, strokeB, strokeA);<br></td></tr
  7435. ><tr
  7436. id=sl_svn7768_968
  7437. ><td class="source"> thick_flat_line(x2, y1, strokeR, strokeG, strokeB, strokeA,<br></td></tr
  7438. ><tr
  7439. id=sl_svn7768_969
  7440. ><td class="source"> x2, y2, strokeR, strokeG, strokeB, strokeA);<br></td></tr
  7441. ><tr
  7442. id=sl_svn7768_970
  7443. ><td class="source"> thick_flat_line(x2, y2, strokeR, strokeG, strokeB, strokeA,<br></td></tr
  7444. ><tr
  7445. id=sl_svn7768_971
  7446. ><td class="source"> x1, y2, strokeR, strokeG, strokeB, strokeA);<br></td></tr
  7447. ><tr
  7448. id=sl_svn7768_972
  7449. ><td class="source"> thick_flat_line(x1, y2, strokeR, strokeG, strokeB, strokeA,<br></td></tr
  7450. ><tr
  7451. id=sl_svn7768_973
  7452. ><td class="source"> x1, y1, strokeR, strokeG, strokeB, strokeA);<br></td></tr
  7453. ><tr
  7454. id=sl_svn7768_974
  7455. ><td class="source"> }<br></td></tr
  7456. ><tr
  7457. id=sl_svn7768_975
  7458. ><td class="source"> }<br></td></tr
  7459. ><tr
  7460. id=sl_svn7768_976
  7461. ><td class="source"> }<br></td></tr
  7462. ><tr
  7463. id=sl_svn7768_977
  7464. ><td class="source"> }<br></td></tr
  7465. ><tr
  7466. id=sl_svn7768_978
  7467. ><td class="source"><br></td></tr
  7468. ><tr
  7469. id=sl_svn7768_979
  7470. ><td class="source"><br></td></tr
  7471. ><tr
  7472. id=sl_svn7768_980
  7473. ><td class="source"> /**<br></td></tr
  7474. ><tr
  7475. id=sl_svn7768_981
  7476. ><td class="source"> * Draw a rectangle that hasn&#39;t been warped by the CTM (though it may be<br></td></tr
  7477. ><tr
  7478. id=sl_svn7768_982
  7479. ><td class="source"> * translated). Just fill a bunch of pixels, or blend them if there&#39;s alpha.<br></td></tr
  7480. ><tr
  7481. id=sl_svn7768_983
  7482. ><td class="source"> */<br></td></tr
  7483. ><tr
  7484. id=sl_svn7768_984
  7485. ><td class="source"> private void simple_rect_fill(int x1, int y1, int x2, int y2) {<br></td></tr
  7486. ><tr
  7487. id=sl_svn7768_985
  7488. ><td class="source"> if (y2 &lt; y1) {<br></td></tr
  7489. ><tr
  7490. id=sl_svn7768_986
  7491. ><td class="source"> int temp = y1; y1 = y2; y2 = temp;<br></td></tr
  7492. ><tr
  7493. id=sl_svn7768_987
  7494. ><td class="source"> }<br></td></tr
  7495. ><tr
  7496. id=sl_svn7768_988
  7497. ><td class="source"> if (x2 &lt; x1) {<br></td></tr
  7498. ><tr
  7499. id=sl_svn7768_989
  7500. ><td class="source"> int temp = x1; x1 = x2; x2 = temp;<br></td></tr
  7501. ><tr
  7502. id=sl_svn7768_990
  7503. ><td class="source"> }<br></td></tr
  7504. ><tr
  7505. id=sl_svn7768_991
  7506. ><td class="source"> // check to see if completely off-screen (e.g. if the left edge of the<br></td></tr
  7507. ><tr
  7508. id=sl_svn7768_992
  7509. ><td class="source"> // rectangle is bigger than the width, and so on.)<br></td></tr
  7510. ><tr
  7511. id=sl_svn7768_993
  7512. ><td class="source"> if ((x1 &gt; width1) || (x2 &lt; 0) ||<br></td></tr
  7513. ><tr
  7514. id=sl_svn7768_994
  7515. ><td class="source"> (y1 &gt; height1) || (y2 &lt; 0)) return;<br></td></tr
  7516. ><tr
  7517. id=sl_svn7768_995
  7518. ><td class="source"><br></td></tr
  7519. ><tr
  7520. id=sl_svn7768_996
  7521. ><td class="source"> // these only affect the fill, not the stroke<br></td></tr
  7522. ><tr
  7523. id=sl_svn7768_997
  7524. ><td class="source"> // (otherwise strange boogers at edges b/c frame changes shape)<br></td></tr
  7525. ><tr
  7526. id=sl_svn7768_998
  7527. ><td class="source"> if (x1 &lt; 0) x1 = 0;<br></td></tr
  7528. ><tr
  7529. id=sl_svn7768_999
  7530. ><td class="source"> if (x2 &gt; width) x2 = width;<br></td></tr
  7531. ><tr
  7532. id=sl_svn7768_1000
  7533. ><td class="source"> if (y1 &lt; 0) y1 = 0;<br></td></tr
  7534. ><tr
  7535. id=sl_svn7768_1001
  7536. ><td class="source"> if (y2 &gt; height) y2 = height;<br></td></tr
  7537. ><tr
  7538. id=sl_svn7768_1002
  7539. ><td class="source"><br></td></tr
  7540. ><tr
  7541. id=sl_svn7768_1003
  7542. ><td class="source"> int ww = x2 - x1;<br></td></tr
  7543. ><tr
  7544. id=sl_svn7768_1004
  7545. ><td class="source"><br></td></tr
  7546. ><tr
  7547. id=sl_svn7768_1005
  7548. ><td class="source"> if (fillAlpha) {<br></td></tr
  7549. ><tr
  7550. id=sl_svn7768_1006
  7551. ><td class="source"> for (int y = y1; y &lt; y2; y++) {<br></td></tr
  7552. ><tr
  7553. id=sl_svn7768_1007
  7554. ><td class="source"> int index = y*width + x1;<br></td></tr
  7555. ><tr
  7556. id=sl_svn7768_1008
  7557. ><td class="source"> for (int x = 0; x &lt; ww; x++) {<br></td></tr
  7558. ><tr
  7559. id=sl_svn7768_1009
  7560. ><td class="source"> pixels[index] = blend_fill(pixels[index]);<br></td></tr
  7561. ><tr
  7562. id=sl_svn7768_1010
  7563. ><td class="source"> index++;<br></td></tr
  7564. ><tr
  7565. id=sl_svn7768_1011
  7566. ><td class="source"> }<br></td></tr
  7567. ><tr
  7568. id=sl_svn7768_1012
  7569. ><td class="source"> }<br></td></tr
  7570. ><tr
  7571. id=sl_svn7768_1013
  7572. ><td class="source"><br></td></tr
  7573. ><tr
  7574. id=sl_svn7768_1014
  7575. ><td class="source"> } else {<br></td></tr
  7576. ><tr
  7577. id=sl_svn7768_1015
  7578. ><td class="source"> // on avg. 20-25% faster fill routine using System.arraycopy() [toxi 031223]<br></td></tr
  7579. ><tr
  7580. id=sl_svn7768_1016
  7581. ><td class="source"> // removed temporary row[] array for (hopefully) better performance [fry 081117]<br></td></tr
  7582. ><tr
  7583. id=sl_svn7768_1017
  7584. ><td class="source"> int hh = y2 - y1;<br></td></tr
  7585. ><tr
  7586. id=sl_svn7768_1018
  7587. ><td class="source"> // int[] row = new int[ww];<br></td></tr
  7588. ><tr
  7589. id=sl_svn7768_1019
  7590. ><td class="source"> // for (int i = 0; i &lt; ww; i++) row[i] = fillColor;<br></td></tr
  7591. ><tr
  7592. id=sl_svn7768_1020
  7593. ><td class="source"> int index = y1 * width + x1;<br></td></tr
  7594. ><tr
  7595. id=sl_svn7768_1021
  7596. ><td class="source"> int rowIndex = index;<br></td></tr
  7597. ><tr
  7598. id=sl_svn7768_1022
  7599. ><td class="source"> for (int i = 0; i &lt; ww; i++) {<br></td></tr
  7600. ><tr
  7601. id=sl_svn7768_1023
  7602. ><td class="source"> pixels[index + i] = fillColor;<br></td></tr
  7603. ><tr
  7604. id=sl_svn7768_1024
  7605. ><td class="source"> }<br></td></tr
  7606. ><tr
  7607. id=sl_svn7768_1025
  7608. ><td class="source"> for (int y = 0; y &lt; hh; y++) {<br></td></tr
  7609. ><tr
  7610. id=sl_svn7768_1026
  7611. ><td class="source"> // System.arraycopy(row, 0, pixels, idx, ww);<br></td></tr
  7612. ><tr
  7613. id=sl_svn7768_1027
  7614. ><td class="source"> System.arraycopy(pixels, rowIndex, pixels, index, ww);<br></td></tr
  7615. ><tr
  7616. id=sl_svn7768_1028
  7617. ><td class="source"> index += width;<br></td></tr
  7618. ><tr
  7619. id=sl_svn7768_1029
  7620. ><td class="source"> }<br></td></tr
  7621. ><tr
  7622. id=sl_svn7768_1030
  7623. ><td class="source"> // row = null;<br></td></tr
  7624. ><tr
  7625. id=sl_svn7768_1031
  7626. ><td class="source"> }<br></td></tr
  7627. ><tr
  7628. id=sl_svn7768_1032
  7629. ><td class="source"> }<br></td></tr
  7630. ><tr
  7631. id=sl_svn7768_1033
  7632. ><td class="source"><br></td></tr
  7633. ><tr
  7634. id=sl_svn7768_1034
  7635. ><td class="source"><br></td></tr
  7636. ><tr
  7637. id=sl_svn7768_1035
  7638. ><td class="source"><br></td></tr
  7639. ><tr
  7640. id=sl_svn7768_1036
  7641. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  7642. ><tr
  7643. id=sl_svn7768_1037
  7644. ><td class="source"><br></td></tr
  7645. ><tr
  7646. id=sl_svn7768_1038
  7647. ><td class="source"> // ELLIPSE AND ARC<br></td></tr
  7648. ><tr
  7649. id=sl_svn7768_1039
  7650. ><td class="source"><br></td></tr
  7651. ><tr
  7652. id=sl_svn7768_1040
  7653. ><td class="source"><br></td></tr
  7654. ><tr
  7655. id=sl_svn7768_1041
  7656. ><td class="source"> protected void ellipseImpl(float x, float y, float w, float h) {<br></td></tr
  7657. ><tr
  7658. id=sl_svn7768_1042
  7659. ><td class="source"> if (smooth || (strokeWeight != 1) ||<br></td></tr
  7660. ><tr
  7661. id=sl_svn7768_1043
  7662. ><td class="source"> fillAlpha || strokeAlpha || ctm.isWarped()) {<br></td></tr
  7663. ><tr
  7664. id=sl_svn7768_1044
  7665. ><td class="source"> // identical to PGraphics version, but uses POLYGON<br></td></tr
  7666. ><tr
  7667. id=sl_svn7768_1045
  7668. ><td class="source"> // for the fill instead of a TRIANGLE_FAN<br></td></tr
  7669. ><tr
  7670. id=sl_svn7768_1046
  7671. ><td class="source"> float radiusH = w / 2;<br></td></tr
  7672. ><tr
  7673. id=sl_svn7768_1047
  7674. ><td class="source"> float radiusV = h / 2;<br></td></tr
  7675. ><tr
  7676. id=sl_svn7768_1048
  7677. ><td class="source"><br></td></tr
  7678. ><tr
  7679. id=sl_svn7768_1049
  7680. ><td class="source"> float centerX = x + radiusH;<br></td></tr
  7681. ><tr
  7682. id=sl_svn7768_1050
  7683. ><td class="source"> float centerY = y + radiusV;<br></td></tr
  7684. ><tr
  7685. id=sl_svn7768_1051
  7686. ><td class="source"><br></td></tr
  7687. ><tr
  7688. id=sl_svn7768_1052
  7689. ><td class="source"> float sx1 = screenX(x, y);<br></td></tr
  7690. ><tr
  7691. id=sl_svn7768_1053
  7692. ><td class="source"> float sy1 = screenY(x, y);<br></td></tr
  7693. ><tr
  7694. id=sl_svn7768_1054
  7695. ><td class="source"> float sx2 = screenX(x+w, y+h);<br></td></tr
  7696. ><tr
  7697. id=sl_svn7768_1055
  7698. ><td class="source"> float sy2 = screenY(x+w, y+h);<br></td></tr
  7699. ><tr
  7700. id=sl_svn7768_1056
  7701. ><td class="source"> int accuracy = (int) (TWO_PI * PApplet.dist(sx1, sy1, sx2, sy2) / 8);<br></td></tr
  7702. ><tr
  7703. id=sl_svn7768_1057
  7704. ><td class="source"> if (accuracy &lt; 4) return; // don&#39;t bother?<br></td></tr
  7705. ><tr
  7706. id=sl_svn7768_1058
  7707. ><td class="source"> //System.out.println(&quot;diameter &quot; + w + &quot; &quot; + h + &quot; -&gt; &quot; + accuracy);<br></td></tr
  7708. ><tr
  7709. id=sl_svn7768_1059
  7710. ><td class="source"><br></td></tr
  7711. ><tr
  7712. id=sl_svn7768_1060
  7713. ><td class="source"> float inc = (float)SINCOS_LENGTH / accuracy;<br></td></tr
  7714. ><tr
  7715. id=sl_svn7768_1061
  7716. ><td class="source"><br></td></tr
  7717. ><tr
  7718. id=sl_svn7768_1062
  7719. ><td class="source"> float val = 0;<br></td></tr
  7720. ><tr
  7721. id=sl_svn7768_1063
  7722. ><td class="source"><br></td></tr
  7723. ><tr
  7724. id=sl_svn7768_1064
  7725. ><td class="source"> if (fill) {<br></td></tr
  7726. ><tr
  7727. id=sl_svn7768_1065
  7728. ><td class="source"> boolean savedStroke = stroke;<br></td></tr
  7729. ><tr
  7730. id=sl_svn7768_1066
  7731. ><td class="source"> stroke = false;<br></td></tr
  7732. ><tr
  7733. id=sl_svn7768_1067
  7734. ><td class="source"><br></td></tr
  7735. ><tr
  7736. id=sl_svn7768_1068
  7737. ><td class="source"> beginShape();<br></td></tr
  7738. ><tr
  7739. id=sl_svn7768_1069
  7740. ><td class="source"> for (int i = 0; i &lt; accuracy; i++) {<br></td></tr
  7741. ><tr
  7742. id=sl_svn7768_1070
  7743. ><td class="source"> vertex(centerX + cosLUT[(int) val] * radiusH,<br></td></tr
  7744. ><tr
  7745. id=sl_svn7768_1071
  7746. ><td class="source"> centerY + sinLUT[(int) val] * radiusV);<br></td></tr
  7747. ><tr
  7748. id=sl_svn7768_1072
  7749. ><td class="source"> val += inc;<br></td></tr
  7750. ><tr
  7751. id=sl_svn7768_1073
  7752. ><td class="source"> }<br></td></tr
  7753. ><tr
  7754. id=sl_svn7768_1074
  7755. ><td class="source"> endShape(CLOSE);<br></td></tr
  7756. ><tr
  7757. id=sl_svn7768_1075
  7758. ><td class="source"><br></td></tr
  7759. ><tr
  7760. id=sl_svn7768_1076
  7761. ><td class="source"> stroke = savedStroke;<br></td></tr
  7762. ><tr
  7763. id=sl_svn7768_1077
  7764. ><td class="source"> }<br></td></tr
  7765. ><tr
  7766. id=sl_svn7768_1078
  7767. ><td class="source"><br></td></tr
  7768. ><tr
  7769. id=sl_svn7768_1079
  7770. ><td class="source"> if (stroke) {<br></td></tr
  7771. ><tr
  7772. id=sl_svn7768_1080
  7773. ><td class="source"> boolean savedFill = fill;<br></td></tr
  7774. ><tr
  7775. id=sl_svn7768_1081
  7776. ><td class="source"> fill = false;<br></td></tr
  7777. ><tr
  7778. id=sl_svn7768_1082
  7779. ><td class="source"><br></td></tr
  7780. ><tr
  7781. id=sl_svn7768_1083
  7782. ><td class="source"> val = 0;<br></td></tr
  7783. ><tr
  7784. id=sl_svn7768_1084
  7785. ><td class="source"> beginShape();<br></td></tr
  7786. ><tr
  7787. id=sl_svn7768_1085
  7788. ><td class="source"> for (int i = 0; i &lt; accuracy; i++) {<br></td></tr
  7789. ><tr
  7790. id=sl_svn7768_1086
  7791. ><td class="source"> vertex(centerX + cosLUT[(int) val] * radiusH,<br></td></tr
  7792. ><tr
  7793. id=sl_svn7768_1087
  7794. ><td class="source"> centerY + sinLUT[(int) val] * radiusV);<br></td></tr
  7795. ><tr
  7796. id=sl_svn7768_1088
  7797. ><td class="source"> val += inc;<br></td></tr
  7798. ><tr
  7799. id=sl_svn7768_1089
  7800. ><td class="source"> }<br></td></tr
  7801. ><tr
  7802. id=sl_svn7768_1090
  7803. ><td class="source"> endShape(CLOSE);<br></td></tr
  7804. ><tr
  7805. id=sl_svn7768_1091
  7806. ><td class="source"><br></td></tr
  7807. ><tr
  7808. id=sl_svn7768_1092
  7809. ><td class="source"> fill = savedFill;<br></td></tr
  7810. ><tr
  7811. id=sl_svn7768_1093
  7812. ><td class="source"> }<br></td></tr
  7813. ><tr
  7814. id=sl_svn7768_1094
  7815. ><td class="source"> } else {<br></td></tr
  7816. ><tr
  7817. id=sl_svn7768_1095
  7818. ><td class="source"> float hradius = w / 2f;<br></td></tr
  7819. ><tr
  7820. id=sl_svn7768_1096
  7821. ><td class="source"> float vradius = h / 2f;<br></td></tr
  7822. ><tr
  7823. id=sl_svn7768_1097
  7824. ><td class="source"><br></td></tr
  7825. ><tr
  7826. id=sl_svn7768_1098
  7827. ><td class="source"> int centerX = (int) (x + hradius + ctm.m02);<br></td></tr
  7828. ><tr
  7829. id=sl_svn7768_1099
  7830. ><td class="source"> int centerY = (int) (y + vradius + ctm.m12);<br></td></tr
  7831. ><tr
  7832. id=sl_svn7768_1100
  7833. ><td class="source"><br></td></tr
  7834. ><tr
  7835. id=sl_svn7768_1101
  7836. ><td class="source"> int hradiusi = (int) hradius;<br></td></tr
  7837. ><tr
  7838. id=sl_svn7768_1102
  7839. ><td class="source"> int vradiusi = (int) vradius;<br></td></tr
  7840. ><tr
  7841. id=sl_svn7768_1103
  7842. ><td class="source"><br></td></tr
  7843. ><tr
  7844. id=sl_svn7768_1104
  7845. ><td class="source"> if (hradiusi == vradiusi) {<br></td></tr
  7846. ><tr
  7847. id=sl_svn7768_1105
  7848. ><td class="source"> if (fill) flat_circle_fill(centerX, centerY, hradiusi);<br></td></tr
  7849. ><tr
  7850. id=sl_svn7768_1106
  7851. ><td class="source"> if (stroke) flat_circle_stroke(centerX, centerY, hradiusi);<br></td></tr
  7852. ><tr
  7853. id=sl_svn7768_1107
  7854. ><td class="source"><br></td></tr
  7855. ><tr
  7856. id=sl_svn7768_1108
  7857. ><td class="source"> } else {<br></td></tr
  7858. ><tr
  7859. id=sl_svn7768_1109
  7860. ><td class="source"> if (fill) flat_ellipse_internal(centerX, centerY, hradiusi, vradiusi, true);<br></td></tr
  7861. ><tr
  7862. id=sl_svn7768_1110
  7863. ><td class="source"> if (stroke) flat_ellipse_internal(centerX, centerY, hradiusi, vradiusi, false);<br></td></tr
  7864. ><tr
  7865. id=sl_svn7768_1111
  7866. ><td class="source"> }<br></td></tr
  7867. ><tr
  7868. id=sl_svn7768_1112
  7869. ><td class="source"> }<br></td></tr
  7870. ><tr
  7871. id=sl_svn7768_1113
  7872. ><td class="source"> }<br></td></tr
  7873. ><tr
  7874. id=sl_svn7768_1114
  7875. ><td class="source"><br></td></tr
  7876. ><tr
  7877. id=sl_svn7768_1115
  7878. ><td class="source"><br></td></tr
  7879. ><tr
  7880. id=sl_svn7768_1116
  7881. ><td class="source"> /**<br></td></tr
  7882. ><tr
  7883. id=sl_svn7768_1117
  7884. ><td class="source"> * Draw the outline around a flat circle using a bresenham-style<br></td></tr
  7885. ><tr
  7886. id=sl_svn7768_1118
  7887. ><td class="source"> * algorithm. Adapted from drawCircle function in &quot;Computer Graphics<br></td></tr
  7888. ><tr
  7889. id=sl_svn7768_1119
  7890. ><td class="source"> * for Java Programmers&quot; by Leen Ammeraal, p. 110.<br></td></tr
  7891. ><tr
  7892. id=sl_svn7768_1120
  7893. ><td class="source"> * &lt;P/&gt;<br></td></tr
  7894. ><tr
  7895. id=sl_svn7768_1121
  7896. ><td class="source"> * This function is included because the quality is so much better,<br></td></tr
  7897. ><tr
  7898. id=sl_svn7768_1122
  7899. ><td class="source"> * and the drawing significantly faster than with adaptive ellipses<br></td></tr
  7900. ><tr
  7901. id=sl_svn7768_1123
  7902. ><td class="source"> * drawn using the sine/cosine tables.<br></td></tr
  7903. ><tr
  7904. id=sl_svn7768_1124
  7905. ><td class="source"> * &lt;P/&gt;<br></td></tr
  7906. ><tr
  7907. id=sl_svn7768_1125
  7908. ><td class="source"> * Circle quadrants break down like so:<br></td></tr
  7909. ><tr
  7910. id=sl_svn7768_1126
  7911. ><td class="source"> * &lt;PRE&gt;<br></td></tr
  7912. ><tr
  7913. id=sl_svn7768_1127
  7914. ><td class="source"> * |<br></td></tr
  7915. ><tr
  7916. id=sl_svn7768_1128
  7917. ><td class="source"> * \ NNW | NNE /<br></td></tr
  7918. ><tr
  7919. id=sl_svn7768_1129
  7920. ><td class="source"> * \ | /<br></td></tr
  7921. ><tr
  7922. id=sl_svn7768_1130
  7923. ><td class="source"> * WNW \ | / ENE<br></td></tr
  7924. ><tr
  7925. id=sl_svn7768_1131
  7926. ><td class="source"> * -------------------<br></td></tr
  7927. ><tr
  7928. id=sl_svn7768_1132
  7929. ><td class="source"> * WSW / | \ ESE<br></td></tr
  7930. ><tr
  7931. id=sl_svn7768_1133
  7932. ><td class="source"> * / | \<br></td></tr
  7933. ><tr
  7934. id=sl_svn7768_1134
  7935. ><td class="source"> * / SSW | SSE \<br></td></tr
  7936. ><tr
  7937. id=sl_svn7768_1135
  7938. ><td class="source"> * |<br></td></tr
  7939. ><tr
  7940. id=sl_svn7768_1136
  7941. ><td class="source"> * &lt;/PRE&gt;<br></td></tr
  7942. ><tr
  7943. id=sl_svn7768_1137
  7944. ><td class="source"> * @param xc x center<br></td></tr
  7945. ><tr
  7946. id=sl_svn7768_1138
  7947. ><td class="source"> * @param yc y center<br></td></tr
  7948. ><tr
  7949. id=sl_svn7768_1139
  7950. ><td class="source"> * @param r radius<br></td></tr
  7951. ><tr
  7952. id=sl_svn7768_1140
  7953. ><td class="source"> */<br></td></tr
  7954. ><tr
  7955. id=sl_svn7768_1141
  7956. ><td class="source"> private void flat_circle_stroke(int xC, int yC, int r) {<br></td></tr
  7957. ><tr
  7958. id=sl_svn7768_1142
  7959. ><td class="source"> int x = 0, y = r, u = 1, v = 2 * r - 1, E = 0;<br></td></tr
  7960. ><tr
  7961. id=sl_svn7768_1143
  7962. ><td class="source"> while (x &lt; y) {<br></td></tr
  7963. ><tr
  7964. id=sl_svn7768_1144
  7965. ><td class="source"> thin_point(xC + x, yC + y, strokeColor); // NNE<br></td></tr
  7966. ><tr
  7967. id=sl_svn7768_1145
  7968. ><td class="source"> thin_point(xC + y, yC - x, strokeColor); // ESE<br></td></tr
  7969. ><tr
  7970. id=sl_svn7768_1146
  7971. ><td class="source"> thin_point(xC - x, yC - y, strokeColor); // SSW<br></td></tr
  7972. ><tr
  7973. id=sl_svn7768_1147
  7974. ><td class="source"> thin_point(xC - y, yC + x, strokeColor); // WNW<br></td></tr
  7975. ><tr
  7976. id=sl_svn7768_1148
  7977. ><td class="source"><br></td></tr
  7978. ><tr
  7979. id=sl_svn7768_1149
  7980. ><td class="source"> x++; E += u; u += 2;<br></td></tr
  7981. ><tr
  7982. id=sl_svn7768_1150
  7983. ><td class="source"> if (v &lt; 2 * E) {<br></td></tr
  7984. ><tr
  7985. id=sl_svn7768_1151
  7986. ><td class="source"> y--; E -= v; v -= 2;<br></td></tr
  7987. ><tr
  7988. id=sl_svn7768_1152
  7989. ><td class="source"> }<br></td></tr
  7990. ><tr
  7991. id=sl_svn7768_1153
  7992. ><td class="source"> if (x &gt; y) break;<br></td></tr
  7993. ><tr
  7994. id=sl_svn7768_1154
  7995. ><td class="source"><br></td></tr
  7996. ><tr
  7997. id=sl_svn7768_1155
  7998. ><td class="source"> thin_point(xC + y, yC + x, strokeColor); // ENE<br></td></tr
  7999. ><tr
  8000. id=sl_svn7768_1156
  8001. ><td class="source"> thin_point(xC + x, yC - y, strokeColor); // SSE<br></td></tr
  8002. ><tr
  8003. id=sl_svn7768_1157
  8004. ><td class="source"> thin_point(xC - y, yC - x, strokeColor); // WSW<br></td></tr
  8005. ><tr
  8006. id=sl_svn7768_1158
  8007. ><td class="source"> thin_point(xC - x, yC + y, strokeColor); // NNW<br></td></tr
  8008. ><tr
  8009. id=sl_svn7768_1159
  8010. ><td class="source"> }<br></td></tr
  8011. ><tr
  8012. id=sl_svn7768_1160
  8013. ><td class="source"> }<br></td></tr
  8014. ><tr
  8015. id=sl_svn7768_1161
  8016. ><td class="source"><br></td></tr
  8017. ><tr
  8018. id=sl_svn7768_1162
  8019. ><td class="source"><br></td></tr
  8020. ><tr
  8021. id=sl_svn7768_1163
  8022. ><td class="source"> /**<br></td></tr
  8023. ><tr
  8024. id=sl_svn7768_1164
  8025. ><td class="source"> * Heavily adapted version of the above algorithm that handles<br></td></tr
  8026. ><tr
  8027. id=sl_svn7768_1165
  8028. ><td class="source"> * filling the ellipse. Works by drawing from the center and<br></td></tr
  8029. ><tr
  8030. id=sl_svn7768_1166
  8031. ><td class="source"> * outwards to the points themselves. Has to be done this way<br></td></tr
  8032. ><tr
  8033. id=sl_svn7768_1167
  8034. ><td class="source"> * because the values for the points are changed halfway through<br></td></tr
  8035. ><tr
  8036. id=sl_svn7768_1168
  8037. ><td class="source"> * the function, making it impossible to just store a series of<br></td></tr
  8038. ><tr
  8039. id=sl_svn7768_1169
  8040. ><td class="source"> * left and right edges to be drawn more quickly.<br></td></tr
  8041. ><tr
  8042. id=sl_svn7768_1170
  8043. ><td class="source"> *<br></td></tr
  8044. ><tr
  8045. id=sl_svn7768_1171
  8046. ><td class="source"> * @param xc x center<br></td></tr
  8047. ><tr
  8048. id=sl_svn7768_1172
  8049. ><td class="source"> * @param yc y center<br></td></tr
  8050. ><tr
  8051. id=sl_svn7768_1173
  8052. ><td class="source"> * @param r radius<br></td></tr
  8053. ><tr
  8054. id=sl_svn7768_1174
  8055. ><td class="source"> */<br></td></tr
  8056. ><tr
  8057. id=sl_svn7768_1175
  8058. ><td class="source"> private void flat_circle_fill(int xc, int yc, int r) {<br></td></tr
  8059. ><tr
  8060. id=sl_svn7768_1176
  8061. ><td class="source"> int x = 0, y = r, u = 1, v = 2 * r - 1, E = 0;<br></td></tr
  8062. ><tr
  8063. id=sl_svn7768_1177
  8064. ><td class="source"> while (x &lt; y) {<br></td></tr
  8065. ><tr
  8066. id=sl_svn7768_1178
  8067. ><td class="source"> for (int xx = xc; xx &lt; xc + x; xx++) { // NNE<br></td></tr
  8068. ><tr
  8069. id=sl_svn7768_1179
  8070. ><td class="source"> thin_point(xx, yc + y, fillColor);<br></td></tr
  8071. ><tr
  8072. id=sl_svn7768_1180
  8073. ><td class="source"> }<br></td></tr
  8074. ><tr
  8075. id=sl_svn7768_1181
  8076. ><td class="source"> for (int xx = xc; xx &lt; xc + y; xx++) { // ESE<br></td></tr
  8077. ><tr
  8078. id=sl_svn7768_1182
  8079. ><td class="source"> thin_point(xx, yc - x, fillColor);<br></td></tr
  8080. ><tr
  8081. id=sl_svn7768_1183
  8082. ><td class="source"> }<br></td></tr
  8083. ><tr
  8084. id=sl_svn7768_1184
  8085. ><td class="source"> for (int xx = xc - x; xx &lt; xc; xx++) { // SSW<br></td></tr
  8086. ><tr
  8087. id=sl_svn7768_1185
  8088. ><td class="source"> thin_point(xx, yc - y, fillColor);<br></td></tr
  8089. ><tr
  8090. id=sl_svn7768_1186
  8091. ><td class="source"> }<br></td></tr
  8092. ><tr
  8093. id=sl_svn7768_1187
  8094. ><td class="source"> for (int xx = xc - y; xx &lt; xc; xx++) { // WNW<br></td></tr
  8095. ><tr
  8096. id=sl_svn7768_1188
  8097. ><td class="source"> thin_point(xx, yc + x, fillColor);<br></td></tr
  8098. ><tr
  8099. id=sl_svn7768_1189
  8100. ><td class="source"> }<br></td></tr
  8101. ><tr
  8102. id=sl_svn7768_1190
  8103. ><td class="source"><br></td></tr
  8104. ><tr
  8105. id=sl_svn7768_1191
  8106. ><td class="source"> x++; E += u; u += 2;<br></td></tr
  8107. ><tr
  8108. id=sl_svn7768_1192
  8109. ><td class="source"> if (v &lt; 2 * E) {<br></td></tr
  8110. ><tr
  8111. id=sl_svn7768_1193
  8112. ><td class="source"> y--; E -= v; v -= 2;<br></td></tr
  8113. ><tr
  8114. id=sl_svn7768_1194
  8115. ><td class="source"> }<br></td></tr
  8116. ><tr
  8117. id=sl_svn7768_1195
  8118. ><td class="source"> if (x &gt; y) break;<br></td></tr
  8119. ><tr
  8120. id=sl_svn7768_1196
  8121. ><td class="source"><br></td></tr
  8122. ><tr
  8123. id=sl_svn7768_1197
  8124. ><td class="source"> for (int xx = xc; xx &lt; xc + y; xx++) { // ENE<br></td></tr
  8125. ><tr
  8126. id=sl_svn7768_1198
  8127. ><td class="source"> thin_point(xx, yc + x, fillColor);<br></td></tr
  8128. ><tr
  8129. id=sl_svn7768_1199
  8130. ><td class="source"> }<br></td></tr
  8131. ><tr
  8132. id=sl_svn7768_1200
  8133. ><td class="source"> for (int xx = xc; xx &lt; xc + x; xx++) { // SSE<br></td></tr
  8134. ><tr
  8135. id=sl_svn7768_1201
  8136. ><td class="source"> thin_point(xx, yc - y, fillColor);<br></td></tr
  8137. ><tr
  8138. id=sl_svn7768_1202
  8139. ><td class="source"> }<br></td></tr
  8140. ><tr
  8141. id=sl_svn7768_1203
  8142. ><td class="source"> for (int xx = xc - y; xx &lt; xc; xx++) { // WSW<br></td></tr
  8143. ><tr
  8144. id=sl_svn7768_1204
  8145. ><td class="source"> thin_point(xx, yc - x, fillColor);<br></td></tr
  8146. ><tr
  8147. id=sl_svn7768_1205
  8148. ><td class="source"> }<br></td></tr
  8149. ><tr
  8150. id=sl_svn7768_1206
  8151. ><td class="source"> for (int xx = xc - x; xx &lt; xc; xx++) { // NNW<br></td></tr
  8152. ><tr
  8153. id=sl_svn7768_1207
  8154. ><td class="source"> thin_point(xx, yc + y, fillColor);<br></td></tr
  8155. ><tr
  8156. id=sl_svn7768_1208
  8157. ><td class="source"> }<br></td></tr
  8158. ><tr
  8159. id=sl_svn7768_1209
  8160. ><td class="source"> }<br></td></tr
  8161. ><tr
  8162. id=sl_svn7768_1210
  8163. ><td class="source"> }<br></td></tr
  8164. ><tr
  8165. id=sl_svn7768_1211
  8166. ><td class="source"><br></td></tr
  8167. ><tr
  8168. id=sl_svn7768_1212
  8169. ><td class="source"><br></td></tr
  8170. ><tr
  8171. id=sl_svn7768_1213
  8172. ><td class="source"> // unfortunately this can&#39;t handle fill and stroke simultaneously,<br></td></tr
  8173. ><tr
  8174. id=sl_svn7768_1214
  8175. ><td class="source"> // because the fill will later replace some of the stroke points<br></td></tr
  8176. ><tr
  8177. id=sl_svn7768_1215
  8178. ><td class="source"><br></td></tr
  8179. ><tr
  8180. id=sl_svn7768_1216
  8181. ><td class="source"> private final void flat_ellipse_symmetry(int centerX, int centerY,<br></td></tr
  8182. ><tr
  8183. id=sl_svn7768_1217
  8184. ><td class="source"> int ellipseX, int ellipseY,<br></td></tr
  8185. ><tr
  8186. id=sl_svn7768_1218
  8187. ><td class="source"> boolean filling) {<br></td></tr
  8188. ><tr
  8189. id=sl_svn7768_1219
  8190. ><td class="source"> if (filling) {<br></td></tr
  8191. ><tr
  8192. id=sl_svn7768_1220
  8193. ><td class="source"> for (int i = centerX - ellipseX + 1; i &lt; centerX + ellipseX; i++) {<br></td></tr
  8194. ><tr
  8195. id=sl_svn7768_1221
  8196. ><td class="source"> thin_point(i, centerY - ellipseY, fillColor);<br></td></tr
  8197. ><tr
  8198. id=sl_svn7768_1222
  8199. ><td class="source"> thin_point(i, centerY + ellipseY, fillColor);<br></td></tr
  8200. ><tr
  8201. id=sl_svn7768_1223
  8202. ><td class="source"> }<br></td></tr
  8203. ><tr
  8204. id=sl_svn7768_1224
  8205. ><td class="source"> } else {<br></td></tr
  8206. ><tr
  8207. id=sl_svn7768_1225
  8208. ><td class="source"> thin_point(centerX - ellipseX, centerY + ellipseY, strokeColor);<br></td></tr
  8209. ><tr
  8210. id=sl_svn7768_1226
  8211. ><td class="source"> thin_point(centerX + ellipseX, centerY + ellipseY, strokeColor);<br></td></tr
  8212. ><tr
  8213. id=sl_svn7768_1227
  8214. ><td class="source"> thin_point(centerX - ellipseX, centerY - ellipseY, strokeColor);<br></td></tr
  8215. ><tr
  8216. id=sl_svn7768_1228
  8217. ><td class="source"> thin_point(centerX + ellipseX, centerY - ellipseY, strokeColor);<br></td></tr
  8218. ><tr
  8219. id=sl_svn7768_1229
  8220. ><td class="source"> }<br></td></tr
  8221. ><tr
  8222. id=sl_svn7768_1230
  8223. ><td class="source"> }<br></td></tr
  8224. ><tr
  8225. id=sl_svn7768_1231
  8226. ><td class="source"><br></td></tr
  8227. ><tr
  8228. id=sl_svn7768_1232
  8229. ><td class="source"><br></td></tr
  8230. ><tr
  8231. id=sl_svn7768_1233
  8232. ><td class="source"> /**<br></td></tr
  8233. ><tr
  8234. id=sl_svn7768_1234
  8235. ><td class="source"> * Bresenham-style ellipse drawing function, adapted from a posting to<br></td></tr
  8236. ><tr
  8237. id=sl_svn7768_1235
  8238. ><td class="source"> * comp.graphics.algortihms.<br></td></tr
  8239. ><tr
  8240. id=sl_svn7768_1236
  8241. ><td class="source"> *<br></td></tr
  8242. ><tr
  8243. id=sl_svn7768_1237
  8244. ><td class="source"> * This function is included because the quality is so much better,<br></td></tr
  8245. ><tr
  8246. id=sl_svn7768_1238
  8247. ><td class="source"> * and the drawing significantly faster than with adaptive ellipses<br></td></tr
  8248. ><tr
  8249. id=sl_svn7768_1239
  8250. ><td class="source"> * drawn using the sine/cosine tables.<br></td></tr
  8251. ><tr
  8252. id=sl_svn7768_1240
  8253. ><td class="source"> *<br></td></tr
  8254. ><tr
  8255. id=sl_svn7768_1241
  8256. ><td class="source"> * @param centerX x coordinate of the center<br></td></tr
  8257. ><tr
  8258. id=sl_svn7768_1242
  8259. ><td class="source"> * @param centerY y coordinate of the center<br></td></tr
  8260. ><tr
  8261. id=sl_svn7768_1243
  8262. ><td class="source"> * @param a horizontal radius<br></td></tr
  8263. ><tr
  8264. id=sl_svn7768_1244
  8265. ><td class="source"> * @param b vertical radius<br></td></tr
  8266. ><tr
  8267. id=sl_svn7768_1245
  8268. ><td class="source"> */<br></td></tr
  8269. ><tr
  8270. id=sl_svn7768_1246
  8271. ><td class="source"> private void flat_ellipse_internal(int centerX, int centerY,<br></td></tr
  8272. ><tr
  8273. id=sl_svn7768_1247
  8274. ><td class="source"> int a, int b, boolean filling) {<br></td></tr
  8275. ><tr
  8276. id=sl_svn7768_1248
  8277. ><td class="source"> int x, y, a2, b2, s, t;<br></td></tr
  8278. ><tr
  8279. id=sl_svn7768_1249
  8280. ><td class="source"><br></td></tr
  8281. ><tr
  8282. id=sl_svn7768_1250
  8283. ><td class="source"> a2 = a*a;<br></td></tr
  8284. ><tr
  8285. id=sl_svn7768_1251
  8286. ><td class="source"> b2 = b*b;<br></td></tr
  8287. ><tr
  8288. id=sl_svn7768_1252
  8289. ><td class="source"> x = 0;<br></td></tr
  8290. ><tr
  8291. id=sl_svn7768_1253
  8292. ><td class="source"> y = b;<br></td></tr
  8293. ><tr
  8294. id=sl_svn7768_1254
  8295. ><td class="source"> s = a2*(1-2*b) + 2*b2;<br></td></tr
  8296. ><tr
  8297. id=sl_svn7768_1255
  8298. ><td class="source"> t = b2 - 2*a2*(2*b-1);<br></td></tr
  8299. ><tr
  8300. id=sl_svn7768_1256
  8301. ><td class="source"> flat_ellipse_symmetry(centerX, centerY, x, y, filling);<br></td></tr
  8302. ><tr
  8303. id=sl_svn7768_1257
  8304. ><td class="source"><br></td></tr
  8305. ><tr
  8306. id=sl_svn7768_1258
  8307. ><td class="source"> do {<br></td></tr
  8308. ><tr
  8309. id=sl_svn7768_1259
  8310. ><td class="source"> if (s &lt; 0) {<br></td></tr
  8311. ><tr
  8312. id=sl_svn7768_1260
  8313. ><td class="source"> s += 2*b2*(2*x+3);<br></td></tr
  8314. ><tr
  8315. id=sl_svn7768_1261
  8316. ><td class="source"> t += 4*b2*(x+1);<br></td></tr
  8317. ><tr
  8318. id=sl_svn7768_1262
  8319. ><td class="source"> x++;<br></td></tr
  8320. ><tr
  8321. id=sl_svn7768_1263
  8322. ><td class="source"> } else if (t &lt; 0) {<br></td></tr
  8323. ><tr
  8324. id=sl_svn7768_1264
  8325. ><td class="source"> s += 2*b2*(2*x+3) - 4*a2*(y-1);<br></td></tr
  8326. ><tr
  8327. id=sl_svn7768_1265
  8328. ><td class="source"> t += 4*b2*(x+1) - 2*a2*(2*y-3);<br></td></tr
  8329. ><tr
  8330. id=sl_svn7768_1266
  8331. ><td class="source"> x++;<br></td></tr
  8332. ><tr
  8333. id=sl_svn7768_1267
  8334. ><td class="source"> y--;<br></td></tr
  8335. ><tr
  8336. id=sl_svn7768_1268
  8337. ><td class="source"> } else {<br></td></tr
  8338. ><tr
  8339. id=sl_svn7768_1269
  8340. ><td class="source"> s -= 4*a2*(y-1);<br></td></tr
  8341. ><tr
  8342. id=sl_svn7768_1270
  8343. ><td class="source"> t -= 2*a2*(2*y-3);<br></td></tr
  8344. ><tr
  8345. id=sl_svn7768_1271
  8346. ><td class="source"> y--;<br></td></tr
  8347. ><tr
  8348. id=sl_svn7768_1272
  8349. ><td class="source"> }<br></td></tr
  8350. ><tr
  8351. id=sl_svn7768_1273
  8352. ><td class="source"> flat_ellipse_symmetry(centerX, centerY, x, y, filling);<br></td></tr
  8353. ><tr
  8354. id=sl_svn7768_1274
  8355. ><td class="source"><br></td></tr
  8356. ><tr
  8357. id=sl_svn7768_1275
  8358. ><td class="source"> } while (y &gt; 0);<br></td></tr
  8359. ><tr
  8360. id=sl_svn7768_1276
  8361. ><td class="source"> }<br></td></tr
  8362. ><tr
  8363. id=sl_svn7768_1277
  8364. ><td class="source"><br></td></tr
  8365. ><tr
  8366. id=sl_svn7768_1278
  8367. ><td class="source"><br></td></tr
  8368. ><tr
  8369. id=sl_svn7768_1279
  8370. ><td class="source"> // TODO really need a decent arc function in here..<br></td></tr
  8371. ><tr
  8372. id=sl_svn7768_1280
  8373. ><td class="source"><br></td></tr
  8374. ><tr
  8375. id=sl_svn7768_1281
  8376. ><td class="source"> protected void arcImpl(float x, float y, float w, float h,<br></td></tr
  8377. ><tr
  8378. id=sl_svn7768_1282
  8379. ><td class="source"> float start, float stop) {<br></td></tr
  8380. ><tr
  8381. id=sl_svn7768_1283
  8382. ><td class="source"> float hr = w / 2f;<br></td></tr
  8383. ><tr
  8384. id=sl_svn7768_1284
  8385. ><td class="source"> float vr = h / 2f;<br></td></tr
  8386. ><tr
  8387. id=sl_svn7768_1285
  8388. ><td class="source"><br></td></tr
  8389. ><tr
  8390. id=sl_svn7768_1286
  8391. ><td class="source"> float centerX = x + hr;<br></td></tr
  8392. ><tr
  8393. id=sl_svn7768_1287
  8394. ><td class="source"> float centerY = y + vr;<br></td></tr
  8395. ><tr
  8396. id=sl_svn7768_1288
  8397. ><td class="source"><br></td></tr
  8398. ><tr
  8399. id=sl_svn7768_1289
  8400. ><td class="source"> if (fill) {<br></td></tr
  8401. ><tr
  8402. id=sl_svn7768_1290
  8403. ><td class="source"> // shut off stroke for a minute<br></td></tr
  8404. ><tr
  8405. id=sl_svn7768_1291
  8406. ><td class="source"> boolean savedStroke = stroke;<br></td></tr
  8407. ><tr
  8408. id=sl_svn7768_1292
  8409. ><td class="source"> stroke = false;<br></td></tr
  8410. ><tr
  8411. id=sl_svn7768_1293
  8412. ><td class="source"><br></td></tr
  8413. ><tr
  8414. id=sl_svn7768_1294
  8415. ><td class="source"> int startLUT = (int) (-0.5f + (start / TWO_PI) * SINCOS_LENGTH);<br></td></tr
  8416. ><tr
  8417. id=sl_svn7768_1295
  8418. ><td class="source"> int stopLUT = (int) (0.5f + (stop / TWO_PI) * SINCOS_LENGTH);<br></td></tr
  8419. ><tr
  8420. id=sl_svn7768_1296
  8421. ><td class="source"><br></td></tr
  8422. ><tr
  8423. id=sl_svn7768_1297
  8424. ><td class="source"> beginShape();<br></td></tr
  8425. ><tr
  8426. id=sl_svn7768_1298
  8427. ><td class="source"> vertex(centerX, centerY);<br></td></tr
  8428. ><tr
  8429. id=sl_svn7768_1299
  8430. ><td class="source"> for (int i = startLUT; i &lt; stopLUT; i++) {<br></td></tr
  8431. ><tr
  8432. id=sl_svn7768_1300
  8433. ><td class="source"> int ii = i % SINCOS_LENGTH;<br></td></tr
  8434. ><tr
  8435. id=sl_svn7768_1301
  8436. ><td class="source"> // modulo won&#39;t make the value positive<br></td></tr
  8437. ><tr
  8438. id=sl_svn7768_1302
  8439. ><td class="source"> if (ii &lt; 0) ii += SINCOS_LENGTH;<br></td></tr
  8440. ><tr
  8441. id=sl_svn7768_1303
  8442. ><td class="source"> vertex(centerX + cosLUT[ii] * hr,<br></td></tr
  8443. ><tr
  8444. id=sl_svn7768_1304
  8445. ><td class="source"> centerY + sinLUT[ii] * vr);<br></td></tr
  8446. ><tr
  8447. id=sl_svn7768_1305
  8448. ><td class="source"> }<br></td></tr
  8449. ><tr
  8450. id=sl_svn7768_1306
  8451. ><td class="source"> endShape(CLOSE);<br></td></tr
  8452. ><tr
  8453. id=sl_svn7768_1307
  8454. ><td class="source"><br></td></tr
  8455. ><tr
  8456. id=sl_svn7768_1308
  8457. ><td class="source"> stroke = savedStroke;<br></td></tr
  8458. ><tr
  8459. id=sl_svn7768_1309
  8460. ><td class="source"> }<br></td></tr
  8461. ><tr
  8462. id=sl_svn7768_1310
  8463. ><td class="source"><br></td></tr
  8464. ><tr
  8465. id=sl_svn7768_1311
  8466. ><td class="source"> if (stroke) {<br></td></tr
  8467. ><tr
  8468. id=sl_svn7768_1312
  8469. ><td class="source"> // Almost identical to above, but this uses a LINE_STRIP<br></td></tr
  8470. ><tr
  8471. id=sl_svn7768_1313
  8472. ><td class="source"> // and doesn&#39;t include the first (center) vertex.<br></td></tr
  8473. ><tr
  8474. id=sl_svn7768_1314
  8475. ><td class="source"><br></td></tr
  8476. ><tr
  8477. id=sl_svn7768_1315
  8478. ><td class="source"> boolean savedFill = fill;<br></td></tr
  8479. ><tr
  8480. id=sl_svn7768_1316
  8481. ><td class="source"> fill = false;<br></td></tr
  8482. ><tr
  8483. id=sl_svn7768_1317
  8484. ><td class="source"><br></td></tr
  8485. ><tr
  8486. id=sl_svn7768_1318
  8487. ><td class="source"> int startLUT = (int) (0.5f + (start / TWO_PI) * SINCOS_LENGTH);<br></td></tr
  8488. ><tr
  8489. id=sl_svn7768_1319
  8490. ><td class="source"> int stopLUT = (int) (0.5f + (stop / TWO_PI) * SINCOS_LENGTH);<br></td></tr
  8491. ><tr
  8492. id=sl_svn7768_1320
  8493. ><td class="source"><br></td></tr
  8494. ><tr
  8495. id=sl_svn7768_1321
  8496. ><td class="source"> beginShape(); //LINE_STRIP);<br></td></tr
  8497. ><tr
  8498. id=sl_svn7768_1322
  8499. ><td class="source"> int increment = 1; // what&#39;s a good algorithm? stopLUT - startLUT;<br></td></tr
  8500. ><tr
  8501. id=sl_svn7768_1323
  8502. ><td class="source"> for (int i = startLUT; i &lt; stopLUT; i += increment) {<br></td></tr
  8503. ><tr
  8504. id=sl_svn7768_1324
  8505. ><td class="source"> int ii = i % SINCOS_LENGTH;<br></td></tr
  8506. ><tr
  8507. id=sl_svn7768_1325
  8508. ><td class="source"> if (ii &lt; 0) ii += SINCOS_LENGTH;<br></td></tr
  8509. ><tr
  8510. id=sl_svn7768_1326
  8511. ><td class="source"> vertex(centerX + cosLUT[ii] * hr,<br></td></tr
  8512. ><tr
  8513. id=sl_svn7768_1327
  8514. ><td class="source"> centerY + sinLUT[ii] * vr);<br></td></tr
  8515. ><tr
  8516. id=sl_svn7768_1328
  8517. ><td class="source"> }<br></td></tr
  8518. ><tr
  8519. id=sl_svn7768_1329
  8520. ><td class="source"> // draw last point explicitly for accuracy<br></td></tr
  8521. ><tr
  8522. id=sl_svn7768_1330
  8523. ><td class="source"> vertex(centerX + cosLUT[stopLUT % SINCOS_LENGTH] * hr,<br></td></tr
  8524. ><tr
  8525. id=sl_svn7768_1331
  8526. ><td class="source"> centerY + sinLUT[stopLUT % SINCOS_LENGTH] * vr);<br></td></tr
  8527. ><tr
  8528. id=sl_svn7768_1332
  8529. ><td class="source"> endShape();<br></td></tr
  8530. ><tr
  8531. id=sl_svn7768_1333
  8532. ><td class="source"><br></td></tr
  8533. ><tr
  8534. id=sl_svn7768_1334
  8535. ><td class="source"> fill = savedFill;<br></td></tr
  8536. ><tr
  8537. id=sl_svn7768_1335
  8538. ><td class="source"> }<br></td></tr
  8539. ><tr
  8540. id=sl_svn7768_1336
  8541. ><td class="source"> }<br></td></tr
  8542. ><tr
  8543. id=sl_svn7768_1337
  8544. ><td class="source"><br></td></tr
  8545. ><tr
  8546. id=sl_svn7768_1338
  8547. ><td class="source"><br></td></tr
  8548. ><tr
  8549. id=sl_svn7768_1339
  8550. ><td class="source"><br></td></tr
  8551. ><tr
  8552. id=sl_svn7768_1340
  8553. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  8554. ><tr
  8555. id=sl_svn7768_1341
  8556. ><td class="source"><br></td></tr
  8557. ><tr
  8558. id=sl_svn7768_1342
  8559. ><td class="source"> // BOX<br></td></tr
  8560. ><tr
  8561. id=sl_svn7768_1343
  8562. ><td class="source"><br></td></tr
  8563. ><tr
  8564. id=sl_svn7768_1344
  8565. ><td class="source"><br></td></tr
  8566. ><tr
  8567. id=sl_svn7768_1345
  8568. ><td class="source"> public void box(float size) {<br></td></tr
  8569. ><tr
  8570. id=sl_svn7768_1346
  8571. ><td class="source"> showDepthWarning(&quot;box&quot;);<br></td></tr
  8572. ><tr
  8573. id=sl_svn7768_1347
  8574. ><td class="source"> }<br></td></tr
  8575. ><tr
  8576. id=sl_svn7768_1348
  8577. ><td class="source"><br></td></tr
  8578. ><tr
  8579. id=sl_svn7768_1349
  8580. ><td class="source"> public void box(float w, float h, float d) {<br></td></tr
  8581. ><tr
  8582. id=sl_svn7768_1350
  8583. ><td class="source"> showDepthWarning(&quot;box&quot;);<br></td></tr
  8584. ><tr
  8585. id=sl_svn7768_1351
  8586. ><td class="source"> }<br></td></tr
  8587. ><tr
  8588. id=sl_svn7768_1352
  8589. ><td class="source"><br></td></tr
  8590. ><tr
  8591. id=sl_svn7768_1353
  8592. ><td class="source"><br></td></tr
  8593. ><tr
  8594. id=sl_svn7768_1354
  8595. ><td class="source"><br></td></tr
  8596. ><tr
  8597. id=sl_svn7768_1355
  8598. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  8599. ><tr
  8600. id=sl_svn7768_1356
  8601. ><td class="source"><br></td></tr
  8602. ><tr
  8603. id=sl_svn7768_1357
  8604. ><td class="source"> // SPHERE<br></td></tr
  8605. ><tr
  8606. id=sl_svn7768_1358
  8607. ><td class="source"><br></td></tr
  8608. ><tr
  8609. id=sl_svn7768_1359
  8610. ><td class="source"><br></td></tr
  8611. ><tr
  8612. id=sl_svn7768_1360
  8613. ><td class="source"> public void sphereDetail(int res) {<br></td></tr
  8614. ><tr
  8615. id=sl_svn7768_1361
  8616. ><td class="source"> showDepthWarning(&quot;sphereDetail&quot;);<br></td></tr
  8617. ><tr
  8618. id=sl_svn7768_1362
  8619. ><td class="source"> }<br></td></tr
  8620. ><tr
  8621. id=sl_svn7768_1363
  8622. ><td class="source"><br></td></tr
  8623. ><tr
  8624. id=sl_svn7768_1364
  8625. ><td class="source"> public void sphereDetail(int ures, int vres) {<br></td></tr
  8626. ><tr
  8627. id=sl_svn7768_1365
  8628. ><td class="source"> showDepthWarning(&quot;sphereDetail&quot;);<br></td></tr
  8629. ><tr
  8630. id=sl_svn7768_1366
  8631. ><td class="source"> }<br></td></tr
  8632. ><tr
  8633. id=sl_svn7768_1367
  8634. ><td class="source"><br></td></tr
  8635. ><tr
  8636. id=sl_svn7768_1368
  8637. ><td class="source"> public void sphere(float r) {<br></td></tr
  8638. ><tr
  8639. id=sl_svn7768_1369
  8640. ><td class="source"> showDepthWarning(&quot;sphere&quot;);<br></td></tr
  8641. ><tr
  8642. id=sl_svn7768_1370
  8643. ><td class="source"> }<br></td></tr
  8644. ><tr
  8645. id=sl_svn7768_1371
  8646. ><td class="source"><br></td></tr
  8647. ><tr
  8648. id=sl_svn7768_1372
  8649. ><td class="source"><br></td></tr
  8650. ><tr
  8651. id=sl_svn7768_1373
  8652. ><td class="source"><br></td></tr
  8653. ><tr
  8654. id=sl_svn7768_1374
  8655. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  8656. ><tr
  8657. id=sl_svn7768_1375
  8658. ><td class="source"><br></td></tr
  8659. ><tr
  8660. id=sl_svn7768_1376
  8661. ><td class="source"> // BEZIER &amp; CURVE<br></td></tr
  8662. ><tr
  8663. id=sl_svn7768_1377
  8664. ><td class="source"><br></td></tr
  8665. ><tr
  8666. id=sl_svn7768_1378
  8667. ><td class="source"><br></td></tr
  8668. ><tr
  8669. id=sl_svn7768_1379
  8670. ><td class="source"> public void bezier(float x1, float y1, float z1,<br></td></tr
  8671. ><tr
  8672. id=sl_svn7768_1380
  8673. ><td class="source"> float x2, float y2, float z2,<br></td></tr
  8674. ><tr
  8675. id=sl_svn7768_1381
  8676. ><td class="source"> float x3, float y3, float z3,<br></td></tr
  8677. ><tr
  8678. id=sl_svn7768_1382
  8679. ><td class="source"> float x4, float y4, float z4) {<br></td></tr
  8680. ><tr
  8681. id=sl_svn7768_1383
  8682. ><td class="source"> showDepthWarningXYZ(&quot;bezier&quot;);<br></td></tr
  8683. ><tr
  8684. id=sl_svn7768_1384
  8685. ><td class="source"> }<br></td></tr
  8686. ><tr
  8687. id=sl_svn7768_1385
  8688. ><td class="source"><br></td></tr
  8689. ><tr
  8690. id=sl_svn7768_1386
  8691. ><td class="source"><br></td></tr
  8692. ><tr
  8693. id=sl_svn7768_1387
  8694. ><td class="source"> public void curve(float x1, float y1, float z1,<br></td></tr
  8695. ><tr
  8696. id=sl_svn7768_1388
  8697. ><td class="source"> float x2, float y2, float z2,<br></td></tr
  8698. ><tr
  8699. id=sl_svn7768_1389
  8700. ><td class="source"> float x3, float y3, float z3,<br></td></tr
  8701. ><tr
  8702. id=sl_svn7768_1390
  8703. ><td class="source"> float x4, float y4, float z4) {<br></td></tr
  8704. ><tr
  8705. id=sl_svn7768_1391
  8706. ><td class="source"> showDepthWarningXYZ(&quot;curve&quot;);<br></td></tr
  8707. ><tr
  8708. id=sl_svn7768_1392
  8709. ><td class="source"> }<br></td></tr
  8710. ><tr
  8711. id=sl_svn7768_1393
  8712. ><td class="source"><br></td></tr
  8713. ><tr
  8714. id=sl_svn7768_1394
  8715. ><td class="source"><br></td></tr
  8716. ><tr
  8717. id=sl_svn7768_1395
  8718. ><td class="source"><br></td></tr
  8719. ><tr
  8720. id=sl_svn7768_1396
  8721. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  8722. ><tr
  8723. id=sl_svn7768_1397
  8724. ><td class="source"><br></td></tr
  8725. ><tr
  8726. id=sl_svn7768_1398
  8727. ><td class="source"> // IMAGE<br></td></tr
  8728. ><tr
  8729. id=sl_svn7768_1399
  8730. ><td class="source"><br></td></tr
  8731. ><tr
  8732. id=sl_svn7768_1400
  8733. ><td class="source"><br></td></tr
  8734. ><tr
  8735. id=sl_svn7768_1401
  8736. ><td class="source"> protected void imageImpl(PImage image,<br></td></tr
  8737. ><tr
  8738. id=sl_svn7768_1402
  8739. ><td class="source"> float x1, float y1, float x2, float y2,<br></td></tr
  8740. ><tr
  8741. id=sl_svn7768_1403
  8742. ><td class="source"> int u1, int v1, int u2, int v2) {<br></td></tr
  8743. ><tr
  8744. id=sl_svn7768_1404
  8745. ><td class="source"> if ((x2 - x1 == image.width) &amp;&amp;<br></td></tr
  8746. ><tr
  8747. id=sl_svn7768_1405
  8748. ><td class="source"> (y2 - y1 == image.height) &amp;&amp;<br></td></tr
  8749. ><tr
  8750. id=sl_svn7768_1406
  8751. ><td class="source"> !tint &amp;&amp; !ctm.isWarped()) {<br></td></tr
  8752. ><tr
  8753. id=sl_svn7768_1407
  8754. ><td class="source"> simple_image(image, (int) (x1 + ctm.m02), (int) (y1 + ctm.m12), u1, v1, u2, v2);<br></td></tr
  8755. ><tr
  8756. id=sl_svn7768_1408
  8757. ><td class="source"><br></td></tr
  8758. ><tr
  8759. id=sl_svn7768_1409
  8760. ><td class="source"> } else {<br></td></tr
  8761. ><tr
  8762. id=sl_svn7768_1410
  8763. ><td class="source"> super.imageImpl(image, x1, y1, x2, y2, u1, v1, u2, v2);<br></td></tr
  8764. ><tr
  8765. id=sl_svn7768_1411
  8766. ><td class="source"> }<br></td></tr
  8767. ><tr
  8768. id=sl_svn7768_1412
  8769. ><td class="source"> }<br></td></tr
  8770. ><tr
  8771. id=sl_svn7768_1413
  8772. ><td class="source"><br></td></tr
  8773. ><tr
  8774. id=sl_svn7768_1414
  8775. ><td class="source"><br></td></tr
  8776. ><tr
  8777. id=sl_svn7768_1415
  8778. ><td class="source"> /**<br></td></tr
  8779. ><tr
  8780. id=sl_svn7768_1416
  8781. ><td class="source"> * Image drawn in flat &quot;screen space&quot;, with no scaling or warping.<br></td></tr
  8782. ><tr
  8783. id=sl_svn7768_1417
  8784. ><td class="source"> * this is so common that a special routine is included for it,<br></td></tr
  8785. ><tr
  8786. id=sl_svn7768_1418
  8787. ><td class="source"> * because the alternative is much slower.<br></td></tr
  8788. ><tr
  8789. id=sl_svn7768_1419
  8790. ><td class="source"> *<br></td></tr
  8791. ><tr
  8792. id=sl_svn7768_1420
  8793. ><td class="source"> * @param image image to be drawn<br></td></tr
  8794. ><tr
  8795. id=sl_svn7768_1421
  8796. ><td class="source"> * @param sx1 x coordinate of upper-lefthand corner in screen space<br></td></tr
  8797. ><tr
  8798. id=sl_svn7768_1422
  8799. ><td class="source"> * @param sy1 y coordinate of upper-lefthand corner in screen space<br></td></tr
  8800. ><tr
  8801. id=sl_svn7768_1423
  8802. ><td class="source"> */<br></td></tr
  8803. ><tr
  8804. id=sl_svn7768_1424
  8805. ><td class="source"> private void simple_image(PImage image, int sx1, int sy1,<br></td></tr
  8806. ><tr
  8807. id=sl_svn7768_1425
  8808. ><td class="source"> int ix1, int iy1, int ix2, int iy2) {<br></td></tr
  8809. ><tr
  8810. id=sl_svn7768_1426
  8811. ><td class="source"> int sx2 = sx1 + image.width;<br></td></tr
  8812. ><tr
  8813. id=sl_svn7768_1427
  8814. ><td class="source"> int sy2 = sy1 + image.height;<br></td></tr
  8815. ><tr
  8816. id=sl_svn7768_1428
  8817. ><td class="source"><br></td></tr
  8818. ><tr
  8819. id=sl_svn7768_1429
  8820. ><td class="source"> // don&#39;t draw if completely offscreen<br></td></tr
  8821. ><tr
  8822. id=sl_svn7768_1430
  8823. ><td class="source"> // (without this check, ArrayIndexOutOfBoundsException)<br></td></tr
  8824. ><tr
  8825. id=sl_svn7768_1431
  8826. ><td class="source"> if ((sx1 &gt; width1) || (sx2 &lt; 0) ||<br></td></tr
  8827. ><tr
  8828. id=sl_svn7768_1432
  8829. ><td class="source"> (sy1 &gt; height1) || (sy2 &lt; 0)) return;<br></td></tr
  8830. ><tr
  8831. id=sl_svn7768_1433
  8832. ><td class="source"><br></td></tr
  8833. ><tr
  8834. id=sl_svn7768_1434
  8835. ><td class="source"> if (sx1 &lt; 0) { // off left edge<br></td></tr
  8836. ><tr
  8837. id=sl_svn7768_1435
  8838. ><td class="source"> ix1 -= sx1;<br></td></tr
  8839. ><tr
  8840. id=sl_svn7768_1436
  8841. ><td class="source"> sx1 = 0;<br></td></tr
  8842. ><tr
  8843. id=sl_svn7768_1437
  8844. ><td class="source"> }<br></td></tr
  8845. ><tr
  8846. id=sl_svn7768_1438
  8847. ><td class="source"> if (sy1 &lt; 0) { // off top edge<br></td></tr
  8848. ><tr
  8849. id=sl_svn7768_1439
  8850. ><td class="source"> iy1 -= sy1;<br></td></tr
  8851. ><tr
  8852. id=sl_svn7768_1440
  8853. ><td class="source"> sy1 = 0;<br></td></tr
  8854. ><tr
  8855. id=sl_svn7768_1441
  8856. ><td class="source"> }<br></td></tr
  8857. ><tr
  8858. id=sl_svn7768_1442
  8859. ><td class="source"> if (sx2 &gt; width) { // off right edge<br></td></tr
  8860. ><tr
  8861. id=sl_svn7768_1443
  8862. ><td class="source"> ix2 -= sx2 - width;<br></td></tr
  8863. ><tr
  8864. id=sl_svn7768_1444
  8865. ><td class="source"> sx2 = width;<br></td></tr
  8866. ><tr
  8867. id=sl_svn7768_1445
  8868. ><td class="source"> }<br></td></tr
  8869. ><tr
  8870. id=sl_svn7768_1446
  8871. ><td class="source"> if (sy2 &gt; height) { // off bottom edge<br></td></tr
  8872. ><tr
  8873. id=sl_svn7768_1447
  8874. ><td class="source"> iy2 -= sy2 - height;<br></td></tr
  8875. ><tr
  8876. id=sl_svn7768_1448
  8877. ><td class="source"> sy2 = height;<br></td></tr
  8878. ><tr
  8879. id=sl_svn7768_1449
  8880. ><td class="source"> }<br></td></tr
  8881. ><tr
  8882. id=sl_svn7768_1450
  8883. ><td class="source"><br></td></tr
  8884. ><tr
  8885. id=sl_svn7768_1451
  8886. ><td class="source"> int source = iy1 * image.width + ix1;<br></td></tr
  8887. ><tr
  8888. id=sl_svn7768_1452
  8889. ><td class="source"> int target = sy1 * width;<br></td></tr
  8890. ><tr
  8891. id=sl_svn7768_1453
  8892. ><td class="source"><br></td></tr
  8893. ><tr
  8894. id=sl_svn7768_1454
  8895. ><td class="source"> if (image.format == ARGB) {<br></td></tr
  8896. ><tr
  8897. id=sl_svn7768_1455
  8898. ><td class="source"> for (int y = sy1; y &lt; sy2; y++) {<br></td></tr
  8899. ><tr
  8900. id=sl_svn7768_1456
  8901. ><td class="source"> int tx = 0;<br></td></tr
  8902. ><tr
  8903. id=sl_svn7768_1457
  8904. ><td class="source"><br></td></tr
  8905. ><tr
  8906. id=sl_svn7768_1458
  8907. ><td class="source"> for (int x = sx1; x &lt; sx2; x++) {<br></td></tr
  8908. ><tr
  8909. id=sl_svn7768_1459
  8910. ><td class="source"> pixels[target + x] =<br></td></tr
  8911. ><tr
  8912. id=sl_svn7768_1460
  8913. ><td class="source">// _blend(pixels[target + x],<br></td></tr
  8914. ><tr
  8915. id=sl_svn7768_1461
  8916. ><td class="source">// image.pixels[source + tx],<br></td></tr
  8917. ><tr
  8918. id=sl_svn7768_1462
  8919. ><td class="source">// image.pixels[source + tx++] &gt;&gt;&gt; 24);<br></td></tr
  8920. ><tr
  8921. id=sl_svn7768_1463
  8922. ><td class="source"> blend_color(pixels[target + x],<br></td></tr
  8923. ><tr
  8924. id=sl_svn7768_1464
  8925. ><td class="source"> image.pixels[source + tx++]);<br></td></tr
  8926. ><tr
  8927. id=sl_svn7768_1465
  8928. ><td class="source"> }<br></td></tr
  8929. ><tr
  8930. id=sl_svn7768_1466
  8931. ><td class="source"> source += image.width;<br></td></tr
  8932. ><tr
  8933. id=sl_svn7768_1467
  8934. ><td class="source"> target += width;<br></td></tr
  8935. ><tr
  8936. id=sl_svn7768_1468
  8937. ><td class="source"> }<br></td></tr
  8938. ><tr
  8939. id=sl_svn7768_1469
  8940. ><td class="source"> } else if (image.format == ALPHA) {<br></td></tr
  8941. ><tr
  8942. id=sl_svn7768_1470
  8943. ><td class="source"> for (int y = sy1; y &lt; sy2; y++) {<br></td></tr
  8944. ><tr
  8945. id=sl_svn7768_1471
  8946. ><td class="source"> int tx = 0;<br></td></tr
  8947. ><tr
  8948. id=sl_svn7768_1472
  8949. ><td class="source"><br></td></tr
  8950. ><tr
  8951. id=sl_svn7768_1473
  8952. ><td class="source"> for (int x = sx1; x &lt; sx2; x++) {<br></td></tr
  8953. ><tr
  8954. id=sl_svn7768_1474
  8955. ><td class="source"> pixels[target + x] =<br></td></tr
  8956. ><tr
  8957. id=sl_svn7768_1475
  8958. ><td class="source"> blend_color_alpha(pixels[target + x],<br></td></tr
  8959. ><tr
  8960. id=sl_svn7768_1476
  8961. ><td class="source"> fillColor,<br></td></tr
  8962. ><tr
  8963. id=sl_svn7768_1477
  8964. ><td class="source"> image.pixels[source + tx++]);<br></td></tr
  8965. ><tr
  8966. id=sl_svn7768_1478
  8967. ><td class="source"> }<br></td></tr
  8968. ><tr
  8969. id=sl_svn7768_1479
  8970. ><td class="source"> source += image.width;<br></td></tr
  8971. ><tr
  8972. id=sl_svn7768_1480
  8973. ><td class="source"> target += width;<br></td></tr
  8974. ><tr
  8975. id=sl_svn7768_1481
  8976. ><td class="source"> }<br></td></tr
  8977. ><tr
  8978. id=sl_svn7768_1482
  8979. ><td class="source"><br></td></tr
  8980. ><tr
  8981. id=sl_svn7768_1483
  8982. ><td class="source"> } else if (image.format == RGB) {<br></td></tr
  8983. ><tr
  8984. id=sl_svn7768_1484
  8985. ><td class="source"> target += sx1;<br></td></tr
  8986. ><tr
  8987. id=sl_svn7768_1485
  8988. ><td class="source"> int tw = sx2 - sx1;<br></td></tr
  8989. ><tr
  8990. id=sl_svn7768_1486
  8991. ><td class="source"> for (int y = sy1; y &lt; sy2; y++) {<br></td></tr
  8992. ><tr
  8993. id=sl_svn7768_1487
  8994. ><td class="source"> System.arraycopy(image.pixels, source, pixels, target, tw);<br></td></tr
  8995. ><tr
  8996. id=sl_svn7768_1488
  8997. ><td class="source"> // should set z coordinate in here<br></td></tr
  8998. ><tr
  8999. id=sl_svn7768_1489
  9000. ><td class="source"> // or maybe not, since dims=0, meaning no relevant z<br></td></tr
  9001. ><tr
  9002. id=sl_svn7768_1490
  9003. ><td class="source"> source += image.width;<br></td></tr
  9004. ><tr
  9005. id=sl_svn7768_1491
  9006. ><td class="source"> target += width;<br></td></tr
  9007. ><tr
  9008. id=sl_svn7768_1492
  9009. ><td class="source"> }<br></td></tr
  9010. ><tr
  9011. id=sl_svn7768_1493
  9012. ><td class="source"> }<br></td></tr
  9013. ><tr
  9014. id=sl_svn7768_1494
  9015. ><td class="source"> }<br></td></tr
  9016. ><tr
  9017. id=sl_svn7768_1495
  9018. ><td class="source"><br></td></tr
  9019. ><tr
  9020. id=sl_svn7768_1496
  9021. ><td class="source"><br></td></tr
  9022. ><tr
  9023. id=sl_svn7768_1497
  9024. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  9025. ><tr
  9026. id=sl_svn7768_1498
  9027. ><td class="source"><br></td></tr
  9028. ><tr
  9029. id=sl_svn7768_1499
  9030. ><td class="source"> // TEXT/FONTS<br></td></tr
  9031. ><tr
  9032. id=sl_svn7768_1500
  9033. ><td class="source"><br></td></tr
  9034. ><tr
  9035. id=sl_svn7768_1501
  9036. ><td class="source"><br></td></tr
  9037. ><tr
  9038. id=sl_svn7768_1502
  9039. ><td class="source"> // These will be handled entirely by PGraphics.<br></td></tr
  9040. ><tr
  9041. id=sl_svn7768_1503
  9042. ><td class="source"><br></td></tr
  9043. ><tr
  9044. id=sl_svn7768_1504
  9045. ><td class="source"><br></td></tr
  9046. ><tr
  9047. id=sl_svn7768_1505
  9048. ><td class="source"><br></td></tr
  9049. ><tr
  9050. id=sl_svn7768_1506
  9051. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  9052. ><tr
  9053. id=sl_svn7768_1507
  9054. ><td class="source"><br></td></tr
  9055. ><tr
  9056. id=sl_svn7768_1508
  9057. ><td class="source"> // UGLY RENDERING SHITE<br></td></tr
  9058. ><tr
  9059. id=sl_svn7768_1509
  9060. ><td class="source"><br></td></tr
  9061. ><tr
  9062. id=sl_svn7768_1510
  9063. ><td class="source"><br></td></tr
  9064. ><tr
  9065. id=sl_svn7768_1511
  9066. ><td class="source"> // expects properly clipped coords, hence does<br></td></tr
  9067. ><tr
  9068. id=sl_svn7768_1512
  9069. ><td class="source"> // NOT check if x/y are in bounds [toxi]<br></td></tr
  9070. ><tr
  9071. id=sl_svn7768_1513
  9072. ><td class="source"> private void thin_point_at(int x, int y, float z, int color) {<br></td></tr
  9073. ><tr
  9074. id=sl_svn7768_1514
  9075. ><td class="source"> int index = y*width+x; // offset values are pre-calced in constructor<br></td></tr
  9076. ><tr
  9077. id=sl_svn7768_1515
  9078. ><td class="source"> pixels[index] = color;<br></td></tr
  9079. ><tr
  9080. id=sl_svn7768_1516
  9081. ><td class="source"> }<br></td></tr
  9082. ><tr
  9083. id=sl_svn7768_1517
  9084. ><td class="source"><br></td></tr
  9085. ><tr
  9086. id=sl_svn7768_1518
  9087. ><td class="source"> // expects offset/index in pixelbuffer array instead of x/y coords<br></td></tr
  9088. ><tr
  9089. id=sl_svn7768_1519
  9090. ><td class="source"> // used by optimized parts of thin_flat_line() [toxi]<br></td></tr
  9091. ><tr
  9092. id=sl_svn7768_1520
  9093. ><td class="source"> private void thin_point_at_index(int offset, float z, int color) {<br></td></tr
  9094. ><tr
  9095. id=sl_svn7768_1521
  9096. ><td class="source"> pixels[offset] = color;<br></td></tr
  9097. ><tr
  9098. id=sl_svn7768_1522
  9099. ><td class="source"> }<br></td></tr
  9100. ><tr
  9101. id=sl_svn7768_1523
  9102. ><td class="source"><br></td></tr
  9103. ><tr
  9104. id=sl_svn7768_1524
  9105. ><td class="source"><br></td></tr
  9106. ><tr
  9107. id=sl_svn7768_1525
  9108. ><td class="source"> private void thick_point(float x, float y, float z, // note floats<br></td></tr
  9109. ><tr
  9110. id=sl_svn7768_1526
  9111. ><td class="source"> float r, float g, float b, float a) {<br></td></tr
  9112. ><tr
  9113. id=sl_svn7768_1527
  9114. ><td class="source"> spolygon.reset(4);<br></td></tr
  9115. ><tr
  9116. id=sl_svn7768_1528
  9117. ><td class="source"> spolygon.interpARGB = false; // no changes for vertices of a point<br></td></tr
  9118. ><tr
  9119. id=sl_svn7768_1529
  9120. ><td class="source"><br></td></tr
  9121. ><tr
  9122. id=sl_svn7768_1530
  9123. ><td class="source"> float strokeWidth2 = strokeWeight/2.0f;<br></td></tr
  9124. ><tr
  9125. id=sl_svn7768_1531
  9126. ><td class="source"><br></td></tr
  9127. ><tr
  9128. id=sl_svn7768_1532
  9129. ><td class="source"> float svertex[] = spolygon.vertices[0];<br></td></tr
  9130. ><tr
  9131. id=sl_svn7768_1533
  9132. ><td class="source"> svertex[TX] = x - strokeWidth2;<br></td></tr
  9133. ><tr
  9134. id=sl_svn7768_1534
  9135. ><td class="source"> svertex[TY] = y - strokeWidth2;<br></td></tr
  9136. ><tr
  9137. id=sl_svn7768_1535
  9138. ><td class="source"> svertex[TZ] = z;<br></td></tr
  9139. ><tr
  9140. id=sl_svn7768_1536
  9141. ><td class="source"><br></td></tr
  9142. ><tr
  9143. id=sl_svn7768_1537
  9144. ><td class="source"> svertex[R] = r;<br></td></tr
  9145. ><tr
  9146. id=sl_svn7768_1538
  9147. ><td class="source"> svertex[G] = g;<br></td></tr
  9148. ><tr
  9149. id=sl_svn7768_1539
  9150. ><td class="source"> svertex[B] = b;<br></td></tr
  9151. ><tr
  9152. id=sl_svn7768_1540
  9153. ><td class="source"> svertex[A] = a;<br></td></tr
  9154. ><tr
  9155. id=sl_svn7768_1541
  9156. ><td class="source"><br></td></tr
  9157. ><tr
  9158. id=sl_svn7768_1542
  9159. ><td class="source"> svertex = spolygon.vertices[1];<br></td></tr
  9160. ><tr
  9161. id=sl_svn7768_1543
  9162. ><td class="source"> svertex[TX] = x + strokeWidth2;<br></td></tr
  9163. ><tr
  9164. id=sl_svn7768_1544
  9165. ><td class="source"> svertex[TY] = y - strokeWidth2;<br></td></tr
  9166. ><tr
  9167. id=sl_svn7768_1545
  9168. ><td class="source"> svertex[TZ] = z;<br></td></tr
  9169. ><tr
  9170. id=sl_svn7768_1546
  9171. ><td class="source"><br></td></tr
  9172. ><tr
  9173. id=sl_svn7768_1547
  9174. ><td class="source"> svertex = spolygon.vertices[2];<br></td></tr
  9175. ><tr
  9176. id=sl_svn7768_1548
  9177. ><td class="source"> svertex[TX] = x + strokeWidth2;<br></td></tr
  9178. ><tr
  9179. id=sl_svn7768_1549
  9180. ><td class="source"> svertex[TY] = y + strokeWidth2;<br></td></tr
  9181. ><tr
  9182. id=sl_svn7768_1550
  9183. ><td class="source"> svertex[TZ] = z;<br></td></tr
  9184. ><tr
  9185. id=sl_svn7768_1551
  9186. ><td class="source"><br></td></tr
  9187. ><tr
  9188. id=sl_svn7768_1552
  9189. ><td class="source"> svertex = spolygon.vertices[3];<br></td></tr
  9190. ><tr
  9191. id=sl_svn7768_1553
  9192. ><td class="source"> svertex[TX] = x - strokeWidth2;<br></td></tr
  9193. ><tr
  9194. id=sl_svn7768_1554
  9195. ><td class="source"> svertex[TY] = y + strokeWidth2;<br></td></tr
  9196. ><tr
  9197. id=sl_svn7768_1555
  9198. ><td class="source"> svertex[TZ] = z;<br></td></tr
  9199. ><tr
  9200. id=sl_svn7768_1556
  9201. ><td class="source"><br></td></tr
  9202. ><tr
  9203. id=sl_svn7768_1557
  9204. ><td class="source"> spolygon.render();<br></td></tr
  9205. ><tr
  9206. id=sl_svn7768_1558
  9207. ><td class="source"> }<br></td></tr
  9208. ><tr
  9209. id=sl_svn7768_1559
  9210. ><td class="source"><br></td></tr
  9211. ><tr
  9212. id=sl_svn7768_1560
  9213. ><td class="source"><br></td></tr
  9214. ><tr
  9215. id=sl_svn7768_1561
  9216. ><td class="source"> // new bresenham clipping code, as old one was buggy [toxi]<br></td></tr
  9217. ><tr
  9218. id=sl_svn7768_1562
  9219. ><td class="source"> private void thin_flat_line(int x1, int y1, int x2, int y2) {<br></td></tr
  9220. ><tr
  9221. id=sl_svn7768_1563
  9222. ><td class="source"> int nx1,ny1,nx2,ny2;<br></td></tr
  9223. ><tr
  9224. id=sl_svn7768_1564
  9225. ><td class="source"><br></td></tr
  9226. ><tr
  9227. id=sl_svn7768_1565
  9228. ><td class="source"> // get the &quot;dips&quot; for the points to clip<br></td></tr
  9229. ><tr
  9230. id=sl_svn7768_1566
  9231. ><td class="source"> int code1 = thin_flat_line_clip_code(x1, y1);<br></td></tr
  9232. ><tr
  9233. id=sl_svn7768_1567
  9234. ><td class="source"> int code2 = thin_flat_line_clip_code(x2, y2);<br></td></tr
  9235. ><tr
  9236. id=sl_svn7768_1568
  9237. ><td class="source"><br></td></tr
  9238. ><tr
  9239. id=sl_svn7768_1569
  9240. ><td class="source"> if ((code1 &amp; code2)!=0) {<br></td></tr
  9241. ><tr
  9242. id=sl_svn7768_1570
  9243. ><td class="source"> return;<br></td></tr
  9244. ><tr
  9245. id=sl_svn7768_1571
  9246. ><td class="source"> } else {<br></td></tr
  9247. ><tr
  9248. id=sl_svn7768_1572
  9249. ><td class="source"> int dip = code1 | code2;<br></td></tr
  9250. ><tr
  9251. id=sl_svn7768_1573
  9252. ><td class="source"> if (dip != 0) {<br></td></tr
  9253. ><tr
  9254. id=sl_svn7768_1574
  9255. ><td class="source"> // now calculate the clipped points<br></td></tr
  9256. ><tr
  9257. id=sl_svn7768_1575
  9258. ><td class="source"> float a1 = 0, a2 = 1, a = 0;<br></td></tr
  9259. ><tr
  9260. id=sl_svn7768_1576
  9261. ><td class="source"> for (int i=0;i&lt;4;i++) {<br></td></tr
  9262. ><tr
  9263. id=sl_svn7768_1577
  9264. ><td class="source"> if (((dip&gt;&gt;i)%2)==1) {<br></td></tr
  9265. ><tr
  9266. id=sl_svn7768_1578
  9267. ><td class="source"> a = thin_flat_line_slope((float)x1, (float)y1,<br></td></tr
  9268. ><tr
  9269. id=sl_svn7768_1579
  9270. ><td class="source"> (float)x2, (float)y2, i+1);<br></td></tr
  9271. ><tr
  9272. id=sl_svn7768_1580
  9273. ><td class="source"> if (((code1&gt;&gt;i)%2)==1) {<br></td></tr
  9274. ><tr
  9275. id=sl_svn7768_1581
  9276. ><td class="source"> a1 = (float)Math.max(a, a1);<br></td></tr
  9277. ><tr
  9278. id=sl_svn7768_1582
  9279. ><td class="source"> } else {<br></td></tr
  9280. ><tr
  9281. id=sl_svn7768_1583
  9282. ><td class="source"> a2 = (float)Math.min(a, a2);<br></td></tr
  9283. ><tr
  9284. id=sl_svn7768_1584
  9285. ><td class="source"> }<br></td></tr
  9286. ><tr
  9287. id=sl_svn7768_1585
  9288. ><td class="source"> }<br></td></tr
  9289. ><tr
  9290. id=sl_svn7768_1586
  9291. ><td class="source"> }<br></td></tr
  9292. ><tr
  9293. id=sl_svn7768_1587
  9294. ><td class="source"> if (a1&gt;a2) return;<br></td></tr
  9295. ><tr
  9296. id=sl_svn7768_1588
  9297. ><td class="source"> else {<br></td></tr
  9298. ><tr
  9299. id=sl_svn7768_1589
  9300. ><td class="source"> nx1=(int) (x1+a1*(x2-x1));<br></td></tr
  9301. ><tr
  9302. id=sl_svn7768_1590
  9303. ><td class="source"> ny1=(int) (y1+a1*(y2-y1));<br></td></tr
  9304. ><tr
  9305. id=sl_svn7768_1591
  9306. ><td class="source"> nx2=(int) (x1+a2*(x2-x1));<br></td></tr
  9307. ><tr
  9308. id=sl_svn7768_1592
  9309. ><td class="source"> ny2=(int) (y1+a2*(y2-y1));<br></td></tr
  9310. ><tr
  9311. id=sl_svn7768_1593
  9312. ><td class="source"> }<br></td></tr
  9313. ><tr
  9314. id=sl_svn7768_1594
  9315. ><td class="source"> // line is fully visible/unclipped<br></td></tr
  9316. ><tr
  9317. id=sl_svn7768_1595
  9318. ><td class="source"> } else {<br></td></tr
  9319. ><tr
  9320. id=sl_svn7768_1596
  9321. ><td class="source"> nx1=x1; nx2=x2;<br></td></tr
  9322. ><tr
  9323. id=sl_svn7768_1597
  9324. ><td class="source"> ny1=y1; ny2=y2;<br></td></tr
  9325. ><tr
  9326. id=sl_svn7768_1598
  9327. ><td class="source"> }<br></td></tr
  9328. ><tr
  9329. id=sl_svn7768_1599
  9330. ><td class="source"> }<br></td></tr
  9331. ><tr
  9332. id=sl_svn7768_1600
  9333. ><td class="source"><br></td></tr
  9334. ><tr
  9335. id=sl_svn7768_1601
  9336. ><td class="source"> // new &quot;extremely fast&quot; line code<br></td></tr
  9337. ><tr
  9338. id=sl_svn7768_1602
  9339. ><td class="source"> // adapted from http://www.edepot.com/linee.html<br></td></tr
  9340. ><tr
  9341. id=sl_svn7768_1603
  9342. ><td class="source"><br></td></tr
  9343. ><tr
  9344. id=sl_svn7768_1604
  9345. ><td class="source"> boolean yLonger=false;<br></td></tr
  9346. ><tr
  9347. id=sl_svn7768_1605
  9348. ><td class="source"> int shortLen=ny2-ny1;<br></td></tr
  9349. ><tr
  9350. id=sl_svn7768_1606
  9351. ><td class="source"> int longLen=nx2-nx1;<br></td></tr
  9352. ><tr
  9353. id=sl_svn7768_1607
  9354. ><td class="source"> if (Math.abs(shortLen)&gt;Math.abs(longLen)) {<br></td></tr
  9355. ><tr
  9356. id=sl_svn7768_1608
  9357. ><td class="source"> int swap=shortLen;<br></td></tr
  9358. ><tr
  9359. id=sl_svn7768_1609
  9360. ><td class="source"> shortLen=longLen;<br></td></tr
  9361. ><tr
  9362. id=sl_svn7768_1610
  9363. ><td class="source"> longLen=swap;<br></td></tr
  9364. ><tr
  9365. id=sl_svn7768_1611
  9366. ><td class="source"> yLonger=true;<br></td></tr
  9367. ><tr
  9368. id=sl_svn7768_1612
  9369. ><td class="source"> }<br></td></tr
  9370. ><tr
  9371. id=sl_svn7768_1613
  9372. ><td class="source"> int decInc;<br></td></tr
  9373. ><tr
  9374. id=sl_svn7768_1614
  9375. ><td class="source"> if (longLen==0) decInc=0;<br></td></tr
  9376. ><tr
  9377. id=sl_svn7768_1615
  9378. ><td class="source"> else decInc = (shortLen &lt;&lt; 16) / longLen;<br></td></tr
  9379. ><tr
  9380. id=sl_svn7768_1616
  9381. ><td class="source"><br></td></tr
  9382. ><tr
  9383. id=sl_svn7768_1617
  9384. ><td class="source"> if (nx1==nx2) {<br></td></tr
  9385. ><tr
  9386. id=sl_svn7768_1618
  9387. ><td class="source"> // special case: vertical line<br></td></tr
  9388. ><tr
  9389. id=sl_svn7768_1619
  9390. ><td class="source"> if (ny1&gt;ny2) { int ty=ny1; ny1=ny2; ny2=ty; }<br></td></tr
  9391. ><tr
  9392. id=sl_svn7768_1620
  9393. ><td class="source"> int offset=ny1*width+nx1;<br></td></tr
  9394. ><tr
  9395. id=sl_svn7768_1621
  9396. ><td class="source"> for(int j=ny1; j&lt;=ny2; j++) {<br></td></tr
  9397. ><tr
  9398. id=sl_svn7768_1622
  9399. ><td class="source"> thin_point_at_index(offset,0,strokeColor);<br></td></tr
  9400. ><tr
  9401. id=sl_svn7768_1623
  9402. ><td class="source"> offset+=width;<br></td></tr
  9403. ><tr
  9404. id=sl_svn7768_1624
  9405. ><td class="source"> }<br></td></tr
  9406. ><tr
  9407. id=sl_svn7768_1625
  9408. ><td class="source"> return;<br></td></tr
  9409. ><tr
  9410. id=sl_svn7768_1626
  9411. ><td class="source"> } else if (ny1==ny2) {<br></td></tr
  9412. ><tr
  9413. id=sl_svn7768_1627
  9414. ><td class="source"> // special case: horizontal line<br></td></tr
  9415. ><tr
  9416. id=sl_svn7768_1628
  9417. ><td class="source"> if (nx1&gt;nx2) { int tx=nx1; nx1=nx2; nx2=tx; }<br></td></tr
  9418. ><tr
  9419. id=sl_svn7768_1629
  9420. ><td class="source"> int offset=ny1*width+nx1;<br></td></tr
  9421. ><tr
  9422. id=sl_svn7768_1630
  9423. ><td class="source"> for(int j=nx1; j&lt;=nx2; j++) thin_point_at_index(offset++,0,strokeColor);<br></td></tr
  9424. ><tr
  9425. id=sl_svn7768_1631
  9426. ><td class="source"> return;<br></td></tr
  9427. ><tr
  9428. id=sl_svn7768_1632
  9429. ><td class="source"> } else if (yLonger) {<br></td></tr
  9430. ><tr
  9431. id=sl_svn7768_1633
  9432. ><td class="source"> if (longLen&gt;0) {<br></td></tr
  9433. ><tr
  9434. id=sl_svn7768_1634
  9435. ><td class="source"> longLen+=ny1;<br></td></tr
  9436. ><tr
  9437. id=sl_svn7768_1635
  9438. ><td class="source"> for (int j=0x8000+(nx1&lt;&lt;16);ny1&lt;=longLen;++ny1) {<br></td></tr
  9439. ><tr
  9440. id=sl_svn7768_1636
  9441. ><td class="source"> thin_point_at(j&gt;&gt;16, ny1, 0, strokeColor);<br></td></tr
  9442. ><tr
  9443. id=sl_svn7768_1637
  9444. ><td class="source"> j+=decInc;<br></td></tr
  9445. ><tr
  9446. id=sl_svn7768_1638
  9447. ><td class="source"> }<br></td></tr
  9448. ><tr
  9449. id=sl_svn7768_1639
  9450. ><td class="source"> return;<br></td></tr
  9451. ><tr
  9452. id=sl_svn7768_1640
  9453. ><td class="source"> }<br></td></tr
  9454. ><tr
  9455. id=sl_svn7768_1641
  9456. ><td class="source"> longLen+=ny1;<br></td></tr
  9457. ><tr
  9458. id=sl_svn7768_1642
  9459. ><td class="source"> for (int j=0x8000+(nx1&lt;&lt;16);ny1&gt;=longLen;--ny1) {<br></td></tr
  9460. ><tr
  9461. id=sl_svn7768_1643
  9462. ><td class="source"> thin_point_at(j&gt;&gt;16, ny1, 0, strokeColor);<br></td></tr
  9463. ><tr
  9464. id=sl_svn7768_1644
  9465. ><td class="source"> j-=decInc;<br></td></tr
  9466. ><tr
  9467. id=sl_svn7768_1645
  9468. ><td class="source"> }<br></td></tr
  9469. ><tr
  9470. id=sl_svn7768_1646
  9471. ><td class="source"> return;<br></td></tr
  9472. ><tr
  9473. id=sl_svn7768_1647
  9474. ><td class="source"> } else if (longLen&gt;0) {<br></td></tr
  9475. ><tr
  9476. id=sl_svn7768_1648
  9477. ><td class="source"> longLen+=nx1;<br></td></tr
  9478. ><tr
  9479. id=sl_svn7768_1649
  9480. ><td class="source"> for (int j=0x8000+(ny1&lt;&lt;16);nx1&lt;=longLen;++nx1) {<br></td></tr
  9481. ><tr
  9482. id=sl_svn7768_1650
  9483. ><td class="source"> thin_point_at(nx1, j&gt;&gt;16, 0, strokeColor);<br></td></tr
  9484. ><tr
  9485. id=sl_svn7768_1651
  9486. ><td class="source"> j+=decInc;<br></td></tr
  9487. ><tr
  9488. id=sl_svn7768_1652
  9489. ><td class="source"> }<br></td></tr
  9490. ><tr
  9491. id=sl_svn7768_1653
  9492. ><td class="source"> return;<br></td></tr
  9493. ><tr
  9494. id=sl_svn7768_1654
  9495. ><td class="source"> }<br></td></tr
  9496. ><tr
  9497. id=sl_svn7768_1655
  9498. ><td class="source"> longLen+=nx1;<br></td></tr
  9499. ><tr
  9500. id=sl_svn7768_1656
  9501. ><td class="source"> for (int j=0x8000+(ny1&lt;&lt;16);nx1&gt;=longLen;--nx1) {<br></td></tr
  9502. ><tr
  9503. id=sl_svn7768_1657
  9504. ><td class="source"> thin_point_at(nx1, j&gt;&gt;16, 0, strokeColor);<br></td></tr
  9505. ><tr
  9506. id=sl_svn7768_1658
  9507. ><td class="source"> j-=decInc;<br></td></tr
  9508. ><tr
  9509. id=sl_svn7768_1659
  9510. ><td class="source"> }<br></td></tr
  9511. ><tr
  9512. id=sl_svn7768_1660
  9513. ><td class="source"> }<br></td></tr
  9514. ><tr
  9515. id=sl_svn7768_1661
  9516. ><td class="source"><br></td></tr
  9517. ><tr
  9518. id=sl_svn7768_1662
  9519. ><td class="source"><br></td></tr
  9520. ><tr
  9521. id=sl_svn7768_1663
  9522. ><td class="source"> private int thin_flat_line_clip_code(float x, float y) {<br></td></tr
  9523. ><tr
  9524. id=sl_svn7768_1664
  9525. ><td class="source"> return ((y &lt; 0 ? 8 : 0) | (y &gt; height1 ? 4 : 0) |<br></td></tr
  9526. ><tr
  9527. id=sl_svn7768_1665
  9528. ><td class="source"> (x &lt; 0 ? 2 : 0) | (x &gt; width1 ? 1 : 0));<br></td></tr
  9529. ><tr
  9530. id=sl_svn7768_1666
  9531. ><td class="source"> }<br></td></tr
  9532. ><tr
  9533. id=sl_svn7768_1667
  9534. ><td class="source"><br></td></tr
  9535. ><tr
  9536. id=sl_svn7768_1668
  9537. ><td class="source"><br></td></tr
  9538. ><tr
  9539. id=sl_svn7768_1669
  9540. ><td class="source"> private float thin_flat_line_slope(float x1, float y1,<br></td></tr
  9541. ><tr
  9542. id=sl_svn7768_1670
  9543. ><td class="source"> float x2, float y2, int border) {<br></td></tr
  9544. ><tr
  9545. id=sl_svn7768_1671
  9546. ><td class="source"> switch (border) {<br></td></tr
  9547. ><tr
  9548. id=sl_svn7768_1672
  9549. ><td class="source"> case 4: {<br></td></tr
  9550. ><tr
  9551. id=sl_svn7768_1673
  9552. ><td class="source"> return (-y1)/(y2-y1);<br></td></tr
  9553. ><tr
  9554. id=sl_svn7768_1674
  9555. ><td class="source"> }<br></td></tr
  9556. ><tr
  9557. id=sl_svn7768_1675
  9558. ><td class="source"> case 3: {<br></td></tr
  9559. ><tr
  9560. id=sl_svn7768_1676
  9561. ><td class="source"> return (height1-y1)/(y2-y1);<br></td></tr
  9562. ><tr
  9563. id=sl_svn7768_1677
  9564. ><td class="source"> }<br></td></tr
  9565. ><tr
  9566. id=sl_svn7768_1678
  9567. ><td class="source"> case 2: {<br></td></tr
  9568. ><tr
  9569. id=sl_svn7768_1679
  9570. ><td class="source"> return (-x1)/(x2-x1);<br></td></tr
  9571. ><tr
  9572. id=sl_svn7768_1680
  9573. ><td class="source"> }<br></td></tr
  9574. ><tr
  9575. id=sl_svn7768_1681
  9576. ><td class="source"> case 1: {<br></td></tr
  9577. ><tr
  9578. id=sl_svn7768_1682
  9579. ><td class="source"> return (width1-x1)/(x2-x1);<br></td></tr
  9580. ><tr
  9581. id=sl_svn7768_1683
  9582. ><td class="source"> }<br></td></tr
  9583. ><tr
  9584. id=sl_svn7768_1684
  9585. ><td class="source"> }<br></td></tr
  9586. ><tr
  9587. id=sl_svn7768_1685
  9588. ><td class="source"> return -1f;<br></td></tr
  9589. ><tr
  9590. id=sl_svn7768_1686
  9591. ><td class="source"> }<br></td></tr
  9592. ><tr
  9593. id=sl_svn7768_1687
  9594. ><td class="source"><br></td></tr
  9595. ><tr
  9596. id=sl_svn7768_1688
  9597. ><td class="source"><br></td></tr
  9598. ><tr
  9599. id=sl_svn7768_1689
  9600. ><td class="source"> private void thick_flat_line(float ox1, float oy1,<br></td></tr
  9601. ><tr
  9602. id=sl_svn7768_1690
  9603. ><td class="source"> float r1, float g1, float b1, float a1,<br></td></tr
  9604. ><tr
  9605. id=sl_svn7768_1691
  9606. ><td class="source"> float ox2, float oy2,<br></td></tr
  9607. ><tr
  9608. id=sl_svn7768_1692
  9609. ><td class="source"> float r2, float g2, float b2, float a2) {<br></td></tr
  9610. ><tr
  9611. id=sl_svn7768_1693
  9612. ><td class="source"> spolygon.interpARGB = (r1 != r2) || (g1 != g2) || (b1 != b2) || (a1 != a2);<br></td></tr
  9613. ><tr
  9614. id=sl_svn7768_1694
  9615. ><td class="source">// spolygon.interpZ = false;<br></td></tr
  9616. ><tr
  9617. id=sl_svn7768_1695
  9618. ><td class="source"><br></td></tr
  9619. ><tr
  9620. id=sl_svn7768_1696
  9621. ><td class="source"> float dX = ox2-ox1 + EPSILON;<br></td></tr
  9622. ><tr
  9623. id=sl_svn7768_1697
  9624. ><td class="source"> float dY = oy2-oy1 + EPSILON;<br></td></tr
  9625. ><tr
  9626. id=sl_svn7768_1698
  9627. ><td class="source"> float len = (float) Math.sqrt(dX*dX + dY*dY);<br></td></tr
  9628. ><tr
  9629. id=sl_svn7768_1699
  9630. ><td class="source"><br></td></tr
  9631. ><tr
  9632. id=sl_svn7768_1700
  9633. ><td class="source"> // TODO stroke width should be transformed!<br></td></tr
  9634. ><tr
  9635. id=sl_svn7768_1701
  9636. ><td class="source"> float rh = (strokeWeight / len) / 2;<br></td></tr
  9637. ><tr
  9638. id=sl_svn7768_1702
  9639. ><td class="source"><br></td></tr
  9640. ><tr
  9641. id=sl_svn7768_1703
  9642. ><td class="source"> float dx0 = rh * dY;<br></td></tr
  9643. ><tr
  9644. id=sl_svn7768_1704
  9645. ><td class="source"> float dy0 = rh * dX;<br></td></tr
  9646. ><tr
  9647. id=sl_svn7768_1705
  9648. ><td class="source"> float dx1 = rh * dY;<br></td></tr
  9649. ><tr
  9650. id=sl_svn7768_1706
  9651. ><td class="source"> float dy1 = rh * dX;<br></td></tr
  9652. ><tr
  9653. id=sl_svn7768_1707
  9654. ><td class="source"><br></td></tr
  9655. ><tr
  9656. id=sl_svn7768_1708
  9657. ><td class="source"> spolygon.reset(4);<br></td></tr
  9658. ><tr
  9659. id=sl_svn7768_1709
  9660. ><td class="source"><br></td></tr
  9661. ><tr
  9662. id=sl_svn7768_1710
  9663. ><td class="source"> float svertex[] = spolygon.vertices[0];<br></td></tr
  9664. ><tr
  9665. id=sl_svn7768_1711
  9666. ><td class="source"> svertex[TX] = ox1+dx0;<br></td></tr
  9667. ><tr
  9668. id=sl_svn7768_1712
  9669. ><td class="source"> svertex[TY] = oy1-dy0;<br></td></tr
  9670. ><tr
  9671. id=sl_svn7768_1713
  9672. ><td class="source"> svertex[R] = r1;<br></td></tr
  9673. ><tr
  9674. id=sl_svn7768_1714
  9675. ><td class="source"> svertex[G] = g1;<br></td></tr
  9676. ><tr
  9677. id=sl_svn7768_1715
  9678. ><td class="source"> svertex[B] = b1;<br></td></tr
  9679. ><tr
  9680. id=sl_svn7768_1716
  9681. ><td class="source"> svertex[A] = a1;<br></td></tr
  9682. ><tr
  9683. id=sl_svn7768_1717
  9684. ><td class="source"><br></td></tr
  9685. ><tr
  9686. id=sl_svn7768_1718
  9687. ><td class="source"> svertex = spolygon.vertices[1];<br></td></tr
  9688. ><tr
  9689. id=sl_svn7768_1719
  9690. ><td class="source"> svertex[TX] = ox1-dx0;<br></td></tr
  9691. ><tr
  9692. id=sl_svn7768_1720
  9693. ><td class="source"> svertex[TY] = oy1+dy0;<br></td></tr
  9694. ><tr
  9695. id=sl_svn7768_1721
  9696. ><td class="source"> svertex[R] = r1;<br></td></tr
  9697. ><tr
  9698. id=sl_svn7768_1722
  9699. ><td class="source"> svertex[G] = g1;<br></td></tr
  9700. ><tr
  9701. id=sl_svn7768_1723
  9702. ><td class="source"> svertex[B] = b1;<br></td></tr
  9703. ><tr
  9704. id=sl_svn7768_1724
  9705. ><td class="source"> svertex[A] = a1;<br></td></tr
  9706. ><tr
  9707. id=sl_svn7768_1725
  9708. ><td class="source"><br></td></tr
  9709. ><tr
  9710. id=sl_svn7768_1726
  9711. ><td class="source"> svertex = spolygon.vertices[2];<br></td></tr
  9712. ><tr
  9713. id=sl_svn7768_1727
  9714. ><td class="source"> svertex[TX] = ox2-dx1;<br></td></tr
  9715. ><tr
  9716. id=sl_svn7768_1728
  9717. ><td class="source"> svertex[TY] = oy2+dy1;<br></td></tr
  9718. ><tr
  9719. id=sl_svn7768_1729
  9720. ><td class="source"> svertex[R] = r2;<br></td></tr
  9721. ><tr
  9722. id=sl_svn7768_1730
  9723. ><td class="source"> svertex[G] = g2;<br></td></tr
  9724. ><tr
  9725. id=sl_svn7768_1731
  9726. ><td class="source"> svertex[B] = b2;<br></td></tr
  9727. ><tr
  9728. id=sl_svn7768_1732
  9729. ><td class="source"> svertex[A] = a2;<br></td></tr
  9730. ><tr
  9731. id=sl_svn7768_1733
  9732. ><td class="source"><br></td></tr
  9733. ><tr
  9734. id=sl_svn7768_1734
  9735. ><td class="source"> svertex = spolygon.vertices[3];<br></td></tr
  9736. ><tr
  9737. id=sl_svn7768_1735
  9738. ><td class="source"> svertex[TX] = ox2+dx1;<br></td></tr
  9739. ><tr
  9740. id=sl_svn7768_1736
  9741. ><td class="source"> svertex[TY] = oy2-dy1;<br></td></tr
  9742. ><tr
  9743. id=sl_svn7768_1737
  9744. ><td class="source"> svertex[R] = r2;<br></td></tr
  9745. ><tr
  9746. id=sl_svn7768_1738
  9747. ><td class="source"> svertex[G] = g2;<br></td></tr
  9748. ><tr
  9749. id=sl_svn7768_1739
  9750. ><td class="source"> svertex[B] = b2;<br></td></tr
  9751. ><tr
  9752. id=sl_svn7768_1740
  9753. ><td class="source"> svertex[A] = a2;<br></td></tr
  9754. ><tr
  9755. id=sl_svn7768_1741
  9756. ><td class="source"><br></td></tr
  9757. ><tr
  9758. id=sl_svn7768_1742
  9759. ><td class="source"> spolygon.render();<br></td></tr
  9760. ><tr
  9761. id=sl_svn7768_1743
  9762. ><td class="source"> }<br></td></tr
  9763. ><tr
  9764. id=sl_svn7768_1744
  9765. ><td class="source"><br></td></tr
  9766. ><tr
  9767. id=sl_svn7768_1745
  9768. ><td class="source"><br></td></tr
  9769. ><tr
  9770. id=sl_svn7768_1746
  9771. ><td class="source"> private void draw_line(float[] v1, float[] v2) {<br></td></tr
  9772. ><tr
  9773. id=sl_svn7768_1747
  9774. ><td class="source"> if (strokeWeight == 1) {<br></td></tr
  9775. ><tr
  9776. id=sl_svn7768_1748
  9777. ><td class="source"> if (line == null) line = new PLine(this);<br></td></tr
  9778. ><tr
  9779. id=sl_svn7768_1749
  9780. ><td class="source"><br></td></tr
  9781. ><tr
  9782. id=sl_svn7768_1750
  9783. ><td class="source"> line.reset();<br></td></tr
  9784. ><tr
  9785. id=sl_svn7768_1751
  9786. ><td class="source"> line.setIntensities(v1[SR], v1[SG], v1[SB], v1[SA],<br></td></tr
  9787. ><tr
  9788. id=sl_svn7768_1752
  9789. ><td class="source"> v2[SR], v2[SG], v2[SB], v2[SA]);<br></td></tr
  9790. ><tr
  9791. id=sl_svn7768_1753
  9792. ><td class="source"> line.setVertices(v1[TX], v1[TY], v1[TZ],<br></td></tr
  9793. ><tr
  9794. id=sl_svn7768_1754
  9795. ><td class="source"> v2[TX], v2[TY], v2[TZ]);<br></td></tr
  9796. ><tr
  9797. id=sl_svn7768_1755
  9798. ><td class="source"> line.draw();<br></td></tr
  9799. ><tr
  9800. id=sl_svn7768_1756
  9801. ><td class="source"><br></td></tr
  9802. ><tr
  9803. id=sl_svn7768_1757
  9804. ><td class="source"> } else { // use old line code for thickness != 1<br></td></tr
  9805. ><tr
  9806. id=sl_svn7768_1758
  9807. ><td class="source"> thick_flat_line(v1[TX], v1[TY], v1[SR], v1[SG], v1[SB], v1[SA],<br></td></tr
  9808. ><tr
  9809. id=sl_svn7768_1759
  9810. ><td class="source"> v2[TX], v2[TY], v2[SR], v2[SG], v2[SB], v2[SA]);<br></td></tr
  9811. ><tr
  9812. id=sl_svn7768_1760
  9813. ><td class="source"> }<br></td></tr
  9814. ><tr
  9815. id=sl_svn7768_1761
  9816. ><td class="source"> }<br></td></tr
  9817. ><tr
  9818. id=sl_svn7768_1762
  9819. ><td class="source"><br></td></tr
  9820. ><tr
  9821. id=sl_svn7768_1763
  9822. ><td class="source"><br></td></tr
  9823. ><tr
  9824. id=sl_svn7768_1764
  9825. ><td class="source"> /**<br></td></tr
  9826. ><tr
  9827. id=sl_svn7768_1765
  9828. ><td class="source"> * @param max is what to count to<br></td></tr
  9829. ><tr
  9830. id=sl_svn7768_1766
  9831. ><td class="source"> * @param offset is offset to the &#39;next&#39; vertex<br></td></tr
  9832. ><tr
  9833. id=sl_svn7768_1767
  9834. ><td class="source"> * @param increment is how much to increment in the loop<br></td></tr
  9835. ><tr
  9836. id=sl_svn7768_1768
  9837. ><td class="source"> */<br></td></tr
  9838. ><tr
  9839. id=sl_svn7768_1769
  9840. ><td class="source"> private void draw_lines(float vertices[][], int max,<br></td></tr
  9841. ><tr
  9842. id=sl_svn7768_1770
  9843. ><td class="source"> int offset, int increment, int skip) {<br></td></tr
  9844. ><tr
  9845. id=sl_svn7768_1771
  9846. ><td class="source"><br></td></tr
  9847. ><tr
  9848. id=sl_svn7768_1772
  9849. ><td class="source"> if (strokeWeight == 1) {<br></td></tr
  9850. ><tr
  9851. id=sl_svn7768_1773
  9852. ><td class="source"> for (int i = 0; i &lt; max; i += increment) {<br></td></tr
  9853. ><tr
  9854. id=sl_svn7768_1774
  9855. ><td class="source"> if ((skip != 0) &amp;&amp; (((i+offset) % skip) == 0)) continue;<br></td></tr
  9856. ><tr
  9857. id=sl_svn7768_1775
  9858. ><td class="source"><br></td></tr
  9859. ><tr
  9860. id=sl_svn7768_1776
  9861. ><td class="source"> float a[] = vertices[i];<br></td></tr
  9862. ><tr
  9863. id=sl_svn7768_1777
  9864. ><td class="source"> float b[] = vertices[i+offset];<br></td></tr
  9865. ><tr
  9866. id=sl_svn7768_1778
  9867. ><td class="source"><br></td></tr
  9868. ><tr
  9869. id=sl_svn7768_1779
  9870. ><td class="source"> if (line == null) line = new PLine(this);<br></td></tr
  9871. ><tr
  9872. id=sl_svn7768_1780
  9873. ><td class="source"><br></td></tr
  9874. ><tr
  9875. id=sl_svn7768_1781
  9876. ><td class="source"> line.reset();<br></td></tr
  9877. ><tr
  9878. id=sl_svn7768_1782
  9879. ><td class="source"> line.setIntensities(a[SR], a[SG], a[SB], a[SA],<br></td></tr
  9880. ><tr
  9881. id=sl_svn7768_1783
  9882. ><td class="source"> b[SR], b[SG], b[SB], b[SA]);<br></td></tr
  9883. ><tr
  9884. id=sl_svn7768_1784
  9885. ><td class="source"> line.setVertices(a[TX], a[TY], a[TZ],<br></td></tr
  9886. ><tr
  9887. id=sl_svn7768_1785
  9888. ><td class="source"> b[TX], b[TY], b[TZ]);<br></td></tr
  9889. ><tr
  9890. id=sl_svn7768_1786
  9891. ><td class="source"> line.draw();<br></td></tr
  9892. ><tr
  9893. id=sl_svn7768_1787
  9894. ><td class="source"> }<br></td></tr
  9895. ><tr
  9896. id=sl_svn7768_1788
  9897. ><td class="source"><br></td></tr
  9898. ><tr
  9899. id=sl_svn7768_1789
  9900. ><td class="source"> } else { // use old line code for thickness != 1<br></td></tr
  9901. ><tr
  9902. id=sl_svn7768_1790
  9903. ><td class="source"> for (int i = 0; i &lt; max; i += increment) {<br></td></tr
  9904. ><tr
  9905. id=sl_svn7768_1791
  9906. ><td class="source"> if ((skip != 0) &amp;&amp; (((i+offset) % skip) == 0)) continue;<br></td></tr
  9907. ><tr
  9908. id=sl_svn7768_1792
  9909. ><td class="source"><br></td></tr
  9910. ><tr
  9911. id=sl_svn7768_1793
  9912. ><td class="source"> float v1[] = vertices[i];<br></td></tr
  9913. ><tr
  9914. id=sl_svn7768_1794
  9915. ><td class="source"> float v2[] = vertices[i+offset];<br></td></tr
  9916. ><tr
  9917. id=sl_svn7768_1795
  9918. ><td class="source"> thick_flat_line(v1[TX], v1[TY], v1[SR], v1[SG], v1[SB], v1[SA],<br></td></tr
  9919. ><tr
  9920. id=sl_svn7768_1796
  9921. ><td class="source"> v2[TX], v2[TY], v2[SR], v2[SG], v2[SB], v2[SA]);<br></td></tr
  9922. ><tr
  9923. id=sl_svn7768_1797
  9924. ><td class="source"> }<br></td></tr
  9925. ><tr
  9926. id=sl_svn7768_1798
  9927. ><td class="source"> }<br></td></tr
  9928. ><tr
  9929. id=sl_svn7768_1799
  9930. ><td class="source"> }<br></td></tr
  9931. ><tr
  9932. id=sl_svn7768_1800
  9933. ><td class="source"><br></td></tr
  9934. ><tr
  9935. id=sl_svn7768_1801
  9936. ><td class="source"><br></td></tr
  9937. ><tr
  9938. id=sl_svn7768_1802
  9939. ><td class="source"> private void thin_point(float fx, float fy, int color) {<br></td></tr
  9940. ><tr
  9941. id=sl_svn7768_1803
  9942. ><td class="source"> int x = (int) (fx + 0.4999f);<br></td></tr
  9943. ><tr
  9944. id=sl_svn7768_1804
  9945. ><td class="source"> int y = (int) (fy + 0.4999f);<br></td></tr
  9946. ><tr
  9947. id=sl_svn7768_1805
  9948. ><td class="source"> if (x &lt; 0 || x &gt; width1 || y &lt; 0 || y &gt; height1) return;<br></td></tr
  9949. ><tr
  9950. id=sl_svn7768_1806
  9951. ><td class="source"><br></td></tr
  9952. ><tr
  9953. id=sl_svn7768_1807
  9954. ><td class="source"> int index = y*width + x;<br></td></tr
  9955. ><tr
  9956. id=sl_svn7768_1808
  9957. ><td class="source"> if ((color &amp; 0xff000000) == 0xff000000) { // opaque<br></td></tr
  9958. ><tr
  9959. id=sl_svn7768_1809
  9960. ><td class="source"> pixels[index] = color;<br></td></tr
  9961. ><tr
  9962. id=sl_svn7768_1810
  9963. ><td class="source"><br></td></tr
  9964. ><tr
  9965. id=sl_svn7768_1811
  9966. ><td class="source"> } else { // transparent<br></td></tr
  9967. ><tr
  9968. id=sl_svn7768_1812
  9969. ><td class="source"> // a1 is how much of the orig pixel<br></td></tr
  9970. ><tr
  9971. id=sl_svn7768_1813
  9972. ><td class="source"> int a2 = (color &gt;&gt; 24) &amp; 0xff;<br></td></tr
  9973. ><tr
  9974. id=sl_svn7768_1814
  9975. ><td class="source"> int a1 = a2 ^ 0xff;<br></td></tr
  9976. ><tr
  9977. id=sl_svn7768_1815
  9978. ><td class="source"><br></td></tr
  9979. ><tr
  9980. id=sl_svn7768_1816
  9981. ><td class="source"> int p2 = strokeColor;<br></td></tr
  9982. ><tr
  9983. id=sl_svn7768_1817
  9984. ><td class="source"> int p1 = pixels[index];<br></td></tr
  9985. ><tr
  9986. id=sl_svn7768_1818
  9987. ><td class="source"><br></td></tr
  9988. ><tr
  9989. id=sl_svn7768_1819
  9990. ><td class="source"> int r = (a1 * ((p1 &gt;&gt; 16) &amp; 0xff) + a2 * ((p2 &gt;&gt; 16) &amp; 0xff)) &amp; 0xff00;<br></td></tr
  9991. ><tr
  9992. id=sl_svn7768_1820
  9993. ><td class="source"> int g = (a1 * ((p1 &gt;&gt; 8) &amp; 0xff) + a2 * ((p2 &gt;&gt; 8) &amp; 0xff)) &amp; 0xff00;<br></td></tr
  9994. ><tr
  9995. id=sl_svn7768_1821
  9996. ><td class="source"> int b = (a1 * ( p1 &amp; 0xff) + a2 * ( p2 &amp; 0xff)) &gt;&gt; 8;<br></td></tr
  9997. ><tr
  9998. id=sl_svn7768_1822
  9999. ><td class="source"><br></td></tr
  10000. ><tr
  10001. id=sl_svn7768_1823
  10002. ><td class="source"> pixels[index] = 0xff000000 | (r &lt;&lt; 8) | g | b;<br></td></tr
  10003. ><tr
  10004. id=sl_svn7768_1824
  10005. ><td class="source"> }<br></td></tr
  10006. ><tr
  10007. id=sl_svn7768_1825
  10008. ><td class="source"> }<br></td></tr
  10009. ><tr
  10010. id=sl_svn7768_1826
  10011. ><td class="source"><br></td></tr
  10012. ><tr
  10013. id=sl_svn7768_1827
  10014. ><td class="source"><br></td></tr
  10015. ><tr
  10016. id=sl_svn7768_1828
  10017. ><td class="source"><br></td></tr
  10018. ><tr
  10019. id=sl_svn7768_1829
  10020. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  10021. ><tr
  10022. id=sl_svn7768_1830
  10023. ><td class="source"><br></td></tr
  10024. ><tr
  10025. id=sl_svn7768_1831
  10026. ><td class="source"> // MATRIX TRANSFORMATIONS<br></td></tr
  10027. ><tr
  10028. id=sl_svn7768_1832
  10029. ><td class="source"><br></td></tr
  10030. ><tr
  10031. id=sl_svn7768_1833
  10032. ><td class="source"><br></td></tr
  10033. ><tr
  10034. id=sl_svn7768_1834
  10035. ><td class="source"> public void translate(float tx, float ty) {<br></td></tr
  10036. ><tr
  10037. id=sl_svn7768_1835
  10038. ><td class="source"> ctm.translate(tx, ty);<br></td></tr
  10039. ><tr
  10040. id=sl_svn7768_1836
  10041. ><td class="source"> }<br></td></tr
  10042. ><tr
  10043. id=sl_svn7768_1837
  10044. ><td class="source"><br></td></tr
  10045. ><tr
  10046. id=sl_svn7768_1838
  10047. ><td class="source"><br></td></tr
  10048. ><tr
  10049. id=sl_svn7768_1839
  10050. ><td class="source"> public void translate(float tx, float ty, float tz) {<br></td></tr
  10051. ><tr
  10052. id=sl_svn7768_1840
  10053. ><td class="source"> showDepthWarningXYZ(&quot;translate&quot;);<br></td></tr
  10054. ><tr
  10055. id=sl_svn7768_1841
  10056. ><td class="source"> }<br></td></tr
  10057. ><tr
  10058. id=sl_svn7768_1842
  10059. ><td class="source"><br></td></tr
  10060. ><tr
  10061. id=sl_svn7768_1843
  10062. ><td class="source"><br></td></tr
  10063. ><tr
  10064. id=sl_svn7768_1844
  10065. ><td class="source"> public void rotate(float angle) {<br></td></tr
  10066. ><tr
  10067. id=sl_svn7768_1845
  10068. ><td class="source"> ctm.rotate(angle);<br></td></tr
  10069. ><tr
  10070. id=sl_svn7768_1846
  10071. ><td class="source">// float c = (float) Math.cos(angle);<br></td></tr
  10072. ><tr
  10073. id=sl_svn7768_1847
  10074. ><td class="source">// float s = (float) Math.sin(angle);<br></td></tr
  10075. ><tr
  10076. id=sl_svn7768_1848
  10077. ><td class="source">// applyMatrix(c, -s, 0, s, c, 0);<br></td></tr
  10078. ><tr
  10079. id=sl_svn7768_1849
  10080. ><td class="source"> }<br></td></tr
  10081. ><tr
  10082. id=sl_svn7768_1850
  10083. ><td class="source"><br></td></tr
  10084. ><tr
  10085. id=sl_svn7768_1851
  10086. ><td class="source"><br></td></tr
  10087. ><tr
  10088. id=sl_svn7768_1852
  10089. ><td class="source"> public void rotateX(float angle) {<br></td></tr
  10090. ><tr
  10091. id=sl_svn7768_1853
  10092. ><td class="source"> showDepthWarning(&quot;rotateX&quot;);<br></td></tr
  10093. ><tr
  10094. id=sl_svn7768_1854
  10095. ><td class="source"> }<br></td></tr
  10096. ><tr
  10097. id=sl_svn7768_1855
  10098. ><td class="source"><br></td></tr
  10099. ><tr
  10100. id=sl_svn7768_1856
  10101. ><td class="source"> public void rotateY(float angle) {<br></td></tr
  10102. ><tr
  10103. id=sl_svn7768_1857
  10104. ><td class="source"> showDepthWarning(&quot;rotateY&quot;);<br></td></tr
  10105. ><tr
  10106. id=sl_svn7768_1858
  10107. ><td class="source"> }<br></td></tr
  10108. ><tr
  10109. id=sl_svn7768_1859
  10110. ><td class="source"><br></td></tr
  10111. ><tr
  10112. id=sl_svn7768_1860
  10113. ><td class="source"><br></td></tr
  10114. ><tr
  10115. id=sl_svn7768_1861
  10116. ><td class="source"> public void rotateZ(float angle) {<br></td></tr
  10117. ><tr
  10118. id=sl_svn7768_1862
  10119. ><td class="source"> showDepthWarning(&quot;rotateZ&quot;);<br></td></tr
  10120. ><tr
  10121. id=sl_svn7768_1863
  10122. ><td class="source"> }<br></td></tr
  10123. ><tr
  10124. id=sl_svn7768_1864
  10125. ><td class="source"><br></td></tr
  10126. ><tr
  10127. id=sl_svn7768_1865
  10128. ><td class="source"><br></td></tr
  10129. ><tr
  10130. id=sl_svn7768_1866
  10131. ><td class="source"> public void rotate(float angle, float vx, float vy, float vz) {<br></td></tr
  10132. ><tr
  10133. id=sl_svn7768_1867
  10134. ><td class="source"> showVariationWarning(&quot;rotate(angle, x, y, z)&quot;);<br></td></tr
  10135. ><tr
  10136. id=sl_svn7768_1868
  10137. ><td class="source"> }<br></td></tr
  10138. ><tr
  10139. id=sl_svn7768_1869
  10140. ><td class="source"><br></td></tr
  10141. ><tr
  10142. id=sl_svn7768_1870
  10143. ><td class="source"><br></td></tr
  10144. ><tr
  10145. id=sl_svn7768_1871
  10146. ><td class="source"> public void scale(float s) {<br></td></tr
  10147. ><tr
  10148. id=sl_svn7768_1872
  10149. ><td class="source"> ctm.scale(s);<br></td></tr
  10150. ><tr
  10151. id=sl_svn7768_1873
  10152. ><td class="source">// applyMatrix(s, 0, 0,<br></td></tr
  10153. ><tr
  10154. id=sl_svn7768_1874
  10155. ><td class="source">// 0, s, 0);<br></td></tr
  10156. ><tr
  10157. id=sl_svn7768_1875
  10158. ><td class="source"> }<br></td></tr
  10159. ><tr
  10160. id=sl_svn7768_1876
  10161. ><td class="source"><br></td></tr
  10162. ><tr
  10163. id=sl_svn7768_1877
  10164. ><td class="source"><br></td></tr
  10165. ><tr
  10166. id=sl_svn7768_1878
  10167. ><td class="source"> public void scale(float sx, float sy) {<br></td></tr
  10168. ><tr
  10169. id=sl_svn7768_1879
  10170. ><td class="source"> ctm.scale(sx, sy);<br></td></tr
  10171. ><tr
  10172. id=sl_svn7768_1880
  10173. ><td class="source">// applyMatrix(sx, 0, 0,<br></td></tr
  10174. ><tr
  10175. id=sl_svn7768_1881
  10176. ><td class="source">// 0, sy, 0);<br></td></tr
  10177. ><tr
  10178. id=sl_svn7768_1882
  10179. ><td class="source"> }<br></td></tr
  10180. ><tr
  10181. id=sl_svn7768_1883
  10182. ><td class="source"><br></td></tr
  10183. ><tr
  10184. id=sl_svn7768_1884
  10185. ><td class="source"><br></td></tr
  10186. ><tr
  10187. id=sl_svn7768_1885
  10188. ><td class="source"> public void scale(float x, float y, float z) {<br></td></tr
  10189. ><tr
  10190. id=sl_svn7768_1886
  10191. ><td class="source"> showDepthWarningXYZ(&quot;scale&quot;);<br></td></tr
  10192. ><tr
  10193. id=sl_svn7768_1887
  10194. ><td class="source"> }<br></td></tr
  10195. ><tr
  10196. id=sl_svn7768_1888
  10197. ><td class="source"> <br></td></tr
  10198. ><tr
  10199. id=sl_svn7768_1889
  10200. ><td class="source"> <br></td></tr
  10201. ><tr
  10202. id=sl_svn7768_1890
  10203. ><td class="source"> public void skewX(float angle) {<br></td></tr
  10204. ><tr
  10205. id=sl_svn7768_1891
  10206. ><td class="source"> ctm.shearX(angle);<br></td></tr
  10207. ><tr
  10208. id=sl_svn7768_1892
  10209. ><td class="source"> }<br></td></tr
  10210. ><tr
  10211. id=sl_svn7768_1893
  10212. ><td class="source"><br></td></tr
  10213. ><tr
  10214. id=sl_svn7768_1894
  10215. ><td class="source"><br></td></tr
  10216. ><tr
  10217. id=sl_svn7768_1895
  10218. ><td class="source"> public void skewY(float angle) {<br></td></tr
  10219. ><tr
  10220. id=sl_svn7768_1896
  10221. ><td class="source"> ctm.shearY(angle);<br></td></tr
  10222. ><tr
  10223. id=sl_svn7768_1897
  10224. ><td class="source"> }<br></td></tr
  10225. ><tr
  10226. id=sl_svn7768_1898
  10227. ><td class="source"><br></td></tr
  10228. ><tr
  10229. id=sl_svn7768_1899
  10230. ><td class="source"> <br></td></tr
  10231. ><tr
  10232. id=sl_svn7768_1900
  10233. ><td class="source"><br></td></tr
  10234. ><tr
  10235. id=sl_svn7768_1901
  10236. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  10237. ><tr
  10238. id=sl_svn7768_1902
  10239. ><td class="source"><br></td></tr
  10240. ><tr
  10241. id=sl_svn7768_1903
  10242. ><td class="source"> // TRANSFORMATION MATRIX<br></td></tr
  10243. ><tr
  10244. id=sl_svn7768_1904
  10245. ><td class="source"><br></td></tr
  10246. ><tr
  10247. id=sl_svn7768_1905
  10248. ><td class="source"><br></td></tr
  10249. ><tr
  10250. id=sl_svn7768_1906
  10251. ><td class="source"> public void pushMatrix() {<br></td></tr
  10252. ><tr
  10253. id=sl_svn7768_1907
  10254. ><td class="source"> if (matrixStackDepth == MATRIX_STACK_DEPTH) {<br></td></tr
  10255. ><tr
  10256. id=sl_svn7768_1908
  10257. ><td class="source"> throw new RuntimeException(ERROR_PUSHMATRIX_OVERFLOW);<br></td></tr
  10258. ><tr
  10259. id=sl_svn7768_1909
  10260. ><td class="source"> }<br></td></tr
  10261. ><tr
  10262. id=sl_svn7768_1910
  10263. ><td class="source"> ctm.get(matrixStack[matrixStackDepth]);<br></td></tr
  10264. ><tr
  10265. id=sl_svn7768_1911
  10266. ><td class="source"> matrixStackDepth++;<br></td></tr
  10267. ><tr
  10268. id=sl_svn7768_1912
  10269. ><td class="source"> }<br></td></tr
  10270. ><tr
  10271. id=sl_svn7768_1913
  10272. ><td class="source"><br></td></tr
  10273. ><tr
  10274. id=sl_svn7768_1914
  10275. ><td class="source"><br></td></tr
  10276. ><tr
  10277. id=sl_svn7768_1915
  10278. ><td class="source"> public void popMatrix() {<br></td></tr
  10279. ><tr
  10280. id=sl_svn7768_1916
  10281. ><td class="source"> if (matrixStackDepth == 0) {<br></td></tr
  10282. ><tr
  10283. id=sl_svn7768_1917
  10284. ><td class="source"> throw new RuntimeException(ERROR_PUSHMATRIX_UNDERFLOW);<br></td></tr
  10285. ><tr
  10286. id=sl_svn7768_1918
  10287. ><td class="source"> }<br></td></tr
  10288. ><tr
  10289. id=sl_svn7768_1919
  10290. ><td class="source"> matrixStackDepth--;<br></td></tr
  10291. ><tr
  10292. id=sl_svn7768_1920
  10293. ><td class="source"> ctm.set(matrixStack[matrixStackDepth]);<br></td></tr
  10294. ><tr
  10295. id=sl_svn7768_1921
  10296. ><td class="source"> }<br></td></tr
  10297. ><tr
  10298. id=sl_svn7768_1922
  10299. ><td class="source"><br></td></tr
  10300. ><tr
  10301. id=sl_svn7768_1923
  10302. ><td class="source"><br></td></tr
  10303. ><tr
  10304. id=sl_svn7768_1924
  10305. ><td class="source"> /**<br></td></tr
  10306. ><tr
  10307. id=sl_svn7768_1925
  10308. ><td class="source"> * Load identity as the transform/model matrix.<br></td></tr
  10309. ><tr
  10310. id=sl_svn7768_1926
  10311. ><td class="source"> * Same as glLoadIdentity().<br></td></tr
  10312. ><tr
  10313. id=sl_svn7768_1927
  10314. ><td class="source"> */<br></td></tr
  10315. ><tr
  10316. id=sl_svn7768_1928
  10317. ><td class="source"> public void resetMatrix() {<br></td></tr
  10318. ><tr
  10319. id=sl_svn7768_1929
  10320. ><td class="source"> ctm.reset();<br></td></tr
  10321. ><tr
  10322. id=sl_svn7768_1930
  10323. ><td class="source">// m00 = 1; m01 = 0; m02 = 0;<br></td></tr
  10324. ><tr
  10325. id=sl_svn7768_1931
  10326. ><td class="source">// m10 = 0; m11 = 1; m12 = 0;<br></td></tr
  10327. ><tr
  10328. id=sl_svn7768_1932
  10329. ><td class="source"> }<br></td></tr
  10330. ><tr
  10331. id=sl_svn7768_1933
  10332. ><td class="source"><br></td></tr
  10333. ><tr
  10334. id=sl_svn7768_1934
  10335. ><td class="source"><br></td></tr
  10336. ><tr
  10337. id=sl_svn7768_1935
  10338. ><td class="source"> /**<br></td></tr
  10339. ><tr
  10340. id=sl_svn7768_1936
  10341. ><td class="source"> * Apply a 3x2 affine transformation matrix.<br></td></tr
  10342. ><tr
  10343. id=sl_svn7768_1937
  10344. ><td class="source"> */<br></td></tr
  10345. ><tr
  10346. id=sl_svn7768_1938
  10347. ><td class="source"> public void applyMatrix(float n00, float n01, float n02,<br></td></tr
  10348. ><tr
  10349. id=sl_svn7768_1939
  10350. ><td class="source"> float n10, float n11, float n12) {<br></td></tr
  10351. ><tr
  10352. id=sl_svn7768_1940
  10353. ><td class="source"> ctm.apply(n00, n01, n02,<br></td></tr
  10354. ><tr
  10355. id=sl_svn7768_1941
  10356. ><td class="source"> n10, n11, n12);<br></td></tr
  10357. ><tr
  10358. id=sl_svn7768_1942
  10359. ><td class="source">//<br></td></tr
  10360. ><tr
  10361. id=sl_svn7768_1943
  10362. ><td class="source">// float r00 = m00*n00 + m01*n10;<br></td></tr
  10363. ><tr
  10364. id=sl_svn7768_1944
  10365. ><td class="source">// float r01 = m00*n01 + m01*n11;<br></td></tr
  10366. ><tr
  10367. id=sl_svn7768_1945
  10368. ><td class="source">// float r02 = m00*n02 + m01*n12 + m02;<br></td></tr
  10369. ><tr
  10370. id=sl_svn7768_1946
  10371. ><td class="source">//<br></td></tr
  10372. ><tr
  10373. id=sl_svn7768_1947
  10374. ><td class="source">// float r10 = m10*n00 + m11*n10;<br></td></tr
  10375. ><tr
  10376. id=sl_svn7768_1948
  10377. ><td class="source">// float r11 = m10*n01 + m11*n11;<br></td></tr
  10378. ><tr
  10379. id=sl_svn7768_1949
  10380. ><td class="source">// float r12 = m10*n02 + m11*n12 + m12;<br></td></tr
  10381. ><tr
  10382. id=sl_svn7768_1950
  10383. ><td class="source">//<br></td></tr
  10384. ><tr
  10385. id=sl_svn7768_1951
  10386. ><td class="source">// m00 = r00; m01 = r01; m02 = r02;<br></td></tr
  10387. ><tr
  10388. id=sl_svn7768_1952
  10389. ><td class="source">// m10 = r10; m11 = r11; m12 = r12;<br></td></tr
  10390. ><tr
  10391. id=sl_svn7768_1953
  10392. ><td class="source"> }<br></td></tr
  10393. ><tr
  10394. id=sl_svn7768_1954
  10395. ><td class="source"><br></td></tr
  10396. ><tr
  10397. id=sl_svn7768_1955
  10398. ><td class="source"><br></td></tr
  10399. ><tr
  10400. id=sl_svn7768_1956
  10401. ><td class="source"> public void applyMatrix(float n00, float n01, float n02, float n03,<br></td></tr
  10402. ><tr
  10403. id=sl_svn7768_1957
  10404. ><td class="source"> float n10, float n11, float n12, float n13,<br></td></tr
  10405. ><tr
  10406. id=sl_svn7768_1958
  10407. ><td class="source"> float n20, float n21, float n22, float n23,<br></td></tr
  10408. ><tr
  10409. id=sl_svn7768_1959
  10410. ><td class="source"> float n30, float n31, float n32, float n33) {<br></td></tr
  10411. ><tr
  10412. id=sl_svn7768_1960
  10413. ><td class="source"> showDepthWarningXYZ(&quot;applyMatrix&quot;);<br></td></tr
  10414. ><tr
  10415. id=sl_svn7768_1961
  10416. ><td class="source"> }<br></td></tr
  10417. ><tr
  10418. id=sl_svn7768_1962
  10419. ><td class="source"><br></td></tr
  10420. ><tr
  10421. id=sl_svn7768_1963
  10422. ><td class="source"><br></td></tr
  10423. ><tr
  10424. id=sl_svn7768_1964
  10425. ><td class="source"> /**<br></td></tr
  10426. ><tr
  10427. id=sl_svn7768_1965
  10428. ><td class="source"> * Loads the current matrix into m00, m01 etc (or modelview and<br></td></tr
  10429. ><tr
  10430. id=sl_svn7768_1966
  10431. ><td class="source"> * projection when using 3D) so that the values can be read.<br></td></tr
  10432. ><tr
  10433. id=sl_svn7768_1967
  10434. ><td class="source"> * &lt;P/&gt;<br></td></tr
  10435. ><tr
  10436. id=sl_svn7768_1968
  10437. ><td class="source"> * Note that there is no &quot;updateMatrix&quot; because that gets too<br></td></tr
  10438. ><tr
  10439. id=sl_svn7768_1969
  10440. ><td class="source"> * complicated (unnecessary) when considering the 3D matrices.<br></td></tr
  10441. ><tr
  10442. id=sl_svn7768_1970
  10443. ><td class="source"> */<br></td></tr
  10444. ><tr
  10445. id=sl_svn7768_1971
  10446. ><td class="source">// public void loadMatrix() {<br></td></tr
  10447. ><tr
  10448. id=sl_svn7768_1972
  10449. ><td class="source"> // no-op on base PGraphics because they&#39;re used directly<br></td></tr
  10450. ><tr
  10451. id=sl_svn7768_1973
  10452. ><td class="source">// }<br></td></tr
  10453. ><tr
  10454. id=sl_svn7768_1974
  10455. ><td class="source"><br></td></tr
  10456. ><tr
  10457. id=sl_svn7768_1975
  10458. ><td class="source"><br></td></tr
  10459. ><tr
  10460. id=sl_svn7768_1976
  10461. ><td class="source"> /**<br></td></tr
  10462. ><tr
  10463. id=sl_svn7768_1977
  10464. ><td class="source"> * Print the current model (or &quot;transformation&quot;) matrix.<br></td></tr
  10465. ><tr
  10466. id=sl_svn7768_1978
  10467. ><td class="source"> */<br></td></tr
  10468. ><tr
  10469. id=sl_svn7768_1979
  10470. ><td class="source"> public void printMatrix() {<br></td></tr
  10471. ><tr
  10472. id=sl_svn7768_1980
  10473. ><td class="source"> ctm.print();<br></td></tr
  10474. ><tr
  10475. id=sl_svn7768_1981
  10476. ><td class="source"><br></td></tr
  10477. ><tr
  10478. id=sl_svn7768_1982
  10479. ><td class="source">// loadMatrix(); // just to make sure<br></td></tr
  10480. ><tr
  10481. id=sl_svn7768_1983
  10482. ><td class="source">//<br></td></tr
  10483. ><tr
  10484. id=sl_svn7768_1984
  10485. ><td class="source">// float big = Math.abs(m00);<br></td></tr
  10486. ><tr
  10487. id=sl_svn7768_1985
  10488. ><td class="source">// if (Math.abs(m01) &gt; big) big = Math.abs(m01);<br></td></tr
  10489. ><tr
  10490. id=sl_svn7768_1986
  10491. ><td class="source">// if (Math.abs(m02) &gt; big) big = Math.abs(m02);<br></td></tr
  10492. ><tr
  10493. id=sl_svn7768_1987
  10494. ><td class="source">// if (Math.abs(m10) &gt; big) big = Math.abs(m10);<br></td></tr
  10495. ><tr
  10496. id=sl_svn7768_1988
  10497. ><td class="source">// if (Math.abs(m11) &gt; big) big = Math.abs(m11);<br></td></tr
  10498. ><tr
  10499. id=sl_svn7768_1989
  10500. ><td class="source">// if (Math.abs(m12) &gt; big) big = Math.abs(m12);<br></td></tr
  10501. ><tr
  10502. id=sl_svn7768_1990
  10503. ><td class="source">//<br></td></tr
  10504. ><tr
  10505. id=sl_svn7768_1991
  10506. ><td class="source">// // avoid infinite loop<br></td></tr
  10507. ><tr
  10508. id=sl_svn7768_1992
  10509. ><td class="source">// if (Float.isNaN(big) || Float.isInfinite(big)) {<br></td></tr
  10510. ><tr
  10511. id=sl_svn7768_1993
  10512. ><td class="source">// big = 1000000; // set to something arbitrary<br></td></tr
  10513. ><tr
  10514. id=sl_svn7768_1994
  10515. ><td class="source">// }<br></td></tr
  10516. ><tr
  10517. id=sl_svn7768_1995
  10518. ><td class="source">//<br></td></tr
  10519. ><tr
  10520. id=sl_svn7768_1996
  10521. ><td class="source">// int d = 1;<br></td></tr
  10522. ><tr
  10523. id=sl_svn7768_1997
  10524. ><td class="source">// int bigi = (int) big;<br></td></tr
  10525. ><tr
  10526. id=sl_svn7768_1998
  10527. ><td class="source">// while ((bigi /= 10) != 0) d++; // cheap log()<br></td></tr
  10528. ><tr
  10529. id=sl_svn7768_1999
  10530. ><td class="source">//<br></td></tr
  10531. ><tr
  10532. id=sl_svn7768_2000
  10533. ><td class="source">// System.out.println(PApplet.nfs(m00, d, 4) + &quot; &quot; +<br></td></tr
  10534. ><tr
  10535. id=sl_svn7768_2001
  10536. ><td class="source">// PApplet.nfs(m01, d, 4) + &quot; &quot; +<br></td></tr
  10537. ><tr
  10538. id=sl_svn7768_2002
  10539. ><td class="source">// PApplet.nfs(m02, d, 4));<br></td></tr
  10540. ><tr
  10541. id=sl_svn7768_2003
  10542. ><td class="source">//<br></td></tr
  10543. ><tr
  10544. id=sl_svn7768_2004
  10545. ><td class="source">// System.out.println(PApplet.nfs(m10, d, 4) + &quot; &quot; +<br></td></tr
  10546. ><tr
  10547. id=sl_svn7768_2005
  10548. ><td class="source">// PApplet.nfs(m11, d, 4) + &quot; &quot; +<br></td></tr
  10549. ><tr
  10550. id=sl_svn7768_2006
  10551. ><td class="source">// PApplet.nfs(m12, d, 4));<br></td></tr
  10552. ><tr
  10553. id=sl_svn7768_2007
  10554. ><td class="source">//<br></td></tr
  10555. ><tr
  10556. id=sl_svn7768_2008
  10557. ><td class="source">// System.out.println();<br></td></tr
  10558. ><tr
  10559. id=sl_svn7768_2009
  10560. ><td class="source"> }<br></td></tr
  10561. ><tr
  10562. id=sl_svn7768_2010
  10563. ><td class="source"><br></td></tr
  10564. ><tr
  10565. id=sl_svn7768_2011
  10566. ><td class="source"><br></td></tr
  10567. ><tr
  10568. id=sl_svn7768_2012
  10569. ><td class="source"><br></td></tr
  10570. ><tr
  10571. id=sl_svn7768_2013
  10572. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  10573. ><tr
  10574. id=sl_svn7768_2014
  10575. ><td class="source"><br></td></tr
  10576. ><tr
  10577. id=sl_svn7768_2015
  10578. ><td class="source"> // SCREEN TRANSFORMS<br></td></tr
  10579. ><tr
  10580. id=sl_svn7768_2016
  10581. ><td class="source"><br></td></tr
  10582. ><tr
  10583. id=sl_svn7768_2017
  10584. ><td class="source"><br></td></tr
  10585. ><tr
  10586. id=sl_svn7768_2018
  10587. ><td class="source"> public float screenX(float x, float y) {<br></td></tr
  10588. ><tr
  10589. id=sl_svn7768_2019
  10590. ><td class="source"> return ctm.m00 * x + ctm.m01 * y + ctm.m02;<br></td></tr
  10591. ><tr
  10592. id=sl_svn7768_2020
  10593. ><td class="source"> }<br></td></tr
  10594. ><tr
  10595. id=sl_svn7768_2021
  10596. ><td class="source"><br></td></tr
  10597. ><tr
  10598. id=sl_svn7768_2022
  10599. ><td class="source"><br></td></tr
  10600. ><tr
  10601. id=sl_svn7768_2023
  10602. ><td class="source"> public float screenY(float x, float y) {<br></td></tr
  10603. ><tr
  10604. id=sl_svn7768_2024
  10605. ><td class="source"> return ctm.m10 * x + ctm.m11 * y + ctm.m12;<br></td></tr
  10606. ><tr
  10607. id=sl_svn7768_2025
  10608. ><td class="source"> }<br></td></tr
  10609. ><tr
  10610. id=sl_svn7768_2026
  10611. ><td class="source"><br></td></tr
  10612. ><tr
  10613. id=sl_svn7768_2027
  10614. ><td class="source"><br></td></tr
  10615. ><tr
  10616. id=sl_svn7768_2028
  10617. ><td class="source"><br></td></tr
  10618. ><tr
  10619. id=sl_svn7768_2029
  10620. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  10621. ><tr
  10622. id=sl_svn7768_2030
  10623. ><td class="source"><br></td></tr
  10624. ><tr
  10625. id=sl_svn7768_2031
  10626. ><td class="source"> // BACKGROUND AND FRIENDS<br></td></tr
  10627. ><tr
  10628. id=sl_svn7768_2032
  10629. ><td class="source"><br></td></tr
  10630. ><tr
  10631. id=sl_svn7768_2033
  10632. ><td class="source"><br></td></tr
  10633. ><tr
  10634. id=sl_svn7768_2034
  10635. ><td class="source"> /**<br></td></tr
  10636. ><tr
  10637. id=sl_svn7768_2035
  10638. ><td class="source"> * Clear the pixel buffer.<br></td></tr
  10639. ><tr
  10640. id=sl_svn7768_2036
  10641. ><td class="source"> */<br></td></tr
  10642. ><tr
  10643. id=sl_svn7768_2037
  10644. ><td class="source"> protected void backgroundImpl() {<br></td></tr
  10645. ><tr
  10646. id=sl_svn7768_2038
  10647. ><td class="source"> Arrays.fill(pixels, backgroundColor);<br></td></tr
  10648. ><tr
  10649. id=sl_svn7768_2039
  10650. ><td class="source"> }<br></td></tr
  10651. ><tr
  10652. id=sl_svn7768_2040
  10653. ><td class="source"><br></td></tr
  10654. ><tr
  10655. id=sl_svn7768_2041
  10656. ><td class="source"><br></td></tr
  10657. ><tr
  10658. id=sl_svn7768_2042
  10659. ><td class="source"><br></td></tr
  10660. ><tr
  10661. id=sl_svn7768_2043
  10662. ><td class="source"> /*<br></td></tr
  10663. ><tr
  10664. id=sl_svn7768_2044
  10665. ><td class="source"> public void ambient(int rgb) {<br></td></tr
  10666. ><tr
  10667. id=sl_svn7768_2045
  10668. ><td class="source"> showDepthError(&quot;ambient&quot;);<br></td></tr
  10669. ><tr
  10670. id=sl_svn7768_2046
  10671. ><td class="source"> }<br></td></tr
  10672. ><tr
  10673. id=sl_svn7768_2047
  10674. ><td class="source"><br></td></tr
  10675. ><tr
  10676. id=sl_svn7768_2048
  10677. ><td class="source"> public void ambient(float gray) {<br></td></tr
  10678. ><tr
  10679. id=sl_svn7768_2049
  10680. ><td class="source"> showDepthError(&quot;ambient&quot;);<br></td></tr
  10681. ><tr
  10682. id=sl_svn7768_2050
  10683. ><td class="source"> }<br></td></tr
  10684. ><tr
  10685. id=sl_svn7768_2051
  10686. ><td class="source"><br></td></tr
  10687. ><tr
  10688. id=sl_svn7768_2052
  10689. ><td class="source"> public void ambient(float x, float y, float z) {<br></td></tr
  10690. ><tr
  10691. id=sl_svn7768_2053
  10692. ><td class="source"> // This doesn&#39;t take<br></td></tr
  10693. ><tr
  10694. id=sl_svn7768_2054
  10695. ><td class="source"> if ((x != PMaterial.DEFAULT_AMBIENT) ||<br></td></tr
  10696. ><tr
  10697. id=sl_svn7768_2055
  10698. ><td class="source"> (y != PMaterial.DEFAULT_AMBIENT) ||<br></td></tr
  10699. ><tr
  10700. id=sl_svn7768_2056
  10701. ><td class="source"> (z != PMaterial.DEFAULT_AMBIENT)) {<br></td></tr
  10702. ><tr
  10703. id=sl_svn7768_2057
  10704. ><td class="source"> showDepthError(&quot;ambient&quot;);<br></td></tr
  10705. ><tr
  10706. id=sl_svn7768_2058
  10707. ><td class="source"> }<br></td></tr
  10708. ><tr
  10709. id=sl_svn7768_2059
  10710. ><td class="source"> }<br></td></tr
  10711. ><tr
  10712. id=sl_svn7768_2060
  10713. ><td class="source"><br></td></tr
  10714. ><tr
  10715. id=sl_svn7768_2061
  10716. ><td class="source"> public void specular(int rgb) {<br></td></tr
  10717. ><tr
  10718. id=sl_svn7768_2062
  10719. ><td class="source"> showDepthError(&quot;specular&quot;);<br></td></tr
  10720. ><tr
  10721. id=sl_svn7768_2063
  10722. ><td class="source"> }<br></td></tr
  10723. ><tr
  10724. id=sl_svn7768_2064
  10725. ><td class="source"><br></td></tr
  10726. ><tr
  10727. id=sl_svn7768_2065
  10728. ><td class="source"> public void specular(float gray) {<br></td></tr
  10729. ><tr
  10730. id=sl_svn7768_2066
  10731. ><td class="source"> showDepthError(&quot;specular&quot;);<br></td></tr
  10732. ><tr
  10733. id=sl_svn7768_2067
  10734. ><td class="source"> }<br></td></tr
  10735. ><tr
  10736. id=sl_svn7768_2068
  10737. ><td class="source"><br></td></tr
  10738. ><tr
  10739. id=sl_svn7768_2069
  10740. ><td class="source"> public void specular(float x, float y, float z) {<br></td></tr
  10741. ><tr
  10742. id=sl_svn7768_2070
  10743. ><td class="source"> showDepthError(&quot;specular&quot;);<br></td></tr
  10744. ><tr
  10745. id=sl_svn7768_2071
  10746. ><td class="source"> }<br></td></tr
  10747. ><tr
  10748. id=sl_svn7768_2072
  10749. ><td class="source"><br></td></tr
  10750. ><tr
  10751. id=sl_svn7768_2073
  10752. ><td class="source"> public void shininess(float shine) {<br></td></tr
  10753. ><tr
  10754. id=sl_svn7768_2074
  10755. ><td class="source"> showDepthError(&quot;shininess&quot;);<br></td></tr
  10756. ><tr
  10757. id=sl_svn7768_2075
  10758. ><td class="source"> }<br></td></tr
  10759. ><tr
  10760. id=sl_svn7768_2076
  10761. ><td class="source"><br></td></tr
  10762. ><tr
  10763. id=sl_svn7768_2077
  10764. ><td class="source"><br></td></tr
  10765. ><tr
  10766. id=sl_svn7768_2078
  10767. ><td class="source"> public void emissive(int rgb) {<br></td></tr
  10768. ><tr
  10769. id=sl_svn7768_2079
  10770. ><td class="source"> showDepthError(&quot;emissive&quot;);<br></td></tr
  10771. ><tr
  10772. id=sl_svn7768_2080
  10773. ><td class="source"> }<br></td></tr
  10774. ><tr
  10775. id=sl_svn7768_2081
  10776. ><td class="source"><br></td></tr
  10777. ><tr
  10778. id=sl_svn7768_2082
  10779. ><td class="source"> public void emissive(float gray) {<br></td></tr
  10780. ><tr
  10781. id=sl_svn7768_2083
  10782. ><td class="source"> showDepthError(&quot;emissive&quot;);<br></td></tr
  10783. ><tr
  10784. id=sl_svn7768_2084
  10785. ><td class="source"> }<br></td></tr
  10786. ><tr
  10787. id=sl_svn7768_2085
  10788. ><td class="source"><br></td></tr
  10789. ><tr
  10790. id=sl_svn7768_2086
  10791. ><td class="source"> public void emissive(float x, float y, float z ) {<br></td></tr
  10792. ><tr
  10793. id=sl_svn7768_2087
  10794. ><td class="source"> showDepthError(&quot;emissive&quot;);<br></td></tr
  10795. ><tr
  10796. id=sl_svn7768_2088
  10797. ><td class="source"> }<br></td></tr
  10798. ><tr
  10799. id=sl_svn7768_2089
  10800. ><td class="source"> */<br></td></tr
  10801. ><tr
  10802. id=sl_svn7768_2090
  10803. ><td class="source"><br></td></tr
  10804. ><tr
  10805. id=sl_svn7768_2091
  10806. ><td class="source"><br></td></tr
  10807. ><tr
  10808. id=sl_svn7768_2092
  10809. ><td class="source"><br></td></tr
  10810. ><tr
  10811. id=sl_svn7768_2093
  10812. ><td class="source"> //////////////////////////////////////////////////////////////<br></td></tr
  10813. ><tr
  10814. id=sl_svn7768_2094
  10815. ><td class="source"><br></td></tr
  10816. ><tr
  10817. id=sl_svn7768_2095
  10818. ><td class="source"> // INTERNAL SCHIZZLE<br></td></tr
  10819. ><tr
  10820. id=sl_svn7768_2096
  10821. ><td class="source"><br></td></tr
  10822. ><tr
  10823. id=sl_svn7768_2097
  10824. ><td class="source"><br></td></tr
  10825. ><tr
  10826. id=sl_svn7768_2098
  10827. ><td class="source"> // TODO make this more efficient, or move into PMatrix2D<br></td></tr
  10828. ><tr
  10829. id=sl_svn7768_2099
  10830. ><td class="source">// private boolean untransformed() {<br></td></tr
  10831. ><tr
  10832. id=sl_svn7768_2100
  10833. ><td class="source">// return ((ctm.m00 == 1) &amp;&amp; (ctm.m01 == 0) &amp;&amp; (ctm.m02 == 0) &amp;&amp;<br></td></tr
  10834. ><tr
  10835. id=sl_svn7768_2101
  10836. ><td class="source">// (ctm.m10 == 0) &amp;&amp; (ctm.m11 == 1) &amp;&amp; (ctm.m12 == 0));<br></td></tr
  10837. ><tr
  10838. id=sl_svn7768_2102
  10839. ><td class="source">// }<br></td></tr
  10840. ><tr
  10841. id=sl_svn7768_2103
  10842. ><td class="source">//<br></td></tr
  10843. ><tr
  10844. id=sl_svn7768_2104
  10845. ><td class="source">//<br></td></tr
  10846. ><tr
  10847. id=sl_svn7768_2105
  10848. ><td class="source">// // TODO make this more efficient, or move into PMatrix2D<br></td></tr
  10849. ><tr
  10850. id=sl_svn7768_2106
  10851. ><td class="source">// private boolean unwarped() {<br></td></tr
  10852. ><tr
  10853. id=sl_svn7768_2107
  10854. ><td class="source">// return ((ctm.m00 == 1) &amp;&amp; (ctm.m01 == 0) &amp;&amp;<br></td></tr
  10855. ><tr
  10856. id=sl_svn7768_2108
  10857. ><td class="source">// (ctm.m10 == 0) &amp;&amp; (ctm.m11 == 1));<br></td></tr
  10858. ><tr
  10859. id=sl_svn7768_2109
  10860. ><td class="source">// }<br></td></tr
  10861. ><tr
  10862. id=sl_svn7768_2110
  10863. ><td class="source"><br></td></tr
  10864. ><tr
  10865. id=sl_svn7768_2111
  10866. ><td class="source"><br></td></tr
  10867. ><tr
  10868. id=sl_svn7768_2112
  10869. ><td class="source"> // only call this if there&#39;s an alpha in the fill<br></td></tr
  10870. ><tr
  10871. id=sl_svn7768_2113
  10872. ><td class="source"> private final int blend_fill(int p1) {<br></td></tr
  10873. ><tr
  10874. id=sl_svn7768_2114
  10875. ><td class="source"> int a2 = fillAi;<br></td></tr
  10876. ><tr
  10877. id=sl_svn7768_2115
  10878. ><td class="source"> int a1 = a2 ^ 0xff;<br></td></tr
  10879. ><tr
  10880. id=sl_svn7768_2116
  10881. ><td class="source"><br></td></tr
  10882. ><tr
  10883. id=sl_svn7768_2117
  10884. ><td class="source"> int r = (a1 * ((p1 &gt;&gt; 16) &amp; 0xff)) + (a2 * fillRi) &amp; 0xff00;<br></td></tr
  10885. ><tr
  10886. id=sl_svn7768_2118
  10887. ><td class="source"> int g = (a1 * ((p1 &gt;&gt; 8) &amp; 0xff)) + (a2 * fillGi) &amp; 0xff00;<br></td></tr
  10888. ><tr
  10889. id=sl_svn7768_2119
  10890. ><td class="source"> int b = (a1 * ( p1 &amp; 0xff)) + (a2 * fillBi) &amp; 0xff00;<br></td></tr
  10891. ><tr
  10892. id=sl_svn7768_2120
  10893. ><td class="source"><br></td></tr
  10894. ><tr
  10895. id=sl_svn7768_2121
  10896. ><td class="source"> return 0xff000000 | (r &lt;&lt; 8) | g | (b &gt;&gt; 8);<br></td></tr
  10897. ><tr
  10898. id=sl_svn7768_2122
  10899. ><td class="source"> }<br></td></tr
  10900. ><tr
  10901. id=sl_svn7768_2123
  10902. ><td class="source"><br></td></tr
  10903. ><tr
  10904. id=sl_svn7768_2124
  10905. ><td class="source"><br></td></tr
  10906. ><tr
  10907. id=sl_svn7768_2125
  10908. ><td class="source"> private final int blend_color(int p1, int p2) {<br></td></tr
  10909. ><tr
  10910. id=sl_svn7768_2126
  10911. ><td class="source"> int a2 = (p2 &gt;&gt;&gt; 24);<br></td></tr
  10912. ><tr
  10913. id=sl_svn7768_2127
  10914. ><td class="source"><br></td></tr
  10915. ><tr
  10916. id=sl_svn7768_2128
  10917. ><td class="source"> if (a2 == 0xff) {<br></td></tr
  10918. ><tr
  10919. id=sl_svn7768_2129
  10920. ><td class="source"> // full replacement<br></td></tr
  10921. ><tr
  10922. id=sl_svn7768_2130
  10923. ><td class="source"> return p2;<br></td></tr
  10924. ><tr
  10925. id=sl_svn7768_2131
  10926. ><td class="source"><br></td></tr
  10927. ><tr
  10928. id=sl_svn7768_2132
  10929. ><td class="source"> } else {<br></td></tr
  10930. ><tr
  10931. id=sl_svn7768_2133
  10932. ><td class="source"> int a1 = a2 ^ 0xff;<br></td></tr
  10933. ><tr
  10934. id=sl_svn7768_2134
  10935. ><td class="source"> int r = (a1 * ((p1 &gt;&gt; 16) &amp; 0xff) + a2 * ((p2 &gt;&gt; 16) &amp; 0xff)) &amp; 0xff00;<br></td></tr
  10936. ><tr
  10937. id=sl_svn7768_2135
  10938. ><td class="source"> int g = (a1 * ((p1 &gt;&gt; 8) &amp; 0xff) + a2 * ((p2 &gt;&gt; 8) &amp; 0xff)) &amp; 0xff00;<br></td></tr
  10939. ><tr
  10940. id=sl_svn7768_2136
  10941. ><td class="source"> int b = (a1 * ( p1 &amp; 0xff) + a2 * ( p2 &amp; 0xff)) &gt;&gt; 8;<br></td></tr
  10942. ><tr
  10943. id=sl_svn7768_2137
  10944. ><td class="source"><br></td></tr
  10945. ><tr
  10946. id=sl_svn7768_2138
  10947. ><td class="source"> return 0xff000000 | (r &lt;&lt; 8) | g | b;<br></td></tr
  10948. ><tr
  10949. id=sl_svn7768_2139
  10950. ><td class="source"> }<br></td></tr
  10951. ><tr
  10952. id=sl_svn7768_2140
  10953. ><td class="source"> }<br></td></tr
  10954. ><tr
  10955. id=sl_svn7768_2141
  10956. ><td class="source"><br></td></tr
  10957. ><tr
  10958. id=sl_svn7768_2142
  10959. ><td class="source"><br></td></tr
  10960. ><tr
  10961. id=sl_svn7768_2143
  10962. ><td class="source"> private final int blend_color_alpha(int p1, int p2, int a2) {<br></td></tr
  10963. ><tr
  10964. id=sl_svn7768_2144
  10965. ><td class="source"> // scale alpha by alpha of incoming pixel<br></td></tr
  10966. ><tr
  10967. id=sl_svn7768_2145
  10968. ><td class="source"> a2 = (a2 * (p2 &gt;&gt;&gt; 24)) &gt;&gt; 8;<br></td></tr
  10969. ><tr
  10970. id=sl_svn7768_2146
  10971. ><td class="source"><br></td></tr
  10972. ><tr
  10973. id=sl_svn7768_2147
  10974. ><td class="source"> int a1 = a2 ^ 0xff;<br></td></tr
  10975. ><tr
  10976. id=sl_svn7768_2148
  10977. ><td class="source"> int r = (a1 * ((p1 &gt;&gt; 16) &amp; 0xff) + a2 * ((p2 &gt;&gt; 16) &amp; 0xff)) &amp; 0xff00;<br></td></tr
  10978. ><tr
  10979. id=sl_svn7768_2149
  10980. ><td class="source"> int g = (a1 * ((p1 &gt;&gt; 8) &amp; 0xff) + a2 * ((p2 &gt;&gt; 8) &amp; 0xff)) &amp; 0xff00;<br></td></tr
  10981. ><tr
  10982. id=sl_svn7768_2150
  10983. ><td class="source"> int b = (a1 * ( p1 &amp; 0xff) + a2 * ( p2 &amp; 0xff)) &gt;&gt; 8;<br></td></tr
  10984. ><tr
  10985. id=sl_svn7768_2151
  10986. ><td class="source"><br></td></tr
  10987. ><tr
  10988. id=sl_svn7768_2152
  10989. ><td class="source"> return 0xff000000 | (r &lt;&lt; 8) | g | b;<br></td></tr
  10990. ><tr
  10991. id=sl_svn7768_2153
  10992. ><td class="source"> }<br></td></tr
  10993. ><tr
  10994. id=sl_svn7768_2154
  10995. ><td class="source">}<br></td></tr
  10996. ></table></pre>
  10997. <pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
  10998. </td>
  10999. </tr></table>
  11000. <script type="text/javascript">
  11001. var lineNumUnderMouse = -1;
  11002. function gutterOver(num) {
  11003. gutterOut();
  11004. var newTR = document.getElementById('gr_svn7768_' + num);
  11005. if (newTR) {
  11006. newTR.className = 'undermouse';
  11007. }
  11008. lineNumUnderMouse = num;
  11009. }
  11010. function gutterOut() {
  11011. if (lineNumUnderMouse != -1) {
  11012. var oldTR = document.getElementById(
  11013. 'gr_svn7768_' + lineNumUnderMouse);
  11014. if (oldTR) {
  11015. oldTR.className = '';
  11016. }
  11017. lineNumUnderMouse = -1;
  11018. }
  11019. }
  11020. var numsGenState = {table_base_id: 'nums_table_'};
  11021. var srcGenState = {table_base_id: 'src_table_'};
  11022. var alignerRunning = false;
  11023. var startOver = false;
  11024. function setLineNumberHeights() {
  11025. if (alignerRunning) {
  11026. startOver = true;
  11027. return;
  11028. }
  11029. numsGenState.chunk_id = 0;
  11030. numsGenState.table = document.getElementById('nums_table_0');
  11031. numsGenState.row_num = 0;
  11032. srcGenState.chunk_id = 0;
  11033. srcGenState.table = document.getElementById('src_table_0');
  11034. srcGenState.row_num = 0;
  11035. alignerRunning = true;
  11036. continueToSetLineNumberHeights();
  11037. }
  11038. function rowGenerator(genState) {
  11039. if (genState.row_num < genState.table.rows.length) {
  11040. var currentRow = genState.table.rows[genState.row_num];
  11041. genState.row_num++;
  11042. return currentRow;
  11043. }
  11044. var newTable = document.getElementById(
  11045. genState.table_base_id + (genState.chunk_id + 1));
  11046. if (newTable) {
  11047. genState.chunk_id++;
  11048. genState.row_num = 0;
  11049. genState.table = newTable;
  11050. return genState.table.rows[0];
  11051. }
  11052. return null;
  11053. }
  11054. var MAX_ROWS_PER_PASS = 1000;
  11055. function continueToSetLineNumberHeights() {
  11056. var rowsInThisPass = 0;
  11057. var numRow = 1;
  11058. var srcRow = 1;
  11059. while (numRow && srcRow && rowsInThisPass < MAX_ROWS_PER_PASS) {
  11060. numRow = rowGenerator(numsGenState);
  11061. srcRow = rowGenerator(srcGenState);
  11062. rowsInThisPass++;
  11063. if (numRow && srcRow) {
  11064. if (numRow.offsetHeight != srcRow.offsetHeight) {
  11065. numRow.firstChild.style.height = srcRow.offsetHeight + 'px';
  11066. }
  11067. }
  11068. }
  11069. if (rowsInThisPass >= MAX_ROWS_PER_PASS) {
  11070. setTimeout(continueToSetLineNumberHeights, 10);
  11071. } else {
  11072. alignerRunning = false;
  11073. if (startOver) {
  11074. startOver = false;
  11075. setTimeout(setLineNumberHeights, 500);
  11076. }
  11077. }
  11078. }
  11079. // Do 2 complete passes, because there can be races
  11080. // between this code and prettify.
  11081. startOver = true;
  11082. setTimeout(setLineNumberHeights, 250);
  11083. window.onresize = setLineNumberHeights;
  11084. </script>
  11085. <div id="log">
  11086. <div style="text-align:right">
  11087. <a class="ifCollapse" href="#" onclick="_toggleMeta('', 'p', 'processing', this)">Show details</a>
  11088. <a class="ifExpand" href="#" onclick="_toggleMeta('', 'p', 'processing', this)">Hide details</a>
  11089. </div>
  11090. <div class="ifExpand">
  11091. <div class="pmeta_bubble_bg" style="border:1px solid white">
  11092. <div class="round4"></div>
  11093. <div class="round2"></div>
  11094. <div class="round1"></div>
  11095. <div class="box-inner">
  11096. <div id="changelog">
  11097. <p>Change log</p>
  11098. <div>
  11099. <a href="/p/processing/source/detail?spec=svn7768&r=7453">r7453</a>
  11100. by f...@processing.org
  11101. on Nov 24, 2010
  11102. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=7453&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PGraphics2D.java&amp;old_path=/trunk/processing/core/src/processing/core/PGraphics2D.java&amp;old=5653">Diff</a>
  11103. </div>
  11104. <pre>implement shearX/Y for P2D and JAVA2D
  11105. </pre>
  11106. </div>
  11107. <script type="text/javascript">
  11108. var detail_url = '/p/processing/source/detail?r=7453&spec=svn7768';
  11109. var publish_url = '/p/processing/source/detail?r=7453&spec=svn7768#publish';
  11110. // describe the paths of this revision in javascript.
  11111. var changed_paths = [];
  11112. var changed_urls = [];
  11113. changed_paths.push('/trunk/processing/core/src/processing/core/PGraphics2D.java');
  11114. changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics2D.java?r\x3d7453\x26spec\x3dsvn7768');
  11115. var selected_path = '/trunk/processing/core/src/processing/core/PGraphics2D.java';
  11116. changed_paths.push('/trunk/processing/core/src/processing/core/PGraphicsJava2D.java');
  11117. changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphicsJava2D.java?r\x3d7453\x26spec\x3dsvn7768');
  11118. changed_paths.push('/trunk/processing/core/todo.txt');
  11119. changed_urls.push('/p/processing/source/browse/trunk/processing/core/todo.txt?r\x3d7453\x26spec\x3dsvn7768');
  11120. function getCurrentPageIndex() {
  11121. for (var i = 0; i < changed_paths.length; i++) {
  11122. if (selected_path == changed_paths[i]) {
  11123. return i;
  11124. }
  11125. }
  11126. }
  11127. function getNextPage() {
  11128. var i = getCurrentPageIndex();
  11129. if (i < changed_paths.length - 1) {
  11130. return changed_urls[i + 1];
  11131. }
  11132. return null;
  11133. }
  11134. function getPreviousPage() {
  11135. var i = getCurrentPageIndex();
  11136. if (i > 0) {
  11137. return changed_urls[i - 1];
  11138. }
  11139. return null;
  11140. }
  11141. function gotoNextPage() {
  11142. var page = getNextPage();
  11143. if (!page) {
  11144. page = detail_url;
  11145. }
  11146. window.location = page;
  11147. }
  11148. function gotoPreviousPage() {
  11149. var page = getPreviousPage();
  11150. if (!page) {
  11151. page = detail_url;
  11152. }
  11153. window.location = page;
  11154. }
  11155. function gotoDetailPage() {
  11156. window.location = detail_url;
  11157. }
  11158. function gotoPublishPage() {
  11159. window.location = publish_url;
  11160. }
  11161. </script>
  11162. <style type="text/css">
  11163. #review_nav {
  11164. border-top: 3px solid white;
  11165. padding-top: 6px;
  11166. margin-top: 1em;
  11167. }
  11168. #review_nav td {
  11169. vertical-align: middle;
  11170. }
  11171. #review_nav select {
  11172. margin: .5em 0;
  11173. }
  11174. </style>
  11175. <div id="review_nav">
  11176. <table><tr><td>Go to:&nbsp;</td><td>
  11177. <select name="files_in_rev" onchange="window.location=this.value">
  11178. <option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics2D.java?r=7453&amp;spec=svn7768"
  11179. selected="selected"
  11180. >...processing/core/PGraphics2D.java</option>
  11181. <option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphicsJava2D.java?r=7453&amp;spec=svn7768"
  11182. >...essing/core/PGraphicsJava2D.java</option>
  11183. <option value="/p/processing/source/browse/trunk/processing/core/todo.txt?r=7453&amp;spec=svn7768"
  11184. >/trunk/processing/core/todo.txt</option>
  11185. </select>
  11186. </td></tr></table>
  11187. </div>
  11188. </div>
  11189. <div class="round1"></div>
  11190. <div class="round2"></div>
  11191. <div class="round4"></div>
  11192. </div>
  11193. <div class="pmeta_bubble_bg" style="border:1px solid white">
  11194. <div class="round4"></div>
  11195. <div class="round2"></div>
  11196. <div class="round1"></div>
  11197. <div class="box-inner">
  11198. <div id="older_bubble">
  11199. <p>Older revisions</p>
  11200. <div class="closed" style="margin-bottom:3px;" >
  11201. <img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
  11202. <img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
  11203. <a href="/p/processing/source/detail?spec=svn7768&r=5653">r5653</a>
  11204. by fry
  11205. on Jul 31, 2009
  11206. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=5653&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PGraphics2D.java&amp;old_path=/trunk/processing/core/src/processing/core/PGraphics2D.java&amp;old=5646">Diff</a>
  11207. <br>
  11208. <pre class="ifOpened">image() doesn't work with P2D, P3D,
  11209. and OPENGL with noFill() (bug #1299)
  11210. </pre>
  11211. </div>
  11212. <div class="closed" style="margin-bottom:3px;" >
  11213. <img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
  11214. <img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
  11215. <a href="/p/processing/source/detail?spec=svn7768&r=5646">r5646</a>
  11216. by fry
  11217. on Jul 13, 2009
  11218. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=5646&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PGraphics2D.java&amp;old_path=/trunk/processing/core/src/processing/core/PGraphics2D.java&amp;old=5603">Diff</a>
  11219. <br>
  11220. <pre class="ifOpened">fix lines that are 2x too wide (bug
  11221. #1283)
  11222. </pre>
  11223. </div>
  11224. <div class="closed" style="margin-bottom:3px;" >
  11225. <img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
  11226. <img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
  11227. <a href="/p/processing/source/detail?spec=svn7768&r=5603">r5603</a>
  11228. by fry
  11229. on May 31, 2009
  11230. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=5603&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PGraphics2D.java&amp;old_path=/trunk/processing/core/src/processing/core/PGraphics2D.java&amp;old=5482">Diff</a>
  11231. <br>
  11232. <pre class="ifOpened">fix problem with imageMode(CENTER) in
  11233. P2D (bug #1232)
  11234. </pre>
  11235. </div>
  11236. <a href="/p/processing/source/list?path=/trunk/processing/core/src/processing/core/PGraphics2D.java&start=7453">All revisions of this file</a>
  11237. </div>
  11238. </div>
  11239. <div class="round1"></div>
  11240. <div class="round2"></div>
  11241. <div class="round4"></div>
  11242. </div>
  11243. <div class="pmeta_bubble_bg" style="border:1px solid white">
  11244. <div class="round4"></div>
  11245. <div class="round2"></div>
  11246. <div class="round1"></div>
  11247. <div class="box-inner">
  11248. <div id="fileinfo_bubble">
  11249. <p>File info</p>
  11250. <div>Size: 61062 bytes,
  11251. 2154 lines</div>
  11252. <div><a href="http://processing.googlecode.com/svn/trunk/processing/core/src/processing/core/PGraphics2D.java">View raw file</a></div>
  11253. </div>
  11254. </div>
  11255. <div class="round1"></div>
  11256. <div class="round2"></div>
  11257. <div class="round4"></div>
  11258. </div>
  11259. </div>
  11260. </div>
  11261. </div>
  11262. </div>
  11263. </div>
  11264. <script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/prettify/prettify.js"></script>
  11265. <script type="text/javascript">prettyPrint();</script>
  11266. <script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/source_file_scripts.js"></script>
  11267. <script type="text/javascript" src="https://kibbles.googlecode.com/files/kibbles-1.3.3.comp.js"></script>
  11268. <script type="text/javascript">
  11269. var lastStop = null;
  11270. var initilized = false;
  11271. function updateCursor(next, prev) {
  11272. if (prev && prev.element) {
  11273. prev.element.className = 'cursor_stop cursor_hidden';
  11274. }
  11275. if (next && next.element) {
  11276. next.element.className = 'cursor_stop cursor';
  11277. lastStop = next.index;
  11278. }
  11279. }
  11280. function pubRevealed(data) {
  11281. updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
  11282. if (initilized) {
  11283. reloadCursors();
  11284. }
  11285. }
  11286. function draftRevealed(data) {
  11287. updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
  11288. if (initilized) {
  11289. reloadCursors();
  11290. }
  11291. }
  11292. function draftDestroyed(data) {
  11293. updateCursorForCell(data.cellId, 'nocursor');
  11294. if (initilized) {
  11295. reloadCursors();
  11296. }
  11297. }
  11298. function reloadCursors() {
  11299. kibbles.skipper.reset();
  11300. loadCursors();
  11301. if (lastStop != null) {
  11302. kibbles.skipper.setCurrentStop(lastStop);
  11303. }
  11304. }
  11305. // possibly the simplest way to insert any newly added comments
  11306. // is to update the class of the corresponding cursor row,
  11307. // then refresh the entire list of rows.
  11308. function updateCursorForCell(cellId, className) {
  11309. var cell = document.getElementById(cellId);
  11310. // we have to go two rows back to find the cursor location
  11311. var row = getPreviousElement(cell.parentNode);
  11312. row.className = className;
  11313. }
  11314. // returns the previous element, ignores text nodes.
  11315. function getPreviousElement(e) {
  11316. var element = e.previousSibling;
  11317. if (element.nodeType == 3) {
  11318. element = element.previousSibling;
  11319. }
  11320. if (element && element.tagName) {
  11321. return element;
  11322. }
  11323. }
  11324. function loadCursors() {
  11325. // register our elements with skipper
  11326. var elements = CR_getElements('*', 'cursor_stop');
  11327. var len = elements.length;
  11328. for (var i = 0; i < len; i++) {
  11329. var element = elements[i];
  11330. element.className = 'cursor_stop cursor_hidden';
  11331. kibbles.skipper.append(element);
  11332. }
  11333. }
  11334. function toggleComments() {
  11335. CR_toggleCommentDisplay();
  11336. reloadCursors();
  11337. }
  11338. function keysOnLoadHandler() {
  11339. // setup skipper
  11340. kibbles.skipper.addStopListener(
  11341. kibbles.skipper.LISTENER_TYPE.PRE, updateCursor);
  11342. // Set the 'offset' option to return the middle of the client area
  11343. // an option can be a static value, or a callback
  11344. kibbles.skipper.setOption('padding_top', 50);
  11345. // Set the 'offset' option to return the middle of the client area
  11346. // an option can be a static value, or a callback
  11347. kibbles.skipper.setOption('padding_bottom', 100);
  11348. // Register our keys
  11349. kibbles.skipper.addFwdKey("n");
  11350. kibbles.skipper.addRevKey("p");
  11351. kibbles.keys.addKeyPressListener(
  11352. 'u', function() { window.location = detail_url; });
  11353. kibbles.keys.addKeyPressListener(
  11354. 'r', function() { window.location = detail_url + '#publish'; });
  11355. kibbles.keys.addKeyPressListener('j', gotoNextPage);
  11356. kibbles.keys.addKeyPressListener('k', gotoPreviousPage);
  11357. }
  11358. </script>
  11359. <script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/code_review_scripts.js"></script>
  11360. <script type="text/javascript">
  11361. // the comment form template
  11362. var form = '<div class="draft"><div class="header"><span class="title">Draft comment:</span></div>' +
  11363. '<div class="body"><form onsubmit="return false;"><textarea id="$ID">$BODY</textarea><br>$ACTIONS</form></div>' +
  11364. '</div>';
  11365. // the comment "plate" template used for both draft and published comment "plates".
  11366. var draft_comment = '<div class="draft" ondblclick="$ONDBLCLICK">' +
  11367. '<div class="header"><span class="title">Draft comment:</span><span class="actions">$ACTIONS</span></div>' +
  11368. '<pre id="$ID" class="body">$BODY</pre>' +
  11369. '</div>';
  11370. var published_comment = '<div class="published">' +
  11371. '<div class="header"><span class="title"><a href="$PROFILE_URL">$AUTHOR:</a></span><div>' +
  11372. '<pre id="$ID" class="body">$BODY</pre>' +
  11373. '</div>';
  11374. function showPublishInstructions() {
  11375. var element = document.getElementById('review_instr');
  11376. if (element) {
  11377. element.className = 'opened';
  11378. }
  11379. }
  11380. function revsOnLoadHandler() {
  11381. // register our source container with the commenting code
  11382. var paths = {'svn7768': '/trunk/processing/core/src/processing/core/PGraphics2D.java'}
  11383. CR_setup('', 'p', 'processing', '', 'svn7768', paths,
  11384. 'c6974bcd72eb95455827185f7306e1fa', CR_BrowseIntegrationFactory);
  11385. // register our hidden ui elements with the code commenting code ui builder.
  11386. CR_registerLayoutElement('form', form);
  11387. CR_registerLayoutElement('draft_comment', draft_comment);
  11388. CR_registerLayoutElement('published_comment', published_comment);
  11389. CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, showPublishInstructions);
  11390. CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_PUB_PLATE, pubRevealed);
  11391. CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, draftRevealed);
  11392. CR_registerActivityListener(CR_ACTIVITY_TYPE.DISCARD_DRAFT_COMMENT, draftDestroyed);
  11393. var initilized = true;
  11394. reloadCursors();
  11395. }
  11396. window.onload = function() {keysOnLoadHandler(); revsOnLoadHandler();};
  11397. </script>
  11398. <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/dit_scripts.js"></script>
  11399. <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/core_scripts_20081103.js"></script>
  11400. <script type="text/javascript" src="/js/codesite_product_dictionary_ph.pack.04102009.js"></script>
  11401. </div>
  11402. <div id="footer" dir="ltr">
  11403. <div class="text">
  11404. &copy;2010 Google -
  11405. <a href="/projecthosting/terms.html">Terms</a> -
  11406. <a href="http://www.google.com/privacy.html">Privacy</a> -
  11407. <a href="/p/support/">Project Hosting Help</a>
  11408. </div>
  11409. </div>
  11410. <div class="hostedBy" style="margin-top: -20px;">
  11411. <span style="vertical-align: top;">Powered by <a href="http://code.google.com/projecthosting/">Google Project Hosting</a></span>
  11412. </div>
  11413. <script type="text/javascript">_CS_reportToCsi();</script>
  11414. </body>
  11415. </html>