<?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>64689</bug_id>
          
          <creation_ts>2011-07-18 05:40:59 -0700</creation_ts>
          <short_desc>[CSSRegions]Add basic RenderRegion support</short_desc>
          <delta_ts>2011-07-28 16:33:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>57312</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Mihnea Ovidenie">mihnea</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>peter</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>438419</commentid>
    <comment_count>0</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-18 05:40:59 -0700</bug_when>
    <thetext>RenderRegion is the rendering class for the region element and it will be used to render the content of RenderFlowThread (see bug 64516).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439149</commentid>
    <comment_count>1</comment_count>
      <attachid>101320</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-19 08:03:15 -0700</bug_when>
    <thetext>Created attachment 101320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439150</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-19 08:06:33 -0700</bug_when>
    <thetext>Attachment 101320 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/WebCore/rendering/RenderObject.cpp:59:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439154</commentid>
    <comment_count>3</comment_count>
      <attachid>101321</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-19 08:11:27 -0700</bug_when>
    <thetext>Created attachment 101321
Patch 2

Fix style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439886</commentid>
    <comment_count>4</comment_count>
      <attachid>101321</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-07-20 11:17:59 -0700</bug_when>
    <thetext>Comment on attachment 101321
Patch 2

It&apos;s pretty hard for me to evaluate this patch without understanding a bit more about what RenderRegion is going to be doing. At first glance it looks pretty odd to me that RenderRegion is a replaced element. I don&apos;t quite understand that.

I was also a bit surprised to see a RenderRegion created if regionThread is set in the style. How does this interact with different display types? It seems like the display type is being ignored?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442145</commentid>
    <comment_count>5</comment_count>
      <attachid>101977</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-26 00:58:54 -0700</bug_when>
    <thetext>Created attachment 101977
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442146</commentid>
    <comment_count>6</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-26 01:01:38 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 101321 [details])
&gt; It&apos;s pretty hard for me to evaluate this patch without understanding a bit more about what RenderRegion is going to be doing. At first glance it looks pretty odd to me that RenderRegion is a replaced element. I don&apos;t quite understand that.
&gt; 
&gt; I was also a bit surprised to see a RenderRegion created if regionThread is set in the style. How does this interact with different display types? It seems like the display type is being ignored?

I have added basic layout and painting code. The RenderRegion object does not take its content from RenderFlowThread yet, it will do that in the next forthcoming patches.

We use now RenderBox as a base class for RenderRegion. When creating a RenderRegion, a filtering is made so that only certain display type elements can become regions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442967</commentid>
    <comment_count>7</comment_count>
      <attachid>101977</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-07-27 09:19:15 -0700</bug_when>
    <thetext>Comment on attachment 101977
Patch 3

View in context: https://bugs.webkit.org/attachment.cgi?id=101977&amp;action=review

r=me

&gt; Source/WebCore/rendering/RenderRegion.cpp:59
&gt; +void RenderRegion::layout()
&gt; +{
&gt; +    ASSERT(needsLayout());
&gt; +
&gt; +    computeLogicalWidth();
&gt; +    computeLogicalHeight();
&gt; +
&gt; +    setNeedsLayout(false);
&gt; +}

This is interesting. I wonder if there should be an intrinsic size for regions or not. I know this is being debated in the CSS WG. I suggested they have no intrinsic size (and that is what you&apos;ve done here), but I know others would like them to maybe be more like iframes or objects (300x150 intrinsic size). I guess for now we can just stick with 0x0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442969</commentid>
    <comment_count>8</comment_count>
      <attachid>101977</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-27 09:30:10 -0700</bug_when>
    <thetext>Comment on attachment 101977
Patch 3

Rejecting attachment 101977 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-01&apos;, &apos;--port...&quot; exit_code: 2

Last 500 characters of output:
ebCore/rendering/RenderObject.h
Hunk #1 succeeded at 431 (offset 4 lines).
patching file Source/WebCore/rendering/RenderRegion.cpp
patching file Source/WebCore/rendering/RenderRegion.h
patching file Source/WebCore/rendering/style/RenderStyle.cpp
Hunk #1 FAILED at 350.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/rendering/style/RenderStyle.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;David Hyatt&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/9250800</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443374</commentid>
    <comment_count>9</comment_count>
      <attachid>102231</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2011-07-27 23:50:16 -0700</bug_when>
    <thetext>Created attachment 102231
Patch 4

Rework the patch after RenderFlowThread patch got in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443586</commentid>
    <comment_count>10</comment_count>
      <attachid>102231</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-07-28 11:41:53 -0700</bug_when>
    <thetext>Comment on attachment 102231
Patch 4

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443705</commentid>
    <comment_count>11</comment_count>
      <attachid>102231</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-28 16:33:52 -0700</bug_when>
    <thetext>Comment on attachment 102231
Patch 4

Clearing flags on attachment: 102231

Committed r91955: &lt;http://trac.webkit.org/changeset/91955&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443706</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-28 16:33:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101320</attachid>
            <date>2011-07-19 08:03:15 -0700</date>
            <delta_ts>2011-07-19 08:11:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>64689.patch</filename>
            <type>text/plain</type>
            <size>18624</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ZWEwYzdlLi5kYTczODM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDct
MTkgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdQWRkIGJhc2ljIFJlbmRlclJlZ2lvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50
LWR5bmFtaWMtYXR0YWNoLWZsb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1hdHRhY2gtZmxvdy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1kZXRhY2gtZmxv
dy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9yZWdpb24tZWxl
bWVudC1keW5hbWljLWRldGFjaC1mbG93Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA3LTE5ICBHYWJv
ciBMb2tpICA8bG9raUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gQWRkIG1pc3NpbmcgZXhw
ZWN0ZWQgZmlsZSBhZnRlciByOTExOTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFjaC1mbG93LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFjaC1mbG93
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTFjZmRh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVt
ZW50LWR5bmFtaWMtYXR0YWNoLWZsb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVz
dHMgdGhhdCBjaGFuZ2luZyB0aGUgZWxlbWVudCBpbnRvIGEgcmVnaW9uIHdpdGhvdXQgYW4gZXhp
c3RpbmcgZmxvdyBkaXNjb25uZWN0cyB0aGUgZWxlbWVudCdzIGNvbnRlbnQuCisKK1BBU1MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWlj
LWF0dGFjaC1mbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1l
bnQtZHluYW1pYy1hdHRhY2gtZmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjFiOGQ0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1hdHRhY2gtZmxvdy5odG1sCkBAIC0wLDAgKzEsMjgg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4K
KyAgICAgICAgICAgIC5yZWdpb24KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb250
ZW50OiAtd2Via2l0LWZyb20tZmxvdygnbm9fZmxvdycpOworICAgICAgICAgICAgfQorICAgICAg
ICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdHMgdGhh
dCBjaGFuZ2luZyB0aGUgZWxlbWVudCBpbnRvIGEgcmVnaW9uIHdpdGhvdXQgYW4gZXhpc3Rpbmcg
ZmxvdyBkaXNjb25uZWN0cyB0aGUgZWxlbWVudCdzIGNvbnRlbnQuPC9wPgorICAgICAgICA8ZGl2
IGlkPSJyZWdpb25fd2l0aG91dF9mbG93Ij4KKyAgICAgICAgICAgIDxkaXYgaWQ9InJlZ2lvbl9j
b250ZW50Ij5UaGlzIHRleHQgc2hvdWxkIG5vdCBiZSB2aXNpYmxlIHdoZW4gdGhlIGVsZW1lbnQg
YmVjb21lcyBhIHJlZ2lvbi48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxzY3JpcHQ+
CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHZh
ciByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uX3dpdGhvdXRfZmxvdyIp
OworICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgbm90IGEgcmVnaW9uIHlldCwgaXQgaGFz
IGNvbnRlbnQuCisgICAgICAgICAgICB2YXIgcGFzcyA9IHJlZ2lvbi5pbm5lclRleHQubGVuZ3Ro
ICE9IDA7CisgICAgICAgICAgICAvLyBUaGUgZWxlbWVudCBiZWNvbWVzIGEgcmVnaW9uLCBpdHMg
Y29udGVudCBnZXRzIGRpc2Nvbm5lY3RlZC4KKyAgICAgICAgICAgIHJlZ2lvbi5jbGFzc05hbWUg
PSAicmVnaW9uIjsKKyAgICAgICAgICAgIHBhc3MgJj0gcmVnaW9uLmlubmVyVGV4dC5sZW5ndGgg
PT0gMDsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD4iICsgcGFzcyA/ICJQQVNTIiA6
ICJGQUlMIiArICI8L3A+Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1k
eW5hbWljLWRldGFjaC1mbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9yZWdpb24tZWxlbWVudC1keW5hbWljLWRldGFjaC1mbG93LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjlmYTA2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtZGV0YWNoLWZs
b3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdHMgdGhhdCBjaGFuZ2luZyBhIHJl
Z2lvbiBlbGVtZW50IGludG8gYSBub3JtYWwgZWxlbWVudCBtYWtlcyB0aGUgZWxlbWVudCdzIGNv
bnRlbnQgYXZhaWxhYmxlLgorCitUaGlzIHRleHQgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUg
ZWxlbWVudCBpcyBubyBsb25nZXIgYSByZWdpb24uCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1kZXRhY2gtZmxvdy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtZGV0YWNo
LWZsb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWE1NmQxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50
LWR5bmFtaWMtZGV0YWNoLWZsb3cuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAucmVn
aW9uCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29udGVudDogLXdlYmtpdC1mcm9t
LWZsb3coIm5vLWZsb3ciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3RzIHRoYXQgY2hhbmdpbmcgYSByZWdp
b24gZWxlbWVudCBpbnRvIGEgbm9ybWFsIGVsZW1lbnQgbWFrZXMgdGhlIGVsZW1lbnQncyBjb250
ZW50IGF2YWlsYWJsZS48L3A+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lvbiI+CisgICAgICAg
ICAgICA8ZGl2IGlkPSJyZWdpb25fY29udGVudCI+VGhpcyB0ZXh0IHNob3VsZCBiZSB2aXNpYmxl
IHdoZW4gdGhlIGVsZW1lbnQgaXMgbm8gbG9uZ2VyIGEgcmVnaW9uLjwvZGl2PgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlD
bGFzc05hbWUoInJlZ2lvbiIpWzBdOworICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgYSBy
ZWdpb24gd2l0aG91dCBhIGNvbm5lY3RlZCBmbG93LCBpdHMgY29udGVudCBpcyBub3QgYXZhaWxh
YmxlLgorICAgICAgICAgICAgdmFyIHBhc3MgPSByZWdpb24uaW5uZXJUZXh0Lmxlbmd0aCA9PSAw
OworICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQgYmVjb21lcyBhIG5vcm1hbCBlbGVtZW50LCBp
dHMgY29udGVudCBiZWNvbWVzIGF2YWlsYWJsZS4KKyAgICAgICAgICAgIHJlZ2lvbi5jbGFzc05h
bWUgPSAiIjsKKyAgICAgICAgICAgIHBhc3MgJj0gcmVnaW9uLmlubmVyVGV4dC5sZW5ndGggIT0g
MDsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD4iICsgcGFzcyA/ICJQQVNTIiA6ICJG
QUlMIiArICI8L3A+Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMGY5NDZhLi4zZWNhZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTEtMDctMTkgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAg
ICAgICAgW0NTU1JlZ2lvbnNdQWRkIGJhc2ljIFJlbmRlclJlZ2lvbiBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9k
dWNlcyB0aGUgUmVuZGVyUmVnaW9uIG9iamVjdC4KKworICAgICAgICBBIFJlbmRlck9iamVjdCB0
aGF0IHRha2VzIGl0cyBjb250ZW50IGZyb20gYSAibmFtZWQiIGZsb3cgd2lsbCBiZWNvbWUgYSBS
ZW5kZXJSZWdpb24uCisgICAgICAgIEEgUmVuZGVyUmVnaW9uIGlzIGEgUmVuZGVyUmVwbGFjZWQg
b2JqZWN0IGFuZCBpdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgY29udGVudCBmcm9tIGEg
UmVuZGVyRmxvd1RocmVhZC4KKyAgICAgICAgQSBSZW5kZXJSZWdpb24gdGhhdCBpcyBtYXJrZWQg
dG8gdGFrZSBpdHMgY29udGVudCBmcm9tIGEgbm9uIGV4aXN0aW5nIGZsb3csIHdpbGwgaGF2ZSBp
dHMgY29udGVudCBkaXNjb25uZWN0ZWQKKyAgICAgICAgZnJvbSB0aGUgbm9ybWFsIGZsb3cuCisK
KyAgICAgICAgVGVzdHM6IGZhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFj
aC1mbG93Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1k
eW5hbWljLWRldGFjaC1mbG93Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaWZmKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUmVuZGVyUmVnaW9u
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSZWdpb246OlJlbmRlclJlZ2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJSZWdpb246OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJSZWdpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OmlzUmVu
ZGVyUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6cmVuZGVyTmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclJlZ2lvbik6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpk
aWZmKToKKwogMjAxMS0wNy0xOSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW5hbWUgYWdlbnRJZGVudGlmaWVyUHJlZml4
IHRvIHByb2Nlc3NJZCwgbW92ZSBvdXQgZnJvbSBwYWdlIGFnZW50IGFuZCBtYWtlIHN0YXRpYy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOGMx
MTlmYS4uY2ZkMDk2MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKQEAgLTM2MTk4LDYgKzM2MTk4LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJSZWdpb24uY3BwIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJp
bmdcUmVuZGVyUmVnaW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJSZXBsYWNlZC5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGQzMzk4MzAuLmM3OWVkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0MjYsNiArNTQy
Niw4IEBACiAJCUQzQUExMEY0MTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBQTEwRjIx
MjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi87IH07CiAJCUQzRDRFOTcy
MTMwQzdDRkUwMDdCQTU0MCAvKiBIVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNENEU5NzAxMzBDN0NGRTAwN0JBNTQw
IC8qIEhUTUxTdW1tYXJ5RWxlbWVudC5jcHAgKi87IH07CiAJCUQzRDRFOTczMTMwQzdDRkUwMDdC
QTU0MCAvKiBIVE1MU3VtbWFyeUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQzRDRFOTcxMTMwQzdDRkUwMDdCQTU0MCAvKiBIVE1MU3VtbWFy
eUVsZW1lbnQuaCAqLzsgfTsKKwkJRDdDRjEwRUExM0Q1QkUzQzAwMkNFQ0YwIC8qIFJlbmRlclJl
Z2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
N0NGMTBFODEzRDVCRTNDMDAyQ0VDRjAgLyogUmVuZGVyUmVnaW9uLmNwcCAqLzsgfTsKKwkJRDdD
RjEwRUIxM0Q1QkUzQzAwMkNFQ0YwIC8qIFJlbmRlclJlZ2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDdDRjEwRTkxM0Q1QkUzQzAwMkNFQ0YwIC8q
IFJlbmRlclJlZ2lvbi5oICovOyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyogQ29v
a2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2
MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29t
bWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRk
ZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87
IH07CkBAIC0xMjA4Niw2ICsxMjA4OCw4IEBACiAJCUQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAv
KiBNZWRpYVF1ZXJ5TWF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZWRpYVF1ZXJ5TWF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0Q0RTk3
MDEzMEM3Q0ZFMDA3QkE1NDAgLyogSFRNTFN1bW1hcnlFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxTdW1tYXJ5RWxlbWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzRDRFOTcxMTMwQzdDRkUwMDdCQTU0MCAvKiBIVE1MU3Vt
bWFyeUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFN1bW1h
cnlFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQ3Q0YxMEU4MTNENUJF
M0MwMDJDRUNGMCAvKiBSZW5kZXJSZWdpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVuZGVyUmVnaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDdDRjEwRTkxM0Q1QkUzQzAwMkNFQ0YwIC8qIFJlbmRlclJlZ2lvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJSZWdpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhE
MjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5NDMxLDYgKzE5NDM1LDggQEAKIAkJCQlBNDNCRjU5QjExNDkyOTI4MDBD
NjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuaCAqLywKIAkJCQk1QTU3NEYyMjEzMURCOTM5MDA0NzFC
ODggLyogUmVuZGVyUXVvdGUuY3BwICovLAogCQkJCTVBNTc0RjIzMTMxREI5MzkwMDQ3MUI4OCAv
KiBSZW5kZXJRdW90ZS5oICovLAorCQkJCUQ3Q0YxMEU4MTNENUJFM0MwMDJDRUNGMCAvKiBSZW5k
ZXJSZWdpb24uY3BwICovLAorCQkJCUQ3Q0YxMEU5MTNENUJFM0MwMDJDRUNGMCAvKiBSZW5kZXJS
ZWdpb24uaCAqLywKIAkJCQlBODcxREZERTBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFj
ZWQuY3BwICovLAogCQkJCUE4NzFERkRGMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNl
ZC5oICovLAogCQkJCUJDQTg0NkQ0MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJSZXBsaWNhLmNw
cCAqLywKQEAgLTIzMTExLDYgKzIzMTE3LDcgQEAKIAkJCQk0OTQ1QkZENDEzQ0Y4MDkwMDBDQzNC
MzggLyogVHJhbnNmb3JtU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NjlCMEYzMTNEMEIz
M0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTU5MTNBMjQyMTNENDlFQkEwMEY1QjA1QyAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUQ3Q0YxMEVCMTNENUJFM0MwMDJDRUNGMCAvKiBSZW5kZXJSZWdpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtMjU4ODMsNiArMjU4OTAsNyBAQAogCQkJCTQ5NDVCRkQzMTND
RjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
OTY5QjBGMjEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTU5MTNBMjQxMTNENDlFQkEwMEY1QjA1QyAvKiBJZGVudGlmaWVy
c0ZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDdDRjEwRUExM0Q1QkUzQzAwMkNFQ0Yw
IC8qIFJlbmRlclJlZ2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAy
ZjMwYmI3Li4xN2U0YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0zNTcsNiArMzU3LDEzIEBAIE5v
ZGU6OlN0eWxlQ2hhbmdlIE5vZGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIHMxLCBjb25zdCBS
ZW5kZXJTdHlsZSogczIpCiAgICAgaWYgKChzMSAmJiBzMikgJiYgKHMxLT5oYXNUZXh0Q29tYmlu
ZSgpICE9IHMyLT5oYXNUZXh0Q29tYmluZSgpKSkKICAgICAgICAgY2ggPSBEZXRhY2g7CiAKKyNp
ZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAgLy8gV2hlbiBlaXRoZXIgdGhlIHJlZ2lvbiB0aHJl
YWQgb3IgdGhlIHJlZ2lvbiBpbmRleCBoYXMgY2hhbmdlZCwKKyAgICAvLyB3ZSBuZWVkIHRvIHBy
ZXBhcmUgYSBzZXBhcmF0ZSByZW5kZXIgcmVnaW9uIG9iamVjdC4KKyAgICBpZiAoKHMxICYmIHMy
KSAmJiAoKHMxLT5yZWdpb25UaHJlYWQoKSAhPSBzMi0+cmVnaW9uVGhyZWFkKCkgfHwgKHMxLT5y
ZWdpb25JbmRleCgpICE9IHMyLT5yZWdpb25JbmRleCgpKSkpKQorICAgICAgICBjaCA9IERldGFj
aDsKKyNlbmRpZgorCiAgICAgcmV0dXJuIGNoOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDdhOGVkZjUuLmRiOTQzODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVSb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJUcmFu
c2Zvcm1TdGF0ZS5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgpAQCAtMTE2LDYgKzExNywxMiBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdDo6Y3Jl
YXRlT2JqZWN0KE5vZGUqIG5vZGUsIFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICAgICAgcmV0dXJu
IGltYWdlOwogICAgIH0KIAorI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKyAgICAvLyBBbnkgZWxl
bWVudCBjYW4gYmVjb21lIGEgcmVnaW9uLgorICAgIGlmICghc3R5bGUtPnJlZ2lvblRocmVhZCgp
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclJlZ2lvbihub2Rl
KTsKKyNlbmRpZgorCiAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUocnVieVRhZykpIHsKICAgICAg
ICAgaWYgKHN0eWxlLT5kaXNwbGF5KCkgPT0gSU5MSU5FKQogICAgICAgICAgICAgcmV0dXJuIG5l
dyAoYXJlbmEpIFJlbmRlclJ1YnlBc0lubGluZShub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAppbmRleCA5NzdlODcwLi5lMjU0NWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC00MjYsNiArNDI2LDEwIEBAIHB1YmxpYzoKICAg
ICBib29sIGlzUmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBtX3JlcGxhY2VkOyB9IC8vIGEgInJl
cGxhY2VkIiBlbGVtZW50IChzZWUgQ1NTKQogICAgIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxXcml0aW5nTW9kZTsgfQogCisjaWYgRU5B
QkxFKENTU19SRUdJT05TKQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKKwogICAgIGJvb2wgaGFzTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2hhc0xheWVyOyB9CiAgICAgCiAgICAgYm9vbCBoYXNCb3hEZWNvcmF0aW9ucygp
IGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRCYWNrZ3JvdW5kOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjUzZjlhNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRv
YmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKKworI2lu
Y2x1ZGUgIlJlbmRlclZpZXcuaCIKKworI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKwordXNpbmcg
bmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZW5kZXJSZWdpb246OlJl
bmRlclJlZ2lvbihOb2RlKiBub2RlKQorICAgIDogUmVuZGVyUmVwbGFjZWQobm9kZSkKK3sKKyAg
ICB2aWV3KCktPmZyYW1lVmlldygpLT5zZXRJc1Zpc3VhbGx5Tm9uRW1wdHkoKTsKK30KKwordm9p
ZCBSZW5kZXJSZWdpb246OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQm
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NT
X1JFR0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE5NjcyMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICog
ICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
CisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAor
ICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVuZGVyUmVnaW9uX2gKKyNkZWZp
bmUgUmVuZGVyUmVnaW9uX2gKKworI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKworI2luY2x1ZGUg
IlJlbmRlclJlcGxhY2VkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVy
UmVnaW9uIDogcHVibGljIFJlbmRlclJlcGxhY2VkIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBS
ZW5kZXJSZWdpb24oTm9kZSopOworICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvbigpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIq
IHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUmVnaW9uIjsgfQorICAgIHZpcnR1
YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IEludFBvaW50Jik7CisKK307
CisKK2lubGluZSBSZW5kZXJSZWdpb24qIHRvUmVuZGVyUmVnaW9uKFJlbmRlck9iamVjdCogb2Jq
ZWN0KQoreworICAgIEFTU0VSVCghb2JqZWN0IHx8ICFzdHJjbXAob2JqZWN0LT5yZW5kZXJOYW1l
KCksICJSZW5kZXJSZWdpb24iKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJlZ2lv
bio+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5u
ZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5kZXJSZWdpb24oY29uc3QgUmVuZGVyUmVnaW9uKik7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfUkVHSU9O
UykKKworI2VuZGlmIC8vIFJlbmRlclJlZ2lvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA3MjNkM2U1Li4wMzhmNGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTM0Niw5
ICszNDYsNyBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVy
U3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAgICAgICAgcmV0dXJuIFN0
eWxlRGlmZmVyZW5jZUxheW91dDsKIAogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKLSAgICAgICAg
aWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2Zsb3dUaHJlYWQgIT0gb3RoZXItPnJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX2Zsb3dUaHJlYWQKLSAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX3JlZ2lvblRocmVhZCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
cmVnaW9uVGhyZWFkCi0gICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdp
b25JbmRleCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uSW5kZXgpCisg
ICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbG93VGhyZWFkICE9IG90aGVyLT5y
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbG93VGhyZWFkKQogICAgICAgICAgICAgcmV0dXJuIFN0
eWxlRGlmZmVyZW5jZUxheW91dDsKICNlbmRpZgogICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV9kZXByZWNhdGVkRmxleGlibGVCb3guZ2V0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101321</attachid>
            <date>2011-07-19 08:11:27 -0700</date>
            <delta_ts>2011-07-26 00:58:54 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>64689-2.patch</filename>
            <type>text/plain</type>
            <size>18633</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ZWEwYzdlLi5kYTczODM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDct
MTkgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdQWRkIGJhc2ljIFJlbmRlclJlZ2lvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50
LWR5bmFtaWMtYXR0YWNoLWZsb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1hdHRhY2gtZmxvdy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1kZXRhY2gtZmxv
dy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9yZWdpb24tZWxl
bWVudC1keW5hbWljLWRldGFjaC1mbG93Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA3LTE5ICBHYWJv
ciBMb2tpICA8bG9raUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gQWRkIG1pc3NpbmcgZXhw
ZWN0ZWQgZmlsZSBhZnRlciByOTExOTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFjaC1mbG93LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFjaC1mbG93
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTFjZmRh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVt
ZW50LWR5bmFtaWMtYXR0YWNoLWZsb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVz
dHMgdGhhdCBjaGFuZ2luZyB0aGUgZWxlbWVudCBpbnRvIGEgcmVnaW9uIHdpdGhvdXQgYW4gZXhp
c3RpbmcgZmxvdyBkaXNjb25uZWN0cyB0aGUgZWxlbWVudCdzIGNvbnRlbnQuCisKK1BBU1MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWlj
LWF0dGFjaC1mbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1l
bnQtZHluYW1pYy1hdHRhY2gtZmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjFiOGQ0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1hdHRhY2gtZmxvdy5odG1sCkBAIC0wLDAgKzEsMjgg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4K
KyAgICAgICAgICAgIC5yZWdpb24KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb250
ZW50OiAtd2Via2l0LWZyb20tZmxvdygnbm9fZmxvdycpOworICAgICAgICAgICAgfQorICAgICAg
ICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdHMgdGhh
dCBjaGFuZ2luZyB0aGUgZWxlbWVudCBpbnRvIGEgcmVnaW9uIHdpdGhvdXQgYW4gZXhpc3Rpbmcg
ZmxvdyBkaXNjb25uZWN0cyB0aGUgZWxlbWVudCdzIGNvbnRlbnQuPC9wPgorICAgICAgICA8ZGl2
IGlkPSJyZWdpb25fd2l0aG91dF9mbG93Ij4KKyAgICAgICAgICAgIDxkaXYgaWQ9InJlZ2lvbl9j
b250ZW50Ij5UaGlzIHRleHQgc2hvdWxkIG5vdCBiZSB2aXNpYmxlIHdoZW4gdGhlIGVsZW1lbnQg
YmVjb21lcyBhIHJlZ2lvbi48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxzY3JpcHQ+
CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHZh
ciByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uX3dpdGhvdXRfZmxvdyIp
OworICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgbm90IGEgcmVnaW9uIHlldCwgaXQgaGFz
IGNvbnRlbnQuCisgICAgICAgICAgICB2YXIgcGFzcyA9IHJlZ2lvbi5pbm5lclRleHQubGVuZ3Ro
ICE9IDA7CisgICAgICAgICAgICAvLyBUaGUgZWxlbWVudCBiZWNvbWVzIGEgcmVnaW9uLCBpdHMg
Y29udGVudCBnZXRzIGRpc2Nvbm5lY3RlZC4KKyAgICAgICAgICAgIHJlZ2lvbi5jbGFzc05hbWUg
PSAicmVnaW9uIjsKKyAgICAgICAgICAgIHBhc3MgJj0gcmVnaW9uLmlubmVyVGV4dC5sZW5ndGgg
PT0gMDsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD4iICsgcGFzcyA/ICJQQVNTIiA6
ICJGQUlMIiArICI8L3A+Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1k
eW5hbWljLWRldGFjaC1mbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9yZWdpb24tZWxlbWVudC1keW5hbWljLWRldGFjaC1mbG93LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjlmYTA2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtZGV0YWNoLWZs
b3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdHMgdGhhdCBjaGFuZ2luZyBhIHJl
Z2lvbiBlbGVtZW50IGludG8gYSBub3JtYWwgZWxlbWVudCBtYWtlcyB0aGUgZWxlbWVudCdzIGNv
bnRlbnQgYXZhaWxhYmxlLgorCitUaGlzIHRleHQgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUg
ZWxlbWVudCBpcyBubyBsb25nZXIgYSByZWdpb24uCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1kZXRhY2gtZmxvdy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtZGV0YWNo
LWZsb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWE1NmQxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50
LWR5bmFtaWMtZGV0YWNoLWZsb3cuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAucmVn
aW9uCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29udGVudDogLXdlYmtpdC1mcm9t
LWZsb3coIm5vLWZsb3ciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3RzIHRoYXQgY2hhbmdpbmcgYSByZWdp
b24gZWxlbWVudCBpbnRvIGEgbm9ybWFsIGVsZW1lbnQgbWFrZXMgdGhlIGVsZW1lbnQncyBjb250
ZW50IGF2YWlsYWJsZS48L3A+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lvbiI+CisgICAgICAg
ICAgICA8ZGl2IGlkPSJyZWdpb25fY29udGVudCI+VGhpcyB0ZXh0IHNob3VsZCBiZSB2aXNpYmxl
IHdoZW4gdGhlIGVsZW1lbnQgaXMgbm8gbG9uZ2VyIGEgcmVnaW9uLjwvZGl2PgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlD
bGFzc05hbWUoInJlZ2lvbiIpWzBdOworICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgYSBy
ZWdpb24gd2l0aG91dCBhIGNvbm5lY3RlZCBmbG93LCBpdHMgY29udGVudCBpcyBub3QgYXZhaWxh
YmxlLgorICAgICAgICAgICAgdmFyIHBhc3MgPSByZWdpb24uaW5uZXJUZXh0Lmxlbmd0aCA9PSAw
OworICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQgYmVjb21lcyBhIG5vcm1hbCBlbGVtZW50LCBp
dHMgY29udGVudCBiZWNvbWVzIGF2YWlsYWJsZS4KKyAgICAgICAgICAgIHJlZ2lvbi5jbGFzc05h
bWUgPSAiIjsKKyAgICAgICAgICAgIHBhc3MgJj0gcmVnaW9uLmlubmVyVGV4dC5sZW5ndGggIT0g
MDsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD4iICsgcGFzcyA/ICJQQVNTIiA6ICJG
QUlMIiArICI8L3A+Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMGY5NDZhLi4zZWNhZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTEtMDctMTkgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAg
ICAgICAgW0NTU1JlZ2lvbnNdQWRkIGJhc2ljIFJlbmRlclJlZ2lvbiBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9k
dWNlcyB0aGUgUmVuZGVyUmVnaW9uIG9iamVjdC4KKworICAgICAgICBBIFJlbmRlck9iamVjdCB0
aGF0IHRha2VzIGl0cyBjb250ZW50IGZyb20gYSAibmFtZWQiIGZsb3cgd2lsbCBiZWNvbWUgYSBS
ZW5kZXJSZWdpb24uCisgICAgICAgIEEgUmVuZGVyUmVnaW9uIGlzIGEgUmVuZGVyUmVwbGFjZWQg
b2JqZWN0IGFuZCBpdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgY29udGVudCBmcm9tIGEg
UmVuZGVyRmxvd1RocmVhZC4KKyAgICAgICAgQSBSZW5kZXJSZWdpb24gdGhhdCBpcyBtYXJrZWQg
dG8gdGFrZSBpdHMgY29udGVudCBmcm9tIGEgbm9uIGV4aXN0aW5nIGZsb3csIHdpbGwgaGF2ZSBp
dHMgY29udGVudCBkaXNjb25uZWN0ZWQKKyAgICAgICAgZnJvbSB0aGUgbm9ybWFsIGZsb3cuCisK
KyAgICAgICAgVGVzdHM6IGZhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFj
aC1mbG93Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1k
eW5hbWljLWRldGFjaC1mbG93Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaWZmKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUmVuZGVyUmVnaW9u
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSZWdpb246OlJlbmRlclJlZ2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJSZWdpb246OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJSZWdpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OmlzUmVu
ZGVyUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6cmVuZGVyTmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclJlZ2lvbik6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpk
aWZmKToKKwogMjAxMS0wNy0xOSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW5hbWUgYWdlbnRJZGVudGlmaWVyUHJlZml4
IHRvIHByb2Nlc3NJZCwgbW92ZSBvdXQgZnJvbSBwYWdlIGFnZW50IGFuZCBtYWtlIHN0YXRpYy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOGMx
MTlmYS4uY2ZkMDk2MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKQEAgLTM2MTk4LDYgKzM2MTk4LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJSZWdpb24uY3BwIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJp
bmdcUmVuZGVyUmVnaW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJSZXBsYWNlZC5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGQzMzk4MzAuLmM3OWVkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0MjYsNiArNTQy
Niw4IEBACiAJCUQzQUExMEY0MTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNBQTEwRjIx
MjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi87IH07CiAJCUQzRDRFOTcy
MTMwQzdDRkUwMDdCQTU0MCAvKiBIVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNENEU5NzAxMzBDN0NGRTAwN0JBNTQw
IC8qIEhUTUxTdW1tYXJ5RWxlbWVudC5jcHAgKi87IH07CiAJCUQzRDRFOTczMTMwQzdDRkUwMDdC
QTU0MCAvKiBIVE1MU3VtbWFyeUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQzRDRFOTcxMTMwQzdDRkUwMDdCQTU0MCAvKiBIVE1MU3VtbWFy
eUVsZW1lbnQuaCAqLzsgfTsKKwkJRDdDRjEwRUExM0Q1QkUzQzAwMkNFQ0YwIC8qIFJlbmRlclJl
Z2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
N0NGMTBFODEzRDVCRTNDMDAyQ0VDRjAgLyogUmVuZGVyUmVnaW9uLmNwcCAqLzsgfTsKKwkJRDdD
RjEwRUIxM0Q1QkUzQzAwMkNFQ0YwIC8qIFJlbmRlclJlZ2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDdDRjEwRTkxM0Q1QkUzQzAwMkNFQ0YwIC8q
IFJlbmRlclJlZ2lvbi5oICovOyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyogQ29v
a2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2
MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29t
bWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRk
ZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87
IH07CkBAIC0xMjA4Niw2ICsxMjA4OCw4IEBACiAJCUQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAv
KiBNZWRpYVF1ZXJ5TWF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZWRpYVF1ZXJ5TWF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0Q0RTk3
MDEzMEM3Q0ZFMDA3QkE1NDAgLyogSFRNTFN1bW1hcnlFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxTdW1tYXJ5RWxlbWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzRDRFOTcxMTMwQzdDRkUwMDdCQTU0MCAvKiBIVE1MU3Vt
bWFyeUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFN1bW1h
cnlFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQ3Q0YxMEU4MTNENUJF
M0MwMDJDRUNGMCAvKiBSZW5kZXJSZWdpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVuZGVyUmVnaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDdDRjEwRTkxM0Q1QkUzQzAwMkNFQ0YwIC8qIFJlbmRlclJlZ2lvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJSZWdpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhE
MjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5NDMxLDYgKzE5NDM1LDggQEAKIAkJCQlBNDNCRjU5QjExNDkyOTI4MDBD
NjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuaCAqLywKIAkJCQk1QTU3NEYyMjEzMURCOTM5MDA0NzFC
ODggLyogUmVuZGVyUXVvdGUuY3BwICovLAogCQkJCTVBNTc0RjIzMTMxREI5MzkwMDQ3MUI4OCAv
KiBSZW5kZXJRdW90ZS5oICovLAorCQkJCUQ3Q0YxMEU4MTNENUJFM0MwMDJDRUNGMCAvKiBSZW5k
ZXJSZWdpb24uY3BwICovLAorCQkJCUQ3Q0YxMEU5MTNENUJFM0MwMDJDRUNGMCAvKiBSZW5kZXJS
ZWdpb24uaCAqLywKIAkJCQlBODcxREZERTBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFj
ZWQuY3BwICovLAogCQkJCUE4NzFERkRGMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNl
ZC5oICovLAogCQkJCUJDQTg0NkQ0MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJSZXBsaWNhLmNw
cCAqLywKQEAgLTIzMTExLDYgKzIzMTE3LDcgQEAKIAkJCQk0OTQ1QkZENDEzQ0Y4MDkwMDBDQzNC
MzggLyogVHJhbnNmb3JtU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NjlCMEYzMTNEMEIz
M0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTU5MTNBMjQyMTNENDlFQkEwMEY1QjA1QyAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUQ3Q0YxMEVCMTNENUJFM0MwMDJDRUNGMCAvKiBSZW5kZXJSZWdpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtMjU4ODMsNiArMjU4OTAsNyBAQAogCQkJCTQ5NDVCRkQzMTND
RjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
OTY5QjBGMjEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTU5MTNBMjQxMTNENDlFQkEwMEY1QjA1QyAvKiBJZGVudGlmaWVy
c0ZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDdDRjEwRUExM0Q1QkUzQzAwMkNFQ0Yw
IC8qIFJlbmRlclJlZ2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAy
ZjMwYmI3Li4xN2U0YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0zNTcsNiArMzU3LDEzIEBAIE5v
ZGU6OlN0eWxlQ2hhbmdlIE5vZGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIHMxLCBjb25zdCBS
ZW5kZXJTdHlsZSogczIpCiAgICAgaWYgKChzMSAmJiBzMikgJiYgKHMxLT5oYXNUZXh0Q29tYmlu
ZSgpICE9IHMyLT5oYXNUZXh0Q29tYmluZSgpKSkKICAgICAgICAgY2ggPSBEZXRhY2g7CiAKKyNp
ZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAgLy8gV2hlbiBlaXRoZXIgdGhlIHJlZ2lvbiB0aHJl
YWQgb3IgdGhlIHJlZ2lvbiBpbmRleCBoYXMgY2hhbmdlZCwKKyAgICAvLyB3ZSBuZWVkIHRvIHBy
ZXBhcmUgYSBzZXBhcmF0ZSByZW5kZXIgcmVnaW9uIG9iamVjdC4KKyAgICBpZiAoKHMxICYmIHMy
KSAmJiAoKHMxLT5yZWdpb25UaHJlYWQoKSAhPSBzMi0+cmVnaW9uVGhyZWFkKCkgfHwgKHMxLT5y
ZWdpb25JbmRleCgpICE9IHMyLT5yZWdpb25JbmRleCgpKSkpKQorICAgICAgICBjaCA9IERldGFj
aDsKKyNlbmRpZgorCiAgICAgcmV0dXJuIGNoOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDdhOGVkZjUuLmJmM2NiN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJS
ZW5kZXJMaXN0SXRlbS5oIgorI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgogI2luY2x1ZGUgIlJl
bmRlclJ1YnkuaCIKICNpbmNsdWRlICJSZW5kZXJSdWJ5VGV4dC5oIgogI2luY2x1ZGUgIlJlbmRl
clRhYmxlQ2VsbC5oIgpAQCAtMTE2LDYgKzExNywxMiBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck9i
amVjdDo6Y3JlYXRlT2JqZWN0KE5vZGUqIG5vZGUsIFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICAg
ICAgcmV0dXJuIGltYWdlOwogICAgIH0KIAorI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKyAgICAv
LyBBbnkgZWxlbWVudCBjYW4gYmVjb21lIGEgcmVnaW9uLgorICAgIGlmICghc3R5bGUtPnJlZ2lv
blRocmVhZCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclJl
Z2lvbihub2RlKTsKKyNlbmRpZgorCiAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUocnVieVRhZykp
IHsKICAgICAgICAgaWYgKHN0eWxlLT5kaXNwbGF5KCkgPT0gSU5MSU5FKQogICAgICAgICAgICAg
cmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclJ1YnlBc0lubGluZShub2RlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA5NzdlODcwLi5lMjU0NWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC00MjYsNiArNDI2LDEwIEBAIHB1
YmxpYzoKICAgICBib29sIGlzUmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBtX3JlcGxhY2VkOyB9
IC8vIGEgInJlcGxhY2VkIiBlbGVtZW50IChzZWUgQ1NTKQogICAgIGJvb2wgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxXcml0aW5nTW9kZTsgfQog
CisjaWYgRU5BQkxFKENTU19SRUdJT05TKQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lv
bigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKKwogICAgIGJvb2wgaGFzTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX2hhc0xheWVyOyB9CiAgICAgCiAgICAgYm9vbCBoYXNCb3hEZWNv
cmF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRCYWNrZ3JvdW5kOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjUzZjlhNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0
IDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJSZWdpb24u
aCIKKworI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKworI2lmIEVOQUJMRShDU1NfUkVHSU9OUykK
KwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZW5kZXJS
ZWdpb246OlJlbmRlclJlZ2lvbihOb2RlKiBub2RlKQorICAgIDogUmVuZGVyUmVwbGFjZWQobm9k
ZSkKK3sKKyAgICB2aWV3KCktPmZyYW1lVmlldygpLT5zZXRJc1Zpc3VhbGx5Tm9uRW1wdHkoKTsK
K30KKwordm9pZCBSZW5kZXJSZWdpb246OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3Qg
SW50UG9pbnQmKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoQ1NTX1JFR0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE5NjcyMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJ
U+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICog
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
CisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVuZGVyUmVnaW9u
X2gKKyNkZWZpbmUgUmVuZGVyUmVnaW9uX2gKKworI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKwor
I2luY2x1ZGUgIlJlbmRlclJlcGxhY2VkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgUmVuZGVyUmVnaW9uIDogcHVibGljIFJlbmRlclJlcGxhY2VkIHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBSZW5kZXJSZWdpb24oTm9kZSopOworICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJl
Z2lvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUmVnaW9uIjsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IEludFBvaW50
Jik7CisKK307CisKK2lubGluZSBSZW5kZXJSZWdpb24qIHRvUmVuZGVyUmVnaW9uKFJlbmRlck9i
amVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVCghb2JqZWN0IHx8ICFzdHJjbXAob2JqZWN0LT5y
ZW5kZXJOYW1lKCksICJSZW5kZXJSZWdpb24iKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJl
bmRlclJlZ2lvbio+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9p
bmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5kZXJSZWdpb24oY29uc3QgUmVuZGVy
UmVnaW9uKik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShD
U1NfUkVHSU9OUykKKworI2VuZGlmIC8vIFJlbmRlclJlZ2lvbl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA3MjNkM2U1Li4wMzhmNGQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
QEAgLTM0Niw5ICszNDYsNyBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29u
c3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAgICAgICAg
cmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKIAogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykK
LSAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2Zsb3dUaHJlYWQgIT0gb3RoZXIt
PnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2Zsb3dUaHJlYWQKLSAgICAgICAgICAgIHx8IHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX3JlZ2lvblRocmVhZCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fcmVnaW9uVGhyZWFkCi0gICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9yZWdpb25JbmRleCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9u
SW5kZXgpCisgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbG93VGhyZWFkICE9
IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbG93VGhyZWFkKQogICAgICAgICAgICAg
cmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKICNlbmRpZgogICAgICAgICBpZiAocmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmdldCgpICE9IG90aGVyLT5y
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9kZXByZWNhdGVkRmxleGlibGVCb3guZ2V0KCkK
</data>
<flag name="review"
          id="96191"
          type_id="1"
          status="-"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="96192"
          type_id="3"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101977</attachid>
            <date>2011-07-26 00:58:54 -0700</date>
            <delta_ts>2011-07-27 23:50:16 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>64689-3.patch</filename>
            <type>text/plain</type>
            <size>26200</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1OGYwZTExLi5lZWZmNjMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDct
MjYgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdQWRkIGJhc2ljIFJlbmRlclJlZ2lvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50
LWRpc3BsYXktcmVzdHJpY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZGlzcGxheS1yZXN0cmljdGlvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1hdHRhY2gtZmxv
dy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9yZWdpb24tZWxl
bWVudC1keW5hbWljLWF0dGFjaC1mbG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVn
aW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWRldGFjaC1mbG93LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtZGV0YWNo
LWZsb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3JlbmRlci1yZWdpb24t
cmVuZGVyZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvcmVu
ZGVyLXJlZ2lvbi1yZW5kZXJlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
c2NyaXB0LXRlc3RzL3JlZ2lvbi1lbGVtZW50LWRpc3BsYXktcmVzdHJpY3Rpb24uanM6IEFkZGVk
LgorCiAyMDExLTA3LTI1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlZCB0aHJlZSBtb3JlIHRlc3RzIHRoYXQgcmVsaWVkIG9uIGZvbnRzIGxvYWRpbmcg
c3luY2hyb25vdXNseS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdp
b24tZWxlbWVudC1kaXNwbGF5LXJlc3RyaWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1kaXNwbGF5LXJlc3RyaWN0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzhiNTI3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWRpc3Bs
YXktcmVzdHJpY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3QgdGhhdCBv
bmx5IG5vbi1yZXBsYWNlZCBibG9jayBlbGVtZW50cyBjYW4gYmUgdHJhbnNmb3JtZWQgaW50byBy
ZWdpb25zLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjcmVhdGVSZWdp
b25FbGVtZW50KCJkaXYiLCAibm9uZSIpIGlzIGZhbHNlCitQQVNTIGNyZWF0ZVJlZ2lvbkVsZW1l
bnQoImRpdiIsICJibG9jayIpIGlzIHRydWUKK1BBU1MgY3JlYXRlUmVnaW9uRWxlbWVudCgiZGl2
IiwgImlubGluZS1ibG9jayIpIGlzIHRydWUKK1BBU1MgY3JlYXRlUmVnaW9uRWxlbWVudCgiZGl2
IiwgInJ1bi1pbiIpIGlzIHRydWUKK1BBU1MgY3JlYXRlUmVnaW9uRWxlbWVudCgiZGl2IiwgImNv
bXBhY3QiKSBpcyB0cnVlCitQQVNTIGNyZWF0ZVJlZ2lvbkVsZW1lbnQoImRpdiIsICJpbmxpbmUi
KSBpcyBmYWxzZQorUEFTUyBjcmVhdGVSZWdpb25FbGVtZW50KCJkaXYiLCAidGFibGUiKSBpcyBm
YWxzZQorUEFTUyBjcmVhdGVSZWdpb25FbGVtZW50KCJkaXYiLCAiaW5saW5lLXRhYmxlIikgaXMg
ZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZGlz
cGxheS1yZXN0cmljdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1l
bGVtZW50LWRpc3BsYXktcmVzdHJpY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41NWZjNzgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3JlZ2lvbi1lbGVtZW50LWRpc3BsYXktcmVzdHJpY3Rpb24uaHRtbApAQCAtMCwwICsx
LDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9yZWdpb24tZWxlbWVudC1kaXNwbGF5LXJlc3RyaWN0aW9uLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtYXR0YWNoLWZsb3ctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFt
aWMtYXR0YWNoLWZsb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjBlMWNmZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1hdHRhY2gtZmxvdy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACitUZXN0cyB0aGF0IGNoYW5naW5nIHRoZSBlbGVtZW50IGludG8gYSByZWdpb24g
d2l0aG91dCBhbiBleGlzdGluZyBmbG93IGRpc2Nvbm5lY3RzIHRoZSBlbGVtZW50J3MgY29udGVu
dC4KKworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1l
bGVtZW50LWR5bmFtaWMtYXR0YWNoLWZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9yZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFjaC1mbG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMWI4ZDQ5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFjaC1mbG93Lmh0bWwK
QEAgLTAsMCArMSwyOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLnJlZ2lvbgorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGNvbnRlbnQ6IC13ZWJraXQtZnJvbS1mbG93KCdub19mbG93Jyk7CisgICAgICAg
ICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAg
ICA8cD5UZXN0cyB0aGF0IGNoYW5naW5nIHRoZSBlbGVtZW50IGludG8gYSByZWdpb24gd2l0aG91
dCBhbiBleGlzdGluZyBmbG93IGRpc2Nvbm5lY3RzIHRoZSBlbGVtZW50J3MgY29udGVudC48L3A+
CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbl93aXRob3V0X2Zsb3ciPgorICAgICAgICAgICAgPGRp
diBpZD0icmVnaW9uX2NvbnRlbnQiPlRoaXMgdGV4dCBzaG91bGQgbm90IGJlIHZpc2libGUgd2hl
biB0aGUgZWxlbWVudCBiZWNvbWVzIGEgcmVnaW9uLjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25f
d2l0aG91dF9mbG93Iik7CisgICAgICAgICAgICAvLyBUaGUgZWxlbWVudCBpcyBub3QgYSByZWdp
b24geWV0LCBpdCBoYXMgY29udGVudC4KKyAgICAgICAgICAgIHZhciBwYXNzID0gcmVnaW9uLmlu
bmVyVGV4dC5sZW5ndGggIT0gMDsKKyAgICAgICAgICAgIC8vIFRoZSBlbGVtZW50IGJlY29tZXMg
YSByZWdpb24sIGl0cyBjb250ZW50IGdldHMgZGlzY29ubmVjdGVkLgorICAgICAgICAgICAgcmVn
aW9uLmNsYXNzTmFtZSA9ICJyZWdpb24iOworICAgICAgICAgICAgcGFzcyAmPSByZWdpb24uaW5u
ZXJUZXh0Lmxlbmd0aCA9PSAwOworICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoIjxwPiIgKyBw
YXNzID8gIlBBU1MiIDogIkZBSUwiICsgIjwvcD4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Jl
Z2lvbi1lbGVtZW50LWR5bmFtaWMtZGV0YWNoLWZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtZGV0YWNoLWZsb3ctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiOWZhMDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHlu
YW1pYy1kZXRhY2gtZmxvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0cyB0aGF0
IGNoYW5naW5nIGEgcmVnaW9uIGVsZW1lbnQgaW50byBhIG5vcm1hbCBlbGVtZW50IG1ha2VzIHRo
ZSBlbGVtZW50J3MgY29udGVudCBhdmFpbGFibGUuCisKK1RoaXMgdGV4dCBzaG91bGQgYmUgdmlz
aWJsZSB3aGVuIHRoZSBlbGVtZW50IGlzIG5vIGxvbmdlciBhIHJlZ2lvbi4KK1BBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWRl
dGFjaC1mbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQt
ZHluYW1pYy1kZXRhY2gtZmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjllYTU2ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
cmVnaW9uLWVsZW1lbnQtZHluYW1pYy1kZXRhY2gtZmxvdy5odG1sCkBAIC0wLDAgKzEsMjggQEAK
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAg
ICAgICAgICAgIC5yZWdpb24KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb250ZW50
OiAtd2Via2l0LWZyb20tZmxvdygibm8tZmxvdyIpOworICAgICAgICAgICAgfQorICAgICAgICA8
L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdHMgdGhhdCBj
aGFuZ2luZyBhIHJlZ2lvbiBlbGVtZW50IGludG8gYSBub3JtYWwgZWxlbWVudCBtYWtlcyB0aGUg
ZWxlbWVudCdzIGNvbnRlbnQgYXZhaWxhYmxlLjwvcD4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVn
aW9uIj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InJlZ2lvbl9jb250ZW50Ij5UaGlzIHRleHQgc2hv
dWxkIGJlIHZpc2libGUgd2hlbiB0aGUgZWxlbWVudCBpcyBubyBsb25nZXIgYSByZWdpb24uPC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB2YXIgcmVnaW9uID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicmVnaW9uIilbMF07CisgICAgICAgICAgICAvLyBUaGUg
ZWxlbWVudCBpcyBhIHJlZ2lvbiB3aXRob3V0IGEgY29ubmVjdGVkIGZsb3csIGl0cyBjb250ZW50
IGlzIG5vdCBhdmFpbGFibGUuCisgICAgICAgICAgICB2YXIgcGFzcyA9IHJlZ2lvbi5pbm5lclRl
eHQubGVuZ3RoID09IDA7CisgICAgICAgICAgICAvLyBUaGUgZWxlbWVudCBiZWNvbWVzIGEgbm9y
bWFsIGVsZW1lbnQsIGl0cyBjb250ZW50IGJlY29tZXMgYXZhaWxhYmxlLgorICAgICAgICAgICAg
cmVnaW9uLmNsYXNzTmFtZSA9ICIiOworICAgICAgICAgICAgcGFzcyAmPSByZWdpb24uaW5uZXJU
ZXh0Lmxlbmd0aCAhPSAwOworICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoIjxwPiIgKyBwYXNz
ID8gIlBBU1MiIDogIkZBSUwiICsgIjwvcD4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlbmRl
ci1yZWdpb24tcmVuZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3JlbmRlci1yZWdpb24tcmVuZGVyZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjIxNDVmNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvcmVuZGVyLXJlZ2lvbi1yZW5kZXJlci1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgxNzAKKyAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE3MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzg0eDE1NAorICAgICAgUmVuZGVyUmVnaW9uIHtESVZ9IGF0ICgwLDApIHNp
emUgNzg0eDIgW2JvcmRlcjogKDFweCBzb2xpZCAjRkYwMDAwKV0KKyAgICAgIFJlbmRlclJlZ2lv
biB7RElWfSBhdCAoMCwyKSBzaXplIDUyeDUyIFtib3JkZXI6ICgxcHggc29saWQgI0ZGMDAwMCld
CisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1NCkgc2l6ZSAxMDB4MTAwCisgICAgICAg
IFJlbmRlclJlZ2lvbiB7RElWfSBhdCAoMCwwKSBzaXplIDUyeDUyIFtib3JkZXI6ICgxcHggc29s
aWQgI0ZGMDAwMCldCitsYXllciBhdCAoOCwxNTApIHNpemUgNTJ4NTIKKyAgUmVuZGVyUmVnaW9u
IHtESVZ9IGF0ICg4LDE1MCkgc2l6ZSA1Mng1MiBbYm9yZGVyOiAoMXB4IHNvbGlkICNGRjAwMDAp
XQorbGF5ZXIgYXQgKDgsMjAwKSBzaXplIDUyeDUyCisgIFJlbmRlclJlZ2lvbiB7RElWfSBhdCAo
OCwyMDApIHNpemUgNTJ4NTIgW2JvcmRlcjogKDFweCBzb2xpZCAjRkYwMDAwKV0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZW5kZXItcmVnaW9uLXJlbmRlcmVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVuZGVyLXJlZ2lvbi1yZW5kZXJlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3MDE1M2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVuZGVyLXJlZ2lvbi1yZW5kZXJlci5odG1s
CkBAIC0wLDAgKzEsNzIgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c3R5bGU+CisgICAgLnJlZ2lvbgorICAgIHsKKyAgICAgICAgY29udGVudDogLXdlYmtpdC1mcm9t
LWZsb3coIm5vLWZsb3ciKTsKKyAgICB9CisKKyAgICAuYm9yZGVyCisgICAgeworICAgICAgICBi
b3JkZXI6IDFweCBzb2xpZCByZWQ7CisgICAgfQorCisgICAgLnNpemUKKyAgICB7CisgICAgICAg
IHdpZHRoOjUwcHg7CisgICAgICAgIGhlaWdodDo1MHB4OworICAgIH0KKworICAgIC5zaXplUGVy
Y2VudAorICAgIHsKKyAgICAgICAgd2lkdGg6IDUwJTsKKyAgICAgICAgaGVpZ2h0OiA1MCU7Cisg
ICAgfQorCisgICAgLnBvcworICAgIHsKKyAgICAgICAgdG9wOiAxNTBweDsKKyAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIH0KKworICAgIC5wb3MyCisgICAgeworICAgICAgICB0b3A6
IDIwMHB4OworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgfQorCisgICAgLnBvczMK
KyAgICB7CisgICAgICAgIHRvcDogMjUwcHg7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICB9CisKKyAgICAucGFyZW50CisgICAgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorCisgICAgLm91dGxpbmUKKyAgICB7CisgICAgICAg
IG91dGxpbmU6IGdyZWVuIGRvdHRlZCB0aGljazsKKyAgICB9CisKKyAgICAubm90dmlzaWJsZQor
ICAgIHsKKyAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIH0KKyAgICA8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0icmVnaW9uIGJvcmRlciI+RkFJTCBpZiB5
b3Ugc2VlIHRoZSB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uLjwvZGl2PgorICAgIDxkaXYgY2xhc3M9
InJlZ2lvbiBib3JkZXIgc2l6ZSI+RkFJTCBpZiB5b3Ugc2VlIHRoZSB0ZXh0IGluc2lkZSB0aGUg
cmVnaW9uLjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InBhcmVudCI+CisgICAgICAgIDxkaXYgY2xh
c3M9InJlZ2lvbiBib3JkZXIgc2l6ZVBlcmNlbnQiPkZBSUwgaWYgeW91IHNlZSB0aGUgdGV4dCBp
bnNpZGUgdGhlIHJlZ2lvbi48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWdp
b24gYm9yZGVyIHNpemUgcG9zIj5GQUlMIGlmIHlvdSBzZWUgdGhlIHRleHQgaW5zaWRlIHRoZSBy
ZWdpb24uPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVnaW9uIGJvcmRlciBzaXplIHBvczIgb3V0
bGluZSI+RkFJTCBpZiB5b3Ugc2VlIHRoZSB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uLjwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9InJlZ2lvbiBib3JkZXIgc2l6ZSBwb3MzIG5vdHZpc2libGUiPkZBSUwg
aWYgeW91IHNlZSB0aGUgdGV4dCBpbnNpZGUgdGhlIHJlZ2lvbi48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zY3JpcHQtdGVzdHMv
cmVnaW9uLWVsZW1lbnQtZGlzcGxheS1yZXN0cmljdGlvbi5qcyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9zY3JpcHQtdGVzdHMvcmVnaW9uLWVsZW1lbnQtZGlzcGxheS1yZXN0cmljdGlvbi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzEyMDdhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NjcmlwdC10ZXN0cy9yZWdpb24tZWxl
bWVudC1kaXNwbGF5LXJlc3RyaWN0aW9uLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Rlc2NyaXB0aW9u
KCJUZXN0IHRoYXQgb25seSBub24tcmVwbGFjZWQgYmxvY2sgZWxlbWVudHMgY2FuIGJlIHRyYW5z
Zm9ybWVkIGludG8gcmVnaW9ucy4iKTsKKworZnVuY3Rpb24gY3JlYXRlUmVnaW9uRWxlbWVudChl
bGVtZW50VHlwZSwgZGlzcGxheVR5cGUpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KGVsZW1lbnRUeXBlKTsKKyAgICB2YXIgdGV4dEVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiaW5zaWRlIGVsZW1lbnQiKTsKKyAgICBlbGVtZW50LmFwcGVuZENo
aWxkKHRleHRFbGVtZW50KTsKKyAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJkaXNwbGF5
IiwgZGlzcGxheVR5cGUpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7
CisKKyAgICAvLyBUcmFuc2Zvcm0gdGhlIGVsZW1lbnQgaW50byBhIHJlZ2lvbi4KKyAgICBlbGVt
ZW50LnN0eWxlLnNldFByb3BlcnR5KCJjb250ZW50IiwgIi13ZWJraXQtZnJvbS1mbG93KCduby1m
bG93JykiKTsKKworICAgIC8vIFRoZSByZWdpb24gZWxlbWVudCB3YXMgY3JlYXRlZCBpZiB0aGUg
bGVuZ3RoIG9mIGlubmVyIHRleHQgaXMgMC4KKyAgICB2YXIgcmVnaW9uQ3JlYXRlZCA9IGVsZW1l
bnQuaW5uZXJUZXh0Lmxlbmd0aCA9PSAwOworCisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChlbGVtZW50KTsKKworICAgIHJldHVybiByZWdpb25DcmVhdGVkOworfQorCitzaG91bGRCZUZh
bHNlKCdjcmVhdGVSZWdpb25FbGVtZW50KCJkaXYiLCAibm9uZSIpJyk7CitzaG91bGRCZVRydWUo
J2NyZWF0ZVJlZ2lvbkVsZW1lbnQoImRpdiIsICJibG9jayIpJyk7CitzaG91bGRCZVRydWUoJ2Ny
ZWF0ZVJlZ2lvbkVsZW1lbnQoImRpdiIsICJpbmxpbmUtYmxvY2siKScpOworc2hvdWxkQmVUcnVl
KCdjcmVhdGVSZWdpb25FbGVtZW50KCJkaXYiLCAicnVuLWluIiknKTsKK3Nob3VsZEJlVHJ1ZSgn
Y3JlYXRlUmVnaW9uRWxlbWVudCgiZGl2IiwgImNvbXBhY3QiKScpOworc2hvdWxkQmVGYWxzZSgn
Y3JlYXRlUmVnaW9uRWxlbWVudCgiZGl2IiwgImlubGluZSIpJyk7CitzaG91bGRCZUZhbHNlKCdj
cmVhdGVSZWdpb25FbGVtZW50KCJkaXYiLCAidGFibGUiKScpOworc2hvdWxkQmVGYWxzZSgnY3Jl
YXRlUmVnaW9uRWxlbWVudCgiZGl2IiwgImlubGluZS10YWJsZSIpJyk7CisKK3N1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmE0YTUzZS4uNTM0NjRhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTA3LTI2ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFA
YWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUFkZCBiYXNpYyBSZW5kZXJSZWdpb24g
c3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjQ2ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIFJlbmRlclJlZ2lvbiBvYmplY3QuCisgICAgICAgIEEg
UmVuZGVyT2JqZWN0IHRoYXQgdGFrZXMgaXRzIGNvbnRlbnQgZnJvbSBhICJuYW1lZCIgZmxvdyB3
aWxsIGJlY29tZSBhIFJlbmRlclJlZ2lvbiwgYW4gZWxlbWVudCB0aGF0IGlzIHVzZWQgdG8gZGlz
cGxheSB0aGUgY29udGVudCBmcm9tIGEgUmVuZGVyRmxvd1RocmVhZC4KKyAgICAgICAgQSBSZW5k
ZXJSZWdpb24gdGhhdCBpcyBtYXJrZWQgdG8gdGFrZSBpdHMgY29udGVudCBmcm9tIGEgbm9uIGV4
aXN0aW5nIGZsb3csIHdpbGwgaGF2ZSBpdHMgY29udGVudCBkaXNjb25uZWN0ZWQgZnJvbSB0aGUg
bm9ybWFsIGZsb3cuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvcmVnaW9ucy9yZWdpb24tZWxlbWVu
dC1kaXNwbGF5LXJlc3RyaWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9y
ZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFjaC1mbG93Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWRldGFjaC1mbG93Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvcmVnaW9ucy9yZW5kZXItcmVnaW9uLXJlbmRlcmVyLmh0bWwKKworICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJPYmplY3Q6OmlzUmVuZGVyUmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVnaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OlJlbmRl
clJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246On5SZW5kZXJSZWdpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpsYXlvdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyUmVnaW9uOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6aXNSZW5kZXJS
ZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpyZW5kZXJOYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyUmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYp
OgorCiAyMDExLTA3LTI1ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAog
ICAgICAgICBbQ01BS0VdIFNwbGl0IEpTQyByZWxhdGVkIGZpbGVzIGZyb20gV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCAxMzJjN2E2Li44NjcxYWQzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzYzNjYsNiArMzYzNjYsMTQgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclJl
Z2lvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcUmVuZGVyUmVnaW9uLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclJlcGxhY2VkLmNwcCIKIAkJ
CQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmFhNzhjMi4uOTFjMDM1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NTQ1Nyw2ICs1NDU3LDggQEAKIAkJRDNBQTEwRjQxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVl
cnlNYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEM0FBMTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAqLzsgfTsK
IAkJRDNENEU5NzIxMzBDN0NGRTAwN0JBNTQwIC8qIEhUTUxTdW1tYXJ5RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0Q0RTk3MDEzMEM3
Q0ZFMDA3QkE1NDAgLyogSFRNTFN1bW1hcnlFbGVtZW50LmNwcCAqLzsgfTsKIAkJRDNENEU5NzMx
MzBDN0NGRTAwN0JBNTQwIC8qIEhUTUxTdW1tYXJ5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNENEU5NzExMzBDN0NGRTAwN0JBNTQwIC8q
IEhUTUxTdW1tYXJ5RWxlbWVudC5oICovOyB9OworCQlEN0E3NTc5RDEzREU5Q0QzMDAxMjIzRDcg
LyogUmVuZGVyUmVnaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQ3QTc1NzlCMTNERTlDRDMwMDEyMjNENyAvKiBSZW5kZXJSZWdpb24uY3BwICov
OyB9OworCQlEN0E3NTc5RTEzREU5Q0QzMDAxMjIzRDcgLyogUmVuZGVyUmVnaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEN0E3NTc5QzEzREU5Q0Qz
MDAxMjIzRDcgLyogUmVuZGVyUmVnaW9uLmggKi87IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4
NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAy
NDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVu
dE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8q
IEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENv
bW1hbmQuaCAqLzsgfTsKQEAgLTEyMTU5LDYgKzEyMTYxLDggQEAKIAkJRDNBQTEwRjIxMjNBOThB
QTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhUXVlcnlNYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUQzRDRFOTcwMTMwQzdDRkUwMDdCQTU0MCAvKiBIVE1MU3VtbWFyeUVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFN1bW1hcnlFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNENEU5NzExMzBDN0NGRTAwN0JBNTQw
IC8qIEhUTUxTdW1tYXJ5RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MU3VtbWFyeUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDdB
NzU3OUIxM0RFOUNEMzAwMTIyM0Q3IC8qIFJlbmRlclJlZ2lvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJSZWdpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlEN0E3NTc5QzEzREU5Q0QzMDAxMjIzRDcgLyogUmVuZGVyUmVnaW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclJlZ2lvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2ll
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0
ZGVudENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
ZGVudE91dGRlbnRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIy
M0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk1NDYsNiArMTk1NTAsOCBAQAogCQkJCUE0M0JGNTlC
MTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5oICovLAogCQkJCTVBNTc0RjIyMTMx
REI5MzkwMDQ3MUI4OCAvKiBSZW5kZXJRdW90ZS5jcHAgKi8sCiAJCQkJNUE1NzRGMjMxMzFEQjkz
OTAwNDcxQjg4IC8qIFJlbmRlclF1b3RlLmggKi8sCisJCQkJRDdBNzU3OUIxM0RFOUNEMzAwMTIy
M0Q3IC8qIFJlbmRlclJlZ2lvbi5jcHAgKi8sCisJCQkJRDdBNzU3OUMxM0RFOUNEMzAwMTIyM0Q3
IC8qIFJlbmRlclJlZ2lvbi5oICovLAogCQkJCUE4NzFERkRFMEExNTM3NkIwMEIxMkE2OCAvKiBS
ZW5kZXJSZXBsYWNlZC5jcHAgKi8sCiAJCQkJQTg3MURGREYwQTE1Mzc2QjAwQjEyQTY4IC8qIFJl
bmRlclJlcGxhY2VkLmggKi8sCiAJCQkJQkNBODQ2RDQwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRl
clJlcGxpY2EuY3BwICovLApAQCAtMjMyNTEsNiArMjMyNTcsNyBAQAogCQkJCUUxQkU1MTJFMENG
NkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCUQ3QTc1NzlFMTNERTlDRDMwMDEyMjNENyAvKiBSZW5kZXJSZWdpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjYwMzcsNiArMjYwNDQsNyBAQAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1
OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYw
RkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1Mzcz
NTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQ3
QTc1NzlEMTNERTlDRDMwMDEyMjNENyAvKiBSZW5kZXJSZWdpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKaW5kZXggNjI4NTkyMS4uOWVhZmQ1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApA
QCAtMzU3LDYgKzM1NywxNCBAQCBOb2RlOjpTdHlsZUNoYW5nZSBOb2RlOjpkaWZmKGNvbnN0IFJl
bmRlclN0eWxlKiBzMSwgY29uc3QgUmVuZGVyU3R5bGUqIHMyKQogICAgIGlmICgoczEgJiYgczIp
ICYmIChzMS0+aGFzVGV4dENvbWJpbmUoKSAhPSBzMi0+aGFzVGV4dENvbWJpbmUoKSkpCiAgICAg
ICAgIGNoID0gRGV0YWNoOwogCisjaWYgRU5BQkxFKENTU19SRUdJT05TKQorICAgIC8vIFdoZW4g
ZWl0aGVyIHRoZSByZWdpb24gdGhyZWFkIG9yIHRoZSByZWdpb24gaW5kZXggaGFzIGNoYW5nZWQs
CisgICAgLy8gd2UgbmVlZCB0byBwcmVwYXJlIGEgc2VwYXJhdGUgcmVuZGVyIHJlZ2lvbiBvYmpl
Y3QuCisgICAgaWYgKChzMSAmJiBzMikgJiYgKChzMS0+cmVnaW9uVGhyZWFkKCkgIT0gczItPnJl
Z2lvblRocmVhZCgpIHx8IChzMS0+cmVnaW9uSW5kZXgoKSAhPSBzMi0+cmVnaW9uSW5kZXgoKSkp
KSkKKyAgICAgICAgICAgIGNoID0gRGV0YWNoOworI2VuZGlmCisKKwogICAgIHJldHVybiBjaDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA4NjU5
OWRkLi43M2Y3OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUg
IlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKKyNpbmNsdWRlICJS
ZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJSdWJ5LmgiCiAjaW5jbHVkZSAiUmVuZGVy
UnVieVRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKQEAgLTEzNSw2ICsxMzYs
MTEgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdChOb2RlKiBub2Rl
LCBSZW5kZXJTdHlsZSogc3R5bGUpCiAgICAgICAgIGNhc2UgSU5MSU5FX0JMT0NLOgogICAgICAg
ICBjYXNlIFJVTl9JTjoKICAgICAgICAgY2FzZSBDT01QQUNUOgorI2lmIEVOQUJMRShDU1NfUkVH
SU9OUykKKyAgICAgICAgICAgIC8vIE9ubHkgbm9uLXJlcGxhY2VkIGJsb2NrIGVsZW1lbnRzIGNh
biBiZWNvbWUgYSByZWdpb24uCisgICAgICAgICAgICBpZiAoIXN0eWxlLT5yZWdpb25UaHJlYWQo
KS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclJl
Z2lvbihub2RlKTsKKyNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRl
ckJsb2NrKG5vZGUpOwogICAgICAgICBjYXNlIExJU1RfSVRFTToKICAgICAgICAgICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJMaXN0SXRlbShub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAppbmRleCAwMjJlYjdmLi43ZjNjMDk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC00MjcsNiArNDI3LDEwIEBAIHB1YmxpYzoKICAg
ICBib29sIGlzUmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBtX3JlcGxhY2VkOyB9IC8vIGEgInJl
cGxhY2VkIiBlbGVtZW50IChzZWUgQ1NTKQogICAgIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxXcml0aW5nTW9kZTsgfQogCisjaWYgRU5B
QkxFKENTU19SRUdJT05TKQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKKwogICAgIGJvb2wgaGFzTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2hhc0xheWVyOyB9CiAgICAgCiAgICAgYm9vbCBoYXNCb3hEZWNvcmF0aW9ucygp
IGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRCYWNrZ3JvdW5kOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjgwNGRmZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRv
YmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKKworI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRl
ICJQYWludEluZm8uaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisKKyNpZiBFTkFCTEUoQ1NT
X1JFR0lPTlMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVuZGVyUmVnaW9uOjpSZW5kZXJS
ZWdpb24oTm9kZSogbm9kZSkKKzogUmVuZGVyQm94KG5vZGUpCit7Cit9CisKK1JlbmRlclJlZ2lv
bjo6flJlbmRlclJlZ2lvbigpCit7Cit9CisKK3ZvaWQgUmVuZGVyUmVnaW9uOjpsYXlvdXQoKQor
eworICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKKworICAgIGNvbXB1dGVMb2dpY2FsV2lkdGgo
KTsKKyAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworCisgICAgc2V0TmVlZHNMYXlvdXQoZmFs
c2UpOworfQorCit2b2lkIFJlbmRlclJlZ2lvbjo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAgICBpZiAocGFpbnRJbmZvLnBo
YXNlICE9IFBhaW50UGhhc2VGb3JlZ3JvdW5kICYmIHBhaW50SW5mby5waGFzZSAhPSBQYWludFBo
YXNlTWFzayAmJiBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZU91dGxpbmUKKyAgICAgICAg
JiYgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VTZWxmT3V0bGluZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KHRoaXMpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUpCisgICAgICAgIHJldHVybjsKKworICAgIExheW91dFBvaW50IGFkanVzdGVkUGFpbnRPZmZz
ZXQgPSBwYWludE9mZnNldCArIGxvY2F0aW9uKCk7CisKKyAgICBpZiAoaGFzQm94RGVjb3JhdGlv
bnMoKSAmJiAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kIHx8IHBhaW50
SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uKSkKKyAgICAgICAgcGFpbnRCb3hEZWNv
cmF0aW9ucyhwYWludEluZm8sIGFkanVzdGVkUGFpbnRPZmZzZXQpOworCisgICAgaWYgKHBhaW50
SW5mby5waGFzZSA9PSBQYWludFBoYXNlTWFzaykgeworICAgICAgICBwYWludE1hc2socGFpbnRJ
bmZvLCBhZGp1c3RlZFBhaW50T2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IExheW91dFJlY3QgcGFpbnRSZWN0ID0gTGF5b3V0UmVjdChhZGp1c3RlZFBhaW50T2Zmc2V0LCBz
aXplKCkpOworICAgIGlmICgocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VPdXRsaW5lIHx8
IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZk91dGxpbmUpICYmIHN0eWxlKCktPm91
dGxpbmVXaWR0aCgpKQorICAgICAgICBwYWludE91dGxpbmUocGFpbnRJbmZvLmNvbnRleHQsIHBh
aW50UmVjdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShDU1NfUkVHSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDM2ZjhhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC0wLDAgKzEsNzIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
CisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCd
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAq
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSZW5kZXJSZWdpb25faAor
I2RlZmluZSBSZW5kZXJSZWdpb25faAorCisjaWYgRU5BQkxFKENTU19SRUdJT05TKQorCisjaW5j
bHVkZSAiUmVuZGVyQm94LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVy
UmVnaW9uIDogcHVibGljIFJlbmRlckJveCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVuZGVy
UmVnaW9uKE5vZGUqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJSZWdpb24oKTsKKworICAgIHZpcnR1
YWwgYm9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIHZp
cnR1YWwgdm9pZCBsYXlvdXQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIq
IHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUmVnaW9uIjsgfQorfTsKKworaW5s
aW5lIFJlbmRlclJlZ2lvbiogdG9SZW5kZXJSZWdpb24oUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7
CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlclJlZ2lvbigpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUmVnaW9uKj4ob2JqZWN0KTsKK30KKworaW5saW5lIGNv
bnN0IFJlbmRlclJlZ2lvbiogdG9SZW5kZXJSZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlclJlZ2lvbigpKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyUmVnaW9uKj4ob2JqZWN0KTsKK30K
KworLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgor
dm9pZCB0b1JlbmRlclJlZ2lvbihjb25zdCBSZW5kZXJSZWdpb24qKTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19SRUdJT05TKQorCisjZW5kaWYgLy8g
UmVuZGVyUmVnaW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCmluZGV4IDM1YmEzZTQuLjIzOWY4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMzUwLDggKzM1MCw2IEBAIFN0eWxl
RGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVu
c2lnbmVkJiBjaGFuZ2VkQ29uCiAKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgICAgIGlm
IChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbG93VGhyZWFkICE9IG90aGVyLT5yYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV9mbG93VGhyZWFkCi0gICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9yZWdpb25UaHJlYWQgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3Jl
Z2lvblRocmVhZAotICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9u
SW5kZXggIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3JlZ2lvbkluZGV4CiAgICAg
ICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25PdmVyZmxvdyAhPSBvdGhl
ci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uT3ZlcmZsb3cpCiAgICAgICAgICAgICBy
ZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0OwogI2VuZGlmCg==
</data>
<flag name="review"
          id="97077"
          type_id="1"
          status="+"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="97078"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102231</attachid>
            <date>2011-07-27 23:50:16 -0700</date>
            <delta_ts>2011-07-28 16:33:52 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>64689-4.patch</filename>
            <type>text/plain</type>
            <size>26449</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNmQzNzQ5Li5hOGViYzQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDct
MjcgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdQWRkIGJhc2ljIFJlbmRlclJlZ2lvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50
LWRpc3BsYXktcmVzdHJpY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZGlzcGxheS1yZXN0cmljdGlvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1hdHRhY2gtZmxv
dy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9yZWdpb24tZWxl
bWVudC1keW5hbWljLWF0dGFjaC1mbG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVn
aW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWRldGFjaC1mbG93LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtZGV0YWNo
LWZsb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3JlbmRlci1yZWdpb24t
cmVuZGVyZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvcmVu
ZGVyLXJlZ2lvbi1yZW5kZXJlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
c2NyaXB0LXRlc3RzL3JlZ2lvbi1lbGVtZW50LWRpc3BsYXktcmVzdHJpY3Rpb24uanM6IEFkZGVk
LgorCiAyMDExLTA3LTI3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIENhbGxpbmcgd2luZG93LmZpbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgbXV0YXRpbmcgdGhlIGRv
Y3VtZW50IGNyYXNoZXMgV2ViS2l0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL3JlZ2lvbi1lbGVtZW50LWRpc3BsYXktcmVzdHJpY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWRpc3BsYXktcmVzdHJpY3Rpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjOGI1MjcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1l
bnQtZGlzcGxheS1yZXN0cmljdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVz
dCB0aGF0IG9ubHkgbm9uLXJlcGxhY2VkIGJsb2NrIGVsZW1lbnRzIGNhbiBiZSB0cmFuc2Zvcm1l
ZCBpbnRvIHJlZ2lvbnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNy
ZWF0ZVJlZ2lvbkVsZW1lbnQoImRpdiIsICJub25lIikgaXMgZmFsc2UKK1BBU1MgY3JlYXRlUmVn
aW9uRWxlbWVudCgiZGl2IiwgImJsb2NrIikgaXMgdHJ1ZQorUEFTUyBjcmVhdGVSZWdpb25FbGVt
ZW50KCJkaXYiLCAiaW5saW5lLWJsb2NrIikgaXMgdHJ1ZQorUEFTUyBjcmVhdGVSZWdpb25FbGVt
ZW50KCJkaXYiLCAicnVuLWluIikgaXMgdHJ1ZQorUEFTUyBjcmVhdGVSZWdpb25FbGVtZW50KCJk
aXYiLCAiY29tcGFjdCIpIGlzIHRydWUKK1BBU1MgY3JlYXRlUmVnaW9uRWxlbWVudCgiZGl2Iiwg
ImlubGluZSIpIGlzIGZhbHNlCitQQVNTIGNyZWF0ZVJlZ2lvbkVsZW1lbnQoImRpdiIsICJ0YWJs
ZSIpIGlzIGZhbHNlCitQQVNTIGNyZWF0ZVJlZ2lvbkVsZW1lbnQoImRpdiIsICJpbmxpbmUtdGFi
bGUiKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxl
bWVudC1kaXNwbGF5LXJlc3RyaWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
cmVnaW9uLWVsZW1lbnQtZGlzcGxheS1yZXN0cmljdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjU1ZmM3ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZGlzcGxheS1yZXN0cmljdGlvbi5odG1sCkBA
IC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlZ2lvbi1lbGVtZW50LWRpc3BsYXktcmVzdHJp
Y3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1hdHRhY2gt
Zmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1l
bnQtZHluYW1pYy1hdHRhY2gtZmxvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMGUxY2ZkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWF0dGFjaC1mbG93LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKK1Rlc3RzIHRoYXQgY2hhbmdpbmcgdGhlIGVsZW1lbnQgaW50byBh
IHJlZ2lvbiB3aXRob3V0IGFuIGV4aXN0aW5nIGZsb3cgZGlzY29ubmVjdHMgdGhlIGVsZW1lbnQn
cyBjb250ZW50LgorCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
cmVnaW9uLWVsZW1lbnQtZHluYW1pYy1hdHRhY2gtZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtYXR0YWNoLWZsb3cuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjhkNDk3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtYXR0YWNoLWZs
b3cuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAucmVnaW9uCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgY29udGVudDogLXdlYmtpdC1mcm9tLWZsb3coJ25vX2Zsb3cnKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxwPlRlc3RzIHRoYXQgY2hhbmdpbmcgdGhlIGVsZW1lbnQgaW50byBhIHJlZ2lv
biB3aXRob3V0IGFuIGV4aXN0aW5nIGZsb3cgZGlzY29ubmVjdHMgdGhlIGVsZW1lbnQncyBjb250
ZW50LjwvcD4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uX3dpdGhvdXRfZmxvdyI+CisgICAgICAg
ICAgICA8ZGl2IGlkPSJyZWdpb25fY29udGVudCI+VGhpcyB0ZXh0IHNob3VsZCBub3QgYmUgdmlz
aWJsZSB3aGVuIHRoZSBlbGVtZW50IGJlY29tZXMgYSByZWdpb24uPC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgICAgICB2YXIgcmVnaW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbl93aXRob3V0X2Zsb3ciKTsKKyAgICAgICAgICAgIC8vIFRoZSBlbGVtZW50IGlzIG5v
dCBhIHJlZ2lvbiB5ZXQsIGl0IGhhcyBjb250ZW50LgorICAgICAgICAgICAgdmFyIHBhc3MgPSBy
ZWdpb24uaW5uZXJUZXh0Lmxlbmd0aCAhPSAwOworICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQg
YmVjb21lcyBhIHJlZ2lvbiwgaXRzIGNvbnRlbnQgZ2V0cyBkaXNjb25uZWN0ZWQuCisgICAgICAg
ICAgICByZWdpb24uY2xhc3NOYW1lID0gInJlZ2lvbiI7CisgICAgICAgICAgICBwYXNzICY9IHJl
Z2lvbi5pbm5lclRleHQubGVuZ3RoID09IDA7CisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgi
PHA+IiArIHBhc3MgPyAiUEFTUyIgOiAiRkFJTCIgKyAiPC9wPiIpOworICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1kZXRhY2gtZmxvdy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvcmVnaW9uLWVsZW1lbnQtZHluYW1pYy1kZXRhY2gtZmxv
dy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI5ZmEw
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24tZWxl
bWVudC1keW5hbWljLWRldGFjaC1mbG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rl
c3RzIHRoYXQgY2hhbmdpbmcgYSByZWdpb24gZWxlbWVudCBpbnRvIGEgbm9ybWFsIGVsZW1lbnQg
bWFrZXMgdGhlIGVsZW1lbnQncyBjb250ZW50IGF2YWlsYWJsZS4KKworVGhpcyB0ZXh0IHNob3Vs
ZCBiZSB2aXNpYmxlIHdoZW4gdGhlIGVsZW1lbnQgaXMgbm8gbG9uZ2VyIGEgcmVnaW9uLgorUEFT
UwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5
bmFtaWMtZGV0YWNoLWZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZWdpb24t
ZWxlbWVudC1keW5hbWljLWRldGFjaC1mbG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOWVhNTZkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9yZWdpb24tZWxlbWVudC1keW5hbWljLWRldGFjaC1mbG93Lmh0bWwKQEAgLTAsMCAr
MSwyOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0
eWxlPgorICAgICAgICAgICAgLnJlZ2lvbgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IGNvbnRlbnQ6IC13ZWJraXQtZnJvbS1mbG93KCJuby1mbG93Iik7CisgICAgICAgICAgICB9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0
cyB0aGF0IGNoYW5naW5nIGEgcmVnaW9uIGVsZW1lbnQgaW50byBhIG5vcm1hbCBlbGVtZW50IG1h
a2VzIHRoZSBlbGVtZW50J3MgY29udGVudCBhdmFpbGFibGUuPC9wPgorICAgICAgICA8ZGl2IGNs
YXNzPSJyZWdpb24iPgorICAgICAgICAgICAgPGRpdiBpZD0icmVnaW9uX2NvbnRlbnQiPlRoaXMg
dGV4dCBzaG91bGQgYmUgdmlzaWJsZSB3aGVuIHRoZSBlbGVtZW50IGlzIG5vIGxvbmdlciBhIHJl
Z2lvbi48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHZhciByZWdpb24gPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJyZWdpb24iKVswXTsKKyAgICAgICAgICAg
IC8vIFRoZSBlbGVtZW50IGlzIGEgcmVnaW9uIHdpdGhvdXQgYSBjb25uZWN0ZWQgZmxvdywgaXRz
IGNvbnRlbnQgaXMgbm90IGF2YWlsYWJsZS4KKyAgICAgICAgICAgIHZhciBwYXNzID0gcmVnaW9u
LmlubmVyVGV4dC5sZW5ndGggPT0gMDsKKyAgICAgICAgICAgIC8vIFRoZSBlbGVtZW50IGJlY29t
ZXMgYSBub3JtYWwgZWxlbWVudCwgaXRzIGNvbnRlbnQgYmVjb21lcyBhdmFpbGFibGUuCisgICAg
ICAgICAgICByZWdpb24uY2xhc3NOYW1lID0gIiI7CisgICAgICAgICAgICBwYXNzICY9IHJlZ2lv
bi5pbm5lclRleHQubGVuZ3RoICE9IDA7CisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiPHA+
IiArIHBhc3MgPyAiUEFTUyIgOiAiRkFJTCIgKyAiPC9wPiIpOworICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvcmVuZGVyLXJlZ2lvbi1yZW5kZXJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvcmVuZGVyLXJlZ2lvbi1yZW5kZXJlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE0NWY1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZW5kZXItcmVnaW9uLXJlbmRlcmVyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEzIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDE3MAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTcwCisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MTU0CisgICAgICBSZW5kZXJSZWdpb24ge0RJVn0gYXQg
KDAsMCkgc2l6ZSA3ODR4MiBbYm9yZGVyOiAoMXB4IHNvbGlkICNGRjAwMDApXQorICAgICAgUmVu
ZGVyUmVnaW9uIHtESVZ9IGF0ICgwLDIpIHNpemUgNTJ4NTIgW2JvcmRlcjogKDFweCBzb2xpZCAj
RkYwMDAwKV0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU0KSBzaXplIDEwMHgxMDAK
KyAgICAgICAgUmVuZGVyUmVnaW9uIHtESVZ9IGF0ICgwLDApIHNpemUgNTJ4NTIgW2JvcmRlcjog
KDFweCBzb2xpZCAjRkYwMDAwKV0KK2xheWVyIGF0ICg4LDE1MCkgc2l6ZSA1Mng1MgorICBSZW5k
ZXJSZWdpb24ge0RJVn0gYXQgKDgsMTUwKSBzaXplIDUyeDUyIFtib3JkZXI6ICgxcHggc29saWQg
I0ZGMDAwMCldCitsYXllciBhdCAoOCwyMDApIHNpemUgNTJ4NTIKKyAgUmVuZGVyUmVnaW9uIHtE
SVZ9IGF0ICg4LDIwMCkgc2l6ZSA1Mng1MiBbYm9yZGVyOiAoMXB4IHNvbGlkICNGRjAwMDApXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3JlbmRlci1yZWdpb24tcmVuZGVy
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZW5kZXItcmVnaW9uLXJlbmRlcmVy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzcwMTUzYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9yZW5kZXItcmVnaW9uLXJlbmRl
cmVyLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzdHlsZT4KKyAgICAucmVnaW9uCisgICAgeworICAgICAgICBjb250ZW50OiAtd2Vi
a2l0LWZyb20tZmxvdygibm8tZmxvdyIpOworICAgIH0KKworICAgIC5ib3JkZXIKKyAgICB7Cisg
ICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICB9CisKKyAgICAuc2l6ZQorICAgIHsK
KyAgICAgICAgd2lkdGg6NTBweDsKKyAgICAgICAgaGVpZ2h0OjUwcHg7CisgICAgfQorCisgICAg
LnNpemVQZXJjZW50CisgICAgeworICAgICAgICB3aWR0aDogNTAlOworICAgICAgICBoZWlnaHQ6
IDUwJTsKKyAgICB9CisKKyAgICAucG9zCisgICAgeworICAgICAgICB0b3A6IDE1MHB4OworICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgfQorCisgICAgLnBvczIKKyAgICB7CisgICAg
ICAgIHRvcDogMjAwcHg7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB9CisKKyAg
ICAucG9zMworICAgIHsKKyAgICAgICAgdG9wOiAyNTBweDsKKyAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIH0KKworICAgIC5wYXJlbnQKKyAgICB7CisgICAgICAgIHdpZHRoOiAxMDBw
eDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9CisKKyAgICAub3V0bGluZQorICAgIHsK
KyAgICAgICAgb3V0bGluZTogZ3JlZW4gZG90dGVkIHRoaWNrOworICAgIH0KKworICAgIC5ub3R2
aXNpYmxlCisgICAgeworICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CisgICAgfQorICAgIDwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJyZWdpb24gYm9yZGVyIj5G
QUlMIGlmIHlvdSBzZWUgdGhlIHRleHQgaW5zaWRlIHRoZSByZWdpb24uPC9kaXY+CisgICAgPGRp
diBjbGFzcz0icmVnaW9uIGJvcmRlciBzaXplIj5GQUlMIGlmIHlvdSBzZWUgdGhlIHRleHQgaW5z
aWRlIHRoZSByZWdpb24uPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icGFyZW50Ij4KKyAgICAgICAg
PGRpdiBjbGFzcz0icmVnaW9uIGJvcmRlciBzaXplUGVyY2VudCI+RkFJTCBpZiB5b3Ugc2VlIHRo
ZSB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uLjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9InJlZ2lvbiBib3JkZXIgc2l6ZSBwb3MiPkZBSUwgaWYgeW91IHNlZSB0aGUgdGV4dCBpbnNp
ZGUgdGhlIHJlZ2lvbi48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWdpb24gYm9yZGVyIHNpemUg
cG9zMiBvdXRsaW5lIj5GQUlMIGlmIHlvdSBzZWUgdGhlIHRleHQgaW5zaWRlIHRoZSByZWdpb24u
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVnaW9uIGJvcmRlciBzaXplIHBvczMgbm90dmlzaWJs
ZSI+RkFJTCBpZiB5b3Ugc2VlIHRoZSB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uLjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Njcmlw
dC10ZXN0cy9yZWdpb24tZWxlbWVudC1kaXNwbGF5LXJlc3RyaWN0aW9uLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3NjcmlwdC10ZXN0cy9yZWdpb24tZWxlbWVudC1kaXNwbGF5LXJlc3Ry
aWN0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMTIwN2EKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2NyaXB0LXRlc3RzL3Jl
Z2lvbi1lbGVtZW50LWRpc3BsYXktcmVzdHJpY3Rpb24uanMKQEAgLTAsMCArMSwzMSBAQAorZGVz
Y3JpcHRpb24oIlRlc3QgdGhhdCBvbmx5IG5vbi1yZXBsYWNlZCBibG9jayBlbGVtZW50cyBjYW4g
YmUgdHJhbnNmb3JtZWQgaW50byByZWdpb25zLiIpOworCitmdW5jdGlvbiBjcmVhdGVSZWdpb25F
bGVtZW50KGVsZW1lbnRUeXBlLCBkaXNwbGF5VHlwZSkKK3sKKyAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudFR5cGUpOworICAgIHZhciB0ZXh0RWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJpbnNpZGUgZWxlbWVudCIpOworICAgIGVsZW1lbnQu
YXBwZW5kQ2hpbGQodGV4dEVsZW1lbnQpOworICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHko
ImRpc3BsYXkiLCBkaXNwbGF5VHlwZSk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
bGVtZW50KTsKKworICAgIC8vIFRyYW5zZm9ybSB0aGUgZWxlbWVudCBpbnRvIGEgcmVnaW9uLgor
ICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImNvbnRlbnQiLCAiLXdlYmtpdC1mcm9tLWZs
b3coJ25vLWZsb3cnKSIpOworCisgICAgLy8gVGhlIHJlZ2lvbiBlbGVtZW50IHdhcyBjcmVhdGVk
IGlmIHRoZSBsZW5ndGggb2YgaW5uZXIgdGV4dCBpcyAwLgorICAgIHZhciByZWdpb25DcmVhdGVk
ID0gZWxlbWVudC5pbm5lclRleHQubGVuZ3RoID09IDA7CisKKyAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGVsZW1lbnQpOworCisgICAgcmV0dXJuIHJlZ2lvbkNyZWF0ZWQ7Cit9CisKK3No
b3VsZEJlRmFsc2UoJ2NyZWF0ZVJlZ2lvbkVsZW1lbnQoImRpdiIsICJub25lIiknKTsKK3Nob3Vs
ZEJlVHJ1ZSgnY3JlYXRlUmVnaW9uRWxlbWVudCgiZGl2IiwgImJsb2NrIiknKTsKK3Nob3VsZEJl
VHJ1ZSgnY3JlYXRlUmVnaW9uRWxlbWVudCgiZGl2IiwgImlubGluZS1ibG9jayIpJyk7CitzaG91
bGRCZVRydWUoJ2NyZWF0ZVJlZ2lvbkVsZW1lbnQoImRpdiIsICJydW4taW4iKScpOworc2hvdWxk
QmVUcnVlKCdjcmVhdGVSZWdpb25FbGVtZW50KCJkaXYiLCAiY29tcGFjdCIpJyk7CitzaG91bGRC
ZUZhbHNlKCdjcmVhdGVSZWdpb25FbGVtZW50KCJkaXYiLCAiaW5saW5lIiknKTsKK3Nob3VsZEJl
RmFsc2UoJ2NyZWF0ZVJlZ2lvbkVsZW1lbnQoImRpdiIsICJ0YWJsZSIpJyk7CitzaG91bGRCZUZh
bHNlKCdjcmVhdGVSZWdpb25FbGVtZW50KCJkaXYiLCAiaW5saW5lLXRhYmxlIiknKTsKKworc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1OTFmNTI5Li5hMjVjNmM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDctMjcgIE1paG5lYSBPdmlkZW5pZSAg
PG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1JlZ2lvbnNdQWRkIGJhc2ljIFJlbmRl
clJlZ2lvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NDY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0aGUgUmVuZGVyUmVnaW9uIG9iamVjdC4KKyAg
ICAgICAgQSBSZW5kZXJPYmplY3QgdGhhdCB0YWtlcyBpdHMgY29udGVudCBmcm9tIGEgIm5hbWVk
IiBmbG93IHdpbGwgYmVjb21lIGEgUmVuZGVyUmVnaW9uLCBhbiBlbGVtZW50IHRoYXQgaXMgdXNl
ZCB0byBkaXNwbGF5IHRoZSBjb250ZW50IGZyb20gYSBSZW5kZXJGbG93VGhyZWFkLgorICAgICAg
ICBBIFJlbmRlclJlZ2lvbiB0aGF0IGlzIG1hcmtlZCB0byB0YWtlIGl0cyBjb250ZW50IGZyb20g
YSBub24gZXhpc3RpbmcgZmxvdywgd2lsbCBoYXZlIGl0cyBjb250ZW50IGRpc2Nvbm5lY3RlZCBm
cm9tIHRoZSBub3JtYWwgZmxvdy4KKworICAgICAgICBUZXN0czogZmFzdC9yZWdpb25zL3JlZ2lv
bi1lbGVtZW50LWRpc3BsYXktcmVzdHJpY3Rpb24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9y
ZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtYXR0YWNoLWZsb3cuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9yZWdpb25zL3JlZ2lvbi1lbGVtZW50LWR5bmFtaWMtZGV0YWNoLWZsb3cuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL3JlbmRlci1yZWdpb24tcmVuZGVyZXIuaHRt
bAorCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Ob2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpjcmVhdGVP
YmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJSZWdpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lv
bjo6UmVuZGVyUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6flJlbmRl
clJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OmxheW91dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpp
c1JlbmRlclJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnJlbmRlck5h
bWUpOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6ZGlmZik6CisKIDIwMTEtMDctMjcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQ2FsbGluZyB3aW5kb3cuZmluZCBpbW1lZGlhdGVseSBhZnRlciBtdXRhdGlu
ZyB0aGUgZG9jdW1lbnQgY3Jhc2hlcyBXZWJLaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDkzZDY1ODAuLjRkN2Y5NzAgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zNjM3NCw2ICszNjM3
NCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcUmVuZGVyUmVnaW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJSZWdpb24uY3BwIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVu
ZGVyUmVwbGFjZWQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmOWZi
Yzc3Li5mZTNkYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC01NDYxLDYgKzU0NjEsOCBAQAogCQlEM0FBMTBGNDEyM0E5OEFB
MDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQUExMEYyMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1
ZXJ5TWF0Y2hlci5oICovOyB9OwogCQlEM0Q0RTk3MjEzMEM3Q0ZFMDA3QkE1NDAgLyogSFRNTFN1
bW1hcnlFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQzRDRFOTcwMTMwQzdDRkUwMDdCQTU0MCAvKiBIVE1MU3VtbWFyeUVsZW1lbnQuY3Bw
ICovOyB9OwogCQlEM0Q0RTk3MzEzMEM3Q0ZFMDA3QkE1NDAgLyogSFRNTFN1bW1hcnlFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0Q0RTk3
MTEzMEM3Q0ZFMDA3QkE1NDAgLyogSFRNTFN1bW1hcnlFbGVtZW50LmggKi87IH07CisJCUQ3MEFE
NjU3MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDcwQUQ2NTUxM0UxMzQyQjAwNUI1MEI0IC8q
IFJlbmRlclJlZ2lvbi5jcHAgKi87IH07CisJCUQ3MEFENjU4MTNFMTM0MkIwMDVCNTBCNCAvKiBS
ZW5kZXJSZWdpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQ3MEFENjU2MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uaCAqLzsgfTsKIAkJ
RDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENv
b2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDOTBBNTA4
RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovOyB9OwogCQlEQjIzQzJD
QzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkNBMEE1MDhEMjkwMDI0ODlF
QiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovOyB9OwpAQCAtMTIxNjcsNiArMTIxNjksOCBA
QAogCQlEM0FBMTBGMjEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeU1hdGNoZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNENEU5NzAxMzBDN0NGRTAwN0JBNTQwIC8qIEhUTUxT
dW1tYXJ5RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MU3VtbWFyeUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0Q0
RTk3MTEzMEM3Q0ZFMDA3QkE1NDAgLyogSFRNTFN1bW1hcnlFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxTdW1tYXJ5RWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlENzBBRDY1NTEzRTEzNDJCMDA1QjUwQjQgLyogUmVuZGVyUmVnaW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclJlZ2lvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQ3MEFENjU2MTNFMTM0MkIwMDVCNTBC
NCAvKiBSZW5kZXJSZWdpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyUmVnaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5
NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkw
MDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVu
dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRl
bnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTU1Niw2ICsxOTU2
MCw4IEBACiAJCQkJQTQzQkY1OUIxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmgg
Ki8sCiAJCQkJNUE1NzRGMjIxMzFEQjkzOTAwNDcxQjg4IC8qIFJlbmRlclF1b3RlLmNwcCAqLywK
IAkJCQk1QTU3NEYyMzEzMURCOTM5MDA0NzFCODggLyogUmVuZGVyUXVvdGUuaCAqLywKKwkJCQlE
NzBBRDY1NTEzRTEzNDJCMDA1QjUwQjQgLyogUmVuZGVyUmVnaW9uLmNwcCAqLywKKwkJCQlENzBB
RDY1NjEzRTEzNDJCMDA1QjUwQjQgLyogUmVuZGVyUmVnaW9uLmggKi8sCiAJCQkJQTg3MURGREUw
QTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlclJlcGxhY2VkLmNwcCAqLywKIAkJCQlBODcxREZERjBB
MTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCAqLywKIAkJCQlCQ0E4NDZENDBEQzY3
QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVwbGljYS5jcHAgKi8sCkBAIC0yMzI2NSw2ICsyMzI3MSw3
IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJl
YWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUQ3MEFENjU4MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5k
ZXJSZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjYwNTMsNiArMjYwNjAsNyBAQAogCQkJCTk3
N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlENzBBRDY1NzEzRTEzNDJCMDA1QjUwQjQgLyogUmVuZGVyUmVn
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGQyNDFjZTguLjQzYzc2
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTM2MSw2ICszNjEsMTEgQEAgTm9kZTo6U3R5bGVDaGFu
Z2UgTm9kZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogczEsIGNvbnN0IFJlbmRlclN0eWxlKiBz
MikKICAgICAvLyBXZSBuZWVkIHRvIHJlYXR0YWNoIHRoZSBub2RlLCBzbyB0aGF0IGl0IGlzIG1v
dmVkIHRvIHRoZSBjb3JyZWN0IFJlbmRlckZsb3dUaHJlYWQuCiAgICAgaWYgKChzMSAmJiBzMikg
JiYgKHMxLT5mbG93VGhyZWFkKCkgIT0gczItPmZsb3dUaHJlYWQoKSkpCiAgICAgICAgIGNoID0g
RGV0YWNoOworCisgICAgLy8gV2hlbiBlaXRoZXIgdGhlIHJlZ2lvbiB0aHJlYWQgb3IgdGhlIHJl
Z2lvbiBpbmRleCBoYXMgY2hhbmdlZCwKKyAgICAvLyB3ZSBuZWVkIHRvIHByZXBhcmUgYSBzZXBh
cmF0ZSByZW5kZXIgcmVnaW9uIG9iamVjdC4KKyAgICBpZiAoKHMxICYmIHMyKSAmJiAoKHMxLT5y
ZWdpb25UaHJlYWQoKSAhPSBzMi0+cmVnaW9uVGhyZWFkKCkgfHwgKHMxLT5yZWdpb25JbmRleCgp
ICE9IHMyLT5yZWdpb25JbmRleCgpKSkpKQorICAgICAgICAgICAgY2ggPSBEZXRhY2g7CiAjZW5k
aWYKIAogICAgIHJldHVybiBjaDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKaW5kZXggODM4YmM5NS4uZTdjYTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxp
bmUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVt
LmgiCisjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyUnVieS5oIgog
I2luY2x1ZGUgIlJlbmRlclJ1YnlUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgi
CkBAIC0xMzUsNiArMTM2LDExIEBAIFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpjcmVhdGVP
YmplY3QoTm9kZSogbm9kZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgICAgICBjYXNlIElOTElO
RV9CTE9DSzoKICAgICAgICAgY2FzZSBSVU5fSU46CiAgICAgICAgIGNhc2UgQ09NUEFDVDoKKyNp
ZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAgICAgICAgICAvLyBPbmx5IG5vbi1yZXBsYWNlZCBi
bG9jayBlbGVtZW50cyBjYW4gYmVjb21lIGEgcmVnaW9uLgorICAgICAgICAgICAgaWYgKCFzdHls
ZS0+cmVnaW9uVGhyZWFkKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcg
KGFyZW5hKSBSZW5kZXJSZWdpb24obm9kZSk7CisjZW5kaWYKICAgICAgICAgICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJCbG9jayhub2RlKTsKICAgICAgICAgY2FzZSBMSVNUX0lURU06CiAg
ICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyTGlzdEl0ZW0obm9kZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggOTM0MjdhNy4uMmFhZWIzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNDMxLDYgKzQzMSwx
MCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1JlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4gbV9yZXBs
YWNlZDsgfSAvLyBhICJyZXBsYWNlZCIgZWxlbWVudCAoc2VlIENTUykKICAgICBib29sIGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsV3JpdGluZ01v
ZGU7IH0KIAorI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJSZWdpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisKICAgICBib29sIGhh
c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9oYXNMYXllcjsgfQogICAgIAogICAgIGJvb2wgaGFz
Qm94RGVjb3JhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3BhaW50QmFja2dyb3VuZDsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi44MDRkZmYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENv
cHlyaWdodCAyMDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUK
KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2Ns
YWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVy
UmVnaW9uLmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbnRS
ZWN0LmgiCisjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgor
CisjaWYgRU5BQkxFKENTU19SRUdJT05TKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlbmRl
clJlZ2lvbjo6UmVuZGVyUmVnaW9uKE5vZGUqIG5vZGUpCis6IFJlbmRlckJveChub2RlKQorewor
fQorCitSZW5kZXJSZWdpb246On5SZW5kZXJSZWdpb24oKQoreworfQorCit2b2lkIFJlbmRlclJl
Z2lvbjo6bGF5b3V0KCkKK3sKKyAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CisKKyAgICBjb21w
dXRlTG9naWNhbFdpZHRoKCk7CisgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKworICAgIHNl
dE5lZWRzTGF5b3V0KGZhbHNlKTsKK30KKwordm9pZCBSZW5kZXJSZWdpb246OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit7CisgICAg
aWYgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlRm9yZWdyb3VuZCAmJiBwYWludEluZm8u
cGhhc2UgIT0gUGFpbnRQaGFzZU1hc2sgJiYgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VP
dXRsaW5lCisgICAgICAgICYmIHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlU2VsZk91dGxp
bmUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0
aGluUm9vdCh0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHN0eWxlKCktPnZpc2li
aWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICByZXR1cm47CisKKyAgICBMYXlvdXRQb2ludCBh
ZGp1c3RlZFBhaW50T2Zmc2V0ID0gcGFpbnRPZmZzZXQgKyBsb2NhdGlvbigpOworCisgICAgaWYg
KGhhc0JveERlY29yYXRpb25zKCkgJiYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9y
ZWdyb3VuZCB8fCBwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbikpCisgICAg
ICAgIHBhaW50Qm94RGVjb3JhdGlvbnMocGFpbnRJbmZvLCBhZGp1c3RlZFBhaW50T2Zmc2V0KTsK
KworICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZU1hc2spIHsKKyAgICAgICAg
cGFpbnRNYXNrKHBhaW50SW5mbywgYWRqdXN0ZWRQYWludE9mZnNldCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBMYXlvdXRSZWN0IHBhaW50UmVjdCA9IExheW91dFJlY3QoYWRqdXN0
ZWRQYWludE9mZnNldCwgc2l6ZSgpKTsKKyAgICBpZiAoKHBhaW50SW5mby5waGFzZSA9PSBQYWlu
dFBoYXNlT3V0bGluZSB8fCBwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGZPdXRsaW5l
KSAmJiBzdHlsZSgpLT5vdXRsaW5lV2lkdGgoKSkKKyAgICAgICAgcGFpbnRPdXRsaW5lKHBhaW50
SW5mby5jb250ZXh0LCBwYWludFJlY3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1JFR0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2QzNmY4YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24u
aApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVtcyBJ
bmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhP
TERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgor
ICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
UmVuZGVyUmVnaW9uX2gKKyNkZWZpbmUgUmVuZGVyUmVnaW9uX2gKKworI2lmIEVOQUJMRShDU1Nf
UkVHSU9OUykKKworI2luY2x1ZGUgIlJlbmRlckJveC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFJlbmRlclJlZ2lvbiA6IHB1YmxpYyBSZW5kZXJCb3ggeworcHVibGljOgorICAg
IGV4cGxpY2l0IFJlbmRlclJlZ2lvbihOb2RlKik7CisgICAgdmlydHVhbCB+UmVuZGVyUmVnaW9u
KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJSZWdpb24oKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisgICAgdmlydHVhbCB2b2lkIHBh
aW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclJlZ2lv
biI7IH0KK307CisKK2lubGluZSBSZW5kZXJSZWdpb24qIHRvUmVuZGVyUmVnaW9uKFJlbmRlck9i
amVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJS
ZWdpb24oKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJlZ2lvbio+KG9iamVjdCk7
Cit9CisKK2lubGluZSBjb25zdCBSZW5kZXJSZWdpb24qIHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJl
bmRlck9iamVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNS
ZW5kZXJSZWdpb24oKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclJlZ2lv
bio+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5u
ZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5kZXJSZWdpb24oY29uc3QgUmVuZGVyUmVnaW9uKik7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfUkVHSU9O
UykKKworI2VuZGlmIC8vIFJlbmRlclJlZ2lvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA2YTMyODRkLi4xM2RjZTM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTM0OSw5
ICszNDksNyBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVy
U3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAgICAgICAgcmV0dXJuIFN0
eWxlRGlmZmVyZW5jZUxheW91dDsKIAogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKLSAgICAgICAg
aWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3JlZ2lvblRocmVhZCAhPSBvdGhlci0+cmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fcmVnaW9uVGhyZWFkCi0gICAgICAgICAgICB8fCByYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV9yZWdpb25JbmRleCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fcmVnaW9uSW5kZXgKLSAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3Jl
Z2lvbk92ZXJmbG93ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25PdmVy
ZmxvdykKKyAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3JlZ2lvbk92ZXJmbG93
ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25PdmVyZmxvdykKICAgICAg
ICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CiAjZW5kaWYKICAgICAgICAgaWYg
KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4aWJsZUJveC5nZXQoKSAhPSBv
dGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmdldCgp
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>