<?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>80413</bug_id>
          
          <creation_ts>2012-03-06 05:54:07 -0800</creation_ts>
          <short_desc>Add SVGRenderingContext and move there the context related code from SVGRenderSupport</short_desc>
          <delta_ts>2012-03-09 21:23:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Herczeg">zherczeg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>paroga</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571784</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-03-06 05:54:07 -0800</bug_when>
    <thetext>First step of refactoring this part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571792</commentid>
    <comment_count>1</comment_count>
      <attachid>130368</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-03-06 06:10:05 -0800</bug_when>
    <thetext>Created attachment 130368
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571820</commentid>
    <comment_count>2</comment_count>
      <attachid>130368</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-06 07:07:41 -0800</bug_when>
    <thetext>Comment on attachment 130368
patch

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

Looks great! r=me, assuming no regressions.

&gt; Source/WebCore/rendering/svg/SVGRenderingContext.h:38
&gt; +#if ENABLE(FILTERS)

No need to guard class forwards IIRC.

&gt; Source/WebCore/rendering/svg/SVGRenderingContext.h:75
&gt; +    bool isRenderingPrepared() { return m_renderingFlags &amp; RenderingPrepared; }

Could be const.

&gt; Source/WebCore/rendering/svg/SVGRenderingContext.h:79
&gt; +    // we record all successful steps.

No need to wrap lines here, eh?

&gt; Source/WebCore/rendering/svg/SVGRenderingContext.h:91
&gt; +        | EndOpacityLayer | EndShadowLayer | EndFilterLayer;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571828</commentid>
    <comment_count>3</comment_count>
      <attachid>130368</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 07:17:10 -0800</bug_when>
    <thetext>Comment on attachment 130368
patch

Attachment 130368 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11839392

New failing tests:
svg/filters/subRegion-in-userSpace.svg
svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-values-prop.html
svg/W3C-SVG-1.1/filters-tile-01-b.svg
svg/dynamic-updates/SVGFEBlendElement-dom-mode-attr.html
svg/dynamic-updates/SVGFEColorMatrixElement-dom-type-attr.html
svg/dynamic-updates/SVGFEBlendElement-svgdom-mode-prop.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572064</commentid>
    <comment_count>4</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-03-06 12:27:58 -0800</bug_when>
    <thetext>I will check the failing tests tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573796</commentid>
    <comment_count>5</comment_count>
      <attachid>130816</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-03-08 06:26:15 -0800</bug_when>
    <thetext>Created attachment 130816
fixing EWS failures

Let&apos;s wait for the EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574745</commentid>
    <comment_count>6</comment_count>
      <attachid>130816</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 02:08:35 -0800</bug_when>
    <thetext>Comment on attachment 130816
fixing EWS failures

Attachment 130816 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11911471

