<?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>159620</bug_id>
          
          <creation_ts>2016-07-11 06:40:02 -0700</creation_ts>
          <short_desc>Move parsing of mpadded attributes to a MathMLPaddedElement class</short_desc>
          <delta_ts>2016-07-12 21:47:53 -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>MathML</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>155792</dependson>
    
    <dependson>156792</dependson>
          <blocked>156536</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>alex</cc>
    
    <cc>bfulgham</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1209627</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-11 06:40:02 -0700</bug_when>
    <thetext>This is bug 156536 for the mpadded element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209630</commentid>
    <comment_count>1</comment_count>
      <attachid>283313</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-11 06:52:14 -0700</bug_when>
    <thetext>Created attachment 283313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210008</commentid>
    <comment_count>2</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-12 06:14:10 -0700</bug_when>
    <thetext>Note: This patch required bug 156792 to be fixed. Also, I wrote it on top of bug 159619 so it will still not apply to trunk of repo for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210049</commentid>
    <comment_count>3</comment_count>
      <attachid>283418</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-12 09:46:16 -0700</bug_when>
    <thetext>Created attachment 283418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210054</commentid>
    <comment_count>4</comment_count>
      <attachid>283418</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-07-12 09:58:31 -0700</bug_when>
    <thetext>Comment on attachment 283418
Patch

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

Looks like a good refactoring. Feel free to land if there are no regressions.

&gt; Source/WebCore/mathml/MathMLInlineContainerElement.cpp:-84
&gt; -        return createRenderer&lt;RenderMathMLPadded&gt;(*this, WTFMove(style));

Good!

&gt; Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp:47
&gt; +    // FIXME: Negative width values are not supported yet.

Is there a Bugzilla for this? If so, can you please note what it is here?

&gt; Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp:60
&gt; +    if (height &lt; 0)

Do we have a similar (to width) expectation to support negative height/depth/lspace in the future?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210316</commentid>
    <comment_count>5</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-12 21:14:19 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp:47
&gt; &gt; +    // FIXME: Negative width values are not supported yet.
&gt; 
&gt; Is there a Bugzilla for this? If so, can you please note what it is here?
&gt; 
&gt; &gt; Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp:60
&gt; &gt; +    if (height &lt; 0)
&gt; 
&gt; Do we have a similar (to width) expectation to support negative
&gt; height/depth/lspace in the future?

OK, just checked the spec and actually we miss negative lspace (not width/height/depth).

&quot;Note that since a leading minus sign indicates a decrement, the size attributes (height, depth, width) cannot be set directly to negative values. In addition, specifying a decrement that would produce a net negative value for these attributes has the same effect as setting the attribute to zero. In other words, the effective bounding box of an mpadded element always has non-negative dimensions. However, negative values are allowed for the relative positioning attributes lspace and voffset.&quot;

I&apos;ll move this discussion to bug 85730.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210320</commentid>
    <comment_count>6</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-12 21:47:53 -0700</bug_when>
    <thetext>Committed r203150: &lt;http://trac.webkit.org/changeset/203150&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283313</attachid>
            <date>2016-07-11 06:52:14 -0700</date>
            <delta_ts>2016-07-12 09:46:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0004-Bug-159620-Move-parsing-of-mpadded-attributes-to-a-M.patch</filename>
            <type>text/plain</type>
            <size>21082</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBkNDcyYTk4OGRjNzVkYmYzYzZiNzFkNzFmZGI4MjIyZmFmOTVhY2QwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmcmVkLndhbmdAZnJlZS5mcj4KRGF0
