<?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>13559</bug_id>
          
          <creation_ts>2007-05-01 03:06:34 -0700</creation_ts>
          <short_desc>REGRESSION: Canvas aspect ratio is incorrect</short_desc>
          <delta_ts>2007-05-01 15:32:56 -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>DOM</component>
          <version>523.x (Safari 3)</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>http://hixie.ch/tests/adhoc/perf/video/002.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>11535</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-01 03:06:34 -0700</bug_when>
    <thetext>The animation in this test is rendered correctly by Firefox and shipping Safari, but is horizontally stretched in TOT.

Seems to work correctly when cached, but reproducible again after a reload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11555</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-01 07:58:32 -0700</bug_when>
    <thetext>For some reason the width and height attributes of the canvas element are not changing the width and height -- the canvas dimensions instead match the default canvas width and height.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11556</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-01 08:01:47 -0700</bug_when>
    <thetext>There&apos;s a race condition here. When I set a breakpoint at HTMLCanvasElement::reset, the page worked fine.

I think the issue is that the reset function needs to do something to trigger layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11558</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-01 08:05:24 -0700</bug_when>
    <thetext>I think that HTMLCanvasElement::reset needs code that&apos;s more like what&apos;s in RenderImage::imageChanged. It needs to call setNeedsLayout(true) and setPrefWidthsDirty(true) at least in some cases. And maybe calcWidth and calcHeight too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11505</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-01 09:59:30 -0700</bug_when>
    <thetext>I&apos;ve got a fix, but I could use a reduced test case to check in as a layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11506</commentid>
    <comment_count>5</comment_count>
      <attachid>14296</attachid>
    <who name="">mitz</who>
    <bug_when>2007-05-01 10:16:00 -0700</bug_when>
    <thetext>Created attachment 14296
Layout test

