<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>12425</bug_id>
          
          <creation_ts>2007-01-26 12:50:34 -0800</creation_ts>
          <short_desc>border-radius not applied to fieldset with legend</short_desc>
          <delta_ts>2008-06-21 10:46:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="nerkles">nerkles</reporter>
          <assigned_to name="Alex Taylor">darwin</assigned_to>
          <cc>darwin</cc>
    
    <cc>dev+webkit</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>32333</commentid>
    <comment_count>0</comment_count>
    <who name="nerkles">nerkles</who>
    <bug_when>2007-01-26 12:50:34 -0800</bug_when>
    <thetext>border-radius not applied to fieldset</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32328</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-26 12:58:44 -0800</bug_when>
    <thetext>Confirmed. Changed component to Layout &amp; Rendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32228</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-01-26 17:25:50 -0800</bug_when>
    <thetext>I cannot reproduce this in ToT.  Could you please attach a test case demonstrating border-radius not working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32224</commentid>
    <comment_count>3</comment_count>
      <attachid>12700</attachid>
    <who name="nerkles">nerkles</who>
    <bug_when>2007-01-26 17:49:59 -0800</bug_when>
    <thetext>Created attachment 12700
Shows the bug.

I hadn&apos;t noticed that the bug only appears if the fieldset includes a LEGEND. Sorry about that. Here&apos;s a test file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83285</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Taylor">darwin</who>
    <bug_when>2008-06-13 20:28:53 -0700</bug_when>
    <thetext>I&apos;ll take this one, RenderFieldset has a separate border drawing code path if there is a legend present to make sure the border doesn&apos;t overlap the legend. It needs to be upgraded to deal with Border Radii.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83748</commentid>
    <comment_count>5</comment_count>
      <attachid>21812</attachid>
    <who name="Alex Taylor">darwin</who>
    <bug_when>2008-06-18 04:02:33 -0700</bug_when>
    <thetext>Created attachment 21812
Implements border radius logic for a fieldset, based off RenderObject&apos;s implementation

This patch implements the border radius logic based off RenderObject&apos;s implementation but with parts that make sure the area around the legend is excluded. This just extends the current &quot;draw the border pieces that don&apos;t overlap the legend&quot; logic with some additional trigonometry to make the arcs shorter if the legend will overlap rather than just not rendering a corner piece.

This seems to work well but I think we should instead make the legend be an clipped region of the border rather than &apos;avoiding drawing the border where the legend is&apos; as the current (and this) implementation does. If that is the case, this entire function can hopefully be removed and the RenderObject version used, that would be a separate bug though.

Firefox uses the clipped method, they clip the border around the bounding box of the legend element.

This patch is for review only, no tests have been included in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83749</commentid>
    <comment_count>6</comment_count>
      <attachid>21813</attachid>
    <who name="Alex Taylor">darwin</who>
    <bug_when>2008-06-18 04:04:19 -0700</bug_when>
    <thetext>Created attachment 21813
Additional test case.

 This displays many different situations that the legend can be in. Probably the basis for a layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83750</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Taylor">darwin</who>
    <bug_when>2008-06-18 04:10:09 -0700</bug_when>
    <thetext>Also, there are (double) and (int) c-style casts in there, should I be using static casts or another method, I haven&apos;t done any C++ casting in the past besides c-style so I need some pointers there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84024</commentid>
    <comment_count>8</comment_count>
      <attachid>21867</attachid>
    <who name="Alex Taylor">darwin</who>
    <bug_when>2008-06-20 18:36:24 -0700</bug_when>
    <thetext>Created attachment 21867
Method two: using a clipping region

This patch uses the alternate way of clipping the legend. It clips the region where they legend will be displayed. 

This keeps the rendering consistent with the current case where there are no border radii but adds support but calling the parent&apos;s &quot;paintBoxDecorations&quot; method to follow the default code path but with a clipping region attached.

This uses a lot less code than the current way of drawing the pieces around the legend and trying to not draw over the top of it. It also prevents code duplication between drawing borders for a fieldset and for a generic object. 

As a side note, testing showed that this is consistent with how Firefox handles the border radius + legend case on a fieldset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84025</commentid>
    <comment_count>9</comment_count>
      <attachid>21867</attachid>
    <who name="">mitz</who>
    <bug_when>2008-06-20 18:45:19 -0700</bug_when>
    <thetext>Comment on attachment 21867
Method two: using a clipping region

I like this approach much better than the other patch&apos;s. However, if you are removing the only call site to paintBorderMinusLegend(), you should also remove the method. Alternatively, you can choose to keep using it in the straight-corner case, since arguably clipping (and saving and restoring the graphics state) incurs a small performance cost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84027</commentid>
    <comment_count>10</comment_count>
      <attachid>21868</attachid>
    <who name="Alex Taylor">darwin</who>
    <bug_when>2008-06-20 19:49:21 -0700</bug_when>
    <thetext>Created attachment 21868
Method two: using a clipping region with no border radius speed up

This patch adds a speed up to prevent unnecessary saving and restoring of the graphics context when we don&apos;t have border radii to deal with. 

Also added 3 layout tests for left align legend, right aligned legend and a really fat bordered fieldset where the clipping region is obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84028</commentid>
    <comment_count>11</comment_count>
      <attachid>21868</attachid>
    <who name="">mitz</who>
    <bug_when>2008-06-20 20:05:46 -0700</bug_when>
    <thetext>Comment on attachment 21868
Method two: using a clipping region with no border radius speed up

Looks good! A few comments:

1) Please add the bug URL and title to the change log and add change log comments about the code changes in each function.

2) Won&apos;t this paint fill layers a second time (except behind the legend)?

+    RenderBlock::paintBoxDecorations(paintInfo, tx, ty);

Why are you not calling just paintBorder()?

3) Likewise, the change log for LayoutTests should include a reference to the bug. You should generate results (including pixel results) and include them in the patch.

4) Please add newlines:
\ No newline at end of file

5) I think a single test containing the three separate cases would be better (make sure everything fits into the 800x600 rectangle that&apos;s included in pixel test results). Maybe something like LayoutTests/fast/block/basic/fieldset-stretch-to-legend.html , only adding border-radius, to cover all interesting cases.

r- for now mostly because of 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84029</commentid>
    <comment_count>12</comment_count>
      <attachid>21867</attachid>
    <who name="">mitz</who>
    <bug_when>2008-06-20 20:06:15 -0700</bug_when>
    <thetext>Comment on attachment 21867
Method two: using a clipping region

Removing the review flag, assuming this is obsoleted by the later patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84034</commentid>
    <comment_count>13</comment_count>
      <attachid>21869</attachid>
    <who name="Alex Taylor">darwin</who>
    <bug_when>2008-06-20 23:06:00 -0700</bug_when>
    <thetext>Created attachment 21869
Method two: using a clipping region

Addressed mitz concerns and changed call to paintBorderDecorations to paintBorder which was incorrect before.

Added expected results to pixel test and created composite test case based from the base fieldset test,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84035</commentid>
    <comment_count>14</comment_count>
      <attachid>21869</attachid>
    <who name="">mitz</who>
    <bug_when>2008-06-20 23:13:14 -0700</bug_when>
    <thetext>Comment on attachment 21869
Method two: using a clipping region

r=me

 LayoutTests/ChangeLog should include the expected results files, too, but this time the person landing the patch will have to add them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84043</commentid>
    <comment_count>15</comment_count>
    <who name="">mitz</who>
    <bug_when>2008-06-21 10:46:44 -0700</bug_when>
    <thetext>Landed in &lt;http://trac.webkit.org/changeset/34715&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>12700</attachid>
            <date>2007-01-26 17:49:59 -0800</date>
            <delta_ts>2007-01-26 17:49:59 -0800</delta_ts>
            <desc>Shows the bug.</desc>
            <filename>border-radius.html</filename>
            <type>text/html</type>
            <size>858</size>
            <attacher name="nerkles">nerkles</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
CSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KCjxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxh
bmc9ImVuIj4KPGhlYWQ+Cgk8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkhUTUwgVGlk
eSBmb3IgTWFjIE9TIFggKHZlcnMgMXN0IERlY2VtYmVyIDIwMDQpLCBzZWUgd3d3LnczLm9yZyIg
Lz4KCTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PXV0Zi04IiAvPgoKCTx0aXRsZT51bnRpdGxlZDwvdGl0bGU+CjwvaGVhZD4KCjxib2R5
PgoJPGZvcm0+CgkJPGZpZWxkc2V0IHN0eWxlPSItd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsg
Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij4KCQkJPGxlZ2VuZD5NeSBGaWVsZHNldDwvbGVnZW5k
PgoKCQkJPHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CgkJPC9maWVsZHNl
dD4KCTwvZm9ybT4KCgk8Zm9ybT4KCQk8ZmllbGRzZXQgc3R5bGU9Ii13ZWJraXQtYm9yZGVyLXJh
ZGl1czogNXB4OyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPgoJCQk8cD5TdHVmZiBpbiBhIGZp
ZWxkc2V0IHdpdGhvdXQgbGVnZW5kLjwvcD4KCQk8L2ZpZWxkc2V0PgoJPC9mb3JtPgoKCTxkaXYg
c3R5bGU9Ii13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OyBib3JkZXI6IDFweCBzb2xpZCBibGFj
azsgcGFkZGluZzogMWVtIj4KCQlTdHVmZiBpbiBhIGRpdi4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21812</attachid>
            <date>2008-06-18 04:02:33 -0700</date>
            <delta_ts>2008-06-20 18:36:24 -0700</delta_ts>
            <desc>Implements border radius logic for a fieldset, based off RenderObject&apos;s implementation</desc>
            <filename>Fieldset and Legend Border Radius.diff</filename>
            <type>text/plain</type>
            <size>26411</size>
            <attacher name="Alex Taylor">darwin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDY0NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMDgtMDYtMTggIEFsZXggVGF5bG9yICA8ZGFyd2luQG1pbGxpYW1w
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
QVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJGaWVsZHNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWVsZHNl
dDo6cGFpbnRCb3JkZXJNaW51c0xlZ2VuZCk6CisKIDIwMDgtMDYtMTggIENocmlzdGlhbiBEeXdh
biAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+CiAKICAgICAgICAgR3RrIGJ1aWxkIGZpeCwgYnJv
dWdodCB1cCBieSBEaXJrIFNjaHVsemUuCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
aWVsZHNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRz
ZXQuY3BwCShyZXZpc2lvbiAzNDUyNSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxk
c2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSFRN
TEdlbmVyaWNGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgogCiB1c2luZyBzdGQ6Om1pbjsKIHVzaW5nIHN0ZDo6bWF4OwpA
QCAtMTU2LDkwICsxNTcsNDc2IEBAIHZvaWQgUmVuZGVyRmllbGRzZXQ6OnBhaW50TWFzayhQYWlu
dEluZm8KIAogICAgIHBhaW50TWFza0ltYWdlcyhwYWludEluZm8sIG15LCBtaCwgdHgsIHR5LCB3
LCBoKTsKIH0KLSAgICAgICAgCisKIHZvaWQgUmVuZGVyRmllbGRzZXQ6OnBhaW50Qm9yZGVyTWlu
dXNMZWdlbmQoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGludCB0eCwgaW50IHR5
LCBpbnQgdywgaW50IGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgaW50IGx4LCBpbnQgbHcsIGludCBsYikKIHsK
LSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGJvcmRlci1yYWRpdXMKICAgICBjb25zdCBDb2xvciYg
dGMgPSBzdHlsZS0+Ym9yZGVyVG9wQ29sb3IoKTsKICAgICBjb25zdCBDb2xvciYgYmMgPSBzdHls
ZS0+Ym9yZGVyQm90dG9tQ29sb3IoKTsKKyAgICBjb25zdCBDb2xvciYgbGMgPSBzdHlsZS0+Ym9y
ZGVyTGVmdENvbG9yKCk7CisgICAgY29uc3QgQ29sb3ImIHJjID0gc3R5bGUtPmJvcmRlclJpZ2h0
Q29sb3IoKTsKKworICAgIGJvb2wgdHQgPSBzdHlsZS0+Ym9yZGVyVG9wSXNUcmFuc3BhcmVudCgp
OworICAgIGJvb2wgYnQgPSBzdHlsZS0+Ym9yZGVyQm90dG9tSXNUcmFuc3BhcmVudCgpOworICAg
IGJvb2wgcnQgPSBzdHlsZS0+Ym9yZGVyUmlnaHRJc1RyYW5zcGFyZW50KCk7CisgICAgYm9vbCBs
dCA9IHN0eWxlLT5ib3JkZXJMZWZ0SXNUcmFuc3BhcmVudCgpOwogCiAgICAgRUJvcmRlclN0eWxl
IHRzID0gc3R5bGUtPmJvcmRlclRvcFN0eWxlKCk7CiAgICAgRUJvcmRlclN0eWxlIGJzID0gc3R5
bGUtPmJvcmRlckJvdHRvbVN0eWxlKCk7CiAgICAgRUJvcmRlclN0eWxlIGxzID0gc3R5bGUtPmJv
cmRlckxlZnRTdHlsZSgpOwogICAgIEVCb3JkZXJTdHlsZSBycyA9IHN0eWxlLT5ib3JkZXJSaWdo
dFN0eWxlKCk7CiAKLSAgICBib29sIHJlbmRlcl90ID0gdHMgPiBCSElEREVOOwotICAgIGJvb2wg
cmVuZGVyX2wgPSBscyA+IEJISURERU47Ci0gICAgYm9vbCByZW5kZXJfciA9IHJzID4gQkhJRERF
TjsKLSAgICBib29sIHJlbmRlcl9iID0gYnMgPiBCSElEREVOOworICAgIGJvb2wgcmVuZGVyVG9w
ID0gdHMgPiBCSElEREVOICYmICF0dDsKKyAgICBib29sIHJlbmRlckxlZnQgPSBscyA+IEJISURE
RU4gJiYgIWx0OworICAgIGJvb2wgcmVuZGVyUmlnaHQgPSBycyA+IEJISURERU4gJiYgIXJ0Owor
ICAgIGJvb2wgcmVuZGVyQm90dG9tID0gYnMgPiBCSElEREVOICYmICFidDsKIAogICAgIGludCBi
b3JkZXJMZWZ0V2lkdGggPSBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCk7CiAgICAgaW50IGJvcmRl
clJpZ2h0V2lkdGggPSBzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpOwogCi0gICAgaWYgKHJlbmRl
cl90KSB7Ci0gICAgICAgIGlmIChseCA+PSBib3JkZXJMZWZ0V2lkdGgpCi0gICAgICAgICAgICBk
cmF3Qm9yZGVyKGdyYXBoaWNzQ29udGV4dCwgdHgsIHR5LCB0eCArIG1pbihseCwgdyksIHR5ICsg
c3R5bGUtPmJvcmRlclRvcFdpZHRoKCksIEJTVG9wLCB0Yywgc3R5bGUtPmNvbG9yKCksIHRzLAot
ICAgICAgICAgICAgICAgICAgICAgICAocmVuZGVyX2wgJiYgKGxzID09IERPVFRFRCB8fCBscyA9
PSBEQVNIRUQgfHwgbHMgPT0gRE9VQkxFKSA/IGJvcmRlckxlZnRXaWR0aCA6IDApLAotICAgICAg
ICAgICAgICAgICAgICAgICAobHggPj0gdyAmJiByZW5kZXJfciAmJiAocnMgPT0gRE9UVEVEIHx8
IHJzID09IERBU0hFRCB8fCBycyA9PSBET1VCTEUpID8gYm9yZGVyUmlnaHRXaWR0aCA6IDApKTsK
LSAgICAgICAgaWYgKGx4ICsgbHcgPD0gIHcgLSBib3JkZXJSaWdodFdpZHRoKQotICAgICAgICAg
ICAgZHJhd0JvcmRlcihncmFwaGljc0NvbnRleHQsIHR4ICsgbWF4KDAsIGx4ICsgbHcpLCB0eSwg
dHggKyB3LCB0eSArIHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpLCBCU1RvcCwgdGMsIHN0eWxlLT5j
b2xvcigpLCB0cywKLSAgICAgICAgICAgICAgICAgICAgICAgKGx4ICsgbHcgPD0gMCAmJiByZW5k
ZXJfbCAmJiAobHMgPT0gRE9UVEVEIHx8IGxzID09IERBU0hFRCB8fCBscyA9PSBET1VCTEUpID8g
Ym9yZGVyTGVmdFdpZHRoIDogMCksCi0gICAgICAgICAgICAgICAgICAgICAgIChyZW5kZXJfciAm
JiAocnMgPT0gRE9UVEVEIHx8IHJzID09IERBU0hFRCB8fCBycyA9PSBET1VCTEUpID8gYm9yZGVy
UmlnaHRXaWR0aCA6IDApKTsKLSAgICB9Ci0KLSAgICBpZiAocmVuZGVyX2IpCi0gICAgICAgIGRy
YXdCb3JkZXIoZ3JhcGhpY3NDb250ZXh0LCB0eCwgdHkgKyBoIC0gc3R5bGUtPmJvcmRlckJvdHRv
bVdpZHRoKCksIHR4ICsgdywgdHkgKyBoLCBCU0JvdHRvbSwgYmMsIHN0eWxlLT5jb2xvcigpLCBi
cywKLSAgICAgICAgICAgICAgICAgICAocmVuZGVyX2wgJiYgKGxzID09IERPVFRFRCB8fCBscyA9
PSBEQVNIRUQgfHwgbHMgPT0gRE9VQkxFKSA/IHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSA6IDAp
LAotICAgICAgICAgICAgICAgICAgIChyZW5kZXJfciAmJiAocnMgPT0gRE9UVEVEIHx8IHJzID09
IERBU0hFRCB8fCBycyA9PSBET1VCTEUpID8gc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSA6IDAp
KTsKKyAgICAvLyBOZWVkIHN1ZmZpY2llbnQgd2lkdGggYW5kIGhlaWdodCB0byBjb250YWluIGJv
cmRlciByYWRpdXMgY3VydmVzLiAgU2FuaXR5IGNoZWNrIG91ciBib3JkZXIgcmFkaWkKKyAgICAv
LyBhbmQgb3VyIHdpZHRoL2hlaWdodCB2YWx1ZXMgdG8gbWFrZSBzdXJlIHRoZSBjdXJ2ZXMgY2Fu
IGFsbCBmaXQuIElmIG5vdCwgdGhlbiB3ZSB3b24ndCBwYWludAorICAgIC8vIGFueSBib3JkZXIg
cmFkaWkuCisgICAgYm9vbCByZW5kZXJSYWRpaSA9IGZhbHNlOworICAgIEludFNpemUgdG9wTGVm
dCA9IHN0eWxlLT5ib3JkZXJUb3BMZWZ0UmFkaXVzKCk7CisgICAgSW50U2l6ZSB0b3BSaWdodCA9
IHN0eWxlLT5ib3JkZXJUb3BSaWdodFJhZGl1cygpOworICAgIEludFNpemUgYm90dG9tTGVmdCA9
IHN0eWxlLT5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzKCk7CisgICAgSW50U2l6ZSBib3R0b21SaWdo
dCA9IHN0eWxlLT5ib3JkZXJCb3R0b21SaWdodFJhZGl1cygpOworCisgICAgaWYgKHN0eWxlLT5o
YXNCb3JkZXJSYWRpdXMoKSAmJgorICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odykgPj0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHRvcExlZnQud2lkdGgoKSkgKyBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4odG9wUmlnaHQud2lkdGgoKSkgJiYKKyAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHcpID49IHN0YXRpY19jYXN0PHVuc2lnbmVkPihib3R0b21MZWZ0LndpZHRoKCkpICsgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGJvdHRvbVJpZ2h0LndpZHRoKCkpICYmCisgICAgICAgIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihoKSA+PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odG9wTGVmdC5oZWlnaHQo
KSkgKyBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYm90dG9tTGVmdC5oZWlnaHQoKSkgJiYKKyAgICAg
ICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGgpID49IHN0YXRpY19jYXN0PHVuc2lnbmVkPih0b3BS
aWdodC5oZWlnaHQoKSkgKyBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYm90dG9tUmlnaHQuaGVpZ2h0
KCkpKQorICAgICAgICByZW5kZXJSYWRpaSA9IHRydWU7CisKKyAgICAvLyBDbGlwIHRvIHRoZSBy
b3VuZGVkIHJlY3RhbmdsZS4KKyAgICBpZiAocmVuZGVyUmFkaWkpIHsKKyAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LT5zYXZlKCk7CisgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+YWRkUm91bmRlZFJl
Y3RDbGlwKEludFJlY3QodHgsIHR5LCB3LCBoKSwgdG9wTGVmdCwgdG9wUmlnaHQsIGJvdHRvbUxl
ZnQsIGJvdHRvbVJpZ2h0KTsKKyAgICB9CisKKyAgICBpbnQgZmlyc3RBbmdsZVN0YXJ0LCBzZWNv
bmRBbmdsZVN0YXJ0LCBmaXJzdEFuZ2xlU3Bhbiwgc2Vjb25kQW5nbGVTcGFuOworICAgIGZsb2F0
IHRoaWNrbmVzczsKKyAgICBib29sIHVwcGVyTGVmdEJvcmRlclN0eWxlc01hdGNoID0gcmVuZGVy
TGVmdCAmJiAodHMgPT0gbHMpICYmICh0YyA9PSBsYyk7CisgICAgYm9vbCB1cHBlclJpZ2h0Qm9y
ZGVyU3R5bGVzTWF0Y2ggPSByZW5kZXJSaWdodCAmJiAodHMgPT0gcnMpICYmICh0YyA9PSByYykg
JiYgKHRzICE9IE9VVFNFVCkgJiYgKHRzICE9IFJJREdFKSAmJiAodHMgIT0gSU5TRVQpICYmICh0
cyAhPSBHUk9PVkUpOworICAgIGJvb2wgbG93ZXJMZWZ0Qm9yZGVyU3R5bGVzTWF0Y2ggPSByZW5k
ZXJMZWZ0ICYmIChicyA9PSBscykgJiYgKGJjID09IGxjKSAmJiAoYnMgIT0gT1VUU0VUKSAmJiAo
YnMgIT0gUklER0UpICYmIChicyAhPSBJTlNFVCkgJiYgKGJzICE9IEdST09WRSk7CisgICAgYm9v
bCBsb3dlclJpZ2h0Qm9yZGVyU3R5bGVzTWF0Y2ggPSByZW5kZXJSaWdodCAmJiAoYnMgPT0gcnMp
ICYmIChiYyA9PSByYyk7CisKKyAgICBib29sIGRyYXdVcHBlckxlZnRBcmMgPSB0cnVlOworICAg
IGJvb2wgZHJhd1VwcGVyUmlnaHRBcmMgPSB0cnVlOworICAgIGJvb2wgZHJhd0xlZnRVcHBlckFy
YyA9IHRydWU7CisgICAgLy9ib29sIGRyYXdSaWdodFVwcGVyQXJjID0gdHJ1ZTsKKworICAgIGlm
IChyZW5kZXJUb3ApIHsKKyAgICAgICAgYm9vbCBpZ25vcmVfbGVmdCA9IChyZW5kZXJSYWRpaSAm
JiB0b3BMZWZ0LndpZHRoKCkgPiAwKSB8fAorICAgICAgICAgICAgICh0YyA9PSBsYyAmJiB0dCA9
PSBsdCAmJiB0cyA+PSBPVVRTRVQgJiYKKyAgICAgICAgICAgICAobHMgPT0gRE9UVEVEIHx8IGxz
ID09IERBU0hFRCB8fCBscyA9PSBTT0xJRCB8fCBscyA9PSBPVVRTRVQpKTsKKworICAgICAgICBi
b29sIGlnbm9yZV9yaWdodCA9IChyZW5kZXJSYWRpaSAmJiB0b3BSaWdodC53aWR0aCgpID4gMCkg
fHwKKyAgICAgICAgICAgICAodGMgPT0gcmMgJiYgdHQgPT0gcnQgJiYgdHMgPj0gT1VUU0VUICYm
CisgICAgICAgICAgICAgKHJzID09IERPVFRFRCB8fCBycyA9PSBEQVNIRUQgfHwgcnMgPT0gU09M
SUQgfHwgcnMgPT0gSU5TRVQpKTsKKworICAgICAgICAvLyBUb3AgYm9yZGVyIHBhcnQgMSAobGVm
dCBvZiB0aGUgbGVnZW5kKQorICAgICAgICBpbnQgdDF4MSA9IHR4OworICAgICAgICBpbnQgdDF4
MiA9IHR4OworCisgICAgICAgIC8vIFRvcCBib3JkZXIgcGFydCAyIChyaWdodCBvZiB0aGUgbGVn
ZW5kKQorICAgICAgICBpbnQgdDJ4MSA9IHR4OworICAgICAgICBpbnQgdDJ4MiA9IHR4OworCisg
ICAgICAgIGlmIChyZW5kZXJSYWRpaSkgeworICAgICAgICAgICAgdDF4MSArPSB0b3BMZWZ0Lndp
ZHRoKCk7CisgICAgICAgICAgICB0MngyIC09IHRvcFJpZ2h0LndpZHRoKCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAobHggPj0gYm9yZGVyTGVmdFdpZHRoICYmIGx4ID49IHRvcExlZnQud2lk
dGgoKSkKKyAgICAgICAgICAgIGRyYXdCb3JkZXIoZ3JhcGhpY3NDb250ZXh0LCB0MXgxLCB0eSwg
dDF4MiArIG1pbihseCwgdyksIHR5ICsgc3R5bGUtPmJvcmRlclRvcFdpZHRoKCksIEJTVG9wLCB0
Yywgc3R5bGUtPmNvbG9yKCksIHRzLAorICAgICAgICAgICAgICAgICAgICAgICAoIWlnbm9yZV9s
ZWZ0ICYmIHJlbmRlckxlZnQgJiYgKGxzID09IERPVFRFRCB8fCBscyA9PSBEQVNIRUQgfHwgbHMg
PT0gRE9VQkxFKSA/IGJvcmRlckxlZnRXaWR0aCA6IDApLAorICAgICAgICAgICAgICAgICAgICAg
ICAobHggPj0gdyAmJiByZW5kZXJSaWdodCAmJiAocnMgPT0gRE9UVEVEIHx8IHJzID09IERBU0hF
RCB8fCBycyA9PSBET1VCTEUpID8gYm9yZGVyUmlnaHRXaWR0aCA6IDApKTsKKworICAgICAgICBp
ZiAobHggKyBsdyA8PSB3IC0gYm9yZGVyUmlnaHRXaWR0aCAmJiBseCArIGx3IDw9IHcgLSB0b3BS
aWdodC53aWR0aCgpKQorICAgICAgICAgICAgZHJhd0JvcmRlcihncmFwaGljc0NvbnRleHQsIHQy
eDEgKyBtYXgoMCwgbHggKyBsdyksIHR5LCB0MngyICsgdywgdHkgKyBzdHlsZS0+Ym9yZGVyVG9w
V2lkdGgoKSwgQlNUb3AsIHRjLCBzdHlsZS0+Y29sb3IoKSwgdHMsCisgICAgICAgICAgICAgICAg
ICAgICAgIChseCArIGx3IDw9IDAgJiYgcmVuZGVyTGVmdCAmJiAobHMgPT0gRE9UVEVEIHx8IGxz
ID09IERBU0hFRCB8fCBscyA9PSBET1VCTEUpID8gYm9yZGVyTGVmdFdpZHRoIDogMCksCisgICAg
ICAgICAgICAgICAgICAgICAgICghaWdub3JlX3JpZ2h0ICYmIHJlbmRlclJpZ2h0ICYmIChycyA9
PSBET1RURUQgfHwgcnMgPT0gREFTSEVEIHx8IHJzID09IERPVUJMRSkgPyBib3JkZXJSaWdodFdp
ZHRoIDogMCkpOworCisgICAgICAgIGlmIChyZW5kZXJSYWRpaSkgeworICAgICAgICAgICAgaW50
IGxlZnRZID0gdHk7CisKKyAgICAgICAgICAgIC8vIFdlIG1ha2UgdGhlIGFyYyBkb3VibGUgdGhp
Y2sgYW5kIGxldCB0aGUgY2xpcCByZWN0IHRha2UgY2FyZSBvZiBjbGlwcGluZyB0aGUgZXh0cmEg
b2ZmLgorICAgICAgICAgICAgLy8gV2UncmUgZG9pbmcgdGhpcyBiZWNhdXNlIGl0IGRvZXNuJ3Qg
c2VlbSBwb3NzaWJsZSB0byBtYXRjaCB0aGUgY3VydmUgb2YgdGhlIGNsaXAgZXhhY3RseQorICAg
ICAgICAgICAgLy8gd2l0aCB0aGUgYXJjLWRyYXdpbmcgZnVuY3Rpb24uCisgICAgICAgICAgICB0
aGlja25lc3MgPSBzdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSAqIDI7CisKKyAgICAgICAgICAgIGlm
ICh0b3BMZWZ0LndpZHRoKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGVmdFggPSB0eDsKKyAg
ICAgICAgICAgICAgICAvLyBUaGUgaW5uZXIgY2xpcCBjbGlwcyBpbnNpZGUgdGhlIGFyYy4gVGhp
cyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBmb3IgMXB4IGJvcmRlcnMuCisgICAgICAgICAgICAg
ICAgYm9vbCBhcHBseUxlZnRJbm5lckNsaXAgPSAoYm9yZGVyTGVmdFdpZHRoIDwgdG9wTGVmdC53
aWR0aCgpKQorICAgICAgICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRlclRvcFdpZHRoKCkg
PCB0b3BMZWZ0LmhlaWdodCgpKQorICAgICAgICAgICAgICAgICAgICAmJiAodHMgIT0gRE9VQkxF
IHx8IHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpID4gNik7CisgICAgICAgICAgICAgICAgaWYgKGFw
cGx5TGVmdElubmVyQ2xpcCkgeworICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQt
PnNhdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5hZGRJbm5lclJv
dW5kZWRSZWN0Q2xpcChJbnRSZWN0KGxlZnRYLCBsZWZ0WSwgdG9wTGVmdC53aWR0aCgpICogMiwg
dG9wTGVmdC5oZWlnaHQoKSAqIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpKTsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmaXJzdEFuZ2xlU3RhcnQgPSA5MDsK
KyAgICAgICAgICAgICAgICBmaXJzdEFuZ2xlU3BhbiA9IHVwcGVyTGVmdEJvcmRlclN0eWxlc01h
dGNoID8gOTAgOiA0NTsKKworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsZWdlbmQgY292ZXJz
IHRoZSBhcmVhIHdoZXJlIHdlIGNvdWxkIGRyYXcgYSBib3JkZXIKKyAgICAgICAgICAgICAgICAv
LyBkbyBub3QgZHJhdyB0aGlzIGFyYyBhdCBhbGwKKyAgICAgICAgICAgICAgICBpZiAodG9wTGVm
dC53aWR0aCgpIDwgYm9yZGVyTGVmdFdpZHRoICYmIGx4IDwgYm9yZGVyTGVmdFdpZHRoKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGRyYXdVcHBlckxlZnRBcmMgPSBmYWxzZTsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYm9yZGVyIHJhZGl1cyBpcyBnb2lu
ZyB0byBvdmVybGFwIHRoZSBsZWdlbmQsIHVzZSB0cmlnIHRvIGNhbGN1bGF0ZQorICAgICAgICAg
ICAgICAgIC8vIGJ5IGhvdyBtdWNoIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBzdGFydCBhbmdsZSBh
bmQgc3BhbiBhbmdsZSBvZiB0aGUgZHJhd24gYXJjCisgICAgICAgICAgICAgICAgaWYgKGRyYXdV
cHBlckxlZnRBcmMgJiYgdG9wTGVmdC53aWR0aCgpID4gbHggJiYgbHggKyBsdyA+IDApCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQgZmlyc3RBbmdsZURlbHRhID0g
KGludCkodGFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUpKHRvcExlZnQu
d2lkdGgoKSAtIGx4KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIChkb3VibGUpKHRv
cExlZnQuaGVpZ2h0KCkgLSAobGIgLSB0eSkgKyAoc3R5bGUtPmJvcmRlclRvcFdpZHRoKCkgLyAy
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICkgKiAoMTgwIC8gMy4xNDE1OTI2NTM1ODk3OTMy
Mzg0NikpOworICAgICAgICAgICAgICAgICAgICBpbnQgbWluaW11bUFuZ2xlID0gOTAgLSAoaW50
KSAodGFuKChkb3VibGUpKHRvcExlZnQuaGVpZ2h0KCkgLSAobGIgLSB0eSkgLSAyKSAvIChkb3Vi
bGUpdG9wTGVmdC53aWR0aCgpKSAqICgxODAgLyAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2KSk7CisK
KyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGJvcmRlciBpc24ndCBnb2luZyB0byBvdmVy
bGFwIHRoZSBsZWdlbmQgaW4gdGhlIHktZGlyZWN0aW9uLCAKKyAgICAgICAgICAgICAgICAgICAg
Ly8gZG9uJ3QgY2hvcCBtb3JlIHRoYW4gaXMgbmVjZXNzYXJ5LgorICAgICAgICAgICAgICAgICAg
ICBmaXJzdEFuZ2xlRGVsdGEgPSBtaW4oZmlyc3RBbmdsZURlbHRhLCBtaW5pbXVtQW5nbGUpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAobHggPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAg
Zmlyc3RBbmdsZURlbHRhID0gbWluaW11bUFuZ2xlOworCisgICAgICAgICAgICAgICAgICAgIC8v
IElmIHdlJ3JlIGdvaW5nIHRvIHdpcGUgb3V0IG1vcmUgdGhhbiB0aGUgb3JpZ2luYWwgYW5nbGUs
IAorICAgICAgICAgICAgICAgICAgICAvLyBvciBnbyB0aGUgd3JvbmcgZGlyZWN0aW9uLCBkb24n
dCBkcmF3IHRoaXMgYXJjCisgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdEFuZ2xlRGVsdGEg
PCAwIHx8IGZpcnN0QW5nbGVEZWx0YSA+IGZpcnN0QW5nbGVTcGFuKQorICAgICAgICAgICAgICAg
ICAgICAgICAgZHJhd1VwcGVyTGVmdEFyYyA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgICAg
IGZpcnN0QW5nbGVTdGFydCArPSBmaXJzdEFuZ2xlRGVsdGE7CisgICAgICAgICAgICAgICAgICAg
IGZpcnN0QW5nbGVTcGFuIC09IGZpcnN0QW5nbGVEZWx0YTsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICAvLyBEcmF3IHVwcGVyIGxlZnQgYXJjCisgICAgICAgICAgICAgICAg
aWYgKGRyYXdVcHBlckxlZnRBcmMpCisgICAgICAgICAgICAgICAgICAgIGRyYXdCb3JkZXJBcmMo
Z3JhcGhpY3NDb250ZXh0LCBsZWZ0WCwgbGVmdFksIHRoaWNrbmVzcywgdG9wTGVmdCwgZmlyc3RB
bmdsZVN0YXJ0LCBmaXJzdEFuZ2xlU3BhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCU1RvcCwgdGMsIHN0eWxlLT5jb2xvcigpLCB0cywgdHJ1ZSk7CisgICAgICAgICAgICAg
ICAgaWYgKGFwcGx5TGVmdElubmVyQ2xpcCkKKyAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3ND
b250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0b3BS
aWdodC53aWR0aCgpKSB7CisgICAgICAgICAgICAgICAgaW50IHJpZ2h0WCA9IHR4ICsgdyAtIHRv
cFJpZ2h0LndpZHRoKCkgKiAyOworICAgICAgICAgICAgICAgIGJvb2wgYXBwbHlSaWdodElubmVy
Q2xpcCA9IChib3JkZXJSaWdodFdpZHRoIDwgdG9wUmlnaHQud2lkdGgoKSkKKyAgICAgICAgICAg
ICAgICAgICAgJiYgKHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpIDwgdG9wUmlnaHQuaGVpZ2h0KCkp
CisgICAgICAgICAgICAgICAgICAgICYmICh0cyAhPSBET1VCTEUgfHwgc3R5bGUtPmJvcmRlclRv
cFdpZHRoKCkgPiA2KTsKKyAgICAgICAgICAgICAgICBpZiAoYXBwbHlSaWdodElubmVyQ2xpcCkg
eworICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNhdmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5hZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChJbnRS
ZWN0KHJpZ2h0WCwgbGVmdFksIHRvcFJpZ2h0LndpZHRoKCkgKiAyLCB0b3BSaWdodC5oZWlnaHQo
KSAqIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpKTsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBpZiAodXBwZXJSaWdodEJvcmRlclN0eWxlc01hdGNoKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHNlY29uZEFuZ2xlU3RhcnQgPSAwOworICAgICAgICAgICAgICAg
ICAgICBzZWNvbmRBbmdsZVNwYW4gPSA5MDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICBzZWNvbmRBbmdsZVN0YXJ0ID0gNDU7CisgICAgICAgICAgICAgICAg
ICAgIHNlY29uZEFuZ2xlU3BhbiA9IDQ1OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGludCBsZWdlbmRPdmVybGFwUGl4ZWxzID0gbHggKyBsdyAtICh3IC0gdG9wUmlnaHQu
d2lkdGgoKSkgKyAxOworCisgICAgICAgICAgICAgICAgaWYgKHRvcFJpZ2h0LndpZHRoKCkgPCBi
b3JkZXJSaWdodFdpZHRoICYmIGxlZ2VuZE92ZXJsYXBQaXhlbHMgPiAwKSB7CisgICAgICAgICAg
ICAgICAgICAgIGRyYXdVcHBlclJpZ2h0QXJjID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgYW1vdW50IG9mIG92ZXJsYXAgb2YgdGhl
IGJvcmRlciBjb3JuZXIgYW5kIHRoZSBsZWdlbmQgaW4gdGhlIHgtZGlyZWN0aW9uCisgICAgICAg
ICAgICAgICAgaWYgKGRyYXdVcHBlclJpZ2h0QXJjICYmIGxlZ2VuZE92ZXJsYXBQaXhlbHMgPiAw
ICYmIGx4IDwgdykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGludCBz
ZWNvbmRBbmdsZURlbHRhID0gKGludCkodGFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChkb3VibGUpKGxlZ2VuZE92ZXJsYXBQaXhlbHMpIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8gKGRvdWJsZSkodG9wUmlnaHQuaGVpZ2h0KCkgLSAobGIgLSB0eSkgKyAoc3R5bGUtPmJv
cmRlclRvcFdpZHRoKCkgLyAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICkgKiAoMTgwIC8g
My4xNDE1OTI2NTM1ODk3OTMyMzg0NikpOworCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHdl
J3JlIGdvaW5nIHRvIHdpcGUgb3V0IG1vcmUgdGhhbiB0aGUgb3JpZ2luYWwgYW5nbGUsIAorICAg
ICAgICAgICAgICAgICAgICAvLyBvciBnbyB0aGUgd3JvbmcgZGlyZWN0aW9uLCBkb24ndCBkcmF3
IHRoaXMgYXJjCisgICAgICAgICAgICAgICAgICAgIGlmIChzZWNvbmRBbmdsZURlbHRhID4gc2Vj
b25kQW5nbGVTcGFuIHx8IHNlY29uZEFuZ2xlRGVsdGEgPCAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgZHJhd1VwcGVyUmlnaHRBcmMgPSBmYWxzZTsKKworICAgICAgICAgICAgICAgICAgICBz
ZWNvbmRBbmdsZVNwYW4gLT0gc2Vjb25kQW5nbGVEZWx0YTsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICAvLyBEcmF3IHVwcGVyIHJpZ2h0IGFyYworICAgICAgICAgICAgICAg
IGlmIChkcmF3VXBwZXJSaWdodEFyYykKKyAgICAgICAgICAgICAgICAgICAgZHJhd0JvcmRlckFy
YyhncmFwaGljc0NvbnRleHQsIHJpZ2h0WCwgbGVmdFksIHRoaWNrbmVzcywgdG9wUmlnaHQsIHNl
Y29uZEFuZ2xlU3RhcnQsIHNlY29uZEFuZ2xlU3BhbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBCU1RvcCwgdGMsIHN0eWxlLT5jb2xvcigpLCB0cywgZmFsc2UpOworICAgICAg
ICAgICAgICAgIGlmIChhcHBseVJpZ2h0SW5uZXJDbGlwKQorICAgICAgICAgICAgICAgICAgICBn
cmFwaGljc0NvbnRleHQtPnJlc3RvcmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIGlmIChyZW5kZXJCb3R0b20pIHsKKyAgICAgICAgYm9vbCBpZ25vcmVfbGVmdCA9
IChyZW5kZXJSYWRpaSAmJiBib3R0b21MZWZ0LndpZHRoKCkgPiAwKSB8fAorICAgICAgICAgICAg
KGJjID09IGxjICYmIGJ0ID09IGx0ICYmIGJzID49IE9VVFNFVCAmJgorICAgICAgICAgICAgIChs
cyA9PSBET1RURUQgfHwgbHMgPT0gREFTSEVEIHx8IGxzID09IFNPTElEIHx8IGxzID09IE9VVFNF
VCkpOworCisgICAgICAgIGJvb2wgaWdub3JlX3JpZ2h0ID0gKHJlbmRlclJhZGlpICYmIGJvdHRv
bVJpZ2h0LndpZHRoKCkgPiAwKSB8fAorICAgICAgICAgICAgKGJjID09IHJjICYmIGJ0ID09IHJ0
ICYmIGJzID49IE9VVFNFVCAmJgorICAgICAgICAgICAgIChycyA9PSBET1RURUQgfHwgcnMgPT0g
REFTSEVEIHx8IHJzID09IFNPTElEIHx8IHJzID09IElOU0VUKSk7CisKKyAgICAgICAgaW50IHgg
PSB0eDsKKyAgICAgICAgaW50IHgyID0gdHggKyB3OworICAgICAgICBpZiAocmVuZGVyUmFkaWkp
IHsKKyAgICAgICAgICAgIHggKz0gYm90dG9tTGVmdC53aWR0aCgpOworICAgICAgICAgICAgeDIg
LT0gYm90dG9tUmlnaHQud2lkdGgoKTsKKyAgICAgICAgfQorCisgICAgICAgIGRyYXdCb3JkZXIo
Z3JhcGhpY3NDb250ZXh0LCB4LCB0eSArIGggLSBzdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSwg
eDIsIHR5ICsgaCwgQlNCb3R0b20sIGJjLCBzdHlsZS0+Y29sb3IoKSwgYnMsCisgICAgICAgICAg
ICAgICAgICAgaWdub3JlX2xlZnQgPyAwIDogYm9yZGVyTGVmdFdpZHRoLCBpZ25vcmVfcmlnaHQg
PyAwIDogYm9yZGVyUmlnaHRXaWR0aCk7CisKKyAgICAgICAgaWYgKHJlbmRlclJhZGlpKSB7Cisg
ICAgICAgICAgICB0aGlja25lc3MgPSBzdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSAqIDI7CisK
KyAgICAgICAgICAgIGlmIChib3R0b21MZWZ0LndpZHRoKCkpIHsKKyAgICAgICAgICAgICAgICBp
bnQgbGVmdFggPSB0eDsKKyAgICAgICAgICAgICAgICBpbnQgbGVmdFkgPSB0eSArIGggLSBib3R0
b21MZWZ0LmhlaWdodCgpICogMjsKKyAgICAgICAgICAgICAgICBib29sIGFwcGx5TGVmdElubmVy
Q2xpcCA9IChib3JkZXJMZWZ0V2lkdGggPCBib3R0b21MZWZ0LndpZHRoKCkpCisgICAgICAgICAg
ICAgICAgICAgICYmIChzdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSA8IGJvdHRvbUxlZnQuaGVp
Z2h0KCkpCisgICAgICAgICAgICAgICAgICAgICYmIChicyAhPSBET1VCTEUgfHwgc3R5bGUtPmJv
cmRlckJvdHRvbVdpZHRoKCkgPiA2KTsKKyAgICAgICAgICAgICAgICBpZiAoYXBwbHlMZWZ0SW5u
ZXJDbGlwKSB7CisgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2F2ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmFkZElubmVyUm91bmRlZFJlY3RD
bGlwKEludFJlY3QobGVmdFgsIGxlZnRZLCBib3R0b21MZWZ0LndpZHRoKCkgKiAyLCBib3R0b21M
ZWZ0LmhlaWdodCgpICogMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkpOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChsb3dlckxlZnRCb3JkZXJTdHls
ZXNNYXRjaCkgeworICAgICAgICAgICAgICAgICAgICBmaXJzdEFuZ2xlU3RhcnQgPSAxODA7Cisg
ICAgICAgICAgICAgICAgICAgIGZpcnN0QW5nbGVTcGFuID0gOTA7CisgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RBbmdsZVN0YXJ0ID0gMjI1OworICAg
ICAgICAgICAgICAgICAgICBmaXJzdEFuZ2xlU3BhbiA9IDQ1OworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIC8vIERyYXcgbG93ZXIgbGVmdCBhcmMKKyAgICAgICAgICAgICAg
ICBkcmF3Qm9yZGVyQXJjKGdyYXBoaWNzQ29udGV4dCwgbGVmdFgsIGxlZnRZLCB0aGlja25lc3Ms
IGJvdHRvbUxlZnQsIGZpcnN0QW5nbGVTdGFydCwgZmlyc3RBbmdsZVNwYW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBCU0JvdHRvbSwgYmMsIHN0eWxlLT5jb2xvcigpLCBicywgdHJ1
ZSk7CisgICAgICAgICAgICAgICAgaWYgKGFwcGx5TGVmdElubmVyQ2xpcCkKKyAgICAgICAgICAg
ICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmIChib3R0b21SaWdodC53aWR0aCgpKSB7CisgICAgICAgICAgICAgICAgaW50
IHJpZ2h0WSA9IHR5ICsgaCAtIGJvdHRvbVJpZ2h0LmhlaWdodCgpICogMjsKKyAgICAgICAgICAg
ICAgICBpbnQgcmlnaHRYID0gdHggKyB3IC0gYm90dG9tUmlnaHQud2lkdGgoKSAqIDI7CisgICAg
ICAgICAgICAgICAgYm9vbCBhcHBseVJpZ2h0SW5uZXJDbGlwID0gKGJvcmRlclJpZ2h0V2lkdGgg
PCBib3R0b21SaWdodC53aWR0aCgpKQorICAgICAgICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJv
cmRlckJvdHRvbVdpZHRoKCkgPCBib3R0b21SaWdodC5oZWlnaHQoKSkKKyAgICAgICAgICAgICAg
ICAgICAgJiYgKGJzICE9IERPVUJMRSB8fCBzdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSA+IDYp
OworICAgICAgICAgICAgICAgIGlmIChhcHBseVJpZ2h0SW5uZXJDbGlwKSB7CisgICAgICAgICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2F2ZSgpOworICAgICAgICAgICAgICAgICAgICBn
cmFwaGljc0NvbnRleHQtPmFkZElubmVyUm91bmRlZFJlY3RDbGlwKEludFJlY3QocmlnaHRYLCBy
aWdodFksIGJvdHRvbVJpZ2h0LndpZHRoKCkgKiAyLCBib3R0b21SaWdodC5oZWlnaHQoKSAqIDIp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpKTsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBzZWNvbmRBbmdsZVN0YXJ0ID0gMjcwOworICAgICAgICAgICAgICAg
IHNlY29uZEFuZ2xlU3BhbiA9IGxvd2VyUmlnaHRCb3JkZXJTdHlsZXNNYXRjaCA/IDkwIDogNDU7
CisKKyAgICAgICAgICAgICAgICAvLyBEcmF3IGxvd2VyIHJpZ2h0IGFyYworICAgICAgICAgICAg
ICAgIGRyYXdCb3JkZXJBcmMoZ3JhcGhpY3NDb250ZXh0LCByaWdodFgsIHJpZ2h0WSwgdGhpY2tu
ZXNzLCBib3R0b21SaWdodCwgc2Vjb25kQW5nbGVTdGFydCwgc2Vjb25kQW5nbGVTcGFuLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQlNCb3R0b20sIGJjLCBzdHlsZS0+Y29sb3IoKSwg
YnMsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpZiAoYXBwbHlSaWdodElubmVyQ2xpcCkKKyAg
ICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocmVuZGVyTGVmdCkgeworICAgICAgICBp
ZiAocmVuZGVyUmFkaWkgJiYgKCF1cHBlckxlZnRCb3JkZXJTdHlsZXNNYXRjaCB8fCAhbG93ZXJM
ZWZ0Qm9yZGVyU3R5bGVzTWF0Y2gpKSB7CisgICAgICAgICAgICBpbnQgdG9wWCA9IHR4OworICAg
ICAgICAgICAgdGhpY2tuZXNzID0gYm9yZGVyTGVmdFdpZHRoICogMjsKKworICAgICAgICAgICAg
aWYgKCF1cHBlckxlZnRCb3JkZXJTdHlsZXNNYXRjaCAmJiB0b3BMZWZ0LndpZHRoKCkpIHsKKyAg
ICAgICAgICAgICAgICBpbnQgdG9wWSA9IHR5OworICAgICAgICAgICAgICAgIGJvb2wgYXBwbHlU
b3BJbm5lckNsaXAgPSAoYm9yZGVyTGVmdFdpZHRoIDwgdG9wTGVmdC53aWR0aCgpKQorICAgICAg
ICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRlclRvcFdpZHRoKCkgPCB0b3BMZWZ0LmhlaWdo
dCgpKQorICAgICAgICAgICAgICAgICAgICAmJiAobHMgIT0gRE9VQkxFIHx8IGJvcmRlckxlZnRX
aWR0aCA+IDYpOworICAgICAgICAgICAgICAgIGlmIChhcHBseVRvcElubmVyQ2xpcCkgeworICAg
ICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNhdmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgZ3JhcGhpY3NDb250ZXh0LT5hZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChJbnRSZWN0KHRv
cFgsIHRvcFksIHRvcExlZnQud2lkdGgoKSAqIDIsIHRvcExlZnQuaGVpZ2h0KCkgKiAyKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib3JkZXJMZWZ0V2lkdGgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGZpcnN0QW5nbGVTdGFydCA9IDEzNTsKKyAgICAgICAgICAgICAgICBmaXJzdEFuZ2xlU3BhbiA9
IDQ1OworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsZWdlbmQgY292ZXJzIHRoZSBhcmVhIHdo
ZXJlIHdlIGNvdWxkIGRyYXcgYSBib3JkZXIKKyAgICAgICAgICAgICAgICAvLyBkbyBub3QgZHJh
dyB0aGlzIGFyYyBhdCBhbGwKKyAgICAgICAgICAgICAgICBpZiAobHggPCAwICYmIGx4ICsgbHcg
PiAwIHx8CisgICAgICAgICAgICAgICAgICAgICh0b3BMZWZ0LndpZHRoKCkgPCBib3JkZXJMZWZ0
V2lkdGggJiYgbHggPCBib3JkZXJMZWZ0V2lkdGgpKSB7CisgICAgICAgICAgICAgICAgICAgIGRy
YXdMZWZ0VXBwZXJBcmMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICAvLyBJZiB0aGUgYm9yZGVyIHJhZGl1cyBpcyBnb2luZyB0byBvdmVybGFwIHRoZSBsZWdl
bmQsIHVzZSB0cmlnIHRvIGNhbGN1bGF0ZQorICAgICAgICAgICAgICAgIC8vIGJ5IGhvdyBtdWNo
IHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBzdGFydCBhbmdsZSBhbmQgc3BhbiBhbmdsZSBvZiB0aGUg
ZHJhd24gYXJjCisgICAgICAgICAgICAgICAgaWYgKGRyYXdMZWZ0VXBwZXJBcmMgJiYgdG9wTGVm
dC53aWR0aCgpID4gbHggJiYgbHggKyBsdyA+IDApCisgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICBpbnQgZmlyc3RBbmdsZURlbHRhID0gKGludCkodGFuKAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChkb3VibGUpKHRvcExlZnQud2lkdGgoKSAtIGx4KSAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvIChkb3VibGUpKHRvcExlZnQuaGVpZ2h0KCkgLSAobGIg
LSB0eSkgKyAoc3R5bGUtPmJvcmRlclRvcFdpZHRoKCkgLyAyKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICkgKiAoMTgwIC8gMy4xNDE1OTI2NTM1ODk3OTMyMzg0NikpIC0gNDU7CisgICAgICAg
ICAgICAgICAgICAgIGludCBtaW5pbXVtQW5nbGUgPSA5MCAtIChpbnQpICh0YW4oKGRvdWJsZSko
dG9wTGVmdC5oZWlnaHQoKSAtIChsYiAtIHR5KSAtIDIpIC8gKGRvdWJsZSl0b3BMZWZ0LndpZHRo
KCkpICogKDE4MCAvIDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYpKTsKKworICAgICAgICAgICAgICAg
ICAgICAvLyBJZiB0aGUgYm9yZGVyIGlzbid0IGdvaW5nIHRvIG92ZXJsYXAgdGhlIGxlZ2VuZCBp
biB0aGUgeS1kaXJlY3Rpb24sIAorICAgICAgICAgICAgICAgICAgICAvLyBkb24ndCBjaG9wIG1v
cmUgdGhhbiBpcyBuZWNlc3NhcnkuCisgICAgICAgICAgICAgICAgICAgIGZpcnN0QW5nbGVEZWx0
YSA9IG1pbihmaXJzdEFuZ2xlRGVsdGEsIG1pbmltdW1BbmdsZSAtIDQ1KTsKKworICAgICAgICAg
ICAgICAgICAgICAvLyBJZiB3ZSdyZSBnb2luZyB0byB3aXBlIG91dCBtb3JlIHRoYW4gdGhlIG9y
aWdpbmFsIGFuZ2xlLCAKKyAgICAgICAgICAgICAgICAgICAgLy8gb3IgZ28gdGhlIHdyb25nIGRp
cmVjdGlvbiwgZG9uJ3QgZHJhdyB0aGlzIGFyYworICAgICAgICAgICAgICAgICAgICBpZiAoZmly
c3RBbmdsZURlbHRhID4gNDUpCisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3TGVmdFVwcGVy
QXJjID0gZmFsc2U7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0QW5nbGVEZWx0YSA+
IDApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0
QW5nbGVTdGFydCArPSBmaXJzdEFuZ2xlRGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICBm
aXJzdEFuZ2xlU3BhbiAtPSBmaXJzdEFuZ2xlRGVsdGE7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBEcmF3IGxlZnQgdXBwZXIg
YXJjCisgICAgICAgICAgICAgICAgaWYgKGRyYXdMZWZ0VXBwZXJBcmMpCisgICAgICAgICAgICAg
ICAgICAgIGRyYXdCb3JkZXJBcmMoZ3JhcGhpY3NDb250ZXh0LCB0b3BYLCB0b3BZLCB0aGlja25l
c3MsIHRvcExlZnQsIGZpcnN0QW5nbGVTdGFydCwgZmlyc3RBbmdsZVNwYW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQlNMZWZ0LCBsYywgc3R5bGUtPmNvbG9yKCksIGxzLCB0
cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoYXBwbHlUb3BJbm5lckNsaXApCisgICAgICAgICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+cmVzdG9yZSgpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAoIWxvd2VyTGVmdEJvcmRlclN0eWxlc01hdGNoICYmIGJvdHRvbUxlZnQu
d2lkdGgoKSkgeworICAgICAgICAgICAgICAgIGludCBib3R0b21ZID0gdHkgKyBoIC0gYm90dG9t
TGVmdC5oZWlnaHQoKSAqIDI7CisgICAgICAgICAgICAgICAgYm9vbCBhcHBseUJvdHRvbUlubmVy
Q2xpcCA9IChib3JkZXJMZWZ0V2lkdGggPCBib3R0b21MZWZ0LndpZHRoKCkpCisgICAgICAgICAg
ICAgICAgICAgICYmIChzdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSA8IGJvdHRvbUxlZnQuaGVp
Z2h0KCkpCisgICAgICAgICAgICAgICAgICAgICYmIChscyAhPSBET1VCTEUgfHwgYm9yZGVyTGVm
dFdpZHRoID4gNik7CisgICAgICAgICAgICAgICAgaWYgKGFwcGx5Qm90dG9tSW5uZXJDbGlwKSB7
CisgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2F2ZSgpOworICAgICAgICAg
ICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmFkZElubmVyUm91bmRlZFJlY3RDbGlwKEludFJl
Y3QodG9wWCwgYm90dG9tWSwgYm90dG9tTGVmdC53aWR0aCgpICogMiwgYm90dG9tTGVmdC5oZWln
aHQoKSAqIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvcmRlckxlZnRXaWR0aCk7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgc2Vjb25kQW5nbGVTdGFydCA9IDE4MDsKKyAgICAgICAgICAgICAgICBz
ZWNvbmRBbmdsZVNwYW4gPSA0NTsKKworICAgICAgICAgICAgICAgIC8vIERyYXcgYm90dG9tIGxl
ZnQgYXJjCisgICAgICAgICAgICAgICAgZHJhd0JvcmRlckFyYyhncmFwaGljc0NvbnRleHQsIHRv
cFgsIGJvdHRvbVksIHRoaWNrbmVzcywgYm90dG9tTGVmdCwgc2Vjb25kQW5nbGVTdGFydCwgc2Vj
b25kQW5nbGVTcGFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlNMZWZ0LCBsYywg
c3R5bGUtPmNvbG9yKCksIGxzLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgaWYgKGFwcGx5Qm90
dG9tSW5uZXJDbGlwKQorICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnJlc3Rv
cmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgaWYgKHJlbmRlcl9sKSB7Ci0g
ICAgICAgIGNvbnN0IENvbG9yJiBsYyA9IHN0eWxlLT5ib3JkZXJMZWZ0Q29sb3IoKTsKICAgICAg
ICAgaW50IHN0YXJ0WSA9IHR5OwogCi0gICAgICAgIGJvb2wgaWdub3JlX3RvcCA9Ci0gICAgICAg
ICAgICAodGMgPT0gbGMpICYmCi0gICAgICAgICAgICAobHMgPj0gT1VUU0VUKSAmJgotICAgICAg
ICAgICAgKHRzID09IERPVFRFRCB8fCB0cyA9PSBEQVNIRUQgfHwgdHMgPT0gU09MSUQgfHwgdHMg
PT0gT1VUU0VUKTsKLQotICAgICAgICBib29sIGlnbm9yZV9ib3R0b20gPQotICAgICAgICAgICAg
KGJjID09IGxjKSAmJgotICAgICAgICAgICAgKGxzID49IE9VVFNFVCkgJiYKLSAgICAgICAgICAg
IChicyA9PSBET1RURUQgfHwgYnMgPT0gREFTSEVEIHx8IGJzID09IFNPTElEIHx8IGJzID09IElO
U0VUKTsKKyAgICAgICAgYm9vbCBpZ25vcmVfdG9wID0gKHJlbmRlclJhZGlpICYmIHRvcExlZnQu
aGVpZ2h0KCkgPiAwKSB8fAorICAgICAgICAgICAgKHRjID09IGxjICYmIHR0ID09IGx0ICYmIGxz
ID49IE9VVFNFVCAmJgorICAgICAgICAgICAgICh0cyA9PSBET1RURUQgfHwgdHMgPT0gREFTSEVE
IHx8IHRzID09IFNPTElEIHx8IHRzID09IE9VVFNFVCkpOworCisgICAgICAgIGJvb2wgaWdub3Jl
X2JvdHRvbSA9IChyZW5kZXJSYWRpaSAmJiBib3R0b21MZWZ0LmhlaWdodCgpID4gMCkgfHwKKyAg
ICAgICAgICAgIChiYyA9PSBsYyAmJiBidCA9PSBsdCAmJiBscyA+PSBPVVRTRVQgJiYKKyAgICAg
ICAgICAgICAoYnMgPT0gRE9UVEVEIHx8IGJzID09IERBU0hFRCB8fCBicyA9PSBTT0xJRCB8fCBi
cyA9PSBJTlNFVCkpOworCisgICAgICAgIGludCBlbmRZID0gdHkgKyBoOworICAgICAgICBpZiAo
cmVuZGVyUmFkaWkpIHsKKyAgICAgICAgICAgIHN0YXJ0WSArPSB0b3BMZWZ0LmhlaWdodCgpOwor
ICAgICAgICAgICAgZW5kWSAtPSBib3R0b21MZWZ0LmhlaWdodCgpOworICAgICAgICB9CiAKICAg
ICAgICAgaWYgKGx4IDwgYm9yZGVyTGVmdFdpZHRoICYmIGx4ICsgbHcgPiAwKSB7CiAgICAgICAg
ICAgICAvLyBUaGUgbGVnZW5kIGludGVyc2VjdHMgdGhlIGJvcmRlci4KICAgICAgICAgICAgIGln
bm9yZV90b3AgPSB0cnVlOwogICAgICAgICAgICAgc3RhcnRZID0gbGI7CisgICAgICAgICAgICBp
ZiAoZHJhd0xlZnRVcHBlckFyYyAmJiB0eSArIHRvcExlZnQuaGVpZ2h0KCkgPiBsYikKKyAgICAg
ICAgICAgICAgICBzdGFydFkgPSB0eSArIHRvcExlZnQuaGVpZ2h0KCk7CiAgICAgICAgIH0KIAot
ICAgICAgICBkcmF3Qm9yZGVyKGdyYXBoaWNzQ29udGV4dCwgdHgsIHN0YXJ0WSwgdHggKyBib3Jk
ZXJMZWZ0V2lkdGgsIHR5ICsgaCwgQlNMZWZ0LCBsYywgc3R5bGUtPmNvbG9yKCksIGxzLAorICAg
ICAgICBkcmF3Qm9yZGVyKGdyYXBoaWNzQ29udGV4dCwgdHgsIHN0YXJ0WSwgdHggKyBib3JkZXJM
ZWZ0V2lkdGgsIGVuZFksIEJTTGVmdCwgbGMsIHN0eWxlLT5jb2xvcigpLCBscywKICAgICAgICAg
ICAgICAgICAgICBpZ25vcmVfdG9wID8gMCA6IHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpLCBpZ25v
cmVfYm90dG9tID8gMCA6IHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpKTsKKwogICAgIH0KIAot
ICAgIGlmIChyZW5kZXJfcikgewotICAgICAgICBjb25zdCBDb2xvciYgcmMgPSBzdHlsZS0+Ym9y
ZGVyUmlnaHRDb2xvcigpOworICAgIGlmIChyZW5kZXJSaWdodCkgewogICAgICAgICBpbnQgc3Rh
cnRZID0gdHk7CiAKLSAgICAgICAgYm9vbCBpZ25vcmVfdG9wID0KLSAgICAgICAgICAgICh0YyA9
PSByYykgJiYKKyAgICAgICAgYm9vbCBpZ25vcmVfdG9wID0gKHJlbmRlclJhZGlpICYmIHRvcFJp
Z2h0LmhlaWdodCgpID4gMCkgfHwKKyAgICAgICAgICAgICgodGMgPT0gcmMpICYmICh0dCA9PSBy
dCkgJiYKICAgICAgICAgICAgIChycyA+PSBET1RURUQgfHwgcnMgPT0gSU5TRVQpICYmCi0gICAg
ICAgICAgICAodHMgPT0gRE9UVEVEIHx8IHRzID09IERBU0hFRCB8fCB0cyA9PSBTT0xJRCB8fCB0
cyA9PSBPVVRTRVQpOworICAgICAgICAgICAgKHRzID09IERPVFRFRCB8fCB0cyA9PSBEQVNIRUQg
fHwgdHMgPT0gU09MSUQgfHwgdHMgPT0gT1VUU0VUKSk7CiAKLSAgICAgICAgYm9vbCBpZ25vcmVf
Ym90dG9tID0KLSAgICAgICAgICAgIChiYyA9PSByYykgJiYKKyAgICAgICAgYm9vbCBpZ25vcmVf
Ym90dG9tID0gKHJlbmRlclJhZGlpICYmIGJvdHRvbVJpZ2h0LmhlaWdodCgpID4gMCkgfHwKKyAg
ICAgICAgICAgICgoYmMgPT0gcmMpICYmIChidCA9PSBydCkgJiYKICAgICAgICAgICAgIChycyA+
PSBET1RURUQgfHwgcnMgPT0gSU5TRVQpICYmCi0gICAgICAgICAgICAoYnMgPT0gRE9UVEVEIHx8
IGJzID09IERBU0hFRCB8fCBicyA9PSBTT0xJRCB8fCBicyA9PSBJTlNFVCk7CisgICAgICAgICAg
ICAoYnMgPT0gRE9UVEVEIHx8IGJzID09IERBU0hFRCB8fCBicyA9PSBTT0xJRCB8fCBicyA9PSBJ
TlNFVCkpOwogCiAgICAgICAgIGlmIChseCA8IHcgJiYgbHggKyBsdyA+IHcgLSBib3JkZXJSaWdo
dFdpZHRoKSB7CiAgICAgICAgICAgICAvLyBUaGUgbGVnZW5kIGludGVyc2VjdHMgdGhlIGJvcmRl
ci4KICAgICAgICAgICAgIGlnbm9yZV90b3AgPSB0cnVlOwogICAgICAgICAgICAgc3RhcnRZID0g
bGI7CisgICAgICAgICAgICBpZiAoZHJhd1VwcGVyUmlnaHRBcmMgJiYgdHkgKyB0b3BSaWdodC5o
ZWlnaHQoKSA+IGxiKQorICAgICAgICAgICAgICAgIHN0YXJ0WSA9IHR5ICsgdG9wUmlnaHQuaGVp
Z2h0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBkcmF3Qm9yZGVyKGdyYXBoaWNzQ29udGV4dCwg
dHggKyB3IC0gYm9yZGVyUmlnaHRXaWR0aCwgc3RhcnRZLCB0eCArIHcsIHR5ICsgaCwgQlNSaWdo
dCwgcmMsIHN0eWxlLT5jb2xvcigpLCBycywKKyAgICAgICAgaW50IGVuZFkgPSB0eSArIGg7Cisg
ICAgICAgIGlmIChyZW5kZXJSYWRpaSkgeworICAgICAgICAgICAgc3RhcnRZICs9IHRvcFJpZ2h0
LmhlaWdodCgpOworICAgICAgICAgICAgZW5kWSAtPSBib3R0b21SaWdodC5oZWlnaHQoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGRyYXdCb3JkZXIoZ3JhcGhpY3NDb250ZXh0LCB0eCArIHcgLSBi
b3JkZXJSaWdodFdpZHRoLCBzdGFydFksIHR4ICsgdywgZW5kWSwgQlNSaWdodCwgcmMsIHN0eWxl
LT5jb2xvcigpLCBycywKICAgICAgICAgICAgICAgICAgICBpZ25vcmVfdG9wID8gMCA6IHN0eWxl
LT5ib3JkZXJUb3BXaWR0aCgpLCBpZ25vcmVfYm90dG9tID8gMCA6IHN0eWxlLT5ib3JkZXJCb3R0
b21XaWR0aCgpKTsKKworICAgICAgICBpZiAocmVuZGVyUmFkaWkgJiYgKCF1cHBlclJpZ2h0Qm9y
ZGVyU3R5bGVzTWF0Y2ggfHwgIWxvd2VyUmlnaHRCb3JkZXJTdHlsZXNNYXRjaCkpIHsKKyAgICAg
ICAgICAgIHRoaWNrbmVzcyA9IGJvcmRlclJpZ2h0V2lkdGggKiAyOworCisgICAgICAgICAgICBp
ZiAoIXVwcGVyUmlnaHRCb3JkZXJTdHlsZXNNYXRjaCAmJiB0b3BSaWdodC53aWR0aCgpKSB7Cisg
ICAgICAgICAgICAgICAgaW50IHRvcFggPSB0eCArIHcgLSB0b3BSaWdodC53aWR0aCgpICogMjsK
KyAgICAgICAgICAgICAgICBpbnQgdG9wWSA9IHR5OworICAgICAgICAgICAgICAgIGJvb2wgYXBw
bHlUb3BJbm5lckNsaXAgPSAoYm9yZGVyUmlnaHRXaWR0aCA8IHRvcFJpZ2h0LndpZHRoKCkpCisg
ICAgICAgICAgICAgICAgICAgICYmIChzdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSA8IHRvcFJpZ2h0
LmhlaWdodCgpKQorICAgICAgICAgICAgICAgICAgICAmJiAocnMgIT0gRE9VQkxFIHx8IGJvcmRl
clJpZ2h0V2lkdGggPiA2KTsKKyAgICAgICAgICAgICAgICBpZiAoYXBwbHlUb3BJbm5lckNsaXAp
IHsKKyAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zYXZlKCk7CisgICAgICAg
ICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+YWRkSW5uZXJSb3VuZGVkUmVjdENsaXAoSW50
UmVjdCh0b3BYLCB0b3BZLCB0b3BSaWdodC53aWR0aCgpICogMiwgdG9wUmlnaHQuaGVpZ2h0KCkg
KiAyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib3JkZXJSaWdodFdpZHRoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICBmaXJzdEFuZ2xlU3RhcnQgPSAwOworICAgICAgICAgICAgICAgIGZpcnN0QW5n
bGVTcGFuID0gNDU7CisKKyAgICAgICAgICAgICAgICAvLyBEcmF3IHRvcCByaWdodCBhcmMKKyAg
ICAgICAgICAgICAgICBkcmF3Qm9yZGVyQXJjKGdyYXBoaWNzQ29udGV4dCwgdG9wWCwgdG9wWSwg
dGhpY2tuZXNzLCB0b3BSaWdodCwgZmlyc3RBbmdsZVN0YXJ0LCBmaXJzdEFuZ2xlU3BhbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJTUmlnaHQsIHJjLCBzdHlsZS0+Y29sb3IoKSwg
cnMsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChhcHBseVRvcElubmVyQ2xpcCkKKyAgICAg
ICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmICghbG93ZXJSaWdodEJvcmRlclN0eWxlc01hdGNoICYmIGJvdHRv
bVJpZ2h0LndpZHRoKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgYm90dG9tWCA9IHR4ICsgdyAt
IGJvdHRvbVJpZ2h0LndpZHRoKCkgKiAyOworICAgICAgICAgICAgICAgIGludCBib3R0b21ZID0g
dHkgKyBoIC0gYm90dG9tUmlnaHQuaGVpZ2h0KCkgKiAyOworICAgICAgICAgICAgICAgIGJvb2wg
YXBwbHlCb3R0b21Jbm5lckNsaXAgPSAoYm9yZGVyUmlnaHRXaWR0aCA8IGJvdHRvbVJpZ2h0Lndp
ZHRoKCkpCisgICAgICAgICAgICAgICAgICAgICYmIChzdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgo
KSA8IGJvdHRvbVJpZ2h0LmhlaWdodCgpKQorICAgICAgICAgICAgICAgICAgICAmJiAocnMgIT0g
RE9VQkxFIHx8IGJvcmRlclJpZ2h0V2lkdGggPiA2KTsKKyAgICAgICAgICAgICAgICBpZiAoYXBw
bHlCb3R0b21Jbm5lckNsaXApIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0
LT5zYXZlKCk7CisgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+YWRkSW5uZXJS
b3VuZGVkUmVjdENsaXAoSW50UmVjdChib3R0b21YLCBib3R0b21ZLCBib3R0b21SaWdodC53aWR0
aCgpICogMiwgYm90dG9tUmlnaHQuaGVpZ2h0KCkgKiAyKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodFdpZHRo
KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzZWNvbmRBbmdsZVN0YXJ0
ID0gMzE1OworICAgICAgICAgICAgICAgIHNlY29uZEFuZ2xlU3BhbiA9IDQ1OworCisgICAgICAg
ICAgICAgICAgLy8gRHJhdyBib3R0b20gcmlnaHQgYXJjCisgICAgICAgICAgICAgICAgZHJhd0Jv
cmRlckFyYyhncmFwaGljc0NvbnRleHQsIGJvdHRvbVgsIGJvdHRvbVksIHRoaWNrbmVzcywgYm90
dG9tUmlnaHQsIHNlY29uZEFuZ2xlU3RhcnQsIHNlY29uZEFuZ2xlU3BhbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEJTUmlnaHQsIHJjLCBzdHlsZS0+Y29sb3IoKSwgcnMsIGZhbHNl
KTsKKyAgICAgICAgICAgICAgICBpZiAoYXBwbHlCb3R0b21Jbm5lckNsaXApCisgICAgICAgICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+cmVzdG9yZSgpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CiAgICAgfQorCisgICAgaWYgKHJlbmRlclJhZGlpKQorICAgICAgICBncmFwaGljc0Nv
bnRleHQtPnJlc3RvcmUoKTsKIH0KIAogdm9pZCBSZW5kZXJGaWVsZHNldDo6c2V0U3R5bGUoUmVu
ZGVyU3R5bGUqIG5ld1N0eWxlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21813</attachid>
            <date>2008-06-18 04:04:19 -0700</date>
            <delta_ts>2008-06-18 04:04:19 -0700</delta_ts>
            <desc>Additional test case.</desc>
            <filename>legendborder.html</filename>
            <type>text/html</type>
            <size>6446</size>
            <attacher name="Alex Taylor">darwin</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
CSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KCjxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxh
bmc9ImVuIj4KPGhlYWQ+Cgk8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkhUTUwgVGlk
eSBmb3IgTWFjIE9TIFggKHZlcnMgMXN0IERlY2VtYmVyIDIwMDQpLCBzZWUgd3d3LnczLm9yZyIg
Lz4KCTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PXV0Zi04IiAvPgoKCTx0aXRsZT51bnRpdGxlZDwvdGl0bGU+Cgk8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiPgogICAgICAgIC5jb2wgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDI1MHB4OyB9Cgog
ICAgICAgIGZpZWxkc2V0LCAuZmllbGRzZXQgewogICAgICAgICAgICBoZWlnaHQ6IDEwMHB4Owog
ICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKICAgICAgICAgICAgLXdlYmtpdC1i
b3JkZXItcmFkaXVzOjVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgbGVnZW5kIHsKICAg
ICAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBib2R5ID4g
Om50aC1jaGlsZCgxKSBsZWdlbmQgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAg
ICAgIH0KCiAgICAgICAgYm9keSA+IDpudGgtY2hpbGQoMikgbGVnZW5kIHsKICAgICAgICAgICAg
dGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0zMHB4OwogICAgICAg
IH0KCiAgICAgICAgYm9keSA+IDpudGgtY2hpbGQoMykgbGVnZW5kIHsKICAgICAgICAgICAgdGV4
dC1hbGlnbjogbGVmdDsKICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC03MHB4OwogICAgICAgIH0K
ICAgICAgICAKICAgICAgICBib2R5ID4gOm50aC1jaGlsZCg0KSBsZWdlbmQgewogICAgICAgICAg
ICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICB9CgogICAgICAgIAogICAgICAgIC5jb2wgPiA6
bnRoLWNoaWxkKDEpIGZpZWxkc2V0IHsKICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7CiAg
ICAgICAgfQogICAgICAgIC5jb2wgPiA6bnRoLWNoaWxkKDIpIGZpZWxkc2V0IHsKICAgICAgICAg
ICAgYm9yZGVyLXdpZHRoOiA1cHg7CiAgICAgICAgfQogICAgICAgIC5jb2wgPiA6bnRoLWNoaWxk
KDMpIGZpZWxkc2V0IHsKICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAyMHB4OwogICAgICAgIH0K
ICAgICAgICAuY29sID4gOm50aC1jaGlsZCg0KSBmaWVsZHNldCB7CiAgICAgICAgICAgIGJvcmRl
ci13aWR0aDogMXB4OwogICAgICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6MTBweDsKICAg
ICAgICB9CiAgICAgICAgLmNvbCA+IDpudGgtY2hpbGQoNSkgZmllbGRzZXQgewogICAgICAgICAg
ICBib3JkZXItd2lkdGg6IDVweDsKICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjIw
cHg7CiAgICAgICAgfQogICAgICAgIC5jb2wgPiA6bnRoLWNoaWxkKDYpIGZpZWxkc2V0IHsKICAg
ICAgICAgICAgYm9yZGVyLXdpZHRoOiAyMHB4OwogICAgICAgICAgICAtd2Via2l0LWJvcmRlci1y
YWRpdXM6NDBweDsKICAgICAgICB9CgogICAgICAgIC5jb2wgPiA6bnRoLWNoaWxkKDEpIHA6YWZ0
ZXIgewogICAgICAgICAgICBjb250ZW50OiAiIEJvcmRlciByYWRpdXMgc21hbGxlciB0aGFuIGJv
cmRlciB3aWR0aCI7CiAgICAgICAgfQoKICAgICAgICBmb3JtLCAuZm9ybSB7CiAgICAgICAgICAg
IG1hcmdpbjogMTBweDsgICAKICAgICAgICB9Cgk8L3N0eWxlPgo8L2hlYWQ+Cgo8Ym9keT4KICAg
IDxkaXYgY2xhc3M9ImNvbCI+CiAgICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNldD4K
ICAgICAgICAgICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAgICAg
ICAgICAgICAgPHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAgICAg
ICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgCiAgICAgICAgPGZvcm0+CiAgICAg
ICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxwPlN0dWZmIGluIGEgZmllbGRzZXQg
d2l0aG91dCBsZWdlbmQuPC9wPgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgIDwvZm9y
bT4KICAgIAogICAgICAgIDxmb3JtPgogICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAg
ICAgICA8bGVnZW5kPk15IEZpZWxkc2V0PC9sZWdlbmQ+CiAgICAKICAgICAgICAgICAgICAgIDxw
PlN0dWZmIGluIGEgZmllbGRzZXQgd2l0aCBsZWdlbmQuPC9wPgogICAgICAgICAgICA8L2ZpZWxk
c2V0PgogICAgICAgIDwvZm9ybT4KICAgICAgICA8Zm9ybT4KICAgICAgICAgICAgPGZpZWxkc2V0
PgogICAgICAgICAgICAgICAgPGxlZ2VuZD5NeSBGaWVsZHNldDwvbGVnZW5kPgogICAgCiAgICAg
ICAgICAgICAgICA8cD5TdHVmZiBpbiBhIGZpZWxkc2V0IHdpdGggbGVnZW5kLjwvcD4KICAgICAg
ICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Zvcm0+CiAgICAgICAgPGZvcm0+CiAgICAgICAg
ICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xlZ2Vu
ZD4KICAgIAogICAgICAgICAgICAgICAgPHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2Vu
ZC48L3A+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgICAgIDxm
b3JtPgogICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8bGVnZW5kPk15IEZp
ZWxkc2V0PC9sZWdlbmQ+CiAgICAKICAgICAgICAgICAgICAgIDxwPlN0dWZmIGluIGEgZmllbGRz
ZXQgd2l0aCBsZWdlbmQuPC9wPgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgIDwvZm9y
bT4KCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbCI+CiAgICAgICAgPGZvcm0+CiAgICAg
ICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xl
Z2VuZD4KICAgIAogICAgICAgICAgICAgICAgPHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxl
Z2VuZC48L3A+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgCiAg
ICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxsZWdl
bmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAgICAgICAgICAgICAgPHA+U3R1ZmYgaW4g
YSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAg
ICAgPC9mb3JtPgogICAgCiAgICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNldD4KICAg
ICAgICAgICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAgICAgICAg
ICAgICAgPHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAgICAgICAg
IDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgICAgIDxmb3JtPgogICAgICAgICAgICA8
ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8bGVnZW5kPk15IEZpZWxkc2V0PC9sZWdlbmQ+CiAg
ICAKICAgICAgICAgICAgICAgIDxwPlN0dWZmIGluIGEgZmllbGRzZXQgd2l0aCBsZWdlbmQuPC9w
PgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgIDwvZm9ybT4KICAgICAgICA8Zm9ybT4K
ICAgICAgICAgICAgPGZpZWxkc2V0PgogICAgICAgICAgICAgICAgPGxlZ2VuZD5NeSBGaWVsZHNl
dDwvbGVnZW5kPgogICAgCiAgICAgICAgICAgICAgICA8cD5TdHVmZiBpbiBhIGZpZWxkc2V0IHdp
dGggbGVnZW5kLjwvcD4KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Zvcm0+CiAg
ICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxsZWdl
bmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAgICAgICAgICAgICAgPHA+U3R1ZmYgaW4g
YSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAg
ICAgPC9mb3JtPgogICAgCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbCI+CiAgICAgICAg
PGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxsZWdlbmQ+TXkg
RmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAgICAgICAgICAgICAgPHA+U3R1ZmYgaW4gYSBmaWVs
ZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9m
b3JtPgogICAgCiAgICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAg
ICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAgICAgICAgICAgICAg
PHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAgICAgICAgIDwvZmll
bGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgCiAgICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxm
aWVsZHNldD4KICAgICAgICAgICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAg
IAogICAgICAgICAgICAgICAgPHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+
CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgICAgIDxmb3JtPgog
ICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8bGVnZW5kPk15IEZpZWxkc2V0
PC9sZWdlbmQ+CiAgICAKICAgICAgICAgICAgICAgIDxwPlN0dWZmIGluIGEgZmllbGRzZXQgd2l0
aCBsZWdlbmQuPC9wPgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgIDwvZm9ybT4KICAg
ICAgICA8Zm9ybT4KICAgICAgICAgICAgPGZpZWxkc2V0PgogICAgICAgICAgICAgICAgPGxlZ2Vu
ZD5NeSBGaWVsZHNldDwvbGVnZW5kPgogICAgCiAgICAgICAgICAgICAgICA8cD5TdHVmZiBpbiBh
IGZpZWxkc2V0IHdpdGggbGVnZW5kLjwvcD4KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAg
ICA8L2Zvcm0+CiAgICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAg
ICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAgICAgICAgICAgICAg
PHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAgICAgICAgIDwvZmll
bGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNv
bCI+CiAgICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAg
IDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAgICAgICAgICAgICAgPHA+U3R1
ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+
CiAgICAgICAgPC9mb3JtPgogICAgCiAgICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNl
dD4KICAgICAgICAgICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAg
ICAgICAgICAgICAgPHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAg
ICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgCiAgICAgICAgPGZvcm0+CiAg
ICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8
L2xlZ2VuZD4KICAgIAogICAgICAgICAgICAgICAgPHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRo
IGxlZ2VuZC48L3A+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAg
ICAgIDxmb3JtPgogICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8bGVnZW5k
Pk15IEZpZWxkc2V0PC9sZWdlbmQ+CiAgICAKICAgICAgICAgICAgICAgIDxwPlN0dWZmIGluIGEg
ZmllbGRzZXQgd2l0aCBsZWdlbmQuPC9wPgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAg
IDwvZm9ybT4KICAgICAgICA8Zm9ybT4KICAgICAgICAgICAgPGZpZWxkc2V0PgogICAgICAgICAg
ICAgICAgPGxlZ2VuZD5NeSBGaWVsZHNldDwvbGVnZW5kPgogICAgCiAgICAgICAgICAgICAgICA8
cD5TdHVmZiBpbiBhIGZpZWxkc2V0IHdpdGggbGVnZW5kLjwvcD4KICAgICAgICAgICAgPC9maWVs
ZHNldD4KICAgICAgICA8L2Zvcm0+CiAgICAgICAgPGZvcm0+CiAgICAgICAgICAgIDxmaWVsZHNl
dD4KICAgICAgICAgICAgICAgIDxsZWdlbmQ+TXkgRmllbGRzZXQ8L2xlZ2VuZD4KICAgIAogICAg
ICAgICAgICAgICAgPHA+U3R1ZmYgaW4gYSBmaWVsZHNldCB3aXRoIGxlZ2VuZC48L3A+CiAgICAg
ICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvYm9keT4KPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21867</attachid>
            <date>2008-06-20 18:36:24 -0700</date>
            <delta_ts>2008-06-20 20:06:15 -0700</delta_ts>
            <desc>Method two: using a clipping region</desc>
            <filename>Legends Clip Out.php</filename>
            <type>text/plain</type>
            <size>2139</size>
            <attacher name="Alex Taylor">darwin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDY0NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMDgtMDYtMTggIEFsZXggVGF5bG9yICA8YWxleEBtaWxsaWFtcC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FS
TklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRmllbGRzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmllbGRzZXQ6
OnBhaW50Qm9yZGVyTWludXNMZWdlbmQpOgorCiAyMDA4LTA2LTE4ICBDaHJpc3RpYW4gRHl3YW4g
IDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgogCiAgICAgICAgIEd0ayBidWlsZCBmaXgsIGJyb3Vn
aHQgdXAgYnkgRGlyayBTY2h1bHplLgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmll
bGRzZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0
LmNwcAkocmV2aXNpb24gMzQ1MjUpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNl
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhUTUxH
ZW5lcmljRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKIAogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKQEAg
LTExOSw3ICsxMjAsNiBAQCB2b2lkIFJlbmRlckZpZWxkc2V0OjpwYWludEJveERlY29yYXRpb25z
CiAgICAgICAgIHJldHVybiBSZW5kZXJCbG9jazo6cGFpbnRCb3hEZWNvcmF0aW9ucyhwYWludElu
Zm8sIHR4LCB0eSk7CiAKICAgICBpbnQgeU9mZiA9IChsZWdlbmQtPnlQb3MoKSA+IDApID8gMCA6
IChsZWdlbmQtPmhlaWdodCgpIC0gYm9yZGVyVG9wKCkpIC8gMjsKLSAgICBpbnQgbGVnZW5kQm90
dG9tID0gdHkgKyBsZWdlbmQtPnlQb3MoKSArIGxlZ2VuZC0+aGVpZ2h0KCk7CiAgICAgaCAtPSB5
T2ZmOwogICAgIHR5ICs9IHlPZmYgLSBib3JkZXJUb3BFeHRyYSgpOwogCkBAIC0xMzEsOCArMTMx
LDIwIEBAIHZvaWQgUmVuZGVyRmllbGRzZXQ6OnBhaW50Qm94RGVjb3JhdGlvbnMKIAogICAgIHBh
aW50RmlsbExheWVycyhwYWludEluZm8sIHN0eWxlKCktPmJhY2tncm91bmRDb2xvcigpLCBzdHls
ZSgpLT5iYWNrZ3JvdW5kTGF5ZXJzKCksIG15LCBtaCwgdHgsIHR5LCB3LCBoKTsKIAotICAgIGlm
IChzdHlsZSgpLT5oYXNCb3JkZXIoKSkKLSAgICAgICAgcGFpbnRCb3JkZXJNaW51c0xlZ2VuZChw
YWludEluZm8uY29udGV4dCwgdHgsIHR5LCB3LCBoLCBzdHlsZSgpLCBsZWdlbmQtPnhQb3MoKSwg
bGVnZW5kLT53aWR0aCgpLCBsZWdlbmRCb3R0b20pOworICAgIGlmICghc3R5bGUoKS0+aGFzQm9y
ZGVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBHcmFwaGljc0NvbnRleHQqIGdyYXBo
aWNzQ29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0OworICAgIGdyYXBoaWNzQ29udGV4dC0+c2F2
ZSgpOworCisgICAgaW50IGNsaXBUb3AgPSB0eTsKKyAgICBpbnQgY2xpcEhlaWdodCA9IG1heChz
dGF0aWNfY2FzdDxpbnQ+KHN0eWxlKCktPmJvcmRlclRvcFdpZHRoKCkpLCBsZWdlbmQtPmhlaWdo
dCgpKTsKKworICAgIGdyYXBoaWNzQ29udGV4dC0+Y2xpcE91dChJbnRSZWN0KHR4ICsgbGVnZW5k
LT54UG9zKCksIGNsaXBUb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZWdlbmQtPndpZHRoKCksIGNsaXBIZWlnaHQpKTsKKyAgICBSZW5kZXJCbG9jazo6cGFpbnRC
b3hEZWNvcmF0aW9ucyhwYWludEluZm8sIHR4LCB0eSk7CisKKyAgICBncmFwaGljc0NvbnRleHQt
PnJlc3RvcmUoKTsKIH0KIAogdm9pZCBSZW5kZXJGaWVsZHNldDo6cGFpbnRNYXNrKFBhaW50SW5m
byYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21868</attachid>
            <date>2008-06-20 19:49:21 -0700</date>
            <delta_ts>2008-06-20 23:06:00 -0700</delta_ts>
            <desc>Method two: using a clipping region with no border radius speed up</desc>
            <filename>Legends Clipout and layout tests</filename>
            <type>text/plain</type>
            <size>5375</size>
            <attacher name="Alex Taylor">darwin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDcwOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDgtMDYtMjAgIEFsZXggVGF5bG9yICA8ZGFyd2luQG1pbGxpYW1w
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0czogZmFzdC9ib3JkZXJzL2ZpZWxkc2V0Qm9yZGVyUmFkaXVzMDEuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9ib3JkZXJzL2ZpZWxkc2V0Qm9yZGVyUmFkaXVzMDIuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9ib3JkZXJzL2ZpZWxkc2V0Qm9yZGVyUmFkaXVzMDMuaHRtbAorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZpZWxkc2V0OjpwYWludEJveERlY29yYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZpZWxkc2V0OjpwYWludEJvcmRlck1pbnVzTGVnZW5kKToKKwogMjAwOC0wNi0yMCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBXaW5kb3dzIGJ1aWxkLgpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcAkocmV2aXNpb24gMzQ2ODYpCisrKyBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKIAogdXNpbmcg
c3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKQEAgLTEzMSw4ICsxMzIsMjYgQEAgdm9pZCBSZW5k
ZXJGaWVsZHNldDo6cGFpbnRCb3hEZWNvcmF0aW9ucwogCiAgICAgcGFpbnRGaWxsTGF5ZXJzKHBh
aW50SW5mbywgc3R5bGUoKS0+YmFja2dyb3VuZENvbG9yKCksIHN0eWxlKCktPmJhY2tncm91bmRM
YXllcnMoKSwgbXksIG1oLCB0eCwgdHksIHcsIGgpOwogCi0gICAgaWYgKHN0eWxlKCktPmhhc0Jv
cmRlcigpKQotICAgICAgICBwYWludEJvcmRlck1pbnVzTGVnZW5kKHBhaW50SW5mby5jb250ZXh0
LCB0eCwgdHksIHcsIGgsIHN0eWxlKCksIGxlZ2VuZC0+eFBvcygpLCBsZWdlbmQtPndpZHRoKCks
IGxlZ2VuZEJvdHRvbSk7CisgICAgaWYgKCFzdHlsZSgpLT5oYXNCb3JkZXIoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gU2F2ZSB0aW1lIGJ5IG5vdCBzYXZpbmcgYW5kIHJlc3RvcmluZyB0
aGUgR3JhcGhpY3NDb250ZXh0IGluIHRoZSBzdHJhaWdodCBib3JkZXIgY2FzZQorICAgIGlmICgh
c3R5bGUoKS0+aGFzQm9yZGVyUmFkaXVzKCkpCisgICAgICAgIHJldHVybiBwYWludEJvcmRlck1p
bnVzTGVnZW5kKHBhaW50SW5mby5jb250ZXh0LCB0eCwgdHksIHcsIGgsIHN0eWxlKCksIGxlZ2Vu
ZC0+eFBvcygpLCBsZWdlbmQtPndpZHRoKCksIGxlZ2VuZEJvdHRvbSk7CisgICAgCisgICAgLy8g
V2UgaGF2ZSByb3VuZGVkIGJvcmRlcnMsIGNyZWF0ZSBhIGNsaXBwaW5nIHJlZ2lvbiAKKyAgICAv
LyBhcm91bmQgdGhlIGxlZ2VuZCBhbmQgcGFpbnQgdGhlIGJvcmRlciBhcyBub3JtYWwKKyAgICBH
cmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0OworICAg
IGdyYXBoaWNzQ29udGV4dC0+c2F2ZSgpOworCisgICAgaW50IGNsaXBUb3AgPSB0eTsKKyAgICBp
bnQgY2xpcEhlaWdodCA9IG1heChzdGF0aWNfY2FzdDxpbnQ+KHN0eWxlKCktPmJvcmRlclRvcFdp
ZHRoKCkpLCBsZWdlbmQtPmhlaWdodCgpKTsKKworICAgIGdyYXBoaWNzQ29udGV4dC0+Y2xpcE91
dChJbnRSZWN0KHR4ICsgbGVnZW5kLT54UG9zKCksIGNsaXBUb3AsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQtPndpZHRoKCksIGNsaXBIZWlnaHQpKTsKKyAg
ICBSZW5kZXJCbG9jazo6cGFpbnRCb3hEZWNvcmF0aW9ucyhwYWludEluZm8sIHR4LCB0eSk7CisK
KyAgICBncmFwaGljc0NvbnRleHQtPnJlc3RvcmUoKTsKIH0KIAogdm9pZCBSZW5kZXJGaWVsZHNl
dDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkKQEAgLTE2
MCw3ICsxNzksNiBAQCB2b2lkIFJlbmRlckZpZWxkc2V0OjpwYWludE1hc2soUGFpbnRJbmZvCiB2
b2lkIFJlbmRlckZpZWxkc2V0OjpwYWludEJvcmRlck1pbnVzTGVnZW5kKEdyYXBoaWNzQ29udGV4
dCogZ3JhcGhpY3NDb250ZXh0LCBpbnQgdHgsIGludCB0eSwgaW50IHcsIGludCBoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSog
c3R5bGUsIGludCBseCwgaW50IGx3LCBpbnQgbGIpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVu
dCBib3JkZXItcmFkaXVzCiAgICAgY29uc3QgQ29sb3ImIHRjID0gc3R5bGUtPmJvcmRlclRvcENv
bG9yKCk7CiAgICAgY29uc3QgQ29sb3ImIGJjID0gc3R5bGUtPmJvcmRlckJvdHRvbUNvbG9yKCk7
CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM0NzA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDgtMDYtMjAgIEFsZXggVGF5bG9yICA8
ZGFyd2luQG1pbGxpYW1wLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1czAxLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1czAyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1czAz
Lmh0bWw6IEFkZGVkLgorCiAyMDA4LTA2LTIwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIHN1cmUgQ1NTIHZhcmlhYmxlcyB3b3JrIGluc2lkZSB0aGUgaW5s
aW5lIHN0eWxlIGF0dHJpYnV0ZS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9maWVs
ZHNldEJvcmRlclJhZGl1czAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9i
b3JkZXJzL2ZpZWxkc2V0Qm9yZGVyUmFkaXVzMDEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1czAxLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjEgQEAKKzxodG1sPgorPGhlYWQ+CisJPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KKwkJZmllbGRzZXQgeworCQkJd2lkdGg6IDIwMHB4OworCQkJaGVpZ2h0OiAyMDBweDsK
KwkJCWJvcmRlcjogNXB4IHNvbGlkICNmMDA7CisJCQktd2Via2l0LWJvcmRlci1yYWRpdXM6IDQw
cHg7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiAjMGYwOworCQl9CisJPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxmb3JtPgorICAgICAgICA8ZmllbGRzZXQ+CisgICAgICAgICAgICA8bGVn
ZW5kPkxlZ2VuZDwvbGVnZW5kPgorICAgICAgICAgICAgJm5ic3A7CisgICAgICAgIDwvZmllbGRz
ZXQ+CisJPC9mb3JtPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1czAy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2ZpZWxkc2V0Qm9y
ZGVyUmFkaXVzMDIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvYm9yZGVy
cy9maWVsZHNldEJvcmRlclJhZGl1czAyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQg
QEAKKzxodG1sPgorPGhlYWQ+CisJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwkJZmllbGRzZXQg
eworCQkJd2lkdGg6IDIwMHB4OworCQkJaGVpZ2h0OiAyMDBweDsKKwkJCWJvcmRlcjogNXB4IHNv
bGlkICNmMDA7CisJCQktd2Via2l0LWJvcmRlci1yYWRpdXM6IDQwcHg7CisJCQliYWNrZ3JvdW5k
LWNvbG9yOiAjMGYwOworCQl9CisJCWxlZ2VuZCB7CisgICAgICAgICAgICB0ZXh0LWFsaWduOiBy
aWdodDsKKwkJfQorCTwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8Zm9ybT4KKyAgICAg
ICAgPGZpZWxkc2V0PgorICAgICAgICAgICAgPGxlZ2VuZD5MZWdlbmQ8L2xlZ2VuZD4KKyAgICAg
ICAgICAgICZuYnNwOworICAgICAgICA8L2ZpZWxkc2V0PgorCTwvZm9ybT4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2JvcmRlcnMvZmllbGRzZXRCb3JkZXJSYWRpdXMwMy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1czAzLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvZmllbGRzZXRCb3JkZXJSYWRpdXMwMy5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACis8aHRtbD4KKzxoZWFkPgorCTxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+CisJCWZpZWxkc2V0IHsKKwkJCXdpZHRoOiAyMDBweDsKKwkJCWhl
aWdodDogMjAwcHg7CisJCQlib3JkZXI6IDQwcHggc29saWQgI2YwMDsKKwkJCS13ZWJraXQtYm9y
ZGVyLXJhZGl1czogODBweDsKKwkJCWJhY2tncm91bmQtY29sb3I6ICMwZjA7CisJCX0KKwk8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGZvcm0+CisgICAgICAgIDxmaWVsZHNldD4KKyAg
ICAgICAgICAgIDxsZWdlbmQ+TGVnZW5kPC9sZWdlbmQ+CisgICAgICAgICAgICAmbmJzcDsKKyAg
ICAgICAgPC9maWVsZHNldD4KKwk8L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="9603"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21869</attachid>
            <date>2008-06-20 23:06:00 -0700</date>
            <delta_ts>2008-06-20 23:13:14 -0700</delta_ts>
            <desc>Method two: using a clipping region</desc>
            <filename>Legend Fixes final.diff</filename>
            <type>text/plain</type>
            <size>28351</size>
            <attacher name="Alex Taylor">darwin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDcwOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDYtMjAgIEFsZXggVGF5bG9yICA8ZGFyd2luQG1pbGxpYW1w
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRzIHN1cHBvcnQgZm9yIGJvcmRlci1yYWRpdXMgb24gbGVnZW5kIGVsZW1lbnRzLgorICAgICAg
ICBGaWVsZHNldHMgd2l0aCBhIGxlZ2VuZCBhbmQgcm91bmRlZCBib3JkZXJzIG5vdyBoYXZlIGEg
Y2xpcHBpbmcgcmVnaW9uIHNldAorICAgICAgICBhcm91bmQgdGhlIGxlZ2VuZC4KKyAgICAgICAg
CisgICAgICAgIEZpeGVzIGJ1ZyAjMTI0MjU6CisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MjU+CisKKyAgICAgICAgVGVzdHM6IGZhc3QvYm9yZGVy
cy9maWVsZHNldEJvcmRlclJhZGl1cy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RmllbGRzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmllbGRzZXQ6OnBhaW50Qm94
RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmllbGRzZXQ6OnBhaW50Qm9y
ZGVyTWludXNMZWdlbmQpOgorCiAyMDA4LTA2LTIwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgRml4IFdpbmRvd3MgYnVpbGQuCkluZGV4OiBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWVsZHNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmllbGRzZXQuY3BwCShyZXZpc2lvbiAzNDcwOSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpZWxkc2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5j
bHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogCiB1c2luZyBzdGQ6Om1pbjsKIHVzaW5nIHN0
ZDo6bWF4OwpAQCAtMTMxLDggKzEzMiwyNiBAQCB2b2lkIFJlbmRlckZpZWxkc2V0OjpwYWludEJv
eERlY29yYXRpb25zCiAKICAgICBwYWludEZpbGxMYXllcnMocGFpbnRJbmZvLCBzdHlsZSgpLT5i
YWNrZ3JvdW5kQ29sb3IoKSwgc3R5bGUoKS0+YmFja2dyb3VuZExheWVycygpLCBteSwgbWgsIHR4
LCB0eSwgdywgaCk7CiAKLSAgICBpZiAoc3R5bGUoKS0+aGFzQm9yZGVyKCkpCi0gICAgICAgIHBh
aW50Qm9yZGVyTWludXNMZWdlbmQocGFpbnRJbmZvLmNvbnRleHQsIHR4LCB0eSwgdywgaCwgc3R5
bGUoKSwgbGVnZW5kLT54UG9zKCksIGxlZ2VuZC0+d2lkdGgoKSwgbGVnZW5kQm90dG9tKTsKKyAg
ICBpZiAoIXN0eWxlKCktPmhhc0JvcmRlcigpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBT
YXZlIHRpbWUgYnkgbm90IHNhdmluZyBhbmQgcmVzdG9yaW5nIHRoZSBHcmFwaGljc0NvbnRleHQg
aW4gdGhlIHN0cmFpZ2h0IGJvcmRlciBjYXNlCisgICAgaWYgKCFzdHlsZSgpLT5oYXNCb3JkZXJS
YWRpdXMoKSkKKyAgICAgICAgcmV0dXJuIHBhaW50Qm9yZGVyTWludXNMZWdlbmQocGFpbnRJbmZv
LmNvbnRleHQsIHR4LCB0eSwgdywgaCwgc3R5bGUoKSwgbGVnZW5kLT54UG9zKCksIGxlZ2VuZC0+
d2lkdGgoKSwgbGVnZW5kQm90dG9tKTsKKyAgICAKKyAgICAvLyBXZSBoYXZlIHJvdW5kZWQgYm9y
ZGVycywgY3JlYXRlIGEgY2xpcHBpbmcgcmVnaW9uIAorICAgIC8vIGFyb3VuZCB0aGUgbGVnZW5k
IGFuZCBwYWludCB0aGUgYm9yZGVyIGFzIG5vcm1hbAorICAgIEdyYXBoaWNzQ29udGV4dCogZ3Jh
cGhpY3NDb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7CisgICAgZ3JhcGhpY3NDb250ZXh0LT5z
YXZlKCk7CisKKyAgICBpbnQgY2xpcFRvcCA9IHR5OworICAgIGludCBjbGlwSGVpZ2h0ID0gbWF4
KHN0YXRpY19jYXN0PGludD4oc3R5bGUoKS0+Ym9yZGVyVG9wV2lkdGgoKSksIGxlZ2VuZC0+aGVp
Z2h0KCkpOworCisgICAgZ3JhcGhpY3NDb250ZXh0LT5jbGlwT3V0KEludFJlY3QodHggKyBsZWdl
bmQtPnhQb3MoKSwgY2xpcFRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxlZ2VuZC0+d2lkdGgoKSwgY2xpcEhlaWdodCkpOworICAgIHBhaW50Qm9yZGVyKHBhaW50
SW5mby5jb250ZXh0LCB0eCwgdHksIHcsIGgsIHN0eWxlKCksIHRydWUsIHRydWUpOworCisgICAg
Z3JhcGhpY3NDb250ZXh0LT5yZXN0b3JlKCk7CiB9CiAKIHZvaWQgUmVuZGVyRmllbGRzZXQ6OnBh
aW50TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkpCkBAIC0xNjAsNyAr
MTc5LDYgQEAgdm9pZCBSZW5kZXJGaWVsZHNldDo6cGFpbnRNYXNrKFBhaW50SW5mbwogdm9pZCBS
ZW5kZXJGaWVsZHNldDo6cGFpbnRCb3JkZXJNaW51c0xlZ2VuZChHcmFwaGljc0NvbnRleHQqIGdy
YXBoaWNzQ29udGV4dCwgaW50IHR4LCBpbnQgdHksIGludCB3LCBpbnQgaCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxl
LCBpbnQgbHgsIGludCBsdywgaW50IGxiKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgYm9y
ZGVyLXJhZGl1cwogICAgIGNvbnN0IENvbG9yJiB0YyA9IHN0eWxlLT5ib3JkZXJUb3BDb2xvcigp
OwogICAgIGNvbnN0IENvbG9yJiBiYyA9IHN0eWxlLT5ib3JkZXJCb3R0b21Db2xvcigpOwogCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAzNDcwOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA4LTA2LTIwICBBbGV4IFRheWxvciAgPGRhcndp
bkBtaWxsaWFtcC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgYm9yZGVyLXJhZGl1cyBvbiBmaWVsZHNldCBlbGVt
ZW50cy4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjQyNT4KKworICAgICAgICAqIGZhc3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1cy5odG1s
OiBBZGRlZC4KKwogMjAwOC0wNi0yMCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFrZSBzdXJlIENTUyB2YXJpYWJsZXMgd29yayBpbnNpZGUgdGhlIGlubGluZSBz
dHlsZSBhdHRyaWJ1dGUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvZmllbGRzZXRC
b3JkZXJSYWRpdXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMv
ZmllbGRzZXRCb3JkZXJSYWRpdXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1cy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDEwMSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+PC90aXRsZT4KKyAgICA8c3R5
bGU+CisgICAgICAgIGxlZ2VuZCB7IGhlaWdodDogMTBweDsgYm9yZGVyOiAxcHggc29saWQgYmx1
ZTsgfQorICAgICAgICBmaWVsZHNldCB7IG1hcmdpbi1ib3R0b206IDEwcHg7IC13ZWJraXQtYm9y
ZGVyLXJhZGl1czogNXB4OyBoZWlnaHQ6IDIwcHg7fQorICAgICAgICBmaWVsZHNldC5yZW5kZXIg
eyBib3JkZXI6IDhweCBkb3VibGU7IH0KKyAgICAgICAgZmllbGRzZXQucmVuZGVyIGxlZ2VuZCB7
IGhlaWdodDogMTJweDsgd2lkdGg6IDUwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTI4
LCAwLCAwLjMpOyBib3JkZXI6IG5vbmU7IH0KKyAgICAgICAgZGl2LnJlbCB7IHBvc2l0aW9uOiBy
ZWxhdGl2ZTsgaGVpZ2h0OiA0MHB4OyB9CisgICAgICAgICNjb2wxIHsgZmxvYXQ6IGxlZnQ7IH0K
KyAgICAgICAgI2NvbDIgeyBmbG9hdDogbGVmdDsgbWFyZ2luLWxlZnQ6IDcwcHg7IH0KKyAgICAg
ICAgI2NvbDMgeyBtYXJnaW4tbGVmdDogNDUwcHg7IH0KKworICAgIDwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgICA8IS0tIGJvcmRlciByZW5kZXJpbmcgdGVzdHMgLS0+CisgICAgPGRpdiBp
ZD0iY29sMSI+CisgICAgICAgIDxmaWVsZHNldCBjbGFzcz0icmVuZGVyIiBzdHlsZT0id2lkdGg6
IDEwMHB4OyI+CisgICAgICAgICAgICA8bGVnZW5kPjwvbGVnZW5kPgorICAgICAgICA8L2ZpZWxk
c2V0PgorICAgICAgICA8ZmllbGRzZXQgY2xhc3M9InJlbmRlciIgc3R5bGU9IndpZHRoOiAxMDBw
eDsiPgorICAgICAgICAgICAgPGxlZ2VuZCBzdHlsZT0id2lkdGg6IDEwOCU7Ij48L2xlZ2VuZD4K
KyAgICAgICAgPC9maWVsZHNldD4KKyAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJyZW5kZXIiIHN0
eWxlPSJ3aWR0aDogMTAwcHg7Ij4KKyAgICAgICAgICAgIDxsZWdlbmQgc3R5bGU9IndpZHRoOiAx
MTIlOyI+PC9sZWdlbmQ+CisgICAgICAgIDwvZmllbGRzZXQ+CisgICAgICAgIDxmaWVsZHNldCBj
bGFzcz0icmVuZGVyIiBzdHlsZT0id2lkdGg6IDEwMHB4OyI+CisgICAgICAgICAgICA8bGVnZW5k
IHN0eWxlPSJ3aWR0aDogMTE3JTsiPjwvbGVnZW5kPgorICAgICAgICA8L2ZpZWxkc2V0PgorICAg
ICAgICA8ZmllbGRzZXQgY2xhc3M9InJlbmRlciIgc3R5bGU9IndpZHRoOiAxMDBweDsiPgorICAg
ICAgICAgICAgPGxlZ2VuZCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0xMnB4OyI+PC9sZWdlbmQ+Cisg
ICAgICAgIDwvZmllbGRzZXQ+CisgICAgICAgIDxmaWVsZHNldCBjbGFzcz0icmVuZGVyIiBzdHls
ZT0id2lkdGg6IDEwMHB4OyBib3JkZXItd2lkdGg6IDE1cHg7IGJvcmRlci1zdHlsZTogc29saWQ7
Ij4KKyAgICAgICAgICAgIDxsZWdlbmQgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMTJweDsiPjwvbGVn
ZW5kPgorICAgICAgICA8L2ZpZWxkc2V0PgorICAgICAgICA8ZmllbGRzZXQgY2xhc3M9InJlbmRl
ciIgc3R5bGU9IndpZHRoOiAxMDBweDsgYm9yZGVyLXdpZHRoOiAxNXB4OyBib3JkZXItc3R5bGU6
IHNvbGlkOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDIwcHg7Ij4KKyAgICAgICAgICAgIDxsZWdl
bmQgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMTJweDsiPjwvbGVnZW5kPgorICAgICAgICA8L2ZpZWxk
c2V0PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbDIiPgorICAgICAgICA8ZmllbGRzZXQg
Y2xhc3M9InJlbmRlciIgc3R5bGU9IndpZHRoOiAxMDBweDsiPgorICAgICAgICAgICAgPGxlZ2Vu
ZCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0xNnB4OyI+PC9sZWdlbmQ+CisgICAgICAgIDwvZmllbGRz
ZXQ+CisgICAgICAgIDxmaWVsZHNldCBjbGFzcz0icmVuZGVyIiBzdHlsZT0id2lkdGg6IDEwMHB4
OyI+CisgICAgICAgICAgICA8bGVnZW5kIHN0eWxlPSJtYXJnaW4tbGVmdDogLTIxcHg7Ij48L2xl
Z2VuZD4KKyAgICAgICAgPC9maWVsZHNldD4KKyAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJyZW5k
ZXIiIHN0eWxlPSJ3aWR0aDogMTAwcHg7Ij4KKyAgICAgICAgICAgIDxsZWdlbmQgc3R5bGU9Im1h
cmdpbi1sZWZ0OiAtNjlweDsiPjwvbGVnZW5kPgorICAgICAgICA8L2ZpZWxkc2V0PgorICAgICAg
ICA8ZmllbGRzZXQgY2xhc3M9InJlbmRlciIgc3R5bGU9IndpZHRoOiAxMDBweDsiPgorICAgICAg
ICAgICAgPGxlZ2VuZCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC03NHB4OyI+PC9sZWdlbmQ+CisgICAg
ICAgIDwvZmllbGRzZXQ+CisgICAgICAgIDxmaWVsZHNldCBjbGFzcz0icmVuZGVyIiBzdHlsZT0i
d2lkdGg6IDEwMHB4OyI+CisgICAgICAgICAgICA8bGVnZW5kIHN0eWxlPSJtYXJnaW4tbGVmdDog
MTE1JTsiPjwvbGVnZW5kPgorICAgICAgICA8L2ZpZWxkc2V0PgorICAgICAgICA8ZmllbGRzZXQg
Y2xhc3M9InJlbmRlciIgc3R5bGU9IndpZHRoOiAxMDBweDsiPgorICAgICAgICAgICAgPGxlZ2Vu
ZCBzdHlsZT0ibWFyZ2luLWxlZnQ6IDEyMCU7Ij48L2xlZ2VuZD4KKyAgICAgICAgPC9maWVsZHNl
dD4KKyAgICA8L2Rpdj4KKyAgICA8IS0tIGxheW91dCB0ZXN0cyAtLT4KKyAgICA8ZGl2IGlkPSJj
b2wzIj4KKyAgICAgICAgPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDogMTAwcHg7Ij4KKyAgICAgICAg
ICAgIDxsZWdlbmQgc3R5bGU9IndpZHRoOiAxNTBweDsiPjwvbGVnZW5kPgorICAgICAgICA8L2Zp
ZWxkc2V0PgorICAgICAgICA8ZmllbGRzZXQgc3R5bGU9IndpZHRoOiAxMDBweDsiPgorICAgICAg
ICAgICAgPGxlZ2VuZCBzdHlsZT0id2lkdGg6IDkwcHg7IG1hcmdpbjogMzBweDsiPjwvbGVnZW5k
PgorICAgICAgICA8L2ZpZWxkc2V0PgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWwiIHN0eWxlPSJ3
aWR0aDogMTAwcHg7Ij4KKyAgICAgICAgICAgIDxmaWVsZHNldD4KKyAgICAgICAgICAgICAgICA8
bGVnZW5kIHN0eWxlPSJ3aWR0aDogMTUwcHg7Ij48L2xlZ2VuZD4KKyAgICAgICAgICAgIDwvZmll
bGRzZXQ+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWwiIHN0eWxlPSJ3
aWR0aDogMzAwcHg7Ij4KKyAgICAgICAgICAgIDxmaWVsZHNldCBzdHlsZT0id2lkdGg6IDEwMDsg
bWFyZ2luOiBhdXRvOyI+CisgICAgICAgICAgICAgICAgPGxlZ2VuZCBzdHlsZT0id2lkdGg6IDE1
MHB4OyI+PC9sZWdlbmQ+CisgICAgICAgICAgICA8L2ZpZWxkc2V0PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0icmVsIiBzdHlsZT0id2lkdGg6IDEwMHB4OyI+CisgICAgICAg
ICAgICA8ZmllbGRzZXQgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsiPgorICAgICAgICAgICAg
ICAgIDxsZWdlbmQgc3R5bGU9IndpZHRoOiAxNTBweDsiPjwvbGVnZW5kPgorICAgICAgICAgICAg
PC9maWVsZHNldD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InJlbCI+Cisg
ICAgICAgICAgICA8ZmllbGRzZXQgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDEw
MHB4OyI+CisgICAgICAgICAgICAgICAgPGxlZ2VuZCBzdHlsZT0id2lkdGg6IDE1MHB4OyI+PC9s
ZWdlbmQ+CisgICAgICAgICAgICA8L2ZpZWxkc2V0PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGRpdiBjbGFzcz0icmVsIiBzdHlsZT0id2lkdGg6IDMwMHB4OyI+CisgICAgICAgICAgICA8Zmll
bGRzZXQgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTAwcHg7IHJpZ2h0OiAxMDBw
eDsiPgorICAgICAgICAgICAgICAgIDxsZWdlbmQgc3R5bGU9IndpZHRoOiAxNTBweDsiPjwvbGVn
ZW5kPgorICAgICAgICAgICAgPC9maWVsZHNldD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxm
aWVsZHNldCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyB3aWR0aDogMTAwcHg7Ij4KKyAgICAgICAg
ICAgIDxsZWdlbmQgc3R5bGU9IndpZHRoOiAxNTBweDsiPjwvbGVnZW5kPgorICAgICAgICA8L2Zp
ZWxkc2V0PgorICAgICAgICA8ZmllbGRzZXQgc3R5bGU9IndpZHRoOiAxMDBweDsiPgorICAgICAg
ICAgICAgPGxlZ2VuZCBzdHlsZT0id2lkdGg6IDE1MCU7Ij48L2xlZ2VuZD4KKyAgICAgICAgPC9m
aWVsZHNldD4KKyAgICA8L2Rpdj4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2JvcmRlcnMvZmllbGRzZXRCb3JkZXJSYWRpdXMtZXhwZWN0ZWQuY2hlY2tzdW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvYm9yZGVycy9maWVs
ZHNldEJvcmRlclJhZGl1cy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2JvcmRlcnMvZmllbGRzZXRCb3JkZXJSYWRpdXMtZXhw
ZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2U4YTc5NzA4MzBmNzM3
MjJhZDQxOGZhNWEwMjhjZDI1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1cy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
Ym9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ib3JkZXJzL2ZpZWxkc2V0Qm9yZGVyUmFk
aXVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBAQAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4
MgorICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMCwwKSBzaXplIDE1OHg0
NTUKKyAgICAgICAgUmVuZGVyRmllbGRTZXQge0ZJRUxEU0VUfSBhdCAoMiwwKSBzaXplIDE0MHg1
MSBbYm9yZGVyOiAoOHB4IGRvdWJsZSAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJMZWdlbmQg
e0xFR0VORH0gYXQgKDIwLDApIHNpemUgNTR4MTIgW2JnY29sb3I9IzAwODAwMDRDXQorICAgICAg
ICBSZW5kZXJGaWVsZFNldCB7RklFTERTRVR9IGF0ICgyLDYxKSBzaXplIDE0MHg1MSBbYm9yZGVy
OiAoOHB4IGRvdWJsZSAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJMZWdlbmQge0xFR0VORH0g
YXQgKDIwLDApIHNpemUgMTEyeDEyIFtiZ2NvbG9yPSMwMDgwMDA0Q10KKyAgICAgICAgUmVuZGVy
RmllbGRTZXQge0ZJRUxEU0VUfSBhdCAoMiwxMjIpIHNpemUgMTQweDUxIFtib3JkZXI6ICg4cHgg
ZG91YmxlICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckxlZ2VuZCB7TEVHRU5EfSBhdCAoMjAs
MCkgc2l6ZSAxMTZ4MTIgW2JnY29sb3I9IzAwODAwMDRDXQorICAgICAgICBSZW5kZXJGaWVsZFNl
dCB7RklFTERTRVR9IGF0ICgyLDE4Mykgc2l6ZSAxNDB4NTEgW2JvcmRlcjogKDhweCBkb3VibGUg
IzAwMDAwMCldCisgICAgICAgICAgUmVuZGVyTGVnZW5kIHtMRUdFTkR9IGF0ICgyMCwwKSBzaXpl
IDEyMXgxMiBbYmdjb2xvcj0jMDA4MDAwNENdCisgICAgICAgIFJlbmRlckZpZWxkU2V0IHtGSUVM
RFNFVH0gYXQgKDIsMjQ0KSBzaXplIDE0MHg1MSBbYm9yZGVyOiAoOHB4IGRvdWJsZSAjMDAwMDAw
KV0KKyAgICAgICAgICBSZW5kZXJMZWdlbmQge0xFR0VORH0gYXQgKDgsMCkgc2l6ZSA1NHgxMiBb
Ymdjb2xvcj0jMDA4MDAwNENdCisgICAgICAgIFJlbmRlckZpZWxkU2V0IHtGSUVMRFNFVH0gYXQg
KDIsMzA1KSBzaXplIDE1NHg2NSBbYm9yZGVyOiAoMTVweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAg
ICAgICBSZW5kZXJMZWdlbmQge0xFR0VORH0gYXQgKDE1LDEpIHNpemUgNTR4MTIgW2JnY29sb3I9
IzAwODAwMDRDXQorICAgICAgICBSZW5kZXJGaWVsZFNldCB7RklFTERTRVR9IGF0ICgyLDM4MCkg
c2l6ZSAxNTR4NjUgW2JvcmRlcjogKDE1cHggc29saWQgIzAwMDAwMCldCisgICAgICAgICAgUmVu
ZGVyTGVnZW5kIHtMRUdFTkR9IGF0ICgxNSwxKSBzaXplIDU0eDEyIFtiZ2NvbG9yPSMwMDgwMDA0
Q10KKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDIyOCwwKSBzaXplIDE0
NHgzNjYKKyAgICAgICAgUmVuZGVyRmllbGRTZXQge0ZJRUxEU0VUfSBhdCAoMiwwKSBzaXplIDE0
MHg1MSBbYm9yZGVyOiAoOHB4IGRvdWJsZSAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJMZWdl
bmQge0xFR0VORH0gYXQgKDQsMCkgc2l6ZSA1NHgxMiBbYmdjb2xvcj0jMDA4MDAwNENdCisgICAg
ICAgIFJlbmRlckZpZWxkU2V0IHtGSUVMRFNFVH0gYXQgKDIsNjEpIHNpemUgMTQweDUxIFtib3Jk
ZXI6ICg4cHggZG91YmxlICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckxlZ2VuZCB7TEVHRU5E
fSBhdCAoLTEsMCkgc2l6ZSA1NHgxMiBbYmdjb2xvcj0jMDA4MDAwNENdCisgICAgICAgIFJlbmRl
ckZpZWxkU2V0IHtGSUVMRFNFVH0gYXQgKDIsMTIyKSBzaXplIDE0MHg1MSBbYm9yZGVyOiAoOHB4
IGRvdWJsZSAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJMZWdlbmQge0xFR0VORH0gYXQgKC00
OSwwKSBzaXplIDU0eDEyIFtiZ2NvbG9yPSMwMDgwMDA0Q10KKyAgICAgICAgUmVuZGVyRmllbGRT
ZXQge0ZJRUxEU0VUfSBhdCAoMiwxODMpIHNpemUgMTQweDUxIFtib3JkZXI6ICg4cHggZG91Ymxl
ICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckxlZ2VuZCB7TEVHRU5EfSBhdCAoLTU0LDApIHNp
emUgNTR4MTIgW2JnY29sb3I9IzAwODAwMDRDXQorICAgICAgICBSZW5kZXJGaWVsZFNldCB7RklF
TERTRVR9IGF0ICgyLDI0NCkgc2l6ZSAxNDB4NTEgW2JvcmRlcjogKDhweCBkb3VibGUgIzAwMDAw
MCldCisgICAgICAgICAgUmVuZGVyTGVnZW5kIHtMRUdFTkR9IGF0ICgxMzUsMCkgc2l6ZSA1NHgx
MiBbYmdjb2xvcj0jMDA4MDAwNENdCisgICAgICAgIFJlbmRlckZpZWxkU2V0IHtGSUVMRFNFVH0g
YXQgKDIsMzA1KSBzaXplIDE0MHg1MSBbYm9yZGVyOiAoOHB4IGRvdWJsZSAjMDAwMDAwKV0KKyAg
ICAgICAgICBSZW5kZXJMZWdlbmQge0xFR0VORH0gYXQgKDE0MCwwKSBzaXplIDU0eDEyIFtiZ2Nv
bG9yPSMwMDgwMDA0Q10KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg0NTAsMCkgc2l6ZSAz
MzR4Mzg2CisgICAgICAgIFJlbmRlckZpZWxkU2V0IHtGSUVMRFNFVH0gYXQgKDIsMCkgc2l6ZSAx
ODR4MzkgW2JvcmRlcjogKDJweCBncm9vdmUgI0MwQzBDMCldCisgICAgICAgICAgUmVuZGVyTGVn
ZW5kIHtMRUdFTkR9IGF0ICgxNCwwKSBzaXplIDE1NngxMiBbYm9yZGVyOiAoMXB4IHNvbGlkICMw
MDAwRkYpXQorICAgICAgICBSZW5kZXJGaWVsZFNldCB7RklFTERTRVR9IGF0ICgyLDQ5KSBzaXpl
IDE4NHgzOSBbYm9yZGVyOiAoMnB4IGdyb292ZSAjQzBDMEMwKV0KKyAgICAgICAgICBSZW5kZXJM
ZWdlbmQge0xFR0VORH0gYXQgKDQ0LDApIHNpemUgOTZ4MTIgW2JvcmRlcjogKDFweCBzb2xpZCAj
MDAwMEZGKV0KKyAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMjk4KSBzaXpl
IDMzNHg0OQorICAgICAgICAgIFJlbmRlckZpZWxkU2V0IHtGSUVMRFNFVH0gYXQgKDIsMCkgc2l6
ZSAxODR4MzkgW2JvcmRlcjogKDJweCBncm9vdmUgI0MwQzBDMCldCisgICAgICAgICAgICBSZW5k
ZXJMZWdlbmQge0xFR0VORH0gYXQgKDE0LDApIHNpemUgMTU2eDEyIFtib3JkZXI6ICgxcHggc29s
aWQgIzAwMDBGRildCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCisgICAgICAgIFJlbmRlckZpZWxkU2V0IHtGSUVMRFNFVH0gYXQgKDIsMzQ3KSBzaXplIDEy
OHgzOSBbYm9yZGVyOiAoMnB4IGdyb292ZSAjQzBDMEMwKV0KKyAgICAgICAgICBSZW5kZXJMZWdl
bmQge0xFR0VORH0gYXQgKDE0LDApIHNpemUgMTU2eDEyIFtib3JkZXI6ICgxcHggc29saWQgIzAw
MDBGRildCitsYXllciBhdCAoNDU4LDEwNikgc2l6ZSAxODZ4NDkKKyAgUmVuZGVyQmxvY2sgKHJl
bGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDk4KSBzaXplIDEwMHg0MAorICAgIFJlbmRl
ckZpZWxkU2V0IHtGSUVMRFNFVH0gYXQgKDIsMCkgc2l6ZSAxODR4MzkgW2JvcmRlcjogKDJweCBn
cm9vdmUgI0MwQzBDMCldCisgICAgICBSZW5kZXJMZWdlbmQge0xFR0VORH0gYXQgKDE0LDApIHNp
emUgMTU2eDEyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDBGRildCitsYXllciBhdCAoNDU4LDE0
Nikgc2l6ZSAzMDB4NDAKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9
IGF0ICgwLDEzOCkgc2l6ZSAzMDB4NDAKKyAgICBSZW5kZXJGaWVsZFNldCB7RklFTERTRVR9IGF0
ICg1OCwwKSBzaXplIDE4NHgzOSBbYm9yZGVyOiAoMnB4IGdyb292ZSAjQzBDMEMwKV0KKyAgICAg
IFJlbmRlckxlZ2VuZCB7TEVHRU5EfSBhdCAoMTQsMCkgc2l6ZSAxNTZ4MTIgW2JvcmRlcjogKDFw
eCBzb2xpZCAjMDAwMEZGKV0KK2xheWVyIGF0ICg0NTgsMTg2KSBzaXplIDEwMHg0MAorICBSZW5k
ZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMTc4KSBzaXplIDEwMHg0
MAorbGF5ZXIgYXQgKDQ2MCwxODYpIHNpemUgMTg0eDM5CisgIFJlbmRlckZpZWxkU2V0IHtGSUVM
RFNFVH0gYXQgKDIsMCkgc2l6ZSAxODR4MzkgW2JvcmRlcjogKDJweCBncm9vdmUgI0MwQzBDMCld
CisgICAgUmVuZGVyTGVnZW5kIHtMRUdFTkR9IGF0ICgxNCwwKSBzaXplIDE1NngxMiBbYm9yZGVy
OiAoMXB4IHNvbGlkICMwMDAwRkYpXQorbGF5ZXIgYXQgKDQ1OCwyMjYpIHNpemUgMzM0eDQwCisg
IFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwyMTgpIHNpemUg
MzM0eDQwCitsYXllciBhdCAoNDYwLDIyNikgc2l6ZSAxODR4MzkKKyAgUmVuZGVyRmllbGRTZXQg
e0ZJRUxEU0VUfSBhdCAoMiwwKSBzaXplIDE4NHgzOSBbYm9yZGVyOiAoMnB4IGdyb292ZSAjQzBD
MEMwKV0KKyAgICBSZW5kZXJMZWdlbmQge0xFR0VORH0gYXQgKDE0LDApIHNpemUgMTU2eDEyIFti
b3JkZXI6ICgxcHggc29saWQgIzAwMDBGRildCitsYXllciBhdCAoNDU4LDI2Nikgc2l6ZSAzMDB4
NDAKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDI1OCkg
c2l6ZSAzMDB4NDAKK2xheWVyIGF0ICg1NjAsMjY2KSBzaXplIDE4NHgzOQorICBSZW5kZXJGaWVs
ZFNldCB7RklFTERTRVR9IGF0ICgxMDIsMCkgc2l6ZSAxODR4MzkgW2JvcmRlcjogKDJweCBncm9v
dmUgI0MwQzBDMCldCisgICAgUmVuZGVyTGVnZW5kIHtMRUdFTkR9IGF0ICgxNCwwKSBzaXplIDE1
NngxMiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwRkYpXQpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvYm9yZGVycy9maWVsZHNldEJvcmRlclJhZGl1cy1leHBlY3RlZC5wbmcK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4K
c3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvYm9yZGVycy9maWVsZHNldEJvcmRl
clJhZGl1cy1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsg
YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFB
SllDQVlBQUFDYWRvSndBQUFnQUVsRVFWUjRuTzNkVDJoajUzNC8vby9jRENXTwpUTUJlWlpPN0tE
Y0JrN3U1MUtMTkJLeHhVN2d3a2xaZFREWURXWlV1WmxIdmFsTXk1VEx1emwza3UvaEJ1NTlrTXpX
V0RLYXBxd1F1CmR5R3ZobHdNYzJmVmJGcEt4OWhFOGFJR25kOWlzSzluNHNrYzJkSno5T2YxZ2dO
am9TTjlSbjRlNjd6UDh6em5sTElzeXdJQUFDQ0IKbWFJTEFBQUFwb2NBQWdBQUpDT0FBQUFBeVFn
Z0FBQkFNZ0lJQUFDUWpBQUNBQUFrSTRBQUFBREp2RkhVRzdkKzN5cnFyWWVxOWw2dAo2QktZUXZv
VGpLNVNxZWdLbUNidTdzWTRLQ3lBQU1DMGNGQklDc0l1NDZMdktWaXRWaXRXVmxaaWJtNHVTcVhT
bGJkSmRaM1BaRnkzCnVibTVXRmxaaVZack1zL0NqN0t6L2ppcGltN2I0N2pwandDTXVyNEN5UHI2
ZXRUcjlXaTMyOUh0ZG9kVkUyT20yKzFHdTkyT2VyMGUKNit2clJaY3pOUzcyUnppalB3SXc2bklI
a0ZhckZSc2JHOE9zaFFtd3NiSGh6R3NDK2lONTZJOEFqS0xjYTBBMk56ZC85RmgyalVtdAprN3Bv
OWpxZnliZ3FsVjZjVXJlNXVSbTFtc1hEdzNSWmY1eEUwOWlmcmt0L0hMN0R3OFBvZERveE16TVR6
V1l6eHg2ZkQ3MG1PSFB2CjNyM1hQcWRlcjBldjE0dEtwUkx6OC9NSnFvSVhsYktjMy9CemMzTXZU
THU2N29IQnBBYVFhYjFxejhXRG5uSzVITjkvLzMyQjFVeSsKbC90ajgwbWVnNkR4TTYzOTZicjB4
K0Y1L1BoeEhCMGQ5YlZQdGJwc0VUcEpsRW9SWDMvOVRWLzdIQjhmUjZQUkdGSkZjTG5jSXlDWApo
WStYejdUMVkxSVBtSzd6bVl5ckxNc2l5N0x6Lzd2MVFjUDNjbitjMUVBL2pmM3B1dlRINFRrOFBJ
eWpvNlBvOVhwUktwV2lVcW5FCjdPeHMwV1hCQzVhWGwxLzduSk9UaytoME92SG8wYVBJc2l4dTNy
d1pDd3NMQ2FxRDU5eUlFQUJ5NkhRNkVmRThHRmVyVmVHRHNUVTcKT3h2VmF2WDhLb3JiMjlzRlY4
UzBFVUFBSUllWm1lZGZtWlZLcGVCS1lEQnUzNzRkRVJFSEJ3Y0ZWOEswR1ZnQU9SdjJ6N3ROcW40
LwpoM0hkSUlXaTIvbTRiS1J4dHVEY3lBZVQ0c2FOR3hFUkxsUkJjdTZFRGdCRFpqa1R3QjhVRmtC
YzNRWUdSMytDMFdXUUN1QkYxb0FBCkFBREptSUlGRStMaUpXdXRDd0FBUnBVUkVBQUFJQmtCQkFB
QVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1MKRVVBQUFJQmtCQkFBQUNB
WkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFR
QUFBZwpHUUVFQUFCSVJnQUJBQUNTRVVBQUlJZDZ2UjRSRVNjbkp3VlhBb054ZW5vYUVSR3RWcXZn
U3BnMkFnZ0E1TkRyOVNJaW90UHBGRndKCkRNYk96azVFUkN3dUxoWmNDZE5HQUFHQUhDcVZTa1JF
WkZrV1cxdGI1MmVQWWR5Y25wN0cxdFpXdE52dGlJaG9OQm9GVjhTMGVhUG8KQWdCZ0hNelB6MGUz
MjQzZDNkMklpTmpiMnl1NElyaSt1M2Z2eHNMQ1F0RmxNR1ZLV1pabHVaNVlLcDMvKzJ5WHl4NWpP
bWdQeGZMNQpjNUgya05helo4OWllM3M3RGc0T29sYXJGVjBPOUszVmFzWGk0bUkwR2czaGcwSUlJ
RnlKOWxBc256OFhhUThBakJOclFBQUFnR1FFCkVBQUFJQmtCQkFBQVNHWmdWOEc2T044WUtKYitD
QUNNS2lNZ0FBQkFNZ0lJQUFDUVRPNHBXT1Z5T2JyZDdndVB1YlFqbHltWHkwV1gKTVBIMFIvTFNI
d0VZTmJsSFFKYVdsczcvYlg0NUw3dllKaTYyRllaRGYrU242SThBakxMY0l5Q3JxNnZSYnJmUGYz
YlF3NnVzcnE0VwpYY0xFMHgvSlMzOEVZTlRrSGdHcDFXcXh0clkyekZxWUFHdHJhMUdyMVlvdVkr
THBqK1NoUDA2M1VzbFc1QWE4V2lucmMrSjRxOVdLCnpjM04yTi9mLzlFY2RLWlR1VnlPcGFXbFdG
MWRkYkNUbVA3SXkvUkh6cFJLRVphR0ZjTm5Eeit0N3dBQ0FJdytCOEhGOGRuRFQzTVoKWGdBQUlC
a0JCQUFBU0NiM1ZiQUFnSWpEdzhQb2REb3hNek1UeldhejZISit3dWRGRnpEVjd0MjdWM1FKcjFT
djE2UFg2MFdsVW9uNQorZm1peTJFS1dRTUNBRGs5ZnZ3NGpvNk9paTRqbDJwMTJUcUVncFJLRVY5
Ly9VM1JaZVJ5Zkh3Y2pVYWo2REtZTWtaQUFDQ0h3OFBECk9EbzZpbDZ2RjZWU0tTcVZTc3pPemha
ZEZpTnFlWG01NkJKZTZlVGtKRHFkVGp4NjlDaXlMSXViTjIvR3dzSkMwV1V4UmF3QkFZQWMKT3Ax
T1JEeS84V2UxV2hVK0dGdXpzN05SclZaalpXVWxJaUsydDdjTHJvaHBJNEFBUUE0ek04Ky9NaXVW
U3NHVndHRGN2bjA3SWlJTwpEZzRLcm9ScEk0QUFRQTVuQzg2TmZEQXBidHk0RVJIaHBxVWtadzBJ
QUV5b1Vxbm9DZ0IrckxBQTB2cDlxNmkzWmdCcTd6bGJVcFJKCjdUdmFGQXlXSzJBQm84b1VMQUFB
SUptK0EwaXIxWXFWbFpXWW01dUxVcWwwNVkzeGR2RjNPVGMzRnlzcks5RnFUZWFaZWRLNHp0OFQK
bS80SXdQam9LNENzcjY5SHZWNlBkcnNkM1c1M1dEVXhacnJkYnJUYjdhalg2N0crdmw1ME9URFY5
RWNBUmwzdUFOSnF0V0pqWTJPWQp0VEFCTmpZMm5IbUZFYUUvQWpDS2NnZVF6YzNOSHoyV1pkbVZO
OGJiVC8wdUwyc3I4RHJYK1h0aTB4OEJHQis1QThqKy92NExQd3NSCm5IbTVMYnpjVm9CMDlFY0FS
bDN1eS9CZVhQTng5Z1YzbmNYa3pTZk5LKzlMOFM3KzdzL092SjQ5Wm4wUVYrSGlGSU9oUHdJdzZs
eUcKRndBQVNFWUFBUUFBa2huWW5kRDdYUk15cVhkekJxN0d1cktyTTMwTmdIRmlCQVFBQUVobVlD
TWcvYXE5Vnl2cXJXR3M2VHNBd0RnegpBZ0lBQUNSVDJBZ0ljSFV2WHdiNVZZOEJBSXdhSXlBQUFF
QXlBZ2dBQUpDTUFBSUFBQ1FqZ0FBQUFNa0lJQUFBUURJQ0NBQUFrSXdBCkFnQUFKQ09BQUVBTzlY
bzlJaUpPVGs0S3JnUUc0L1QwTkNJaVdxMVd3WlV3YlFRUUFNaWgxK3RGUkVTbjB5bTRFaGlNbloy
ZGlJaFkKWEZ3c3VCS21qUUFDQURsVUtwV0lpTWl5TExhMnRzN1BIc080T1QwOWphMnRyV2kzMnhF
UjBXZzBDcTZJYWZORzBRVUF3RGlZbjUrUApicmNidTd1N0VSR3h0N2RYY0VWd2ZYZnYzbzJGaFlX
aXkyREtsTElzeTNJOXNWUTYvL2ZaTHBjOXhuVFFIb3JsOCtjaTdTR3RaOCtlCnhmYjJkaHdjSEVT
dFZpdTZIT2hicTlXS3hjWEZhRFFhd2dlRkVFQzRFdTJoV0Q1L0x0SWVBQmduMW9BQUFBREpDQ0FB
QUVBeUFnZ0EKQUpDTUFBSUFBQ1FqZ0FBQUFNa0lJQUFBUURJQ0NBQUFrSXdBQWdBQUpDT0FBQUFB
eWJ4UmRBRUFNTWt1M0pRZWhpN0xpcTRBWGs4QQpBWUFoYzFCSUNzSXU0OElVTEFBQUlCa0JCQUFB
U0VZQUFRQUFrckVHQkFENmNIaDRHSjFPSjJabVpxTFpiT2JZNC9PaDF3Um43dDI3Cjk5cm4xT3Yx
NlBWNlVhbFVZbjUrUGtGVjhLSlNsdVZiR2xlNnNMTHBiSmVTMVU3RTVlMGhaN1BpaXZSSFhrVi9I
SzdIangvSDBkRlIKWC90VXE4c1dvWk5FcVJUeDlkZmY5TFhQOGZGeE5CcU5JVlVFbHpNQ0FnQTVI
QjRleHRIUlVmUjZ2U2lWU2xHcFZHSjJkcmJvc3VBRgp5OHZMcjMzT3ljbEpkRHFkZVBUb1VXUlpG
amR2M295RmhZVUUxY0Z6MW9BQVFBNmRUaWNpbm84dVZhdFY0WU94TlRzN0c5VnFOVlpXClZpSWlZ
bnQ3dStDS21EYTVSMERLNVhKMHU5MFhIak9zejJYSzVYTFJKVXc4L1pHODlNZkJtWmw1ZnM2dVVx
a1VYQWtNeHUzYnQyTnYKYnk4T0RnNktMb1VwazNzRVpHbHA2ZnpmNXByenNvdHQ0bUpiWVRqMFIz
NksvamdjWnd2T2pYd3dLVzdjdUJFUkViVmFyZUJLbURhNQpSMEJXVjFlajNXNmYvK3lnaDFkWlhW
MHR1b1NKcHorU2wvNDRHblJSZ0QvSVBRSlNxOVZpYlcxdG1MVXdBZGJXMXB4SlNVQi9KQS85CmNU
UmttYzJXYm9OeDBOY2k5QWNQSGtTejJZeGJ0MjZaVjh5NWNya2N0MjdkaW1hekdROGVQQ2k2bktt
aFAzSVovUkdBVWRmM1pYaHIKdFpvemFqQWk5RWNBWU55NERDOEFBSkNNQUFJQUFDUWpnQUFBQU1r
SUlBQUFRRElDQ0FBQWtJd0FBZ0FBSkNPQUFBQUF5UWdnQUFCQQpNZ0lJQUFDUVROOTNRaCtVMXU5
YlJiMDFRMUI3YjN6dXhqMnBiVytjZmdjQXdQUXlBZ0lBQUNUVGR3QnB0VnF4c3JJU2MzTnpVU3FW
CnJyd3hXVlpXVnFMVm1zeVJoWEZ4bmY1b201eHRibTVPZndSZ3BQVVZRTmJYMTZOZXIwZTczWTV1
dHp1c21oaEQ3WFk3NnZWNnJLK3YKRjEwS1RMVnV0NnMvQWpEU2NnZVFWcXNWR3hzYnc2eUZDYkN4
c2VITUs0d0kvUkdBVVpRN2dHeHVidjdvc1N6THJyd3h1UzVyS3d6ZgpkZnFqYlhLMmwrbVBBSXlh
M0FGa2YzLy9oWjh2KzZLRGlCKzNGU0NkbC84MjY0OEFqSnJjbCtHOXVPYmo3QXV1VkxyNll2TG1r
K2FWCjkyWDBaRmwyM2g2c0R5ckdkZm9qaytOc0pFUi9CR0JVdVF3dkFBQ1FqQUFDQUFBa003QUFj
dDJGa3NEZ0ZMMFEycFoySTQxNnZSNFIKRVNjbkp3VlhBb054ZW5vYUVlRnFlU1JuQkFRQWN1ajFl
aEVSMGVsMENxNEVCbU5uWnljaUloWVhGd3V1aEdsVHluS2VQcnU0d1BWcwpsOHNlWTNwcEQ4WHkr
VTh2ZjUvVE9EdzhqRysvL1RaNnZWNGNIeC9IN2R1MzQ4YU5HMFdYQlgwN1BUMk5uWjJkYUxmYjBl
djE0djc5Cis3R3dzRkIwV1V5UjNGZkJBb0JwTmo4L0g5MXVOM1ozZHlNaVltOXZyK0NLNFBydTNy
MHJmSkNjRVJDdVJIc29scytmaTdTSHRKNDkKZXhiYjI5dHhjSEFRdFZxdDZIS2diNjFXS3hZWEY2
UFJhQWdmRkVJQTRVcTBoMkw1L0xsSWV3QmduSmlDQlFCY21YdWdrcEx6S1pOQgpBQUVBcnNWQklT
a0l1NVBEWlhnQkFJQmtCQkFBQUNBWkFRUUFBRWpHR2hBQTROemg0V0YwT3AyWW1abUpack9aWTQv
UGgxNFRuTGwzCjc5NXJuMU92MTZQWDYwV2xVb241K2ZrRVZkRXZsK0hsU3JTSFl2bjh1VWg3WUZB
ZVAzNGNSMGRIZmUxVHJTNWJoRTRTcFZMRTExOS8KMDljK3g4ZkgwV2cwaGxRUlYyVUVCQUNJdzhQ
RE9EbzZpbDZ2RjZWU0tTcVZTc3pPemhaZEZyeGdlWG41dGM4NU9UbUpUcWNUang0OQppaXpMNHVi
Tm0yNjRPR0tzQVFFQW90UHBSTVR6MGJOcXRTcDhNTFptWjJlaldxM0d5c3BLUkVSc2IyOFhYQkV2
RTBBQWdKaVplWDVJClVLbFVDcTRFQnVQMjdkc1JFWEZ3Y0ZCd0pieE1BQUVBemhlY0cvbGdVdHk0
Y1NNaUltcTFXc0dWOERKclFBQ0FhM0dIYXFBZkFnZ0EKY0dXdWdBWDB5eFFzQUFBZ0dRRUVBQUJJ
UmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQQpJQmtC
QkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJNW8xQnZWQ3BWQnJVU3dIWHBEOENB
S1BLQ0FnQUFKQ01BQUlBCkFDU1Rld3BXdVZ5T2JyZjd3bU5abGcyOElNWmZ1Vnd1dW9TSnB6K1Ns
LzRJd0tqSlBRS3l0TFIwL20venkzblp4VFp4c2Ewd0hQb2oKUDBWL0JHQ1U1UjRCV1YxZGpYYTdm
ZjZ6Z3g1ZVpYVjF0ZWdTSnA3K1NGNzZJd0NqSnZjSVNLMVdpN1cxdFdIV3dnUllXMXVMV3ExVwpk
QmtUVDM4a0QvMFJnRkhVMXlMMEJ3OGVSTFBaakZ1M2JwbFh6TGx5dVJ5M2J0Mktack1aRHg0OEtM
cWNxYUUvY2huOWthdXExK3NSCkVYRnljbEp3SlRBWXA2ZW5FUkhSYXJVS3JvU1hsVElyVndGZzZ1
M3U3c2FiYjc0WldaWkZ0Vm90dWh5NHRxMnRyZGpiMjR0Zi92S1gKOGVtbm54WmREaGU0REM4QUVK
VktKU0tlWDFGdmEydnIvT3d4akp2VDA5UFkydG82WHl2WmFEUUtyb2lYRGV4TzZBREErSnFmbjQ5
dQp0eHU3dTdzUkViRzN0MWR3UlhCOWQrL2VqWVdGaGFMTDRDV21ZQUVBNTU0OWV4YmIyOXR4Y0hE
Z0lnYU1wVmFyRll1TGk5Rm9OSVNQCkVTV0FBQUFBeVppQ0JRQkQ1RFk5cE9TME11TkFBQUdBSVhO
UVNBckNMdVBDVmJBQUFJQmtCQkFBQUNBWkFRUUFBRWltc0RVZ3JkKzMKaW5wckVxbTlWL3psR3ll
MW5ZM0Nad3ZUNnZEd01EcWRUc3pNekVTejJjeXh4K2REcnduTzNMdDM3N1hQcWRmcjBldjFvbEtw
eFB6OApmSUtxNEVVV29RTkFUbzhmUDQ2am82TjQ4ODAzSXlMaXIvN3FyMTY3ei8vN2Y4T3VDdjRn
VDVzODgrMjMzOGJ4OGJFN2haTmMzd0drCjFXckY1dVptN08vdlI3ZmJ2ZkliTjUva09Xc0UvSlJC
OVVjbVI3bGNqcVdscFZoZFhYVVR1UUU3UER5TW82T2o2UFY2VVNxVm9sS3AKeE96c2JORmx3UXVX
bDVkZis1eVRrNVBvZERyeDZOR2p5TElzYnQ2ODZZWjlKTlhYR3BEMTlmV28xK3ZSYnJjZDdFREI5
RWN1MCsxMgpvOTF1UjcxZWovWDE5YUxMbVNpZFRpY2lJa3FsVWxTclZlR0RzVFU3T3h2VmFqVldW
bFlpSW1KN2U3dmdpcGcydVFOSXE5V0tqWTJOCllkWUM1S1Eva3NmR3hrYTBXcE81RHFvSU16UFB2
eklybFVyQmxjQmczTDU5T3lJaURnNE9DcTZFYVpNN2dHeHVidjdvc1N6THJyd0IKVnpmby9taWJu
QzFQVytGcXpoYWNHL2xnVXR5NGNTTWl3blJOa3N1OUJtUi9mLytGbnkvN29nUFMwQjk1bFN6TG9u
VGhkc2d2dHhXSwo0UTdWQUgrUU80QmNuR04rZHJCVHVzWmZWSXZRNGVvRzNSK1pIR2NqSVdmdHdm
cWc0amsvQVBBaU55SUVBQUNTRVVBQUFJQmtCbllqCnduN25vRS9xSGFwaEZGZ1RNbDFNdndOZ25C
Z0JBUUFBa2huWUNFaS9hdSs1NUJ2RHA1MEJBSXdXSXlBQUFFQXloWTJBTU40dXpqbS8KN0RLdzFp
QUFBSEFaSXlBQUFFQXlBZ2dBQUpDTUFBSUFBQ1FqZ0FBQUFNa0lJQUFBUURJQ0NBQUFrSXdBQWdB
QUpDT0FBQUFBeVFnZwpBQUJBTWdJSUFBQ1FqQUFDQUFBa0k0QUFBQURKQ0NBQUFFQXlBZ2dBQUpD
TUFBSUFPZFRyOVlpSU9EazVLYmdTR0l6VDA5T0lpR2kxCldnVlh3clFSUUFBZ2gxNnZGeEVSblU2
bjRFcGdNSFoyZGlJaVluRnhzZUJLbURZQ0NBRGtVS2xVSWlJaXk3TFkydG82UDNzTTQrYjAKOURT
MnRyYWkzVzVIUkVTajBTaTRJcWJORzBVWEFBRGpZSDUrUHJyZGJ1enU3a1pFeE43ZVhzRVZ3Zlhk
dlhzM0ZoWVdpaTZES1ZQSwpzaXpMOWNSUzZmemZaN3RjOWhqVFFYc29scytmaTdTSHRKNDlleGJi
Mjl0eGNIQVF0VnF0NkhLZ2I2MVdLeFlYRjZQUmFBZ2ZGRUlBCjRVcTBoMkw1L0xsSWV3QmduSmlD
QlFCRGRDRUx3dEE1MzhBNEVFQUFZTWdjRkpLQ3NNdTRjQlVzQUFBZ0dRRUVBQUJJUmdBQkFBQ1MK
c1FZRUFQcHdlSGdZblU0blptWm1vdGxzNXRqajg2SFhCR2Z1M2J2MzJ1ZlU2L1hvOVhwUnFWUmlm
bjQrUVZYd0lwZmg1VXEwaDJMNQovTGxJZTBqbjhlUEhjWFIwMU5jKzFlcXlSZWdrVVNwRmZQMzFO
MzN0YzN4ODdFN29KR2NFQkFCeU9EdzhqS09qbytqMWVsRXFsYUpTCnFjVHM3R3pSWmNFTGxwZVhY
L3VjazVPVDZIUTY4ZWpSbzhpeUxHN2V2T21HaENRMXNCRVFwcGN6cnVucGo3eUsvamc4dTd1Nzhl
YWIKYjBhV1pWR3RWblB2VnlxNURDOXA5TnZXdHJhMlltOXZMMzc1eTEvR3A1OStPcnpDNENVV29R
TkFEak16ejc4eUs1Vkt3WlhBWU55KwpmVHNpSWc0T0RncXVoR2tqZ0FCQURtY0x6azI3WWxMY3VI
RWpJaUpxdFZyQmxUQnRjcThCS1pmTDBlMTJYM2pNc0Q2WEtaZkxSWmN3CjhmUkg4dElmUjRNWmtn
Qi9rSHNFWkdscDZmemY1cHJ6c290dDRtSmJZVGowUjM2Sy9qaGFzc3htUzdmQk9NZzlBcks2dWhy
dGR2djgKWndjOXZNcnE2bXJSSlV3OC9aRzg5RWNBUmszdUVaQmFyUlpyYTJ2RHJJVUpzTGEyWmk1
cEF2b2plZWlQQUl5aXZoYWhQM2p3SUpyTgpadHk2ZGN1OFlzNlZ5K1c0ZGV0V05Kdk5lUERnUWRI
bFRBMzlrY3ZvandDTXVyNXZSRmlyMVp4Umd4R2hQd0lBNDhabGVBRUFnR1FFCkVBQUFJQmtCQkFB
QVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCaytyNFQrcXUw
ZnQ4YTFFdU4KbE5wNzdqSU5qQTkvaXdFWWRVWkFBQUNBWlBvT0lLMVdLMVpXVm1KdWJpNUtwZEw1
TnFrdS9oOXRsMjl6YzNPeHNySVNyZFprbm5rZApaYS9xajdicDNRQmcxUFVWUU5iWDE2TmVyMGU3
M1k1dXR6dXNtaGd6M1c0MzJ1MTIxT3YxV0Y5Zkw3cWNxYUUvQWdEaktIY0FhYlZhCnNiR3hNY3hh
bUFBYkd4dEdRaExRSHdHQWNaVTdnR3h1YnY3b3NTekx6cmRKZGZIL2FMdDhlOWxsYllYQmVsMS90
RTN2QmdDakxuY0EKMmQvZmYrRm5YM1NjZWJrdHZOeFdHRHo5RVFBWVY3a3Z3M3R4anZuWndjN0ZC
WS9OSjgwQmxqVTZMT3A4dmJNenIyZWZsZlVJdy9lNgovc2owbXRTL3hRQk1EcGZoQllBYzZ2VjZS
RVNjbkp3VVhBa014dW5wYVVTRXRac2tKNEFBUUE2OVhpOGlJanFkVHNHVndHRHM3T3hFClJNVGk0
bUxCbFRCdEJuWW45RWxsYnYzbFRQY1piZHJ0ZE5FZjA2aFVLdkh0dDk5R2xtV3h0YlVWdDIvZmpo
czNiaFJkRnZUdDlQUTAKZG5aMm90MXVSMFJFbzlFb3VDS21qUUFDQURuTXo4OUh0OXVOM2QzZGlJ
alkyOXNydUNLNHZydDM3OGJDd2tMUlpUQmxTbG5PVTZVWAp6N0JkdHVqVkdkZnBvajBVeStmUFJY
NzNhVDE3OWl5MnQ3Zmo0T0FnYXJWYTBlVkEzMXF0Vml3dUxrYWowUkErS0lRQXdwVm9EOFh5CitY
T1IzejBBNDhRVUxJQUpKSlRBNVN5WklpVi9maThuZ0FBQVU4VkJJU2tJdTYvbU1yd0FBRUF5QWdn
QUFKQ01BQUlBQUNSakRRZ0EKTUxZT0R3K2owK25Fek14TU5Kdk5ISHQ4UHZTYTRNeTllL2RlKzV4
NnZSNjlYaThxbFVyTXo4OG5xS3A0THNQTGxXZ1B4Zkw1YzVIMgp3TFI2L1BoeEhCMGQ5YlZQdGJw
c0VUcEpsRW9SWDMvOVRWLzdIQjhmVDhXZDZZMkFBQUJqNS9Ed01JNk9qcUxYNjBXcFZJcEtwUkt6
CnM3TkZsd1V2V0Y1ZWZ1MXpUazVPb3RQcHhLTkhqeUxMc3JoNTgrYkUzeURTR2hBQVlPeDBPcDJJ
ZUQ3YVY2MVdoUS9HMXV6c2JGU3IKMVZoWldZbUlpTzN0N1lJckdqNEJCQUFZT3pNenp3OWhLcFZL
d1pYQVlOeStmVHNpSWc0T0RncXVaUGdFRUFCZzdKd3RPRGZ5d2FTNApjZU5HUkVUVWFyV0NLeGsr
YTBBQWdLbmlEdFZRTEFFRUFKZ2Fyb0FGeFRNRkN3QUFTRVlBQVFBQWtoRkFBQUNBWkFRUUFBQWdH
UUVFCkFBQklSZ0FCQUFDU0VVQUFBSUJrQkJBQUFDQVpBUVFBQUVoR0FBRUFBSklSUUFBQWdHUUVF
QUFBSUJrQkJBQUFTRVlBQVFBQWtoRkEKQUFDQVpBUVFBQUFnbVRjRzlVS2xVbWxRTHdWY2svNElB
SXdxSXlBQUFFQXlBZ2dBQUpCTTdpbFk1WEk1dXQzdUM0OWxXVGJ3Z2hoLwo1WEs1NkJJbW52NUlY
dm9qQUtNbTl3akkwdExTK2IvTkwrZGxGOXZFeGJiQ2NPaVAvQlQ5RVlCUmxuc0VaSFYxTmRydDl2
blBEbnA0CmxkWFYxYUpMbUhqNkkzbnBqMHlxZXIwZUVSRW5KeWN4T3p0YmNEVndmYWVucHhFUjBX
cTFZbmw1dWVCcWhpdjNDRWl0Vm91MXRiVmgKMXNJRVdGdGJpMXF0Vm5RWkUwOS9KQS85a1VuVzYv
VWlJcUxUNlJSY0NRekd6czVPUkVRc0xpNFdYTW53L2RIOSsvZnY1MzN5WC96RgpYOFNmL3VtZnhu
Ly85My9ILy83di84Yi8vZC8vRGJFMHhrVzVYSTZiTjIvRzU1OS9Ibi96TjM5VGREbFRRMy9rTXZv
ajAySitmajcrCjUzLytKN0lzaThlUEg4ZWYvTW1meEIvOTBSOFZYUmIwN2ZUME5Kck5aclRiN2Np
eUxQNzZyLzk2NGtmMVNwbVZxd0RBR05yWjJZbmQKM2QyaXk0Q0J1WHYzN2xTczNSTkFBSUN4OWV6
WnM5amUzbzZEZ3dOVERobExyVllyRmhjWG85Rm94TUxDUXRIbEpDR0FBQUFBeWVTKwpDaFlBMEQ4
WHFTTWxwNVVaQndJSUFBeVpnMEpTRUhZWkY3a3Z3d3NBQUhCZEFnZ0FBSkNNQUFJQUFDUmpEUWdB
OU9IdzhEQTZuVTdNCnpNeEVzOW5Nc2NmblE2OEp6dHk3ZCsrMXo2blg2OUhyOWFKU3FjVDgvSHlD
cXVCRkxzTUxBRGs5ZnZ3NGpvNk8rdHFuV2wyMkNKMGsKU3FXSXI3LytwcTk5am8rUG85Rm9ES2tp
dUZ6Zkl5Q3RWaXMyTnpkamYzOC91dDF1cm4wbU5lT1VYRzdpV3NybGNpd3RMY1hxNnFxYgpSOEVR
dFg3ZktycUVvYWk5bC9idnh1SGhZUndkSFVXdjE0dFNxUlNWU2lWbVoyZVQxZ0N2czd5OC9Ocm5u
SnljUktmVGlVZVBIa1dXClpYSHo1czJwdVFFZW82R3ZBTEsrdmg0Ykd4dDl2OG1rZnZseFBkMXVO
OXJ0ZHJUYjdWaGJXNHNIRHg0VVhSTEFLM1U2blhqenpUZWoKVkNwRnRWb3R1aHk0c3RuWjJhaFdx
M0YwZEJSN2UzdXh2YjBkbjM3NmFkRmxNVVZ5TDBKdnRWcFhDaCtReDhiR1JyUmFnbXEvV3ExVwpy
S3lzeE56Y1hKUktKWnN0NXVibVltVmxSWDhhZ3BtWjUxK1psVXFsNEVwZ01HN2Z2aDBSRVFjSEJ3
Vlh3clRKSFVBMk56ZUhXUWRvClkzMWFYMStQZXIwZTdYWTc5M1JJSnQvWnlHSzlYby8xOWZXaXk1
a29ad3ZPVGJ0aVV0eTRjU01pd2pSb2tzczlCV3QvZjMrWWRZQTIKMWdjamt1U3hzYkVSZi83bmZ4
N3hYdEdWVUxKa0VPQmM3Z0RpREN2RHBvM2xkOWxvMGFSZTdJSCtsRjQ2MHQzYzNJelYvMisxb0dx
SQpDRmZBQW5pSkd4SENHSHA1dEVqNDRNekxiY0hJSWdDanhvMElZUXhkSEMwNk8rQjgrY3czMHlu
THNzaXk3THc5R0ZrRVlOUVlBUUVBCkFKSVJRQUFBZ0dSTXdZSUpaRTNJZERIOURvQnhZZ1FFQUFC
SXhnZ0l3SVNydmVjbVl3Q01qaVFCeEpjZkFBQVFZUW9XQUFDUWtDbFkKMTJDaDcrVXNpQVVBNEZX
TWdBQUFBTWtJSUFBQVFESUNDQUFBa0l3QUFnQUFKQ09BQUFBQXlRZ2dBQUJBTWdJSUFBQ1FqQUFD
QUFBawpJNEFBQUFESkNDQUFBRUF5QWdnQUFKQ01BQUlBT2RUcjlZaUlPRGs1S2JnU0dJelQwOU9J
aUdpMVdnVlh3clFSUUFBZ2gxNnZGeEVSCm5VNm40RXBnTUhaMmRpSWlZbkZ4c2VCS21EWUNDQURr
VUtsVUlpSWl5N0xZMnRvNlAzc000K2IwOURTMnRyYWkzVzVIUkVTajBTaTQKSXFiTkcwVVhBQURq
WUg1K1BycmRidXp1N2taRXhON2VYc0VWd2ZYZHZYczNGaFlXaWk2REtWUEtzaXpMOWNSUzZjcHZr
dk10bUJEYQp5dkJkL0l6UFByUExIbU02YUE5cFBYdjJMTGEzdCtQZzRDQnF0VnJSNVVEZldxMVdM
QzR1UnFQUkVENG9oQURDd0drcncrZUFrNHUwCkJ3REdpVFVnQUFCQU1nSUlBQUNRakFBQ0FBQWtJ
NEFBQUFESkNDQUFBRUF5QWdnQUFKQ01BQUlBQUNRamdBQUFBTWtJSUFBQVFESnYKRkYwQUFFeXlD
emVsaDZITHNxSXJnTmNUUUdBQ2xSenh3RWh4VUVnSy92UXpMa3pCQWdBQWtoRkFBQUNBWkV6Qmdq
RlVMcGVqMisyKwo4RmhtamdlWEtKZkxSWmNBQUM4UVFHQU1MUzB0UmJ2ZGpvam42ejJFRHk2NnVB
Wm9hV21wd0VvbTArSGhZWFE2blppWm1ZbG1zNWxqCmo4K0hYaFBBT0NsbE9ZOWNyck9vMWNIUmRO
RldocS9WYWtXOVhpKzZETVpBczltTVdxMVdkQmtUNC9IangzRjBkTlRYUHRYcXNrWG8KSkZFcXVl
QUI0OEVJQ0l5aFdxMFdhMnRyc2JHeFVYUXBqTEMxdFRYaFk0QU9Edy9qNk9nb2VyMWVsRXFscUZR
cU1UczdXM1JaQUdNbgp5UWdJNUdVRXBEK3RWaXMyTnpkamYzLy9SMnRDbUU3bGNqbVdscFppZFhW
VitCaXczZDNkZVBQTk55UExzcWhXcTduM2MxYWFWTFExCnhvVUF3a2dSUUlCUjlXLy85bS94eDMv
OHg3RzB0TlRYeUllRFFsTFIxaGdYTHNNTEFEbWNMVGczN1FyZ2Vxd0JBWUFoTTRrQTRBOEUKRUFB
WUlsTmlBRjVrQ2hZQUFKQ01BQUlBQUNRamdBQUFBTWtJSUFBQVFESUNDQURBSzl5N2R5KysrZWFi
b3N1QWlaSTdnSlRMNVdIVwpBZG9ZQU1BVXlCMUFscGFXaGxrSGFHTUFBRk1nZHdCWlhWMGRaaDJn
alFFQVRJSGNBYVJXcThYYTJ0b3dhMkdLcmEydFJhMVdLN29NCkFBQ0dySzlGNkE4ZVBJaG1zeG0z
YnQweVg1OXJLNWZMY2V2V3JXZzJtL0hnd1lPaXl3RUFJSUUzK3QyaFZxczVVdzBBQUZ5SnkvQUMK
QUFESkNDQUFBRUF5QWdnQUFKQ01BQUlBQUNRamdBQUFBSDltbFpvQUFBb1NTVVJCVk1rSUlBQUFR
RElDQ0FBQWtJd0FBZ0FBSkNPQQpBQUFBeWZSOUovUisvZkRERC9IV1cyOE4rMjBLVVNxVmlpNmhj
T1Z5T2Q1NTU1MzQ0SU1QNHNNUFA0eVBQdm9vZnZHTFgwenM3eHdBCmdPc1pTZ0RwOVhyeDFWZGZ4
ZC8vL2QvSC92NStOSjgwaC9FMmpJQnV0eHRQbno2TnAwK2Z4ci8rNjcrZVA3NjB0QlMvL3ZXdjR5
Ly8KOGk5alpzWkFHekQrNnZWNlJFU2NuSnpFN094c3dkV1F3dW5wYVVSRXRGcXRXRjVlTHJnYW1C
d0RQVExNc2l5KytPS0xlUHZ0dCtOWAp2L3BWN08vdkQvTGxHU1A3Ky92eHExLzlLdDUrKyszNDhz
c3ZJOHV5b2tzQ3VKWmVyeGNSRVoxT3ArQktTR1ZuWnljaUloWVhGd3V1CkJDYkx3QUxJZDk5OUYr
Ky8vMzU4OHNrbjBlMTJCL1d5akxsdXR4dDM3dHlKOTk5L1A3Nzc3cnVpeXdHNHNrcWxFaEhQVDda
dGJXMmQKbngxbjhweWVuc2JXMWxhMDIrMklpR2cwR2dWWEJKTmxJRk93dnZqaWkvamtrMDhHOFZK
TXFLZFBuOGJQZnZhemVQandZZHk1YzZmbwpjZ0Q2Tmo4L0g5MXVOM1ozZHlNaVltOXZyK0NLU09I
dTNidXhzTEJRZEJrd1VhNGRRUDdoSC80aDd0Ky9QNEJTbUFhZmZQSkpQSG55CkpENzc3TE9pU3dI
bzIrM2J0K1BQL3V6UFludDdPdzRPRHFKV3F4VmRFa1BRYXJWaWNYRXhHbzJHOEFGRFVNcXVNVGsv
Yi9pWTFFWG8KOWZmclJaY3d0dTdmdnkrRUFBQk1vU3V2QWZuaWl5K01mSEJsOSsvZmp5KysrS0xv
TWdBQVNPeEtBZVM3Nzc2ejVvTnIrK1NUVHl4TQpCd0NZTW4wSGtDekw0dU9QUHg1R0xVeWhqei8r
MkNWNkFRQ21TTjhCNU1zdnY0eW5UNThPb3hhbTBOT25UK1BMTDc4c3Vnd0FBQkxwCmF4RjZyOWVM
dDk5K3UrLzdmRmlFems4cGw4dHhmSHpzanVrQUFGT2dyeU8rcjc3NnlrMEdHYmh1dHh0ZmZmVlYw
V1VBQUpCQVh5TWcKbFVvbDl2ZjMrMzZUU1ozalh5cVZpaTVoWWl3dExVV24weW02REFBQWhpeDNB
UG5oaHgraVhDNWY2VTBFRVBMb2RydngxbHR2RlYwRwpBQUJEbEhzSzFyZmZmbnZsTnltVlNsRXFs
YUxSYUVTNzNaNllhVnhabGszOTl2MzMzOGQvL01kL0RPUnV3TmRwWXdBQWpJZmNBZVEzCnYvbk50
ZDVvWTJNanRyZTM0OWF0VzFjZVNXSDBsTXZsdUhYclZqU2J6WGp3NE1HMVh1dTZiUXdBZ05HWE80
RDg5cmUvdmZLYjFPdjEKK0x1Lys3c3I3ODk0V0Z0YnU5Wkl5SFhhR0FBQTR5RjNBUG5kNzM1MzVU
ZjUyNy85Mnl2dnkzaFpYVjI5OHI3WGFXTUFBSXlIM0l2UQo1K2JtcnJ4MjQvdnZ2emZ0YWtwMHU5
MlltNXU3MHI3bGNqbSsvLzc3QVZjRUFNQW95UjFBcm5QRnAwbTlDaGFYMDFZQUFIZ1Z0NTRHCkFB
Q1NFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZ
QUFRQUFraEZBQUFDQVpBUVEKQUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFR
QUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZQQpBUUFBa2hGQUFBQ0FaQVFRQUFB
Z0dRRUVBQUJJSm5jQUtaZkxWMzZUYnJkNzVYMFpMOWY1WFYrbmpRRUFNQjV5QjVCMzNubm55bSt5
CnY3OS81WDBaTDlmNVhWK25qUUVBTUI1eUI1QVBQdmpneW0veVQvLzBUMWZlbC9HeXVibDU1WDJ2
MDhZQUFCZ1B1UVBJaHg5K2VPVTMKYVRhYjhZLy8rSTlYM3AveHNMR3hFYTFXNjhyN1g2ZU5BUUF3
SG5JSGtKczNiMTdyamRiVzFxTFJhRVM3M2JZbVpJSjB1OTFvdDl0UgpyOWRqZlgzOVdxLzEwVWNm
RGFncUFBQkdWU25Mc2l6UEUzLzQ0UWVMaEJtcWJyY2JiNzMxVnRGbEFBQXdSTGxIUU41NjY2MVlX
bG9hClppMU1zYVdsSmVFREFHQUs5SFVma0YvLyt0ZkRxb01wcDIwQkFFeUgzRk93SWlKNnZWNjgv
ZmJiMW5Bd1VPVnlPWTZQajJObXhuMHgKQVFBbVhWOUhmRE16TS9IUC8velB3NnFGS2ZVdi8vSXZ3
Z2NBd0pUb2F3UWtJaUxMc25qLy9mZmo2ZE9udzZxSktmTHpuLzg4bmp4NQpFcVZTcWVoU0FBQklv
TzhBRWhIeDNYZmZ4YzkrOXJOaDFNT1UrYy8vL005NDk5MTNpeTREQUlCRXJqVHY1ZDEzMzQySER4
OE91aGFtCnpNT0hENFVQQUlBcGMrV0o5M2Z1M0luNzkrOFBzQlNteWYzNzkrUE9uVHRGbHdFQVFH
TFhXdm43MldlZkNTSDA3Zjc5Ky9IWlo1OFYKWFFZQUFBVzQwaHFRbDMzeHhSZnh5U2VmREtJZUp0
ekRodytOZkFBQVRMR0JCSkNJNXd2VFAvNzRZMWZINGxJLy8vblA0OS8vL2QrdAorUUFBbUhJRHUv
bkN1KysrRzArZVBJbUhEeDlHdVZ3ZTFNc3k1c3JsY2p4OCtEQ2VQSGtpZkFBQU1MZ0FFaEZSS3BY
aXpwMDdjWHg4CkhMdTd1N0cwdERUSWwyZU1MQzB0eGU3dWJod2ZIOGVkTzNmYzV3TUFnSWdZNEJT
c1YvbmhoeC9pMjIrL2pkLzg1amZ4MjkvK05uNzMKdTkvRmYvM1hmMFczMngzbTI1Skl1VnlPZDk1
NUp6NzQ0SVA0OE1NUDQ2T1BQb3BmL09JWDhkWmJieFZkR2dBQUkyam9BUVFBQU9ETQpRS2RnQVFB
QS9CUUJCQUFBU0VZQUFRQUFraEZBQUFDQVpBUVFBQUFnR1FFRUFBQklSZ0FCQUFDU0VVQUFBSUJr
QkJBQUFDQVpBUVFBCkFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUFraEZB
QUFDQVpBUVFBQUFnR1FFRUFBQklSZ0FCQUFDU0VVQUEKQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVB
QUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUFraEZBQUFDQVpBUVFBQUFnR1FFRQpBQUJJ
UmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JC
QUFBU0VZQUFRQUFraEZBCkFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFB
Q0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0IKQkFBQVNFWUFBUUFBa2hGQUFBQ0Fa
QVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJUgpR
QUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFB
Q1NFVUFBQUlCa0JCQUFBQ0FaCkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNF
WUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1MKRVVBQUFJQmtCQkFBQUNBWkFR
UUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFB
ZwpHUUVFQUFCSVJnQUJBQUNTRVVBQUFJQmtCQkFBQUNBWkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dR
RUVBQUFJQmtCQkFBQVNFWUFBUUFBCmtoRkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJnQUJBQUNTRVVB
QUFJQmtCQkFBQUNBWkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUEKSUJrQkJBQUFTRVlBQVFB
QWtoRkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJnQUJBQUNTRVVBQUFJQmtCQkFBQUNBWkFRUUFBRWhH
QUFFQQpBSklSUUFBQWdHUUVFQUFBSUJrQkJBQUFTRVlBQVFBQWtoRkFBQUNBWkFRUUFBQWdHUUVF
QUFCSVJnQUJBQUNTRVVBQUFJQmtCQkFBCkFDQVpBUVFBQUVoR0FBRUFBSklSUUFBQWdHUUVFQUFB
SUJrQkJBQUFTRVlBQVFBQWtoRkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJnQUIKQUFDU0VVQUFBSUJr
QkJBQUFDQVpBUVFBQUVoR0FBRUFBSklSUUFBQWdHUUVFQUFBSUJrQkJBQUFTT2IvQjNHMXNqZ2Iv
L2pKQUFBQQpBRWxGVGtTdVFtQ0MKCg==
</data>
<flag name="review"
          id="9604"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>