ZTogTW9uLCAxMSBKdWwgMjAxNiAxNTo0OTowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNC80XSBC
dWcgMTU5NjIwIC0gTW92ZSBwYXJzaW5nIG9mIG1wYWRkZWQgYXR0cmlidXRlcyB0byBhCiBNYXRo
TUxQYWRkZWRFbGVtZW50IGNsYXNzCgotLS0KIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
ICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAzNCArKysrKysrKwogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAgNiArKwogU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEFsbEluT25lLmNwcCAgICAgICAgICAgfCAgMSArCiAuLi4vbWF0aG1sL01h
dGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwICAgICAgICB8ICAzIC0KIFNvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmNwcCAgICAgIHwgOTcgKysrKysrKysrKysr
KysrKysrKysrKwogU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuaCAg
ICAgICAgfCA1NyArKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3Mu
aW4gICAgICAgICAgICAgICAgICB8ICAyICstCiAuLi4vcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxQYWRkZWQuY3BwICAgICAgICB8IDQyICsrKysrKy0tLS0KIC4uLi9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUGFkZGVkLmggIHwgIDUgKysKIDEwIGZpbGVzIGNoYW5n
ZWQsIDIyOSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwYmEyZGQ5Li41YWZlYTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTk4Nyw2ICsxOTg3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIG1hdGht
bC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKICAgICBtYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50
LmNwcAogICAgIG1hdGhtbC9NYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwCisgICAgbWF0aG1s
L01hdGhNTFBhZGRlZEVsZW1lbnQuY3BwCiAgICAgbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQu
Y3BwCiAgICAgbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVudC5jcHAKICAgICBtYXRobWwvTWF0aE1M
VGV4dEVsZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQxOWE0MC4uNmQ3M2U0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE2LTA3LTExICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdh
bGlhLmNvbT4KIAorICAgICAgICBNb3ZlIHBhcnNpbmcgb2YgbXBhZGRlZCBhdHRyaWJ1dGVzIHRv
IGEgTWF0aE1MUGFkZGVkRWxlbWVudCBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBiZWhhdmlvciBpcyB1bmNoYW5nZWQu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIE1hdGhNTFBhZGRlZEVsZW1lbnQgZmls
ZXMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4K
KyAgICAgICAgKiBtYXRobWwvTWF0aE1MQWxsSW5PbmUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBt
YXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHA6IFJlbW92ZSBoYW5kbGluZyBv
ZiBtcGFkZGVkLgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxQYWRkZWRFbGVtZW50OjpNYXRoTUxQYWRkZWRF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFBhZGRlZEVsZW1lbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxQYWRkZWRFbGVtZW50Ojp3aWR0aCk6IEV4cG9zZSB3
aWR0aCBhdHRyaWJ1dGUgYXMgYSBNYXRoTUxMZW5ndGggdW50aWwgbXBhZGRlZAorICAgICAgICBw
c2V1ZG8tdW5pdHMgYXJlIHN1cHBvcnRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFBhZGRl
ZEVsZW1lbnQ6OmhlaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MUGFkZGVk
RWxlbWVudDo6ZGVwdGgpOiBEaXR0bworICAgICAgICAoV2ViQ29yZTo6TWF0aE1MUGFkZGVkRWxl
bWVudDo6bHNwYWNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxQYWRkZWRFbGVt
ZW50Ojp2b2Zmc2V0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxQYWRkZWRFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZSk6IE1ha2UgbGVuZ3RoIGF0dHJpYnV0ZSBkaXJ0eS4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1hdGhNTFBhZGRlZEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6
IE1vdmVkIGNvZGUgZnJvbSBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LgorICAgICAgICAq
IG1hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9t
YXRodGFncy5pbjogTWFwIG1hcGRkZWQgdG8gTWF0aE1MUGFkZGVkRWxlbWVudC4KKyAgICAgICAg
KiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJNYXRoTUxQYWRkZWQ6OnJlc29sdmVXaWR0aCk6IEhlbHBlciBmdW5jdGlvbiB0
byByZXNvbHZlIHdpZHRoLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MUGFkZGVkOjpy
ZXNvbHZlQXR0cmlidXRlcyk6IEhlbHBlciBmdW5jdGlvbiB0byByZXNvbHZlIGFsbCBhdHRyaWJ1
dGVzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MUGFkZGVkOjpjb21wdXRlUHJlZmVy
cmVkTG9naWNhbFdpZHRocyk6IFVzZSByZXNvbHZlV2lkdGguCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNYXRoTUxQYWRkZWQ6OmxheW91dEJsb2NrKTogVXNlIHJlc29sdmVBdHRyaWJ1dGVzLgor
ICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUGFkZGVkLmg6IEFkZCBuZXcg
aGVscGVyIGZ1bmN0aW9ucyB0byBhY2Nlc3MgYXR0cmlidXRlcyBmcm9tCisgICAgICAgIHRoZSBN
YXRoTUxQYWRkZWRFbGVtZW50IGNsYXNzLgorCisyMDE2LTA3LTExICBGcmVkZXJpYyBXYW5nICA8
ZndhbmdAaWdhbGlhLmNvbT4KKwogICAgICAgICBNb3ZlIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFy
eSBmcm9tIHJlbmRlcmluZyB0byBET00KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1OTYxOQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2EwMjI3ZC4uNGU3YzNhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzIw
OCw2ICs3MjA4LDcgQEAKIAkJRkVEMTNEM0QwQ0VBOTM2QTAwRDg5NDY2IC8qIEZyYW1lSU9TLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEMTNEM0Iw
Q0VBOTM2QTAwRDg5NDY2IC8qIEZyYW1lSU9TLm1tICovOyB9OwogCQlGRUQxM0Q0MDBDRUE5Mzk0
MDBEODk0NjYgLyogSWNvbklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFRDEzRDNGMENFQTkzOTQwMEQ4OTQ2NiAvKiBJY29uSU9TLm1tICovOyB9
OwogCQlGRUQxM0Q1MjBDRUE5NDk3MDBEODk0NjYgLyogUmVuZGVyVGhlbWVJT1MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDEzRDUwMENFQTk0OTcw
MEQ4OTQ2NiAvKiBSZW5kZXJUaGVtZUlPUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUI1OUNBMzkwQ0VENjZDMzI1NUY3MkM1OSAvKiBNYXRoTUxQ
YWRkZWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEI1OUNBNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNw
cCAqLzsgfTsKIAkJRkVENDgzOTBDRUQ2NkMzMjU1RjcyQzU5IC8qIE1hdGhNTFNlbGVjdEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjc1
QTA1OUFGMTcwRDhGQUE1QjhDQUJFIC8qIE1hdGhNTFNlbGVjdEVsZW1lbnQuY3BwICovOyB9Owog
CQlGRUUxODExMzE2QzMxOUU4MDAwODQ4NDkgLyogU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRTE4MTExMTZD
MzE5RTgwMDA4NDg0OSAvKiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwICovOyB9OwogCQlGRUUx
ODExNDE2QzMxOUU4MDAwODQ4NDkgLyogU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUUxODExMjE2QzMxOUU4MDAw
ODQ4NDkgLyogU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmggKi87IH07CkBAIC0xMDAyNSw2ICsxMDAy
Niw3IEBACiAJCTU5MzA5QTEyMTFGNEFFNkEwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudE1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NThGMUNC
MTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7IHBh
dGggPSBYTUxWaWV3ZXIuY3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTU4RjFD
QzEzNDM5MTdDMDA4MEIzMUYgLyogWE1MVmlld2VyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5q
YXZhc2NyaXB0OyBwYXRoID0gWE1MVmlld2VyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCNTlDQTg0OUQ0MUU2RjY1RDgxMTk4QkMgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NzgwODQ5RDQxRTZGNjVEODExOThCQyAvKiBN
YXRoTUxTZWxlY3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1h
dGhNTFNlbGVjdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4MzY1
REMxMzU1RjUzQzAwMUIxODVEIC8qIEpTUG9zaXRpb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1Bvc2l0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTk4MzY1REUxMzU1RjU2MjAwMUIxODVEIC8qIEpTUG9zaXRpb25FcnJv
ckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRpb25F
cnJvckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA0Niw2ICsx
NTA0OCw3IEBACiAJCUY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGF0YUxpc3RF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1RTBDNjU5MTY0M0M0MkMw
MEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1RTBDNjVBMTY0
M0M0MkMwMEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlDQTU5QUYxNzBE
OEZBQTVCOENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjc1QTA1OUFGMTcwRDhGQUE1QjhDQUJFIC8qIE1hdGhNTFNlbGVj
dEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1M
U2VsZWN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY4MjE2Mjk5
MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
cGF0aCA9IEphdmFTY3JpcHRDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJRjkxNkM0OEIwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNDg2Myw2ICsyNDg2Niw4IEBACiAJCQkJQ0U2RDg5Mjk0QzdBQUNFMEFEODlC
M0REIC8qIE1hdGhNTE1lbmNsb3NlRWxlbWVudC5oICovLAogCQkJCUQ0RjcyQzY1M0E2NDgwN0E4
M0U3NkZCOCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwICovLAogCQkJCURGN0U5QTI5
NEM3QUFDRTBBRDg5QjNERCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuaCAqLywKKwkJCQlC
NTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi8sCisJ
CQkJQjU5Q0E4NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuaCAqLywK
IAkJCQlGNzVBMDU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAg
Ki8sCiAJCQkJNTk3ODA4NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1hdGhNTFNlbGVjdEVsZW1lbnQu
aCAqLywKIAkJCQk0RkE2NUE2OTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50
LmNwcCAqLywKQEAgLTMxMjI1LDYgKzMxMjMwLDcgQEAKIAkJCQkxNkVBMjRDRUVBQjJBNjA1MzQy
MThBQ0YgLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZBQkU3MkZFMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxOYW1lcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MzkxNzZERjEyREEyNUUxN0JBRjgwQTIgLyogTWF0aE1MU3R5bGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQjU5Q0EzOTBDRUQ2NkMzMjU1RjcyQzU5IC8qIE1hdGhNTFBhZGRlZEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVENDgzOTBDRUQ2NkMzMjU1RjcyQzU5IC8q
IE1hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEZBNjVBNkIxMTA4
QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGQTY1NEE2QjExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVGV4dEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MQWxsSW5P
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEFsbEluT25lLmNwcAppbmRleCAw
MGFkOGE0Li5jOWNlYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
QWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxBbGxJbk9uZS5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNYXRoTUxNYXRoRWxlbWVudC5jcHAiCiAj
aW5jbHVkZSAiTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcCIKICNpbmNsdWRlICJNYXRoTUxPcGVy
YXRvckRpY3Rpb25hcnkuY3BwIgorI2luY2x1ZGUgIk1hdGhNTFBhZGRlZEVsZW1lbnQuY3BwIgog
I2luY2x1ZGUgIk1hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIk1hdGhNTFRleHRF
bGVtZW50LmNwcCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElu
bGluZUNvbnRhaW5lckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElu
bGluZUNvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IDA5YzU4YjUuLjM1NzcxMjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVu
dC5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJSZW5kZXJNYXRoTUxGZW5jZWQuaCIK
ICNpbmNsdWRlICJSZW5kZXJNYXRoTUxGcmFjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlck1hdGhN
TE1lbmNsb3NlLmgiCi0jaW5jbHVkZSAiUmVuZGVyTWF0aE1MUGFkZGVkLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTWF0aE1MUm9vdC5oIgogI2luY2x1ZGUgIlJlbmRlck1hdGhNTFJvdy5oIgogI2luY2x1
ZGUgIlJlbmRlck1hdGhNTFNjcmlwdHMuaCIKQEAgLTgwLDggKzc5LDYgQEAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZW4KICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTEZl
bmNlZD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZShtdGFibGVU
YWcpKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MVGFibGU+KCp0
aGlzLCBXVEZNb3ZlKHN0eWxlKSk7Ci0gICAgaWYgKGhhc1RhZ05hbWUobXBhZGRlZFRhZykpCi0g
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxQYWRkZWQ+KCp0aGlzLCBX
VEZNb3ZlKHN0eWxlKSk7CiAKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1M
QmxvY2s+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMTM4N2UzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxQYWRkZWRFbGVtZW50LmNwcApAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1BVEhNTCkKKyNp
bmNsdWRlICJNYXRoTUxQYWRkZWRFbGVtZW50LmgiCisKKyNpbmNsdWRlICJSZW5kZXJNYXRoTUxQ
YWRkZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgTWF0aE1M
TmFtZXM7CisKK2lubGluZSBNYXRoTUxQYWRkZWRFbGVtZW50OjpNYXRoTUxQYWRkZWRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6
IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCit7Cit9CisK
K1JlZjxNYXRoTUxQYWRkZWRFbGVtZW50PiBNYXRoTUxQYWRkZWRFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE1hdGhNTFBhZGRlZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKK30KKworY29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3RoJiBNYXRoTUxQYWRkZWRFbGVtZW50
Ojp3aWR0aCgpCit7CisgICAgcmV0dXJuIGNhY2hlZE1hdGhNTExlbmd0aChNYXRoTUxOYW1lczo6
d2lkdGhBdHRyLCBtX3dpZHRoKTsKK30KKworY29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3RoJiBN
YXRoTUxQYWRkZWRFbGVtZW50OjpoZWlnaHQoKQoreworICAgIHJldHVybiBjYWNoZWRNYXRoTUxM
ZW5ndGgoTWF0aE1MTmFtZXM6OmhlaWdodEF0dHIsIG1faGVpZ2h0KTsKK30KKworY29uc3QgTWF0
aE1MRWxlbWVudDo6TGVuZ3RoJiBNYXRoTUxQYWRkZWRFbGVtZW50OjpkZXB0aCgpCit7CisgICAg
cmV0dXJuIGNhY2hlZE1hdGhNTExlbmd0aChNYXRoTUxOYW1lczo6ZGVwdGhBdHRyLCBtX2RlcHRo
KTsKK30KKworY29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3RoJiBNYXRoTUxQYWRkZWRFbGVtZW50
Ojpsc3BhY2UoKQoreworICAgIHJldHVybiBjYWNoZWRNYXRoTUxMZW5ndGgoTWF0aE1MTmFtZXM6
OmxzcGFjZUF0dHIsIG1fbHNwYWNlKTsKK30KKworY29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3Ro
JiBNYXRoTUxQYWRkZWRFbGVtZW50Ojp2b2Zmc2V0KCkKK3sKKyAgICByZXR1cm4gY2FjaGVkTWF0
aE1MTGVuZ3RoKE1hdGhNTE5hbWVzOjp2b2Zmc2V0QXR0ciwgbV92b2Zmc2V0KTsKK30KKwordm9p
ZCBNYXRoTUxQYWRkZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQoreworICAgIGlmIChuYW1lID09IHdp
ZHRoQXR0cikKKyAgICAgICAgbV93aWR0aC5kaXJ0eSA9IHRydWU7CisgICAgZWxzZSBpZiAobmFt
ZSA9PSBoZWlnaHRBdHRyKQorICAgICAgICBtX2hlaWdodC5kaXJ0eSA9IHRydWU7CisgICAgZWxz
ZSBpZiAobmFtZSA9PSBkZXB0aEF0dHIpCisgICAgICAgIG1fZGVwdGguZGlydHkgPSB0cnVlOwor
ICAgIGVsc2UgaWYgKG5hbWUgPT0gbHNwYWNlQXR0cikKKyAgICAgICAgbV9sc3BhY2UuZGlydHkg
PSB0cnVlOworICAgIGVsc2UgaWYgKG5hbWUgPT0gdm9mZnNldEF0dHIpCisgICAgICAgIG1fdm9m
ZnNldC5kaXJ0eSA9IHRydWU7CisKKyAgICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7Cit9CisKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxQYWRkZWRF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKK3sKKyAgICBBU1NFUlQoaGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bXBhZGRlZFRhZykpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxQ
YWRkZWQ+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJM
RShNQVRITUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUGFkZGVk
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTk2ODFhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuaApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1hdGhNTFBhZGRlZEVs
ZW1lbnRfaAorI2RlZmluZSBNYXRoTUxQYWRkZWRFbGVtZW50X2gKKworI2lmIEVOQUJMRShNQVRI
TUwpCisjaW5jbHVkZSAiTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIE1hdGhNTFBhZGRlZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxN
YXRoTUxQYWRkZWRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmKTsKKyAgICBjb25zdCBMZW5ndGgmIHdpZHRoKCk7CisgICAgY29uc3QgTGVuZ3Ro
JiBoZWlnaHQoKTsKKyAgICBjb25zdCBMZW5ndGgmIGRlcHRoKCk7CisgICAgY29uc3QgTGVuZ3Ro
JiBsc3BhY2UoKTsKKyAgICBjb25zdCBMZW5ndGgmIHZvZmZzZXQoKTsKK3ByaXZhdGU6CisgICAg
TWF0aE1MUGFkZGVkRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYpOworICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7CisgICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JikgZmluYWw7CisKKyAgICBMZW5ndGggbV93aWR0aDsKKyAgICBMZW5ndGggbV9oZWlnaHQ7Cisg
ICAgTGVuZ3RoIG1fZGVwdGg7CisgICAgTGVuZ3RoIG1fbHNwYWNlOworICAgIExlbmd0aCBtX3Zv
ZmZzZXQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQorI2VuZGlmIC8vIE1h
dGhNTFBhZGRlZEVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL21h
dGh0YWdzLmluIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL21hdGh0YWdzLmluCmluZGV4IDQ0ZGM4
MjYuLmZiNjQ4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3MuaW4KQEAgLTExLDcgKzExLDcg
QEAgbWZyYWMgaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CiBtZmVu
Y2VkIGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudAogbXN1YnN1cCBp
bnRlcmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQKIG1lcnJvciBpbnRlcmZh
Y2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQKLW1wYWRkZWQgaW50ZXJmYWNlTmFt
ZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CittcGFkZGVkIGludGVyZmFjZU5hbWU9TWF0
aE1MUGFkZGVkRWxlbWVudAogbXBoYW50b20gaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250
YWluZXJFbGVtZW50CiBtcm93IGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVyRWxl
bWVudAogbXN0eWxlIGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQ
YWRkZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQ
YWRkZWQuY3BwCmluZGV4IDIxYTU1NWQuLjZlMDUzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUGFkZGVkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5jcHAKQEAgLTQwLDYg
KzQwLDMxIEBAIFJlbmRlck1hdGhNTFBhZGRlZDo6UmVuZGVyTWF0aE1MUGFkZGVkKEVsZW1lbnQm
IGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCiB7CiB9CiAKK3ZvaWQgUmVuZGVyTWF0aE1M
UGFkZGVkOjpyZXNvbHZlV2lkdGgoTGF5b3V0VW5pdCYgd2lkdGgpCit7CisgICAgYXV0byYgcGFk
ZGVkRWxlbWVudCA9IGVsZW1lbnQoKTsKKyAgICB3aWR0aCA9IHRvVXNlclVuaXRzKHBhZGRlZEVs
ZW1lbnQud2lkdGgoKSwgc3R5bGUoKSwgd2lkdGgpOworICAgIC8vIEZJWE1FOiBOZWdhdGl2ZSB3
aWR0aCB2YWx1ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LgorICAgIGlmICh3aWR0aCA8IDApCisg
ICAgICAgIHdpZHRoID0gMDsKK30KKwordm9pZCBSZW5kZXJNYXRoTUxQYWRkZWQ6OnJlc29sdmVB
dHRyaWJ1dGVzKExheW91dFVuaXQmIHdpZHRoLCBMYXlvdXRVbml0JiBoZWlnaHQsIExheW91dFVu
aXQmIGRlcHRoLCBMYXlvdXRVbml0JiBsc3BhY2UsIExheW91dFVuaXQmIHZvZmZzZXQpCit7Cisg
ICAgcmVzb2x2ZVdpZHRoKHdpZHRoKTsKKyAgICBhdXRvJiBwYWRkZWRFbGVtZW50ID0gZWxlbWVu
dCgpOworICAgIGhlaWdodCA9IHRvVXNlclVuaXRzKHBhZGRlZEVsZW1lbnQuaGVpZ2h0KCksIHN0
eWxlKCksIGhlaWdodCk7CisgICAgZGVwdGggPSB0b1VzZXJVbml0cyhwYWRkZWRFbGVtZW50LmRl
cHRoKCksIHN0eWxlKCksIGRlcHRoKTsKKyAgICBsc3BhY2UgPSB0b1VzZXJVbml0cyhwYWRkZWRF
bGVtZW50LmxzcGFjZSgpLCBzdHlsZSgpLCBsc3BhY2UpOworICAgIHZvZmZzZXQgPSB0b1VzZXJV
bml0cyhwYWRkZWRFbGVtZW50LnZvZmZzZXQoKSwgc3R5bGUoKSwgdm9mZnNldCk7CisgICAgaWYg
KGhlaWdodCA8IDApCisgICAgICAgIGhlaWdodCA9IDA7CisgICAgaWYgKGRlcHRoIDwgMCkKKyAg
ICAgICAgZGVwdGggPSAwOworICAgIGlmIChsc3BhY2UgPCAwKQorICAgICAgICBsc3BhY2UgPSAw
OworfQorCiB2b2lkIFJlbmRlck1hdGhNTFBhZGRlZDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKQogewogICAgIEFTU0VSVChwcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoKSk7CkBA
IC01MCw4ICs3NSw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MUGFkZGVkOjpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpCiAgICAgLy8gT25seSB0aGUgd2lkdGggYXR0cmlidXRlIHNob3VsZCBt
b2RpZnkgdGhlIHdpZHRoLgogICAgIC8vIFdlIHBhcnNlIGl0IHVzaW5nIHRoZSBwcmVmZXJyZWQg
d2lkdGggb2YgdGhlIGNvbnRlbnQgYXMgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgTGF5b3V0VW5p
dCB3aWR0aCA9IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoOwotICAgIHBhcnNlTWF0aE1MTGVu
Z3RoKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShNYXRoTUxOYW1lczo6d2lkdGhBdHRyKSwg
d2lkdGgsICZzdHlsZSgpLCBmYWxzZSk7Ci0KKyAgICByZXNvbHZlV2lkdGgod2lkdGgpOwogICAg
IG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSB3aWR0aDsKIAogICAgIHNldFByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eShmYWxzZSk7CkBA
IC03OSwxOSArMTAzLDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxQYWRkZWQ6OmxheW91dEJsb2NrKGJv
b2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICBMYXlvdXRVbml0IGRlc2NlbnQg
PSBjb250ZW50RGVzY2VudDsKICAgICBMYXlvdXRVbml0IGxzcGFjZSA9IDA7CiAgICAgTGF5b3V0
VW5pdCB2b2Zmc2V0ID0gMDsKLSAgICBwYXJzZU1hdGhNTExlbmd0aChlbGVtZW50KCktPmZhc3RH
ZXRBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6OndpZHRoQXR0ciksIHdpZHRoLCAmc3R5bGUoKSk7Ci0g
ICAgcGFyc2VNYXRoTUxMZW5ndGgoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKE1hdGhNTE5h
bWVzOjpoZWlnaHRBdHRyKSwgYXNjZW50LCAmc3R5bGUoKSk7Ci0gICAgcGFyc2VNYXRoTUxMZW5n
dGgoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjpkZXB0aEF0dHIpLCBk
ZXNjZW50LCAmc3R5bGUoKSk7Ci0gICAgcGFyc2VNYXRoTUxMZW5ndGgoZWxlbWVudCgpLT5mYXN0
R2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjpsc3BhY2VBdHRyKSwgbHNwYWNlLCAmc3R5bGUoKSk7
Ci0gICAgcGFyc2VNYXRoTUxMZW5ndGgoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKE1hdGhN
TE5hbWVzOjp2b2Zmc2V0QXR0ciksIHZvZmZzZXQsICZzdHlsZSgpKTsKLSAgICBpZiAod2lkdGgg
PCAwKQotICAgICAgICB3aWR0aCA9IDA7Ci0gICAgaWYgKGFzY2VudCA8IDApCi0gICAgICAgIGFz
Y2VudCA9IDA7Ci0gICAgaWYgKGRlc2NlbnQgPCAwKQotICAgICAgICBkZXNjZW50ID0gMDsKLSAg
ICBpZiAobHNwYWNlIDwgMCkKLSAgICAgICAgbHNwYWNlID0gMDsKKyAgICByZXNvbHZlQXR0cmli
dXRlcyh3aWR0aCwgYXNjZW50LCBkZXNjZW50LCBsc3BhY2UsIHZvZmZzZXQpOwogCiAgICAgLy8g
QWxpZ24gY2hpbGRyZW4gb24gdGhlIG5ldyBiYXNlbGluZSBhbmQgc2hpZnQgdGhlbSBieSAobHNw
YWNlLCAtdm9mZnNldCkKICAgICBMYXlvdXRQb2ludCBjb250ZW50TG9jYXRpb24obHNwYWNlLCBh
c2NlbnQgLSBjb250ZW50QXNjZW50IC0gdm9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuaAppbmRleCA2Nzc0N2YyLi44
YTBjZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTFBhZGRlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MUGFkZGVkLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lmIEVOQUJMRShNQVRITUwp
CiAKKyNpbmNsdWRlICJNYXRoTUxQYWRkZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0
aE1MUm93LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDYgKzQ5LDEwIEBAIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIGZpbmFsOwogICAgIHZvaWQgc3R5bGVE
aWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIGZp
bmFsOwogCisgICAgTWF0aE1MUGFkZGVkRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PE1hdGhNTFBhZGRlZEVsZW1lbnQmPihub2RlRm9yTm9uQW5vbnltb3VzKCkp
OyB9CisgICAgdm9pZCByZXNvbHZlV2lkdGgoTGF5b3V0VW5pdCYgd2lkdGgpOworICAgIHZvaWQg
cmVzb2x2ZUF0dHJpYnV0ZXMoTGF5b3V0VW5pdCYgd2lkdGgsIExheW91dFVuaXQmIGhlaWdodCwg
TGF5b3V0VW5pdCYgZGVwdGgsIExheW91dFVuaXQmIGxzcGFjZSwgTGF5b3V0VW5pdCYgdm9mZnNl
dCk7CisKICAgICBMYXlvdXRVbml0IG1fYXNjZW50OwogfTsKIAotLSAKMi44LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283418</attachid>
            <date>2016-07-12 09:46:16 -0700</date>
            <delta_ts>2016-07-12 09:58:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159620-20160712184532.patch</filename>
            <type>text/plain</type>
            <size>20677</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxOWI2ZTJiNzJmZGQ0