New failing tests:
svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop.html
svg/dynamic-updates/SVGFEConvolveMatrixElement-dom-bias-attr.html
svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop.html
svg/dynamic-updates/SVGFEConvolveMatrixElement-dom-divisor-attr.html
svg/dynamic-updates/SVGFEColorMatrixElement-dom-values-attr.html
http/tests/inspector/inspect-element.html
svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr.html
accessibility/aria-disabled.html
fast/loader/text-document-wrapping.html
svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop.html
svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr.html
svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr.html
svg/dynamic-updates/SVGFEBlendElement-dom-mode-attr.html
compositing/reflections/reflection-ordering.html
svg/dynamic-updates/SVGFEConvolveMatrixElement-dom-edgeMode-attr.html
svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop.html
svg/dynamic-updates/SVGFEColorMatrixElement-dom-type-attr.html
svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr.html
http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect.html
svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-values-prop.html
svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-type-prop.html
compositing/masks/direct-image-mask.html
svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr.html
css3/filters/effect-contrast-hw.html
svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop.html
svg/dynamic-updates/SVGFEBlendElement-svgdom-mode-prop.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574768</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-09 02:53:12 -0800</bug_when>
    <thetext>(In reply to comment #6)
Your patch looks nice, can you confirm the EWS results are correct, and stuff got broken?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574774</commentid>
    <comment_count>8</comment_count>
      <attachid>131020</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-03-09 03:03:24 -0800</bug_when>
    <thetext>Created attachment 131020
another attempt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574775</commentid>
    <comment_count>9</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-03-09 03:05:12 -0800</bug_when>
    <thetext>&gt; Your patch looks nice, can you confirm the EWS results are correct, and stuff got broken?

Yeah. Still the return value of filter initialization. I misunderstood it. False means you don&apos;t need to draw anyithing, not initialization failed. Rather confusing :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574797</commentid>
    <comment_count>10</comment_count>
      <attachid>131020</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-09 03:59:47 -0800</bug_when>
    <thetext>Comment on attachment 131020
another attempt

The cr-linux failures now look unrelated, r=me. The previously failing tests are all gone, so we think this is safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574800</commentid>
    <comment_count>11</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-03-09 04:04:03 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/110285</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575437</commentid>
    <comment_count>12</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-03-09 21:23:19 -0800</bug_when>
    <thetext>Landed build fix in http://trac.webkit.org/changeset/110319</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130368</attachid>
            <date>2012-03-06 06:10:05 -0800</date>
            <delta_ts>2012-03-08 06:26:15 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-SVGRenderingContext.patch</filename>
            <type>text/plain</type>
            <size>39383</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA5ZDVkNjZmODcyZDhkYTE4ZDNkYjQ5YjhlZmE4NDQ5ZDljMzMzOGFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9yZz4K
RGF0ZTogVHVlLCA2IE1hciAyMDEyIDA2OjA4OjMyIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU1ZH
UmVuZGVyaW5nQ29udGV4dAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDUxICsrKysrKwogU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgfCAgIDU2ICsrKysrKysK
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgICAg
NiArCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0FsbEluT25lLmNwcCB8
ICAgIDEgKwogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3Bw
ICAgfCAgIDEyICstCiAuLi4vcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNw
cCAgICAgICB8ICAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW1hZ2UuY3BwICAgIHwgICAgOCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcCAgICAgfCAgIDEyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1NoYXBlLmNwcCAgICB8ICAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAgIHwgICAxMiArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCAgfCAgMTA0IC0tLS0tLS0tLS0tLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oICAgIHwgICAgNCAt
CiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwICB8ICAx
NjMgKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyaW5nQ29udGV4dC5oIHwgIDEwNSArKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwICB8ICAgMTEgKy0KIDE5IGZpbGVzIGNo
YW5nZWQsIDQyMyBpbnNlcnRpb25zKCspLCAxNTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyaW5nQ29udGV4dC5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlNWNmNTAwLi5mNDkxNTgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTcxNyw2ICsxNzE3LDcgQEAgSUYgKEVOQUJMRV9T
VkcpCiAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHUGF0aERhdGEuY3BwCiAgICAgICAgIHJlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJUcmVlQXNUZXh0LmNwcAorICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0Nv
bnRleHQuY3BwCiAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcAogICAgICAg
ICByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcAogICAgICAgICByZW5kZXJpbmcv
c3ZnL1NWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUzMDU1OGQuLjY3
Njc4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMi0wMy0wNiAgWm9sdGFuIEhl
cmN6ZWcgIDx6aGVyY3plZ0B3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBTVkdSZW5kZXJpbmdD
b250ZXh0IGFuZCBtb3ZlIHRoZXJlIHRoZSBjb250ZXh0IHJlbGF0ZWQgY29kZSBmcm9tIFNWR1Jl
bmRlclN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgwNDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBpcyB0aGUgZmlyc3Qgc3RlcCBvZiByZWZhY3RvcmluZyB0aGUgcmVuZGVyaW5nIGNv
bnRleHQgZm9yIFNWRy4gVGhlCisgICAgICAgIHByZXZpb3VzIGNvbnRleHQgd2FzIHN0YXRlbGVz
cyBiZWZvcmUsIHdoaWNoIG1lYW5zIHRoZSBjbGVhbnVwIHBoYXNlCisgICAgICAgIG5lZWRlZCB0
byBkbyBhIGxvdCBvZiBjaGVja3MgdG8gcmV2ZXJ0IHRoZSBpbml0aWFsaXphdGlvbiBwYXJ0IGFu
ZAorICAgICAgICB3YXMgdW5hd2FyZSBvZiBmYWlsZWQgaW5pdGl0YWxpemF0aW9uLiBGdXR1cmUg
Y29kZSBjYW4gYWxzbyBhZGQKKyAgICAgICAgbmV3IGxvY2FsIHZhcmlhYmxlcyB0byB0aGUgY29u
dGV4dC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZCBhIG5ldyBTVkdSZW5kZXJpbmdDb250ZXh0
IGNsYXNzLCBhbmQgbW92ZXMgdGhlcmUgdGhlIGNvbnRleHQKKyAgICAgICAgaW5pdGlhbGl6YXRp
b24gLyBjbGVhbnVwIGNvZGUgZnJvbSBTVkdSZW5kZXJTdXBwb3J0LiBBbGwgYnVpbGQgc3lzdGVt
cyB3ZXJlCisgICAgICAgIHVwZGF0ZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0FsbEluT25lLmNwcDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdDb250YWluZXI6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ZvcmVpZ25PYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9i
amVjdDo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6OnBhaW50KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHUm9vdDo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdTaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6cGFpbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdJbmxpbmVGbG93Qm94OjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aXNSZW5k
ZXJpbmdNYXNrSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyaW5nQ29udGV4dDo6
flNWR1JlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyaW5nQ29u
dGV4dDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJpbmdDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChTVkdSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlcmlu
Z0NvbnRleHQ6OlNWR1JlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVu
ZGVyaW5nQ29udGV4dDo6aXNSZW5kZXJpbmdQcmVwYXJlZCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9TVkdSb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jvb3RJbmxp
bmVCb3g6OnBhaW50KToKKwogMjAxMi0wMy0wNiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbUmVncmVzc2lvbl0gRXhlY3V0
aW9uIGxpbmUgaXMgbm90IHJldmVhbGVkIHdoZW4gZGVidWdnZXIgaXMgc3RvcHBlZCBpZiBzY3Jp
cHRzIHBhbmVsIHdhcyBub3QgeWV0IHNob3duLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggZDM1NDI3Mi4uNDA0ODcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBA
IC0zOTQyLDYgKzM5NDIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1Jlc291cmNlc0NhY2hlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVzb3VyY2VzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAzMjg0MGY4Li4wYThlZTJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTI1MjIsNiArMjUyMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmlu
Zy9zdmcvU1ZHUGF0aERhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0
LmggXAogICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5oIFwKKyAgICByZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaCBcCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdS
ZXNvdXJjZXMuaCBcCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5oIFwKICAg
ICByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmggXApAQCAtMzQ2NSw2ICsz
NDY2LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgICAgICAg
IHJlbmRlcmluZy9zdmcvU1ZHUGF0aERhdGEuY3BwIFwKICAgICAgICAgICAgICAgcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBcCiAgICAgICAgICAgICAgIHJlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAgXAorICAgICAgICAgICAgICByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlcmluZ0NvbnRleHQuY3BwIFwKICAgICAgICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdS
ZXNvdXJjZXMuY3BwIFwKICAgICAgICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXND
YWNoZS5jcHAgXAogICAgICAgICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0N5Y2xl
U29sdmVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDc0NjY0OS4uN2Q3MWI5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtNDcyMiw2ICs0NzIyLDggQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclN1cHBvcnQuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJUcmVlQXNUZXh0LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJUcmVlQXNUZXh0LmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5n
Q29udGV4dC5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29u
dGV4dC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmgnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwJywKQEAgLTU3MTIsNiArNTcxNCw4
IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5oJywKKyAgICAgICAgICAg
ICdyZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwJywKKyAgICAgICAgICAgICdy
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAncmVuZGVy
aW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NW
R1Jlc291cmNlcy5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0Nh
Y2hlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IDRjNmE3NmUuLjBkZmFiMGUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC00MjUyMCw2ICs0MjUyMCw2MiBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1Jl
bmRlcmluZ0NvbnRleHQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1JlbmRlcmluZ0NvbnRleHQu
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXHN2Z1xTVkdSZXNvdXJjZXMuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBlZGU5Y2E5Li43Zjk0YTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTUsNiArMzU1LDcgQEAKIAkJMThGODMx
QjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOEY4MzFCNzBGRDQ4Qzc4MDBEOEM1NkIg
LyogV29ya2VyTG9hZGVyUHJveHkuaCAqLzsgfTsKIAkJMTkyMTMyNzQxMUMwRTZCQjAwNDU2MjM4
IC8qIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5MjEzMjcxMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAgKi87IH07CiAJCTE5MjEzMjc1MTFDMEU2QkIwMDQ1
NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTkyMTMyNzIxMUMwRTZCQjAwNDU2MjM4IC8qIFNW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggKi87IH07CisJCTE5N0IxODBDMTUwNjM1MzIwMEU0
QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxOTdCMTgwQjE1MDYzNEMwMDBFNEFEQTggLyogU1ZHUmVuZGVy
aW5nQ29udGV4dC5oICovOyB9OwogCQkxOUJGRjY0QjExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE5QkZGNjQ2MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5oICovOyB9OwogCQkxOUJGRjY0QzExQzBGMkFDMDBCOEMwNEQgLyog
RE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOUJGRjY0NzExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQubW0gKi87IH07CiAJCTE5QkZGNjREMTFDMEYyQUMwMEI4
QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOUJGRjY0ODExQzBGMkFDMDBC
OEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwpA
QCAtNzE0Nyw2ICs3MTQ4LDggQEAKIAkJMTkyMTMyNzExMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTkyMTMyNzIxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE5MjEzMjcz
MTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxOTdCMTgwQTE1MDYzNEMwMDBFNEFEQTggLyogU1ZHUmVu
ZGVyaW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdSZW5kZXJpbmdDb250ZXh0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTk3QjE4MEIxNTA2MzRDMDAwRTRB
REE4IC8qIFNWR1JlbmRlcmluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUmVuZGVyaW5n
Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxOUJGRjY0NjExQzBGMkFD
MDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTlCRkY2NDcxMUMwRjJBQzAwQjhDMDREIC8qIERP
TVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE5QkZGNjQ4MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50SW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNzE3LDYgKzEzNzIwLDggQEAKIAkJCQk0MzY3MDhC
MzEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVuZGVyU3VwcG9ydC5oICovLAogCQkJCTQzNjcwOEI0
MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZW5kZXJUcmVlQXNUZXh0LmNwcCAqLywKIAkJCQk0MzY3
MDhCNTEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVuZGVyVHJlZUFzVGV4dC5oICovLAorCQkJCTE5
N0IxODBBMTUwNjM0QzAwMEU0QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0LmNwcCAqLywKKwkJ
CQkxOTdCMTgwQjE1MDYzNEMwMDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4dC5oICovLAog
CQkJCTQzNjcwOEI2MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJjZXMuY3BwICovLAogCQkJ
CTQzNjcwOEI3MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJjZXMuaCAqLywKIAkJCQk0MzY3
MDhCODEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwICovLApAQCAtMjQy
MjgsNiArMjQyMzMsNyBAQAogCQkJCUJDMjI3NDdCMEU4MzY2RTIwMEU3Rjk3NSAvKiBTVkdSZW5k
ZXJTdHlsZURlZnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOEYyMTJEOUNBNEIwMDA0NDIz
NCAvKiBTVkdSZW5kZXJTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhGNDEyRDlD
QTRCMDAwNDQyMzQgLyogU1ZHUmVuZGVyVHJlZUFzVGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MTk3QjE4MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzNjcwOEY2MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJjZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTQzNjcwOEY4MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJj
ZXNDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4RkExMkQ5Q0E0QjAwMDQ0MjM0IC8q
IFNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQWxsSW5PbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdBbGxJbk9uZS5jcHAKaW5kZXggYmU2Yzgz
Zi4uOGY4Yzg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdBbGxJbk9uZS5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJTVkdQYXRoRGF0
YS5jcHAiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5jcHAiCiAjaW5jbHVkZSAiU1ZHUmVu
ZGVyVHJlZUFzVGV4dC5jcHAiCisjaW5jbHVkZSAiU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAiCiAj
aW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmNwcCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5j
cHAiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCmluZGV4IDUx
NTU2NTUuLmIwMTQzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0NvbnRhaW5lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJSZW5k
ZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKKyNp
bmNsdWRlICJTVkdSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgi
CiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ2FjaGUuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVt
ZW50LmgiCkBAIC0xMTQsMTggKzExNCwxOCBAQCB2b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6cGFp
bnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKIAogICAgICAgICBj
aGlsZFBhaW50SW5mby5hcHBseVRyYW5zZm9ybShsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwog
CisgICAgICAgIFNWR1JlbmRlcmluZ0NvbnRleHQgcmVuZGVyaW5nQ29udGV4dDsKICAgICAgICAg
Ym9vbCBjb250aW51ZVJlbmRlcmluZyA9IHRydWU7Ci0gICAgICAgIGlmIChjaGlsZFBhaW50SW5m
by5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCkKLSAgICAgICAgICAgIGNvbnRpbnVlUmVu
ZGVyaW5nID0gU1ZHUmVuZGVyU3VwcG9ydDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudCh0aGlz
LCBjaGlsZFBhaW50SW5mbyk7CisgICAgICAgIGlmIChjaGlsZFBhaW50SW5mby5waGFzZSA9PSBQ
YWludFBoYXNlRm9yZWdyb3VuZCkgeworICAgICAgICAgICAgcmVuZGVyaW5nQ29udGV4dC5wcmVw
YXJlVG9SZW5kZXJTVkdDb250ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZvKTsKKyAgICAgICAgICAg
IGNvbnRpbnVlUmVuZGVyaW5nID0gcmVuZGVyaW5nQ29udGV4dC5pc1JlbmRlcmluZ1ByZXBhcmVk
KCk7CisgICAgICAgIH0KIAogICAgICAgICBpZiAoY29udGludWVSZW5kZXJpbmcpIHsKICAgICAg
ICAgICAgIGNoaWxkUGFpbnRJbmZvLnVwZGF0ZVBhaW50aW5nUm9vdEZvckNoaWxkcmVuKHRoaXMp
OwogICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgICAgICBjaGls
ZC0+cGFpbnQoY2hpbGRQYWludEluZm8sIEludFBvaW50KCkpOwogICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCkKLSAgICAgICAg
ICAgIFNWR1JlbmRlclN1cHBvcnQ6OmZpbmlzaFJlbmRlclNWR0NvbnRlbnQodGhpcywgY2hpbGRQ
YWludEluZm8sIHBhaW50SW5mby5jb250ZXh0KTsKICAgICB9CiAgICAgCiAgICAgLy8gRklYTUU6
IFRoaXMgcmVhbGx5IHNob3VsZCBiZSBkcmF3biBmcm9tIGxvY2FsIGNvb3JkaW5hdGVzLCBidXQg
Y3VycmVudGx5IHdlIGhhY2sgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCmluZGV4IGRhZGNhZWQuLjY3NmU4ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWln
bk9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0LmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlJlbmRlclNWR1Jl
c291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgorI2luY2x1ZGUg
IlNWR1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5oIgog
I2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgpA
QCAtNTksOSArNTksMTIgQEAgdm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjpwYWludChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQogICAgIGlmIChTVkdSZW5kZXJT
dXBwb3J0Ojppc092ZXJmbG93SGlkZGVuKHRoaXMpKQogICAgICAgICBjaGlsZFBhaW50SW5mby5j
b250ZXh0LT5jbGlwKG1fdmlld3BvcnQpOwogCisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dCByZW5k
ZXJpbmdDb250ZXh0OwogICAgIGJvb2wgY29udGludWVSZW5kZXJpbmcgPSB0cnVlOwotICAgIGlm
IChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQpCi0gICAgICAgIGNvbnRp
bnVlUmVuZGVyaW5nID0gU1ZHUmVuZGVyU3VwcG9ydDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVu
dCh0aGlzLCBjaGlsZFBhaW50SW5mbyk7CisgICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWlu
dFBoYXNlRm9yZWdyb3VuZCkgeworICAgICAgICByZW5kZXJpbmdDb250ZXh0LnByZXBhcmVUb1Jl
bmRlclNWR0NvbnRlbnQodGhpcywgY2hpbGRQYWludEluZm8pOworICAgICAgICBjb250aW51ZVJl
bmRlcmluZyA9IHJlbmRlcmluZ0NvbnRleHQuaXNSZW5kZXJpbmdQcmVwYXJlZCgpOworICAgIH0K
IAogICAgIGlmIChjb250aW51ZVJlbmRlcmluZykgewogICAgICAgICAvLyBQYWludCBhbGwgcGhh
c2VzIG9mIEZPIGVsZW1lbnRzIGF0b21pY2FsbHksIGFzIHRob3VnaCB0aGUgRk8gZWxlbWVudCBl
c3RhYmxpc2hlZCBpdHMKQEAgLTgxLDkgKzg0LDYgQEAgdm9pZCBSZW5kZXJTVkdGb3JlaWduT2Jq
ZWN0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQogICAg
ICAgICAgICAgUmVuZGVyQmxvY2s6OnBhaW50KGNoaWxkUGFpbnRJbmZvLCBjaGlsZFBvaW50KTsK
ICAgICAgICAgfQogICAgIH0KLQotICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFz
ZUZvcmVncm91bmQpCi0gICAgICAgIFNWR1JlbmRlclN1cHBvcnQ6OmZpbmlzaFJlbmRlclNWR0Nv
bnRlbnQodGhpcywgY2hpbGRQYWludEluZm8sIHBhaW50SW5mby5jb250ZXh0KTsKIH0KIAogTGF5
b3V0UmVjdCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKaW5kZXggNzIz
MGM2YS4uNTQ1Y2M3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbWFnZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJTVkdJbWFnZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgorI2luY2x1ZGUgIlNWR1Jl
bmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZXMuaCIKICNpbmNsdWRlICJT
VkdSZXNvdXJjZXNDYWNoZS5oIgogCkBAIC0xMjQsOSArMTI0LDkgQEAgdm9pZCBSZW5kZXJTVkdJ
bWFnZTo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAg
ICAgICAgY2hpbGRQYWludEluZm8uYXBwbHlUcmFuc2Zvcm0obV9sb2NhbFRyYW5zZm9ybSk7CiAK
ICAgICAgICAgaWYgKGNoaWxkUGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5k
KSB7Ci0gICAgICAgICAgICBQYWludEluZm8gc2F2ZWRJbmZvKGNoaWxkUGFpbnRJbmZvKTsKKyAg
ICAgICAgICAgIFNWR1JlbmRlcmluZ0NvbnRleHQgcmVuZGVyaW5nQ29udGV4dCh0aGlzLCBjaGls
ZFBhaW50SW5mbyk7CiAKLSAgICAgICAgICAgIGlmIChTVkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJl
VG9SZW5kZXJTVkdDb250ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZvKSkgeworICAgICAgICAgICAg
aWYgKHJlbmRlcmluZ0NvbnRleHQuaXNSZW5kZXJpbmdQcmVwYXJlZCgpKSB7CiAgICAgICAgICAg
ICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoKTsKICAg
ICAgICAgICAgICAgICBGbG9hdFJlY3QgZGVzdFJlY3QgPSBtX29iamVjdEJvdW5kaW5nQm94Owog
ICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBzcmNSZWN0KDAsIDAsIGltYWdlLT53aWR0aCgpLCBp
bWFnZS0+aGVpZ2h0KCkpOwpAQCAtMTM2LDggKzEzNiw2IEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6
OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAKICAgICAg
ICAgICAgICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCks
IENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RSZWN0LCBzcmNSZWN0KTsKICAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluaXNoUmVuZGVyU1ZHQ29udGVudCh0
aGlzLCBjaGlsZFBhaW50SW5mbywgc2F2ZWRJbmZvLmNvbnRleHQpOwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKGRyYXdzT3V0bGluZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IGFjOWNjNWQuLmI5OTcwMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtMzgsNyArMzgsNyBA
QAogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5o
IgogI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIK
KyNpbmNsdWRlICJTVkdSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2Vz
LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ2FjaGUuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVt
ZW50LmgiCkBAIC0yNzcsMTYgKzI3NywxNiBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OnBhaW50UmVw
bGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBhZGp1cwogICAg
IC8vIFRyYW5zZm9ybSBmcm9tIG91ciBwYWludCBjb250YWluZXIncyBjb29yZGluYXRlIHN5c3Rl
bSB0byBvdXIgbG9jYWwgY29vcmRzLgogICAgIGNoaWxkUGFpbnRJbmZvLmFwcGx5VHJhbnNmb3Jt
KEFmZmluZVRyYW5zZm9ybTo6dHJhbnNsYXRpb24oYWRqdXN0ZWRQYWludE9mZnNldC54KCkgLSB4
KCksIGFkanVzdGVkUGFpbnRPZmZzZXQueSgpIC0geSgpKSAqIGxvY2FsVG9QYXJlbnRUcmFuc2Zv
cm0oKSk7CiAKKyAgICBTVkdSZW5kZXJpbmdDb250ZXh0IHJlbmRlcmluZ0NvbnRleHQ7CiAgICAg
Ym9vbCBjb250aW51ZVJlbmRlcmluZyA9IHRydWU7Ci0gICAgaWYgKGNoaWxkUGFpbnRJbmZvLnBo
YXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKQotICAgICAgICBjb250aW51ZVJlbmRlcmluZyA9
IFNWR1JlbmRlclN1cHBvcnQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQodGhpcywgY2hpbGRQ
YWludEluZm8pOworICAgIGlmIChjaGlsZFBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9y
ZWdyb3VuZCkgeworICAgICAgICByZW5kZXJpbmdDb250ZXh0LnByZXBhcmVUb1JlbmRlclNWR0Nv
bnRlbnQodGhpcywgY2hpbGRQYWludEluZm8pOworICAgICAgICBjb250aW51ZVJlbmRlcmluZyA9
IHJlbmRlcmluZ0NvbnRleHQuaXNSZW5kZXJpbmdQcmVwYXJlZCgpOworICAgIH0KIAogICAgIGlm
IChjb250aW51ZVJlbmRlcmluZykKICAgICAgICAgUmVuZGVyQm94OjpwYWludChjaGlsZFBhaW50
SW5mbywgTGF5b3V0UG9pbnQoKSk7CiAKLSAgICBpZiAoY2hpbGRQYWludEluZm8ucGhhc2UgPT0g
UGFpbnRQaGFzZUZvcmVncm91bmQpCi0gICAgICAgIFNWR1JlbmRlclN1cHBvcnQ6OmZpbmlzaFJl
bmRlclNWR0NvbnRlbnQodGhpcywgY2hpbGRQYWludEluZm8sIHBhaW50SW5mby5jb250ZXh0KTsK
LQogICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPnJlc3RvcmUoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAppbmRleCAyZGZiMmQ4
Li4zZmEzMzEyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1NoYXBlLmNwcApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNl
U29saWRDb2xvci5oIgogI2luY2x1ZGUgIlNWR1BhdGhEYXRhLmgiCiAjaW5jbHVkZSAiU1ZHUGF0
aEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCisjaW5jbHVkZSAiU1ZH
UmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNWR1Jlc291cmNlcy5oIgogI2luY2x1ZGUg
IlNWR1Jlc291cmNlc0NhY2hlLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQuaCIKQEAgLTMzMyw5ICszMzMsOSBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpwYWludChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQmKQogICAgICAgICBjaGlsZFBhaW50
SW5mby5hcHBseVRyYW5zZm9ybShtX2xvY2FsVHJhbnNmb3JtKTsKIAogICAgICAgICBpZiAoY2hp
bGRQYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQpIHsKLSAgICAgICAgICAg
IFBhaW50SW5mbyBzYXZlZEluZm8oY2hpbGRQYWludEluZm8pOworICAgICAgICAgICAgU1ZHUmVu
ZGVyaW5nQ29udGV4dCByZW5kZXJpbmdDb250ZXh0KHRoaXMsIGNoaWxkUGFpbnRJbmZvKTsKIAot
ICAgICAgICAgICAgaWYgKFNWR1JlbmRlclN1cHBvcnQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRl
bnQodGhpcywgY2hpbGRQYWludEluZm8pKSB7CisgICAgICAgICAgICBpZiAocmVuZGVyaW5nQ29u
dGV4dC5pc1JlbmRlcmluZ1ByZXBhcmVkKCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBTVkdS
ZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZSgpLT5zdmdTdHlsZSgpOwogICAgICAgICAgICAg
ICAgIGlmIChzdmdTdHlsZS0+c2hhcGVSZW5kZXJpbmcoKSA9PSBTUl9DUklTUEVER0VTKQogICAg
ICAgICAgICAgICAgICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5zZXRTaG91bGRBbnRpYWxp
YXMoZmFsc2UpOwpAQCAtMzQ1LDggKzM0NSw2IEBAIHZvaWQgUmVuZGVyU1ZHU2hhcGU6OnBhaW50
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYpCiAgICAgICAgICAgICAgICAg
aWYgKHN2Z1N0eWxlLT5oYXNNYXJrZXJzKCkpCiAgICAgICAgICAgICAgICAgICAgIG1fbWFya2Vy
TGF5b3V0SW5mby5kcmF3TWFya2VycyhjaGlsZFBhaW50SW5mbyk7CiAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIFNWR1JlbmRlclN1cHBvcnQ6OmZpbmlzaFJlbmRlclNWR0NvbnRlbnQodGhp
cywgY2hpbGRQYWludEluZm8sIHNhdmVkSW5mby5jb250ZXh0KTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChkcmF3c091dGxpbmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdJbmxpbmVGbG93Qm94LmNwcAppbmRleCBjZGVlYzYxLi4yMWE5MDkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAKQEAgLTI5
LDcgKzI5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdJbmxpbmVUZXh0LmgiCiAjaW5jbHVkZSAi
UmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUgIlNWR0lubGluZVRleHRCb3guaCIK
LSNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCisjaW5jbHVkZSAiU1ZHUmVuZGVyaW5nQ29u
dGV4dC5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC01NywxOSArNTcsMTUgQEAgdm9p
ZCBTVkdJbmxpbmVGbG93Qm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmLCBMYXlvdXRVbmkKICAgICBSZW5kZXJPYmplY3QqIGJveFJlbmRlcmVyID0gcmVu
ZGVyZXIoKTsKICAgICBBU1NFUlQoYm94UmVuZGVyZXIpOwogCi0gICAgUGFpbnRJbmZvIGNoaWxk
UGFpbnRJbmZvKHBhaW50SW5mbyk7Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0
ZVNhdmVyKCpjaGlsZFBhaW50SW5mby5jb250ZXh0KTsKLQotICAgIGlmIChTVkdSZW5kZXJTdXBw
b3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KGJveFJlbmRlcmVyLCBjaGlsZFBhaW50SW5m
bykpIHsKKyAgICBTVkdSZW5kZXJpbmdDb250ZXh0IHJlbmRlcmluZ0NvbnRleHQoYm94UmVuZGVy
ZXIsIHBhaW50SW5mbywgU1ZHUmVuZGVyaW5nQ29udGV4dDo6U2F2ZUdyYXBoaWNzQ29udGV4dCk7
CisgICAgaWYgKHJlbmRlcmluZ0NvbnRleHQuaXNSZW5kZXJpbmdQcmVwYXJlZCgpKSB7CiAgICAg
ICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRPbkxpbmUoKSkgewogICAgICAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lubGlu
ZVRleHRCb3goKSkKICAgICAgICAgICAgICAgICBjb21wdXRlVGV4dE1hdGNoTWFya2VyUmVjdEZv
clJlbmRlcmVyKHRvUmVuZGVyU1ZHSW5saW5lVGV4dChzdGF0aWNfY2FzdDxTVkdJbmxpbmVUZXh0
Qm94Kj4oY2hpbGQpLT50ZXh0UmVuZGVyZXIoKSkpOwogCi0gICAgICAgICAgICBjaGlsZC0+cGFp
bnQoY2hpbGRQYWludEluZm8sIExheW91dFBvaW50KCksIDAsIDApOworICAgICAgICAgICAgY2hp
bGQtPnBhaW50KHBhaW50SW5mbywgTGF5b3V0UG9pbnQoKSwgMCwgMCk7CiAgICAgICAgIH0KICAg
ICB9Ci0KLSAgICBTVkdSZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5kZXJTVkdDb250ZW50KGJveFJl
bmRlcmVyLCBjaGlsZFBhaW50SW5mbywgcGFpbnRJbmZvLmNvbnRleHQpOwogfQogCiBGbG9hdFJl
Y3QgU1ZHSW5saW5lRmxvd0JveDo6Y2FsY3VsYXRlQm91bmRhcmllcygpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCBj
YmQzZWU2Li5lMjYyNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTI3LDEyICsyNyw4IEBACiAjaWYgRU5BQkxFKFNWRykK
ICNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCiAKLSNpbmNsdWRlICJGcmFtZS5oIgotI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAi
Tm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKLSNpbmNsdWRlICJS
ZW5kZXJTVkdQYXRoLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlci5oIgpAQCAtODAsMTA2ICs3Niw2IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyQm94CiAg
ICAgb2JqZWN0LT5wYXJlbnQoKS0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCBmYWxzZSwgdHJ1ZSwgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsKIH0KIAotc3RhdGljIGlu
bGluZSBib29sIGlzUmVuZGVyaW5nTWFza0ltYWdlKFJlbmRlck9iamVjdCogb2JqZWN0KQotewot
ICAgIGlmIChvYmplY3QtPmZyYW1lKCkgJiYgb2JqZWN0LT5mcmFtZSgpLT52aWV3KCkpCi0gICAg
ICAgIHJldHVybiBvYmplY3QtPmZyYW1lKCktPnZpZXcoKS0+cGFpbnRCZWhhdmlvcigpICYgUGFp
bnRCZWhhdmlvclJlbmRlcmluZ1NWR01hc2s7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29s
IFNWR1JlbmRlclN1cHBvcnQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVuZGVyT2JqZWN0
KiBvYmplY3QsIFBhaW50SW5mbyYgcGFpbnRJbmZvKQotewotICAgIEFTU0VSVChvYmplY3QpOwot
Ci0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOwotICAgIEFTU0VSVChz
dHlsZSk7Ci0KLSAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3Zn
U3R5bGUoKTsKLSAgICBBU1NFUlQoc3ZnU3R5bGUpOwotCi0gICAgLy8gU2V0dXAgdHJhbnNwYXJl
bmN5IGxheWVycyBiZWZvcmUgc2V0dGluZyB1cCBTVkcgcmVzb3VyY2VzIQotICAgIGJvb2wgaXNS
ZW5kZXJpbmdNYXNrID0gaXNSZW5kZXJpbmdNYXNrSW1hZ2Uob2JqZWN0KTsKLSAgICBmbG9hdCBv
cGFjaXR5ID0gaXNSZW5kZXJpbmdNYXNrID8gMSA6IHN0eWxlLT5vcGFjaXR5KCk7Ci0gICAgY29u
c3QgU2hhZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpOwotICAgIGlmIChvcGFj
aXR5IDwgMSB8fCBzaGFkb3cpIHsKLSAgICAgICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0ID0gb2Jq
ZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpOwotCi0gICAgICAgIGlmIChvcGFj
aXR5IDwgMSkgewotICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmNsaXAocmVwYWludFJl
Y3QpOwotICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmJlZ2luVHJhbnNwYXJlbmN5TGF5
ZXIob3BhY2l0eSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoc2hhZG93KSB7Ci0gICAgICAg
ICAgICBwYWludEluZm8uY29udGV4dC0+Y2xpcChyZXBhaW50UmVjdCk7Ci0gICAgICAgICAgICBw
YWludEluZm8uY29udGV4dC0+c2V0U2hhZG93KEludFNpemUocm91bmRUb0ludChzaGFkb3ctPngo
KSksIHJvdW5kVG9JbnQoc2hhZG93LT55KCkpKSwgc2hhZG93LT5ibHVyKCksIHNoYWRvdy0+Y29s
b3IoKSwgc3R5bGUtPmNvbG9yU3BhY2UoKSk7Ci0gICAgICAgICAgICBwYWludEluZm8uY29udGV4
dC0+YmVnaW5UcmFuc3BhcmVuY3lMYXllcigxKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIFNW
R1Jlc291cmNlcyogcmVzb3VyY2VzID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNl
c0ZvclJlbmRlck9iamVjdChvYmplY3QpOwotICAgIGlmICghcmVzb3VyY2VzKSB7Ci0jaWYgRU5B
QkxFKEZJTFRFUlMpCi0gICAgICAgIGlmIChzdmdTdHlsZS0+aGFzRmlsdGVyKCkpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
Ci0gICAgaWYgKCFpc1JlbmRlcmluZ01hc2spIHsKLSAgICAgICAgaWYgKFJlbmRlclNWR1Jlc291
cmNlTWFza2VyKiBtYXNrZXIgPSByZXNvdXJjZXMtPm1hc2tlcigpKSB7Ci0gICAgICAgICAgICBp
ZiAoIW1hc2tlci0+YXBwbHlSZXNvdXJjZShvYmplY3QsIHN0eWxlLCBwYWludEluZm8uY29udGV4
dCwgQXBwbHlUb0RlZmF1bHRNb2RlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyKiBjbGlw
cGVyID0gcmVzb3VyY2VzLT5jbGlwcGVyKCkpIHsKLSAgICAgICAgaWYgKCFjbGlwcGVyLT5hcHBs
eVJlc291cmNlKG9iamVjdCwgc3R5bGUsIHBhaW50SW5mby5jb250ZXh0LCBBcHBseVRvRGVmYXVs
dE1vZGUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotI2lmIEVOQUJMRShG
SUxURVJTKQotICAgIGlmICghaXNSZW5kZXJpbmdNYXNrKSB7Ci0gICAgICAgIGlmIChSZW5kZXJT
VkdSZXNvdXJjZUZpbHRlciogZmlsdGVyID0gcmVzb3VyY2VzLT5maWx0ZXIoKSkgewotICAgICAg
ICAgICAgaWYgKCFmaWx0ZXItPmFwcGx5UmVzb3VyY2Uob2JqZWN0LCBzdHlsZSwgcGFpbnRJbmZv
LmNvbnRleHQsIEFwcGx5VG9EZWZhdWx0TW9kZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQot
dm9pZCBTVkdSZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVj
dCogb2JqZWN0LCBQYWludEluZm8mIHBhaW50SW5mbywgR3JhcGhpY3NDb250ZXh0KiBzYXZlZENv
bnRleHQpCi17Ci0jaWYgIUVOQUJMRShGSUxURVJTKQotICAgIFVOVVNFRF9QQVJBTShzYXZlZENv
bnRleHQpOwotI2VuZGlmCi0KLSAgICBBU1NFUlQob2JqZWN0KTsKLQotICAgIGNvbnN0IFJlbmRl
clN0eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsKLSAgICBBU1NFUlQoc3R5bGUpOwotCi0g
ICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2Z1N0eWxlKCk7Ci0g
ICAgQVNTRVJUKHN2Z1N0eWxlKTsKLQotI2lmIEVOQUJMRShGSUxURVJTKQotICAgIFNWR1Jlc291
cmNlcyogcmVzb3VyY2VzID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJl
bmRlck9iamVjdChvYmplY3QpOwotICAgIGlmIChyZXNvdXJjZXMpIHsKLSAgICAgICAgaWYgKFJl
bmRlclNWR1Jlc291cmNlRmlsdGVyKiBmaWx0ZXIgPSByZXNvdXJjZXMtPmZpbHRlcigpKSB7Ci0g
ICAgICAgICAgICBmaWx0ZXItPnBvc3RBcHBseVJlc291cmNlKHN0YXRpY19jYXN0PFJlbmRlclNW
R1NoYXBlKj4ob2JqZWN0KSwgcGFpbnRJbmZvLmNvbnRleHQsIEFwcGx5VG9EZWZhdWx0TW9kZSwg
MCwgMCk7Ci0gICAgICAgICAgICBwYWludEluZm8uY29udGV4dCA9IHNhdmVkQ29udGV4dDsKLSAg
ICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0gICAgaWYgKHN0eWxlLT5vcGFjaXR5KCkgPCAxICYm
ICFpc1JlbmRlcmluZ01hc2tJbWFnZShvYmplY3QpKQotICAgICAgICBwYWludEluZm8uY29udGV4
dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKLQotICAgIGlmIChzdmdTdHlsZS0+c2hhZG93KCkp
Ci0gICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwotfQot
CiB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVDb250YWluZXJCb3VuZGluZ0JveGVzKGNv
bnN0IFJlbmRlck9iamVjdCogY29udGFpbmVyLCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94
LCBGbG9hdFJlY3QmIHN0cm9rZUJvdW5kaW5nQm94LCBGbG9hdFJlY3QmIHJlcGFpbnRCb3VuZGlu
Z0JveCkKIHsKICAgICBib29sIGlzRmlyc3RDaGlsZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCmluZGV4IGM3YjJmZGMuLjUxYzlk
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3Vw
cG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9y
dC5oCkBAIC00MiwxMCArNDIsNiBAQCBjbGFzcyBUcmFuc2Zvcm1TdGF0ZTsKIC8vIFNWR1JlbmRl
cmVyU3VwcG9ydCBpcyBhIGhlbHBlciBjbGFzcyBzaGFyaW5nIGNvZGUgYmV0d2VlbiBhbGwgU1ZH
IHJlbmRlcmVycy4KIGNsYXNzIFNWR1JlbmRlclN1cHBvcnQgewogcHVibGljOgotICAgIC8vIFVz
ZWQgYnkgYWxsIFNWRyByZW5kZXJlcnMgd2hvIGFwcGx5IGNsaXAvZmlsdGVyL2V0Yy4gcmVzb3Vy
Y2VzIHRvIHRoZSByZW5kZXJlciBjb250ZW50Ci0gICAgc3RhdGljIGJvb2wgcHJlcGFyZVRvUmVu
ZGVyU1ZHQ29udGVudChSZW5kZXJPYmplY3QqLCBQYWludEluZm8mKTsKLSAgICBzdGF0aWMgdm9p
ZCBmaW5pc2hSZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVjdCosIFBhaW50SW5mbyYsIEdyYXBo
aWNzQ29udGV4dCogc2F2ZWRDb250ZXh0KTsKLQogICAgIC8vIFNoYXJlcyBjaGlsZCBsYXlvdXRp
bmcgY29kZSBiZXR3ZWVuIFJlbmRlclNWR1Jvb3QvUmVuZGVyU1ZHKEhpZGRlbilDb250YWluZXIK
ICAgICBzdGF0aWMgdm9pZCBsYXlvdXRDaGlsZHJlbihSZW5kZXJPYmplY3QqLCBib29sIHNlbGZO
ZWVkc0xheW91dCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlcmluZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjM5ZDUyMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA3LCAyMDA4IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMDktMjAxMC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJT
VkdSZW5kZXJpbmdDb250ZXh0LmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCisjaW5jbHVkZSAiUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oIgorI2luY2x1ZGUgIlNW
R0ltYWdlQnVmZmVyVG9vbHMuaCIKKyNpbmNsdWRlICJTVkdSZXNvdXJjZXMuaCIKKyNpbmNsdWRl
ICJTVkdSZXNvdXJjZXNDYWNoZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc1JlbmRlcmluZ01hc2tJbWFnZShSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sK
KyAgICBpZiAob2JqZWN0LT5mcmFtZSgpICYmIG9iamVjdC0+ZnJhbWUoKS0+dmlldygpKQorICAg
ICAgICByZXR1cm4gb2JqZWN0LT5mcmFtZSgpLT52aWV3KCktPnBhaW50QmVoYXZpb3IoKSAmIFBh
aW50QmVoYXZpb3JSZW5kZXJpbmdTVkdNYXNrOworICAgIHJldHVybiBmYWxzZTsKK30KKworU1ZH
UmVuZGVyaW5nQ29udGV4dDo6flNWR1JlbmRlcmluZ0NvbnRleHQoKQoreworICAgIC8vIEZhc3Qg
cGF0aCBpZiB3ZSBkb24ndCBuZWVkIHRvIHJlc3RvcmUgYW55dGhpbmcuCisgICAgaWYgKCEobV9y
ZW5kZXJpbmdGbGFncyAmIEFjdGlvbnNOZWVkZWQpKQorICAgICAgICByZXR1cm47CisKKyAgICBB
U1NFUlQobV9vYmplY3QgJiYgbV9wYWludEluZm8pOworCisjaWYgRU5BQkxFKEZJTFRFUlMpCisg
ICAgaWYgKG1fcmVuZGVyaW5nRmxhZ3MgJiBFbmRGaWx0ZXJMYXllcikgeworICAgICAgICBBU1NF
UlQobV9maWx0ZXIpOworICAgICAgICBtX2ZpbHRlci0+cG9zdEFwcGx5UmVzb3VyY2Uoc3RhdGlj
X2Nhc3Q8UmVuZGVyU1ZHU2hhcGUqPihtX29iamVjdCksIG1fcGFpbnRJbmZvLT5jb250ZXh0LCBB
cHBseVRvRGVmYXVsdE1vZGUsIDAsIDApOworICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4dCA9
IG1fc2F2ZWRDb250ZXh0OworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKG1fcmVuZGVyaW5nRmxh
Z3MgJiBFbmRPcGFjaXR5TGF5ZXIpCisgICAgICAgIG1fcGFpbnRJbmZvLT5jb250ZXh0LT5lbmRU
cmFuc3BhcmVuY3lMYXllcigpOworCisgICAgaWYgKG1fcmVuZGVyaW5nRmxhZ3MgJiBFbmRTaGFk
b3dMYXllcikKKyAgICAgICAgbV9wYWludEluZm8tPmNvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxh
eWVyKCk7CisKKyAgICBpZiAobV9yZW5kZXJpbmdGbGFncyAmIFJlc3RvcmVHcmFwaGljc0NvbnRl
eHQpCisgICAgICAgIG1fcGFpbnRJbmZvLT5jb250ZXh0LT5yZXN0b3JlKCk7Cit9CisKK3ZvaWQg
U1ZHUmVuZGVyaW5nQ29udGV4dDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudChSZW5kZXJPYmpl
Y3QqIG9iamVjdCwgUGFpbnRJbmZvJiBwYWludEluZm8sIE5lZWRzR3JhcGhpY3NDb250ZXh0U2F2
ZSBuZWVkc0dyYXBoaWNzQ29udGV4dFNhdmUpCit7CisgICAgQVNTRVJUKG9iamVjdCk7CisKKyNp
Zm5kZWYgTkRFQlVHCisgICAgLy8gVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCBiZSBjYWxsZWQgdHdp
Y2UhCisgICAgQVNTRVJUKCEobV9yZW5kZXJpbmdGbGFncyAmIFByZXBhcmVUb1JlbmRlclNWR0Nv
bnRlbnRXYXNDYWxsZWQpKTsKKyAgICBtX3JlbmRlcmluZ0ZsYWdzIHw9IFByZXBhcmVUb1JlbmRl
clNWR0NvbnRlbnRXYXNDYWxsZWQ7CisjZW5kaWYKKworICAgIG1fb2JqZWN0ID0gb2JqZWN0Owor
ICAgIG1fcGFpbnRJbmZvID0gJnBhaW50SW5mbzsKKyNpZiBFTkFCTEUoRklMVEVSUykKKyAgICBt
X2ZpbHRlciA9IDA7CisjZW5kaWYKKworICAgIC8vIFdlIG5lZWQgdG8gc2F2ZSAvIHJlc3RvcmUg
dGhlIGNvbnRleHQgZXZlbiBpZiB0aGUgaW5pdGlhbGl6YXRpb24gZmFpbGVkLgorICAgIGlmIChu
ZWVkc0dyYXBoaWNzQ29udGV4dFNhdmUgPT0gU2F2ZUdyYXBoaWNzQ29udGV4dCkgeworICAgICAg
ICBtX3BhaW50SW5mby0+Y29udGV4dC0+c2F2ZSgpOworICAgICAgICBtX3JlbmRlcmluZ0ZsYWdz
IHw9IFJlc3RvcmVHcmFwaGljc0NvbnRleHQ7CisgICAgfQorCisgICAgUmVuZGVyU3R5bGUqIHN0
eWxlID0gbV9vYmplY3QtPnN0eWxlKCk7CisgICAgQVNTRVJUKHN0eWxlKTsKKworICAgIGNvbnN0
IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxlLT5zdmdTdHlsZSgpOworICAgIEFTU0VS
VChzdmdTdHlsZSk7CisKKyAgICAvLyBTZXR1cCB0cmFuc3BhcmVuY3kgbGF5ZXJzIGJlZm9yZSBz
ZXR0aW5nIHVwIFNWRyByZXNvdXJjZXMhCisgICAgYm9vbCBpc1JlbmRlcmluZ01hc2sgPSBpc1Jl
bmRlcmluZ01hc2tJbWFnZShtX29iamVjdCk7CisgICAgZmxvYXQgb3BhY2l0eSA9IGlzUmVuZGVy
aW5nTWFzayA/IDEgOiBzdHlsZS0+b3BhY2l0eSgpOworICAgIGNvbnN0IFNoYWRvd0RhdGEqIHNo
YWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKTsKKyAgICBpZiAob3BhY2l0eSA8IDEgfHwgc2hhZG93
KSB7CisgICAgICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IG1fb2JqZWN0LT5yZXBhaW50UmVj
dEluTG9jYWxDb29yZGluYXRlcygpOworCisgICAgICAgIGlmIChvcGFjaXR5IDwgMSkgeworICAg
ICAgICAgICAgbV9wYWludEluZm8tPmNvbnRleHQtPmNsaXAocmVwYWludFJlY3QpOworICAgICAg
ICAgICAgbV9wYWludEluZm8tPmNvbnRleHQtPmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0
eSk7CisgICAgICAgICAgICBtX3JlbmRlcmluZ0ZsYWdzIHw9IEVuZE9wYWNpdHlMYXllcjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChzaGFkb3cpIHsKKyAgICAgICAgICAgIG1fcGFpbnRJbmZv
LT5jb250ZXh0LT5jbGlwKHJlcGFpbnRSZWN0KTsKKyAgICAgICAgICAgIG1fcGFpbnRJbmZvLT5j
b250ZXh0LT5zZXRTaGFkb3coSW50U2l6ZShyb3VuZFRvSW50KHNoYWRvdy0+eCgpKSwgcm91bmRU
b0ludChzaGFkb3ctPnkoKSkpLCBzaGFkb3ctPmJsdXIoKSwgc2hhZG93LT5jb2xvcigpLCBzdHls
ZS0+Y29sb3JTcGFjZSgpKTsKKyAgICAgICAgICAgIG1fcGFpbnRJbmZvLT5jb250ZXh0LT5iZWdp
blRyYW5zcGFyZW5jeUxheWVyKDEpOworICAgICAgICAgICAgbV9yZW5kZXJpbmdGbGFncyB8PSBF
bmRTaGFkb3dMYXllcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIFNWR1Jlc291cmNlcyogcmVz
b3VyY2VzID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJlbmRlck9iamVj
dChtX29iamVjdCk7CisgICAgaWYgKCFyZXNvdXJjZXMpIHsKKyNpZiBFTkFCTEUoRklMVEVSUykK
KyAgICAgICAgaWYgKHN2Z1N0eWxlLT5oYXNGaWx0ZXIoKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyNlbmRpZgorICAgICAgICBtX3JlbmRlcmluZ0ZsYWdzIHw9IFJlbmRlcmluZ1ByZXBhcmVkOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFpc1JlbmRlcmluZ01hc2spIHsKKyAg
ICAgICAgaWYgKFJlbmRlclNWR1Jlc291cmNlTWFza2VyKiBtYXNrZXIgPSByZXNvdXJjZXMtPm1h
c2tlcigpKSB7CisgICAgICAgICAgICBpZiAoIW1hc2tlci0+YXBwbHlSZXNvdXJjZShtX29iamVj
dCwgc3R5bGUsIG1fcGFpbnRJbmZvLT5jb250ZXh0LCBBcHBseVRvRGVmYXVsdE1vZGUpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChSZW5kZXJT
VkdSZXNvdXJjZUNsaXBwZXIqIGNsaXBwZXIgPSByZXNvdXJjZXMtPmNsaXBwZXIoKSkgeworICAg
ICAgICBpZiAoIWNsaXBwZXItPmFwcGx5UmVzb3VyY2UobV9vYmplY3QsIHN0eWxlLCBtX3BhaW50
SW5mby0+Y29udGV4dCwgQXBwbHlUb0RlZmF1bHRNb2RlKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyNpZiBFTkFCTEUoRklMVEVSUykKKyAgICBpZiAoIWlzUmVuZGVyaW5nTWFzaykg
eworICAgICAgICBtX2ZpbHRlciA9IHJlc291cmNlcy0+ZmlsdGVyKCk7CisgICAgICAgIGlmICht
X2ZpbHRlcikgeworICAgICAgICAgICAgbV9zYXZlZENvbnRleHQgPSBtX3BhaW50SW5mby0+Y29u
dGV4dDsKKyAgICAgICAgICAgIGlmICghbV9maWx0ZXItPmFwcGx5UmVzb3VyY2UobV9vYmplY3Qs
IHN0eWxlLCBtX3BhaW50SW5mby0+Y29udGV4dCwgQXBwbHlUb0RlZmF1bHRNb2RlKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX3JlbmRlcmluZ0ZsYWdzIHw9IEVuZEZp
bHRlckxheWVyOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKKyAgICBtX3JlbmRlcmluZ0Zs
YWdzIHw9IFJlbmRlcmluZ1ByZXBhcmVkOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTk1MjdjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTAsMCAr
MSwxMDUgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5u
QGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0
Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgWm9sdGFuIEhlcmN6
ZWcgPHpoZXJjemVnQHdlYmtpdC5vcmc+LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFNWR1JlbmRlcmluZ0NvbnRleHRfaAor
I2RlZmluZSBTVkdSZW5kZXJpbmdDb250ZXh0X2gKKworI2lmIEVOQUJMRShTVkcpCisjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgorI2luY2x1ZGUgIlBh
aW50SW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFmZmluZVRyYW5zZm9y
bTsKK2NsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIEZsb2F0UmVjdDsKKyNpZiBFTkFCTEUoRklM
VEVSUykKK2NsYXNzIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOworI2VuZGlmCisKKy8vIFNWR1Jl
bmRlcmluZ0NvbnRleHQgCitjbGFzcyBTVkdSZW5kZXJpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAg
ICBlbnVtIE5lZWRzR3JhcGhpY3NDb250ZXh0U2F2ZSB7CisgICAgICAgIFNhdmVHcmFwaGljc0Nv
bnRleHQsCisgICAgICAgIERvbnRTYXZlR3JhcGhpY3NDb250ZXh0LAorICAgIH07CisKKyAgICAv
LyBEb2VzIG5vdCBzdGFydCByZW5kZXJpbmcuCisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dCgpCisg
ICAgICAgIDogbV9yZW5kZXJpbmdGbGFncygwKQorICAgICAgICAsIG1fb2JqZWN0KDApCisgICAg
ICAgICwgbV9wYWludEluZm8oMCkKKyAgICAgICAgLCBtX3NhdmVkQ29udGV4dCgwKQorICAgICAg
ICAsIG1fZmlsdGVyKDApCisgICAgeworICAgIH0KKworICAgIFNWR1JlbmRlcmluZ0NvbnRleHQo
UmVuZGVyT2JqZWN0KiBvYmplY3QsIFBhaW50SW5mbyYgcGFpbnRpbmZvLCBOZWVkc0dyYXBoaWNz
Q29udGV4dFNhdmUgbmVlZHNHcmFwaGljc0NvbnRleHRTYXZlID0gRG9udFNhdmVHcmFwaGljc0Nv
bnRleHQpCisgICAgICAgIDogbV9yZW5kZXJpbmdGbGFncygwKQorICAgICAgICAsIG1fb2JqZWN0
KDApCisgICAgICAgICwgbV9wYWludEluZm8oMCkKKyAgICAgICAgLCBtX3NhdmVkQ29udGV4dCgw
KQorICAgICAgICAsIG1fZmlsdGVyKDApCisgICAgeworICAgICAgICBwcmVwYXJlVG9SZW5kZXJT
VkdDb250ZW50KG9iamVjdCwgcGFpbnRpbmZvLCBuZWVkc0dyYXBoaWNzQ29udGV4dFNhdmUpOwor
ICAgIH0KKworICAgIC8vIEF1dG9tYXRpY2FsbHkgZmluaXNoZXMgY29udGV4dCByZW5kZXJpbmcu
CisgICAgflNWR1JlbmRlcmluZ0NvbnRleHQoKTsKKworICAgIC8vIFVzZWQgYnkgYWxsIFNWRyBy
ZW5kZXJlcnMgd2hvIGFwcGx5IGNsaXAvZmlsdGVyL2V0Yy4gcmVzb3VyY2VzIHRvIHRoZSByZW5k
ZXJlciBjb250ZW50LgorICAgIHZvaWQgcHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudChSZW5kZXJP
YmplY3QqLCBQYWludEluZm8mLCBOZWVkc0dyYXBoaWNzQ29udGV4dFNhdmUgPSBEb250U2F2ZUdy
YXBoaWNzQ29udGV4dCk7CisgICAgYm9vbCBpc1JlbmRlcmluZ1ByZXBhcmVkKCkgeyByZXR1cm4g
bV9yZW5kZXJpbmdGbGFncyAmIFJlbmRlcmluZ1ByZXBhcmVkOyB9CisKK3ByaXZhdGU6CisgICAg
Ly8gVG8gcHJvcGVybHkgcmV2ZXJ0IHBhcnRpYWxseSBzdWNjZXNzZnVsIGluaXRpYWxpenRpb25z
IGluIHRoZSBkZXN0cnVjdG9yLAorICAgIC8vIHdlIHJlY29yZCBhbGwgc3VjY2Vzc2Z1bCBzdGVw
cy4KKyAgICBlbnVtIFJlbmRlcmluZ0ZsYWdzIHsKKyAgICAgICAgUmVuZGVyaW5nUHJlcGFyZWQg
PSAxLAorICAgICAgICBSZXN0b3JlR3JhcGhpY3NDb250ZXh0ID0gMSA8PCAxLAorICAgICAgICBF
bmRPcGFjaXR5TGF5ZXIgPSAxIDw8IDIsCisgICAgICAgIEVuZFNoYWRvd0xheWVyID0gMSA8PCAz
LAorICAgICAgICBFbmRGaWx0ZXJMYXllciA9IDEgPDwgNCwKKyAgICAgICAgUHJlcGFyZVRvUmVu
ZGVyU1ZHQ29udGVudFdhc0NhbGxlZCA9IDEgPDwgNQorICAgIH07CisKKyAgICAvLyBMaXN0IG9m
IHRob3NlIGZsYWdzIHdoaWNoIHJlcXVpcmUgYWN0aW9ucyBkdXJpbmcgdGhlIGRlc3RydWN0b3Iu
CisgICAgY29uc3Qgc3RhdGljIGludCBBY3Rpb25zTmVlZGVkID0gUmVzdG9yZUdyYXBoaWNzQ29u
dGV4dAorICAgICAgICB8IEVuZE9wYWNpdHlMYXllciB8IEVuZFNoYWRvd0xheWVyIHwgRW5kRmls
dGVyTGF5ZXI7CisKKyAgICBpbnQgbV9yZW5kZXJpbmdGbGFnczsKKyAgICBSZW5kZXJPYmplY3Qq
IG1fb2JqZWN0OworICAgIFBhaW50SW5mbyogbV9wYWludEluZm87CisgICAgR3JhcGhpY3NDb250
ZXh0KiBtX3NhdmVkQ29udGV4dDsKKyNpZiBFTkFCTEUoRklMVEVSUykKKyAgICBSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlciogbV9maWx0ZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcpCisjZW5kaWYgLy8gU1ZHUmVuZGVyaW5nQ29u
dGV4dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJ
bmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5l
Qm94LmNwcAppbmRleCBhZTQ5NWVjLi41NzE0NmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNp
bmNsdWRlICJTVkdJbmxpbmVGbG93Qm94LmgiCiAjaW5jbHVkZSAiU1ZHSW5saW5lVGV4dEJveC5o
IgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgor
I2luY2x1ZGUgIlNWR1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU3LDE4ICs1NywxNSBA
QCB2b2lkIFNWR1Jvb3RJbmxpbmVCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYsIExheW91dFVuaQogICAgICAgICB9CiAgICAgfQogCi0gICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjaGlsZFBhaW50SW5mby5jb250ZXh0KTsK
LQotICAgIGlmIChTVkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KGJv
eFJlbmRlcmVyLCBjaGlsZFBhaW50SW5mbykpIHsKKyAgICBTVkdSZW5kZXJpbmdDb250ZXh0IHJl
bmRlcmluZ0NvbnRleHQoYm94UmVuZGVyZXIsIHBhaW50SW5mbywgU1ZHUmVuZGVyaW5nQ29udGV4
dDo6U2F2ZUdyYXBoaWNzQ29udGV4dCk7CisgICAgaWYgKHJlbmRlcmluZ0NvbnRleHQuaXNSZW5k
ZXJpbmdQcmVwYXJlZCgpKSB7CiAgICAgICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkgewogICAgICAgICAg
ICAgaWYgKGNoaWxkLT5pc1NWR0lubGluZVRleHRCb3goKSkKICAgICAgICAgICAgICAgICBTVkdJ
bmxpbmVGbG93Qm94Ojpjb21wdXRlVGV4dE1hdGNoTWFya2VyUmVjdEZvclJlbmRlcmVyKHRvUmVu
ZGVyU1ZHSW5saW5lVGV4dChzdGF0aWNfY2FzdDxTVkdJbmxpbmVUZXh0Qm94Kj4oY2hpbGQpLT50
ZXh0UmVuZGVyZXIoKSkpOwogCi0gICAgICAgICAgICBjaGlsZC0+cGFpbnQoY2hpbGRQYWludElu
Zm8sIExheW91dFBvaW50KCksIDAsIDApOworICAgICAgICAgICAgY2hpbGQtPnBhaW50KHBhaW50
SW5mbywgTGF5b3V0UG9pbnQoKSwgMCwgMCk7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBTVkdS
ZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5kZXJTVkdDb250ZW50KGJveFJlbmRlcmVyLCBjaGlsZFBh
aW50SW5mbywgcGFpbnRJbmZvLmNvbnRleHQpOwogfQogCiB2b2lkIFNWR1Jvb3RJbmxpbmVCb3g6
OmNvbXB1dGVQZXJDaGFyYWN0ZXJMYXlvdXRJbmZvcm1hdGlvbigpCi0tIAoxLjcuMi41Cgo=
</data>
<flag name="review"
          id="133351"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
    <flag name="commit-queue"
          id="133363"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130816</attachid>
            <date>2012-03-08 06:26:15 -0800</date>
            <delta_ts>2012-03-09 03:03:24 -0800</delta_ts>
            <desc>fixing EWS failures</desc>
            <filename>0001-SVGRenderingContext.patch</filename>
            <type>text/plain</type>
            <size>40139</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA0ZDQzMDcwYzJmZThhZTBiMmRmM2YyZWYxYjQxZDQ5YTQwMmEyZTBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9yZz4K
RGF0ZTogVGh1LCA4IE1hciAyMDEyIDA2OjE0OjA2IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU1ZH
UmVuZGVyaW5nQ29udGV4dAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDUzICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gICAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qICAgICAgIHwgICA1NiArKysrKysr
CiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8ICAg
IDYgKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdBbGxJbk9uZS5jcHAg
fCAgICAxICsKIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNw
cCAgIHwgICAxMiArLQogLi4uL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5j
cHAgICAgICAgfCAgIDEyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ltYWdlLmNwcCAgICB8ICAgIDggKy0KIC4uLi9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlRmlsdGVyLmNwcCAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSb290LmNwcCAgICAgfCAgIDEyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcCAgICB8ICAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAgIHwgICAxMiArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCAgfCAgMTA0IC0tLS0tLS0tLS0t
LS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oICAgIHwg
ICAgNCAtCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3Bw
ICB8ICAxNjMgKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oIHwgIDEwMSArKysrKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAgIHwgICAxMSArLQogMjAgZmls
ZXMgY2hhbmdlZCwgNDIyIGluc2VydGlvbnMoKyksIDE1MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRl
eHQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJpbmdDb250ZXh0LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJiZTVmZGQuLmUy
OTA2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzM4LDYgKzE3MzgsNyBAQCBJRiAoRU5B
QkxFX1NWRykKICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHAKICAgICAgICAg
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAogICAgICAgICByZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCisgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
aW5nQ29udGV4dC5jcHAKICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwCiAg
ICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCiAgICAgICAgIHJlbmRl
cmluZy9zdmcvU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NlY2Y5
NS4uODhhNTRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTAzLTA4ICBab2x0
YW4gSGVyY3plZyAgPHpoZXJjemVnQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNWR1JlbmRl
cmluZ0NvbnRleHQgYW5kIG1vdmUgdGhlcmUgdGhlIGNvbnRleHQgcmVsYXRlZCBjb2RlIGZyb20g
U1ZHUmVuZGVyU3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODA0MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIG9mIHJlZmFjdG9yaW5nIHRoZSByZW5kZXJp
bmcgY29udGV4dCBmb3IgU1ZHLiBUaGUKKyAgICAgICAgcHJldmlvdXMgY29udGV4dCB3YXMgc3Rh
dGVsZXNzIGJlZm9yZSwgd2hpY2ggbWVhbnMgdGhlIGNsZWFudXAgcGhhc2UKKyAgICAgICAgbmVl
ZGVkIHRvIGRvIGEgbG90IG9mIGNoZWNrcyB0byByZXZlcnQgdGhlIGluaXRpYWxpemF0aW9uIHBh
cnQgYW5kCisgICAgICAgIHdhcyB1bmF3YXJlIG9mIGZhaWxlZCBpbml0aXRhbGl6YXRpb24uIEZ1
dHVyZSBjb2RlIGNhbiBhbHNvIGFkZAorICAgICAgICBuZXcgbG9jYWwgdmFyaWFibGVzIHRvIHRo
ZSBjb250ZXh0LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkIGEgbmV3IFNWR1JlbmRlcmluZ0Nv
bnRleHQgY2xhc3MsIGFuZCBtb3ZlcyB0aGVyZSB0aGUgY29udGV4dAorICAgICAgICBpbml0aWFs
aXphdGlvbiAvIGNsZWFudXAgY29kZSBmcm9tIFNWR1JlbmRlclN1cHBvcnQuIEFsbCBidWlsZCBz
eXN0ZW1zIHdlcmUKKyAgICAgICAgdXBkYXRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQWxsSW5PbmUuY3BwOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR0NvbnRhaW5lcjo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3Jl
aWduT2JqZWN0OjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6cGFpbnQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTVkdSb290OjpwYWludFJlcGxhY2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpwYWlu
dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0lubGluZUZsb3dCb3g6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29u
dGV4dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpp
c1JlbmRlcmluZ01hc2tJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJpbmdDb250
ZXh0Ojp+U1ZHUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJp
bmdDb250ZXh0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFNWR1JlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVu
ZGVyaW5nQ29udGV4dDo6U1ZHUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZW5kZXJpbmdDb250ZXh0Ojppc1JlbmRlcmluZ1ByZXBhcmVkKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUm9v
dElubGluZUJveDo6cGFpbnQpOgorCiAyMDEyLTAzLTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlu
eWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICA8c2hhZG93PiBzaG91bGQgYmUgcmVuZGVyZWQg
Y29ycmVjdGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzQ3ODJiZi4uNDU2
OTQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zOTQzLDYgKzM5NDMsOCBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clRyZWVBc1RleHQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clRyZWVBc1RleHQuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJp
bmdDb250ZXh0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJp
bmdDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2Vz
Q2FjaGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0Nh
Y2hlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQppbmRleCA3ZmE0MzRiLi44MjAyNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTI1MjIs
NiArMjUyMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9zdmcvU1ZHUGF0aERhdGEu
aCBcCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggXAogICAgIHJlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5oIFwKKyAgICByZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
cmluZ0NvbnRleHQuaCBcCiAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuaCBcCiAgICAg
cmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5oIFwKICAgICByZW5kZXJpbmcvc3ZnL1NW
R1Jlc291cmNlc0N5Y2xlU29sdmVyLmggXApAQCAtMzQ2NSw2ICszNDY2LDcgQEAgY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZH
UGF0aERhdGEuY3BwIFwKICAgICAgICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBw
b3J0LmNwcCBcCiAgICAgICAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4
dC5jcHAgXAorICAgICAgICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQu
Y3BwIFwKICAgICAgICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwIFwKICAg
ICAgICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAgXAogICAgICAg
ICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggMDZiOWY2MS4uZDNiZGEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDcy
OSw2ICs0NzI5LDggQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBv
cnQuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNw
cCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmgnLAor
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAnLAorICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oJywKICAgICAgICAg
ICAgICdyZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9zdmcvU1ZHUmVzb3VyY2VzLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZH
UmVzb3VyY2VzQ2FjaGUuY3BwJywKQEAgLTU3MjAsNiArNTcyMiw4IEBACiAgICAgICAgICAgICAn
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlcmluZ0NvbnRleHQuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlcmluZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJj
ZXMuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5oJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZhYzk3YTUuLjMw
MWMwNjYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC00MzAyNCw2ICs0MzAyNCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1JlbmRlcmluZ0NvbnRleHQuY3Bw
IgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJv
ZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1JlbmRlcmluZ0NvbnRleHQuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdSZXNv
dXJjZXMuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMzhkMWQyLi5k
NzAxYTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0zNTUsNiArMzU1LDcgQEAKIAkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZC
IC8qIFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxOEY4MzFCNzBGRDQ4Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJv
eHkuaCAqLzsgfTsKIAkJMTkyMTMyNzQxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE5MjEzMjcxMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHAgKi87IH07CiAJCTE5MjEzMjc1MTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTkyMTMyNzIxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50LmggKi87IH07CisJCTE5N0IxODBDMTUwNjM1MzIwMEU0QURBOCAvKiBTVkdSZW5kZXJp
bmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxOTdCMTgwQjE1MDYzNEMwMDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4dC5oICovOyB9
OwogCQkxOUJGRjY0QjExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5
QkZGNjQ2MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5o
ICovOyB9OwogCQkxOUJGRjY0QzExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxOUJGRjY0NzExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQubW0gKi87IH07CiAJCTE5QkZGNjREMTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxOUJGRjY0ODExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwpAQCAtNzE0OCw2ICs3MTQ5LDgg
QEAKIAkJMTkyMTMyNzExMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTkyMTMy
NzIxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE5MjEzMjczMTFDMEU2QkIwMDQ1NjIzOCAv
KiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxOTdCMTgwQTE1MDYzNEMwMDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdSZW5kZXJpbmdDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMTk3QjE4MEIxNTA2MzRDMDAwRTRBREE4IC8qIFNWR1JlbmRlcmlu
Z0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxOUJGRjY0NjExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTlCRkY2NDcxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9N
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTE5QkZGNjQ4MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEzNzE5LDYgKzEzNzIyLDggQEAKIAkJCQk0MzY3MDhCMzEyRDlDQTRCMDAwNDQyMzQg
LyogU1ZHUmVuZGVyU3VwcG9ydC5oICovLAogCQkJCTQzNjcwOEI0MTJEOUNBNEIwMDA0NDIzNCAv
KiBTVkdSZW5kZXJUcmVlQXNUZXh0LmNwcCAqLywKIAkJCQk0MzY3MDhCNTEyRDlDQTRCMDAwNDQy
MzQgLyogU1ZHUmVuZGVyVHJlZUFzVGV4dC5oICovLAorCQkJCTE5N0IxODBBMTUwNjM0QzAwMEU0
QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0LmNwcCAqLywKKwkJCQkxOTdCMTgwQjE1MDYzNEMw
MDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCTQzNjcwOEI2MTJEOUNB
NEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJjZXMuY3BwICovLAogCQkJCTQzNjcwOEI3MTJEOUNBNEIw
MDA0NDIzNCAvKiBTVkdSZXNvdXJjZXMuaCAqLywKIAkJCQk0MzY3MDhCODEyRDlDQTRCMDAwNDQy
MzQgLyogU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwICovLApAQCAtMjQyMjksNiArMjQyMzQsNyBAQAog
CQkJCUJDMjI3NDdCMEU4MzY2RTIwMEU3Rjk3NSAvKiBTVkdSZW5kZXJTdHlsZURlZnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQzNjcwOEYyMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZW5kZXJTdXBw
b3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhGNDEyRDlDQTRCMDAwNDQyMzQgLyogU1ZH
UmVuZGVyVHJlZUFzVGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTk3QjE4MEMxNTA2MzUzMjAw
RTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcw
OEY2MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQzNjcwOEY4MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJjZXNDYWNoZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDM2NzA4RkExMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR1Jlc291cmNlc0N5Y2xl
U29sdmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdBbGxJbk9uZS5jcHAKaW5kZXggYmU2YzgzZi4uOGY4Yzg2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdBbGxJbk9uZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdBbGxJbk9uZS5jcHAK
QEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJTVkdQYXRoRGF0YS5jcHAiCiAjaW5jbHVkZSAi
U1ZHUmVuZGVyU3VwcG9ydC5jcHAiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAi
CisjaW5jbHVkZSAiU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAiCiAjaW5jbHVkZSAiU1ZHUmVzb3Vy
Y2VzLmNwcCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5jcHAiCiAjaW5jbHVkZSAiU1ZH
UmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCmluZGV4IDUxNTU2NTUuLmIwMTQzYTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5l
ci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgog
I2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKKyNpbmNsdWRlICJTVkdSZW5kZXJp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgiCiAjaW5jbHVkZSAiU1ZHUmVz
b3VyY2VzQ2FjaGUuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCkBAIC0xMTQsMTgg
KzExNCwxOCBAQCB2b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6cGFpbnQoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JikKIAogICAgICAgICBjaGlsZFBhaW50SW5mby5hcHBs
eVRyYW5zZm9ybShsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwogCisgICAgICAgIFNWR1JlbmRl
cmluZ0NvbnRleHQgcmVuZGVyaW5nQ29udGV4dDsKICAgICAgICAgYm9vbCBjb250aW51ZVJlbmRl
cmluZyA9IHRydWU7Ci0gICAgICAgIGlmIChjaGlsZFBhaW50SW5mby5waGFzZSA9PSBQYWludFBo
YXNlRm9yZWdyb3VuZCkKLSAgICAgICAgICAgIGNvbnRpbnVlUmVuZGVyaW5nID0gU1ZHUmVuZGVy
U3VwcG9ydDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50SW5mbyk7
CisgICAgICAgIGlmIChjaGlsZFBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3Vu
ZCkgeworICAgICAgICAgICAgcmVuZGVyaW5nQ29udGV4dC5wcmVwYXJlVG9SZW5kZXJTVkdDb250
ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZvKTsKKyAgICAgICAgICAgIGNvbnRpbnVlUmVuZGVyaW5n
ID0gcmVuZGVyaW5nQ29udGV4dC5pc1JlbmRlcmluZ1ByZXBhcmVkKCk7CisgICAgICAgIH0KIAog
ICAgICAgICBpZiAoY29udGludWVSZW5kZXJpbmcpIHsKICAgICAgICAgICAgIGNoaWxkUGFpbnRJ
bmZvLnVwZGF0ZVBhaW50aW5nUm9vdEZvckNoaWxkcmVuKHRoaXMpOwogICAgICAgICAgICAgZm9y
IChSZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgICAgICBjaGlsZC0+cGFpbnQoY2hpbGRQYWlu
dEluZm8sIEludFBvaW50KCkpOwogICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHBhaW50SW5mby5w
aGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCkKLSAgICAgICAgICAgIFNWR1JlbmRlclN1cHBv
cnQ6OmZpbmlzaFJlbmRlclNWR0NvbnRlbnQodGhpcywgY2hpbGRQYWludEluZm8sIHBhaW50SW5m
by5jb250ZXh0KTsKICAgICB9CiAgICAgCiAgICAgLy8gRklYTUU6IFRoaXMgcmVhbGx5IHNob3Vs
ZCBiZSBkcmF3biBmcm9tIGxvY2FsIGNvb3JkaW5hdGVzLCBidXQgY3VycmVudGx5IHdlIGhhY2sg
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9y
ZWlnbk9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Zv
cmVpZ25PYmplY3QuY3BwCmluZGV4IGRhZGNhZWQuLjY3NmU4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcApA
QCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgiCi0j
aW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgorI2luY2x1ZGUgIlNWR1JlbmRlcmluZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5oIgogI2luY2x1ZGUgIlNWR1NWR0Vs
ZW1lbnQuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgpAQCAtNTksOSArNTksMTIgQEAg
dm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmKQogICAgIGlmIChTVkdSZW5kZXJTdXBwb3J0Ojppc092ZXJmbG93
SGlkZGVuKHRoaXMpKQogICAgICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5jbGlwKG1fdmll
d3BvcnQpOwogCisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dCByZW5kZXJpbmdDb250ZXh0OwogICAg
IGJvb2wgY29udGludWVSZW5kZXJpbmcgPSB0cnVlOwotICAgIGlmIChwYWludEluZm8ucGhhc2Ug
PT0gUGFpbnRQaGFzZUZvcmVncm91bmQpCi0gICAgICAgIGNvbnRpbnVlUmVuZGVyaW5nID0gU1ZH
UmVuZGVyU3VwcG9ydDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50
SW5mbyk7CisgICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCkg
eworICAgICAgICByZW5kZXJpbmdDb250ZXh0LnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQodGhp
cywgY2hpbGRQYWludEluZm8pOworICAgICAgICBjb250aW51ZVJlbmRlcmluZyA9IHJlbmRlcmlu
Z0NvbnRleHQuaXNSZW5kZXJpbmdQcmVwYXJlZCgpOworICAgIH0KIAogICAgIGlmIChjb250aW51
ZVJlbmRlcmluZykgewogICAgICAgICAvLyBQYWludCBhbGwgcGhhc2VzIG9mIEZPIGVsZW1lbnRz
IGF0b21pY2FsbHksIGFzIHRob3VnaCB0aGUgRk8gZWxlbWVudCBlc3RhYmxpc2hlZCBpdHMKQEAg
LTgxLDkgKzg0LDYgQEAgdm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQogICAgICAgICAgICAgUmVuZGVyQmxv
Y2s6OnBhaW50KGNoaWxkUGFpbnRJbmZvLCBjaGlsZFBvaW50KTsKICAgICAgICAgfQogICAgIH0K
LQotICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQpCi0gICAg
ICAgIFNWR1JlbmRlclN1cHBvcnQ6OmZpbmlzaFJlbmRlclNWR0NvbnRlbnQodGhpcywgY2hpbGRQ
YWludEluZm8sIHBhaW50SW5mby5jb250ZXh0KTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJTVkdG
b3JlaWduT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKaW5kZXggNzIzMGM2YS4uNTQ1Y2M3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKQEAg
LTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJTVkdJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdMZW5ndGguaCIKICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCi0jaW5jbHVk
ZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgorI2luY2x1ZGUgIlNWR1JlbmRlcmluZ0NvbnRleHQuaCIK
ICNpbmNsdWRlICJTVkdSZXNvdXJjZXMuaCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5o
IgogCkBAIC0xMjQsOSArMTI0LDkgQEAgdm9pZCBSZW5kZXJTVkdJbWFnZTo6cGFpbnQoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAgICAgICAgY2hpbGRQYWludElu
Zm8uYXBwbHlUcmFuc2Zvcm0obV9sb2NhbFRyYW5zZm9ybSk7CiAKICAgICAgICAgaWYgKGNoaWxk
UGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7Ci0gICAgICAgICAgICBQ
YWludEluZm8gc2F2ZWRJbmZvKGNoaWxkUGFpbnRJbmZvKTsKKyAgICAgICAgICAgIFNWR1JlbmRl
cmluZ0NvbnRleHQgcmVuZGVyaW5nQ29udGV4dCh0aGlzLCBjaGlsZFBhaW50SW5mbyk7CiAKLSAg
ICAgICAgICAgIGlmIChTVkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50
KHRoaXMsIGNoaWxkUGFpbnRJbmZvKSkgeworICAgICAgICAgICAgaWYgKHJlbmRlcmluZ0NvbnRl
eHQuaXNSZW5kZXJpbmdQcmVwYXJlZCgpKSB7CiAgICAgICAgICAgICAgICAgUmVmUHRyPEltYWdl
PiBpbWFnZSA9IG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoKTsKICAgICAgICAgICAgICAgICBGbG9h
dFJlY3QgZGVzdFJlY3QgPSBtX29iamVjdEJvdW5kaW5nQm94OwogICAgICAgICAgICAgICAgIEZs
b2F0UmVjdCBzcmNSZWN0KDAsIDAsIGltYWdlLT53aWR0aCgpLCBpbWFnZS0+aGVpZ2h0KCkpOwpA
QCAtMTM2LDggKzEzNiw2IEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6OnBhaW50KFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAKICAgICAgICAgICAgICAgICBjaGlsZFBh
aW50SW5mby5jb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VS
R0IsIGRlc3RSZWN0LCBzcmNSZWN0KTsKICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgU1ZH
UmVuZGVyU3VwcG9ydDo6ZmluaXNoUmVuZGVyU1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50SW5m
bywgc2F2ZWRJbmZvLmNvbnRleHQpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRyYXdzT3V0
bGluZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZUZpbHRlci5jcHAKaW5kZXggNDNlYmVlMi4uYTQ0MTk4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRl
ci5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjph
cHBseVJlc291cmNlKFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJTdHlsZSosCiAgICAgICAg
IEFTU0VSVCghbV9maWx0ZXIuY29udGFpbnMob2JqZWN0KSk7CiAgICAgICAgIGZpbHRlckRhdGEt
PnNhdmVkQ29udGV4dCA9IGNvbnRleHQ7CiAgICAgICAgIG1fZmlsdGVyLnNldChvYmplY3QsIGZp
bHRlckRhdGEubGVha1B0cigpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBDaGFuZ2UgdGhlIGNvb3JkaW5hdGUgdHJhbnNmb3Jt
YXRpb24gYXBwbGllZCB0byB0aGUgZmlsdGVyZWQgZWxlbWVudCB0byByZWZsZWN0IHRoZSByZXNv
bHV0aW9uIG9mIHRoZSBmaWx0ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSb290LmNwcAppbmRleCBhYzljYzVkLi5iOTk3MDFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlICJTVkdMZW5ndGguaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCisj
aW5jbHVkZSAiU1ZHUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNWR1Jlc291cmNlcy5o
IgogI2luY2x1ZGUgIlNWR1Jlc291cmNlc0NhY2hlLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVu
dC5oIgpAQCAtMjc3LDE2ICsyNzcsMTYgQEAgdm9pZCBSZW5kZXJTVkdSb290OjpwYWludFJlcGxh
Y2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgYWRqdXMKICAgICAv
LyBUcmFuc2Zvcm0gZnJvbSBvdXIgcGFpbnQgY29udGFpbmVyJ3MgY29vcmRpbmF0ZSBzeXN0ZW0g
dG8gb3VyIGxvY2FsIGNvb3Jkcy4KICAgICBjaGlsZFBhaW50SW5mby5hcHBseVRyYW5zZm9ybShB
ZmZpbmVUcmFuc2Zvcm06OnRyYW5zbGF0aW9uKGFkanVzdGVkUGFpbnRPZmZzZXQueCgpIC0geCgp
LCBhZGp1c3RlZFBhaW50T2Zmc2V0LnkoKSAtIHkoKSkgKiBsb2NhbFRvUGFyZW50VHJhbnNmb3Jt
KCkpOwogCisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dCByZW5kZXJpbmdDb250ZXh0OwogICAgIGJv
b2wgY29udGludWVSZW5kZXJpbmcgPSB0cnVlOwotICAgIGlmIChjaGlsZFBhaW50SW5mby5waGFz
ZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCkKLSAgICAgICAgY29udGludWVSZW5kZXJpbmcgPSBT
VkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KHRoaXMsIGNoaWxkUGFp
bnRJbmZvKTsKKyAgICBpZiAoY2hpbGRQYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVn
cm91bmQpIHsKKyAgICAgICAgcmVuZGVyaW5nQ29udGV4dC5wcmVwYXJlVG9SZW5kZXJTVkdDb250
ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZvKTsKKyAgICAgICAgY29udGludWVSZW5kZXJpbmcgPSBy
ZW5kZXJpbmdDb250ZXh0LmlzUmVuZGVyaW5nUHJlcGFyZWQoKTsKKyAgICB9CiAKICAgICBpZiAo
Y29udGludWVSZW5kZXJpbmcpCiAgICAgICAgIFJlbmRlckJveDo6cGFpbnQoY2hpbGRQYWludElu
Zm8sIExheW91dFBvaW50KCkpOwogCi0gICAgaWYgKGNoaWxkUGFpbnRJbmZvLnBoYXNlID09IFBh
aW50UGhhc2VGb3JlZ3JvdW5kKQotICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5k
ZXJTVkdDb250ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZvLCBwYWludEluZm8uY29udGV4dCk7Ci0K
ICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5yZXN0b3JlKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXggMmRmYjJkOC4u
M2ZhMzMxMiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdT
aGFwZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZVNv
bGlkQ29sb3IuaCIKICNpbmNsdWRlICJTVkdQYXRoRGF0YS5oIgogI2luY2x1ZGUgIlNWR1BhdGhF
bGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgorI2luY2x1ZGUgIlNWR1Jl
bmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZXMuaCIKICNpbmNsdWRlICJT
VkdSZXNvdXJjZXNDYWNoZS5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50LmgiCkBAIC0zMzMsOSArMzMzLDkgQEAgdm9pZCBSZW5kZXJTVkdTaGFwZTo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFBvaW50JikKICAgICAgICAgY2hpbGRQYWludElu
Zm8uYXBwbHlUcmFuc2Zvcm0obV9sb2NhbFRyYW5zZm9ybSk7CiAKICAgICAgICAgaWYgKGNoaWxk
UGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7Ci0gICAgICAgICAgICBQ
YWludEluZm8gc2F2ZWRJbmZvKGNoaWxkUGFpbnRJbmZvKTsKKyAgICAgICAgICAgIFNWR1JlbmRl
cmluZ0NvbnRleHQgcmVuZGVyaW5nQ29udGV4dCh0aGlzLCBjaGlsZFBhaW50SW5mbyk7CiAKLSAg
ICAgICAgICAgIGlmIChTVkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50
KHRoaXMsIGNoaWxkUGFpbnRJbmZvKSkgeworICAgICAgICAgICAgaWYgKHJlbmRlcmluZ0NvbnRl
eHQuaXNSZW5kZXJpbmdQcmVwYXJlZCgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgU1ZHUmVu
ZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUoKS0+c3ZnU3R5bGUoKTsKICAgICAgICAgICAgICAg
ICBpZiAoc3ZnU3R5bGUtPnNoYXBlUmVuZGVyaW5nKCkgPT0gU1JfQ1JJU1BFREdFUykKICAgICAg
ICAgICAgICAgICAgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFz
KGZhbHNlKTsKQEAgLTM0NSw4ICszNDUsNiBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpwYWludChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQmKQogICAgICAgICAgICAgICAgIGlm
IChzdmdTdHlsZS0+aGFzTWFya2VycygpKQogICAgICAgICAgICAgICAgICAgICBtX21hcmtlckxh
eW91dEluZm8uZHJhd01hcmtlcnMoY2hpbGRQYWludEluZm8pOwogICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5kZXJTVkdDb250ZW50KHRoaXMs
IGNoaWxkUGFpbnRJbmZvLCBzYXZlZEluZm8uY29udGV4dCk7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoZHJhd3NPdXRsaW5lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdJbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHSW5saW5lRmxvd0JveC5jcHAKaW5kZXggY2RlZWM2MS4uMjFhOTA5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwCkBAIC0yOSw3
ICsyOSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5lVGV4dC5oIgogI2luY2x1ZGUgIlJl
bmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKICNpbmNsdWRlICJTVkdJbmxpbmVUZXh0Qm94LmgiCi0j
aW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgorI2luY2x1ZGUgIlNWR1JlbmRlcmluZ0NvbnRl
eHQuaCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNTcsMTkgKzU3LDE1IEBAIHZvaWQg
U1ZHSW5saW5lRmxvd0JveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiwgTGF5b3V0VW5pCiAgICAgUmVuZGVyT2JqZWN0KiBib3hSZW5kZXJlciA9IHJlbmRl
cmVyKCk7CiAgICAgQVNTRVJUKGJveFJlbmRlcmVyKTsKIAotICAgIFBhaW50SW5mbyBjaGlsZFBh
aW50SW5mbyhwYWludEluZm8pOwotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVT
YXZlcigqY2hpbGRQYWludEluZm8uY29udGV4dCk7Ci0KLSAgICBpZiAoU1ZHUmVuZGVyU3VwcG9y
dDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudChib3hSZW5kZXJlciwgY2hpbGRQYWludEluZm8p
KSB7CisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dCByZW5kZXJpbmdDb250ZXh0KGJveFJlbmRlcmVy
LCBwYWludEluZm8sIFNWR1JlbmRlcmluZ0NvbnRleHQ6OlNhdmVHcmFwaGljc0NvbnRleHQpOwor
ICAgIGlmIChyZW5kZXJpbmdDb250ZXh0LmlzUmVuZGVyaW5nUHJlcGFyZWQoKSkgewogICAgICAg
ICBmb3IgKElubGluZUJveCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0T25MaW5lKCkpIHsKICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNTVkdJbmxpbmVU
ZXh0Qm94KCkpCiAgICAgICAgICAgICAgICAgY29tcHV0ZVRleHRNYXRjaE1hcmtlclJlY3RGb3JS
ZW5kZXJlcih0b1JlbmRlclNWR0lubGluZVRleHQoc3RhdGljX2Nhc3Q8U1ZHSW5saW5lVGV4dEJv
eCo+KGNoaWxkKS0+dGV4dFJlbmRlcmVyKCkpKTsKIAotICAgICAgICAgICAgY2hpbGQtPnBhaW50
KGNoaWxkUGFpbnRJbmZvLCBMYXlvdXRQb2ludCgpLCAwLCAwKTsKKyAgICAgICAgICAgIGNoaWxk
LT5wYWludChwYWludEluZm8sIExheW91dFBvaW50KCksIDAsIDApOwogICAgICAgICB9CiAgICAg
fQotCi0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluaXNoUmVuZGVyU1ZHQ29udGVudChib3hSZW5k
ZXJlciwgY2hpbGRQYWludEluZm8sIHBhaW50SW5mby5jb250ZXh0KTsKIH0KIAogRmxvYXRSZWN0
IFNWR0lubGluZUZsb3dCb3g6OmNhbGN1bGF0ZUJvdW5kYXJpZXMoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggY2Jk
M2VlNi4uZTI2MjQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwCkBAIC0yNywxMiArMjcsOCBAQAogI2lmIEVOQUJMRShTVkcpCiAj
aW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIk5v
ZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCi0jaW5jbHVkZSAiUmVu
ZGVyU1ZHUGF0aC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXIuaCIKQEAgLTgwLDEwNiArNzYsNiBAQCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExv
Y2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlckJveAogICAg
IG9iamVjdC0+cGFyZW50KCktPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwg
ZmFsc2UsIHRydWUsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgYm9vbCBpc1JlbmRlcmluZ01hc2tJbWFnZShSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAg
ICBpZiAob2JqZWN0LT5mcmFtZSgpICYmIG9iamVjdC0+ZnJhbWUoKS0+dmlldygpKQotICAgICAg
ICByZXR1cm4gb2JqZWN0LT5mcmFtZSgpLT52aWV3KCktPnBhaW50QmVoYXZpb3IoKSAmIFBhaW50
QmVoYXZpb3JSZW5kZXJpbmdTVkdNYXNrOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBT
VkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVjdCog
b2JqZWN0LCBQYWludEluZm8mIHBhaW50SW5mbykKLXsKLSAgICBBU1NFUlQob2JqZWN0KTsKLQot
ICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsKLSAgICBBU1NFUlQoc3R5
bGUpOwotCi0gICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2Z1N0
eWxlKCk7Ci0gICAgQVNTRVJUKHN2Z1N0eWxlKTsKLQotICAgIC8vIFNldHVwIHRyYW5zcGFyZW5j
eSBsYXllcnMgYmVmb3JlIHNldHRpbmcgdXAgU1ZHIHJlc291cmNlcyEKLSAgICBib29sIGlzUmVu
ZGVyaW5nTWFzayA9IGlzUmVuZGVyaW5nTWFza0ltYWdlKG9iamVjdCk7Ci0gICAgZmxvYXQgb3Bh
Y2l0eSA9IGlzUmVuZGVyaW5nTWFzayA/IDEgOiBzdHlsZS0+b3BhY2l0eSgpOwotICAgIGNvbnN0
IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKTsKLSAgICBpZiAob3BhY2l0
eSA8IDEgfHwgc2hhZG93KSB7Ci0gICAgICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IG9iamVj
dC0+cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKLQotICAgICAgICBpZiAob3BhY2l0
eSA8IDEpIHsKLSAgICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5jbGlwKHJlcGFpbnRSZWN0
KTsKLSAgICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxheWVy
KG9wYWNpdHkpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHNoYWRvdykgewotICAgICAgICAg
ICAgcGFpbnRJbmZvLmNvbnRleHQtPmNsaXAocmVwYWludFJlY3QpOwotICAgICAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQtPnNldFNoYWRvdyhJbnRTaXplKHJvdW5kVG9JbnQoc2hhZG93LT54KCkp
LCByb3VuZFRvSW50KHNoYWRvdy0+eSgpKSksIHNoYWRvdy0+Ymx1cigpLCBzaGFkb3ctPmNvbG9y
KCksIHN0eWxlLT5jb2xvclNwYWNlKCkpOwotICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQt
PmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBTVkdS
ZXNvdXJjZXMqIHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNG
b3JSZW5kZXJPYmplY3Qob2JqZWN0KTsKLSAgICBpZiAoIXJlc291cmNlcykgewotI2lmIEVOQUJM
RShGSUxURVJTKQotICAgICAgICBpZiAoc3ZnU3R5bGUtPmhhc0ZpbHRlcigpKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQot
ICAgIGlmICghaXNSZW5kZXJpbmdNYXNrKSB7Ci0gICAgICAgIGlmIChSZW5kZXJTVkdSZXNvdXJj
ZU1hc2tlciogbWFza2VyID0gcmVzb3VyY2VzLT5tYXNrZXIoKSkgewotICAgICAgICAgICAgaWYg
KCFtYXNrZXItPmFwcGx5UmVzb3VyY2Uob2JqZWN0LCBzdHlsZSwgcGFpbnRJbmZvLmNvbnRleHQs
IEFwcGx5VG9EZWZhdWx0TW9kZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgaWYgKFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciogY2xpcHBl
ciA9IHJlc291cmNlcy0+Y2xpcHBlcigpKSB7Ci0gICAgICAgIGlmICghY2xpcHBlci0+YXBwbHlS
ZXNvdXJjZShvYmplY3QsIHN0eWxlLCBwYWludEluZm8uY29udGV4dCwgQXBwbHlUb0RlZmF1bHRN
b2RlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoRklM
VEVSUykKLSAgICBpZiAoIWlzUmVuZGVyaW5nTWFzaykgewotICAgICAgICBpZiAoUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIqIGZpbHRlciA9IHJlc291cmNlcy0+ZmlsdGVyKCkpIHsKLSAgICAgICAg
ICAgIGlmICghZmlsdGVyLT5hcHBseVJlc291cmNlKG9iamVjdCwgc3R5bGUsIHBhaW50SW5mby5j
b250ZXh0LCBBcHBseVRvRGVmYXVsdE1vZGUpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZv
aWQgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluaXNoUmVuZGVyU1ZHQ29udGVudChSZW5kZXJPYmplY3Qq
IG9iamVjdCwgUGFpbnRJbmZvJiBwYWludEluZm8sIEdyYXBoaWNzQ29udGV4dCogc2F2ZWRDb250
ZXh0KQotewotI2lmICFFTkFCTEUoRklMVEVSUykKLSAgICBVTlVTRURfUEFSQU0oc2F2ZWRDb250
ZXh0KTsKLSNlbmRpZgotCi0gICAgQVNTRVJUKG9iamVjdCk7Ci0KLSAgICBjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7Ci0gICAgQVNTRVJUKHN0eWxlKTsKLQotICAg
IGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxlLT5zdmdTdHlsZSgpOwotICAg
IEFTU0VSVChzdmdTdHlsZSk7Ci0KLSNpZiBFTkFCTEUoRklMVEVSUykKLSAgICBTVkdSZXNvdXJj
ZXMqIHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5k
ZXJPYmplY3Qob2JqZWN0KTsKLSAgICBpZiAocmVzb3VyY2VzKSB7Ci0gICAgICAgIGlmIChSZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlciogZmlsdGVyID0gcmVzb3VyY2VzLT5maWx0ZXIoKSkgewotICAg
ICAgICAgICAgZmlsdGVyLT5wb3N0QXBwbHlSZXNvdXJjZShzdGF0aWNfY2FzdDxSZW5kZXJTVkdT
aGFwZSo+KG9iamVjdCksIHBhaW50SW5mby5jb250ZXh0LCBBcHBseVRvRGVmYXVsdE1vZGUsIDAs
IDApOwotICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQgPSBzYXZlZENvbnRleHQ7Ci0gICAg
ICAgIH0KLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChzdHlsZS0+b3BhY2l0eSgpIDwgMSAmJiAh
aXNSZW5kZXJpbmdNYXNrSW1hZ2Uob2JqZWN0KSkKLSAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQt
PmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7Ci0KLSAgICBpZiAoc3ZnU3R5bGUtPnNoYWRvdygpKQot
ICAgICAgICBwYWludEluZm8uY29udGV4dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKLX0KLQog
dm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlQ29udGFpbmVyQm91bmRpbmdCb3hlcyhjb25z
dCBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciwgRmxvYXRSZWN0JiBvYmplY3RCb3VuZGluZ0JveCwg
RmxvYXRSZWN0JiBzdHJva2VCb3VuZGluZ0JveCwgRmxvYXRSZWN0JiByZXBhaW50Qm91bmRpbmdC
b3gpCiB7CiAgICAgYm9vbCBpc0ZpcnN0Q2hpbGQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAppbmRleCBjN2IyZmRjLi41MWM5ZDFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBv
cnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQu
aApAQCAtNDIsMTAgKzQyLDYgQEAgY2xhc3MgVHJhbnNmb3JtU3RhdGU7CiAvLyBTVkdSZW5kZXJl
clN1cHBvcnQgaXMgYSBoZWxwZXIgY2xhc3Mgc2hhcmluZyBjb2RlIGJldHdlZW4gYWxsIFNWRyBy
ZW5kZXJlcnMuCiBjbGFzcyBTVkdSZW5kZXJTdXBwb3J0IHsKIHB1YmxpYzoKLSAgICAvLyBVc2Vk
IGJ5IGFsbCBTVkcgcmVuZGVyZXJzIHdobyBhcHBseSBjbGlwL2ZpbHRlci9ldGMuIHJlc291cmNl
cyB0byB0aGUgcmVuZGVyZXIgY29udGVudAotICAgIHN0YXRpYyBib29sIHByZXBhcmVUb1JlbmRl
clNWR0NvbnRlbnQoUmVuZGVyT2JqZWN0KiwgUGFpbnRJbmZvJik7Ci0gICAgc3RhdGljIHZvaWQg
ZmluaXNoUmVuZGVyU1ZHQ29udGVudChSZW5kZXJPYmplY3QqLCBQYWludEluZm8mLCBHcmFwaGlj
c0NvbnRleHQqIHNhdmVkQ29udGV4dCk7Ci0KICAgICAvLyBTaGFyZXMgY2hpbGQgbGF5b3V0aW5n
IGNvZGUgYmV0d2VlbiBSZW5kZXJTVkdSb290L1JlbmRlclNWRyhIaWRkZW4pQ29udGFpbmVyCiAg
ICAgc3RhdGljIHZvaWQgbGF5b3V0Q2hpbGRyZW4oUmVuZGVyT2JqZWN0KiwgYm9vbCBzZWxmTmVl
ZHNMYXlvdXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJpbmdDb250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4z
OWQ1MjM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNywgMjAwOCBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChD
KSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDA5LTIwMTAuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZH
UmVuZGVyaW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIlJlbmRl
clNWR1Jlc291cmNlQ2xpcHBlci5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlRmlsdGVy
LmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuaCIKKyNpbmNsdWRlICJTVkdJ
bWFnZUJ1ZmZlclRvb2xzLmgiCisjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgiCisjaW5jbHVkZSAi
U1ZHUmVzb3VyY2VzQ2FjaGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5s
aW5lIGJvb2wgaXNSZW5kZXJpbmdNYXNrSW1hZ2UoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7Cisg
ICAgaWYgKG9iamVjdC0+ZnJhbWUoKSAmJiBvYmplY3QtPmZyYW1lKCktPnZpZXcoKSkKKyAgICAg
ICAgcmV0dXJuIG9iamVjdC0+ZnJhbWUoKS0+dmlldygpLT5wYWludEJlaGF2aW9yKCkgJiBQYWlu
dEJlaGF2aW9yUmVuZGVyaW5nU1ZHTWFzazsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1NWR1Jl
bmRlcmluZ0NvbnRleHQ6On5TVkdSZW5kZXJpbmdDb250ZXh0KCkKK3sKKyAgICAvLyBGYXN0IHBh
dGggaWYgd2UgZG9uJ3QgbmVlZCB0byByZXN0b3JlIGFueXRoaW5nLgorICAgIGlmICghKG1fcmVu
ZGVyaW5nRmxhZ3MgJiBBY3Rpb25zTmVlZGVkKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNT
RVJUKG1fb2JqZWN0ICYmIG1fcGFpbnRJbmZvKTsKKworI2lmIEVOQUJMRShGSUxURVJTKQorICAg
IGlmIChtX3JlbmRlcmluZ0ZsYWdzICYgRW5kRmlsdGVyTGF5ZXIpIHsKKyAgICAgICAgQVNTRVJU
KG1fZmlsdGVyKTsKKyAgICAgICAgbV9maWx0ZXItPnBvc3RBcHBseVJlc291cmNlKHN0YXRpY19j
YXN0PFJlbmRlclNWR1NoYXBlKj4obV9vYmplY3QpLCBtX3BhaW50SW5mby0+Y29udGV4dCwgQXBw
bHlUb0RlZmF1bHRNb2RlLCAwLCAwKTsKKyAgICAgICAgbV9wYWludEluZm8tPmNvbnRleHQgPSBt
X3NhdmVkQ29udGV4dDsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChtX3JlbmRlcmluZ0ZsYWdz
ICYgRW5kT3BhY2l0eUxheWVyKQorICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4dC0+ZW5kVHJh
bnNwYXJlbmN5TGF5ZXIoKTsKKworICAgIGlmIChtX3JlbmRlcmluZ0ZsYWdzICYgRW5kU2hhZG93
TGF5ZXIpCisgICAgICAgIG1fcGFpbnRJbmZvLT5jb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXll
cigpOworCisgICAgaWYgKG1fcmVuZGVyaW5nRmxhZ3MgJiBSZXN0b3JlR3JhcGhpY3NDb250ZXh0
KQorICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4dC0+cmVzdG9yZSgpOworfQorCit2b2lkIFNW
R1JlbmRlcmluZ0NvbnRleHQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVuZGVyT2JqZWN0
KiBvYmplY3QsIFBhaW50SW5mbyYgcGFpbnRJbmZvLCBOZWVkc0dyYXBoaWNzQ29udGV4dFNhdmUg
bmVlZHNHcmFwaGljc0NvbnRleHRTYXZlKQoreworICAgIEFTU0VSVChvYmplY3QpOworCisjaWZu
ZGVmIE5ERUJVRworICAgIC8vIFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgYmUgY2FsbGVkIHR3aWNl
IQorICAgIEFTU0VSVCghKG1fcmVuZGVyaW5nRmxhZ3MgJiBQcmVwYXJlVG9SZW5kZXJTVkdDb250
ZW50V2FzQ2FsbGVkKSk7CisgICAgbV9yZW5kZXJpbmdGbGFncyB8PSBQcmVwYXJlVG9SZW5kZXJT
VkdDb250ZW50V2FzQ2FsbGVkOworI2VuZGlmCisKKyAgICBtX29iamVjdCA9IG9iamVjdDsKKyAg
ICBtX3BhaW50SW5mbyA9ICZwYWludEluZm87CisjaWYgRU5BQkxFKEZJTFRFUlMpCisgICAgbV9m
aWx0ZXIgPSAwOworI2VuZGlmCisKKyAgICAvLyBXZSBuZWVkIHRvIHNhdmUgLyByZXN0b3JlIHRo
ZSBjb250ZXh0IGV2ZW4gaWYgdGhlIGluaXRpYWxpemF0aW9uIGZhaWxlZC4KKyAgICBpZiAobmVl
ZHNHcmFwaGljc0NvbnRleHRTYXZlID09IFNhdmVHcmFwaGljc0NvbnRleHQpIHsKKyAgICAgICAg
bV9wYWludEluZm8tPmNvbnRleHQtPnNhdmUoKTsKKyAgICAgICAgbV9yZW5kZXJpbmdGbGFncyB8
PSBSZXN0b3JlR3JhcGhpY3NDb250ZXh0OworICAgIH0KKworICAgIFJlbmRlclN0eWxlKiBzdHls
ZSA9IG1fb2JqZWN0LT5zdHlsZSgpOworICAgIEFTU0VSVChzdHlsZSk7CisKKyAgICBjb25zdCBT
VkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICBBU1NFUlQo
c3ZnU3R5bGUpOworCisgICAgLy8gU2V0dXAgdHJhbnNwYXJlbmN5IGxheWVycyBiZWZvcmUgc2V0
dGluZyB1cCBTVkcgcmVzb3VyY2VzIQorICAgIGJvb2wgaXNSZW5kZXJpbmdNYXNrID0gaXNSZW5k
ZXJpbmdNYXNrSW1hZ2UobV9vYmplY3QpOworICAgIGZsb2F0IG9wYWNpdHkgPSBpc1JlbmRlcmlu
Z01hc2sgPyAxIDogc3R5bGUtPm9wYWNpdHkoKTsKKyAgICBjb25zdCBTaGFkb3dEYXRhKiBzaGFk
b3cgPSBzdmdTdHlsZS0+c2hhZG93KCk7CisgICAgaWYgKG9wYWNpdHkgPCAxIHx8IHNoYWRvdykg
eworICAgICAgICBGbG9hdFJlY3QgcmVwYWludFJlY3QgPSBtX29iamVjdC0+cmVwYWludFJlY3RJ
bkxvY2FsQ29vcmRpbmF0ZXMoKTsKKworICAgICAgICBpZiAob3BhY2l0eSA8IDEpIHsKKyAgICAg
ICAgICAgIG1fcGFpbnRJbmZvLT5jb250ZXh0LT5jbGlwKHJlcGFpbnRSZWN0KTsKKyAgICAgICAg
ICAgIG1fcGFpbnRJbmZvLT5jb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxheWVyKG9wYWNpdHkp
OworICAgICAgICAgICAgbV9yZW5kZXJpbmdGbGFncyB8PSBFbmRPcGFjaXR5TGF5ZXI7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoc2hhZG93KSB7CisgICAgICAgICAgICBtX3BhaW50SW5mby0+
Y29udGV4dC0+Y2xpcChyZXBhaW50UmVjdCk7CisgICAgICAgICAgICBtX3BhaW50SW5mby0+Y29u
dGV4dC0+c2V0U2hhZG93KEludFNpemUocm91bmRUb0ludChzaGFkb3ctPngoKSksIHJvdW5kVG9J
bnQoc2hhZG93LT55KCkpKSwgc2hhZG93LT5ibHVyKCksIHNoYWRvdy0+Y29sb3IoKSwgc3R5bGUt
PmNvbG9yU3BhY2UoKSk7CisgICAgICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4dC0+YmVnaW5U
cmFuc3BhcmVuY3lMYXllcigxKTsKKyAgICAgICAgICAgIG1fcmVuZGVyaW5nRmxhZ3MgfD0gRW5k
U2hhZG93TGF5ZXI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBTVkdSZXNvdXJjZXMqIHJlc291
cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJPYmplY3Qo
bV9vYmplY3QpOworICAgIGlmICghcmVzb3VyY2VzKSB7CisjaWYgRU5BQkxFKEZJTFRFUlMpCisg
ICAgICAgIGlmIChzdmdTdHlsZS0+aGFzRmlsdGVyKCkpCisgICAgICAgICAgICByZXR1cm47Cisj
ZW5kaWYKKyAgICAgICAgbV9yZW5kZXJpbmdGbGFncyB8PSBSZW5kZXJpbmdQcmVwYXJlZDsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghaXNSZW5kZXJpbmdNYXNrKSB7CisgICAg
ICAgIGlmIChSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciogbWFza2VyID0gcmVzb3VyY2VzLT5tYXNr
ZXIoKSkgeworICAgICAgICAgICAgaWYgKCFtYXNrZXItPmFwcGx5UmVzb3VyY2UobV9vYmplY3Qs
IHN0eWxlLCBtX3BhaW50SW5mby0+Y29udGV4dCwgQXBwbHlUb0RlZmF1bHRNb2RlKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoUmVuZGVyU1ZH
UmVzb3VyY2VDbGlwcGVyKiBjbGlwcGVyID0gcmVzb3VyY2VzLT5jbGlwcGVyKCkpIHsKKyAgICAg
ICAgaWYgKCFjbGlwcGVyLT5hcHBseVJlc291cmNlKG1fb2JqZWN0LCBzdHlsZSwgbV9wYWludElu
Zm8tPmNvbnRleHQsIEFwcGx5VG9EZWZhdWx0TW9kZSkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQorCisjaWYgRU5BQkxFKEZJTFRFUlMpCisgICAgaWYgKCFpc1JlbmRlcmluZ01hc2spIHsK
KyAgICAgICAgbV9maWx0ZXIgPSByZXNvdXJjZXMtPmZpbHRlcigpOworICAgICAgICBpZiAobV9m
aWx0ZXIpIHsKKyAgICAgICAgICAgIG1fc2F2ZWRDb250ZXh0ID0gbV9wYWludEluZm8tPmNvbnRl
eHQ7CisgICAgICAgICAgICBpZiAoIW1fZmlsdGVyLT5hcHBseVJlc291cmNlKG1fb2JqZWN0LCBz
dHlsZSwgbV9wYWludEluZm8tPmNvbnRleHQsIEFwcGx5VG9EZWZhdWx0TW9kZSkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9yZW5kZXJpbmdGbGFncyB8PSBFbmRGaWx0
ZXJMYXllcjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgbV9yZW5kZXJpbmdGbGFn
cyB8PSBSZW5kZXJpbmdQcmVwYXJlZDsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ1MjA4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0wLDAgKzEs
MTAxIEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgorICogQ29weXJpZ2h0IChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBr
ZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5v
cmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFpvbHRhbiBIZXJjemVn
IDx6aGVyY3plZ0B3ZWJraXQub3JnPi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdSZW5kZXJpbmdDb250ZXh0X2gKKyNk
ZWZpbmUgU1ZHUmVuZGVyaW5nQ29udGV4dF9oCisKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUg
IkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKKyNpbmNsdWRlICJQYWlu
dEluZm8uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBZmZpbmVUcmFuc2Zvcm07
CitjbGFzcyBSZW5kZXJPYmplY3Q7CitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlcjsKKworLy8gU1ZHUmVuZGVyaW5nQ29udGV4dCAKK2NsYXNzIFNWR1JlbmRl
cmluZ0NvbnRleHQgeworcHVibGljOgorICAgIGVudW0gTmVlZHNHcmFwaGljc0NvbnRleHRTYXZl
IHsKKyAgICAgICAgU2F2ZUdyYXBoaWNzQ29udGV4dCwKKyAgICAgICAgRG9udFNhdmVHcmFwaGlj
c0NvbnRleHQsCisgICAgfTsKKworICAgIC8vIERvZXMgbm90IHN0YXJ0IHJlbmRlcmluZy4KKyAg
ICBTVkdSZW5kZXJpbmdDb250ZXh0KCkKKyAgICAgICAgOiBtX3JlbmRlcmluZ0ZsYWdzKDApCisg
ICAgICAgICwgbV9vYmplY3QoMCkKKyAgICAgICAgLCBtX3BhaW50SW5mbygwKQorICAgICAgICAs
IG1fc2F2ZWRDb250ZXh0KDApCisgICAgICAgICwgbV9maWx0ZXIoMCkKKyAgICB7CisgICAgfQor
CisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dChSZW5kZXJPYmplY3QqIG9iamVjdCwgUGFpbnRJbmZv
JiBwYWludGluZm8sIE5lZWRzR3JhcGhpY3NDb250ZXh0U2F2ZSBuZWVkc0dyYXBoaWNzQ29udGV4
dFNhdmUgPSBEb250U2F2ZUdyYXBoaWNzQ29udGV4dCkKKyAgICAgICAgOiBtX3JlbmRlcmluZ0Zs
YWdzKDApCisgICAgICAgICwgbV9vYmplY3QoMCkKKyAgICAgICAgLCBtX3BhaW50SW5mbygwKQor
ICAgICAgICAsIG1fc2F2ZWRDb250ZXh0KDApCisgICAgICAgICwgbV9maWx0ZXIoMCkKKyAgICB7
CisgICAgICAgIHByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQob2JqZWN0LCBwYWludGluZm8sIG5l
ZWRzR3JhcGhpY3NDb250ZXh0U2F2ZSk7CisgICAgfQorCisgICAgLy8gQXV0b21hdGljYWxseSBm
aW5pc2hlcyBjb250ZXh0IHJlbmRlcmluZy4KKyAgICB+U1ZHUmVuZGVyaW5nQ29udGV4dCgpOwor
CisgICAgLy8gVXNlZCBieSBhbGwgU1ZHIHJlbmRlcmVycyB3aG8gYXBwbHkgY2xpcC9maWx0ZXIv
ZXRjLiByZXNvdXJjZXMgdG8gdGhlIHJlbmRlcmVyIGNvbnRlbnQuCisgICAgdm9pZCBwcmVwYXJl
VG9SZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVjdCosIFBhaW50SW5mbyYsIE5lZWRzR3JhcGhp
Y3NDb250ZXh0U2F2ZSA9IERvbnRTYXZlR3JhcGhpY3NDb250ZXh0KTsKKyAgICBib29sIGlzUmVu
ZGVyaW5nUHJlcGFyZWQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlcmluZ0ZsYWdzICYgUmVuZGVy
aW5nUHJlcGFyZWQ7IH0KKworcHJpdmF0ZToKKyAgICAvLyBUbyBwcm9wZXJseSByZXZlcnQgcGFy
dGlhbGx5IHN1Y2Nlc3NmdWwgaW5pdGlhbGl6dGlvbnMgaW4gdGhlIGRlc3RydWN0b3IsIHdlIHJl
Y29yZCBhbGwgc3VjY2Vzc2Z1bCBzdGVwcy4KKyAgICBlbnVtIFJlbmRlcmluZ0ZsYWdzIHsKKyAg
ICAgICAgUmVuZGVyaW5nUHJlcGFyZWQgPSAxLAorICAgICAgICBSZXN0b3JlR3JhcGhpY3NDb250
ZXh0ID0gMSA8PCAxLAorICAgICAgICBFbmRPcGFjaXR5TGF5ZXIgPSAxIDw8IDIsCisgICAgICAg
IEVuZFNoYWRvd0xheWVyID0gMSA8PCAzLAorICAgICAgICBFbmRGaWx0ZXJMYXllciA9IDEgPDwg
NCwKKyAgICAgICAgUHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudFdhc0NhbGxlZCA9IDEgPDwgNQor
ICAgIH07CisKKyAgICAvLyBMaXN0IG9mIHRob3NlIGZsYWdzIHdoaWNoIHJlcXVpcmUgYWN0aW9u
cyBkdXJpbmcgdGhlIGRlc3RydWN0b3IuCisgICAgY29uc3Qgc3RhdGljIGludCBBY3Rpb25zTmVl
ZGVkID0gUmVzdG9yZUdyYXBoaWNzQ29udGV4dCB8IEVuZE9wYWNpdHlMYXllciB8IEVuZFNoYWRv
d0xheWVyIHwgRW5kRmlsdGVyTGF5ZXI7CisKKyAgICBpbnQgbV9yZW5kZXJpbmdGbGFnczsKKyAg
ICBSZW5kZXJPYmplY3QqIG1fb2JqZWN0OworICAgIFBhaW50SW5mbyogbV9wYWludEluZm87Cisg
ICAgR3JhcGhpY3NDb250ZXh0KiBtX3NhdmVkQ29udGV4dDsKKyNpZiBFTkFCTEUoRklMVEVSUykK
KyAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciogbV9maWx0ZXI7CisjZW5kaWYKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcpCisjZW5kaWYgLy8g
U1ZHUmVuZGVyaW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSb290SW5saW5lQm94LmNwcAppbmRleCBhZTQ5NWVjLi41NzE0NmM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKQEAgLTMx
LDcgKzMxLDcgQEAKICNpbmNsdWRlICJTVkdJbmxpbmVGbG93Qm94LmgiCiAjaW5jbHVkZSAiU1ZH
SW5saW5lVGV4dEJveC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiU1ZHUmVu
ZGVyU3VwcG9ydC5oIgorI2luY2x1ZGUgIlNWR1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTU3LDE4ICs1NywxNSBAQCB2b2lkIFNWR1Jvb3RJbmxpbmVCb3g6OnBhaW50KFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91dFVuaQogICAgICAgICB9CiAgICAg
fQogCi0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjaGlsZFBhaW50
SW5mby5jb250ZXh0KTsKLQotICAgIGlmIChTVkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5k
ZXJTVkdDb250ZW50KGJveFJlbmRlcmVyLCBjaGlsZFBhaW50SW5mbykpIHsKKyAgICBTVkdSZW5k
ZXJpbmdDb250ZXh0IHJlbmRlcmluZ0NvbnRleHQoYm94UmVuZGVyZXIsIHBhaW50SW5mbywgU1ZH
UmVuZGVyaW5nQ29udGV4dDo6U2F2ZUdyYXBoaWNzQ29udGV4dCk7CisgICAgaWYgKHJlbmRlcmlu
Z0NvbnRleHQuaXNSZW5kZXJpbmdQcmVwYXJlZCgpKSB7CiAgICAgICAgIGZvciAoSW5saW5lQm94
KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUo
KSkgewogICAgICAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lubGluZVRleHRCb3goKSkKICAgICAg
ICAgICAgICAgICBTVkdJbmxpbmVGbG93Qm94Ojpjb21wdXRlVGV4dE1hdGNoTWFya2VyUmVjdEZv
clJlbmRlcmVyKHRvUmVuZGVyU1ZHSW5saW5lVGV4dChzdGF0aWNfY2FzdDxTVkdJbmxpbmVUZXh0
Qm94Kj4oY2hpbGQpLT50ZXh0UmVuZGVyZXIoKSkpOwogCi0gICAgICAgICAgICBjaGlsZC0+cGFp
bnQoY2hpbGRQYWludEluZm8sIExheW91dFBvaW50KCksIDAsIDApOworICAgICAgICAgICAgY2hp
bGQtPnBhaW50KHBhaW50SW5mbywgTGF5b3V0UG9pbnQoKSwgMCwgMCk7CiAgICAgICAgIH0KICAg
ICB9Ci0KLSAgICBTVkdSZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5kZXJTVkdDb250ZW50KGJveFJl
bmRlcmVyLCBjaGlsZFBhaW50SW5mbywgcGFpbnRJbmZvLmNvbnRleHQpOwogfQogCiB2b2lkIFNW
R1Jvb3RJbmxpbmVCb3g6OmNvbXB1dGVQZXJDaGFyYWN0ZXJMYXlvdXRJbmZvcm1hdGlvbigpCi0t
IAoxLjcuMi41Cgo=
</data>
<flag name="commit-queue"
          id="134181"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131020</attachid>
            <date>2012-03-09 03:03:24 -0800</date>
            <delta_ts>2012-03-09 03:59:47 -0800</delta_ts>
            <desc>another attempt</desc>
            <filename>0001-SVGRenderingContext.patch</filename>
            <type>text/plain</type>
            <size>39466</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSA1ZGE2OWRkZmFmZjQ1NTYzODAyYzlhZWQzY2Q4OTYxZTFmNmRiMjg4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9yZz4K
RGF0ZTogRnJpLCA5IE1hciAyMDEyIDAxOjI5OjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU1ZH
UmVuZGVyaW5nQ29udGV4dAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDUxICsrKysrKwogU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgfCAgIDU2ICsrKysrKysK
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgICAg
NiArCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0FsbEluT25lLmNwcCB8
ICAgIDEgKwogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3Bw
ICAgfCAgIDEyICstCiAuLi4vcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNw
cCAgICAgICB8ICAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW1hZ2UuY3BwICAgIHwgICAgOCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcCAgICAgfCAgIDEyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1NoYXBlLmNwcCAgICB8ICAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAgIHwgICAxMiArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCAgfCAgMTA0IC0tLS0tLS0tLS0tLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggICAgfCAgICA0IC0K
IC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAgIHwgIDE2
NSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJpbmdDb250ZXh0LmggfCAgMTAxICsrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcCAgfCAgIDExICstCiAxOSBmaWxlcyBjaGFu
Z2VkLCA0MjEgaW5zZXJ0aW9ucygrKSwgMTUxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
cmluZ0NvbnRleHQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTE3NTBkZS4uYjNlZjQ4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3MzMsNiArMTczMyw3IEBAIElGIChFTkFCTEVfU1ZH
KQogICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAogICAgICAgICByZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCiAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyVHJlZUFzVGV4dC5jcHAKKyAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250
ZXh0LmNwcAogICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAKICAgICAgICAg
cmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAKICAgICAgICAgcmVuZGVyaW5nL3N2
Zy9TVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNmZkNGUyLi5kNjJj
NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTItMDMtMDkgIFpvbHRhbiBIZXJj
emVnICA8emhlcmN6ZWdAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1ZHUmVuZGVyaW5nQ29u
dGV4dCBhbmQgbW92ZSB0aGVyZSB0aGUgY29udGV4dCByZWxhdGVkIGNvZGUgZnJvbSBTVkdSZW5k
ZXJTdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDQxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAgb2YgcmVmYWN0b3JpbmcgdGhlIHJlbmRlcmluZyBjb250
ZXh0IGZvciBTVkcuIFRoZQorICAgICAgICBwcmV2aW91cyBjb250ZXh0IHdhcyBzdGF0ZWxlc3Mg
YmVmb3JlLCB3aGljaCBtZWFucyB0aGUgY2xlYW51cCBwaGFzZQorICAgICAgICBuZWVkZWQgdG8g
ZG8gYSBsb3Qgb2YgY2hlY2tzIHRvIHJldmVydCB0aGUgaW5pdGlhbGl6YXRpb24gcGFydCBhbmQK
KyAgICAgICAgd2FzIHVuYXdhcmUgb2YgZmFpbGVkIGluaXRpdGFsaXphdGlvbi4gRnV0dXJlIGNv
ZGUgY2FuIGFsc28gYWRkCisgICAgICAgIG5ldyBsb2NhbCB2YXJpYWJsZXMgdG8gdGhlIGNvbnRl
eHQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGQgYSBuZXcgU1ZHUmVuZGVyaW5nQ29udGV4dCBj
bGFzcywgYW5kIG1vdmVzIHRoZXJlIHRoZSBjb250ZXh0CisgICAgICAgIGluaXRpYWxpemF0aW9u
IC8gY2xlYW51cCBjb2RlIGZyb20gU1ZHUmVuZGVyU3VwcG9ydC4gQWxsIGJ1aWxkIHN5c3RlbXMg
d2VyZQorICAgICAgICB1cGRhdGVkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdBbGxJbk9uZS5jcHA6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHQ29udGFpbmVyOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0ZvcmVpZ25PYmpl
Y3Q6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0ltYWdlOjpwYWludCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R1Jvb3Q6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
U2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6OnBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHSW5saW5lRmxvd0JveDo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJT
dXBwb3J0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzUmVuZGVy
aW5nTWFza0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlcmluZ0NvbnRleHQ6On5T
VkdSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlcmluZ0NvbnRl
eHQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoU1ZHUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJpbmdD
b250ZXh0OjpTVkdSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRl
cmluZ0NvbnRleHQ6OmlzUmVuZGVyaW5nUHJlcGFyZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvU1ZHUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSb290SW5saW5l
Qm94OjpwYWludCk6CisKIDIwMTItMDMtMDkgIE1hcmphIEjDtmx0dMOkICA8bWFyamFAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBGaWxlSW5wdXRUeXBlIGRvZXNuJ3Qgc3VwcG9ydCAoc2F2ZXxyZXN0
b3JlKUZvcm1Db250cm9sU3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDM0
NzgyYmYuLjQ1Njk0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzk0Myw2
ICszOTQzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyaW5nQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1Jlc291cmNlc0NhY2hlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZXNvdXJjZXNDYWNoZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291
cmNlcy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggN2ZhNDM0Yi4uODIwMjUwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC0yNTIyLDYgKzI1MjIsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvc3ZnL1NW
R1BhdGhEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oIFwKICAg
ICByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuaCBcCisgICAgcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmggXAogICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2Vz
LmggXAogICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuaCBcCiAgICAgcmVuZGVy
aW5nL3N2Zy9TVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5oIFwKQEAgLTM0NjUsNiArMzQ2Niw3IEBA
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICAgICAgICByZW5kZXJp
bmcvc3ZnL1NWR1BhdGhEYXRhLmNwcCBcCiAgICAgICAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5jcHAgXAogICAgICAgICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clRyZWVBc1RleHQuY3BwIFwKKyAgICAgICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJp
bmdDb250ZXh0LmNwcCBcCiAgICAgICAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2Vz
LmNwcCBcCiAgICAgICAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3Bw
IFwKICAgICAgICAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDA2YjlmNjEuLmQzYmRhM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTQ3MjksNiArNDcyOSw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJl
ZUFzVGV4dC5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFz
VGV4dC5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQu
Y3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaCcs
CiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwJywKICAgICAgICAg
ICAgICdyZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5oJywKICAgICAgICAgICAgICdyZW5kZXJp
bmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcCcsCkBAIC01NzIwLDYgKzU3MjIsOCBAQAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oJywKICAgICAgICAgICAg
ICdyZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwJywKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuaCcsCisgICAgICAgICAgICAncmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcv
U1ZHUmVzb3VyY2VzLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJj
ZXMuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA2
YWM5N2E1Li4zMDFjMDY2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtNDMwMjQsNiArNDMwMjQsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdSZW5kZXJpbmdD
b250ZXh0LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJl
bGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdSZW5kZXJpbmdDb250ZXh0LmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xz
dmdcU1ZHUmVzb3VyY2VzLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YTVkZjRiZS4uMTI0NTM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzU1LDYgKzM1NSw3IEBACiAJCTE4RjgzMUI4MEZENDhD
NzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMThGODMxQjcwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtl
ckxvYWRlclByb3h5LmggKi87IH07CiAJCTE5MjEzMjc0MTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxOTIxMzI3MTExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuY3BwICovOyB9OwogCQkxOTIxMzI3NTExQzBFNkJCMDA0NTYyMzggLyog
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE5MjEzMjcyMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5oICovOyB9OworCQkxOTdCMTgwQzE1MDYzNTMyMDBFNEFEQTggLyog
U1ZHUmVuZGVyaW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTk3QjE4MEIxNTA2MzRDMDAwRTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRl
eHQuaCAqLzsgfTsKIAkJMTlCRkY2NEIxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxOUJGRjY0NjExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQuaCAqLzsgfTsKIAkJMTlCRkY2NEMxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTlCRkY2NDcxMUMwRjJBQzAwQjhDMDREIC8qIERPTVNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50Lm1tICovOyB9OwogCQkxOUJGRjY0RDExQzBGMkFDMDBCOEMwNEQgLyog
RE9NU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTlCRkY2NDgxMUMwRjJBQzAwQjhDMDREIC8q
IERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKQEAgLTcxNTIs
NiArNzE1Myw4IEBACiAJCTE5MjEzMjcxMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTE5MjEzMjcyMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxOTIxMzI3MzExQzBFNkJC
MDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMTk3QjE4MEExNTA2MzRDMDAwRTRBREE4IC8qIFNWR1JlbmRlcmluZ0Nv
bnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE5N0IxODBCMTUwNjM0QzAwMEU0QURBOCAvKiBT
VkdSZW5kZXJpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1JlbmRlcmluZ0NvbnRleHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTlCRkY2NDYxMUMwRjJBQzAwQjhDMDRE
IC8qIERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTE5QkZGNjQ3MTFDMEYyQUMwMEI4QzA0RCAvKiBET01TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERPTVNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxOUJGRjY0ODExQzBGMkFDMDBCOEMwNEQgLyogRE9NU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBET01TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMzcyNiw2ICsxMzcyOSw4IEBACiAJCQkJNDM2NzA4QjMxMkQ5Q0E0
QjAwMDQ0MjM0IC8qIFNWR1JlbmRlclN1cHBvcnQuaCAqLywKIAkJCQk0MzY3MDhCNDEyRDlDQTRC
MDAwNDQyMzQgLyogU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAgKi8sCiAJCQkJNDM2NzA4QjUxMkQ5
Q0E0QjAwMDQ0MjM0IC8qIFNWR1JlbmRlclRyZWVBc1RleHQuaCAqLywKKwkJCQkxOTdCMTgwQTE1
MDYzNEMwMDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCisJCQkJMTk3QjE4
MEIxNTA2MzRDMDAwRTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJCQk0MzY3
MDhCNjEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVzb3VyY2VzLmNwcCAqLywKIAkJCQk0MzY3MDhC
NzEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVzb3VyY2VzLmggKi8sCiAJCQkJNDM2NzA4QjgxMkQ5
Q0E0QjAwMDQ0MjM0IC8qIFNWR1Jlc291cmNlc0NhY2hlLmNwcCAqLywKQEAgLTI0MjM5LDYgKzI0
MjQ0LDcgQEAKIAkJCQlCQzIyNzQ3QjBFODM2NkUyMDBFN0Y5NzUgLyogU1ZHUmVuZGVyU3R5bGVE
ZWZzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhGMjEyRDlDQTRCMDAwNDQyMzQgLyogU1ZH
UmVuZGVyU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4RjQxMkQ5Q0E0QjAwMDQ0
MjM0IC8qIFNWR1JlbmRlclRyZWVBc1RleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTE5N0IxODBD
MTUwNjM1MzIwMEU0QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzY3MDhGNjEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVzb3VyY2VzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MzY3MDhGODEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVzb3VyY2VzQ2FjaGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOEZBMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNv
dXJjZXNDeWNsZVNvbHZlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQWxsSW5PbmUuY3BwCmluZGV4IGJlNmM4M2YuLjhmOGM4
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQWxs
SW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQWxs
SW5PbmUuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiU1ZHUGF0aERhdGEuY3BwIgog
I2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuY3BwIgogI2luY2x1ZGUgIlNWR1JlbmRlclRyZWVB
c1RleHQuY3BwIgorI2luY2x1ZGUgIlNWR1JlbmRlcmluZ0NvbnRleHQuY3BwIgogI2luY2x1ZGUg
IlNWR1Jlc291cmNlcy5jcHAiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwIgogI2lu
Y2x1ZGUgIlNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAppbmRleCBmNGFjY2EwLi5l
MTZiZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0NvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdDb250YWluZXIuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVz
b3VyY2UuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCisjaW5jbHVkZSAi
U1ZHUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNWR1Jlc291cmNlcy5oIgogI2luY2x1
ZGUgIlNWR1Jlc291cmNlc0NhY2hlLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgpA
QCAtMTE0LDE4ICsxMTQsMTggQEAgdm9pZCBSZW5kZXJTVkdDb250YWluZXI6OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAKICAgICAgICAgY2hpbGRQYWlu
dEluZm8uYXBwbHlUcmFuc2Zvcm0obG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpKTsKIAorICAgICAg
ICBTVkdSZW5kZXJpbmdDb250ZXh0IHJlbmRlcmluZ0NvbnRleHQ7CiAgICAgICAgIGJvb2wgY29u
dGludWVSZW5kZXJpbmcgPSB0cnVlOwotICAgICAgICBpZiAoY2hpbGRQYWludEluZm8ucGhhc2Ug
PT0gUGFpbnRQaGFzZUZvcmVncm91bmQpCi0gICAgICAgICAgICBjb250aW51ZVJlbmRlcmluZyA9
IFNWR1JlbmRlclN1cHBvcnQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQodGhpcywgY2hpbGRQ
YWludEluZm8pOworICAgICAgICBpZiAoY2hpbGRQYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFz
ZUZvcmVncm91bmQpIHsKKyAgICAgICAgICAgIHJlbmRlcmluZ0NvbnRleHQucHJlcGFyZVRvUmVu
ZGVyU1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50SW5mbyk7CisgICAgICAgICAgICBjb250aW51
ZVJlbmRlcmluZyA9IHJlbmRlcmluZ0NvbnRleHQuaXNSZW5kZXJpbmdQcmVwYXJlZCgpOworICAg
ICAgICB9CiAKICAgICAgICAgaWYgKGNvbnRpbnVlUmVuZGVyaW5nKSB7CiAgICAgICAgICAgICBj
aGlsZFBhaW50SW5mby51cGRhdGVQYWludGluZ1Jvb3RGb3JDaGlsZHJlbih0aGlzKTsKICAgICAg
ICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAgICAgICAgY2hpbGQtPnBhaW50
KGNoaWxkUGFpbnRJbmZvLCBJbnRQb2ludCgpKTsKICAgICAgICAgfQotCi0gICAgICAgIGlmIChw
YWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQpCi0gICAgICAgICAgICBTVkdS
ZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5kZXJTVkdDb250ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZv
LCBwYWludEluZm8uY29udGV4dCk7CiAgICAgfQogICAgIAogICAgIC8vIEZJWE1FOiBUaGlzIHJl
YWxseSBzaG91bGQgYmUgZHJhd24gZnJvbSBsb2NhbCBjb29yZGluYXRlcywgYnV0IGN1cnJlbnRs
eSB3ZSBoYWNrIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAppbmRleCBkYWRjYWVkLi42NzZlOGY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9i
amVjdC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKKyNpbmNsdWRlICJTVkdSZW5k
ZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ2FjaGUuaCIKICNpbmNsdWRl
ICJTVkdTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKQEAgLTU5LDkg
KzU5LDEyIEBAIHZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6cGFpbnQoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAgICBpZiAoU1ZHUmVuZGVyU3VwcG9ydDo6
aXNPdmVyZmxvd0hpZGRlbih0aGlzKSkKICAgICAgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+
Y2xpcChtX3ZpZXdwb3J0KTsKIAorICAgIFNWR1JlbmRlcmluZ0NvbnRleHQgcmVuZGVyaW5nQ29u
dGV4dDsKICAgICBib29sIGNvbnRpbnVlUmVuZGVyaW5nID0gdHJ1ZTsKLSAgICBpZiAocGFpbnRJ
bmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKQotICAgICAgICBjb250aW51ZVJlbmRl
cmluZyA9IFNWR1JlbmRlclN1cHBvcnQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQodGhpcywg
Y2hpbGRQYWludEluZm8pOworICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZv
cmVncm91bmQpIHsKKyAgICAgICAgcmVuZGVyaW5nQ29udGV4dC5wcmVwYXJlVG9SZW5kZXJTVkdD
b250ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZvKTsKKyAgICAgICAgY29udGludWVSZW5kZXJpbmcg
PSByZW5kZXJpbmdDb250ZXh0LmlzUmVuZGVyaW5nUHJlcGFyZWQoKTsKKyAgICB9CiAKICAgICBp
ZiAoY29udGludWVSZW5kZXJpbmcpIHsKICAgICAgICAgLy8gUGFpbnQgYWxsIHBoYXNlcyBvZiBG
TyBlbGVtZW50cyBhdG9taWNhbGx5LCBhcyB0aG91Z2ggdGhlIEZPIGVsZW1lbnQgZXN0YWJsaXNo
ZWQgaXRzCkBAIC04MSw5ICs4NCw2IEBAIHZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6cGFp
bnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAgICAgICAgICAg
IFJlbmRlckJsb2NrOjpwYWludChjaGlsZFBhaW50SW5mbywgY2hpbGRQb2ludCk7CiAgICAgICAg
IH0KICAgICB9Ci0KLSAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3Jv
dW5kKQotICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5kZXJTVkdDb250ZW50KHRo
aXMsIGNoaWxkUGFpbnRJbmZvLCBwYWludEluZm8uY29udGV4dCk7CiB9CiAKIExheW91dFJlY3Qg
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVu
ZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCmluZGV4IGUwOTU2MjkuLjU2
YmU1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1h
Z2UuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSAiU1ZHSW1hZ2VFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5o
IgotI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKKyNpbmNsdWRlICJTVkdSZW5kZXJpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3Vy
Y2VzQ2FjaGUuaCIKIApAQCAtMTI0LDkgKzEyNCw5IEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6OnBh
aW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAgICAgICAgIGNo
aWxkUGFpbnRJbmZvLmFwcGx5VHJhbnNmb3JtKG1fbG9jYWxUcmFuc2Zvcm0pOwogCiAgICAgICAg
IGlmIChjaGlsZFBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCkgewotICAg
ICAgICAgICAgUGFpbnRJbmZvIHNhdmVkSW5mbyhjaGlsZFBhaW50SW5mbyk7CisgICAgICAgICAg
ICBTVkdSZW5kZXJpbmdDb250ZXh0IHJlbmRlcmluZ0NvbnRleHQodGhpcywgY2hpbGRQYWludElu
Zm8pOwogCi0gICAgICAgICAgICBpZiAoU1ZHUmVuZGVyU3VwcG9ydDo6cHJlcGFyZVRvUmVuZGVy
U1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50SW5mbykpIHsKKyAgICAgICAgICAgIGlmIChyZW5k
ZXJpbmdDb250ZXh0LmlzUmVuZGVyaW5nUHJlcGFyZWQoKSkgewogICAgICAgICAgICAgICAgIFJl
ZlB0cjxJbWFnZT4gaW1hZ2UgPSBtX2ltYWdlUmVzb3VyY2UtPmltYWdlKCk7CiAgICAgICAgICAg
ICAgICAgRmxvYXRSZWN0IGRlc3RSZWN0ID0gbV9vYmplY3RCb3VuZGluZ0JveDsKICAgICAgICAg
ICAgICAgICBGbG9hdFJlY3Qgc3JjUmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhl
aWdodCgpKTsKQEAgLTEzNiw4ICsxMzYsNiBAQCB2b2lkIFJlbmRlclNWR0ltYWdlOjpwYWludChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQogCiAgICAgICAgICAgICAg
ICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBDb2xvclNw
YWNlRGV2aWNlUkdCLCBkZXN0UmVjdCwgc3JjUmVjdCk7CiAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIFNWR1JlbmRlclN1cHBvcnQ6OmZpbmlzaFJlbmRlclNWR0NvbnRlbnQodGhpcywgY2hp
bGRQYWludEluZm8sIHNhdmVkSW5mby5jb250ZXh0KTsKICAgICAgICAgfQogCiAgICAgICAgIGlm
IChkcmF3c091dGxpbmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSb290LmNwcAppbmRleCBhYzljYzVkLi5iOTk3MDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNs
dWRlICJTVkdMZW5ndGguaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCisjaW5jbHVk
ZSAiU1ZHUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNWR1Jlc291cmNlcy5oIgogI2lu
Y2x1ZGUgIlNWR1Jlc291cmNlc0NhY2hlLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgpA
QCAtMjc3LDE2ICsyNzcsMTYgQEAgdm9pZCBSZW5kZXJTVkdSb290OjpwYWludFJlcGxhY2VkKFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgYWRqdXMKICAgICAvLyBUcmFu
c2Zvcm0gZnJvbSBvdXIgcGFpbnQgY29udGFpbmVyJ3MgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gb3Vy
IGxvY2FsIGNvb3Jkcy4KICAgICBjaGlsZFBhaW50SW5mby5hcHBseVRyYW5zZm9ybShBZmZpbmVU
cmFuc2Zvcm06OnRyYW5zbGF0aW9uKGFkanVzdGVkUGFpbnRPZmZzZXQueCgpIC0geCgpLCBhZGp1
c3RlZFBhaW50T2Zmc2V0LnkoKSAtIHkoKSkgKiBsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwog
CisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dCByZW5kZXJpbmdDb250ZXh0OwogICAgIGJvb2wgY29u
dGludWVSZW5kZXJpbmcgPSB0cnVlOwotICAgIGlmIChjaGlsZFBhaW50SW5mby5waGFzZSA9PSBQ
YWludFBoYXNlRm9yZWdyb3VuZCkKLSAgICAgICAgY29udGludWVSZW5kZXJpbmcgPSBTVkdSZW5k
ZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZv
KTsKKyAgICBpZiAoY2hpbGRQYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQp
IHsKKyAgICAgICAgcmVuZGVyaW5nQ29udGV4dC5wcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KHRo
aXMsIGNoaWxkUGFpbnRJbmZvKTsKKyAgICAgICAgY29udGludWVSZW5kZXJpbmcgPSByZW5kZXJp
bmdDb250ZXh0LmlzUmVuZGVyaW5nUHJlcGFyZWQoKTsKKyAgICB9CiAKICAgICBpZiAoY29udGlu
dWVSZW5kZXJpbmcpCiAgICAgICAgIFJlbmRlckJveDo6cGFpbnQoY2hpbGRQYWludEluZm8sIExh
eW91dFBvaW50KCkpOwogCi0gICAgaWYgKGNoaWxkUGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhh
c2VGb3JlZ3JvdW5kKQotICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5kZXJTVkdD
b250ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZvLCBwYWludEluZm8uY29udGV4dCk7Ci0KICAgICBj
aGlsZFBhaW50SW5mby5jb250ZXh0LT5yZXN0b3JlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXggM2ZiNzk1Zi4uYzQzOGQz
MCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5j
cHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29s
b3IuaCIKICNpbmNsdWRlICJTVkdQYXRoRGF0YS5oIgogI2luY2x1ZGUgIlNWR1BhdGhFbGVtZW50
LmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgorI2luY2x1ZGUgIlNWR1JlbmRlcmlu
Z0NvbnRleHQuaCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZXMuaCIKICNpbmNsdWRlICJTVkdSZXNv
dXJjZXNDYWNoZS5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Lmgi
CkBAIC0zMzMsOSArMzMzLDkgQEAgdm9pZCBSZW5kZXJTVkdTaGFwZTo6cGFpbnQoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IEludFBvaW50JikKICAgICAgICAgY2hpbGRQYWludEluZm8uYXBw
bHlUcmFuc2Zvcm0obV9sb2NhbFRyYW5zZm9ybSk7CiAKICAgICAgICAgaWYgKGNoaWxkUGFpbnRJ
bmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7Ci0gICAgICAgICAgICBQYWludElu
Zm8gc2F2ZWRJbmZvKGNoaWxkUGFpbnRJbmZvKTsKKyAgICAgICAgICAgIFNWR1JlbmRlcmluZ0Nv
bnRleHQgcmVuZGVyaW5nQ29udGV4dCh0aGlzLCBjaGlsZFBhaW50SW5mbyk7CiAKLSAgICAgICAg
ICAgIGlmIChTVkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KHRoaXMs
IGNoaWxkUGFpbnRJbmZvKSkgeworICAgICAgICAgICAgaWYgKHJlbmRlcmluZ0NvbnRleHQuaXNS
ZW5kZXJpbmdQcmVwYXJlZCgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5
bGUqIHN2Z1N0eWxlID0gc3R5bGUoKS0+c3ZnU3R5bGUoKTsKICAgICAgICAgICAgICAgICBpZiAo
c3ZnU3R5bGUtPnNoYXBlUmVuZGVyaW5nKCkgPT0gU1JfQ1JJU1BFREdFUykKICAgICAgICAgICAg
ICAgICAgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKGZhbHNl
KTsKQEAgLTM0NSw4ICszNDUsNiBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQmKQogICAgICAgICAgICAgICAgIGlmIChzdmdT
dHlsZS0+aGFzTWFya2VycygpKQogICAgICAgICAgICAgICAgICAgICBtX21hcmtlckxheW91dElu
Zm8uZHJhd01hcmtlcnMoY2hpbGRQYWludEluZm8pOwogICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBTVkdSZW5kZXJTdXBwb3J0OjpmaW5pc2hSZW5kZXJTVkdDb250ZW50KHRoaXMsIGNoaWxk
UGFpbnRJbmZvLCBzYXZlZEluZm8uY29udGV4dCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
ZHJhd3NPdXRsaW5lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdJbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5s
aW5lRmxvd0JveC5jcHAKaW5kZXggY2RlZWM2MS4uMjFhOTA5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwCkBAIC0yOSw3ICsyOSw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5lVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVk
RG9jdW1lbnRNYXJrZXIuaCIKICNpbmNsdWRlICJTVkdJbmxpbmVUZXh0Qm94LmgiCi0jaW5jbHVk
ZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgorI2luY2x1ZGUgIlNWR1JlbmRlcmluZ0NvbnRleHQuaCIK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNTcsMTkgKzU3LDE1IEBAIHZvaWQgU1ZHSW5s
aW5lRmxvd0JveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JiwgTGF5b3V0VW5pCiAgICAgUmVuZGVyT2JqZWN0KiBib3hSZW5kZXJlciA9IHJlbmRlcmVyKCk7
CiAgICAgQVNTRVJUKGJveFJlbmRlcmVyKTsKIAotICAgIFBhaW50SW5mbyBjaGlsZFBhaW50SW5m
byhwYWludEluZm8pOwotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigq
Y2hpbGRQYWludEluZm8uY29udGV4dCk7Ci0KLSAgICBpZiAoU1ZHUmVuZGVyU3VwcG9ydDo6cHJl
cGFyZVRvUmVuZGVyU1ZHQ29udGVudChib3hSZW5kZXJlciwgY2hpbGRQYWludEluZm8pKSB7Cisg
ICAgU1ZHUmVuZGVyaW5nQ29udGV4dCByZW5kZXJpbmdDb250ZXh0KGJveFJlbmRlcmVyLCBwYWlu
dEluZm8sIFNWR1JlbmRlcmluZ0NvbnRleHQ6OlNhdmVHcmFwaGljc0NvbnRleHQpOworICAgIGlm
IChyZW5kZXJpbmdDb250ZXh0LmlzUmVuZGVyaW5nUHJlcGFyZWQoKSkgewogICAgICAgICBmb3Ig
KElubGluZUJveCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0T25MaW5lKCkpIHsKICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNTVkdJbmxpbmVUZXh0Qm94
KCkpCiAgICAgICAgICAgICAgICAgY29tcHV0ZVRleHRNYXRjaE1hcmtlclJlY3RGb3JSZW5kZXJl
cih0b1JlbmRlclNWR0lubGluZVRleHQoc3RhdGljX2Nhc3Q8U1ZHSW5saW5lVGV4dEJveCo+KGNo
aWxkKS0+dGV4dFJlbmRlcmVyKCkpKTsKIAotICAgICAgICAgICAgY2hpbGQtPnBhaW50KGNoaWxk
UGFpbnRJbmZvLCBMYXlvdXRQb2ludCgpLCAwLCAwKTsKKyAgICAgICAgICAgIGNoaWxkLT5wYWlu
dChwYWludEluZm8sIExheW91dFBvaW50KCksIDAsIDApOwogICAgICAgICB9CiAgICAgfQotCi0g
ICAgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluaXNoUmVuZGVyU1ZHQ29udGVudChib3hSZW5kZXJlciwg
Y2hpbGRQYWludEluZm8sIHBhaW50SW5mby5jb250ZXh0KTsKIH0KIAogRmxvYXRSZWN0IFNWR0lu
bGluZUZsb3dCb3g6OmNhbGN1bGF0ZUJvdW5kYXJpZXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggY2JkM2VlNi4u
ZTI2MjQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuY3BwCkBAIC0yNywxMiArMjcsOCBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVk
ZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIk5vZGVSZW5k
ZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCi0jaW5jbHVkZSAiUmVuZGVyU1ZH
UGF0aC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIu
aCIKQEAgLTgwLDEwNiArNzYsNiBAQCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlckJveAogICAgIG9iamVj
dC0+cGFyZW50KCktPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgZmFsc2Us
IHRydWUsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBpc1JlbmRlcmluZ01hc2tJbWFnZShSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBpZiAo
b2JqZWN0LT5mcmFtZSgpICYmIG9iamVjdC0+ZnJhbWUoKS0+dmlldygpKQotICAgICAgICByZXR1
cm4gb2JqZWN0LT5mcmFtZSgpLT52aWV3KCktPnBhaW50QmVoYXZpb3IoKSAmIFBhaW50QmVoYXZp
b3JSZW5kZXJpbmdTVkdNYXNrOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBTVkdSZW5k
ZXJTdXBwb3J0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVjdCogb2JqZWN0
LCBQYWludEluZm8mIHBhaW50SW5mbykKLXsKLSAgICBBU1NFUlQob2JqZWN0KTsKLQotICAgIFJl
bmRlclN0eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsKLSAgICBBU1NFUlQoc3R5bGUpOwot
Ci0gICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2Z1N0eWxlKCk7
Ci0gICAgQVNTRVJUKHN2Z1N0eWxlKTsKLQotICAgIC8vIFNldHVwIHRyYW5zcGFyZW5jeSBsYXll
cnMgYmVmb3JlIHNldHRpbmcgdXAgU1ZHIHJlc291cmNlcyEKLSAgICBib29sIGlzUmVuZGVyaW5n
TWFzayA9IGlzUmVuZGVyaW5nTWFza0ltYWdlKG9iamVjdCk7Ci0gICAgZmxvYXQgb3BhY2l0eSA9
IGlzUmVuZGVyaW5nTWFzayA/IDEgOiBzdHlsZS0+b3BhY2l0eSgpOwotICAgIGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKTsKLSAgICBpZiAob3BhY2l0eSA8IDEg
fHwgc2hhZG93KSB7Ci0gICAgICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IG9iamVjdC0+cmVw
YWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKLQotICAgICAgICBpZiAob3BhY2l0eSA8IDEp
IHsKLSAgICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5jbGlwKHJlcGFpbnRSZWN0KTsKLSAg
ICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxheWVyKG9wYWNp
dHkpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHNoYWRvdykgewotICAgICAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQtPmNsaXAocmVwYWludFJlY3QpOwotICAgICAgICAgICAgcGFpbnRJbmZv
LmNvbnRleHQtPnNldFNoYWRvdyhJbnRTaXplKHJvdW5kVG9JbnQoc2hhZG93LT54KCkpLCByb3Vu
ZFRvSW50KHNoYWRvdy0+eSgpKSksIHNoYWRvdy0+Ymx1cigpLCBzaGFkb3ctPmNvbG9yKCksIHN0
eWxlLT5jb2xvclNwYWNlKCkpOwotICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoMSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBTVkdSZXNvdXJj
ZXMqIHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5k
ZXJPYmplY3Qob2JqZWN0KTsKLSAgICBpZiAoIXJlc291cmNlcykgewotI2lmIEVOQUJMRShGSUxU
RVJTKQotICAgICAgICBpZiAoc3ZnU3R5bGUtPmhhc0ZpbHRlcigpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotI2VuZGlmCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGlm
ICghaXNSZW5kZXJpbmdNYXNrKSB7Ci0gICAgICAgIGlmIChSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
ciogbWFza2VyID0gcmVzb3VyY2VzLT5tYXNrZXIoKSkgewotICAgICAgICAgICAgaWYgKCFtYXNr
ZXItPmFwcGx5UmVzb3VyY2Uob2JqZWN0LCBzdHlsZSwgcGFpbnRJbmZvLmNvbnRleHQsIEFwcGx5
VG9EZWZhdWx0TW9kZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgaWYgKFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciogY2xpcHBlciA9IHJl
c291cmNlcy0+Y2xpcHBlcigpKSB7Ci0gICAgICAgIGlmICghY2xpcHBlci0+YXBwbHlSZXNvdXJj
ZShvYmplY3QsIHN0eWxlLCBwYWludEluZm8uY29udGV4dCwgQXBwbHlUb0RlZmF1bHRNb2RlKSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoRklMVEVSUykK
LSAgICBpZiAoIWlzUmVuZGVyaW5nTWFzaykgewotICAgICAgICBpZiAoUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIqIGZpbHRlciA9IHJlc291cmNlcy0+ZmlsdGVyKCkpIHsKLSAgICAgICAgICAgIGlm
ICghZmlsdGVyLT5hcHBseVJlc291cmNlKG9iamVjdCwgc3R5bGUsIHBhaW50SW5mby5jb250ZXh0
LCBBcHBseVRvRGVmYXVsdE1vZGUpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgU1ZH
UmVuZGVyU3VwcG9ydDo6ZmluaXNoUmVuZGVyU1ZHQ29udGVudChSZW5kZXJPYmplY3QqIG9iamVj
dCwgUGFpbnRJbmZvJiBwYWludEluZm8sIEdyYXBoaWNzQ29udGV4dCogc2F2ZWRDb250ZXh0KQot
ewotI2lmICFFTkFCTEUoRklMVEVSUykKLSAgICBVTlVTRURfUEFSQU0oc2F2ZWRDb250ZXh0KTsK
LSNlbmRpZgotCi0gICAgQVNTRVJUKG9iamVjdCk7Ci0KLSAgICBjb25zdCBSZW5kZXJTdHlsZSog
c3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7Ci0gICAgQVNTRVJUKHN0eWxlKTsKLQotICAgIGNvbnN0
IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxlLT5zdmdTdHlsZSgpOwotICAgIEFTU0VS
VChzdmdTdHlsZSk7Ci0KLSNpZiBFTkFCTEUoRklMVEVSUykKLSAgICBTVkdSZXNvdXJjZXMqIHJl
c291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJPYmpl
Y3Qob2JqZWN0KTsKLSAgICBpZiAocmVzb3VyY2VzKSB7Ci0gICAgICAgIGlmIChSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlciogZmlsdGVyID0gcmVzb3VyY2VzLT5maWx0ZXIoKSkgewotICAgICAgICAg
ICAgZmlsdGVyLT5wb3N0QXBwbHlSZXNvdXJjZShzdGF0aWNfY2FzdDxSZW5kZXJTVkdTaGFwZSo+
KG9iamVjdCksIHBhaW50SW5mby5jb250ZXh0LCBBcHBseVRvRGVmYXVsdE1vZGUsIDAsIDApOwot
ICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQgPSBzYXZlZENvbnRleHQ7Ci0gICAgICAgIH0K
LSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChzdHlsZS0+b3BhY2l0eSgpIDwgMSAmJiAhaXNSZW5k
ZXJpbmdNYXNrSW1hZ2Uob2JqZWN0KSkKLSAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmVuZFRy
YW5zcGFyZW5jeUxheWVyKCk7Ci0KLSAgICBpZiAoc3ZnU3R5bGUtPnNoYWRvdygpKQotICAgICAg
ICBwYWludEluZm8uY29udGV4dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKLX0KLQogdm9pZCBT
VkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlQ29udGFpbmVyQm91bmRpbmdCb3hlcyhjb25zdCBSZW5k
ZXJPYmplY3QqIGNvbnRhaW5lciwgRmxvYXRSZWN0JiBvYmplY3RCb3VuZGluZ0JveCwgRmxvYXRS
ZWN0JiBzdHJva2VCb3VuZGluZ0JveCwgRmxvYXRSZWN0JiByZXBhaW50Qm91bmRpbmdCb3gpCiB7
CiAgICAgYm9vbCBpc0ZpcnN0Q2hpbGQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAppbmRleCBjN2IyZmRjLi41MWM5ZDFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaApAQCAt
NDIsMTAgKzQyLDYgQEAgY2xhc3MgVHJhbnNmb3JtU3RhdGU7CiAvLyBTVkdSZW5kZXJlclN1cHBv
cnQgaXMgYSBoZWxwZXIgY2xhc3Mgc2hhcmluZyBjb2RlIGJldHdlZW4gYWxsIFNWRyByZW5kZXJl
cnMuCiBjbGFzcyBTVkdSZW5kZXJTdXBwb3J0IHsKIHB1YmxpYzoKLSAgICAvLyBVc2VkIGJ5IGFs
bCBTVkcgcmVuZGVyZXJzIHdobyBhcHBseSBjbGlwL2ZpbHRlci9ldGMuIHJlc291cmNlcyB0byB0
aGUgcmVuZGVyZXIgY29udGVudAotICAgIHN0YXRpYyBib29sIHByZXBhcmVUb1JlbmRlclNWR0Nv
bnRlbnQoUmVuZGVyT2JqZWN0KiwgUGFpbnRJbmZvJik7Ci0gICAgc3RhdGljIHZvaWQgZmluaXNo
UmVuZGVyU1ZHQ29udGVudChSZW5kZXJPYmplY3QqLCBQYWludEluZm8mLCBHcmFwaGljc0NvbnRl
eHQqIHNhdmVkQ29udGV4dCk7Ci0KICAgICAvLyBTaGFyZXMgY2hpbGQgbGF5b3V0aW5nIGNvZGUg
YmV0d2VlbiBSZW5kZXJTVkdSb290L1JlbmRlclNWRyhIaWRkZW4pQ29udGFpbmVyCiAgICAgc3Rh
dGljIHZvaWQgbGF5b3V0Q2hpbGRyZW4oUmVuZGVyT2JqZWN0KiwgYm9vbCBzZWxmTmVlZHNMYXlv
dXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
cmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJp
bmdDb250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjEzZGNm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJpbmdDb250ZXh0LmNwcApAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNywgMjAwOCBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA3
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorICogQ29weXJpZ2h0IChD
KSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDA5LTIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHUmVuZGVy
aW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKKyNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlci5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmgiCisj
aW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuaCIKKyNpbmNsdWRlICJTVkdJbWFnZUJ1
ZmZlclRvb2xzLmgiCisjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgiCisjaW5jbHVkZSAiU1ZHUmVz
b3VyY2VzQ2FjaGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5saW5lIGJv
b2wgaXNSZW5kZXJpbmdNYXNrSW1hZ2UoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgaWYg
KG9iamVjdC0+ZnJhbWUoKSAmJiBvYmplY3QtPmZyYW1lKCktPnZpZXcoKSkKKyAgICAgICAgcmV0
dXJuIG9iamVjdC0+ZnJhbWUoKS0+dmlldygpLT5wYWludEJlaGF2aW9yKCkgJiBQYWludEJlaGF2
aW9yUmVuZGVyaW5nU1ZHTWFzazsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1NWR1JlbmRlcmlu
Z0NvbnRleHQ6On5TVkdSZW5kZXJpbmdDb250ZXh0KCkKK3sKKyAgICAvLyBGYXN0IHBhdGggaWYg
d2UgZG9uJ3QgbmVlZCB0byByZXN0b3JlIGFueXRoaW5nLgorICAgIGlmICghKG1fcmVuZGVyaW5n
RmxhZ3MgJiBBY3Rpb25zTmVlZGVkKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKG1f
b2JqZWN0ICYmIG1fcGFpbnRJbmZvKTsKKworI2lmIEVOQUJMRShGSUxURVJTKQorICAgIGlmICht
X3JlbmRlcmluZ0ZsYWdzICYgRW5kRmlsdGVyTGF5ZXIpIHsKKyAgICAgICAgQVNTRVJUKG1fZmls
dGVyKTsKKyAgICAgICAgbV9maWx0ZXItPnBvc3RBcHBseVJlc291cmNlKHN0YXRpY19jYXN0PFJl
bmRlclNWR1NoYXBlKj4obV9vYmplY3QpLCBtX3BhaW50SW5mby0+Y29udGV4dCwgQXBwbHlUb0Rl
ZmF1bHRNb2RlLCAwLCAwKTsKKyAgICAgICAgbV9wYWludEluZm8tPmNvbnRleHQgPSBtX3NhdmVk
Q29udGV4dDsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChtX3JlbmRlcmluZ0ZsYWdzICYgRW5k
T3BhY2l0eUxheWVyKQorICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4dC0+ZW5kVHJhbnNwYXJl
bmN5TGF5ZXIoKTsKKworICAgIGlmIChtX3JlbmRlcmluZ0ZsYWdzICYgRW5kU2hhZG93TGF5ZXIp
CisgICAgICAgIG1fcGFpbnRJbmZvLT5jb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwor
CisgICAgaWYgKG1fcmVuZGVyaW5nRmxhZ3MgJiBSZXN0b3JlR3JhcGhpY3NDb250ZXh0KQorICAg
ICAgICBtX3BhaW50SW5mby0+Y29udGV4dC0+cmVzdG9yZSgpOworfQorCit2b2lkIFNWR1JlbmRl
cmluZ0NvbnRleHQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIFBhaW50SW5mbyYgcGFpbnRJbmZvLCBOZWVkc0dyYXBoaWNzQ29udGV4dFNhdmUgbmVlZHNH
cmFwaGljc0NvbnRleHRTYXZlKQoreworICAgIEFTU0VSVChvYmplY3QpOworCisjaWZuZGVmIE5E
RUJVRworICAgIC8vIFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgYmUgY2FsbGVkIHR3aWNlIQorICAg
IEFTU0VSVCghKG1fcmVuZGVyaW5nRmxhZ3MgJiBQcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50V2Fz
Q2FsbGVkKSk7CisgICAgbV9yZW5kZXJpbmdGbGFncyB8PSBQcmVwYXJlVG9SZW5kZXJTVkdDb250
ZW50V2FzQ2FsbGVkOworI2VuZGlmCisKKyAgICBtX29iamVjdCA9IG9iamVjdDsKKyAgICBtX3Bh
aW50SW5mbyA9ICZwYWludEluZm87CisjaWYgRU5BQkxFKEZJTFRFUlMpCisgICAgbV9maWx0ZXIg
PSAwOworI2VuZGlmCisKKyAgICAvLyBXZSBuZWVkIHRvIHNhdmUgLyByZXN0b3JlIHRoZSBjb250
ZXh0IGV2ZW4gaWYgdGhlIGluaXRpYWxpemF0aW9uIGZhaWxlZC4KKyAgICBpZiAobmVlZHNHcmFw
aGljc0NvbnRleHRTYXZlID09IFNhdmVHcmFwaGljc0NvbnRleHQpIHsKKyAgICAgICAgbV9wYWlu
dEluZm8tPmNvbnRleHQtPnNhdmUoKTsKKyAgICAgICAgbV9yZW5kZXJpbmdGbGFncyB8PSBSZXN0
b3JlR3JhcGhpY3NDb250ZXh0OworICAgIH0KKworICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1f
b2JqZWN0LT5zdHlsZSgpOworICAgIEFTU0VSVChzdHlsZSk7CisKKyAgICBjb25zdCBTVkdSZW5k
ZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICBBU1NFUlQoc3ZnU3R5
bGUpOworCisgICAgLy8gU2V0dXAgdHJhbnNwYXJlbmN5IGxheWVycyBiZWZvcmUgc2V0dGluZyB1
cCBTVkcgcmVzb3VyY2VzIQorICAgIGJvb2wgaXNSZW5kZXJpbmdNYXNrID0gaXNSZW5kZXJpbmdN
YXNrSW1hZ2UobV9vYmplY3QpOworICAgIGZsb2F0IG9wYWNpdHkgPSBpc1JlbmRlcmluZ01hc2sg
PyAxIDogc3R5bGUtPm9wYWNpdHkoKTsKKyAgICBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBz
dmdTdHlsZS0+c2hhZG93KCk7CisgICAgaWYgKG9wYWNpdHkgPCAxIHx8IHNoYWRvdykgeworICAg
ICAgICBGbG9hdFJlY3QgcmVwYWludFJlY3QgPSBtX29iamVjdC0+cmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXMoKTsKKworICAgICAgICBpZiAob3BhY2l0eSA8IDEpIHsKKyAgICAgICAgICAg
IG1fcGFpbnRJbmZvLT5jb250ZXh0LT5jbGlwKHJlcGFpbnRSZWN0KTsKKyAgICAgICAgICAgIG1f
cGFpbnRJbmZvLT5jb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxheWVyKG9wYWNpdHkpOworICAg
ICAgICAgICAgbV9yZW5kZXJpbmdGbGFncyB8PSBFbmRPcGFjaXR5TGF5ZXI7CisgICAgICAgIH0K
KworICAgICAgICBpZiAoc2hhZG93KSB7CisgICAgICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4
dC0+Y2xpcChyZXBhaW50UmVjdCk7CisgICAgICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4dC0+
c2V0U2hhZG93KEludFNpemUocm91bmRUb0ludChzaGFkb3ctPngoKSksIHJvdW5kVG9JbnQoc2hh
ZG93LT55KCkpKSwgc2hhZG93LT5ibHVyKCksIHNoYWRvdy0+Y29sb3IoKSwgc3R5bGUtPmNvbG9y
U3BhY2UoKSk7CisgICAgICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4dC0+YmVnaW5UcmFuc3Bh
cmVuY3lMYXllcigxKTsKKyAgICAgICAgICAgIG1fcmVuZGVyaW5nRmxhZ3MgfD0gRW5kU2hhZG93
TGF5ZXI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBTVkdSZXNvdXJjZXMqIHJlc291cmNlcyA9
IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJPYmplY3QobV9vYmpl
Y3QpOworICAgIGlmICghcmVzb3VyY2VzKSB7CisjaWYgRU5BQkxFKEZJTFRFUlMpCisgICAgICAg
IGlmIChzdmdTdHlsZS0+aGFzRmlsdGVyKCkpCisgICAgICAgICAgICByZXR1cm47CisjZW5kaWYK
KyAgICAgICAgbV9yZW5kZXJpbmdGbGFncyB8PSBSZW5kZXJpbmdQcmVwYXJlZDsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmICghaXNSZW5kZXJpbmdNYXNrKSB7CisgICAgICAgIGlm
IChSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciogbWFza2VyID0gcmVzb3VyY2VzLT5tYXNrZXIoKSkg
eworICAgICAgICAgICAgaWYgKCFtYXNrZXItPmFwcGx5UmVzb3VyY2UobV9vYmplY3QsIHN0eWxl
LCBtX3BhaW50SW5mby0+Y29udGV4dCwgQXBwbHlUb0RlZmF1bHRNb2RlKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoUmVuZGVyU1ZHUmVzb3Vy
Y2VDbGlwcGVyKiBjbGlwcGVyID0gcmVzb3VyY2VzLT5jbGlwcGVyKCkpIHsKKyAgICAgICAgaWYg
KCFjbGlwcGVyLT5hcHBseVJlc291cmNlKG1fb2JqZWN0LCBzdHlsZSwgbV9wYWludEluZm8tPmNv
bnRleHQsIEFwcGx5VG9EZWZhdWx0TW9kZSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQor
CisjaWYgRU5BQkxFKEZJTFRFUlMpCisgICAgaWYgKCFpc1JlbmRlcmluZ01hc2spIHsKKyAgICAg
ICAgbV9maWx0ZXIgPSByZXNvdXJjZXMtPmZpbHRlcigpOworICAgICAgICBpZiAobV9maWx0ZXIp
IHsKKyAgICAgICAgICAgIG1fc2F2ZWRDb250ZXh0ID0gbV9wYWludEluZm8tPmNvbnRleHQ7Cisg
ICAgICAgICAgICAvLyBSZXR1cm4gd2l0aCBmYWxzZSBoZXJlIG1heSBtZWFuIHRoYXQgd2UgZG9u
J3QgbmVlZCB0byBkcmF3IHRoZSBjb250ZW50CisgICAgICAgICAgICAvLyAoYmVjYXVzZSBpdCB3
YXMgZWl0aGVyIGRyYXduIGJlZm9yZSBvciBlbXB0eSkgYnV0IHdlIHN0aWxsIG5lZWQgdG8gYXBw
bHkgdGhlIGZpbHRlci4KKyAgICAgICAgICAgIG1fcmVuZGVyaW5nRmxhZ3MgfD0gRW5kRmlsdGVy
TGF5ZXI7CisgICAgICAgICAgICBpZiAoIW1fZmlsdGVyLT5hcHBseVJlc291cmNlKG1fb2JqZWN0
LCBzdHlsZSwgbV9wYWludEluZm8tPmNvbnRleHQsIEFwcGx5VG9EZWZhdWx0TW9kZSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKKyAgICBtX3Jl
bmRlcmluZ0ZsYWdzIHw9IFJlbmRlcmluZ1ByZXBhcmVkOworfQorCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDUyMDg5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgK
QEAgLTAsMCArMSwxMDEgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA3IFJvYiBCdWlzIDxi
dWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVy
aWNAd2Via2l0Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgWm9s
dGFuIEhlcmN6ZWcgPHpoZXJjemVnQHdlYmtpdC5vcmc+LgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFNWR1JlbmRlcmluZ0Nv
bnRleHRfaAorI2RlZmluZSBTVkdSZW5kZXJpbmdDb250ZXh0X2gKKworI2lmIEVOQUJMRShTVkcp
CisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgorI2lu
Y2x1ZGUgIlBhaW50SW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFmZmlu
ZVRyYW5zZm9ybTsKK2NsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIEZsb2F0UmVjdDsKK2NsYXNz
IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOworCisvLyBTVkdSZW5kZXJpbmdDb250ZXh0IAorY2xh
c3MgU1ZHUmVuZGVyaW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgZW51bSBOZWVkc0dyYXBoaWNz
Q29udGV4dFNhdmUgeworICAgICAgICBTYXZlR3JhcGhpY3NDb250ZXh0LAorICAgICAgICBEb250
U2F2ZUdyYXBoaWNzQ29udGV4dCwKKyAgICB9OworCisgICAgLy8gRG9lcyBub3Qgc3RhcnQgcmVu
ZGVyaW5nLgorICAgIFNWR1JlbmRlcmluZ0NvbnRleHQoKQorICAgICAgICA6IG1fcmVuZGVyaW5n
RmxhZ3MoMCkKKyAgICAgICAgLCBtX29iamVjdCgwKQorICAgICAgICAsIG1fcGFpbnRJbmZvKDAp
CisgICAgICAgICwgbV9zYXZlZENvbnRleHQoMCkKKyAgICAgICAgLCBtX2ZpbHRlcigwKQorICAg
IHsKKyAgICB9CisKKyAgICBTVkdSZW5kZXJpbmdDb250ZXh0KFJlbmRlck9iamVjdCogb2JqZWN0
LCBQYWludEluZm8mIHBhaW50aW5mbywgTmVlZHNHcmFwaGljc0NvbnRleHRTYXZlIG5lZWRzR3Jh
cGhpY3NDb250ZXh0U2F2ZSA9IERvbnRTYXZlR3JhcGhpY3NDb250ZXh0KQorICAgICAgICA6IG1f
cmVuZGVyaW5nRmxhZ3MoMCkKKyAgICAgICAgLCBtX29iamVjdCgwKQorICAgICAgICAsIG1fcGFp
bnRJbmZvKDApCisgICAgICAgICwgbV9zYXZlZENvbnRleHQoMCkKKyAgICAgICAgLCBtX2ZpbHRl
cigwKQorICAgIHsKKyAgICAgICAgcHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudChvYmplY3QsIHBh
aW50aW5mbywgbmVlZHNHcmFwaGljc0NvbnRleHRTYXZlKTsKKyAgICB9CisKKyAgICAvLyBBdXRv
bWF0aWNhbGx5IGZpbmlzaGVzIGNvbnRleHQgcmVuZGVyaW5nLgorICAgIH5TVkdSZW5kZXJpbmdD
b250ZXh0KCk7CisKKyAgICAvLyBVc2VkIGJ5IGFsbCBTVkcgcmVuZGVyZXJzIHdobyBhcHBseSBj
bGlwL2ZpbHRlci9ldGMuIHJlc291cmNlcyB0byB0aGUgcmVuZGVyZXIgY29udGVudC4KKyAgICB2
b2lkIHByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVuZGVyT2JqZWN0KiwgUGFpbnRJbmZvJiwg
TmVlZHNHcmFwaGljc0NvbnRleHRTYXZlID0gRG9udFNhdmVHcmFwaGljc0NvbnRleHQpOworICAg
IGJvb2wgaXNSZW5kZXJpbmdQcmVwYXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nRmxh
Z3MgJiBSZW5kZXJpbmdQcmVwYXJlZDsgfQorCitwcml2YXRlOgorICAgIC8vIFRvIHByb3Blcmx5
IHJldmVydCBwYXJ0aWFsbHkgc3VjY2Vzc2Z1bCBpbml0aWFsaXp0aW9ucyBpbiB0aGUgZGVzdHJ1
Y3Rvciwgd2UgcmVjb3JkIGFsbCBzdWNjZXNzZnVsIHN0ZXBzLgorICAgIGVudW0gUmVuZGVyaW5n
RmxhZ3MgeworICAgICAgICBSZW5kZXJpbmdQcmVwYXJlZCA9IDEsCisgICAgICAgIFJlc3RvcmVH
cmFwaGljc0NvbnRleHQgPSAxIDw8IDEsCisgICAgICAgIEVuZE9wYWNpdHlMYXllciA9IDEgPDwg
MiwKKyAgICAgICAgRW5kU2hhZG93TGF5ZXIgPSAxIDw8IDMsCisgICAgICAgIEVuZEZpbHRlckxh
eWVyID0gMSA8PCA0LAorICAgICAgICBQcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50V2FzQ2FsbGVk
ID0gMSA8PCA1CisgICAgfTsKKworICAgIC8vIExpc3Qgb2YgdGhvc2UgZmxhZ3Mgd2hpY2ggcmVx
dWlyZSBhY3Rpb25zIGR1cmluZyB0aGUgZGVzdHJ1Y3Rvci4KKyAgICBjb25zdCBzdGF0aWMgaW50
IEFjdGlvbnNOZWVkZWQgPSBSZXN0b3JlR3JhcGhpY3NDb250ZXh0IHwgRW5kT3BhY2l0eUxheWVy
IHwgRW5kU2hhZG93TGF5ZXIgfCBFbmRGaWx0ZXJMYXllcjsKKworICAgIGludCBtX3JlbmRlcmlu
Z0ZsYWdzOworICAgIFJlbmRlck9iamVjdCogbV9vYmplY3Q7CisgICAgUGFpbnRJbmZvKiBtX3Bh
aW50SW5mbzsKKyAgICBHcmFwaGljc0NvbnRleHQqIG1fc2F2ZWRDb250ZXh0OworI2lmIEVOQUJM
RShGSUxURVJTKQorICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyKiBtX2ZpbHRlcjsKKyNlbmRp
ZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykK
KyNlbmRpZiAvLyBTVkdSZW5kZXJpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCmluZGV4IGFlNDk1ZWMuLjU3MTQ2Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94
LmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIlNWR0lubGluZUZsb3dCb3guaCIKICNp
bmNsdWRlICJTVkdJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNpbmNs
dWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCisjaW5jbHVkZSAiU1ZHUmVuZGVyaW5nQ29udGV4dC5o
IgogI2luY2x1ZGUgIlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTcsMTggKzU3LDE1IEBAIHZvaWQgU1ZHUm9vdElubGluZUJveDo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiwgTGF5b3V0VW5pCiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
KmNoaWxkUGFpbnRJbmZvLmNvbnRleHQpOwotCi0gICAgaWYgKFNWR1JlbmRlclN1cHBvcnQ6OnBy
ZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoYm94UmVuZGVyZXIsIGNoaWxkUGFpbnRJbmZvKSkgewor
ICAgIFNWR1JlbmRlcmluZ0NvbnRleHQgcmVuZGVyaW5nQ29udGV4dChib3hSZW5kZXJlciwgcGFp
bnRJbmZvLCBTVkdSZW5kZXJpbmdDb250ZXh0OjpTYXZlR3JhcGhpY3NDb250ZXh0KTsKKyAgICBp
ZiAocmVuZGVyaW5nQ29udGV4dC5pc1JlbmRlcmluZ1ByZXBhcmVkKCkpIHsKICAgICAgICAgZm9y
IChJbmxpbmVCb3gqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
bmV4dE9uTGluZSgpKSB7CiAgICAgICAgICAgICBpZiAoY2hpbGQtPmlzU1ZHSW5saW5lVGV4dEJv
eCgpKQogICAgICAgICAgICAgICAgIFNWR0lubGluZUZsb3dCb3g6OmNvbXB1dGVUZXh0TWF0Y2hN
YXJrZXJSZWN0Rm9yUmVuZGVyZXIodG9SZW5kZXJTVkdJbmxpbmVUZXh0KHN0YXRpY19jYXN0PFNW
R0lubGluZVRleHRCb3gqPihjaGlsZCktPnRleHRSZW5kZXJlcigpKSk7CiAKLSAgICAgICAgICAg
IGNoaWxkLT5wYWludChjaGlsZFBhaW50SW5mbywgTGF5b3V0UG9pbnQoKSwgMCwgMCk7CisgICAg
ICAgICAgICBjaGlsZC0+cGFpbnQocGFpbnRJbmZvLCBMYXlvdXRQb2ludCgpLCAwLCAwKTsKICAg
ICAgICAgfQogICAgIH0KLQotICAgIFNWR1JlbmRlclN1cHBvcnQ6OmZpbmlzaFJlbmRlclNWR0Nv
bnRlbnQoYm94UmVuZGVyZXIsIGNoaWxkUGFpbnRJbmZvLCBwYWludEluZm8uY29udGV4dCk7CiB9
CiAKIHZvaWQgU1ZHUm9vdElubGluZUJveDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9y
bWF0aW9uKCkKLS0gCjEuNy4yLjUKCg==
</data>
<flag name="review"
          id="134187"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>