(In reply to comment #4)
&gt; I&apos;ve got a fix, but I could use a reduced test case to check in as a layout
&gt; test.
&gt; 

This should work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11507</commentid>
    <comment_count>6</comment_count>
      <attachid>14297</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-01 10:38:53 -0700</bug_when>
    <thetext>Created attachment 14297
patch -- passes all layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11508</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-05-01 11:03:59 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I think that HTMLCanvasElement::reset needs code that&apos;s more like what&apos;s in
&gt; RenderImage::imageChanged. It needs to call setNeedsLayout(true) and
&gt; setPrefWidthsDirty(true) at least in some cases. And maybe calcWidth and
&gt; calcHeight too.
&gt; 

The RenderImage code is a bad example. See &lt;http://bugs.webkit.org/show_bug.cgi?id=9276#c3&gt;. Looks like with your patch, RenderHTMLCanvas would still have the bad behavior RenderImage currently has.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11487</commentid>
    <comment_count>8</comment_count>
      <attachid>14297</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-01 11:21:28 -0700</bug_when>
    <thetext>Comment on attachment 14297
patch -- passes all layout tests

Mitz says review-. I&apos;ll make a new version addressing his comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11473</commentid>
    <comment_count>9</comment_count>
      <attachid>14299</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-01 13:50:30 -0700</bug_when>
    <thetext>Created attachment 14299
patch -- passes all layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11474</commentid>
    <comment_count>10</comment_count>
      <attachid>14300</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-01 13:54:08 -0700</bug_when>
    <thetext>Created attachment 14300
patch incorporating Mitz&apos;s feedback, passes layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11466</commentid>
    <comment_count>11</comment_count>
      <attachid>14300</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-05-01 15:12:52 -0700</bug_when>
    <thetext>Comment on attachment 14300
patch incorporating Mitz&apos;s feedback, passes layout tests

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11467</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-01 15:32:56 -0700</bug_when>
    <thetext>checked in r21211</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>14296</attachid>
            <date>2007-05-01 10:16:00 -0700</date>
            <delta_ts>2007-05-01 10:16:00 -0700</delta_ts>
            <desc>Layout test</desc>
            <filename>13559 test case.html</filename>
            <type>text/html</type>
            <size>366</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">PHN0eWxlPgogICAgY2FudmFzIHsgYm9yZGVyOiBzb2xpZCBncmVlbjsgfQo8L3N0eWxlPgo8cD4K
ICAgIFRoZXNlIHNob3VsZCBiZSB0d28gaWRlbnRpY2FsIGdyZWVuIGhvbGxvdyBzcXVhcmVzOgo8
L3A+CjxjYW52YXMgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj48L2NhbnZhcz4KPGNhbnZhcyBpZD0i
Y2FudmFzIj48L2NhbnZhcz4KPHNjcmlwdD4KICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwog
ICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKICAgIGNh
bnZhcy5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgNTApOwogICAgY2FudmFzLnNldEF0dHJpYnV0ZSgi
aGVpZ2h0IiwgNTApOwo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14297</attachid>
            <date>2007-05-01 10:38:53 -0700</date>
            <delta_ts>2007-05-01 13:50:30 -0700</delta_ts>
            <desc>patch -- passes all layout tests</desc>
            <filename>CanvasSizePatch.txt</filename>
            <type>text/plain</type>
            <size>35111</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMjA0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDctMDUtMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM1NTkKKyAgICAgICAgICBSRUdSRVNTSU9OOiBDYW52YXMgYXNwZWN0IHJhdGlvIGlzIGluY29y
cmVjdAorCisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxh
eW91dC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvY2Fu
dmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtc2l6ZS1jaGFuZ2UtYWZ0
ZXItbGF5b3V0Lmh0bWw6IEFkZGVkLgorCiAyMDA3LTA0LTMwICBEYXZpZCBIeWF0dCAgPGh5YXR0
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZm9yIGJ1ZyAxMjY5MSwgZ2VuZXJhdGVkIGNvbnRl
bnQgYW5kIGRpc3BsYXk6IHRhYmxlLWNlbGwgZHVwbGljYXRlcwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC1leHBlY3RlZC5jaGVj
a3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2l6ZS1j
aGFuZ2UtYWZ0ZXItbGF5b3V0LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC1leHBl
Y3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorYjFiZGE5N2M1ODBiODk5
NTZmZjMzOTk2OGZmMTA2MTUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2l6ZS1jaGFuZ2UtYWZ0ZXItbGF5b3V0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2l6
ZS1jaGFuZ2UtYWZ0ZXItbGF5b3V0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBS
ZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMzMweDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMzMwOiAiVGhlc2Ugc2hvdWxkIGJlIHR3byBpZGVudGljYWwgZ3JlZW4gaG9sbG93IHNx
dWFyZXM6IgorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMzQpIHNpemUgNzg0
eDYwCisgICAgICAgIFJlbmRlckhUTUxDYW52YXMge0NBTlZBU30gYXQgKDAsMCkgc2l6ZSA1Nng1
NiBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDgwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDU2LDQyKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTYsNDIpIHdp
ZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJIVE1MQ2FudmFzIHtDQU5WQVN9IGF0ICg2MCwwKSBz
aXplIDU2eDU2IFtib3JkZXI6ICgzcHggc29saWQgIzAwODAwMCldCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQtZXhwZWN0ZWQudHh0Cl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2l6ZS1jaGFuZ2UtYWZ0ZXIt
bGF5b3V0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtc2l6ZS1jaGFuZ2UtYWZ0ZXItbGF5b3V0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTQgQEAKKzxzdHlsZT4KKyAgICBjYW52YXMgeyBib3JkZXI6IHNvbGlkIGdyZWVuOyB9Cis8L3N0
eWxlPgorPHA+CisgICAgVGhlc2Ugc2hvdWxkIGJlIHR3byBpZGVudGljYWwgZ3JlZW4gaG9sbG93
IHNxdWFyZXM6Cis8L3A+Cis8Y2FudmFzIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PC9jYW52YXM+
Cis8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgorPHNjcmlwdD4KKyAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldFRvcDsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNhbnZhcyIpOworICAgIGNhbnZhcy5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgNTApOworICAgIGNh
bnZhcy5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIDUwKTsKKzwvc2NyaXB0PgoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVy
LWxheW91dC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRt
bApOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjA0KQorKysg
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw3OSBAQAorMjAwNy0w
NS0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBmaXggaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NTkKKyAgICAgICAgICBSRUdSRVNTSU9OOiBDYW52YXMgYXNw
ZWN0IHJhdGlvIGlzIGluY29ycmVjdAorCisgICAgICAgIC0gcmVtb3ZlIGludHJpbnNpY1dpZHRo
L0hlaWdodCBmdW5jdGlvbnMgZnJvbSBSZW5kZXJPYmplY3QKKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy9jYW52YXMtc2l6ZS1jaGFuZ2UtYWZ0ZXItbGF5b3V0Lmh0bWwKKworICAgICAgICAq
IGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKTogUmVtb3ZlZCBjb2RlIHRvIHNldAorICAgICAgICB0
aGUgaW50cmluc2ljIHNpemUsIGJlY2F1c2UgdGhlIHJlbmRlcmVyIG5vdyB0YWtlcyBjYXJlIG9m
IHRoaXMKKyAgICAgICAgaW4gaXRzIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OnJlc2V0KTogSW5zdGVhZCBvZiBjYWxsaW5nIHRoZQorICAgICAgICBz
ZXRJbnRyaW5zaWNXaWR0aC9IZWlnaHQgZnVuY3Rpb25zLCBjYWxsIGNhbnZhc1NpemVDaGFuZ2Vk
LCB3aGljaAorICAgICAgICB0YWtlcyBjYXJlIG9mIGxheW91dCwgYnV0IG9ubHkgaWYgdGhlIHNp
emUgYWN0dWFsbHkgY2hhbmdlZC4gQWxzbworICAgICAgICBjYWxsIHJlcGFpbnQgaWYgdGhlIGNv
bnRlbnRzIG9mIHRoZSBjYW52YXMgY2hhbmdlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJBcHBsZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcDogKFdlYkNv
cmU6OlJlbmRlckFwcGxldDo6aW50cmluc2ljU2l6ZSk6CisgICAgICAgIE92ZXJyaWRlIHRoZSBu
ZXcgaW50cmluc2ljU2l6ZSBmdW5jdGlvbi4gVGhpcyBvdmVycmlkZSBzdGlsbCBkb2Vzbid0Cisg
ICAgICAgIG1ha2Ugc2Vuc2UsIHNvIGxlZnQgYSBGSVhNRSBpbiBoZXJlLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJveC5oOiBBZGRlZCBhbiBpbnRyaW5zaWNTaXplIGZ1bmN0aW9uIGhl
cmUgdG8gcmVwbGFjZQorICAgICAgICB0aGUgaW50cmluc2ljV2lkdGgvSGVpZ2h0IGZ1bmN0aW9u
cyByZW1vdmVkIGZyb20gUmVuZGVyT2JqZWN0LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjYWxjUmVwbGFjZWRXaWR0aFVz
aW5nKTogVXNlIGludHJpbnNpY1NpemUgaW5zdGVhZAorICAgICAgICBvZiBpbnRyaW5zaWNXaWR0
aC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2FsY1JlcGxhY2VkSGVpZ2h0VXNpbmcp
OiBEaXR0bywgYnV0IGZvciBoZWlnaHQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySFRN
TENhbnZhcy5oOiBDaGFuZ2VkIHRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgdG8gYmUKKyAgICAg
ICAgYW4gSFRNTENhbnZhc0VsZW1lbnQqIGluc3RlYWQgb2YgTm9kZSouIEFsc28gYWRkZWQgYSBj
YW52YXNTaXplQ2hhbmdlZAorICAgICAgICBmdW5jdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVySFRNTENhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFz
OjpSZW5kZXJIVE1MQ2FudmFzKTogUGFzcyBhbiBpbml0aWFsIGludHJpbnNpYworICAgICAgICBz
aXplIGJhc2VkIG9uIHRoZSBjdXJyZW50IHNpemUgb2YgdGhlIGNhbnZhcyBlbGVtZW50LiBUaGlz
IGlzIG5vdyB0aGUKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHJlbmRlcmVyIGFuZCB0
aGUgRE9NIGVsZW1lbnQgY2FsbHMgdGhlIGNhbnZhc1NpemVDaGFuZ2VkCisgICAgICAgIGZ1bmN0
aW9uIHdoZW4gdGhlIHNpemUgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxD
YW52YXM6OnBhaW50KTogUmVtb3ZlZCBjaGVja3Mgb2YgdGhlIHR5cGUgb2YgdGhlIGVsZW1lbnQs
CisgICAgICAgIGFuZCB1c2VkIHRoZSBub2RlKCkgZnVuY3Rpb24gYmVjYXVzZSB3ZSBkb24ndCBo
YXZlIHRvIHdvcnJ5IGFib3V0IHRoZSBhbm9ueW1vdXMKKyAgICAgICAgY2FzZSBpbiB0aGlzIGNs
YXNzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6Y2FudmFzU2l6ZUNoYW5n
ZWQpOiBBZGRlZC4gQ2hhbmdlcyB0aGUgc2l6ZSBhbmQKKyAgICAgICAgdGhlbiBjYWxscyBzZXRO
ZWVkc0xheW91dCBhbmQgc2V0UHJlZldpZHRoc0RpcnR5IGFzIG5lZWRlZC4gSSBiYXNlZCB0aGUg
bG9naWMKKyAgICAgICAgaGVyZSBvbiBjYXJlZnVsIHJlYWRpbmcgb2YgUmVuZGVySW1hZ2U6Omlt
YWdlQ2hhbmdlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6UmVuZGVySW1hZ2UpOiBQYXNzIGEgZGVmYXVsdCBp
bnRyaW5zaWMgc2l6ZSBvZiAwLDAKKyAgICAgICAgaW5zdGVhZCBvZiBjYWxsaW5nIHNldEludHJp
bnNpY1dpZHRoL0hlaWdodC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpzZXRJbWFn
ZVNpemVGb3JBbHRUZXh0KTogQ2FsbCB0aGUgbmV3IGludHJpbnNpYyBzaXplCisgICAgICAgIGZ1
bmN0aW9ucyBpbnN0ZWFkIG9mIHRoZSB3aWR0aC9oZWlnaHQgb25lcy4gU2ltcGxpZmllcyB0aGUg
bG9naWMgc2luY2Ugd2UKKyAgICAgICAgaGFuZGxlIGJvdGggZGltZW5zaW9ucyBhdCBvbmNlLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmxheW91dCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVySW1hZ2U6OmNhbGNBc3BlY3RSYXRpb1dpZHRoKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6Y2FsY0FzcGVjdFJhdGlvSGVpZ2h0KTogRGl0dG8uCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6IFJlbW92ZWQgaW50cmluc2ljV2lk
dGgvSGVpZ2h0IHZpcnR1YWwgZnVuY3Rpb25zLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmg6IFJlcGxhY2VkIGludHJpbnNpY1dpZHRoLCBpbnRyaW5zaWNIZWlnaHQsCisg
ICAgICAgIHNldEludHJpbnNpY1dpZHRoLCBzZXRJbnRyaW5zaWNIZWlnaHQsIG1faW50cmluc2lj
V2lkdGgsIGFuZCBtX2ludHJpbnNpY0hlaWdodAorICAgICAgICB3aXRoIGludHJpbnNpY1NpemUs
IHNldEludHJpbnNpY1NpemUsIGFuZCBtX2ludHJpbnNpY1NpemUuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2Vk
OjpSZW5kZXJSZXBsYWNlZCk6IEFkZGVkIGEgc2Vjb25kIGNvbnRydWN0b3IgdGhhdCB0YWtlcwor
ICAgICAgICBhbiBpbnRyaW5zaWMgc2l6ZSBwYXJhbWV0ZXIuIEFsc28gdXBkYXRlZCBjb25zdHJ1
Y3RvciBzaW5jZSB0aGUgaW50cmluc2ljIHNpemUKKyAgICAgICAgaXMgbm93IGFuIEludFNpemUg
aW5zdGVhZCBvZiB0d28gaW50ZWdlcnMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNl
ZDo6aW50cmluc2ljU2l6ZSk6IEFkZGVkLiBObyBwb2ludCBpbiBtYWtpbmcgdGhpcyBpbmxpbmUK
KyAgICAgICAgYmVjYXVzZSBpdCdzIGEgdmlydHVhbCBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclJlcGxhY2VkOjpzZXRJbnRyaW5zaWNTaXplKTogQWRkZWQuIERpZG4ndCBtYWtl
IHRoaXMgaW5saW5lLAorICAgICAgICBwYXJ0bHkgYmVjYXVzZSBpbiB0aGUgZnV0dXJlIHdlIG1p
Z2h0IHdhbnQgdGhpcyB0byBiZSBtb3JlIHRoYW4ganVzdCBhIHNpbXBsZQorICAgICAgICBzZXR0
ZXIgZnVuY3Rpb24sIGZhY3RvcmluZyBpbiBjb21tb24gY29kZSB1c2VkIGluIGJvdGggUmVuZGVy
SW1hZ2UgYW5kCisgICAgICAgIFJlbmRlckhUTUxDYW52YXMuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyV2lkZ2V0Lmg6IFJlbW92ZWQgYSBzdHJheSB1c2luZyBkZWNsYXJhdGlvbiB0aGF0
IHdhc24ndCBuZWVkZWQuCisKIDIwMDctMDQtMzAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZpeCBmb3IgYnVnIDEyNjkxLCBnZW5lcmF0ZWQgY29udGVudCBhbmQg
ZGlzcGxheTogdGFibGUtY2VsbCBkdXBsaWNhdGVzCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAJKHJldmlzaW9uIDIxMTk5KQorKysgV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsMTAgKzk4LDcgQEAgUmVuZGVyT2JqZWN0KiBI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlUgogewogICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgp
ICYmIGRvY3VtZW50KCktPmZyYW1lKCktPnNldHRpbmdzKCktPmlzSmF2YVNjcmlwdEVuYWJsZWQo
KSkgewogICAgICAgICBtX3JlbmRlcmVySXNDYW52YXMgPSB0cnVlOwotICAgICAgICBSZW5kZXJI
VE1MQ2FudmFzKiByID0gbmV3IChhcmVuYSkgUmVuZGVySFRNTENhbnZhcyh0aGlzKTsKLSAgICAg
ICAgci0+c2V0SW50cmluc2ljV2lkdGgod2lkdGgoKSk7Ci0gICAgICAgIHItPnNldEludHJpbnNp
Y0hlaWdodChoZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiByOworICAgICAgICByZXR1cm4gbmV3
IChhcmVuYSkgUmVuZGVySFRNTENhbnZhcyh0aGlzKTsKICAgICB9CiAKICAgICBtX3JlbmRlcmVy
SXNDYW52YXMgPSBmYWxzZTsKQEAgLTE0NywyMSArMTQ0LDI0IEBAIHZvaWQgSFRNTENhbnZhc0Vs
ZW1lbnQ6OnJlc2V0KCkKICAgICBpbnQgaCA9IGdldEF0dHJpYnV0ZShoZWlnaHRBdHRyKS50b0lu
dCgmb2spOwogICAgIGlmICghb2spCiAgICAgICAgIGggPSBkZWZhdWx0SGVpZ2h0OwotICAgIG1f
c2l6ZSA9IEludFNpemUodywgaCk7CiAKLSAgICBpZiAoUmVuZGVyT2JqZWN0KiBybyA9IHJlbmRl
cmVyKCkpCi0gICAgICAgIGlmIChtX3JlbmRlcmVySXNDYW52YXMpIHsKLSAgICAgICAgICAgIFJl
bmRlckhUTUxDYW52YXMqIHIgPSBzdGF0aWNfY2FzdDxSZW5kZXJIVE1MQ2FudmFzKj4ocm8pOwot
ICAgICAgICAgICAgci0+c2V0SW50cmluc2ljV2lkdGgodyk7Ci0gICAgICAgICAgICByLT5zZXRJ
bnRyaW5zaWNIZWlnaHQoaCk7Ci0gICAgICAgICAgICByLT5yZXBhaW50KCk7Ci0gICAgICAgIH0K
KyAgICBJbnRTaXplIG9sZFNpemUgPSBtX3NpemU7CisgICAgbV9zaXplID0gSW50U2l6ZSh3LCBo
KTsKIAorICAgIGJvb2wgaGFkRHJhd2luZ0NvbnRleHQgPSBtX2NyZWF0ZWREcmF3aW5nQ29udGV4
dDsKICAgICBtX2NyZWF0ZWREcmF3aW5nQ29udGV4dCA9IGZhbHNlOwogICAgIGZhc3RGcmVlKG1f
ZGF0YSk7CiAgICAgbV9kYXRhID0gMDsKICAgICBkZWxldGUgbV9kcmF3aW5nQ29udGV4dDsKICAg
ICBtX2RyYXdpbmdDb250ZXh0ID0gMDsKKworICAgIGlmIChSZW5kZXJPYmplY3QqIHJvID0gcmVu
ZGVyZXIoKSkKKyAgICAgICAgaWYgKG1fcmVuZGVyZXJJc0NhbnZhcykgeworICAgICAgICAgICAg
aWYgKG9sZFNpemUgIT0gbV9zaXplKQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRl
ckhUTUxDYW52YXMqPihybyktPmNhbnZhc1NpemVDaGFuZ2VkKCk7CisgICAgICAgICAgICBpZiAo
aGFkRHJhd2luZ0NvbnRleHQpCisgICAgICAgICAgICAgICAgcm8tPnJlcGFpbnQoKTsKKyAgICAg
ICAgfQogfQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQq
IHAsIGNvbnN0IEludFJlY3QmIHIpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBcHBs
ZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5jcHAJ
KHJldmlzaW9uIDIxMTk5KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDcsMjAgKzQ3LDEzIEBAIFJlbmRlckFwcGxldDo6flJlbmRlckFw
cGxldCgpCiB7CiB9CiAKLWludCBSZW5kZXJBcHBsZXQ6OmludHJpbnNpY1dpZHRoKCkgY29uc3QK
K0ludFNpemUgUmVuZGVyQXBwbGV0OjppbnRyaW5zaWNTaXplKCkgY29uc3QKIHsKLSAgICAvLyBG
SVhNRTogVGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2UuCi0gICAgLy8gQWZ0ZXIgc29tZSByZXNlYXJj
aCB3ZSBjYW4gcHJvYmFibHkgcmVtb3ZlIHRoaXMgZW50aXJlbHkgYW5kIGp1c3QgY2FsbAotICAg
IC8vIHNldEludHJpbnNpY1dpZHRoIGluIHRoZSBjb25zdHJ1Y3Rvci4KLSAgICByZXR1cm4gbV93
aWRnZXQgPyA1MCA6IDE1MDsKLX0KLQotaW50IFJlbmRlckFwcGxldDo6aW50cmluc2ljSGVpZ2h0
KCkgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2UuCi0gICAg
Ly8gQWZ0ZXIgc29tZSByZXNlYXJjaCB3ZSBjYW4gcHJvYmFibHkgcmVtb3ZlIHRoaXMgZW50aXJl
bHkgYW5kIGp1c3QgY2FsbAotICAgIC8vIHNldEludHJpbnNpY0hlaWdodCBpbiB0aGUgY29uc3Ry
dWN0b3IuCi0gICAgcmV0dXJuIG1fd2lkZ2V0ID8gNTAgOiAxNTA7CisgICAgLy8gRklYTUU6IFRo
aXMgZG9lc24ndCBtYWtlIHNlbnNlLiBXZSBjYW4ndCBqdXN0IHN0YXJ0IHJldHVybmluZworICAg
IC8vIGEgZGlmZmVyZW50IHNpemUgb25jZSB3ZSd2ZSBjcmVhdGVkIHRoZSB3aWRnZXQgYW5kIGV4
cGVjdAorICAgIC8vIGxheW91dCBhbmQgc2l6aW5nIHRvIGJlIGNvcnJlY3QuIFdlIHNob3VsZCBy
ZW1vdmUgdGhpcyBhbmQKKyAgICAvLyBwYXNzIHRoZSBhcHByb3ByaWF0ZSBpbnRyaW5zaWMgc2l6
ZSBpbiB0aGUgY29uc3RydWN0b3IuCisgICAgcmV0dXJuIG1fd2lkZ2V0ID8gSW50U2l6ZSg1MCwg
NTApIDogSW50U2l6ZSgxNTAsIDE1MCk7CiB9CiAKIHZvaWQgUmVuZGVyQXBwbGV0OjpjcmVhdGVX
aWRnZXRJZk5lY2Vzc2FyeSgpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBcHBsZXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBcHBsZXQuaAkocmV2aXNp
b24gMjExOTkpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBcHBsZXQuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw4ICsxLDYgQEAKIC8qCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgSFRN
TCB3aWRnZXQgZm9yIEtERS4KLSAqCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDEsOCArMzksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FwcGxldCgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7Ci0gICAgICAgIHZpcnR1YWwg
aW50IGludHJpbnNpY1dpZHRoKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgaW50IGludHJpbnNp
Y0hlaWdodCgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEludFNpemUgaW50cmluc2ljU2l6ZSgp
IGNvbnN0OwogCiAgICAgICAgIHZvaWQgY3JlYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsKIApJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiAyMTE5OSkKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MTAsNyArMTQxMCw3IEBA
IGludCBSZW5kZXJCb3g6OmNhbGNSZXBsYWNlZFdpZHRoVXNpbmcoTGUKICAgICAgICAgfQogICAg
ICAgICAvLyBmYWxsIHRocm91Z2gKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVy
biBpbnRyaW5zaWNXaWR0aCgpOworICAgICAgICAgICAgcmV0dXJuIGludHJpbnNpY1NpemUoKS53
aWR0aCgpOwogICAgICB9CiAgfQogCkBAIC0xNDQ5LDcgKzE0NDksNyBAQCBpbnQgUmVuZGVyQm94
OjpjYWxjUmVwbGFjZWRIZWlnaHRVc2luZyhMCiAgICAgICAgICAgICByZXR1cm4gY2FsY0NvbnRl
bnRCb3hIZWlnaHQoaGVpZ2h0LmNhbGNWYWx1ZShjYi0+YXZhaWxhYmxlSGVpZ2h0KCkpKTsKICAg
ICAgICAgfQogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGludHJpbnNpY0hl
aWdodCgpOworICAgICAgICAgICAgcmV0dXJuIGludHJpbnNpY1NpemUoKS5oZWlnaHQoKTsKICAg
ICB9CiB9CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAyMTE5OSkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNiArMTEy
LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3R5bGUoKS0+aHRtbEhhY2tzKCkgJiYgc3R5
bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgIWlzRmxvYXRpbmdPclBvc2l0aW9uZWQoKSAmJiAo
aXNSb290KCkgfHwgaXNCb2R5KCkpOwogICAgIH0KIAorICAgIHZpcnR1YWwgSW50U2l6ZSBpbnRy
aW5zaWNTaXplKCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZSgpOyB9CisKICAgICAvLyBXaGV0aGVy
IG9yIG5vdCB0aGUgZWxlbWVudCBzaHJpbmtzIHRvIGl0cyBpbnRyaW5zaWMgd2lkdGggKHJhdGhl
ciB0aGFuIGZpbGxpbmcgdGhlIHdpZHRoCiAgICAgLy8gb2YgYSBjb250YWluaW5nIGJsb2NrKS4g
IEhUTUw0IGJ1dHRvbnMsIDxzZWxlY3Q+cywgPGlucHV0PnMsIGxlZ2VuZHMsIGFuZCBmbG9hdGlu
Zy9jb21wYWN0IGVsZW1lbnRzIGRvIHRoaXMuCiAgICAgYm9vbCBzaXplc1RvSW50cmluc2ljV2lk
dGgoV2lkdGhUeXBlKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxD
YW52YXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52
YXMuY3BwCShyZXZpc2lvbiAyMTE5OSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxD
YW52YXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDggKzM2
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
Ci1SZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1MQ2FudmFzKE5vZGUqIG5vZGUpCi0gICAgOiBS
ZW5kZXJSZXBsYWNlZChub2RlKQorUmVuZGVySFRNTENhbnZhczo6UmVuZGVySFRNTENhbnZhcyhI
VE1MQ2FudmFzRWxlbWVudCogZWxlbWVudCkKKyAgICA6IFJlbmRlclJlcGxhY2VkKGVsZW1lbnQs
IGVsZW1lbnQtPnNpemUoKSkKIHsKIH0KIApAQCAtNjgsOSArNjgsOCBAQCB2b2lkIFJlbmRlckhU
TUxDYW52YXM6OnBhaW50KFBhaW50SW5mbyYgCiAgICAgICAgIGRyYXdTZWxlY3Rpb25UaW50ID0g
ZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKGVsZW1lbnQoKSAmJiBlbGVtZW50KCktPmhhc1RhZ05h
bWUoY2FudmFzVGFnKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihl
bGVtZW50KCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwKLSAgICAgICAgICAgIEludFJlY3Qo
eCArIGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIHkgKyBib3JkZXJUb3AoKSArIHBhZGRp
bmdUb3AoKSwgY29udGVudFdpZHRoKCksIGNvbnRlbnRIZWlnaHQoKSkpOworICAgIHN0YXRpY19j
YXN0PEhUTUxDYW52YXNFbGVtZW50Kj4obm9kZSgpKS0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQs
CisgICAgICAgIEludFJlY3QoeCArIGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIHkgKyBi
b3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSwgY29udGVudFdpZHRoKCksIGNvbnRlbnRIZWlnaHQo
KSkpOwogCiAgICAgaWYgKGRyYXdTZWxlY3Rpb25UaW50KQogICAgICAgICBwYWludEluZm8uY29u
dGV4dC0+ZmlsbFJlY3Qoc2VsZWN0aW9uUmVjdCgpLCBzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
KSk7CkBAIC05NSw0ICs5NCwyNCBAQCB2b2lkIFJlbmRlckhUTUxDYW52YXM6OmxheW91dCgpCiAg
ICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCit2b2lkIFJlbmRlckhUTUxDYW52YXM6OmNh
bnZhc1NpemVDaGFuZ2VkKCkKK3sKKyAgICBJbnRTaXplIHNpemUgPSBzdGF0aWNfY2FzdDxIVE1M
Q2FudmFzRWxlbWVudCo+KG5vZGUoKSktPnNpemUoKTsKKyAgICBpZiAoc2l6ZSA9PSBpbnRyaW5z
aWNTaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNldEludHJpbnNpY1NpemUoc2l6ZSk7
CisKKyAgICBJbnRTaXplIG9sZFNpemUgPSBJbnRTaXplKG1fd2lkdGgsIG1faGVpZ2h0KTsKKyAg
ICBjYWxjV2lkdGgoKTsKKyAgICBjYWxjSGVpZ2h0KCk7CisgICAgaWYgKG9sZFNpemUgPT0gSW50
U2l6ZShtX3dpZHRoLCBtX2hlaWdodCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghc2Vs
Zk5lZWRzTGF5b3V0KCkpCisgICAgICAgIHNldE5lZWRzTGF5b3V0KHRydWUpOworICAgIGlmICgh
cHJlZldpZHRoc0RpcnR5KCkpCisgICAgICAgIHNldFByZWZXaWR0aHNEaXJ0eSh0cnVlKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SFRNTENhbnZhcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxD
YW52YXMuaAkocmV2aXNpb24gMjExOTkpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1M
Q2FudmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTQgKzMw
LDE4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAgIGNsYXNzIEhUTUxDYW52YXNFbGVt
ZW50OworCiAgICAgY2xhc3MgUmVuZGVySFRNTENhbnZhcyA6IHB1YmxpYyBSZW5kZXJSZXBsYWNl
ZCB7CiAgICAgcHVibGljOgotICAgICAgICBSZW5kZXJIVE1MQ2FudmFzKE5vZGUqKTsKKyAgICAg
ICAgUmVuZGVySFRNTENhbnZhcyhIVE1MQ2FudmFzRWxlbWVudCopOwogCiAgICAgICAgIHZpcnR1
YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJIVE1MQ2Fu
dmFzIjsgfQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBpbnQgdHgs
IGludCB0eSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKKworICAgICAgICB2b2lk
IGNhbnZhc1NpemVDaGFuZ2VkKCk7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAkocmV2aXNpb24gMjExOTkpCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEyICs0
NiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
CiBSZW5kZXJJbWFnZTo6UmVuZGVySW1hZ2UoTm9kZSogbm9kZSkKLSAgICA6IFJlbmRlclJlcGxh
Y2VkKG5vZGUpCisgICAgOiBSZW5kZXJSZXBsYWNlZChub2RlLCBJbnRTaXplKDAsIDApKQogICAg
ICwgbV9jYWNoZWRJbWFnZSgwKQogICAgICwgbV9pc0Fub255bW91c0ltYWdlKGZhbHNlKQogewot
ICAgIHNldEludHJpbnNpY1dpZHRoKDApOwotICAgIHNldEludHJpbnNpY0hlaWdodCgwKTsKICAg
ICB1cGRhdGVBbHRUZXh0KCk7CiB9CiAKQEAgLTEwOSwxOCArMTA3LDEyIEBAIGJvb2wgUmVuZGVy
SW1hZ2U6OnNldEltYWdlU2l6ZUZvckFsdFRleHQKICAgICAgICAgaW1hZ2VIZWlnaHQgPSBtYXgo
aW1hZ2VIZWlnaHQsIG1pbihmb250LmhlaWdodCgpLCBtYXhBbHRUZXh0SGVpZ2h0KSk7CiAgICAg
fQogICAKLSAgICBib29sIGltYWdlU2l6ZUNoYW5nZWQgPSBmYWxzZTsKLSAgCi0gICAgaWYgKGlt
YWdlV2lkdGggIT0gaW50cmluc2ljV2lkdGgoKSkgewotICAgICAgICBzZXRJbnRyaW5zaWNXaWR0
aChpbWFnZVdpZHRoKTsKLSAgICAgICAgaW1hZ2VTaXplQ2hhbmdlZCA9IHRydWU7Ci0gICAgfQot
ICAgIGlmIChpbWFnZUhlaWdodCAhPSBpbnRyaW5zaWNIZWlnaHQoKSkgewotICAgICAgICBzZXRJ
bnRyaW5zaWNIZWlnaHQoaW1hZ2VIZWlnaHQpOwotICAgICAgICBpbWFnZVNpemVDaGFuZ2VkID0g
dHJ1ZTsKLSAgICB9Ci0gIAotICAgIHJldHVybiBpbWFnZVNpemVDaGFuZ2VkOworICAgIEludFNp
emUgaW1hZ2VTaXplID0gSW50U2l6ZShpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCk7CisgICAgaWYg
KGltYWdlU2l6ZSA9PSBpbnRyaW5zaWNTaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIHNldEludHJpbnNpY1NpemUoaW1hZ2VTaXplKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
dm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiBuZXdJbWFnZSkKQEAg
LTE0MywxMSArMTM1LDkgQEAgdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKENhY2hlZElt
YQogICAgIGJvb2wgZW5zdXJlTGF5b3V0ID0gZmFsc2U7CiAKICAgICAvLyBJbWFnZSBkaW1lbnNp
b25zIGhhdmUgYmVlbiBjaGFuZ2VkLCBzZWUgd2hhdCBuZWVkcyB0byBiZSBkb25lCi0gICAgaWYg
KG5ld0ltYWdlLT5pbWFnZVNpemUoKS53aWR0aCgpICE9IGludHJpbnNpY1dpZHRoKCkgfHwgbmV3
SW1hZ2UtPmltYWdlU2l6ZSgpLmhlaWdodCgpICE9IGludHJpbnNpY0hlaWdodCgpIHx8IGltYWdl
U2l6ZUNoYW5nZWQpIHsKLSAgICAgICAgaWYgKCFuZXdJbWFnZS0+ZXJyb3JPY2N1cnJlZCgpKSB7
Ci0gICAgICAgICAgICBzZXRJbnRyaW5zaWNXaWR0aChuZXdJbWFnZS0+aW1hZ2VTaXplKCkud2lk
dGgoKSk7Ci0gICAgICAgICAgICBzZXRJbnRyaW5zaWNIZWlnaHQobmV3SW1hZ2UtPmltYWdlU2l6
ZSgpLmhlaWdodCgpKTsKLSAgICAgICAgfQorICAgIGlmIChuZXdJbWFnZS0+aW1hZ2VTaXplKCkg
IT0gaW50cmluc2ljU2l6ZSgpIHx8IGltYWdlU2l6ZUNoYW5nZWQpIHsKKyAgICAgICAgaWYgKCFu
ZXdJbWFnZS0+ZXJyb3JPY2N1cnJlZCgpKQorICAgICAgICAgICAgc2V0SW50cmluc2ljU2l6ZShu
ZXdJbWFnZS0+aW1hZ2VTaXplKCkpOwogCiAgICAgICAgIC8vIEluIHRoZSBjYXNlIG9mIGdlbmVy
YXRlZCBpbWFnZSBjb250ZW50IHVzaW5nIDpiZWZvcmUvOmFmdGVyLCB3ZSBtaWdodCBub3QgYmUg
aW4gdGhlCiAgICAgICAgIC8vIHJlbmRlciB0cmVlIHlldC4gIEluIHRoYXQgY2FzZSwgd2UgZG9u
J3QgbmVlZCB0byB3b3JyeSBhYm91dCBjaGVjayBmb3IgbGF5b3V0LCBzaW5jZSB3ZSdsbCBnZXQg
YQpAQCAtMzEzLDcgKzMwMyw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmxheW91dCgpCiAgICAgfQog
CiAgICAgLy8gbWluaW11bSBoZWlnaHQKLSAgICBtX2hlaWdodCA9IG1fY2FjaGVkSW1hZ2UgJiYg
bV9jYWNoZWRJbWFnZS0+ZXJyb3JPY2N1cnJlZCgpID8gaW50cmluc2ljSGVpZ2h0KCkgOiAwOwor
ICAgIG1faGVpZ2h0ID0gbV9jYWNoZWRJbWFnZSAmJiBtX2NhY2hlZEltYWdlLT5lcnJvck9jY3Vy
cmVkKCkgPyBpbnRyaW5zaWNTaXplKCkuaGVpZ2h0KCkgOiAwOwogCiAgICAgY2FsY1dpZHRoKCk7
CiAgICAgY2FsY0hlaWdodCgpOwpAQCAtNDE2LDIwICs0MDYsMjIgQEAgaW50IFJlbmRlckltYWdl
OjpjYWxjUmVwbGFjZWRIZWlnaHQoKSBjbwogCiBpbnQgUmVuZGVySW1hZ2U6OmNhbGNBc3BlY3RS
YXRpb1dpZHRoKCkgY29uc3QKIHsKLSAgICBpZiAoIWludHJpbnNpY0hlaWdodCgpKQorICAgIElu
dFNpemUgc2l6ZSA9IGludHJpbnNpY1NpemUoKTsKKyAgICBpZiAoIXNpemUuaGVpZ2h0KCkpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIGlmICghbV9jYWNoZWRJbWFnZSB8fCBtX2NhY2hlZEltYWdl
LT5lcnJvck9jY3VycmVkKCkpCi0gICAgICAgIHJldHVybiBpbnRyaW5zaWNXaWR0aCgpOyAvLyBE
b24ndCBib3RoZXIgc2NhbGluZy4KLSAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNhbGNSZXBs
YWNlZEhlaWdodCgpICogaW50cmluc2ljV2lkdGgoKSAvIGludHJpbnNpY0hlaWdodCgpOworICAg
ICAgICByZXR1cm4gc2l6ZS53aWR0aCgpOyAvLyBEb24ndCBib3RoZXIgc2NhbGluZy4KKyAgICBy
ZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNhbGNSZXBsYWNlZEhlaWdodCgpICogc2l6ZS53aWR0aCgp
IC8gc2l6ZS5oZWlnaHQoKTsKIH0KIAogaW50IFJlbmRlckltYWdlOjpjYWxjQXNwZWN0UmF0aW9I
ZWlnaHQoKSBjb25zdAogewotICAgIGlmICghaW50cmluc2ljV2lkdGgoKSkKKyAgICBJbnRTaXpl
IHNpemUgPSBpbnRyaW5zaWNTaXplKCk7CisgICAgaWYgKCFzaXplLndpZHRoKCkpCiAgICAgICAg
IHJldHVybiAwOwogICAgIGlmICghbV9jYWNoZWRJbWFnZSB8fCBtX2NhY2hlZEltYWdlLT5lcnJv
ck9jY3VycmVkKCkpCi0gICAgICAgIHJldHVybiBpbnRyaW5zaWNIZWlnaHQoKTsgLy8gRG9uJ3Qg
Ym90aGVyIHNjYWxpbmcuCi0gICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjYWxjUmVwbGFjZWRX
aWR0aCgpICogaW50cmluc2ljSGVpZ2h0KCkgLyBpbnRyaW5zaWNXaWR0aCgpOworICAgICAgICBy
ZXR1cm4gc2l6ZS5oZWlnaHQoKTsgLy8gRG9uJ3QgYm90aGVyIHNjYWxpbmcuCisgICAgcmV0dXJu
IFJlbmRlclJlcGxhY2VkOjpjYWxjUmVwbGFjZWRXaWR0aCgpICogc2l6ZS5oZWlnaHQoKSAvIHNp
emUud2lkdGgoKTsKIH0KIAogdm9pZCBSZW5kZXJJbWFnZTo6Y2FsY1ByZWZXaWR0aHMoKQpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDIxMTk5KQorKysgV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzMCwxMCArNTMwLDYg
QEAgcHVibGljOgogICAgIGludCBjb250ZW50V2lkdGgoKSBjb25zdCB7IHJldHVybiBjbGllbnRX
aWR0aCgpIC0gcGFkZGluZ0xlZnQoKSAtIHBhZGRpbmdSaWdodCgpOyB9CiAgICAgaW50IGNvbnRl
bnRIZWlnaHQoKSBjb25zdCB7IHJldHVybiBjbGllbnRIZWlnaHQoKSAtIHBhZGRpbmdUb3AoKSAt
IHBhZGRpbmdCb3R0b20oKTsgfQogCi0gICAgLy8gaW50cmluc2ljIGV4dGVuZCBvZiByZXBsYWNl
ZCBlbGVtZW50cy4gdW5kZWZpbmVkIG90aGVyd2lzZQotICAgIHZpcnR1YWwgaW50IGludHJpbnNp
Y1dpZHRoKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgaW50IGludHJpbnNpY0hl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLQogICAgIC8vIHVzZWQgYnkgZmxleGlibGUgYm94
ZXMgdG8gaW1wb3NlIGEgZmxleGVkIHdpZHRoL2hlaWdodCBvdmVycmlkZQogICAgIHZpcnR1YWwg
aW50IG92ZXJyaWRlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGludCBv
dmVycmlkZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gMDsgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmNwcAkocmV2aXNpb24gMjExOTkpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw3IEBACi0vKioKLSAq
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBIVE1MIHdpZGdldCBmb3IgS0RFLgotICoKKy8qCiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqIENvcHly
aWdodCAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA2LDIgMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMjEsNiArMTksNyBAQAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV
U0EuCiAgKgogICovCisKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW5kZXJSZXBs
YWNlZC5oIgogCkBAIC0zMyw4ICszMiwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRl
clJlcGxhY2VkOjpSZW5kZXJSZXBsYWNlZChOb2RlKiBub2RlKQogICAgIDogUmVuZGVyQm94KG5v
ZGUpCi0gICAgLCBtX2ludHJpbnNpY1dpZHRoKDMwMCkKLSAgICAsIG1faW50cmluc2ljSGVpZ2h0
KDE1MCkKKyAgICAsIG1faW50cmluc2ljU2l6ZSgzMDAsIDE1MCkKKyAgICAsIG1fc2VsZWN0aW9u
U3RhdGUoU2VsZWN0aW9uTm9uZSkKK3sKKyAgICBzZXRSZXBsYWNlZCh0cnVlKTsKK30KKworUmVu
ZGVyUmVwbGFjZWQ6OlJlbmRlclJlcGxhY2VkKE5vZGUqIG5vZGUsIGNvbnN0IEludFNpemUmIGlu
dHJpbnNpY1NpemUpCisgICAgOiBSZW5kZXJCb3gobm9kZSkKKyAgICAsIG1faW50cmluc2ljU2l6
ZShpbnRyaW5zaWNTaXplKQogICAgICwgbV9zZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25Ob25lKQog
ewogICAgIHNldFJlcGxhY2VkKHRydWUpOwpAQCAtMjA5LDQgKzIxNSwxNCBAQCBib29sIFJlbmRl
clJlcGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0lu
dFNpemUgUmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1NpemUoKSBjb25zdAoreworICAgIHJldHVy
biBtX2ludHJpbnNpY1NpemU7Cit9CisKK3ZvaWQgUmVuZGVyUmVwbGFjZWQ6OnNldEludHJpbnNp
Y1NpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBtX2ludHJpbnNpY1NpemUgPSBzaXpl
OworfQorCiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgJKHJldmlzaW9uIDIx
MTk5KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBD
b21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEFw
cGxlIEluYy4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjksNiArMjksNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBSZW5kZXJSZXBsYWNlZCA6IHB1YmxpYyBSZW5kZXJCb3ggewogcHVi
bGljOgogICAgIFJlbmRlclJlcGxhY2VkKE5vZGUqKTsKKyAgICBSZW5kZXJSZXBsYWNlZChOb2Rl
KiwgY29uc3QgSW50U2l6ZSYgaW50cmluc2ljU2l6ZSk7CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUmVwbGFjZWQiOyB9CiAKQEAg
LTM5LDExICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludElu
Zm8mLCBpbnQgdHgsIGludCB0eSkgPSAwOwogCi0gICAgdmlydHVhbCBpbnQgaW50cmluc2ljV2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX2ludHJpbnNpY1dpZHRoOyB9Ci0gICAgdmlydHVhbCBpbnQg
aW50cmluc2ljSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNIZWlnaHQ7IH0KLQot
ICAgIHZvaWQgc2V0SW50cmluc2ljV2lkdGgoaW50IHcpIHsgbV9pbnRyaW5zaWNXaWR0aCA9IHc7
IH0KLSAgICB2b2lkIHNldEludHJpbnNpY0hlaWdodChpbnQgaCkgeyBtX2ludHJpbnNpY0hlaWdo
dCA9IGg7IH0KKyAgICB2aXJ0dWFsIEludFNpemUgaW50cmluc2ljU2l6ZSgpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBpbnQgY2FyZXRNaW5PZmZzZXQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBj
YXJldE1heE9mZnNldCgpIGNvbnN0OwpAQCAtNTgsMTEgKzU1LDEyIEBAIHB1YmxpYzoKICAgICBi
b29sIGlzU2VsZWN0ZWQoKSBjb25zdDsKIAogcHJvdGVjdGVkOgorICAgIHZvaWQgc2V0SW50cmlu
c2ljU2l6ZShjb25zdCBJbnRTaXplJik7CisKICAgICBib29sIHNob3VsZFBhaW50KFBhaW50SW5m
byYsIGludCYgdHgsIGludCYgdHkpOwogCiBwcml2YXRlOgotICAgIGludCBtX2ludHJpbnNpY1dp
ZHRoOwotICAgIGludCBtX2ludHJpbnNpY0hlaWdodDsKKyAgICBJbnRTaXplIG1faW50cmluc2lj
U2l6ZTsKICAgICAKICAgICB1bnNpZ25lZCBtX3NlbGVjdGlvblN0YXRlIDogMzsgLy8gU2VsZWN0
aW9uU3RhdGUKIH07CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAkocmV2aXNpb24gMjEx
OTkpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAkod29ya2luZyBjb3B5KQpA
QCAtNTYsOCArNTYsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0V2lkZ2V0KFdp
ZGdldCopOwogCi0gICAgdXNpbmcgUmVuZGVyUmVwbGFjZWQ6OmVsZW1lbnQ7Ci0KIHByaXZhdGU6
CiAgICAgdm9pZCByZXNpemVXaWRnZXQoV2lkZ2V0KiwgaW50IHcsIGludCBoKTsKIApJbmRleDog
V2ViS2l0L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0JKHJldmlzaW9uIDIxMTk5KQorKysgV2ViS2l0L1dlYlZpZXcvV2Vi
SFRNTFZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwMTQsNiArMjAxNCw4IEBAIHN0YXRpYyBO
U1VSTCogdW5pcXVlVVJMV2l0aFJlbGF0aXZlUGFydCgKIAogLSAodm9pZClkZWFsbG9jCiB7Cisg
ICAgQVNTRVJUKFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXSAhPSBzZWxmKTsKKwogICAg
IC8vIFdlIGNhbid0IGFzc2VydCB0aGF0IGNsb3NlIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIGJl
Y2F1c2UKICAgICAvLyB0aGlzIHZpZXcgY2FuIGJlIHJlbW92ZWQgZnJvbSBpdCdzIHN1cGVydmll
dywgZXZlbiB0aG91Z2gKICAgICAvLyBpdCBjb3VsZCBiZSBuZWVkZWQgbGF0ZXIsIHNvIGNsb3Nl
IGlmIG5lZWRlZC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNo
YW5nZS1hZnRlci1sYXlvdXQtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6
IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcK
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zaXpl
LWNoYW5nZS1hZnRlci1sYXlvdXQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1p
bWUtdHlwZQogICArIGltYWdlL3BuZwoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZ
Q0FZQUFBQ2Fkb0p3QUFBZFhVbEVRVlI0bk8zZGU1QlhkZjM0OFJmTHpRc28KRE93Z2FLMktsMFVs
TGJ4YmVUZTFkYnlpWkZiZ2FFdmtVQ3IxUnhjcnJSUTFMWjFTdTZlRElUcHBtb1NKS01LRUtJRXpP
R0twNWFRWgpJQVlxd25KWjNyOC8rdkVaV0hiM3MrdkNLLzM2ZVB6RjUzTSs1M3pPKzMzTzJkbm5m
aTUwSzZXVUFBQUFTRkR6djk0QkFBRGcvVU9BCkFBQUFhUVFJQUFDUVJvQUFBQUJwQkFnQUFKQkdn
QUFBQUdrRUNBQUFrRWFBQUFBQWFRUUlBQUNRWnFzR3lNcVZLK1BsbDEvZW1wdmMKS3JiMWZxMVpz
eWIrL09jL3Q3bTh1Yms1bm52dXVUYVhyMXk1TXY3MXIzOXRpMTNiNWw1Ly9mVjQvdm5uMjF4ZWJl
emI4cms3cXRyeAplemZyNnJuZGN1enY1YmtBQU40YnFnWklRME5EOU8vZlAwNCsrZVE0OTl4em8z
djM3ckhISG52RU9lZWNFeC85NkVlamUvZnVjZnZ0CnQ4ZWRkOTRaZ3dZTmlqdnV1Q05qdnp0c1cr
L1gzTGx6NCtDREQ0Nnp6anFyMWVWUFBmVlVISFRRUWZINXozKysxZVczM1haYkRCZ3cKSU82Kysr
NXRzbi9iMmhWWFhCRm5uSEZHcTh1cWpYMWJQbmRIVlR0KzcyWmRQYmRianYyOVBCY0F3SHRIMVFC
WnQyNWR6SjgvUDZaTgpteFpUcGt5SlhyMTZ4VEhISEJQMzNITlB6SjQ5TzY2NzdycG9hbXFLODg4
L1ArcnE2akwydVZPMjlYNGRkdGhoTVhyMDZEYVhIM0xJCklYSE1NY2RFejU0OVcxM2UyTmdZL2Z2
MzMycjdzMmJObW5qMDBVZTMydmFxdWZMS0srTysrKzVyZFZtMXNYZFd5N0cxOTl3ZFZlMzQKdlp0
MTlkeHVPZmIzOGx3QUFPOGRWUVBrc3NzdWl6MzIyS1BONVkyTmpiSC8vdnRIUkVUUG5qMmpXN2R1
WGRxaFVrcVgxbTl0RzF0agp2OXJUcTFldlZyZS9ZY09HaUlqbzBhTkgxTlMwUGRWYmEvL1dyVnNY
bi9uTVoyTFdyRmxkM2xaSERSZ3dJUGJlZSs4dDd1L28yRHVxCnRiRzE5ZHp0V2I5Ky9SYjN0WFg4
V3RvYTUrYlcxdFZ6cCtYWU96b1hXOXUybXR2V2p2Yzc5VzQ4L2dEd1hsVDFOOE5QZk9JVDdTN2YK
Y2NjZDQ2aWpqcXJjM3JCaFExeHh4Ulh4d1E5K01BNDQ0SUQ0eHovK1VWbTJaTW1TdU95eXkrTG9v
NCtPRVNOR3hCTlBQRkZaZHRkZApkOFV0dDl3UzExNTdiUng1NUpFZFdxZWx0clpSYmI5V3Jsd1ps
MXh5U1Z4KytlVnh4aGxueFBqeDQyUDE2dFdWYmU2NjY2NXg4ODAzClIwVEU1TW1UWTk5OTk0MnhZ
OGUydVIrclZxMktjZVBHeFhlLys5MFlPM1pzekpzM3I5MDUzTGpPaEFrVFl0Q2dRVEZpeEloWXRH
aFIKcCtmZ2h6LzhZZHgvLy8xeDMzMzN4ZWMrOTdtNDg4NDdvN2EyTnM0ODg4eFlzV0pGL1ByWHY0
N2EydG80OGNRVDQ0VVhYb2lJaUJ0dQp1Q0UrOXJHUFJWTlRVOVc1YU9uZi8vNTNYSHZ0dFhIRUVV
ZDBlT3h0amVYUlJ4K05VYU5HeFlRSkUrSVh2L2hGREIwNk5PcnI2eXZICnFlWFlYbnp4eFMyZWUv
WHExZkgxcjM4OUprNmNHT2VkZDE1Y2YvMzFsV1dQUFBKSVRKdzRNVzY0NFlZNDZxaWo0cGxubnFs
NlREWWQKMHlXWFhCSlhYWFZWbkhUU1NURnExS2lZT0hGaXpKbzFLK2JQbngrTmpZM3hqVzk4STc3
M3ZlOUZiVzF0UFBua2srMGVzM2M2QjIxNQpwK2QyUjdTMy91OSs5N3RPbjE4dHRYWE5OalUxeFlR
SkUrS2FhNjZKTTg4OE14b2JHMlBVcUZHVmRhcGRrMjBkNzNkeXZOcmF4NnV1CnVpb09PZVNRRHM4
bEFQRC9sVTdhYnJ2dHl1alJvMXRkOXFFUGZhZ2NlT0NCWmZyMDZlWGxsMTh1OWZYMTVhS0xMaXFs
bExKKy9mcHkKeWltbmxEZmZmTE0wTnplWHhzYkdVbHRiVzVZdlgxN1dyVnRYRGo3NDRNcDJMcjMw
MHRMYzNOenVPaTIxdFkxcSsxVktLUi8vK01mTAo3YmZmWGtvcFplM2F0ZVhRUXc4dERRME5sZVc3
N3JwcitkNzN2bGU1ZmRKSko1V1JJMGRXYnQ5MDAwMWxsMTEycWR6KzVDYy9XU1pQCm5seEtLYVc1
dWJrTUdUS2tuSGppaVczTzZXNjc3VmIyMzMvL2N2Lzk5NWNaTTJhVTNYZmZ2ZXk1NTU1bDNicDFu
WnFEVWtyWmZmZmQKeS9lLy8vM0s3WTk4NUNQbHdnc3ZyTncrNXBoanlwZ3hZeXEzSDN6d3dmS3JY
LzJxdzNPeHFhVkxsNWF4WThlV2dRTUhkbWpzN1kxbAo4ZUxGWlo5OTlpbjE5ZlhsZ1FjZUtDKzk5
RkxaZDk5OXk4VVhYOXpxMkZwNzdwTlBQcm5NbVRPbmxGTEt2SG56U2tTVXYvemxMMlhOCm1qVmwx
MTEzTFRObXpDaWxsUEx0YjMrN25IMzIyWlgxV2g2L2xtNisrZVp5K2VXWGwxSktXYmh3WVltSU1u
SGl4UExTU3krVk9YUG0KbFA3OSs1ZUREanFvM0hQUFBhV3hzYkVzV3JTb3pYRjJkUTVhNnVxNTNY
THNMVzlYVzcrejU5ZW0ycnRtR3hvYXltOS8rOXZLc29hRwpobkxJSVlkVWJyZDNUYlozdkR0N3ZO
cmJ4eC8vK01mbDlOTlBiM1ZzQUVEYnR2clg4RFkwTk1UeHh4OGZ1KzIyV3h4NzdMR1ZiMENhCk1t
VktsRkppMXF4Wk1XM2F0Qmc4ZUhDODl0cHI4ZmpqajhlS0ZTdmk2YWVmanFsVHAwWkV4TVVYWHh5
bGxIYlhhYW10YlZUYnIyblQKcHNYczJiTXJmMTN0MmJOblhIamhoZkdIUC93aDVzeVpFeEVSMjIr
Ly9XWnZTOWxoaHgzYWZKdktFMDg4RVZPblRxMjhjbFJUVXhPbgpubnBxMVhuNzdHYy9HNmVkZGxv
Y2UreXhjYzAxMThUZi8vNzNtRDU5ZXFmbVlLTk45MjNNbURIeDBFTVBWZDRTZGNJSko4UUREenhR
CmVXdks5T25UWStUSWtSMmVpMDNWMXRiRzhPSERLL05jYmV6dGpXWFFvRUV4ZE9qUUdENThlRFEw
TkVSZFhWMGNkOXh4OGRlLy9yWFYKc2JWODdoa3pac1NDQlF2aXNNTU9pNGlJRVNOR3hLMjMzaHAx
ZFhYUnMyZlBPT3VzcytMQUF3K01pUCsrZFd2VFY1aXF1ZU9PTzJMQQpnQUVSRVhIQUFRZEViVzF0
UkVUVTFkWEY0WWNmSHZYMTlURnMyTEE0Kyt5ejQ5WmJiNDBGQ3hhME9jNnRNUWN0ZGVYY2JrOUgx
dS9NCitkVlNXOWZzN05telkrclVxWEhLS2FkVUhqdDA2TkROMW0zdm1tenZlSGYyZUxYM2MyWGN1
SEZkL2d3U0FMd2ZiZlVBMmZTWGd2NzkKKzhmS2xTc2pJbUxPbkRreFlNQ0E2TldyVi9UcTFTdU9P
dXFvZVBqaGgyUEVpQkV4Y09EQU9PdXNzK0swMDA2TEwzN3hpN0g3N3J0SAo5KzdkMjEybnBiYTJV
VzIvbm56eXlhaXRyZDNzZzlLSEhucG9SRVFzV0xDZzArTi83TEhIb3I2K1B2cjE2MWU1cjArZlBs
WGZWNy96CnpqdFgvbjM0NFlkSFJNVHp6ei9mcVRuWWFOUG4rdFNuUGhXdnZmWmE1Yk1Uenp6elRM
ejk5dHZ4eUNPUFJGTlRVMnpZc0NGMjNISEgKaUhobmM5R3RXN2ZLODFVYmU3V3hiTHF0aUlpK2Zm
dHU4ZGFkVFpkdit2akhIMzg4amp6eXlNMldOelkyeG9BQkE2SmJ0MjV4MDAwMwp4WW9WSzJMaXhJ
a3hjK2JNZU91dHQ5cWN2NWI2OXUyNzJTL3N1K3l5U3lWMEl2Nzd5L0RHS0trMnpxMHhCeTF0cTNP
N0krdDM1dnhxCnFhMXJkdWJNbVZGZlg3L1pOZEZ5WHFyTlIzdkh1elBIcTlyUEZRQ2c4M3BrUGRH
eVpjdWlSNDhlY2NJSko3UzYvTTQ3NzR3aFE0YkUKajM3MG81Zy9mMzQ4OU5CRFZkZnB5RFoyMm1t
bmR0ZFp0V3BWTEZ1MkxGYXVYQmw5K3ZTSmlJamh3NGRIang0OTR1MjMzKzdjSUNQaQpsVmRlaVdY
TGxtMXhmMmMrMkZ0WFZ4ZDkrL2FOdm4zN2Rub09XaG93WUVBME5EVEVwRW1Ub2wrL2ZuSHd3UWRI
VFUxTlRKNDhPZDU0CjQ0M052c2EycTNOUmJleGRIVXQ3bGl4WjB1N25PbTY3N2JhWVBYdDIvUEtY
djR5Zi8vem44ZVNUVDNaNDI1ZGVlbW1NSGowNkZpNWMKR0wxNzk0NGRkdGdoamo3NjZEWWYzOTQ0
dCtVY3ROVFY0OW1SOVR0emZyV210V3YyMVZkZmpmLzg1ejlkR250bmp2YzcrZGxVN2VjSwpBTkMy
dFA4SmZZODk5b2lISDM1NHM3L21sbExpc2NjZWk4V0xGOGZTcFV2anhodHZqR25UcHNYQ2hRdGo4
dVRKN2E3VFVsdmJxS2ErCnZqNmFtNXZqcWFlZXF0eTNkT25TV0w5K2ZRd2JOcXh5MzhhM21GUXpa
TWlRZU8yMTErSnZmL3RiaHg3Zm1sZGZmVFhlZXV1dCtQQ0gKUDl5cE9kaW9aZXlNSGowNjdyNzc3
dmpaejM0V0YxMTBVWXdaTXlidXZmZmVtRDU5K21hL1NIZDBMdHBTYmV6dlpDelZ4clpSWFYxZApQ
UC84OC9IaWl5OXV0dTBGQ3hiRXM4OCtHK1BHall2cnI3LytIWDBsOEttbm5ob1hYM3h4VEpzMkxl
Yk5tMWYxYTQ3YkcrZldtSU9PCjZ1cng3T2o2SFQyL1dtcnJtaDA4ZUhBc1hydzQvdm5QZjFZZVcx
cjVCcXEycnNuT0h1OTM4ck1KQUhqbk9oVWdHelpzaUxWcjE3YjUKMThsVnExYkZxbFdyS3JkWHIx
NWQrY2FjVDMvNjA3Rmt5WkpvYkd5TTVjdVh4OUtsUytQS0s2K012ZmZlTzE1Ly9mVzQ2NjY3SWlM
aQpwSk5PaXROUFB6MzY5T25UN2pvdHRiV05hdnMxY3VUSTJHMjMzZUxoaHgrdUxKODNiMTdVMTlm
SHlTZWZIQkgvL2F2djNMbHpZKzNhCnRmSHFxNi9HaXkrK0dLKy8vbnJsOFd2WHJvMTE2OVpGUk1S
NTU1MFhQWHIwaUZ0dnZiV3kvTG5ubm90bHk1WkZjM056bTNPNzZiSVoKTTJiRUdXZWNFUWNlZUdD
bjVpQWlvbCsvZnZIS0s2OUVSTVR5NWNzakl1S1VVMDZKM3IxN1IvZnUzV1BublhlTzQ0NDdMbmJh
YWFjWQpQSGp3WnIvUWQyUXVXbHExYWxXc1hyMDZTaWxWeDE1dExHdlhydDNzbDhwVnExWnROaTh0
eDlieXViZmJicnNZTTJaTUxGcTBLQll0CldoUmYvZXBYNHdNZitFQXNXclFvTm16WUVNOCsrMncw
TnpmSHpKa3pvNm1wS1VvcFVVclo3UGkxNWp2ZitVN3NzODgrTVg3OCtEai8KL1BOaisrMjMzMno1
K3ZYck4vdG1xZmJHMmRVNWFHMyt1M0p1dHh6N3ByYzdlajUwOVB4cXFhMXJkdU8yTjU1SGE5YXNp
WVVMRjI0VwpJZTFkazlXT2QyZU9WM3MvVjJiTm1oVTMzbmhqbStNREFOclEwVStyUC9QTU02V3hz
YkZFUk5sNTU1M0xEMzd3Zy9MR0cyOVVsdDl6Cnp6MmxwcWFtN0xmZmZtWEJnZ1ZsL3Z6NVpkaXdZ
YVZIang3bC92dnZMNldVY3NzdHQ1VGV2WHVYYnQyNmxkcmEybkx2dmZkV3RqMTAKNk5CeTIyMjNs
ZC8vL3ZkbDNMaHhaZDI2ZGUydTA5cit0YmFOanV6WC9Qbnp5Mzc3N1ZldXUrNjZNblhxMURKcTFL
aXlhTkdpeXJZZgplZVNSTW1EQWdMTG5ubnVXcjN6bEsyWHMyTEhsK09PUEx6Tm16Q2h6NTg0dEkw
YU1LQkZSZnZLVG41UTFhOWFVU1pNbWxiNTkrNVpoCnc0YVZjODg5dDV4MjJtbmx5Q09QTEpNbVRX
cDEzNy8xclcrVjRjT0hsMnV1dWFaY2ZmWFY1VXRmK2xKNTg4MDNLOHM3T2dlbGxQSzEKcjMydGRP
dldyVng0NFlWbHlaSWxsZnNuVEpoUVhuamhoY3J0YjM3em01dmQzcWphWEd4cTd0eTU1WWdqamln
UlVXNjg4Y1lPamIydApzY3ljT2JQMDY5ZXZEQmt5cE15Wk02YzgvZlRUWmErOTlpcTllL2N1Zi9y
VG43WVkyeC8vK01jdG52dmVlKzh0dGJXMUpTSktYVjFkCm1UMTdkaW1sbExmZmZyc2NkTkJCcFUr
ZlBtWE1tREhsd1FjZkxEdnNzRU81NElJTHl1elpzN2M0ZmkxOStjdGZMaEZSSXFKMDc5NjkKREJv
MHFJd2JONjR5M2gxMzNMRU1Iank0M0hYWFhSMDZabDJaZzAxMTlkeHVlZTYyTmhjZFBSODZlbjV0
cXIzci9xcXJyaW8xTlRWbAp5SkFoNVlJTExpZ2pSNDdjN0Z1dzJyc20yenZldi9uTmJ6cDF2TnJi
eC9Iang1ZGRkdG1sckYrL3Z0MXhBZ0NiNjFaSzd2K3V0WGJ0CjJuajU1WmVqcnE0dWV2VDQ3MGRR
Tm16WUVEVTFOYkZpeFlybzJiUG5GaDlhYlcyZGxxcHRvNXBTU3J6d3dndFJVMU96eFRmdWJOeUgK
NXVibTJINzc3V1BkdW5WVjM5clIzTndjeTVjdmo0RURCMFpUVTFOc3Q5MTJWZmRoOGVMRk1YRGd3
RmJIMkpFNTJHalpzbVV4Y09EQQp6ZTViczJaTjlPN2R1ODNibTZvMkY5VlVHM3RueHRKU2EyTnJ1
ZTlMbHk2TlFZTUdiYkZzOWVyVmxWY3ZPbklNTjdyNjZxdmpuSFBPCmlhYW1wbmpycmJkaXhZb1ZN
V1hLbExqZ2dndmEvU3hIZStQc3loeDBWbGVQWjBmVzc4ejV0VkcxYS9iTk45K01tcHFhNk5PblQz
emgKQzErSStmUG54OXk1Y3l2THExMlRuVDNlbmYzWlZFcUpwcWFtTFY0UkF3RGFseDRnOEY3eTA1
LytOS1pNbVJMVHAwL2Y3UDZISG5vbwpoZzRkR252dHRkZi9hTS9lWDFvTEVBRGd2U250VzdEZ3Zl
aUlJNDZJOGVQSHg4aVJJMlBFaUJHeGV2WHFXTEprU1RRME5JaVBSQXNYCkxvemx5NWRIS2FWVDN5
Z0hBTHo3ZUFVRXFuampqVGZpOGNjZmo4V0xGOGV4eHg0clBKSk5talFwWG5ycHBZajQ3MzhFZWZy
cHAvOXYKZHdnQTZCSUJBZ0FBcEVuN2YwQUFBQUFFQ0FBQWtFYUFBQUFBYVFRSUFBQ1FSb0FBQUFC
cEJBZ0FBSkJHZ0FBQUFHa0VDQUFBa0VhQQpBQUFBYVFRSUFBQ1FSb0FBQUFCcEJBZ0FBSkJHZ0FB
QUFHa0VDQUFBa0VhQUFBQUFhWHBVZTBDMzczVEwySS8vbWZLdHN0bnQ5OXQ0CkFRQWdrMWRBQUFD
QU5BSUVBQUJJVS9VdFdKdjZ2L0wyblk2K3plcjlObDRBQU5qV3ZBSUNBQUNrRVNBQUFFQWFBUUlB
QUtRUklBQUEKUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9C
QWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYQpBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJB
R2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDCkFBQ2tFU0FB
QUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJ
QUFBUUJvQkFnQUEKcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFw
QkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUgpJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNB
QUNrNmRHWkIzZjdUcmR0dFIvdlN1KzM4UUlBd0xibUZSQUFBQ0NOQUFFQUFOSjBLNldVCi8vVk9B
QUFBN3c5ZUFRRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFO
SUlFQUFBSUkwQUFRQUEKMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFR
QUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSQpFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pR
QUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBCkFD
Q05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFB
QUlJMEFBUUFBMGdnUUFBQWcKalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdn
UUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQQpBUUFBMGdnUUFBQWdqUUFCQUFE
U0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVB
CkFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBB
QVFBQTBnZ1FBQUFnalFBQkFBRFMKQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFn
alFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUQpBQUFnalFBQkFBRFNDQkFB
QUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlF
QUFBCklJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEw
Z2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ04KQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJB
QURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQgpBQURTQ0JBQUFDQ05B
QUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJ
MEFBUUFBCjBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFB
QWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUkKRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NC
QUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQQpBQ0NOQUFFQUFO
SUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFB
QTBnZ1FBQUFnCmpRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFB
QkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEEKQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUND
TkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQQpBTklJRUFB
QUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dR
QUFBZ2pRQUJBQURTCkNCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURT
Q0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1EKQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVB
QU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQQpJSTBB
QVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdq
UUFCQUFEU0NCQUFBQ0NOCkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFB
Q0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUIKQUFEU0NCQUFBQ0NOQUFFQUFOSUlF
QUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQQow
Z2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFB
RFNDQkFBQUNDTkFBRUFBTklJCkVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFB
RUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUEKQUNDTkFBRUFBTklJRUFBQUlJ
MEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFB
ZwpqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JB
QUFDQ05BQUVBQU5JSUVBQUFJSTBBCkFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5J
SUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUEKQU5JSUVBQUFJSTBBQVFB
QTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFC
QUFEUwpDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NO
QUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRCkFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFB
SUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUEKSUkwQUFRQUEwZ2dR
QUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFND
QkFBQUNDTgpBQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFB
TklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCCkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFB
UUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEKMGdnUUFBQWdq
UUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFD
Q05BQUVBQU5JSQpFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVB
QUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBCkFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBn
Z1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWcKalFBQkFB
RFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFF
QUFOSUlFQUFBSUkwQQpBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkw
QUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBCkFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFB
Z2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFMKQ0JB
QUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJ
RUFBQUlJMEFBUUFBMGdnUQpBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFB
MGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBCklJMEFBUUFBMGdnUUFBQWdqUUFC
QUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ04K
QUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJ
STBBQVFBQTBnZ1FBQUFnalFBQgpBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FB
QUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBCjBnZ1FBQUFnalFBQkFBRFND
QkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFO
SUkKRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFR
QUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQQpBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pR
QUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnCmpRQUJBQURTQ0JBQUFD
Q05BQUVBQU5JSUVBQUFJSTBBQVFBQTB2dy9DR2VOWld2cmxtWUFBQUFBU1VWT1JLNUNZSUk9Cgo=
</data>
<flag name="review"
          id="5826"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14299</attachid>
            <date>2007-05-01 13:50:30 -0700</date>
            <delta_ts>2007-05-01 13:54:08 -0700</delta_ts>
            <desc>patch -- passes all layout tests</desc>
            <filename>CanvasSizePatch.txt</filename>
            <type>text/plain</type>
            <size>34626</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMjA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDctMDUtMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM1NTkKKyAgICAgICAgICBSRUdSRVNTSU9OOiBDYW52YXMgYXNwZWN0IHJhdGlvIGlzIGluY29y
cmVjdAorCisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxh
eW91dC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvY2Fu
dmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtc2l6ZS1jaGFuZ2UtYWZ0
ZXItbGF5b3V0Lmh0bWw6IEFkZGVkLgorCiAyMDA3LTA1LTAxICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQtZXhwZWN0ZWQu
Y2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNp
emUtY2hhbmdlLWFmdGVyLWxheW91dC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQt
ZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2IxYmRhOTdjNTgw
Yjg5OTU2ZmYzMzk5NjhmZjEwNjE1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2l6ZS1jaGFuZ2UtYWZ0ZXItbGF5b3V0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAg
ICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMzMHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDMzMDogIlRoZXNlIHNob3VsZCBiZSB0d28gaWRlbnRpY2FsIGdyZWVuIGhvbGxv
dyBzcXVhcmVzOiIKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDM0KSBzaXpl
IDc4NHg2MAorICAgICAgICBSZW5kZXJIVE1MQ2FudmFzIHtDQU5WQVN9IGF0ICgwLDApIHNpemUg
NTZ4NTYgW2JvcmRlcjogKDNweCBzb2xpZCAjMDA4MDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg1Niw0Mikgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDU2LDQy
KSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVySFRNTENhbnZhcyB7Q0FOVkFTfSBhdCAoNjAs
MCkgc2l6ZSA1Nng1NiBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDgwMDApXQorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtc2l6ZS1jaGFuZ2UtYWZ0ZXItbGF5b3V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFm
dGVyLWxheW91dC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACis8c3R5bGU+Cisg
ICAgY2FudmFzIHsgYm9yZGVyOiBzb2xpZCBncmVlbjsgfQorPC9zdHlsZT4KKzxwPgorICAgIFRo
ZXNlIHNob3VsZCBiZSB0d28gaWRlbnRpY2FsIGdyZWVuIGhvbGxvdyBzcXVhcmVzOgorPC9wPgor
PGNhbnZhcyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0iY2Fu
dmFzIj48L2NhbnZhcz4KKzxzY3JpcHQ+CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Cisg
ICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBj
YW52YXMuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIDUwKTsKKyAgICBjYW52YXMuc2V0QXR0cmlidXRl
KCJoZWlnaHQiLCA1MCk7Cis8L3NjcmlwdD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTIwOCkKKysrIFdlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzkgQEAKKzIwMDctMDUtMDEgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIC0gZml4IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNTU5CisgICAgICAgICAgUkVHUkVTU0lPTjogQ2FudmFzIGFzcGVjdCByYXRp
byBpcyBpbmNvcnJlY3QKKworICAgICAgICAtIHJlbW92ZSBpbnRyaW5zaWNXaWR0aC9IZWlnaHQg
ZnVuY3Rpb25zIGZyb20gUmVuZGVyT2JqZWN0CisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMv
Y2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC5odG1sCisKKyAgICAgICAgKiBodG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcik6IFJlbW92ZWQgY29kZSB0byBzZXQKKyAgICAgICAgdGhlIGludHJp
bnNpYyBzaXplLCBiZWNhdXNlIHRoZSByZW5kZXJlciBub3cgdGFrZXMgY2FyZSBvZiB0aGlzCisg
ICAgICAgIGluIGl0cyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpyZXNldCk6IEluc3RlYWQgb2YgY2FsbGluZyB0aGUKKyAgICAgICAgc2V0SW50cmlu
c2ljV2lkdGgvSGVpZ2h0IGZ1bmN0aW9ucywgY2FsbCBjYW52YXNTaXplQ2hhbmdlZCwgd2hpY2gK
KyAgICAgICAgdGFrZXMgY2FyZSBvZiBsYXlvdXQsIGJ1dCBvbmx5IGlmIHRoZSBzaXplIGFjdHVh
bGx5IGNoYW5nZWQuIEFsc28KKyAgICAgICAgY2FsbCByZXBhaW50IGlmIHRoZSBjb250ZW50cyBv
ZiB0aGUgY2FudmFzIGNoYW5nZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQXBwbGV0
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckFwcGxldC5jcHA6IChXZWJDb3JlOjpSZW5k
ZXJBcHBsZXQ6OmludHJpbnNpY1NpemUpOgorICAgICAgICBPdmVycmlkZSB0aGUgbmV3IGludHJp
bnNpY1NpemUgZnVuY3Rpb24uIFRoaXMgb3ZlcnJpZGUgc3RpbGwgZG9lc24ndAorICAgICAgICBt
YWtlIHNlbnNlLCBzbyBsZWZ0IGEgRklYTUUgaW4gaGVyZS4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCb3guaDogQWRkZWQgYW4gaW50cmluc2ljU2l6ZSBmdW5jdGlvbiBoZXJlIHRvIHJl
cGxhY2UKKyAgICAgICAgdGhlIGludHJpbnNpY1dpZHRoL0hlaWdodCBmdW5jdGlvbnMgcmVtb3Zl
ZCBmcm9tIFJlbmRlck9iamVjdC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2FsY1JlcGxhY2VkV2lkdGhVc2luZyk6IFVz
ZSBpbnRyaW5zaWNTaXplIGluc3RlYWQKKyAgICAgICAgb2YgaW50cmluc2ljV2lkdGguCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNhbGNSZXBsYWNlZEhlaWdodFVzaW5nKTogRGl0dG8s
IGJ1dCBmb3IgaGVpZ2h0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMu
aDogQ2hhbmdlZCB0aGUgY29uc3RydWN0b3IgcGFyYW1ldGVyIHRvIGJlCisgICAgICAgIGFuIEhU
TUxDYW52YXNFbGVtZW50KiBpbnN0ZWFkIG9mIE5vZGUqLiBBbHNvIGFkZGVkIGEgY2FudmFzU2l6
ZUNoYW5nZWQKKyAgICAgICAgZnVuY3Rpb24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhU
TUxDYW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6UmVuZGVy
SFRNTENhbnZhcyk6IFBhc3MgYW4gaW5pdGlhbCBpbnRyaW5zaWMKKyAgICAgICAgc2l6ZSBiYXNl
ZCBvbiB0aGUgY3VycmVudCBzaXplIG9mIHRoZSBjYW52YXMgZWxlbWVudC4gVGhpcyBpcyBub3cg
dGhlCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSByZW5kZXJlciBhbmQgdGhlIERPTSBl
bGVtZW50IGNhbGxzIHRoZSBjYW52YXNTaXplQ2hhbmdlZAorICAgICAgICBmdW5jdGlvbiB3aGVu
IHRoZSBzaXplIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpw
YWludCk6IFJlbW92ZWQgY2hlY2tzIG9mIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50LAorICAgICAg
ICBhbmQgdXNlZCB0aGUgbm9kZSgpIGZ1bmN0aW9uIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSB0byB3
b3JyeSBhYm91dCB0aGUgYW5vbnltb3VzCisgICAgICAgIGNhc2UgaW4gdGhpcyBjbGFzcy4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxDYW52YXM6OmNhbnZhc1NpemVDaGFuZ2VkKTogQWRk
ZWQuIENoYW5nZXMgdGhlIHNpemUgYW5kCisgICAgICAgIHRoZW4gY2FsbHMgc2V0TmVlZHNMYXlv
dXQgYW5kIHNldFByZWZXaWR0aHNEaXJ0eSBhcyBuZWVkZWQuIEkgYmFzZWQgdGhlIGxvZ2ljCisg
ICAgICAgIGhlcmUgb24gY2FyZWZ1bCByZWFkaW5nIG9mIFJlbmRlckltYWdlOjppbWFnZUNoYW5n
ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVySW1hZ2U6OlJlbmRlckltYWdlKTogUGFzcyBhIGRlZmF1bHQgaW50cmluc2lj
IHNpemUgb2YgMCwwCisgICAgICAgIGluc3RlYWQgb2YgY2FsbGluZyBzZXRJbnRyaW5zaWNXaWR0
aC9IZWlnaHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6c2V0SW1hZ2VTaXplRm9y
QWx0VGV4dCk6IENhbGwgdGhlIG5ldyBpbnRyaW5zaWMgc2l6ZQorICAgICAgICBmdW5jdGlvbnMg
aW5zdGVhZCBvZiB0aGUgd2lkdGgvaGVpZ2h0IG9uZXMuIFNpbXBsaWZpZXMgdGhlIGxvZ2ljIHNp
bmNlIHdlCisgICAgICAgIGhhbmRsZSBib3RoIGRpbWVuc2lvbnMgYXQgb25jZS4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckltYWdlOjppbWFnZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckltYWdlOjpsYXlvdXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckltYWdlOjpjYWxjQXNwZWN0UmF0aW9XaWR0aCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVySW1hZ2U6OmNhbGNBc3BlY3RSYXRpb0hlaWdodCk6IERpdHRvLgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOiBSZW1vdmVkIGludHJpbnNpY1dpZHRoL0hlaWdo
dCB2aXJ0dWFsIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5oOiBSZXBsYWNlZCBpbnRyaW5zaWNXaWR0aCwgaW50cmluc2ljSGVpZ2h0LAorICAgICAgICBz
ZXRJbnRyaW5zaWNXaWR0aCwgc2V0SW50cmluc2ljSGVpZ2h0LCBtX2ludHJpbnNpY1dpZHRoLCBh
bmQgbV9pbnRyaW5zaWNIZWlnaHQKKyAgICAgICAgd2l0aCBpbnRyaW5zaWNTaXplLCBzZXRJbnRy
aW5zaWNTaXplLCBhbmQgbV9pbnRyaW5zaWNTaXplLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6UmVuZGVy
UmVwbGFjZWQpOiBBZGRlZCBhIHNlY29uZCBjb250cnVjdG9yIHRoYXQgdGFrZXMKKyAgICAgICAg
YW4gaW50cmluc2ljIHNpemUgcGFyYW1ldGVyLiBBbHNvIHVwZGF0ZWQgY29uc3RydWN0b3Igc2lu
Y2UgdGhlIGludHJpbnNpYyBzaXplCisgICAgICAgIGlzIG5vdyBhbiBJbnRTaXplIGluc3RlYWQg
b2YgdHdvIGludGVnZXJzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmludHJp
bnNpY1NpemUpOiBBZGRlZC4gTm8gcG9pbnQgaW4gbWFraW5nIHRoaXMgaW5saW5lCisgICAgICAg
IGJlY2F1c2UgaXQncyBhIHZpcnR1YWwgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJSZXBsYWNlZDo6c2V0SW50cmluc2ljU2l6ZSk6IEFkZGVkLiBEaWRuJ3QgbWFrZSB0aGlzIGlu
bGluZSwKKyAgICAgICAgcGFydGx5IGJlY2F1c2UgaW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCB3YW50
IHRoaXMgdG8gYmUgbW9yZSB0aGFuIGp1c3QgYSBzaW1wbGUKKyAgICAgICAgc2V0dGVyIGZ1bmN0
aW9uLCBmYWN0b3JpbmcgaW4gY29tbW9uIGNvZGUgdXNlZCBpbiBib3RoIFJlbmRlckltYWdlIGFu
ZAorICAgICAgICBSZW5kZXJIVE1MQ2FudmFzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
cldpZGdldC5oOiBSZW1vdmVkIGEgc3RyYXkgdXNpbmcgZGVjbGFyYXRpb24gdGhhdCB3YXNuJ3Qg
bmVlZGVkLgorCiAyMDA3LTA1LTAxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAkocmV2aXNpb24gMjEyMDcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCwxMCArOTgsNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVSCiB7CiAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkgJiYg
ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+aXNKYXZhU2NyaXB0RW5hYmxlZCgpKSB7
CiAgICAgICAgIG1fcmVuZGVyZXJJc0NhbnZhcyA9IHRydWU7Ci0gICAgICAgIFJlbmRlckhUTUxD
YW52YXMqIHIgPSBuZXcgKGFyZW5hKSBSZW5kZXJIVE1MQ2FudmFzKHRoaXMpOwotICAgICAgICBy
LT5zZXRJbnRyaW5zaWNXaWR0aCh3aWR0aCgpKTsKLSAgICAgICAgci0+c2V0SW50cmluc2ljSGVp
Z2h0KGhlaWdodCgpKTsKLSAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIHJldHVybiBuZXcgKGFy
ZW5hKSBSZW5kZXJIVE1MQ2FudmFzKHRoaXMpOwogICAgIH0KIAogICAgIG1fcmVuZGVyZXJJc0Nh
bnZhcyA9IGZhbHNlOwpAQCAtMTQ3LDIxICsxNDQsMjQgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVu
dDo6cmVzZXQoKQogICAgIGludCBoID0gZ2V0QXR0cmlidXRlKGhlaWdodEF0dHIpLnRvSW50KCZv
ayk7CiAgICAgaWYgKCFvaykKICAgICAgICAgaCA9IGRlZmF1bHRIZWlnaHQ7Ci0gICAgbV9zaXpl
ID0gSW50U2l6ZSh3LCBoKTsKIAotICAgIGlmIChSZW5kZXJPYmplY3QqIHJvID0gcmVuZGVyZXIo
KSkKLSAgICAgICAgaWYgKG1fcmVuZGVyZXJJc0NhbnZhcykgewotICAgICAgICAgICAgUmVuZGVy
SFRNTENhbnZhcyogciA9IHN0YXRpY19jYXN0PFJlbmRlckhUTUxDYW52YXMqPihybyk7Ci0gICAg
ICAgICAgICByLT5zZXRJbnRyaW5zaWNXaWR0aCh3KTsKLSAgICAgICAgICAgIHItPnNldEludHJp
bnNpY0hlaWdodChoKTsKLSAgICAgICAgICAgIHItPnJlcGFpbnQoKTsKLSAgICAgICAgfQorICAg
IEludFNpemUgb2xkU2l6ZSA9IG1fc2l6ZTsKKyAgICBtX3NpemUgPSBJbnRTaXplKHcsIGgpOwog
CisgICAgYm9vbCBoYWREcmF3aW5nQ29udGV4dCA9IG1fY3JlYXRlZERyYXdpbmdDb250ZXh0Owog
ICAgIG1fY3JlYXRlZERyYXdpbmdDb250ZXh0ID0gZmFsc2U7CiAgICAgZmFzdEZyZWUobV9kYXRh
KTsKICAgICBtX2RhdGEgPSAwOwogICAgIGRlbGV0ZSBtX2RyYXdpbmdDb250ZXh0OwogICAgIG1f
ZHJhd2luZ0NvbnRleHQgPSAwOworCisgICAgaWYgKFJlbmRlck9iamVjdCogcm8gPSByZW5kZXJl
cigpKQorICAgICAgICBpZiAobV9yZW5kZXJlcklzQ2FudmFzKSB7CisgICAgICAgICAgICBpZiAo
b2xkU2l6ZSAhPSBtX3NpemUpCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVySFRN
TENhbnZhcyo+KHJvKS0+Y2FudmFzU2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIGlmIChoYWRE
cmF3aW5nQ29udGV4dCkKKyAgICAgICAgICAgICAgICByby0+cmVwYWludCgpOworICAgICAgICB9
CiB9CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogcCwg
Y29uc3QgSW50UmVjdCYgcikKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcAkocmV2
aXNpb24gMjEyMDcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBcHBsZXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NywyMCArNDcsMTMgQEAgUmVuZGVyQXBwbGV0Ojp+UmVuZGVyQXBwbGV0
KCkKIHsKIH0KIAotaW50IFJlbmRlckFwcGxldDo6aW50cmluc2ljV2lkdGgoKSBjb25zdAorSW50
U2l6ZSBSZW5kZXJBcHBsZXQ6OmludHJpbnNpY1NpemUoKSBjb25zdAogewotICAgIC8vIEZJWE1F
OiBUaGlzIGRvZXNuJ3QgbWFrZSBzZW5zZS4KLSAgICAvLyBBZnRlciBzb21lIHJlc2VhcmNoIHdl
IGNhbiBwcm9iYWJseSByZW1vdmUgdGhpcyBlbnRpcmVseSBhbmQganVzdCBjYWxsCi0gICAgLy8g
c2V0SW50cmluc2ljV2lkdGggaW4gdGhlIGNvbnN0cnVjdG9yLgotICAgIHJldHVybiBtX3dpZGdl
dCA/IDUwIDogMTUwOwotfQotCi1pbnQgUmVuZGVyQXBwbGV0OjppbnRyaW5zaWNIZWlnaHQoKSBj
b25zdAotewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgbWFrZSBzZW5zZS4KLSAgICAvLyBB
ZnRlciBzb21lIHJlc2VhcmNoIHdlIGNhbiBwcm9iYWJseSByZW1vdmUgdGhpcyBlbnRpcmVseSBh
bmQganVzdCBjYWxsCi0gICAgLy8gc2V0SW50cmluc2ljSGVpZ2h0IGluIHRoZSBjb25zdHJ1Y3Rv
ci4KLSAgICByZXR1cm4gbV93aWRnZXQgPyA1MCA6IDE1MDsKKyAgICAvLyBGSVhNRTogVGhpcyBk
b2Vzbid0IG1ha2Ugc2Vuc2UuIFdlIGNhbid0IGp1c3Qgc3RhcnQgcmV0dXJuaW5nCisgICAgLy8g
YSBkaWZmZXJlbnQgc2l6ZSBvbmNlIHdlJ3ZlIGNyZWF0ZWQgdGhlIHdpZGdldCBhbmQgZXhwZWN0
CisgICAgLy8gbGF5b3V0IGFuZCBzaXppbmcgdG8gYmUgY29ycmVjdC4gV2Ugc2hvdWxkIHJlbW92
ZSB0aGlzIGFuZAorICAgIC8vIHBhc3MgdGhlIGFwcHJvcHJpYXRlIGludHJpbnNpYyBzaXplIGlu
IHRoZSBjb25zdHJ1Y3Rvci4KKyAgICByZXR1cm4gbV93aWRnZXQgPyBJbnRTaXplKDUwLCA1MCkg
OiBJbnRTaXplKDE1MCwgMTUwKTsKIH0KIAogdm9pZCBSZW5kZXJBcHBsZXQ6OmNyZWF0ZVdpZGdl
dElmTmVjZXNzYXJ5KCkKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oCShyZXZpc2lvbiAy
MTIwNykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDggKzEsNiBAQAogLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBIVE1MIHdp
ZGdldCBmb3IgS0RFLgotICoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MSw4ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCBib29sIGlzQXBwbGV0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKLSAgICAgICAgdmlydHVhbCBpbnQg
aW50cmluc2ljV2lkdGgoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBpbnQgaW50cmluc2ljSGVp
Z2h0KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgSW50U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29u
c3Q7CiAKICAgICAgICAgdm9pZCBjcmVhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOwogCkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxMCw3ICsxNDEwLDcgQEAgaW50
IFJlbmRlckJveDo6Y2FsY1JlcGxhY2VkV2lkdGhVc2luZyhMZQogICAgICAgICB9CiAgICAgICAg
IC8vIGZhbGwgdGhyb3VnaAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGlu
dHJpbnNpY1dpZHRoKCk7CisgICAgICAgICAgICByZXR1cm4gaW50cmluc2ljU2l6ZSgpLndpZHRo
KCk7CiAgICAgIH0KICB9CiAKQEAgLTE0NDksNyArMTQ0OSw3IEBAIGludCBSZW5kZXJCb3g6OmNh
bGNSZXBsYWNlZEhlaWdodFVzaW5nKEwKICAgICAgICAgICAgIHJldHVybiBjYWxjQ29udGVudEJv
eEhlaWdodChoZWlnaHQuY2FsY1ZhbHVlKGNiLT5hdmFpbGFibGVIZWlnaHQoKSkpOwogICAgICAg
ICB9CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gaW50cmluc2ljSGVpZ2h0
KCk7CisgICAgICAgICAgICByZXR1cm4gaW50cmluc2ljU2l6ZSgpLmhlaWdodCgpOwogICAgIH0K
IH0KIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsxMTIsOCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdHlsZSgpLT5odG1sSGFja3MoKSAmJiBzdHlsZSgp
LT5oZWlnaHQoKS5pc0F1dG8oKSAmJiAhaXNGbG9hdGluZ09yUG9zaXRpb25lZCgpICYmIChpc1Jv
b3QoKSB8fCBpc0JvZHkoKSk7CiAgICAgfQogCisgICAgdmlydHVhbCBJbnRTaXplIGludHJpbnNp
Y1NpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KKwogICAgIC8vIFdoZXRoZXIgb3Ig
bm90IHRoZSBlbGVtZW50IHNocmlua3MgdG8gaXRzIGludHJpbnNpYyB3aWR0aCAocmF0aGVyIHRo
YW4gZmlsbGluZyB0aGUgd2lkdGgKICAgICAvLyBvZiBhIGNvbnRhaW5pbmcgYmxvY2spLiAgSFRN
TDQgYnV0dG9ucywgPHNlbGVjdD5zLCA8aW5wdXQ+cywgbGVnZW5kcywgYW5kIGZsb2F0aW5nL2Nv
bXBhY3QgZWxlbWVudHMgZG8gdGhpcy4KICAgICBib29sIHNpemVzVG9JbnRyaW5zaWNXaWR0aChX
aWR0aFR5cGUpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZh
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5j
cHAJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZh
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsOCArMzYsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLVJl
bmRlckhUTUxDYW52YXM6OlJlbmRlckhUTUxDYW52YXMoTm9kZSogbm9kZSkKLSAgICA6IFJlbmRl
clJlcGxhY2VkKG5vZGUpCitSZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1MQ2FudmFzKEhUTUxD
YW52YXNFbGVtZW50KiBlbGVtZW50KQorICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgZWxl
bWVudC0+c2l6ZSgpKQogewogfQogCkBAIC02OCw5ICs2OCw4IEBAIHZvaWQgUmVuZGVySFRNTENh
bnZhczo6cGFpbnQoUGFpbnRJbmZvJiAKICAgICAgICAgZHJhd1NlbGVjdGlvblRpbnQgPSBmYWxz
ZTsKICAgICB9CiAKLSAgICBpZiAoZWxlbWVudCgpICYmIGVsZW1lbnQoKS0+aGFzVGFnTmFtZShj
YW52YXNUYWcpKQotICAgICAgICBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KGVsZW1l
bnQoKSktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LAotICAgICAgICAgICAgSW50UmVjdCh4ICsg
Ym9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgeSArIGJvcmRlclRvcCgpICsgcGFkZGluZ1Rv
cCgpLCBjb250ZW50V2lkdGgoKSwgY29udGVudEhlaWdodCgpKSk7CisgICAgc3RhdGljX2Nhc3Q8
SFRNTENhbnZhc0VsZW1lbnQqPihub2RlKCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwKKyAg
ICAgICAgSW50UmVjdCh4ICsgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgeSArIGJvcmRl
clRvcCgpICsgcGFkZGluZ1RvcCgpLCBjb250ZW50V2lkdGgoKSwgY29udGVudEhlaWdodCgpKSk7
CiAKICAgICBpZiAoZHJhd1NlbGVjdGlvblRpbnQpCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0
LT5maWxsUmVjdChzZWxlY3Rpb25SZWN0KCksIHNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpKTsK
QEAgLTk1LDQgKzk0LDI1IEBAIHZvaWQgUmVuZGVySFRNTENhbnZhczo6bGF5b3V0KCkKICAgICBz
ZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKK3ZvaWQgUmVuZGVySFRNTENhbnZhczo6Y2FudmFz
U2l6ZUNoYW5nZWQoKQoreworICAgIEludFNpemUgc2l6ZSA9IHN0YXRpY19jYXN0PEhUTUxDYW52
YXNFbGVtZW50Kj4obm9kZSgpKS0+c2l6ZSgpOworICAgIGlmIChzaXplID09IGludHJpbnNpY1Np
emUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2V0SW50cmluc2ljU2l6ZShzaXplKTsKKwor
ICAgIGlmICghcHJlZldpZHRoc0RpcnR5KCkpCisgICAgICAgIHNldFByZWZXaWR0aHNEaXJ0eSh0
cnVlKTsKKworICAgIEludFNpemUgb2xkU2l6ZSA9IEludFNpemUobV93aWR0aCwgbV9oZWlnaHQp
OworICAgIGNhbGNXaWR0aCgpOworICAgIGNhbGNIZWlnaHQoKTsKKyAgICBpZiAob2xkU2l6ZSA9
PSBJbnRTaXplKG1fd2lkdGgsIG1faGVpZ2h0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFzZWxmTmVlZHNMYXlvdXQoKSkKKyAgICAgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhU
TUxDYW52YXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2Fu
dmFzLmgJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENh
bnZhcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDE0ICszMCwx
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICBjbGFzcyBIVE1MQ2FudmFzRWxlbWVu
dDsKKwogICAgIGNsYXNzIFJlbmRlckhUTUxDYW52YXMgOiBwdWJsaWMgUmVuZGVyUmVwbGFjZWQg
ewogICAgIHB1YmxpYzoKLSAgICAgICAgUmVuZGVySFRNTENhbnZhcyhOb2RlKik7CisgICAgICAg
IFJlbmRlckhUTUxDYW52YXMoSFRNTENhbnZhc0VsZW1lbnQqKTsKIAogICAgICAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVySFRNTENhbnZh
cyI7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHR4LCBp
bnQgdHkpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisKKyAgICAgICAgdm9pZCBj
YW52YXNTaXplQ2hhbmdlZCgpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMiArNDYs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAog
UmVuZGVySW1hZ2U6OlJlbmRlckltYWdlKE5vZGUqIG5vZGUpCi0gICAgOiBSZW5kZXJSZXBsYWNl
ZChub2RlKQorICAgIDogUmVuZGVyUmVwbGFjZWQobm9kZSwgSW50U2l6ZSgwLCAwKSkKICAgICAs
IG1fY2FjaGVkSW1hZ2UoMCkKICAgICAsIG1faXNBbm9ueW1vdXNJbWFnZShmYWxzZSkKIHsKLSAg
ICBzZXRJbnRyaW5zaWNXaWR0aCgwKTsKLSAgICBzZXRJbnRyaW5zaWNIZWlnaHQoMCk7CiAgICAg
dXBkYXRlQWx0VGV4dCgpOwogfQogCkBAIC0xMDksMTggKzEwNywxMiBAQCBib29sIFJlbmRlcklt
YWdlOjpzZXRJbWFnZVNpemVGb3JBbHRUZXh0CiAgICAgICAgIGltYWdlSGVpZ2h0ID0gbWF4KGlt
YWdlSGVpZ2h0LCBtaW4oZm9udC5oZWlnaHQoKSwgbWF4QWx0VGV4dEhlaWdodCkpOwogICAgIH0K
ICAgCi0gICAgYm9vbCBpbWFnZVNpemVDaGFuZ2VkID0gZmFsc2U7Ci0gIAotICAgIGlmIChpbWFn
ZVdpZHRoICE9IGludHJpbnNpY1dpZHRoKCkpIHsKLSAgICAgICAgc2V0SW50cmluc2ljV2lkdGgo
aW1hZ2VXaWR0aCk7Ci0gICAgICAgIGltYWdlU2l6ZUNoYW5nZWQgPSB0cnVlOwotICAgIH0KLSAg
ICBpZiAoaW1hZ2VIZWlnaHQgIT0gaW50cmluc2ljSGVpZ2h0KCkpIHsKLSAgICAgICAgc2V0SW50
cmluc2ljSGVpZ2h0KGltYWdlSGVpZ2h0KTsKLSAgICAgICAgaW1hZ2VTaXplQ2hhbmdlZCA9IHRy
dWU7Ci0gICAgfQotICAKLSAgICByZXR1cm4gaW1hZ2VTaXplQ2hhbmdlZDsKKyAgICBJbnRTaXpl
IGltYWdlU2l6ZSA9IEludFNpemUoaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpOworICAgIGlmIChp
bWFnZVNpemUgPT0gaW50cmluc2ljU2l6ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBzZXRJbnRyaW5zaWNTaXplKGltYWdlU2l6ZSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZv
aWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSogbmV3SW1hZ2UpCkBAIC0x
NDMsMTEgKzEzNSw5IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChDYWNoZWRJbWEK
ICAgICBib29sIGVuc3VyZUxheW91dCA9IGZhbHNlOwogCiAgICAgLy8gSW1hZ2UgZGltZW5zaW9u
cyBoYXZlIGJlZW4gY2hhbmdlZCwgc2VlIHdoYXQgbmVlZHMgdG8gYmUgZG9uZQotICAgIGlmIChu
ZXdJbWFnZS0+aW1hZ2VTaXplKCkud2lkdGgoKSAhPSBpbnRyaW5zaWNXaWR0aCgpIHx8IG5ld0lt
YWdlLT5pbWFnZVNpemUoKS5oZWlnaHQoKSAhPSBpbnRyaW5zaWNIZWlnaHQoKSB8fCBpbWFnZVNp
emVDaGFuZ2VkKSB7Ci0gICAgICAgIGlmICghbmV3SW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkgewot
ICAgICAgICAgICAgc2V0SW50cmluc2ljV2lkdGgobmV3SW1hZ2UtPmltYWdlU2l6ZSgpLndpZHRo
KCkpOwotICAgICAgICAgICAgc2V0SW50cmluc2ljSGVpZ2h0KG5ld0ltYWdlLT5pbWFnZVNpemUo
KS5oZWlnaHQoKSk7Ci0gICAgICAgIH0KKyAgICBpZiAobmV3SW1hZ2UtPmltYWdlU2l6ZSgpICE9
IGludHJpbnNpY1NpemUoKSB8fCBpbWFnZVNpemVDaGFuZ2VkKSB7CisgICAgICAgIGlmICghbmV3
SW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIHNldEludHJpbnNpY1NpemUobmV3
SW1hZ2UtPmltYWdlU2l6ZSgpKTsKIAogICAgICAgICAvLyBJbiB0aGUgY2FzZSBvZiBnZW5lcmF0
ZWQgaW1hZ2UgY29udGVudCB1c2luZyA6YmVmb3JlLzphZnRlciwgd2UgbWlnaHQgbm90IGJlIGlu
IHRoZQogICAgICAgICAvLyByZW5kZXIgdHJlZSB5ZXQuICBJbiB0aGF0IGNhc2UsIHdlIGRvbid0
IG5lZWQgdG8gd29ycnkgYWJvdXQgY2hlY2sgZm9yIGxheW91dCwgc2luY2Ugd2UnbGwgZ2V0IGEK
QEAgLTMxMyw3ICszMDMsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpsYXlvdXQoKQogICAgIH0KIAog
ICAgIC8vIG1pbmltdW0gaGVpZ2h0Ci0gICAgbV9oZWlnaHQgPSBtX2NhY2hlZEltYWdlICYmIG1f
Y2FjaGVkSW1hZ2UtPmVycm9yT2NjdXJyZWQoKSA/IGludHJpbnNpY0hlaWdodCgpIDogMDsKKyAg
ICBtX2hlaWdodCA9IG1fY2FjaGVkSW1hZ2UgJiYgbV9jYWNoZWRJbWFnZS0+ZXJyb3JPY2N1cnJl
ZCgpID8gaW50cmluc2ljU2l6ZSgpLmhlaWdodCgpIDogMDsKIAogICAgIGNhbGNXaWR0aCgpOwog
ICAgIGNhbGNIZWlnaHQoKTsKQEAgLTQxNiwyMCArNDA2LDIyIEBAIGludCBSZW5kZXJJbWFnZTo6
Y2FsY1JlcGxhY2VkSGVpZ2h0KCkgY28KIAogaW50IFJlbmRlckltYWdlOjpjYWxjQXNwZWN0UmF0
aW9XaWR0aCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpbnRyaW5zaWNIZWlnaHQoKSkKKyAgICBJbnRT
aXplIHNpemUgPSBpbnRyaW5zaWNTaXplKCk7CisgICAgaWYgKCFzaXplLmhlaWdodCgpKQogICAg
ICAgICByZXR1cm4gMDsKICAgICBpZiAoIW1fY2FjaGVkSW1hZ2UgfHwgbV9jYWNoZWRJbWFnZS0+
ZXJyb3JPY2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gaW50cmluc2ljV2lkdGgoKTsgLy8gRG9u
J3QgYm90aGVyIHNjYWxpbmcuCi0gICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjYWxjUmVwbGFj
ZWRIZWlnaHQoKSAqIGludHJpbnNpY1dpZHRoKCkgLyBpbnRyaW5zaWNIZWlnaHQoKTsKKyAgICAg
ICAgcmV0dXJuIHNpemUud2lkdGgoKTsgLy8gRG9uJ3QgYm90aGVyIHNjYWxpbmcuCisgICAgcmV0
dXJuIFJlbmRlclJlcGxhY2VkOjpjYWxjUmVwbGFjZWRIZWlnaHQoKSAqIHNpemUud2lkdGgoKSAv
IHNpemUuaGVpZ2h0KCk7CiB9CiAKIGludCBSZW5kZXJJbWFnZTo6Y2FsY0FzcGVjdFJhdGlvSGVp
Z2h0KCkgY29uc3QKIHsKLSAgICBpZiAoIWludHJpbnNpY1dpZHRoKCkpCisgICAgSW50U2l6ZSBz
aXplID0gaW50cmluc2ljU2l6ZSgpOworICAgIGlmICghc2l6ZS53aWR0aCgpKQogICAgICAgICBy
ZXR1cm4gMDsKICAgICBpZiAoIW1fY2FjaGVkSW1hZ2UgfHwgbV9jYWNoZWRJbWFnZS0+ZXJyb3JP
Y2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gaW50cmluc2ljSGVpZ2h0KCk7IC8vIERvbid0IGJv
dGhlciBzY2FsaW5nLgotICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y2FsY1JlcGxhY2VkV2lk
dGgoKSAqIGludHJpbnNpY0hlaWdodCgpIC8gaW50cmluc2ljV2lkdGgoKTsKKyAgICAgICAgcmV0
dXJuIHNpemUuaGVpZ2h0KCk7IC8vIERvbid0IGJvdGhlciBzY2FsaW5nLgorICAgIHJldHVybiBS
ZW5kZXJSZXBsYWNlZDo6Y2FsY1JlcGxhY2VkV2lkdGgoKSAqIHNpemUuaGVpZ2h0KCkgLyBzaXpl
LndpZHRoKCk7CiB9CiAKIHZvaWQgUmVuZGVySW1hZ2U6OmNhbGNQcmVmV2lkdGhzKCkKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiAyMTIwNykKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MzAsMTAgKzUzMCw2IEBA
IHB1YmxpYzoKICAgICBpbnQgY29udGVudFdpZHRoKCkgY29uc3QgeyByZXR1cm4gY2xpZW50V2lk
dGgoKSAtIHBhZGRpbmdMZWZ0KCkgLSBwYWRkaW5nUmlnaHQoKTsgfQogICAgIGludCBjb250ZW50
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gY2xpZW50SGVpZ2h0KCkgLSBwYWRkaW5nVG9wKCkgLSBw
YWRkaW5nQm90dG9tKCk7IH0KIAotICAgIC8vIGludHJpbnNpYyBleHRlbmQgb2YgcmVwbGFjZWQg
ZWxlbWVudHMuIHVuZGVmaW5lZCBvdGhlcndpc2UKLSAgICB2aXJ0dWFsIGludCBpbnRyaW5zaWNX
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCBpbnRyaW5zaWNIZWln
aHQoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0KICAgICAvLyB1c2VkIGJ5IGZsZXhpYmxlIGJveGVz
IHRvIGltcG9zZSBhIGZsZXhlZCB3aWR0aC9oZWlnaHQgb3ZlcnJpZGUKICAgICB2aXJ0dWFsIGlu
dCBvdmVycmlkZVNpemUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgb3Zl
cnJpZGVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHAJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsNyBAQAotLyoqCi0gKiBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgSFRNTCB3aWRnZXQgZm9yIEtERS4KLSAqCisvKgogICog
Q29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNiwyIDAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTIxLDYgKzE5LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNB
LgogICoKICAqLworCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVwbGFj
ZWQuaCIKIApAQCAtMzMsOCArMzIsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJS
ZXBsYWNlZDo6UmVuZGVyUmVwbGFjZWQoTm9kZSogbm9kZSkKICAgICA6IFJlbmRlckJveChub2Rl
KQotICAgICwgbV9pbnRyaW5zaWNXaWR0aCgzMDApCi0gICAgLCBtX2ludHJpbnNpY0hlaWdodCgx
NTApCisgICAgLCBtX2ludHJpbnNpY1NpemUoMzAwLCAxNTApCisgICAgLCBtX3NlbGVjdGlvblN0
YXRlKFNlbGVjdGlvbk5vbmUpCit7CisgICAgc2V0UmVwbGFjZWQodHJ1ZSk7Cit9CisKK1JlbmRl
clJlcGxhY2VkOjpSZW5kZXJSZXBsYWNlZChOb2RlKiBub2RlLCBjb25zdCBJbnRTaXplJiBpbnRy
aW5zaWNTaXplKQorICAgIDogUmVuZGVyQm94KG5vZGUpCisgICAgLCBtX2ludHJpbnNpY1NpemUo
aW50cmluc2ljU2l6ZSkKICAgICAsIG1fc2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uTm9uZSkKIHsK
ICAgICBzZXRSZXBsYWNlZCh0cnVlKTsKQEAgLTIwOSw0ICsyMTUsMTQgQEAgYm9vbCBSZW5kZXJS
ZXBsYWNlZDo6aXNTZWxlY3RlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitJbnRT
aXplIFJlbmRlclJlcGxhY2VkOjppbnRyaW5zaWNTaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9pbnRyaW5zaWNTaXplOworfQorCit2b2lkIFJlbmRlclJlcGxhY2VkOjpzZXRJbnRyaW5zaWNT
aXplKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgbV9pbnRyaW5zaWNTaXplID0gc2l6ZTsK
K30KKwogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCShyZXZpc2lvbiAyMTIw
NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBs
ZSBJbmMuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDYgKzI5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgUmVuZGVyUmVwbGFjZWQgOiBwdWJsaWMgUmVuZGVyQm94IHsKIHB1Ymxp
YzoKICAgICBSZW5kZXJSZXBsYWNlZChOb2RlKik7CisgICAgUmVuZGVyUmVwbGFjZWQoTm9kZSos
IGNvbnN0IEludFNpemUmIGludHJpbnNpY1NpemUpOwogCiAgICAgdmlydHVhbCBjb25zdCBjaGFy
KiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclJlcGxhY2VkIjsgfQogCkBAIC0z
OSwxMSArNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZv
JiwgaW50IHR4LCBpbnQgdHkpID0gMDsKIAotICAgIHZpcnR1YWwgaW50IGludHJpbnNpY1dpZHRo
KCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNXaWR0aDsgfQotICAgIHZpcnR1YWwgaW50IGlu
dHJpbnNpY0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faW50cmluc2ljSGVpZ2h0OyB9Ci0KLSAg
ICB2b2lkIHNldEludHJpbnNpY1dpZHRoKGludCB3KSB7IG1faW50cmluc2ljV2lkdGggPSB3OyB9
Ci0gICAgdm9pZCBzZXRJbnRyaW5zaWNIZWlnaHQoaW50IGgpIHsgbV9pbnRyaW5zaWNIZWlnaHQg
PSBoOyB9CisgICAgdmlydHVhbCBJbnRTaXplIGludHJpbnNpY1NpemUoKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgaW50IGNhcmV0TWluT2Zmc2V0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2Fy
ZXRNYXhPZmZzZXQoKSBjb25zdDsKQEAgLTU4LDExICs1NSwxMiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1NlbGVjdGVkKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKKyAgICB2b2lkIHNldEludHJpbnNp
Y1NpemUoY29uc3QgSW50U2l6ZSYpOworCiAgICAgYm9vbCBzaG91bGRQYWludChQYWludEluZm8m
LCBpbnQmIHR4LCBpbnQmIHR5KTsKIAogcHJpdmF0ZToKLSAgICBpbnQgbV9pbnRyaW5zaWNXaWR0
aDsKLSAgICBpbnQgbV9pbnRyaW5zaWNIZWlnaHQ7CisgICAgSW50U2l6ZSBtX2ludHJpbnNpY1Np
emU7CiAgICAgCiAgICAgdW5zaWduZWQgbV9zZWxlY3Rpb25TdGF0ZSA6IDM7IC8vIFNlbGVjdGlv
blN0YXRlCiB9OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgJKHJldmlzaW9uIDIxMjA3
KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTU2LDggKzU2LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFdpZGdldChXaWRn
ZXQqKTsKIAotICAgIHVzaW5nIFJlbmRlclJlcGxhY2VkOjplbGVtZW50OwotCiBwcml2YXRlOgog
ICAgIHZvaWQgcmVzaXplV2lkZ2V0KFdpZGdldCosIGludCB3LCBpbnQgaCk7CiAKSW5kZXg6IFdl
YktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiAyMTIwNykKKysrIFdlYktpdC9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDE0LDYgKzIwMTQsOCBAQCBzdGF0aWMgTlNV
UkwqIHVuaXF1ZVVSTFdpdGhSZWxhdGl2ZVBhcnQoCiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAg
IEFTU0VSVChbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl0gIT0gc2VsZik7CisKICAgICAv
LyBXZSBjYW4ndCBhc3NlcnQgdGhhdCBjbG9zZSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBiZWNh
dXNlCiAgICAgLy8gdGhpcyB2aWV3IGNhbiBiZSByZW1vdmVkIGZyb20gaXQncyBzdXBlcnZpZXcs
IGV2ZW4gdGhvdWdoCiAgICAgLy8gaXQgY291bGQgYmUgbmVlZGVkIGxhdGVyLCBzbyBjbG9zZSBp
ZiBuZWVkZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2l6ZS1jaGFu
Z2UtYWZ0ZXItbGF5b3V0LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBm
aWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24v
b2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9jYW52YXMtc2l6ZS1jaGFuZ2UtYWZ0ZXItbGF5b3V0LWV4cGVjdGVkLnBuZwpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJP
UncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQWRYVWxFUVZSNG5PM2Rl
NUJYZGYzNDhSZkx6UXNvCkRPd2dhSzJLbDBVbExieGJlVGUxZGJ5aVpGYmdhRXZrVUNyMVJ4Y3Jy
UlExTFoxU3U2ZURJVHBwbW9TSktNS0VLSUV6T0dLcDVhUVoKSUFZcXduSlozcjgvK3ZFWldIYjNz
K3ZDSy8zNmVQekY1M00rNTN6TyszM08yZG5uZmk1MEs2V1VBQUFBU0ZEenY5NEJBQURnL1VPQQpB
QUFBYVFRSUFBQ1FSb0FBQUFCcEJBZ0FBSkJHZ0FBQUFHa0VDQUFBa0VhQUFBQUFhUVFJQUFDUVpx
c0d5TXFWSytQbGwxL2VtcHZjCktyYjFmcTFac3liKy9PYy90N204dWJrNW5udnV1VGFYcjF5NU12
NzFyMzl0aTEzYjVsNS8vZlY0L3ZubjIxeGViZXpiOHJrN3F0cngKZXpmcjZybmRjdXp2NWJrQUFO
NGJxZ1pJUTBORDlPL2ZQMDQrK2VRNDk5eHpvM3YzN3JISEhudkVPZWVjRXgvOTZFZWplL2Z1Y2Z2
dAp0OGVkZDk0Wmd3WU5panZ1dUNOanZ6dHNXKy9YM0xsejQrQ0RENDZ6empxcjFlVlBQZlZVSEhU
UVFmSDV6MysrMWVXMzNYWmJEQmd3CklPNisrKzV0c24vYjJoVlhYQkZubkhGR3E4dXFqWDFiUG5k
SFZUdCs3MlpkUGJkYmp2MjlQQmNBd0h0SDFRQlp0MjVkeko4L1A2Wk4KbXhaVHBreUpYcjE2eFRI
SEhCUDMzSE5Qeko0OU82Njc3cnBvYW1xSzg4OC9QK3JxNmpMMnVWTzI5WDRkZHRoaE1YcjA2RGFY
SDNMSQpJWEhNTWNkRXo1NDlXMTNlMk5nWS9mdjMzMnI3czJiTm1uajAwVWUzMnZhcXVmTEtLK08r
Kys1cmRWbTFzWGRXeTdHMTk5d2RWZTM0CnZadDE5ZHh1T2ZiMzhsd0FBTzhkVlFQa3Nzc3VpejMy
MktQTjVZMk5qYkgvL3Z0SFJFVFBuajJqVzdkdVhkcWhVa3FYMW05dEcxdGoKdjlyVHExZXZWcmUv
WWNPR2lJam8wYU5IMU5TMFBkVmJhLy9XclZzWG4vbk1aMkxXckZsZDNsWkhEUmd3SVBiZWUrOHQ3
dS9vMkR1cQp0YkcxOWR6dFdiOSsvUmIzdFhYOFd0b2E1K2JXMXRWenArWFlPem9YVzl1Mm10dldq
dmM3OVc0OC9nRHdYbFQxTjhOUGZPSVQ3UzdmCmNjY2Q0NmlqanFyYzNyQmhRMXh4eFJYeHdROStN
QTQ0NElENHh6LytVVm0yWk1tU3VPeXl5K0xvbzQrT0VTTkd4Qk5QUEZGWmR0ZGQKZDhVdHQ5d1Mx
MTU3YlJ4NTVKRWRXcWVsdHJaUmJiOVdybHdabDF4eVNWeCsrZVZ4eGhsbnhQang0MlAxNnRXVmJl
NjY2NjV4ODgwMwpSMFRFNU1tVFk5OTk5NDJ4WThlMnVSK3JWcTJLY2VQR3hYZS8rOTBZTzNac3pK
czNyOTA1M0xqT2hBa1RZdENnUVRGaXhJaFl0R2hSCnArZmdoei84WWR4Ly8vMXgzMzMzeGVjKzk3
bTQ4ODQ3bzdhMk5zNDg4OHhZc1dKRi9Qclh2NDdhMnRvNDhjUVQ0NFVYWG9pSWlCdHUKdUNFKzly
R1BSVk5UVTlXNWFPbmYvLzUzWEh2dHRYSEVFVWQwZU94dGplWFJSeCtOVWFOR3hZUUpFK0lYdi9o
RkRCMDZOT3JyNnl2SApxZVhZWG56eHhTMmVlL1hxMWZIMXIzODlKazZjR09lZGQxNWNmLzMxbFdX
UFBQSklUSnc0TVc2NDRZWTQ2cWlqNHBsbm5xbDZURFlkCjB5V1hYQkpYWFhWVm5IVFNTVEZxMUtp
WU9IRml6Sm8xSytiUG54K05qWTN4alc5OEk3NzN2ZTlGYlcxdFBQbmtrKzBlczNjNkIyMTUKcCtk
MlI3UzMvdTkrOTd0T24xOHR0WFhOTmpVMXhZUUpFK0thYTY2Sk04ODhNeG9iRzJQVXFGR1ZkYXBk
azIwZDczZHl2TnJheDZ1dQp1aW9PT2VTUURzOGxBUEQvbFU3YWJydnR5dWpSbzF0ZDlxRVBmYWdj
ZU9DQlpmcjA2ZVhsbDE4dTlmWDE1YUtMTGlxbGxMSisvZnB5CnlpbW5sRGZmZkxNME56ZVh4c2JH
VWx0Ylc1WXZYMTdXclZ0WERqNzQ0TXAyTHIzMDB0TGMzTnp1T2kyMXRZMXErMVZLS1IvLytNZkwK
N2JmZlhrb3BaZTNhdGVYUVF3OHREUTBObGVXNzdycHIrZDczdmxlNWZkSkpKNVdSSTBkV2J0OTAw
MDFsbDExMnFkeis1Q2MvV1NaUApubHhLS2FXNXVia01HVEtrbkhqaWlXM082VzY3N1ZiMjMzLy9j
di85OTVjWk0yYVUzWGZmdmV5NTU1NWwzYnAxblpxRFVrclpmZmZkCnkvZS8vLzNLN1k5ODVDUGx3
Z3N2ck53KzVwaGp5cGd4WXlxM0gzend3ZktyWC8ycXczT3hxYVZMbDVheFk4ZVdnUU1IZG1qczdZ
MWwKOGVMRlpaOTk5aW4xOWZYbGdRY2VLQys5OUZMWmQ5OTl5OFVYWDl6cTJGcDc3cE5QUHJuTW1U
T25sRkxLdkhuelNrU1V2L3psTDJYTgptalZsMTExM0xUTm16Q2lsbFBMdGIzKzduSDMyMlpYMVdo
Ni9sbTYrK2VaeStlV1hsMUpLV2Jod1lZbUlNbkhpeFBMU1N5K1ZPWFBtCmxQNzkrNWVERGpxbzNI
UFBQYVd4c2JFc1dyU296WEYyZFE1YTZ1cTUzWExzTFc5WFc3K3o1OWVtMnJ0bUd4b2F5bTkvKzl2
S3NvYUcKaG5MSUlZZFVicmQzVGJaM3ZEdDd2TnJieHgvLytNZmw5Tk5QYjNWc0FFRGJ0dnJYOERZ
ME5NVHh4eDhmdSsyMld4eDc3TEdWYjBDYQpNbVZLbEZKaTFxeFpNVzNhdEJnOGVIQzg5dHByOGZq
amo4ZUtGU3ZpNmFlZmpxbFRwMFpFeE1VWFh4eWxsSGJYYWFtdGJWVGJyMm5UCnBzWHMyYk1yZjEz
dDJiTm5YSGpoaGZHSFAvd2g1c3laRXhFUjIyKy8vV1p2UzlsaGh4M2FmSnZLRTA4OEVWT25UcTI4
Y2xSVFV4T24Kbm5wcTFYbjc3R2MvRzZlZGRsb2NlK3l4Y2MwMTE4VGYvLzczbUQ1OWVxZm1ZS05O
OTIzTW1ESHgwRU1QVmQ0U2RjSUpKOFFERHp4UQplV3ZLOU9uVFkrVElrUjJlaTAzVjF0Ykc4T0hE
Sy9OY2JlenRqV1hRb0VFeGRPalFHRDU4ZURRME5FUmRYVjBjZDl4eDhkZS8vclhWCnNiVjg3aGt6
WnNTQ0JRdmlzTU1PaTRpSUVTTkd4SzIzM2hwMWRYWFJzMmZQT091c3MrTEFBdytNaVArK2RXdlRW
NWlxdWVPT08yTEEKZ0FFUkVYSEFBUWRFYlcxdFJFVFUxZFhGNFljZkh2WDE5VEZzMkxBNCsreXo0
OVpiYjQwRkN4YTBPYzZ0TVFjdGRlWGNiazlIMXUvTQorZFZTVzlmczdObXpZK3JVcVhIS0thZFVI
anQwNk5ETjFtM3ZtbXp2ZUhmMmVMWDNjMlhjdUhGZC9nd1NBTHdmYmZVQTJmU1hndjc5Cis4Zkts
U3NqSW1MT25Ea3hZTUNBNk5XclYvVHExU3VPT3Vxb2VQamhoMlBFaUJFeGNPREFPT3VzcytLMDAw
NkxMMzd4aTdINzdydEgKOSs3ZDIxMm5wYmEyVVcyL25uenl5YWl0cmQzc2c5S0hIbnBvUkVRc1dM
Q2cwK04vN0xISG9yNitQdnIxNjFlNXIwK2ZQbFhmVjcvegp6anRYL24zNDRZZEhSTVR6enovZnFU
bllhTlBuK3RTblBoV3Z2ZlphNWJNVHp6enpUTHo5OXR2eHlDT1BSRk5UVTJ6WXNDRjIzSEhICmlI
aG5jOUd0VzdmSzgxVWJlN1d4YkxxdGlJaStmZnR1OGRhZFRaZHYrdmpISDM4OGpqenl5TTJXTnpZ
MnhvQUJBNkpidDI1eDAwMDMKeFlvVksyTGl4SWt4YytiTWVPdXR0OXFjdjViNjl1MjcyUy9zdSt5
eVN5VjBJdjc3eS9ER0tLazJ6cTB4QnkxdHEzTzdJK3QzNXZ4cQpxYTFyZHViTW1WRmZYNy9aTmRG
eVhxck5SM3ZIdXpQSHE5clBGUUNnODNwa1BkR3laY3VpUjQ4ZWNjSUpKN1M2L000Nzc0d2hRNGJF
CmozNzBvNWcvZjM0ODlOQkRWZGZweURaMjJtbW5kdGRadFdwVkxGdTJMRmF1WEJsOSt2U0ppSWpo
dzRkSGp4NDk0dTIzMys3Y0lDUGkKbFZkZWlXWExsbTF4ZjJjKzJGdFhWeGQ5Ky9hTnZuMzdkbm9P
V2hvd1lFQTBORFRFcEVtVG9sKy9mbkh3d1FkSFRVMU5USjQ4T2Q1NAo0NDNOdnNhMnEzTlJiZXhk
SFV0N2xpeFowdTduT202NzdiYVlQWHQyL1BLWHY0eWYvL3puOGVTVFQzWjQyNWRlZW1tTUhqMDZG
aTVjCkdMMTc5NDRkZHRnaGpqNzY2RFlmMzk0NHQrVWN0TlRWNDltUjlUdHpmcldtdFd2MjFWZGZq
Zi84NXo5ZEdudG5qdmM3K2RsVTdlY0sKQU5DMnRQOEpmWTg5OW9pSEgzNTRzNy9tbGxMaXNjY2Vp
OFdMRjhmU3BVdmp4aHR2akduVHBzWENoUXRqOHVUSjdhN1RVbHZicUthKwp2ajZhbTV2anFhZWVx
dHkzZE9uU1dMOStmUXdiTnF4eTM4YTNtRlF6Wk1pUWVPMjExK0p2Zi90Ymh4N2ZtbGRmZlRYZWV1
dXQrUENIClA5eXBPZGlvWmV5TUhqMDY3cjc3N3ZqWnozNFdGMTEwVVl3Wk15YnV2ZmZlbUQ1OStt
YS9TSGQwTHRwU2JlenZaQ3pWeHJaUlhWMWQKUFAvODgvSGlpeTl1dHUwRkN4YkVzODgrRytQR2pZ
dnJyNy8rSFgwbDhLbW5uaG9YWDN4eFRKczJMZWJObTFmMWE0N2JHK2ZXbUlPTwo2dXJ4N09qNkhU
Mi9XbXJybWgwOGVIQXNYcnc0L3ZuUGYxWWVXMXI1QnFxMnJzbk9IdTkzOHJNSkFIam5PaFVnR3pa
c2lMVnIxN2I1CjE4bFZxMWJGcWxXcktyZFhyMTVkK2NhY1QzLzYwN0ZreVpKb2JHeU01Y3VYeDlL
bFMrUEtLNitNdmZmZU8xNS8vZlc0NjY2N0lpTGkKcEpOT2l0TlBQejM2OU9uVDdqb3R0YldOYXZz
MWN1VEkyRzIzM2VMaGh4K3VMSjgzYjE3VTE5Zkh5U2VmSEJILy9hdnYzTGx6WSszYQp0ZkhxcTYv
R2l5KytHSysvL25ybDhXdlhybzExNjlaRlJNUjU1NTBYUFhyMGlGdHZ2Yld5L0xubm5vdGx5NVpG
YzNOem0zTzc2YklaCk0yYkVHV2VjRVFjZWVHQ241aUFpb2wrL2Z2SEtLNjlFUk1UeTVjc2pJdUtV
VTA2SjNyMTdSL2Z1M1dQbm5YZU80NDQ3TG5iYWFhY1kKUEhqd1pyL1FkMlF1V2xxMWFsV3NYcjA2
U2lsVngxNXRMR3ZYcnQzc2w4cFZxMVp0Tmk4dHg5Ynl1YmZiYnJzWU0yWk1MRnEwS0JZdApXaFJm
L2VwWDR3TWYrRUFzV3JRb05tellFTTgrKzJ3ME56Zkh6Smt6bzZtcEtVb3BVVXJaN1BpMTVqdmYr
VTdzczg4K01YNzgrRGovCi9QTmorKzIzMzJ6NSt2WHJOL3RtcWZiRzJkVTVhRzMrdTNKdXR4ejdw
cmM3ZWo1MDlQeHFxYTFyZHVPMk41NUhhOWFzaVlVTEYyNFcKSWUxZGs5V09kMmVPVjNzL1YyYk5t
aFUzM25oam0rTURBTnJRMFUrclAvUE1NNld4c2JGRVJObDU1NTNMRDM3d2cvTEdHMjlVbHQ5egp6
ejJscHFhbTdMZmZmbVhCZ2dWbC92ejVaZGl3WWFWSGp4N2wvdnZ2TDZXVWNzc3R0NVRldlh1WGJ0
MjZsZHJhMm5MdnZmZFd0ajEwCjZOQnkyMjIzbGQvLy92ZGwzTGh4WmQyNmRlMnUwOXIrdGJhTmp1
elgvUG56eTM3NzdWZXV1KzY2TW5YcTFESnExS2l5YU5HaXlyWWYKZWVTUk1tREFnTExubm51V3Iz
emxLMlhzMkxIbCtPT1BMek5tekNoejU4NHRJMGFNS0JGUmZ2S1RuNVExYTlhVVNaTW1sYjU5KzVa
aAp3NGFWYzg4OXQ1eDIybW5seUNPUExKTW1UV3AxMzcvMXJXK1Y0Y09IbDJ1dXVhWmNmZlhWNVV0
ZitsSjU4ODAzSzhzN09nZWxsUEsxCnIzMnRkT3ZXclZ4NDRZVmx5WklsbGZzblRKaFFYbmpoaGNy
dGIzN3ptNXZkM3FqYVhHeHE3dHk1NVlnamppZ1JVVzY4OGNZT2piMnQKc2N5Y09iUDA2OWV2REJr
eXBNeVpNNmM4L2ZUVFphKzk5aXE5ZS9jdWYvclRuN1lZMngvLytNY3RudnZlZSs4dHRiVzFKU0pL
WFYxZAptVDE3ZGltbGxMZmZmcnNjZE5CQnBVK2ZQbVhNbURIbHdRY2ZMRHZzc0VPNTRJSUx5dXpa
czdjNGZpMTkrY3RmTGhGUklxSjA3OTY5CkRCbzBxSXdiTjY0eTNoMTMzTEVNSGp5NDNIWFhYUjA2
WmwyWmcwMTE5ZHh1ZWU2Mk5oY2RQUjg2ZW41dHFyM3IvcXFycmlvMU5UVmwKeUpBaDVZSUxMaWdq
UjQ3YzdGdXcycnNtMnp2ZXYvbk5ienAxdk5yYngvSGp4NWRkZHRtbHJGKy92dDF4QWdDYjYxWks3
dit1dFhidAoybmo1NVplanJxNHVldlQ0NzBkUU5tellFRFUxTmJGaXhZcm8yYlBuRmg5YWJXMmRs
cXB0bzVwU1Nyend3Z3RSVTFPenhUZnViTnlICjV1Ym0ySDc3N1dQZHVuVlYzOXJSM053Y3k1Y3Zq
NEVEQjBaVFUxTnN0OTEyVmZkaDhlTEZNWERnd0ZiSDJKRTUyR2pac21VeGNPREEKemU1YnMyWk45
TzdkdTgzYm02bzJGOVZVRzN0bnh0SlNhMk5ydWU5TGx5Nk5RWU1HYmJGczllclZsVmN2T25JTU43
cjY2cXZqbkhQTwppYWFtcG5qcnJiZGl4WW9WTVdYS2xMamdnZ3ZhL1N4SGUrUHN5aHgwVmxlUFow
Zlc3OHo1dFZHMWEvYk5OOStNbXBxYTZOT25UM3poCkMxK0krZlBueDl5NWN5dkxxMTJUblQzZW5m
M1pWRXFKcHFhbUxWNFJBd0RhbHg0ZzhGN3kwNS8rTktaTW1STFRwMC9mN1A2SEhub28KaGc0ZEdu
dnR0ZGYvYU0vZVgxb0xFQURndlNudFc3RGd2ZWlJSTQ2SThlUEh4OGlSSTJQRWlCR3hldlhxV0xK
a1NUUTBOSWlQUkFzWApMb3pseTVkSEthVlQzeWdIQUx6N2VBVUVxbmpqalRmaThjY2ZqOFdMRjhl
eHh4NHJQSkpObWpRcFhucnBwWWo0NzM4RWVmcnBwLzl2CmR3Z0E2QklCQWdBQXBFbjdmMEFBQUFB
RUNBQUFrRWFBQUFBQWFRUUlBQUNRUm9BQUFBQnBCQWdBQUpCR2dBQUFBR2tFQ0FBQWtFYUEKQUFB
QWFRUUlBQUNRUm9BQUFBQnBCQWdBQUpCR2dBQUFBR2tFQ0FBQWtFYUFBQUFBYVhwVWUwQzM3M1RM
MkkvL21mS3RzdG50OTl0NApBUUFnazFkQUFBQ0FOQUlFQUFCSVUvVXRXSnY2di9MMm5ZNit6ZXI5
Tmw0QUFOald2QUlDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBClFCb0JBZ0FBcEJFZ0FBQkFHZ0VD
QUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWEK
QVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFR
Qm9CQWdBQXBCRWdBQUJBR2dFQwpBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdB
QUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBCnBCRWdBQUJBR2dFQ0FBQ2tF
U0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFL
UVIKSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDazZkR1pCM2Y3VHJkdHRSL3ZTdSszOFFJQXdM
Ym1GUkFBQUNDTkFBRUFBTkowSzZXVQovL1ZPQUFBQTd3OWVBUUVBQU5JSUVBQUFJSTBBQVFBQTBn
Z1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBCjBnZ1FBQUFnalFBQkFB
RFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFF
QUFOSUkKRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkw
QUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQQpBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFB
Z2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnCmpRQUJBQURTQ0JB
QUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJ
RUFBQUlJMEEKQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFB
MGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQQpBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFC
QUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTCkNCQUFBQ0NO
QUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJ
STBBQVFBQTBnZ1EKQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FB
QUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQQpJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFND
QkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOCkFBRUFB
TklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFR
QUEwZ2dRQUFBZ2pRQUIKQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pR
QUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQQowZ2dRQUFBZ2pRQUJBQURTQ0JBQUFD
Q05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJCkVB
QUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdn
UUFBQWdqUUFCQUFEU0NCQUEKQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFE
U0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZwpqUUFCQUFEU0NCQUFBQ0NOQUFF
QUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBB
CkFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFn
alFBQkFBRFNDQkFBQUNDTkFBRUEKQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFB
QUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEUwpDQkFBQUNDTkFBRUFBTklJ
RUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEw
Z2dRCkFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJB
QURTQ0JBQUFDQ05BQUVBQU5JSUVBQUEKSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05B
QUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTgpBQUVBQU5JSUVBQUFJ
STBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFB
QWdqUUFCCkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NC
QUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEKMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFO
SUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSQpFQUFBSUkwQUFR
QUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFB
QkFBRFNDQkFBCkFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUND
TkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWcKalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFB
QUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQQpBUUFBMGdn
UUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURT
Q0JBQUFDQ05BQUVBCkFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVB
QU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFMKQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBB
QVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUQpBQUFn
alFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFB
Q0NOQUFFQUFOSUlFQUFBCklJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlF
QUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ04KQUFFQUFOSUlFQUFBSUkwQUFRQUEw
Z2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQgpB
QURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFB
RUFBTklJRUFBQUlJMEFBUUFBCjBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJ
MEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUkKRUFBQUlJMEFBUUFBMGdnUUFB
QWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JB
QQpBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5J
SUVBQUFJSTBBQVFBQTBnZ1FBQUFnCmpRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFB
QTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEEKQVFBQTBnZ1FBQUFnalFB
QkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NO
QUFFQQpBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFB
SUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTCkNCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dR
QUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1EKQUFBZ2pRQUJBQURT
Q0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFB
TklJRUFBQQpJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFB
UUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOCkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdq
UUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUIKQUFEU0NCQUFB
Q0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVB
QUFJSTBBQVFBQQowZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBn
Z1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJCkVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFB
RFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUEKQUNDTkFB
RUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkw
QUFRQUEwZ2dRQUFBZwpqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwdncvQ0dl
TlpXdnJsbVlBQUFBQVNVVk9SSzVDWUlJPQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14300</attachid>
            <date>2007-05-01 13:54:08 -0700</date>
            <delta_ts>2007-05-01 15:12:52 -0700</delta_ts>
            <desc>patch incorporating Mitz&apos;s feedback, passes layout tests</desc>
            <filename>CanvasSizePatch.txt</filename>
            <type>text/plain</type>
            <size>34094</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMjA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDctMDUtMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM1NTkKKyAgICAgICAgICBSRUdSRVNTSU9OOiBDYW52YXMgYXNwZWN0IHJhdGlvIGlzIGluY29y
cmVjdAorCisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxh
eW91dC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvY2Fu
dmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtc2l6ZS1jaGFuZ2UtYWZ0
ZXItbGF5b3V0Lmh0bWw6IEFkZGVkLgorCiAyMDA3LTA1LTAxICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQtZXhwZWN0ZWQu
Y2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNp
emUtY2hhbmdlLWFmdGVyLWxheW91dC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQt
ZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2IxYmRhOTdjNTgw
Yjg5OTU2ZmYzMzk5NjhmZjEwNjE1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2l6ZS1jaGFuZ2UtYWZ0ZXItbGF5b3V0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAg
ICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMzMHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDMzMDogIlRoZXNlIHNob3VsZCBiZSB0d28gaWRlbnRpY2FsIGdyZWVuIGhvbGxv
dyBzcXVhcmVzOiIKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDM0KSBzaXpl
IDc4NHg2MAorICAgICAgICBSZW5kZXJIVE1MQ2FudmFzIHtDQU5WQVN9IGF0ICgwLDApIHNpemUg
NTZ4NTYgW2JvcmRlcjogKDNweCBzb2xpZCAjMDA4MDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg1Niw0Mikgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDU2LDQy
KSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVySFRNTENhbnZhcyB7Q0FOVkFTfSBhdCAoNjAs
MCkgc2l6ZSA1Nng1NiBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDgwMDApXQorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtc2l6ZS1jaGFuZ2UtYWZ0ZXItbGF5b3V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNpemUtY2hhbmdlLWFm
dGVyLWxheW91dC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACis8c3R5bGU+Cisg
ICAgY2FudmFzIHsgYm9yZGVyOiBzb2xpZCBncmVlbjsgfQorPC9zdHlsZT4KKzxwPgorICAgIFRo
ZXNlIHNob3VsZCBiZSB0d28gaWRlbnRpY2FsIGdyZWVuIGhvbGxvdyBzcXVhcmVzOgorPC9wPgor
PGNhbnZhcyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0iY2Fu
dmFzIj48L2NhbnZhcz4KKzxzY3JpcHQ+CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Cisg
ICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICBj
YW52YXMuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIDUwKTsKKyAgICBjYW52YXMuc2V0QXR0cmlidXRl
KCJoZWlnaHQiLCA1MCk7Cis8L3NjcmlwdD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTIwOCkKKysrIFdlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzkgQEAKKzIwMDctMDUtMDEgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIC0gZml4IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNTU5CisgICAgICAgICAgUkVHUkVTU0lPTjogQ2FudmFzIGFzcGVjdCByYXRp
byBpcyBpbmNvcnJlY3QKKworICAgICAgICAtIHJlbW92ZSBpbnRyaW5zaWNXaWR0aC9IZWlnaHQg
ZnVuY3Rpb25zIGZyb20gUmVuZGVyT2JqZWN0CisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMv
Y2FudmFzLXNpemUtY2hhbmdlLWFmdGVyLWxheW91dC5odG1sCisKKyAgICAgICAgKiBodG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcik6IFJlbW92ZWQgY29kZSB0byBzZXQKKyAgICAgICAgdGhlIGludHJp
bnNpYyBzaXplLCBiZWNhdXNlIHRoZSByZW5kZXJlciBub3cgdGFrZXMgY2FyZSBvZiB0aGlzCisg
ICAgICAgIGluIGl0cyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpyZXNldCk6IEluc3RlYWQgb2YgY2FsbGluZyB0aGUKKyAgICAgICAgc2V0SW50cmlu
c2ljV2lkdGgvSGVpZ2h0IGZ1bmN0aW9ucywgY2FsbCBjYW52YXNTaXplQ2hhbmdlZCwgd2hpY2gK
KyAgICAgICAgdGFrZXMgY2FyZSBvZiBsYXlvdXQsIGJ1dCBvbmx5IGlmIHRoZSBzaXplIGFjdHVh
bGx5IGNoYW5nZWQuIEFsc28KKyAgICAgICAgY2FsbCByZXBhaW50IGlmIHRoZSBjb250ZW50cyBv
ZiB0aGUgY2FudmFzIGNoYW5nZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQXBwbGV0
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckFwcGxldC5jcHA6IChXZWJDb3JlOjpSZW5k
ZXJBcHBsZXQ6OmludHJpbnNpY1NpemUpOgorICAgICAgICBPdmVycmlkZSB0aGUgbmV3IGludHJp
bnNpY1NpemUgZnVuY3Rpb24uIFRoaXMgb3ZlcnJpZGUgc3RpbGwgZG9lc24ndAorICAgICAgICBt
YWtlIHNlbnNlLCBzbyBsZWZ0IGEgRklYTUUgaW4gaGVyZS4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCb3guaDogQWRkZWQgYW4gaW50cmluc2ljU2l6ZSBmdW5jdGlvbiBoZXJlIHRvIHJl
cGxhY2UKKyAgICAgICAgdGhlIGludHJpbnNpY1dpZHRoL0hlaWdodCBmdW5jdGlvbnMgcmVtb3Zl
ZCBmcm9tIFJlbmRlck9iamVjdC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2FsY1JlcGxhY2VkV2lkdGhVc2luZyk6IFVz
ZSBpbnRyaW5zaWNTaXplIGluc3RlYWQKKyAgICAgICAgb2YgaW50cmluc2ljV2lkdGguCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNhbGNSZXBsYWNlZEhlaWdodFVzaW5nKTogRGl0dG8s
IGJ1dCBmb3IgaGVpZ2h0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMu
aDogQ2hhbmdlZCB0aGUgY29uc3RydWN0b3IgcGFyYW1ldGVyIHRvIGJlCisgICAgICAgIGFuIEhU
TUxDYW52YXNFbGVtZW50KiBpbnN0ZWFkIG9mIE5vZGUqLiBBbHNvIGFkZGVkIGEgY2FudmFzU2l6
ZUNoYW5nZWQKKyAgICAgICAgZnVuY3Rpb24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhU
TUxDYW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6UmVuZGVy
SFRNTENhbnZhcyk6IFBhc3MgYW4gaW5pdGlhbCBpbnRyaW5zaWMKKyAgICAgICAgc2l6ZSBiYXNl
ZCBvbiB0aGUgY3VycmVudCBzaXplIG9mIHRoZSBjYW52YXMgZWxlbWVudC4gVGhpcyBpcyBub3cg
dGhlCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSByZW5kZXJlciBhbmQgdGhlIERPTSBl
bGVtZW50IGNhbGxzIHRoZSBjYW52YXNTaXplQ2hhbmdlZAorICAgICAgICBmdW5jdGlvbiB3aGVu
IHRoZSBzaXplIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpw
YWludCk6IFJlbW92ZWQgY2hlY2tzIG9mIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50LAorICAgICAg
ICBhbmQgdXNlZCB0aGUgbm9kZSgpIGZ1bmN0aW9uIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSB0byB3
b3JyeSBhYm91dCB0aGUgYW5vbnltb3VzCisgICAgICAgIGNhc2UgaW4gdGhpcyBjbGFzcy4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxDYW52YXM6OmNhbnZhc1NpemVDaGFuZ2VkKTogQWRk
ZWQuIENoYW5nZXMgdGhlIHNpemUgYW5kCisgICAgICAgIHRoZW4gY2FsbHMgc2V0TmVlZHNMYXlv
dXQgYW5kIHNldFByZWZXaWR0aHNEaXJ0eSBhcyBuZWVkZWQuIEkgYmFzZWQgdGhlIGxvZ2ljCisg
ICAgICAgIGhlcmUgb24gY2FyZWZ1bCByZWFkaW5nIG9mIFJlbmRlckltYWdlOjppbWFnZUNoYW5n
ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVySW1hZ2U6OlJlbmRlckltYWdlKTogUGFzcyBhIGRlZmF1bHQgaW50cmluc2lj
IHNpemUgb2YgMCwwCisgICAgICAgIGluc3RlYWQgb2YgY2FsbGluZyBzZXRJbnRyaW5zaWNXaWR0
aC9IZWlnaHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6c2V0SW1hZ2VTaXplRm9y
QWx0VGV4dCk6IENhbGwgdGhlIG5ldyBpbnRyaW5zaWMgc2l6ZQorICAgICAgICBmdW5jdGlvbnMg
aW5zdGVhZCBvZiB0aGUgd2lkdGgvaGVpZ2h0IG9uZXMuIFNpbXBsaWZpZXMgdGhlIGxvZ2ljIHNp
bmNlIHdlCisgICAgICAgIGhhbmRsZSBib3RoIGRpbWVuc2lvbnMgYXQgb25jZS4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckltYWdlOjppbWFnZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckltYWdlOjpsYXlvdXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckltYWdlOjpjYWxjQXNwZWN0UmF0aW9XaWR0aCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVySW1hZ2U6OmNhbGNBc3BlY3RSYXRpb0hlaWdodCk6IERpdHRvLgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOiBSZW1vdmVkIGludHJpbnNpY1dpZHRoL0hlaWdo
dCB2aXJ0dWFsIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5oOiBSZXBsYWNlZCBpbnRyaW5zaWNXaWR0aCwgaW50cmluc2ljSGVpZ2h0LAorICAgICAgICBz
ZXRJbnRyaW5zaWNXaWR0aCwgc2V0SW50cmluc2ljSGVpZ2h0LCBtX2ludHJpbnNpY1dpZHRoLCBh
bmQgbV9pbnRyaW5zaWNIZWlnaHQKKyAgICAgICAgd2l0aCBpbnRyaW5zaWNTaXplLCBzZXRJbnRy
aW5zaWNTaXplLCBhbmQgbV9pbnRyaW5zaWNTaXplLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6UmVuZGVy
UmVwbGFjZWQpOiBBZGRlZCBhIHNlY29uZCBjb250cnVjdG9yIHRoYXQgdGFrZXMKKyAgICAgICAg
YW4gaW50cmluc2ljIHNpemUgcGFyYW1ldGVyLiBBbHNvIHVwZGF0ZWQgY29uc3RydWN0b3Igc2lu
Y2UgdGhlIGludHJpbnNpYyBzaXplCisgICAgICAgIGlzIG5vdyBhbiBJbnRTaXplIGluc3RlYWQg
b2YgdHdvIGludGVnZXJzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmludHJp
bnNpY1NpemUpOiBBZGRlZC4gTm8gcG9pbnQgaW4gbWFraW5nIHRoaXMgaW5saW5lCisgICAgICAg
IGJlY2F1c2UgaXQncyBhIHZpcnR1YWwgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJSZXBsYWNlZDo6c2V0SW50cmluc2ljU2l6ZSk6IEFkZGVkLiBEaWRuJ3QgbWFrZSB0aGlzIGlu
bGluZSwKKyAgICAgICAgcGFydGx5IGJlY2F1c2UgaW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCB3YW50
IHRoaXMgdG8gYmUgbW9yZSB0aGFuIGp1c3QgYSBzaW1wbGUKKyAgICAgICAgc2V0dGVyIGZ1bmN0
aW9uLCBmYWN0b3JpbmcgaW4gY29tbW9uIGNvZGUgdXNlZCBpbiBib3RoIFJlbmRlckltYWdlIGFu
ZAorICAgICAgICBSZW5kZXJIVE1MQ2FudmFzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
cldpZGdldC5oOiBSZW1vdmVkIGEgc3RyYXkgdXNpbmcgZGVjbGFyYXRpb24gdGhhdCB3YXNuJ3Qg
bmVlZGVkLgorCiAyMDA3LTA1LTAxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAkocmV2aXNpb24gMjEyMDcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCwxMCArOTgsNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVSCiB7CiAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkgJiYg
ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+aXNKYXZhU2NyaXB0RW5hYmxlZCgpKSB7
CiAgICAgICAgIG1fcmVuZGVyZXJJc0NhbnZhcyA9IHRydWU7Ci0gICAgICAgIFJlbmRlckhUTUxD
YW52YXMqIHIgPSBuZXcgKGFyZW5hKSBSZW5kZXJIVE1MQ2FudmFzKHRoaXMpOwotICAgICAgICBy
LT5zZXRJbnRyaW5zaWNXaWR0aCh3aWR0aCgpKTsKLSAgICAgICAgci0+c2V0SW50cmluc2ljSGVp
Z2h0KGhlaWdodCgpKTsKLSAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIHJldHVybiBuZXcgKGFy
ZW5hKSBSZW5kZXJIVE1MQ2FudmFzKHRoaXMpOwogICAgIH0KIAogICAgIG1fcmVuZGVyZXJJc0Nh
bnZhcyA9IGZhbHNlOwpAQCAtMTQ3LDIxICsxNDQsMjQgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVu
dDo6cmVzZXQoKQogICAgIGludCBoID0gZ2V0QXR0cmlidXRlKGhlaWdodEF0dHIpLnRvSW50KCZv
ayk7CiAgICAgaWYgKCFvaykKICAgICAgICAgaCA9IGRlZmF1bHRIZWlnaHQ7Ci0gICAgbV9zaXpl
ID0gSW50U2l6ZSh3LCBoKTsKIAotICAgIGlmIChSZW5kZXJPYmplY3QqIHJvID0gcmVuZGVyZXIo
KSkKLSAgICAgICAgaWYgKG1fcmVuZGVyZXJJc0NhbnZhcykgewotICAgICAgICAgICAgUmVuZGVy
SFRNTENhbnZhcyogciA9IHN0YXRpY19jYXN0PFJlbmRlckhUTUxDYW52YXMqPihybyk7Ci0gICAg
ICAgICAgICByLT5zZXRJbnRyaW5zaWNXaWR0aCh3KTsKLSAgICAgICAgICAgIHItPnNldEludHJp
bnNpY0hlaWdodChoKTsKLSAgICAgICAgICAgIHItPnJlcGFpbnQoKTsKLSAgICAgICAgfQorICAg
IEludFNpemUgb2xkU2l6ZSA9IG1fc2l6ZTsKKyAgICBtX3NpemUgPSBJbnRTaXplKHcsIGgpOwog
CisgICAgYm9vbCBoYWREcmF3aW5nQ29udGV4dCA9IG1fY3JlYXRlZERyYXdpbmdDb250ZXh0Owog
ICAgIG1fY3JlYXRlZERyYXdpbmdDb250ZXh0ID0gZmFsc2U7CiAgICAgZmFzdEZyZWUobV9kYXRh
KTsKICAgICBtX2RhdGEgPSAwOwogICAgIGRlbGV0ZSBtX2RyYXdpbmdDb250ZXh0OwogICAgIG1f
ZHJhd2luZ0NvbnRleHQgPSAwOworCisgICAgaWYgKFJlbmRlck9iamVjdCogcm8gPSByZW5kZXJl
cigpKQorICAgICAgICBpZiAobV9yZW5kZXJlcklzQ2FudmFzKSB7CisgICAgICAgICAgICBpZiAo
b2xkU2l6ZSAhPSBtX3NpemUpCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVySFRN
TENhbnZhcyo+KHJvKS0+Y2FudmFzU2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIGlmIChoYWRE
cmF3aW5nQ29udGV4dCkKKyAgICAgICAgICAgICAgICByby0+cmVwYWludCgpOworICAgICAgICB9
CiB9CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogcCwg
Y29uc3QgSW50UmVjdCYgcikKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcAkocmV2
aXNpb24gMjEyMDcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBcHBsZXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NywyMCArNDcsMTMgQEAgUmVuZGVyQXBwbGV0Ojp+UmVuZGVyQXBwbGV0
KCkKIHsKIH0KIAotaW50IFJlbmRlckFwcGxldDo6aW50cmluc2ljV2lkdGgoKSBjb25zdAorSW50
U2l6ZSBSZW5kZXJBcHBsZXQ6OmludHJpbnNpY1NpemUoKSBjb25zdAogewotICAgIC8vIEZJWE1F
OiBUaGlzIGRvZXNuJ3QgbWFrZSBzZW5zZS4KLSAgICAvLyBBZnRlciBzb21lIHJlc2VhcmNoIHdl
IGNhbiBwcm9iYWJseSByZW1vdmUgdGhpcyBlbnRpcmVseSBhbmQganVzdCBjYWxsCi0gICAgLy8g
c2V0SW50cmluc2ljV2lkdGggaW4gdGhlIGNvbnN0cnVjdG9yLgotICAgIHJldHVybiBtX3dpZGdl
dCA/IDUwIDogMTUwOwotfQotCi1pbnQgUmVuZGVyQXBwbGV0OjppbnRyaW5zaWNIZWlnaHQoKSBj
b25zdAotewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgbWFrZSBzZW5zZS4KLSAgICAvLyBB
ZnRlciBzb21lIHJlc2VhcmNoIHdlIGNhbiBwcm9iYWJseSByZW1vdmUgdGhpcyBlbnRpcmVseSBh
bmQganVzdCBjYWxsCi0gICAgLy8gc2V0SW50cmluc2ljSGVpZ2h0IGluIHRoZSBjb25zdHJ1Y3Rv
ci4KLSAgICByZXR1cm4gbV93aWRnZXQgPyA1MCA6IDE1MDsKKyAgICAvLyBGSVhNRTogVGhpcyBk
b2Vzbid0IG1ha2Ugc2Vuc2UuIFdlIGNhbid0IGp1c3Qgc3RhcnQgcmV0dXJuaW5nCisgICAgLy8g
YSBkaWZmZXJlbnQgc2l6ZSBvbmNlIHdlJ3ZlIGNyZWF0ZWQgdGhlIHdpZGdldCBhbmQgZXhwZWN0
CisgICAgLy8gbGF5b3V0IGFuZCBzaXppbmcgdG8gYmUgY29ycmVjdC4gV2Ugc2hvdWxkIHJlbW92
ZSB0aGlzIGFuZAorICAgIC8vIHBhc3MgdGhlIGFwcHJvcHJpYXRlIGludHJpbnNpYyBzaXplIGlu
IHRoZSBjb25zdHJ1Y3Rvci4KKyAgICByZXR1cm4gbV93aWRnZXQgPyBJbnRTaXplKDUwLCA1MCkg
OiBJbnRTaXplKDE1MCwgMTUwKTsKIH0KIAogdm9pZCBSZW5kZXJBcHBsZXQ6OmNyZWF0ZVdpZGdl
dElmTmVjZXNzYXJ5KCkKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oCShyZXZpc2lvbiAy
MTIwNykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDggKzEsNiBAQAogLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBIVE1MIHdp
ZGdldCBmb3IgS0RFLgotICoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MSw4ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCBib29sIGlzQXBwbGV0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKLSAgICAgICAgdmlydHVhbCBpbnQg
aW50cmluc2ljV2lkdGgoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBpbnQgaW50cmluc2ljSGVp
Z2h0KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgSW50U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29u
c3Q7CiAKICAgICAgICAgdm9pZCBjcmVhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOwogCkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxMCw3ICsxNDEwLDcgQEAgaW50
IFJlbmRlckJveDo6Y2FsY1JlcGxhY2VkV2lkdGhVc2luZyhMZQogICAgICAgICB9CiAgICAgICAg
IC8vIGZhbGwgdGhyb3VnaAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGlu
dHJpbnNpY1dpZHRoKCk7CisgICAgICAgICAgICByZXR1cm4gaW50cmluc2ljU2l6ZSgpLndpZHRo
KCk7CiAgICAgIH0KICB9CiAKQEAgLTE0NDksNyArMTQ0OSw3IEBAIGludCBSZW5kZXJCb3g6OmNh
bGNSZXBsYWNlZEhlaWdodFVzaW5nKEwKICAgICAgICAgICAgIHJldHVybiBjYWxjQ29udGVudEJv
eEhlaWdodChoZWlnaHQuY2FsY1ZhbHVlKGNiLT5hdmFpbGFibGVIZWlnaHQoKSkpOwogICAgICAg
ICB9CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gaW50cmluc2ljSGVpZ2h0
KCk7CisgICAgICAgICAgICByZXR1cm4gaW50cmluc2ljU2l6ZSgpLmhlaWdodCgpOwogICAgIH0K
IH0KIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsxMTIsOCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdHlsZSgpLT5odG1sSGFja3MoKSAmJiBzdHlsZSgp
LT5oZWlnaHQoKS5pc0F1dG8oKSAmJiAhaXNGbG9hdGluZ09yUG9zaXRpb25lZCgpICYmIChpc1Jv
b3QoKSB8fCBpc0JvZHkoKSk7CiAgICAgfQogCisgICAgdmlydHVhbCBJbnRTaXplIGludHJpbnNp
Y1NpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KKwogICAgIC8vIFdoZXRoZXIgb3Ig
bm90IHRoZSBlbGVtZW50IHNocmlua3MgdG8gaXRzIGludHJpbnNpYyB3aWR0aCAocmF0aGVyIHRo
YW4gZmlsbGluZyB0aGUgd2lkdGgKICAgICAvLyBvZiBhIGNvbnRhaW5pbmcgYmxvY2spLiAgSFRN
TDQgYnV0dG9ucywgPHNlbGVjdD5zLCA8aW5wdXQ+cywgbGVnZW5kcywgYW5kIGZsb2F0aW5nL2Nv
bXBhY3QgZWxlbWVudHMgZG8gdGhpcy4KICAgICBib29sIHNpemVzVG9JbnRyaW5zaWNXaWR0aChX
aWR0aFR5cGUpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZh
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5j
cHAJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZh
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsOCArMzYsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLVJl
bmRlckhUTUxDYW52YXM6OlJlbmRlckhUTUxDYW52YXMoTm9kZSogbm9kZSkKLSAgICA6IFJlbmRl
clJlcGxhY2VkKG5vZGUpCitSZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1MQ2FudmFzKEhUTUxD
YW52YXNFbGVtZW50KiBlbGVtZW50KQorICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgZWxl
bWVudC0+c2l6ZSgpKQogewogfQogCkBAIC02OCw5ICs2OCw4IEBAIHZvaWQgUmVuZGVySFRNTENh
bnZhczo6cGFpbnQoUGFpbnRJbmZvJiAKICAgICAgICAgZHJhd1NlbGVjdGlvblRpbnQgPSBmYWxz
ZTsKICAgICB9CiAKLSAgICBpZiAoZWxlbWVudCgpICYmIGVsZW1lbnQoKS0+aGFzVGFnTmFtZShj
YW52YXNUYWcpKQotICAgICAgICBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KGVsZW1l
bnQoKSktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LAotICAgICAgICAgICAgSW50UmVjdCh4ICsg
Ym9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgeSArIGJvcmRlclRvcCgpICsgcGFkZGluZ1Rv
cCgpLCBjb250ZW50V2lkdGgoKSwgY29udGVudEhlaWdodCgpKSk7CisgICAgc3RhdGljX2Nhc3Q8
SFRNTENhbnZhc0VsZW1lbnQqPihub2RlKCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwKKyAg
ICAgICAgSW50UmVjdCh4ICsgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgeSArIGJvcmRl
clRvcCgpICsgcGFkZGluZ1RvcCgpLCBjb250ZW50V2lkdGgoKSwgY29udGVudEhlaWdodCgpKSk7
CiAKICAgICBpZiAoZHJhd1NlbGVjdGlvblRpbnQpCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0
LT5maWxsUmVjdChzZWxlY3Rpb25SZWN0KCksIHNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpKTsK
QEAgLTk1LDQgKzk0LDI1IEBAIHZvaWQgUmVuZGVySFRNTENhbnZhczo6bGF5b3V0KCkKICAgICBz
ZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKK3ZvaWQgUmVuZGVySFRNTENhbnZhczo6Y2FudmFz
U2l6ZUNoYW5nZWQoKQoreworICAgIEludFNpemUgc2l6ZSA9IHN0YXRpY19jYXN0PEhUTUxDYW52
YXNFbGVtZW50Kj4obm9kZSgpKS0+c2l6ZSgpOworICAgIGlmIChzaXplID09IGludHJpbnNpY1Np
emUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2V0SW50cmluc2ljU2l6ZShzaXplKTsKKwor
ICAgIGlmICghcHJlZldpZHRoc0RpcnR5KCkpCisgICAgICAgIHNldFByZWZXaWR0aHNEaXJ0eSh0
cnVlKTsKKworICAgIEludFNpemUgb2xkU2l6ZSA9IEludFNpemUobV93aWR0aCwgbV9oZWlnaHQp
OworICAgIGNhbGNXaWR0aCgpOworICAgIGNhbGNIZWlnaHQoKTsKKyAgICBpZiAob2xkU2l6ZSA9
PSBJbnRTaXplKG1fd2lkdGgsIG1faGVpZ2h0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFzZWxmTmVlZHNMYXlvdXQoKSkKKyAgICAgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhU
TUxDYW52YXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2Fu
dmFzLmgJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENh
bnZhcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDE0ICszMCwx
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICBjbGFzcyBIVE1MQ2FudmFzRWxlbWVu
dDsKKwogICAgIGNsYXNzIFJlbmRlckhUTUxDYW52YXMgOiBwdWJsaWMgUmVuZGVyUmVwbGFjZWQg
ewogICAgIHB1YmxpYzoKLSAgICAgICAgUmVuZGVySFRNTENhbnZhcyhOb2RlKik7CisgICAgICAg
IFJlbmRlckhUTUxDYW52YXMoSFRNTENhbnZhc0VsZW1lbnQqKTsKIAogICAgICAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVySFRNTENhbnZh
cyI7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHR4LCBp
bnQgdHkpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisKKyAgICAgICAgdm9pZCBj
YW52YXNTaXplQ2hhbmdlZCgpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMiArNDYs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAog
UmVuZGVySW1hZ2U6OlJlbmRlckltYWdlKE5vZGUqIG5vZGUpCi0gICAgOiBSZW5kZXJSZXBsYWNl
ZChub2RlKQorICAgIDogUmVuZGVyUmVwbGFjZWQobm9kZSwgSW50U2l6ZSgwLCAwKSkKICAgICAs
IG1fY2FjaGVkSW1hZ2UoMCkKICAgICAsIG1faXNBbm9ueW1vdXNJbWFnZShmYWxzZSkKIHsKLSAg
ICBzZXRJbnRyaW5zaWNXaWR0aCgwKTsKLSAgICBzZXRJbnRyaW5zaWNIZWlnaHQoMCk7CiAgICAg
dXBkYXRlQWx0VGV4dCgpOwogfQogCkBAIC0xMDksMTggKzEwNywxMiBAQCBib29sIFJlbmRlcklt
YWdlOjpzZXRJbWFnZVNpemVGb3JBbHRUZXh0CiAgICAgICAgIGltYWdlSGVpZ2h0ID0gbWF4KGlt
YWdlSGVpZ2h0LCBtaW4oZm9udC5oZWlnaHQoKSwgbWF4QWx0VGV4dEhlaWdodCkpOwogICAgIH0K
ICAgCi0gICAgYm9vbCBpbWFnZVNpemVDaGFuZ2VkID0gZmFsc2U7Ci0gIAotICAgIGlmIChpbWFn
ZVdpZHRoICE9IGludHJpbnNpY1dpZHRoKCkpIHsKLSAgICAgICAgc2V0SW50cmluc2ljV2lkdGgo
aW1hZ2VXaWR0aCk7Ci0gICAgICAgIGltYWdlU2l6ZUNoYW5nZWQgPSB0cnVlOwotICAgIH0KLSAg
ICBpZiAoaW1hZ2VIZWlnaHQgIT0gaW50cmluc2ljSGVpZ2h0KCkpIHsKLSAgICAgICAgc2V0SW50
cmluc2ljSGVpZ2h0KGltYWdlSGVpZ2h0KTsKLSAgICAgICAgaW1hZ2VTaXplQ2hhbmdlZCA9IHRy
dWU7Ci0gICAgfQotICAKLSAgICByZXR1cm4gaW1hZ2VTaXplQ2hhbmdlZDsKKyAgICBJbnRTaXpl
IGltYWdlU2l6ZSA9IEludFNpemUoaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpOworICAgIGlmIChp
bWFnZVNpemUgPT0gaW50cmluc2ljU2l6ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBzZXRJbnRyaW5zaWNTaXplKGltYWdlU2l6ZSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZv
aWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSogbmV3SW1hZ2UpCkBAIC0x
NDMsMTEgKzEzNSw5IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChDYWNoZWRJbWEK
ICAgICBib29sIGVuc3VyZUxheW91dCA9IGZhbHNlOwogCiAgICAgLy8gSW1hZ2UgZGltZW5zaW9u
cyBoYXZlIGJlZW4gY2hhbmdlZCwgc2VlIHdoYXQgbmVlZHMgdG8gYmUgZG9uZQotICAgIGlmIChu
ZXdJbWFnZS0+aW1hZ2VTaXplKCkud2lkdGgoKSAhPSBpbnRyaW5zaWNXaWR0aCgpIHx8IG5ld0lt
YWdlLT5pbWFnZVNpemUoKS5oZWlnaHQoKSAhPSBpbnRyaW5zaWNIZWlnaHQoKSB8fCBpbWFnZVNp
emVDaGFuZ2VkKSB7Ci0gICAgICAgIGlmICghbmV3SW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkgewot
ICAgICAgICAgICAgc2V0SW50cmluc2ljV2lkdGgobmV3SW1hZ2UtPmltYWdlU2l6ZSgpLndpZHRo
KCkpOwotICAgICAgICAgICAgc2V0SW50cmluc2ljSGVpZ2h0KG5ld0ltYWdlLT5pbWFnZVNpemUo
KS5oZWlnaHQoKSk7Ci0gICAgICAgIH0KKyAgICBpZiAobmV3SW1hZ2UtPmltYWdlU2l6ZSgpICE9
IGludHJpbnNpY1NpemUoKSB8fCBpbWFnZVNpemVDaGFuZ2VkKSB7CisgICAgICAgIGlmICghbmV3
SW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIHNldEludHJpbnNpY1NpemUobmV3
SW1hZ2UtPmltYWdlU2l6ZSgpKTsKIAogICAgICAgICAvLyBJbiB0aGUgY2FzZSBvZiBnZW5lcmF0
ZWQgaW1hZ2UgY29udGVudCB1c2luZyA6YmVmb3JlLzphZnRlciwgd2UgbWlnaHQgbm90IGJlIGlu
IHRoZQogICAgICAgICAvLyByZW5kZXIgdHJlZSB5ZXQuICBJbiB0aGF0IGNhc2UsIHdlIGRvbid0
IG5lZWQgdG8gd29ycnkgYWJvdXQgY2hlY2sgZm9yIGxheW91dCwgc2luY2Ugd2UnbGwgZ2V0IGEK
QEAgLTMxMyw3ICszMDMsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpsYXlvdXQoKQogICAgIH0KIAog
ICAgIC8vIG1pbmltdW0gaGVpZ2h0Ci0gICAgbV9oZWlnaHQgPSBtX2NhY2hlZEltYWdlICYmIG1f
Y2FjaGVkSW1hZ2UtPmVycm9yT2NjdXJyZWQoKSA/IGludHJpbnNpY0hlaWdodCgpIDogMDsKKyAg
ICBtX2hlaWdodCA9IG1fY2FjaGVkSW1hZ2UgJiYgbV9jYWNoZWRJbWFnZS0+ZXJyb3JPY2N1cnJl
ZCgpID8gaW50cmluc2ljU2l6ZSgpLmhlaWdodCgpIDogMDsKIAogICAgIGNhbGNXaWR0aCgpOwog
ICAgIGNhbGNIZWlnaHQoKTsKQEAgLTQxNiwyMCArNDA2LDIyIEBAIGludCBSZW5kZXJJbWFnZTo6
Y2FsY1JlcGxhY2VkSGVpZ2h0KCkgY28KIAogaW50IFJlbmRlckltYWdlOjpjYWxjQXNwZWN0UmF0
aW9XaWR0aCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpbnRyaW5zaWNIZWlnaHQoKSkKKyAgICBJbnRT
aXplIHNpemUgPSBpbnRyaW5zaWNTaXplKCk7CisgICAgaWYgKCFzaXplLmhlaWdodCgpKQogICAg
ICAgICByZXR1cm4gMDsKICAgICBpZiAoIW1fY2FjaGVkSW1hZ2UgfHwgbV9jYWNoZWRJbWFnZS0+
ZXJyb3JPY2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gaW50cmluc2ljV2lkdGgoKTsgLy8gRG9u
J3QgYm90aGVyIHNjYWxpbmcuCi0gICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjYWxjUmVwbGFj
ZWRIZWlnaHQoKSAqIGludHJpbnNpY1dpZHRoKCkgLyBpbnRyaW5zaWNIZWlnaHQoKTsKKyAgICAg
ICAgcmV0dXJuIHNpemUud2lkdGgoKTsgLy8gRG9uJ3QgYm90aGVyIHNjYWxpbmcuCisgICAgcmV0
dXJuIFJlbmRlclJlcGxhY2VkOjpjYWxjUmVwbGFjZWRIZWlnaHQoKSAqIHNpemUud2lkdGgoKSAv
IHNpemUuaGVpZ2h0KCk7CiB9CiAKIGludCBSZW5kZXJJbWFnZTo6Y2FsY0FzcGVjdFJhdGlvSGVp
Z2h0KCkgY29uc3QKIHsKLSAgICBpZiAoIWludHJpbnNpY1dpZHRoKCkpCisgICAgSW50U2l6ZSBz
aXplID0gaW50cmluc2ljU2l6ZSgpOworICAgIGlmICghc2l6ZS53aWR0aCgpKQogICAgICAgICBy
ZXR1cm4gMDsKICAgICBpZiAoIW1fY2FjaGVkSW1hZ2UgfHwgbV9jYWNoZWRJbWFnZS0+ZXJyb3JP
Y2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gaW50cmluc2ljSGVpZ2h0KCk7IC8vIERvbid0IGJv
dGhlciBzY2FsaW5nLgotICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y2FsY1JlcGxhY2VkV2lk
dGgoKSAqIGludHJpbnNpY0hlaWdodCgpIC8gaW50cmluc2ljV2lkdGgoKTsKKyAgICAgICAgcmV0
dXJuIHNpemUuaGVpZ2h0KCk7IC8vIERvbid0IGJvdGhlciBzY2FsaW5nLgorICAgIHJldHVybiBS
ZW5kZXJSZXBsYWNlZDo6Y2FsY1JlcGxhY2VkV2lkdGgoKSAqIHNpemUuaGVpZ2h0KCkgLyBzaXpl
LndpZHRoKCk7CiB9CiAKIHZvaWQgUmVuZGVySW1hZ2U6OmNhbGNQcmVmV2lkdGhzKCkKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiAyMTIwNykKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MzAsMTAgKzUzMCw2IEBA
IHB1YmxpYzoKICAgICBpbnQgY29udGVudFdpZHRoKCkgY29uc3QgeyByZXR1cm4gY2xpZW50V2lk
dGgoKSAtIHBhZGRpbmdMZWZ0KCkgLSBwYWRkaW5nUmlnaHQoKTsgfQogICAgIGludCBjb250ZW50
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gY2xpZW50SGVpZ2h0KCkgLSBwYWRkaW5nVG9wKCkgLSBw
YWRkaW5nQm90dG9tKCk7IH0KIAotICAgIC8vIGludHJpbnNpYyBleHRlbmQgb2YgcmVwbGFjZWQg
ZWxlbWVudHMuIHVuZGVmaW5lZCBvdGhlcndpc2UKLSAgICB2aXJ0dWFsIGludCBpbnRyaW5zaWNX
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCBpbnRyaW5zaWNIZWln
aHQoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0KICAgICAvLyB1c2VkIGJ5IGZsZXhpYmxlIGJveGVz
IHRvIGltcG9zZSBhIGZsZXhlZCB3aWR0aC9oZWlnaHQgb3ZlcnJpZGUKICAgICB2aXJ0dWFsIGlu
dCBvdmVycmlkZVNpemUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgb3Zl
cnJpZGVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHAJKHJldmlzaW9uIDIxMjA3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsNyBAQAotLyoqCi0gKiBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgSFRNTCB3aWRnZXQgZm9yIEtERS4KLSAqCisvKgogICog
Q29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNiwyIDAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTIxLDYgKzE5LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNB
LgogICoKICAqLworCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVwbGFj
ZWQuaCIKIApAQCAtMzMsOCArMzIsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJS
ZXBsYWNlZDo6UmVuZGVyUmVwbGFjZWQoTm9kZSogbm9kZSkKICAgICA6IFJlbmRlckJveChub2Rl
KQotICAgICwgbV9pbnRyaW5zaWNXaWR0aCgzMDApCi0gICAgLCBtX2ludHJpbnNpY0hlaWdodCgx
NTApCisgICAgLCBtX2ludHJpbnNpY1NpemUoMzAwLCAxNTApCisgICAgLCBtX3NlbGVjdGlvblN0
YXRlKFNlbGVjdGlvbk5vbmUpCit7CisgICAgc2V0UmVwbGFjZWQodHJ1ZSk7Cit9CisKK1JlbmRl
clJlcGxhY2VkOjpSZW5kZXJSZXBsYWNlZChOb2RlKiBub2RlLCBjb25zdCBJbnRTaXplJiBpbnRy
aW5zaWNTaXplKQorICAgIDogUmVuZGVyQm94KG5vZGUpCisgICAgLCBtX2ludHJpbnNpY1NpemUo
aW50cmluc2ljU2l6ZSkKICAgICAsIG1fc2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uTm9uZSkKIHsK
ICAgICBzZXRSZXBsYWNlZCh0cnVlKTsKQEAgLTIwOSw0ICsyMTUsMTQgQEAgYm9vbCBSZW5kZXJS
ZXBsYWNlZDo6aXNTZWxlY3RlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitJbnRT
aXplIFJlbmRlclJlcGxhY2VkOjppbnRyaW5zaWNTaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9pbnRyaW5zaWNTaXplOworfQorCit2b2lkIFJlbmRlclJlcGxhY2VkOjpzZXRJbnRyaW5zaWNT
aXplKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgbV9pbnRyaW5zaWNTaXplID0gc2l6ZTsK
K30KKwogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCShyZXZpc2lvbiAyMTIw
NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBs
ZSBJbmMuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDYgKzI5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgUmVuZGVyUmVwbGFjZWQgOiBwdWJsaWMgUmVuZGVyQm94IHsKIHB1Ymxp
YzoKICAgICBSZW5kZXJSZXBsYWNlZChOb2RlKik7CisgICAgUmVuZGVyUmVwbGFjZWQoTm9kZSos
IGNvbnN0IEludFNpemUmIGludHJpbnNpY1NpemUpOwogCiAgICAgdmlydHVhbCBjb25zdCBjaGFy
KiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclJlcGxhY2VkIjsgfQogCkBAIC0z
OSwxMSArNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZv
JiwgaW50IHR4LCBpbnQgdHkpID0gMDsKIAotICAgIHZpcnR1YWwgaW50IGludHJpbnNpY1dpZHRo
KCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNXaWR0aDsgfQotICAgIHZpcnR1YWwgaW50IGlu
dHJpbnNpY0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faW50cmluc2ljSGVpZ2h0OyB9Ci0KLSAg
ICB2b2lkIHNldEludHJpbnNpY1dpZHRoKGludCB3KSB7IG1faW50cmluc2ljV2lkdGggPSB3OyB9
Ci0gICAgdm9pZCBzZXRJbnRyaW5zaWNIZWlnaHQoaW50IGgpIHsgbV9pbnRyaW5zaWNIZWlnaHQg
PSBoOyB9CisgICAgdmlydHVhbCBJbnRTaXplIGludHJpbnNpY1NpemUoKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgaW50IGNhcmV0TWluT2Zmc2V0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2Fy
ZXRNYXhPZmZzZXQoKSBjb25zdDsKQEAgLTU4LDExICs1NSwxMiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1NlbGVjdGVkKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKKyAgICB2b2lkIHNldEludHJpbnNp
Y1NpemUoY29uc3QgSW50U2l6ZSYpOworCiAgICAgYm9vbCBzaG91bGRQYWludChQYWludEluZm8m
LCBpbnQmIHR4LCBpbnQmIHR5KTsKIAogcHJpdmF0ZToKLSAgICBpbnQgbV9pbnRyaW5zaWNXaWR0
aDsKLSAgICBpbnQgbV9pbnRyaW5zaWNIZWlnaHQ7CisgICAgSW50U2l6ZSBtX2ludHJpbnNpY1Np
emU7CiAgICAgCiAgICAgdW5zaWduZWQgbV9zZWxlY3Rpb25TdGF0ZSA6IDM7IC8vIFNlbGVjdGlv
blN0YXRlCiB9OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgJKHJldmlzaW9uIDIxMjA3
KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTU2LDggKzU2LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFdpZGdldChXaWRn
ZXQqKTsKIAotICAgIHVzaW5nIFJlbmRlclJlcGxhY2VkOjplbGVtZW50OwotCiBwcml2YXRlOgog
ICAgIHZvaWQgcmVzaXplV2lkZ2V0KFdpZGdldCosIGludCB3LCBpbnQgaCk7CiAKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5nZS1hZnRlci1sYXlvdXQtZXhw
ZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmlu
YXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zaXplLWNoYW5n
ZS1hZnRlci1sYXlvdXQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlw
ZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdB
QUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBZFhVbEVRVlI0bk8zZGU1QlhkZjM0OFJmTHpRc28KRE93
Z2FLMktsMFVsTGJ4YmVUZTFkYnlpWkZiZ2FFdmtVQ3IxUnhjcnJSUTFMWjFTdTZlRElUcHBtb1NK
S01LRUtJRXpPR0twNWFRWgpJQVlxd25KWjNyOC8rdkVaV0hiM3MrdkNLLzM2ZVB6RjUzTSs1M3pP
KzMzTzJkbm5maTUwSzZXVUFBQUFTRkR6djk0QkFBRGcvVU9BCkFBQUFhUVFJQUFDUVJvQUFBQUJw
QkFnQUFKQkdnQUFBQUdrRUNBQUFrRWFBQUFBQWFRUUlBQUNRWnFzR3lNcVZLK1BsbDEvZW1wdmMK
S3JiMWZxMVpzeWIrL09jL3Q3bTh1Yms1bm52dXVUYVhyMXk1TXY3MXIzOXRpMTNiNWw1Ly9mVjQv
dm5uMjF4ZWJlemI4cms3cXRyeAplemZyNnJuZGN1enY1YmtBQU40YnFnWklRME5EOU8vZlAwNCsr
ZVE0OTl4em8zdjM3ckhISG52RU9lZWNFeC85NkVlamUvZnVjZnZ0CnQ4ZWRkOTRaZ3dZTmlqdnV1
Q05qdnp0c1crL1gzTGx6NCtDREQ0Nnp6anFyMWVWUFBmVlVISFRRUWZINXozKysxZVczM1haYkRC
Z3cKSU82KysrNXRzbi9iMmhWWFhCRm5uSEZHcTh1cWpYMWJQbmRIVlR0KzcyWmRQYmRianYyOVBC
Y0F3SHRIMVFCWnQyNWR6SjgvUDZaTgpteFpUcGt5SlhyMTZ4VEhISEJQMzNITlB6SjQ5TzY2Nzdy
cG9hbXFLODg4L1ArcnE2akwydVZPMjlYNGRkdGhoTVhyMDZEYVhIM0xJCklYSE1NY2RFejU0OVcx
M2UyTmdZL2Z2MzMycjdzMmJObW5qMDBVZTMydmFxdWZMS0srTysrKzVyZFZtMXNYZFd5N0cxOTl3
ZFZlMzQKdlp0MTlkeHVPZmIzOGx3QUFPOGRWUVBrc3NzdWl6MzIyS1BONVkyTmpiSC8vdnRIUkVU
UG5qMmpXN2R1WGRxaFVrcVgxbTl0RzF0agp2OXJUcTFldlZyZS9ZY09HaUlqbzBhTkgxTlMwUGRW
YmEvL1dyVnNYbi9uTVoyTFdyRmxkM2xaSERSZ3dJUGJlZSs4dDd1L28yRHVxCnRiRzE5ZHp0V2I5
Ky9SYjN0WFg4V3RvYTUrYlcxdFZ6cCtYWU96b1hXOXUybXR2V2p2Yzc5VzQ4L2dEd1hsVDFOOE5Q
Zk9JVDdTN2YKY2NjZDQ2aWpqcXJjM3JCaFExeHh4Ulh4d1E5K01BNDQ0SUQ0eHovK1VWbTJaTW1T
dU95eXkrTG9vNCtPRVNOR3hCTlBQRkZaZHRkZApkOFV0dDl3UzExNTdiUng1NUpFZFdxZWx0clpS
YmI5V3Jsd1psMXh5U1Z4KytlVnh4aGxueFBqeDQyUDE2dFdWYmU2NjY2NXg4ODAzClIwVEU1TW1U
WTk5OTk0MnhZOGUydVIrclZxMktjZVBHeFhlLys5MFlPM1pzekpzM3I5MDUzTGpPaEFrVFl0Q2dR
VEZpeEloWXRHaFIKcCtmZ2h6LzhZZHgvLy8xeDMzMzN4ZWMrOTdtNDg4NDdvN2EyTnM0ODg4eFlz
V0pGL1ByWHY0N2EydG80OGNRVDQ0VVhYb2lJaUJ0dQp1Q0UrOXJHUFJWTlRVOVc1YU9uZi8vNTNY
SHZ0dFhIRUVVZDBlT3h0amVYUlJ4K05VYU5HeFlRSkUrSVh2L2hGREIwNk5PcnI2eXZICnFlWFlY
bnp4eFMyZWUvWHExZkgxcjM4OUprNmNHT2VkZDE1Y2YvMzFsV1dQUFBKSVRKdzRNVzY0NFlZNDZx
aWo0cGxubnFsNlREWWQKMHlXWFhCSlhYWFZWbkhUU1NURnExS2lZT0hGaXpKbzFLK2JQbngrTmpZ
M3hqVzk4STc3M3ZlOUZiVzF0UFBua2srMGVzM2M2QjIxNQpwK2QyUjdTMy91OSs5N3RPbjE4dHRY
WE5OalUxeFlRSkUrS2FhNjZKTTg4OE14b2JHMlBVcUZHVmRhcGRrMjBkNzNkeXZOcmF4NnV1CnVp
b09PZVNRRHM4bEFQRC9sVTdhYnJ2dHl1alJvMXRkOXFFUGZhZ2NlT0NCWmZyMDZlWGxsMTh1OWZY
MTVhS0xMaXFsbExKKy9mcHkKeWltbmxEZmZmTE0wTnplWHhzYkdVbHRiVzVZdlgxN1dyVnRYRGo3
NDRNcDJMcjMwMHRMYzNOenVPaTIxdFkxcSsxVktLUi8vK01mTAo3YmZmWGtvcFplM2F0ZVhRUXc4
dERRME5sZVc3N3JwcitkNzN2bGU1ZmRKSko1V1JJMGRXYnQ5MDAwMWxsMTEycWR6KzVDYy9XU1pQ
Cm5seEtLYVc1dWJrTUdUS2tuSGppaVczTzZXNjc3VmIyMzMvL2N2Lzk5NWNaTTJhVTNYZmZ2ZXk1
NTU1bDNicDFuWnFEVWtyWmZmZmQKeS9lLy8vM0s3WTk4NUNQbHdnc3ZyTncrNXBoanlwZ3hZeXEz
SDN6d3dmS3JYLzJxdzNPeHFhVkxsNWF4WThlV2dRTUhkbWpzN1kxbAo4ZUxGWlo5OTlpbjE5Zlhs
Z1FjZUtDKzk5RkxaZDk5OXk4VVhYOXpxMkZwNzdwTlBQcm5NbVRPbmxGTEt2SG56U2tTVXYvemxM
MlhOCm1qVmwxMTEzTFRObXpDaWxsUEx0YjMrN25IMzIyWlgxV2g2L2xtNisrZVp5K2VXWGwxSktX
Ymh3WVltSU1uSGl4UExTU3krVk9YUG0KbFA3OSs1ZUREanFvM0hQUFBhV3hzYkVzV3JTb3pYRjJk
UTVhNnVxNTNYTHNMVzlYVzcrejU5ZW0ycnRtR3hvYXltOS8rOXZLc29hRwpobkxJSVlkVWJyZDNU
YlozdkR0N3ZOcmJ4eC8vK01mbDlOTlBiM1ZzQUVEYnR2clg4RFkwTk1UeHh4OGZ1KzIyV3h4NzdM
R1ZiMENhCk1tVktsRkppMXF4Wk1XM2F0Qmc4ZUhDODl0cHI4ZmpqajhlS0ZTdmk2YWVmanFsVHAw
WkV4TVVYWHh5bGxIYlhhYW10YlZUYnIyblQKcHNYczJiTXJmMTN0MmJOblhIamhoZkdIUC93aDVz
eVpFeEVSMjIrLy9XWnZTOWxoaHgzYWZKdktFMDg4RVZPblRxMjhjbFJUVXhPbgpubnBxMVhuNzdH
Yy9HNmVkZGxvY2UreXhjYzAxMThUZi8vNzNtRDU5ZXFmbVlLTk45MjNNbURIeDBFTVBWZDRTZGNJ
Sko4UUREenhRCmVXdks5T25UWStUSWtSMmVpMDNWMXRiRzhPSERLL05jYmV6dGpXWFFvRUV4ZE9q
UUdENThlRFEwTkVSZFhWMGNkOXh4OGRlLy9yWFYKc2JWODdoa3pac1NDQlF2aXNNTU9pNGlJRVNO
R3hLMjMzaHAxZFhYUnMyZlBPT3VzcytMQUF3K01pUCsrZFd2VFY1aXF1ZU9PTzJMQQpnQUVSRVhI
QUFRZEViVzF0UkVUVTFkWEY0WWNmSHZYMTlURnMyTEE0Kyt5ejQ5WmJiNDBGQ3hhME9jNnRNUWN0
ZGVYY2JrOUgxdS9NCitkVlNXOWZzN05telkrclVxWEhLS2FkVUhqdDA2TkROMW0zdm1tenZlSGYy
ZUxYM2MyWGN1SEZkL2d3U0FMd2ZiZlVBMmZTWGd2NzkKKzhmS2xTc2pJbUxPbkRreFlNQ0E2Tldy
Vi9UcTFTdU9PdXFvZVBqaGgyUEVpQkV4Y09EQU9PdXNzK0swMDA2TEwzN3hpN0g3N3J0SAo5Kzdk
MjEybnBiYTJVVzIvbm56eXlhaXRyZDNzZzlLSEhucG9SRVFzV0xDZzArTi83TEhIb3I2K1B2cjE2
MWU1cjArZlBsWGZWNy96CnpqdFgvbjM0NFlkSFJNVHp6ei9mcVRuWWFOUG4rdFNuUGhXdnZmWmE1
Yk1Uenp6elRMejk5dHZ4eUNPUFJGTlRVMnpZc0NGMjNISEgKaUhobmM5R3RXN2ZLODFVYmU3V3hi
THF0aUlpK2ZmdHU4ZGFkVFpkdit2akhIMzg4amp6eXlNMldOelkyeG9BQkE2SmJ0MjV4MDAwMwp4
WW9WSzJMaXhJa3hjK2JNZU91dHQ5cWN2NWI2OXUyNzJTL3N1K3l5U3lWMEl2Nzd5L0RHS0trMnpx
MHhCeTF0cTNPN0krdDM1dnhxCnFhMXJkdWJNbVZGZlg3L1pOZEZ5WHFyTlIzdkh1elBIcTlyUEZR
Q2c4M3BrUGRHeVpjdWlSNDhlY2NJSko3UzYvTTQ3NzR3aFE0YkUKajM3MG81Zy9mMzQ4OU5CRFZk
ZnB5RFoyMm1tbmR0ZFp0V3BWTEZ1MkxGYXVYQmw5K3ZTSmlJamh3NGRIang0OTR1MjMzKzdjSUNQ
aQpsVmRlaVdYTGxtMXhmMmMrMkZ0WFZ4ZDkrL2FOdm4zN2Rub09XaG93WUVBME5EVEVwRW1Ub2wr
L2ZuSHd3UWRIVFUxTlRKNDhPZDU0CjQ0M052c2EycTNOUmJleGRIVXQ3bGl4WjB1N25PbTY3N2Jh
WVBYdDIvUEtYdjR5Zi8vem44ZVNUVDNaNDI1ZGVlbW1NSGowNkZpNWMKR0wxNzk0NGRkdGdoamo3
NjZEWWYzOTQ0dCtVY3ROVFY0OW1SOVR0emZyV210V3YyMVZkZmpmLzg1ejlkR250bmp2YzcrZGxV
N2VjSwpBTkMydFA4SmZZODk5b2lISDM1NHM3L21sbExpc2NjZWk4V0xGOGZTcFV2anhodHZqR25U
cHNYQ2hRdGo4dVRKN2E3VFVsdmJxS2ErCnZqNmFtNXZqcWFlZXF0eTNkT25TV0w5K2ZRd2JOcXh5
MzhhM21GUXpaTWlRZU8yMTErSnZmL3RiaHg3Zm1sZGZmVFhlZXV1dCtQQ0gKUDl5cE9kaW9aZXlN
SGowNjdyNzc3dmpaejM0V0YxMTBVWXdaTXlidXZmZmVtRDU5K21hL1NIZDBMdHBTYmV6dlpDelZ4
clpSWFYxZApQUC84OC9IaWl5OXV0dTBGQ3hiRXM4OCtHK1BHall2cnI3LytIWDBsOEttbm5ob1hY
M3h4VEpzMkxlYk5tMWYxYTQ3YkcrZldtSU9PCjZ1cng3T2o2SFQyL1dtcnJtaDA4ZUhBc1hydzQv
dm5QZjFZZVcxcjVCcXEycnNuT0h1OTM4ck1KQUhqbk9oVWdHelpzaUxWcjE3YjUKMThsVnExYkZx
bFdyS3JkWHIxNWQrY2FjVDMvNjA3Rmt5WkpvYkd5TTVjdVh4OUtsUytQS0s2K012ZmZlTzE1Ly9m
VzQ2NjY3SWlMaQpwSk5PaXROUFB6MzY5T25UN2pvdHRiV05hdnMxY3VUSTJHMjMzZUxoaHgrdUxK
ODNiMTdVMTlmSHlTZWZIQkgvL2F2djNMbHpZKzNhCnRmSHFxNi9HaXkrK0dLKy8vbnJsOFd2WHJv
MTE2OVpGUk1SNTU1MFhQWHIwaUZ0dnZiV3kvTG5ubm90bHk1WkZjM056bTNPNzZiSVoKTTJiRUdX
ZWNFUWNlZUdDbjVpQWlvbCsvZnZIS0s2OUVSTVR5NWNzakl1S1VVMDZKM3IxN1IvZnUzV1Bublhl
TzQ0NDdMbmJhYWFjWQpQSGp3WnIvUWQyUXVXbHExYWxXc1hyMDZTaWxWeDE1dExHdlhydDNzbDhw
VnExWnROaTh0eDlieXViZmJicnNZTTJaTUxGcTBLQll0CldoUmYvZXBYNHdNZitFQXNXclFvTm16
WUVNOCsrMncwTnpmSHpKa3pvNm1wS1VvcFVVclo3UGkxNWp2ZitVN3NzODgrTVg3OCtEai8KL1BO
aisrMjMzMno1K3ZYck4vdG1xZmJHMmRVNWFHMyt1M0p1dHh6N3ByYzdlajUwOVB4cXFhMXJkdU8y
TjU1SGE5YXNpWVVMRjI0VwpJZTFkazlXT2QyZU9WM3MvVjJiTm1oVTMzbmhqbStNREFOclEwVSty
UC9QTU02V3hzYkZFUk5sNTU1M0xEMzd3Zy9MR0cyOVVsdDl6Cnp6MmxwcWFtN0xmZmZtWEJnZ1Zs
L3Z6NVpkaXdZYVZIang3bC92dnZMNldVY3NzdHQ1VGV2WHVYYnQyNmxkcmEybkx2dmZkV3RqMTAK
Nk5CeTIyMjNsZC8vL3ZkbDNMaHhaZDI2ZGUydTA5cit0YmFOanV6WC9Qbnp5Mzc3N1ZldXUrNjZN
blhxMURKcTFLaXlhTkdpeXJZZgplZVNSTW1EQWdMTG5ubnVXcjN6bEsyWHMyTEhsK09PUEx6Tm16
Q2h6NTg0dEkwYU1LQkZSZnZLVG41UTFhOWFVU1pNbWxiNTkrNVpoCnc0YVZjODg5dDV4MjJtbmx5
Q09QTEpNbVRXcDEzNy8xclcrVjRjT0hsMnV1dWFaY2ZmWFY1VXRmK2xKNTg4MDNLOHM3T2dlbGxQ
SzEKcjMydGRPdldyVng0NFlWbHlaSWxsZnNuVEpoUVhuamhoY3J0YjM3em01dmQzcWphWEd4cTd0
eTU1WWdqamlnUlVXNjg4Y1lPamIydApzY3ljT2JQMDY5ZXZEQmt5cE15Wk02YzgvZlRUWmErOTlp
cTllL2N1Zi9yVG43WVkyeC8vK01jdG52dmVlKzh0dGJXMUpTSktYVjFkCm1UMTdkaW1sbExmZmZy
c2NkTkJCcFUrZlBtWE1tREhsd1FjZkxEdnNzRU81NElJTHl1elpzN2M0ZmkxOStjdGZMaEZSSXFK
MDc5NjkKREJvMHFJd2JONjR5M2gxMzNMRU1Iank0M0hYWFhSMDZabDJaZzAxMTlkeHVlZTYyTmhj
ZFBSODZlbjV0cXIzci9xcXJyaW8xTlRWbAp5SkFoNVlJTExpZ2pSNDdjN0Z1dzJyc20yenZldi9u
TmJ6cDF2TnJieC9Iang1ZGRkdG1sckYrL3Z0MXhBZ0NiNjFaSzd2K3V0WGJ0CjJuajU1WmVqcnE0
dWV2VDQ3MGRRTm16WUVEVTFOYkZpeFlybzJiUG5GaDlhYlcyZGxxcHRvNXBTU3J6d3dndFJVMU96
eFRmdWJOeUgKNXVibTJINzc3V1BkdW5WVjM5clIzTndjeTVjdmo0RURCMFpUVTFOc3Q5MTJWZmRo
OGVMRk1YRGd3RmJIMkpFNTJHalpzbVV4Y09EQQp6ZTViczJaTjlPN2R1ODNibTZvMkY5VlVHM3Ru
eHRKU2EyTnJ1ZTlMbHk2TlFZTUdiYkZzOWVyVmxWY3ZPbklNTjdyNjZxdmpuSFBPCmlhYW1wbmpy
cmJkaXhZb1ZNV1hLbExqZ2dndmEvU3hIZStQc3loeDBWbGVQWjBmVzc4ejV0VkcxYS9iTk45K01t
cHFhNk5PblQzemgKQzErSStmUG54OXk1Y3l2THExMlRuVDNlbmYzWlZFcUpwcWFtTFY0UkF3RGFs
eDRnOEY3eTA1LytOS1pNbVJMVHAwL2Y3UDZISG5vbwpoZzRkR252dHRkZi9hTS9lWDFvTEVBRGd2
U250VzdEZ3ZlaUlJNDZJOGVQSHg4aVJJMlBFaUJHeGV2WHFXTEprU1RRME5JaVBSQXNYCkxvemx5
NWRIS2FWVDN5Z0hBTHo3ZUFVRXFuampqVGZpOGNjZmo4V0xGOGV4eHg0clBKSk5talFwWG5ycHBZ
ajQ3MzhFZWZycHAvOXYKZHdnQTZCSUJBZ0FBcEVuN2YwQUFBQUFFQ0FBQWtFYUFBQUFBYVFRSUFB
Q1FSb0FBQUFCcEJBZ0FBSkJHZ0FBQUFHa0VDQUFBa0VhQQpBQUFBYVFRSUFBQ1FSb0FBQUFCcEJB
Z0FBSkJHZ0FBQUFHa0VDQUFBa0VhQUFBQUFhWHBVZTBDMzczVEwySS8vbWZLdHN0bnQ5OXQ0CkFR
QWdrMWRBQUFDQU5BSUVBQUJJVS9VdFdKdjZ2L0wyblk2K3plcjlObDRBQU5qV3ZBSUNBQUNrRVNB
QUFFQWFBUUlBQUtRUklBQUEKUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtR
UklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYQpBUUlBQUtRUklBQUFRQm9CQWdB
QXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VD
CkFBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFh
QVFJQUFLUVJJQUFBUUJvQkFnQUEKcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFB
UUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUgpJQUFBUUJvQkFnQUFwQkVn
QUFCQUdnRUNBQUNrNmRHWkIzZjdUcmR0dFIvdlN1KzM4UUlBd0xibUZSQUFBQ0NOQUFFQUFOSjBL
NldVCi8vVk9BQUFBN3c5ZUFRRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFB
Q0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEKMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlF
QUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSQpFQUFBSUkwQUFRQUEw
Z2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFB
RFNDQkFBCkFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFB
RUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWcKalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJ
MEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQQpBUUFBMGdnUUFB
QWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JB
QUFDQ05BQUVBCkFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5J
SUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFMKQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFB
QTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUQpBQUFnalFB
QkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NO
QUFFQUFOSUlFQUFBCklJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFB
SUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ04KQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dR
QUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQgpBQURT
Q0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFB
TklJRUFBQUlJMEFBUUFBCjBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFB
UUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUkKRUFBQUlJMEFBUUFBMGdnUUFBQWdq
UUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQQpB
Q0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVB
QUFJSTBBQVFBQTBnZ1FBQUFnCmpRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBn
Z1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEEKQVFBQTBnZ1FBQUFnalFBQkFB
RFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFF
QQpBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkw
QUFRQUEwZ2dRQUFBZ2pRQUJBQURTCkNCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFB
Z2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1EKQUFBZ2pRQUJBQURTQ0JB
QUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJ
RUFBQQpJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFB
MGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOCkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFC
QUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUIKQUFEU0NCQUFBQ0NO
QUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJ
STBBQVFBQQowZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FB
QUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJCkVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFND
QkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUEKQUNDTkFBRUFB
TklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFR
QUEwZ2dRQUFBZwpqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pR
QUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBCkFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFD
Q05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUEKQU5JSUVB
QUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdn
UUFBQWdqUUFCQUFEUwpDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFE
U0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRCkFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFF
QUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUEKSUkw
QUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFn
alFBQkFBRFNDQkFBQUNDTgpBQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFB
QUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCCkFBRFNDQkFBQUNDTkFBRUFBTklJ
RUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEK
MGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJB
QURTQ0JBQUFDQ05BQUVBQU5JSQpFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05B
QUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBCkFDQ05BQUVBQU5JSUVBQUFJ
STBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFB
QWcKalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NC
QUFBQ0NOQUFFQUFOSUlFQUFBSUkwQQpBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFO
SUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBCkFOSUlFQUFBSUkwQUFR
QUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFB
QkFBRFMKQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUND
TkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUQpBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFB
QUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBCklJMEFBUUFBMGdn
UUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURT
Q0JBQUFDQ04KQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVB
QU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQgpBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBB
QVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBCjBnZ1FBQUFn
alFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFB
Q0NOQUFFQUFOSUkKRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlF
QUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQQpBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEw
Z2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnCmpRQUJB
QURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTB2dy9DR2VOWld2cmxtWUFBQUFBU1VWT1JL
NUNZSUk9Cgo=
</data>
<flag name="review"
          id="5828"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>