ZTYxMTNjYjk2MjY0MmIzZTM4NjRjMGZlOC4uYTk0ZDFlZTc2NjU4MWY5YTc2MGNiNDRjNTZiNzg5
YzdhYjI0ODVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE2LTA3LTEyICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAorICAgICAgICBNb3ZlIHBhcnNpbmcgb2Yg
bXBhZGRlZCBhdHRyaWJ1dGVzIHRvIGEgTWF0aE1MUGFkZGVkRWxlbWVudCBjbGFzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NjIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBi
ZWhhdmlvciBpcyB1bmNoYW5nZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIE1h
dGhNTFBhZGRlZEVsZW1lbnQgZmlsZXMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBtYXRobWwvTWF0aE1MQWxsSW5PbmUuY3Bw
OiBEaXR0by4KKyAgICAgICAgKiBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5j
cHA6IFJlbW92ZSBoYW5kbGluZyBvZiBtcGFkZGVkLgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxQ
YWRkZWRFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxQYWRkZWRF
bGVtZW50OjpNYXRoTUxQYWRkZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFBh
ZGRlZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxQYWRkZWRFbGVt
ZW50Ojp3aWR0aCk6IEV4cG9zZSB3aWR0aCBhdHRyaWJ1dGUgYXMgYSBNYXRoTUxMZW5ndGggdW50
aWwgbXBhZGRlZAorICAgICAgICBwc2V1ZG8tdW5pdHMgYXJlIHN1cHBvcnRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1hdGhNTFBhZGRlZEVsZW1lbnQ6OmhlaWdodCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6TWF0aE1MUGFkZGVkRWxlbWVudDo6ZGVwdGgpOiBEaXR0bworICAgICAgICAoV2Vi
Q29yZTo6TWF0aE1MUGFkZGVkRWxlbWVudDo6bHNwYWNlKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpNYXRoTUxQYWRkZWRFbGVtZW50Ojp2b2Zmc2V0KTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpNYXRoTUxQYWRkZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6IE1ha2UgbGVuZ3RoIGF0
dHJpYnV0ZSBkaXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFBhZGRlZEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcik6IE1vdmVkIGNvZGUgZnJvbSBNYXRoTUxJbmxpbmVDb250YWlu
ZXJFbGVtZW50LgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50Lmg6IEFkZGVk
LgorICAgICAgICAqIG1hdGhtbC9tYXRodGFncy5pbjogTWFwIG1hcGRkZWQgdG8gTWF0aE1MUGFk
ZGVkRWxlbWVudC4KKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFBhZGRl
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxQYWRkZWQ6OnJlc29sdmVXaWR0
aCk6IEhlbHBlciBmdW5jdGlvbiB0byByZXNvbHZlIHdpZHRoLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTWF0aE1MUGFkZGVkOjpyZXNvbHZlQXR0cmlidXRlcyk6IEhlbHBlciBmdW5jdGlvbiB0
byByZXNvbHZlIGFsbCBhdHRyaWJ1dGVzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1M
UGFkZGVkOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IFVzZSByZXNvbHZlV2lkdGgu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxQYWRkZWQ6OmxheW91dEJsb2NrKTogVXNl
IHJlc29sdmVBdHRyaWJ1dGVzLgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MUGFkZGVkLmg6IEFkZCBuZXcgaGVscGVyIGZ1bmN0aW9ucyB0byBhY2Nlc3MgYXR0cmlidXRl
cyBmcm9tCisgICAgICAgIHRoZSBNYXRoTUxQYWRkZWRFbGVtZW50IGNsYXNzLgorCisyMDE2LTA3
LTEyICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKwogICAgICAgICBNb3ZlIE1h
dGhNTE9wZXJhdG9yRGljdGlvbmFyeSBmcm9tIHJlbmRlcmluZyB0byBET00KICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTYxOQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDBiYTJkZDkxNTAyZGYwOGNmYzEzMzNmYzY2ZGIxNDI0NjJmNGNmY2MuLjVh
ZmVhM2ExNGVlODZlODM0ZTAxZmY1ODUxNDNhOGYxMGRhYWNjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xOTg3LDYgKzE5ODcsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbWF0aG1s
L01hdGhNTE1hdGhFbGVtZW50LmNwcAogICAgIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQu
Y3BwCiAgICAgbWF0aG1sL01hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHAKKyAgICBtYXRobWwv
TWF0aE1MUGFkZGVkRWxlbWVudC5jcHAKICAgICBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5j
cHAKICAgICBtYXRobWwvTWF0aE1MU3BhY2VFbGVtZW50LmNwcAogICAgIG1hdGhtbC9NYXRoTUxU
ZXh0RWxlbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3YTAyMjdkMzE0NmUxNmY2YmRhNGY1MTk2MDQ2YWFhNmFiYTc1
YjVmLi40ZTdjM2EyMjlhMTYzYTVmNWE2MGY2MzJiZWEwZTM3YWQyMzk0MGUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MjA4
LDYgKzcyMDgsNyBAQAogCQlGRUQxM0QzRDBDRUE5MzZBMDBEODk0NjYgLyogRnJhbWVJT1MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQxM0QzQjBD
RUE5MzZBMDBEODk0NjYgLyogRnJhbWVJT1MubW0gKi87IH07CiAJCUZFRDEzRDQwMENFQTkzOTQw
MEQ4OTQ2NiAvKiBJY29uSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkVEMTNEM0YwQ0VBOTM5NDAwRDg5NDY2IC8qIEljb25JT1MubW0gKi87IH07
CiAJCUZFRDEzRDUyMENFQTk0OTcwMEQ4OTQ2NiAvKiBSZW5kZXJUaGVtZUlPUy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEMTNENTAwQ0VBOTQ5NzAw
RDg5NDY2IC8qIFJlbmRlclRoZW1lSU9TLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQjU5Q0EzOTBDRUQ2NkMzMjU1RjcyQzU5IC8qIE1hdGhNTFBh
ZGRlZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjU5Q0E1OUFGMTcwRDhGQUE1QjhDQUJFIC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuY3Bw
ICovOyB9OwogCQlGRUQ0ODM5MENFRDY2QzMyNTVGNzJDNTkgLyogTWF0aE1MU2VsZWN0RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNzVB
MDU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAgKi87IH07CiAJ
CUZFRTE4MTEzMTZDMzE5RTgwMDA4NDg0OSAvKiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVFMTgxMTExNkMz
MTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAgKi87IH07CiAJCUZFRTE4
MTE0MTZDMzE5RTgwMDA4NDg0OSAvKiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRTE4MTEyMTZDMzE5RTgwMDA4
NDg0OSAvKiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaCAqLzsgfTsKQEAgLTEwMDI1LDYgKzEwMDI2
LDcgQEAKIAkJNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk1OEYxQ0Ix
MzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0
aCA9IFhNTFZpZXdlci5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NThGMUND
MTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmph
dmFzY3JpcHQ7IHBhdGggPSBYTUxWaWV3ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUI1OUNBODQ5RDQxRTZGNjVEODExOThCQyAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFBhZGRlZEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk3ODA4NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1h
dGhNTFNlbGVjdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0
aE1MU2VsZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTgzNjVE
QzEzNTVGNTNDMDAxQjE4NUQgLyogSlNQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1OTgzNjVERTEzNTVGNTYyMDAxQjE4NUQgLyogSlNQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQb3NpdGlvbkVy
cm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MDQ2LDYgKzE1
MDQ4LDcgQEAKIAkJRjVDMDQxRTIwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxEYXRhTGlzdEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVFMEM2NTkxNjQzQzQyQzAw
RDZDQjY5IC8qIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVFMEM2NUExNjQz
QzQyQzAwRDZDQjY5IC8qIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUI1OUNBNTlBRjE3MEQ4
RkFBNUI4Q0FCRSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTFBhZGRlZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNzVBMDU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MU2VsZWN0
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxT
ZWxlY3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjgyMTYyOTkw
MjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBw
YXRoID0gSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQlGOTE2QzQ4QjBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI0ODYzLDYgKzI0ODY2LDggQEAKIAkJCQlDRTZEODkyOTRDN0FBQ0UwQUQ4OUIz
REQgLyogTWF0aE1MTWVuY2xvc2VFbGVtZW50LmggKi8sCiAJCQkJRDRGNzJDNjUzQTY0ODA3QTgz
RTc2RkI4IC8qIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHAgKi8sCiAJCQkJREY3RTlBMjk0
QzdBQUNFMEFEODlCM0REIC8qIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5oICovLAorCQkJCUI1
OUNBNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcCAqLywKKwkJ
CQlCNTlDQTg0OUQ0MUU2RjY1RDgxMTk4QkMgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5oICovLAog
CQkJCUY3NUEwNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxTZWxlY3RFbGVtZW50LmNwcCAq
LywKIAkJCQk1OTc4MDg0OUQ0MUU2RjY1RDgxMTk4QkMgLyogTWF0aE1MU2VsZWN0RWxlbWVudC5o
ICovLAogCQkJCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQu
Y3BwICovLApAQCAtMzEyMjUsNiArMzEyMzAsNyBAQAogCQkJCTE2RUEyNENFRUFCMkE2MDUzNDIx
OEFDRiAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkFCRTcyRkUxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQzOTE3NkRGMTJEQTI1RTE3QkFGODBBMiAvKiBNYXRoTUxTdHlsZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlCNTlDQTM5MENFRDY2QzMyNTVGNzJDNTkgLyogTWF0aE1MUGFkZGVkRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRUQ0ODM5MENFRDY2QzMyNTVGNzJDNTkgLyog
TWF0aE1MU2VsZWN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RkE2NUE2QjExMDhB
QkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZBNjU0QTZCMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxBbGxJbk9u
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MQWxsSW5PbmUuY3BwCmluZGV4IDAw
YWQ4YTRlMjQ2ZTlkY2M4MTc1YjcxMDk5ZTZjOTY5YjQ5NWUwYTEuLmM5Y2VhNzFlNDAxY2Q3ZDY1
NjliNGFlYTg3ZmViYjI0NTlmOWUyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEFs
bEluT25lLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTE1hdGhFbGVtZW50
LmNwcCIKICNpbmNsdWRlICJNYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIk1h
dGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHAiCisjaW5jbHVkZSAiTWF0aE1MUGFkZGVkRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiTWF0
aE1MVGV4dEVsZW1lbnQuY3BwIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAKaW5kZXggZjY3ZDFmMjQyZmM1YjQyNGNj
YjdiNDg4ZjQzMmIwZjZmMDg4YzQ4Yi4uYmRiNTc4MDg0MzhhOTIwYTlkYmMwNGNmYWEyYmEwZjBk
ZTNlOTczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNv
bnRhaW5lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxp
bmVDb250YWluZXJFbGVtZW50LmNwcApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIlJlbmRl
ck1hdGhNTEZlbmNlZC5oIgogI2luY2x1ZGUgIlJlbmRlck1hdGhNTEZyYWN0aW9uLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTWF0aE1MTWVuY2xvc2UuaCIKLSNpbmNsdWRlICJSZW5kZXJNYXRoTUxQYWRk
ZWQuaCIKICNpbmNsdWRlICJSZW5kZXJNYXRoTUxSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0
aE1MUm93LmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0aE1MU2NyaXB0cy5oIgpAQCAtODAsOCArNzks
NiBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbgogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyTWF0aE1MRmVuY2VkPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwogICAgIGlmICho
YXNUYWdOYW1lKG10YWJsZVRhZykpCiAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJNYXRoTUxUYWJsZT4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKLSAgICBpZiAoaGFzVGFnTmFt
ZShtcGFkZGVkVGFnKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhN
TFBhZGRlZD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIAogICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJNYXRoTUxCbG9jaz4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
Mzg3ZTNjNzQzY2Q4MDhhMzIxMGU2OTdmY2U2OWQyNzczZTMxMWExCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuY3BwCkBAIC0wLDAg
KzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBFTkFCTEUoTUFUSE1MKQorI2luY2x1ZGUgIk1hdGhNTFBhZGRlZEVsZW1lbnQuaCIK
KworI2luY2x1ZGUgIlJlbmRlck1hdGhNTFBhZGRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIG5hbWVzcGFjZSBNYXRoTUxOYW1lczsKKworaW5saW5lIE1hdGhNTFBhZGRlZEVs
ZW1lbnQ6Ok1hdGhNTFBhZGRlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKK3sKK30KKworUmVmPE1hdGhNTFBhZGRlZEVsZW1lbnQ+IE1hdGhN
TFBhZGRlZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MUGFkZGVk
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitjb25zdCBNYXRoTUxFbGVtZW50OjpM
ZW5ndGgmIE1hdGhNTFBhZGRlZEVsZW1lbnQ6OndpZHRoKCkKK3sKKyAgICByZXR1cm4gY2FjaGVk
TWF0aE1MTGVuZ3RoKE1hdGhNTE5hbWVzOjp3aWR0aEF0dHIsIG1fd2lkdGgpOworfQorCitjb25z
dCBNYXRoTUxFbGVtZW50OjpMZW5ndGgmIE1hdGhNTFBhZGRlZEVsZW1lbnQ6OmhlaWdodCgpCit7
CisgICAgcmV0dXJuIGNhY2hlZE1hdGhNTExlbmd0aChNYXRoTUxOYW1lczo6aGVpZ2h0QXR0ciwg
bV9oZWlnaHQpOworfQorCitjb25zdCBNYXRoTUxFbGVtZW50OjpMZW5ndGgmIE1hdGhNTFBhZGRl
ZEVsZW1lbnQ6OmRlcHRoKCkKK3sKKyAgICByZXR1cm4gY2FjaGVkTWF0aE1MTGVuZ3RoKE1hdGhN
TE5hbWVzOjpkZXB0aEF0dHIsIG1fZGVwdGgpOworfQorCitjb25zdCBNYXRoTUxFbGVtZW50OjpM
ZW5ndGgmIE1hdGhNTFBhZGRlZEVsZW1lbnQ6OmxzcGFjZSgpCit7CisgICAgcmV0dXJuIGNhY2hl
ZE1hdGhNTExlbmd0aChNYXRoTUxOYW1lczo6bHNwYWNlQXR0ciwgbV9sc3BhY2UpOworfQorCitj
b25zdCBNYXRoTUxFbGVtZW50OjpMZW5ndGgmIE1hdGhNTFBhZGRlZEVsZW1lbnQ6OnZvZmZzZXQo
KQoreworICAgIHJldHVybiBjYWNoZWRNYXRoTUxMZW5ndGgoTWF0aE1MTmFtZXM6OnZvZmZzZXRB
dHRyLCBtX3ZvZmZzZXQpOworfQorCit2b2lkIE1hdGhNTFBhZGRlZEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFs
dWUpCit7CisgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKQorICAgICAgICBtX3dpZHRoLmRpcnR5
ID0gdHJ1ZTsKKyAgICBlbHNlIGlmIChuYW1lID09IGhlaWdodEF0dHIpCisgICAgICAgIG1faGVp
Z2h0LmRpcnR5ID0gdHJ1ZTsKKyAgICBlbHNlIGlmIChuYW1lID09IGRlcHRoQXR0cikKKyAgICAg
ICAgbV9kZXB0aC5kaXJ0eSA9IHRydWU7CisgICAgZWxzZSBpZiAobmFtZSA9PSBsc3BhY2VBdHRy
KQorICAgICAgICBtX2xzcGFjZS5kaXJ0eSA9IHRydWU7CisgICAgZWxzZSBpZiAobmFtZSA9PSB2
b2Zmc2V0QXR0cikKKyAgICAgICAgbV92b2Zmc2V0LmRpcnR5ID0gdHJ1ZTsKKworICAgIE1hdGhN
TEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKK30KKworUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IE1hdGhNTFBhZGRlZEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQoreworICAgIEFT
U0VSVChoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptcGFkZGVkVGFnKSk7CisgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFBhZGRlZD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1BVEhNTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxOTY4MWFjYzYwZGQ3ODZmNmFm
ODY3MWNjMTExNDhkNjg4MjhjYTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgTWF0aE1MUGFkZGVkRWxlbWVudF9oCisjZGVmaW5lIE1hdGhN
TFBhZGRlZEVsZW1lbnRfaAorCisjaWYgRU5BQkxFKE1BVEhNTCkKKyNpbmNsdWRlICJNYXRoTUxJ
bmxpbmVDb250YWluZXJFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
TWF0aE1MUGFkZGVkRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBNYXRoTUxJbmxpbmVDb250YWluZXJF
bGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1hdGhNTFBhZGRlZEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOworICAgIGNvbnN0
IExlbmd0aCYgd2lkdGgoKTsKKyAgICBjb25zdCBMZW5ndGgmIGhlaWdodCgpOworICAgIGNvbnN0
IExlbmd0aCYgZGVwdGgoKTsKKyAgICBjb25zdCBMZW5ndGgmIGxzcGFjZSgpOworICAgIGNvbnN0
IExlbmd0aCYgdm9mZnNldCgpOworcHJpdmF0ZToKKyAgICBNYXRoTUxQYWRkZWRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKworICAgIExlbmd0
aCBtX3dpZHRoOworICAgIExlbmd0aCBtX2hlaWdodDsKKyAgICBMZW5ndGggbV9kZXB0aDsKKyAg
ICBMZW5ndGggbV9sc3BhY2U7CisgICAgTGVuZ3RoIG1fdm9mZnNldDsKK307CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShNQVRITUwpCisjZW5kaWYgLy8gTWF0aE1MUGFkZGVkRWxlbWVudF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3MuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvbWF0aHRhZ3MuaW4KaW5kZXggNDRkYzgyNjRmZWU2OWU1MDA1MDhiZTcyMTgz
YTE3OTc5ODM1ZmI1MS4uZmI2NDgyNTk5NWZiM2IwM2E0NWJmYzI0NDZlNDJmNjVkYzc4MjU4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL21hdGh0YWdzLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5pbgpAQCAtMTEsNyArMTEsNyBAQCBtZnJhYyBpbnRl
cmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQKIG1mZW5jZWQgaW50ZXJmYWNl
TmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CiBtc3Vic3VwIGludGVyZmFjZU5hbWU9
TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudAogbWVycm9yIGludGVyZmFjZU5hbWU9TWF0aE1M
SW5saW5lQ29udGFpbmVyRWxlbWVudAotbXBhZGRlZCBpbnRlcmZhY2VOYW1lPU1hdGhNTElubGlu
ZUNvbnRhaW5lckVsZW1lbnQKK21wYWRkZWQgaW50ZXJmYWNlTmFtZT1NYXRoTUxQYWRkZWRFbGVt
ZW50CiBtcGhhbnRvbSBpbnRlcmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQK
IG1yb3cgaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CiBtc3R5bGUg
aW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5jcHAKaW5k
ZXggMjFhNTU1ZDAzNTJlOTg5Y2U5MGJkYWEzZmIxMGU3YTUxYjc5MjJiMS4uNmUwNTMxOTI3Mjk2
ZDc4ZWM3MWFjYjJjN2E3OTVhZDFmOGMzM2Y1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUGFkZGVkLmNwcApAQCAtNDAsNiArNDAs
MzEgQEAgUmVuZGVyTWF0aE1MUGFkZGVkOjpSZW5kZXJNYXRoTUxQYWRkZWQoRWxlbWVudCYgZWxl
bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKIHsKIH0KIAordm9pZCBSZW5kZXJNYXRoTUxQYWRk
ZWQ6OnJlc29sdmVXaWR0aChMYXlvdXRVbml0JiB3aWR0aCkKK3sKKyAgICBhdXRvJiBwYWRkZWRF
bGVtZW50ID0gZWxlbWVudCgpOworICAgIHdpZHRoID0gdG9Vc2VyVW5pdHMocGFkZGVkRWxlbWVu
dC53aWR0aCgpLCBzdHlsZSgpLCB3aWR0aCk7CisgICAgLy8gRklYTUU6IE5lZ2F0aXZlIHdpZHRo
IHZhbHVlcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuCisgICAgaWYgKHdpZHRoIDwgMCkKKyAgICAg
ICAgd2lkdGggPSAwOworfQorCit2b2lkIFJlbmRlck1hdGhNTFBhZGRlZDo6cmVzb2x2ZUF0dHJp
YnV0ZXMoTGF5b3V0VW5pdCYgd2lkdGgsIExheW91dFVuaXQmIGhlaWdodCwgTGF5b3V0VW5pdCYg
ZGVwdGgsIExheW91dFVuaXQmIGxzcGFjZSwgTGF5b3V0VW5pdCYgdm9mZnNldCkKK3sKKyAgICBy
ZXNvbHZlV2lkdGgod2lkdGgpOworICAgIGF1dG8mIHBhZGRlZEVsZW1lbnQgPSBlbGVtZW50KCk7
CisgICAgaGVpZ2h0ID0gdG9Vc2VyVW5pdHMocGFkZGVkRWxlbWVudC5oZWlnaHQoKSwgc3R5bGUo
KSwgaGVpZ2h0KTsKKyAgICBkZXB0aCA9IHRvVXNlclVuaXRzKHBhZGRlZEVsZW1lbnQuZGVwdGgo
KSwgc3R5bGUoKSwgZGVwdGgpOworICAgIGxzcGFjZSA9IHRvVXNlclVuaXRzKHBhZGRlZEVsZW1l
bnQubHNwYWNlKCksIHN0eWxlKCksIGxzcGFjZSk7CisgICAgdm9mZnNldCA9IHRvVXNlclVuaXRz
KHBhZGRlZEVsZW1lbnQudm9mZnNldCgpLCBzdHlsZSgpLCB2b2Zmc2V0KTsKKyAgICBpZiAoaGVp
Z2h0IDwgMCkKKyAgICAgICAgaGVpZ2h0ID0gMDsKKyAgICBpZiAoZGVwdGggPCAwKQorICAgICAg
ICBkZXB0aCA9IDA7CisgICAgaWYgKGxzcGFjZSA8IDApCisgICAgICAgIGxzcGFjZSA9IDA7Cit9
CisKIHZvaWQgUmVuZGVyTWF0aE1MUGFkZGVkOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpCiB7CiAgICAgQVNTRVJUKHByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSgpKTsKQEAgLTUw
LDggKzc1LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxQYWRkZWQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzKCkKICAgICAvLyBPbmx5IHRoZSB3aWR0aCBhdHRyaWJ1dGUgc2hvdWxkIG1vZGlm
eSB0aGUgd2lkdGguCiAgICAgLy8gV2UgcGFyc2UgaXQgdXNpbmcgdGhlIHByZWZlcnJlZCB3aWR0
aCBvZiB0aGUgY29udGVudCBhcyBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICBMYXlvdXRVbml0IHdp
ZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGg7Ci0gICAgcGFyc2VNYXRoTUxMZW5ndGgo
ZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjp3aWR0aEF0dHIpLCB3aWR0
aCwgJnN0eWxlKCksIGZhbHNlKTsKLQorICAgIHJlc29sdmVXaWR0aCh3aWR0aCk7CiAgICAgbV9t
aW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IHdp
ZHRoOwogCiAgICAgc2V0UHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KGZhbHNlKTsKQEAgLTc5
LDE5ICsxMDMsNyBAQCB2b2lkIFJlbmRlck1hdGhNTFBhZGRlZDo6bGF5b3V0QmxvY2soYm9vbCBy
ZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIExheW91dFVuaXQgZGVzY2VudCA9IGNv
bnRlbnREZXNjZW50OwogICAgIExheW91dFVuaXQgbHNwYWNlID0gMDsKICAgICBMYXlvdXRVbml0
IHZvZmZzZXQgPSAwOwotICAgIHBhcnNlTWF0aE1MTGVuZ3RoKGVsZW1lbnQoKS0+ZmFzdEdldEF0
dHJpYnV0ZShNYXRoTUxOYW1lczo6d2lkdGhBdHRyKSwgd2lkdGgsICZzdHlsZSgpKTsKLSAgICBw
YXJzZU1hdGhNTExlbmd0aChlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6
OmhlaWdodEF0dHIpLCBhc2NlbnQsICZzdHlsZSgpKTsKLSAgICBwYXJzZU1hdGhNTExlbmd0aChl
bGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6OmRlcHRoQXR0ciksIGRlc2Nl
bnQsICZzdHlsZSgpKTsKLSAgICBwYXJzZU1hdGhNTExlbmd0aChlbGVtZW50KCktPmZhc3RHZXRB
dHRyaWJ1dGUoTWF0aE1MTmFtZXM6OmxzcGFjZUF0dHIpLCBsc3BhY2UsICZzdHlsZSgpKTsKLSAg
ICBwYXJzZU1hdGhNTExlbmd0aChlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoTWF0aE1MTmFt
ZXM6OnZvZmZzZXRBdHRyKSwgdm9mZnNldCwgJnN0eWxlKCkpOwotICAgIGlmICh3aWR0aCA8IDAp
Ci0gICAgICAgIHdpZHRoID0gMDsKLSAgICBpZiAoYXNjZW50IDwgMCkKLSAgICAgICAgYXNjZW50
ID0gMDsKLSAgICBpZiAoZGVzY2VudCA8IDApCi0gICAgICAgIGRlc2NlbnQgPSAwOwotICAgIGlm
IChsc3BhY2UgPCAwKQotICAgICAgICBsc3BhY2UgPSAwOworICAgIHJlc29sdmVBdHRyaWJ1dGVz
KHdpZHRoLCBhc2NlbnQsIGRlc2NlbnQsIGxzcGFjZSwgdm9mZnNldCk7CiAKICAgICAvLyBBbGln
biBjaGlsZHJlbiBvbiB0aGUgbmV3IGJhc2VsaW5lIGFuZCBzaGlmdCB0aGVtIGJ5IChsc3BhY2Us
IC12b2Zmc2V0KQogICAgIExheW91dFBvaW50IGNvbnRlbnRMb2NhdGlvbihsc3BhY2UsIGFzY2Vu
dCAtIGNvbnRlbnRBc2NlbnQgLSB2b2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUGFkZGVkLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5oCmluZGV4IDY3NzQ3ZjI0MWNiYzI1
ZjczODE2MmJiMzM2ZDFkMTIxNmVmN2E4YjQuLjhhMGNmOTU3MDFkYmU5OWM4ZGRiZTQ5OGRjYTU3
NzRlMWY3OWU4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MUGFkZGVkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxQYWRkZWQuaApAQCAtMjksNiArMjksNyBAQAogCiAjaWYgRU5BQkxFKE1B
VEhNTCkKIAorI2luY2x1ZGUgIk1hdGhNTFBhZGRlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5k
ZXJNYXRoTUxSb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNiArNDksMTAgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgZmluYWw7CiAgICAgdm9pZCBz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSkgZmluYWw7CiAKKyAgICBNYXRoTUxQYWRkZWRFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TWF0aE1MUGFkZGVkRWxlbWVudCY+KG5vZGVGb3JOb25Bbm9ueW1v
dXMoKSk7IH0KKyAgICB2b2lkIHJlc29sdmVXaWR0aChMYXlvdXRVbml0JiB3aWR0aCk7CisgICAg
dm9pZCByZXNvbHZlQXR0cmlidXRlcyhMYXlvdXRVbml0JiB3aWR0aCwgTGF5b3V0VW5pdCYgaGVp
Z2h0LCBMYXlvdXRVbml0JiBkZXB0aCwgTGF5b3V0VW5pdCYgbHNwYWNlLCBMYXlvdXRVbml0JiB2
b2Zmc2V0KTsKKwogICAgIExheW91dFVuaXQgbV9hc2NlbnQ7CiB9OwogCg==
</data>
<flag name="review"
          id="307119"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>