<?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>222953</bug_id>
          
          <creation_ts>2021-03-08 16:20:03 -0800</creation_ts>
          <short_desc>[macOS] Add a way to trigger webpage translation via the context menu</short_desc>
          <delta_ts>2021-03-09 08:21:36 -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>Platform</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1737361</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-08 16:20:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/73901967&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737372</commentid>
    <comment_count>1</comment_count>
      <attachid>422637</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-08 16:48:22 -0800</bug_when>
    <thetext>Created attachment 422637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737373</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-08 16:48:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/75194080&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737380</commentid>
    <comment_count>3</comment_count>
      <attachid>422640</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-08 17:05:15 -0800</bug_when>
    <thetext>Created attachment 422640
Fix non-internal builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737386</commentid>
    <comment_count>4</comment_count>
      <attachid>422640</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-08 17:13:56 -0800</bug_when>
    <thetext>Comment on attachment 422640
Fix non-internal builds

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

r=me

&gt; Source/WebCore/page/ContextMenuContext.h:47
&gt; +    IntRect selectionBounds() const { return m_selectionBounds; }

`const IntRect&amp;`

&gt; Source/WebCore/page/ContextMenuController.cpp:846
&gt; +        auto selectedString = m_context.hitTestResult().selectedText();

NIT: I dunno if it&apos;s actually more efficient/performant/etc, but I usually mark stuff like this as `auto&amp;`.

&gt; Source/WebCore/page/ContextMenuController.cpp:849
&gt; +        if (auto view = makeRefPtr(frame-&gt;view()); view &amp;&amp; !selectedString.isEmpty()) {

Is it worth putting this inside a `if (!selectedString.isEmpty()) { ... }` to avoid churning the ref count if not?

&gt; Source/WebKit/Shared/ContextMenuContextData.h:64
&gt; +    WebCore::IntRect selectionBounds() const { return m_selectionBounds; }

`const WebCore::IntRect&amp;`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737416</commentid>
    <comment_count>5</comment_count>
      <attachid>422640</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-08 18:19:34 -0800</bug_when>
    <thetext>Comment on attachment 422640
Fix non-internal builds

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

&gt;&gt; Source/WebCore/page/ContextMenuContext.h:47
&gt;&gt; +    IntRect selectionBounds() const { return m_selectionBounds; }
&gt; 
&gt; `const IntRect&amp;`

👍🏻

&gt;&gt; Source/WebCore/page/ContextMenuController.cpp:846
&gt;&gt; +        auto selectedString = m_context.hitTestResult().selectedText();
&gt; 
&gt; NIT: I dunno if it&apos;s actually more efficient/performant/etc, but I usually mark stuff like this as `auto&amp;`.

👍🏻

&gt;&gt; Source/WebCore/page/ContextMenuController.cpp:849
&gt;&gt; +        if (auto view = makeRefPtr(frame-&gt;view()); view &amp;&amp; !selectedString.isEmpty()) {
&gt; 
&gt; Is it worth putting this inside a `if (!selectedString.isEmpty()) { ... }` to avoid churning the ref count if not?

Good call!

&gt;&gt; Source/WebKit/Shared/ContextMenuContextData.h:64
&gt;&gt; +    WebCore::IntRect selectionBounds() const { return m_selectionBounds; }
&gt; 
&gt; `const WebCore::IntRect&amp;`

👍🏻</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737419</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-08 18:23:39 -0800</bug_when>
    <thetext>&gt; &gt;&gt; Source/WebCore/page/ContextMenuController.cpp:846
&gt; &gt;&gt; +        auto selectedString = m_context.hitTestResult().selectedText();
&gt; &gt; 
&gt; &gt; NIT: I dunno if it&apos;s actually more efficient/performant/etc, but I usually mark stuff like this as `auto&amp;`.
&gt; 
&gt; 👍🏻

Actually, never mind — this doesn&apos;t work here because selectedText() returns a temporary value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737421</commentid>
    <comment_count>7</comment_count>
      <attachid>422651</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-08 18:27:17 -0800</bug_when>
    <thetext>Created attachment 422651
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737567</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-09 08:21:35 -0800</bug_when>
    <thetext>Committed r274148: &lt;https://commits.webkit.org/r274148&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422651.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422637</attachid>
            <date>2021-03-08 16:48:22 -0800</date>
            <delta_ts>2021-03-08 17:34:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222953-20210308164821.patch</filename>
            <type>text/plain</type>
            <size>40715</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc1N2ZkMDY3ODMxMGMz
NmQ2ZDFlODg1ZmJmMjhmYWMzMmU3ZDM2My4uYjNlMjAxYzNmNDA1MWYzYTdkNTJjN2QyYzg1Y2Iy
YmYzMDQ4NWU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTAzLTA4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRk
IGEgd2F5IHRvIHRyaWdnZXIgd2VicGFnZSB0cmFuc2xhdGlvbiB2aWEgdGhlIGNvbnRleHQgbWVu
dQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTUz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MzkwMTk2Nz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgYSBXZWJDb3JlIGVudW0gZm9y
IHRoZSBuZXcgY29udGV4dCBtZW51IGl0ZW0uIEFkZGl0aW9uYWxseSwgdXBkYXRlIGBMb2NhbGl6
YWJsZS5zdHJpbmdzYCBieSByZS1ydW5uaW5nCisgICAgICAgIGBUb29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJraXQtbG9jYWxpemFibGUtc3RyaW5nc2AuCisKKyAgICAgICAgKiBlbi5scHJvai9Mb2Nh
bGl6YWJsZS5zdHJpbmdzOgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250ZXh0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQ6OnNldFNlbGVjdGlvbkJvdW5kcyk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQ6OnNlbGVjdGlvbkJvdW5kcyBj
b25zdCk6CisKKyAgICAgICAgQWRkIGEgbmV3IG1lbWJlciB0byByZXByZXNlbnQgdGhlIHRleHQg
c2VsZWN0aW9uIGJvdW5kcyBpbiByb290IHZpZXcgY29vcmRpbmF0ZXMuCisKKyAgICAgICAgKiBw
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKworICAgICAgICBDb21w
dXRlIGFuZCBzZXQgdGV4dCBzZWxlY3Rpb24gYm91bmRzLgorCisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxp
ZENvbnRleHRNZW51QWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
aDoKKworICAgICAgICBBZGQgdGhlIG5ldyBlbnVtIHZhbHVlLgorCisgICAgICAgICogcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0cnVuY2F0ZWRTdHJp
bmdGb3JNZW51SXRlbSk6CisKKyAgICAgICAgUmVuYW1lZCB0aGlzIGZyb20gYHRydW5jYXRlZFN0
cmluZ0Zvckxvb2t1cE1lbnVJdGVtYCwgc2luY2UgaXQncyBub3cgdXNlZCBmb3IgdGhpcyBuZXcg
dHJhbnNsYXRlIG1lbnUgaXRlbS4KKworICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1RyYW5zbGF0ZSk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHJldHVy
biB0aGUgdGl0bGUgZm9yIHRoZSBuZXcgdHJhbnNsYXRlIG1lbnUgaXRlbSwgbW9kZWxlZCBhZnRl
ciAiTG9vayBVcCIuCisKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRlZFN0cmluZ0Zvckxvb2t1
cE1lbnVJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
Lmg6CisKIDIwMjEtMDMtMDggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjczMDg0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBj
NWM4NjZmMDM1MTUxMGQxMTAyNjU5NjM4YjY0MTI2MGU2NzJmN2VjLi4yYmZjOTIxNzgxMzA5Y2M3
OTQ5MTNhMGI1MTE4NjQxNDhhNDQ3NTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIx
LTAzLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFttYWNPU10gQWRkIGEgd2F5IHRvIHRyaWdnZXIgd2VicGFnZSB0cmFuc2xhdGlvbiB2aWEgdGhl
IGNvbnRleHQgbWVudQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyOTUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MzkwMTk2Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
dGhlIG5ldyBjb250ZXh0IG1lbnUgaXRlbSBpbiBXZWJLaXQyLiBTZWUgYmVsb3cgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbVR5cGVz
Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAo
V2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChXZWJLaXQ6OnRvSW1wbCk6CisKKyAgICAgICAgQWRk
IGEgQyBBUEkgdmFsdWUgZm9yIHRoZSBuZXcgV2ViQ29yZSBlbnVtLgorCisgICAgICAgICogU2hh
cmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0
TWVudUNvbnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKToKKyAgICAgICAgKFdlYktp
dDo6Q29udGV4dE1lbnVDb250ZXh0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6Q29udGV4dE1lbnVDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29u
dGV4dE1lbnVDb250ZXh0RGF0YS5oOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNvbnRl
eHREYXRhOjpzZWxlY3Rpb25Cb3VuZHMgY29uc3QpOgorCisgICAgICAgIEFkZCBhIHJlY3QsIGBz
ZWxlY3Rpb25Cb3VuZHNgLCB0byBgQ29udGV4dE1lbnVDb250ZXh0RGF0YWAgdGhhdCByZXByZXNl
bnRzIHRoZSByZWN0IG9mIHRoZSBjdXJyZW50IHRleHQKKyAgICAgICAgc2VsZWN0aW9uIGluIHJv
b3QgdmlldyBjb29yZGluYXRlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tN
ZW51SXRlbUlkZW50aWZpZXJzLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tN
ZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYW5I
YW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjYW5IYW5kbGVDb250ZXh0TWVu
dVRyYW5zbGF0aW9uIGNvbnN0KToKKworICAgICAgICBDb25zdWx0IHRoZSBjbGFzcyBtZXRob2Qg
dG8gcmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBtZW51IGl0ZW0gc2hvdWxkIGJlIHByZXNlbnQu
IElmIG5vdCwgdGhlbiB3ZSBmaWx0ZXIgdGhpcworICAgICAgICBpdGVtIG91dCBmcm9tIHRoZSBs
aXN0IG9mIGNvbnRleHQgbWVudSBpdGVtcyBpbiBgV2ViQ29udGV4dE1lbnVQcm94eU1hY2AgYmVs
b3cuCisKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJh
bnNsYXRpb24pOgorCisgICAgICAgIEhhbmRsZSB0aGUgdHJhbnNsYXRpb24gYWN0aW9uIGJ5IHVz
aW5nIGBOU1BvcG92ZXJgIHRvIHByZXNlbnQgYW4gYExUVUlUcmFuc2xhdGlvblZpZXdDb250cm9s
bGVyYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24gY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQ29udGV4dE1lbnVUcmFu
c2xhdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0
TWVudUZyb21JdGVtcyk6CisKKyAgICAgICAgUmVtb3ZlIHRoZSB0cmFuc2xhdGUgbWVudSBpdGVt
IGlmIHdlJ3JlIGFscmVhZHkgcHJlc2VudGVkIGluIHRoZSBjb250ZXh0IG9mIGEgcG9wb3Zlciwg
b3IgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdAorICAgICAgICBzdXBwb3J0IHRoZSBmZWF0dXJlIChz
ZWUgYFdlYlZpZXdJbXBsOjpjYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uYCkuCisKKyAg
ICAgICAgKFdlYktpdDo6bWVudUl0ZW1JZGVudGlmaWVyKToKKwogMjAyMS0wMy0wOCAgS2ltbW8g
S2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkdMIGFzc2VydHMg
YWZ0ZXIgR1BVIHByb2Nlc3MgdGltZXMgb3V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggMzU0NmY5NjA2NzU2NDVhZTcwNjEyZDVjOWE5ODUyNWM1YTlkZGQ2My4uMWM4NWRiNDY0NTI0
YTY4MDc2NzM2NTU1OWY2ZTg1MGYwZDVkNTI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAzLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRkIGEgd2F5IHRvIHRyaWdnZXIgd2Vi
cGFnZSB0cmFuc2xhdGlvbiB2aWEgdGhlIGNvbnRleHQgbWVudQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTUzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MzkwMTk2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgKG5vLW9wKSBoYW5kbGluZyBmb3IgdGhlIG5ldyBlbnVtIHZhbHVlLgorCisg
ICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKHRvVGFnKToKKwogMjAy
MS0wMy0wNiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxp
ZnkgRHVtcFJlbmRlclRyZWUgV2ViUHJlZmVyZW5jZXMgcmVzZXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9l
bi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDczOTYxMjI3NjkwMmUzMGYwNzgwNGNk
Zjc4ZWQ1NjdlYjQ3M2M2ODcuLjk1MDliNGUxNDA0M2U4NWI1M2IyZDJiOTc2NTg5MDIxNWM3ODQ3
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAt
MTI0LDEyICsxMjQsMjEgQEAKIC8qIEJ1dHRvbiB0aXRsZSBpbiBEZXZpY2UgT3JpZW50YXRpb24g
UGVybWlzc2lvbiBBUEkgcHJvbXB0ICovCiAiQWxsb3cgKGRldmljZSBtb3Rpb24gYW5kIG9yaWVu
dGF0aW9uIGFjY2VzcykiID0gIkFsbG93IjsKIAotLyogTWVzc2FnZSBmb3IgcmVxdWVzdGluZyBj
cm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8KLSJBbGxvdyDigJwl
QOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA
4oCdPyIgPSAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3
aGlsZSBicm93c2luZyDigJwlQOKAnT8iOworLyogQWxsb3cgYnV0dG9uIHRpdGxlIGluIHNwZWVj
aCByZWNvZ25pdGlvbiBwcm9tcHQgKi8KKyJBbGxvdyAoc3BlZWNocmVjb2duaXRpb24pIiA9ICJB
bGxvdyI7CisKKy8qIEFsbG93IGJ1dHRvbiB0aXRsZSBpbiB1c2VyIG1lZGlhIHByb21wdCAqLwor
IkFsbG93ICh1c2VybWVkaWEpIiA9ICJBbGxvdyI7CiAKLS8qIE1lc3NhZ2UgZm9yIHJlcXVlc3Rp
bmcgY3Jvc3Mtc2l0ZSBjb29raWUgYW5kIHdlYnNpdGUgZGF0YSBhY2Nlc3MgZm9yIG11bHRpcGxl
IHRoaXJkIHBhcnR5IGRvbWFpbnMuICovCisvKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3Nz
LXNpdGUgY29va2llIGFuZCB3ZWJzaXRlIGRhdGEgYWNjZXNzLiAqLwogIkFsbG93IOKAnCVA4oCd
IGFuZCDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dz
aW5nIOKAnCVA4oCdPyIgPSAiQWxsb3cg4oCcJUDigJ0gYW5kIOKAnCVA4oCdIHRvIHVzZSBjb29r
aWVzIGFuZCB3ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IjsKIAorLyogTWVz
c2FnZSBmb3Igc3BlY2hyZWNvZ25pdGlvbiBwcm9tcHQgKi8KKyJBbGxvdyDigJwlQOKAnSB0byBj
YXB0dXJlIHlvdXIgYXVkaW8gYW5kIHVzZSBpdCBmb3Igc3BlZWNoIHJlY29nbml0aW9uPyIgPSAi
QWxsb3cg4oCcJUDigJ0gdG8gY2FwdHVyZSB5b3VyIGF1ZGlvIGFuZCB1c2UgaXQgZm9yIHNwZWVj
aCByZWNvZ25pdGlvbj8iOworCisvKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3NzLXNpdGUg
Y29va2llIGFuZCB3ZWJzaXRlIGRhdGEgYWNjZXNzLiAqLworIkFsbG93IOKAnCVA4oCdIHRvIHVz
ZSBjb29raWVzIGFuZCB3ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IiA9ICJB
bGxvdyDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dz
aW5nIOKAnCVA4oCdPyI7CisKIC8qIE1lc3NhZ2UgZm9yIHVzZXIgbWVkaWEgcHJvbXB0ICovCiAi
QWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lPyIgPSAiQWxs
b3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lPyI7CiAKQEAgLTEz
OSwyMSArMTQ4LDYgQEAKIC8qIE1lc3NhZ2UgZm9yIHVzZXIgbWljcm9waG9uZSBhY2Nlc3MgcHJv
bXB0ICovCiAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgbWljcm9waG9uZT8iID0gIkFsbG93
IOKAnCVA4oCdIHRvIHVzZSB5b3VyIG1pY3JvcGhvbmU/IjsKIAotLyogQWxsb3cgYnV0dG9uIHRp
dGxlIGluIHVzZXIgbWVkaWEgcHJvbXB0ICovCi0iQWxsb3cgKHVzZXJtZWRpYSkiID0gIkFsbG93
IjsKLQotLyogRGlzYWxsb3cgYnV0dG9uIHRpdGxlIGluIHVzZXIgbWVkaWEgcHJvbXB0ICovCi0i
RG9u4oCZdCBBbGxvdyAodXNlcm1lZGlhKSIgPSAiRG9u4oCZdCBBbGxvdyI7Ci0KLS8qIE1lc3Nh
Z2UgZm9yIHNwZWVjaCByZWNvZ25pdGlvbiBwcm9tcHQgKi8KLSJBbGxvdyDigJwlQOKAnSB0byBj
YXB0dXJlIHlvdXIgYXVkaW8gYW5kIHVzZSBpdCBmb3Igc3BlZWNoIHJlY29nbml0aW9uPyIgPSAi
QWxsb3cg4oCcJUDigJ0gdG8gY2FwdHVyZSB5b3VyIGF1ZGlvIGFuZCB1c2UgaXQgZm9yIHNwZWVj
aCByZWNvZ25pdGlvbj8iOwotCi0vKiBBbGxvdyBidXR0b24gdGl0bGUgaW4gc3BlZWNoIHJlY29n
bml0aW9uIHByb21wdCAqLwotIkFsbG93IChzcGVlY2hyZWNvZ25pdGlvbikiID0gIkFsbG93IjsK
LQotLyogRGlzYWxsb3cgYnV0dG9uIHRpdGxlIGluIHNwZWVjaCByZWNvZ25pdGlvbiBwcm9tcHQg
Ki8KLSJEb27igJl0IEFsbG93IChzcGVlY2hyZWNvZ25pdGlvbikiID0gIkRvbuKAmXQgQWxsb3ci
OwotCiAvKiBXS0Vycm9yVW5rbm93biBkZXNjcmlwdGlvbiAqLwogIkFuIHVua25vd24gZXJyb3Ig
b2NjdXJyZWQiID0gIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQiOwogCkBAIC0xNjMsNiArMTU3
LDkgQEAKIC8qIE1hbHdhcmUgY29uZmlybWF0aW9uIGRpYWxvZyB0aXRsZSAqLwogIkFyZSB5b3Ug
c3VyZSB5b3Ugd2lzaCB0byBnbyB0byB0aGlzIHNpdGU/IiA9ICJBcmUgeW91IHN1cmUgeW91IHdp
c2ggdG8gZ28gdG8gdGhpcyBzaXRlPyI7CiAKKy8qIFdLRXJyb3JOYXZpZ2F0aW9uQXBwQm91bmRE
b21haW4gZGVzY3JpcHRpb24gKi8KKyJBdHRlbXB0ZWQgdG8gbmF2aWdhdGUgYXdheSBmcm9tIGFu
IGFwcC1ib3VuZCBkb21haW4gb3IgbmF2aWdhdGUgYWZ0ZXIgdXNpbmcgcmVzdHJpY3RlZCBBUElz
IiA9ICJBdHRlbXB0ZWQgdG8gbmF2aWdhdGUgYXdheSBmcm9tIGFuIGFwcC1ib3VuZCBkb21haW4g
b3IgbmF2aWdhdGUgYWZ0ZXIgdXNpbmcgcmVzdHJpY3RlZCBBUElzIjsKKwogLyogV0tFcnJvckF0
dHJpYnV0ZWRTdHJpbmdDb250ZW50RmFpbGVkVG9Mb2FkIGRlc2NyaXB0aW9uICovCiAiQXR0cmli
dXRlZCBzdHJpbmcgY29udGVudCBmYWlsZWQgdG8gbG9hZCIgPSAiQXR0cmlidXRlZCBzdHJpbmcg
Y29udGVudCBmYWlsZWQgdG8gbG9hZCI7CiAKQEAgLTMyMCwxMSArMzE3LDExIEBACiAiRGljdGF0
aW9uIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiRGljdGF0aW9uIjsKIAogLyogTWVzc2FnZSBmb3Ig
cmVxdWVzdGluZyBjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8K
LSJEbyB5b3Ugd2FudCB0byBhbGxvdyDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0
ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIgPSAiRG8geW91IHdhbnQgdG8gYWxsb3cg
4oCcJUDigJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3aGlsZSBicm93c2luZyDi
gJwlQOKAnT8iOwotCi0vKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3NzLXNpdGUgY29va2ll
IGFuZCB3ZWJzaXRlIGRhdGEgYWNjZXNzIGZvciBtdWx0aXBsZSB0aGlyZCBwYXJ0eSBkb21haW5z
LiAqLwogIkRvIHlvdSB3YW50IHRvIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB1c2Ug
Y29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIgPSAiRG8g
eW91IHdhbnQgdG8gYWxsb3cg4oCcJUDigJ0gYW5kIOKAnCVA4oCdIHRvIHVzZSBjb29raWVzIGFu
ZCB3ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IjsKIAorLyogTWVzc2FnZSBm
b3IgcmVxdWVzdGluZyBjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4g
Ki8KKyJEbyB5b3Ugd2FudCB0byBhbGxvdyDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vi
c2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIgPSAiRG8geW91IHdhbnQgdG8gYWxs
b3cg4oCcJUDigJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3aGlsZSBicm93c2lu
ZyDigJwlQOKAnT8iOworCiAvKiBCdXR0b24gdGl0bGUgaW4gU3RvcmFnZSBBY2Nlc3MgQVBJIHBy
b21wdCAqLwogIkRvbid0IEFsbG93IChjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRh
IGFjY2VzcykiID0gIkRvbid0IEFsbG93IjsKIApAQCAtMzM0LDYgKzMzMSwxMiBAQAogLyogVGl0
bGUgb2YgdGhlIERvbmUgYnV0dG9uIGZvciB6b29tZWQgZm9ybSBjb250cm9scy4gKi8KICJEb25l
IiA9ICJEb25lIjsKIAorLyogRGlzYWxsb3cgYnV0dG9uIHRpdGxlIGluIHNwZWVjaCByZWNvZ25p
dGlvbiBwcm9tcHQgKi8KKyJEb27igJl0IEFsbG93IChzcGVlY2hyZWNvZ25pdGlvbikiID0gIkRv
buKAmXQgQWxsb3ciOworCisvKiBEaXNhbGxvdyBidXR0b24gdGl0bGUgaW4gdXNlciBtZWRpYSBw
cm9tcHQgKi8KKyJEb27igJl0IEFsbG93ICh1c2VybWVkaWEpIiA9ICJEb27igJl0IEFsbG93IjsK
KwogLyogRG93bmxvYWQgQXVkaW8gVG8gRGlzayBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkRvd25s
b2FkIEF1ZGlvIiA9ICJEb3dubG9hZCBBdWRpbyI7CiAKQEAgLTQ3Miw2ICs0NzUsMTIgQEAKIC8q
IFdLRXJyb3JKYXZhU2NyaXB0UmVzdWx0VHlwZUlzVW5zdXBwb3J0ZWQgZGVzY3JpcHRpb24gKi8K
ICJKYXZhU2NyaXB0IGV4ZWN1dGlvbiByZXR1cm5lZCBhIHJlc3VsdCBvZiBhbiB1bnN1cHBvcnRl
ZCB0eXBlIiA9ICJKYXZhU2NyaXB0IGV4ZWN1dGlvbiByZXR1cm5lZCBhIHJlc3VsdCBvZiBhbiB1
bnN1cHBvcnRlZCB0eXBlIjsKIAorLyogV0tFcnJvckphdmFTY3JpcHRBcHBCb3VuZERvbWFpbiBk
ZXNjcmlwdGlvbiAqLworIkphdmFTY3JpcHQgZXhlY3V0aW9uIHRhcmdldGVkIGEgZnJhbWUgdGhh
dCBpcyBub3QgaW4gYW4gYXBwLWJvdW5kIGRvbWFpbiIgPSAiSmF2YVNjcmlwdCBleGVjdXRpb24g
dGFyZ2V0ZWQgYSBmcmFtZSB0aGF0IGlzIG5vdCBpbiBhbiBhcHAtYm91bmQgZG9tYWluIjsKKwor
LyogV0tFcnJvckphdmFTY3JpcHRJbnZhbGlkRnJhbWVUYXJnZXQgZGVzY3JpcHRpb24gKi8KKyJK
YXZhU2NyaXB0IGV4ZWN1dGlvbiB0YXJnZXRlZCBhbiBpbnZhbGlkIGZyYW1lIiA9ICJKYXZhU2Ny
aXB0IGV4ZWN1dGlvbiB0YXJnZXRlZCBhbiBpbnZhbGlkIGZyYW1lIjsKKwogLyogVW5kbyBhY3Rp
b24gbmFtZSAqLwogIkp1c3RpZnkgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJKdXN0aWZ5IjsKIApA
QCAtNTcxLDE1ICs1ODAsMTUgQEAKIC8qIE9wdGlvbiBpbiBzZWdtZW50ZWQgY29udHJvbCBmb3Ig
aW5zZXJ0aW5nIGEgbnVtYmVyZWQgbGlzdCBpbiB0ZXh0IGVkaXRpbmcgKi8KICJOdW1iZXJlZCBs
aXN0IiA9ICJOdW1iZXJlZCBsaXN0IjsKIAorLyogVGl0bGUgb2YgdGhlIE9LIGJ1dHRvbiBpbiBk
YXRlL3RpbWUgZm9ybSBjb250cm9scy4gKi8KKyJPSyAoT0sgYnV0dG9uIHRpdGxlIGluIGRhdGUv
dGltZSBwaWNrZXIpIiA9ICJPSyI7CisKIC8qIFRpdGxlIG9mIHRoZSBPSyBidXR0b24gZm9yIHRo
ZSBudW1iZXIgcGFkIGluIHpvb21lZCBmb3JtIGNvbnRyb2xzLiAqLwogIk9LIChPSyBidXR0b24g
dGl0bGUgaW4gZXh0cmEgem9vbWVkIG51bWJlciBwYWQpIiA9ICJPSyI7CiAKIC8qIE9LIGJ1dHRv
biBsYWJlbCBpbiBkb2N1bWVudCBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0ICovCiAiT0sgKGRvY3Vt
ZW50IHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQpIiA9ICJPSyI7CiAKLS8qIFRpdGxlIG9mIHRoZSBP
SyBidXR0b24gaW4gZGF0ZS90aW1lIGZvcm0gY29udHJvbHMuICovCi0iT0sgKE9LIGJ1dHRvbiB0
aXRsZSBpbiBkYXRlL3RpbWUgcGlja2VyKSIgPSAiT0siOwotCiAvKiBNZW51IGl0ZW0gbGFiZWwg
Zm9yIHRoZSB0cmFjayB0aGF0IHJlcHJlc2VudHMgZGlzYWJsaW5nIGNsb3NlZCBjYXB0aW9ucyAq
LwogIk9mZiIgPSAiT2ZmIjsKIApAQCAtOTI2LDEwICs5MzUsMTAgQEAKICJUaGlzIHdlYnNpdGUg
bWF5IHRyeSB0byB0cmljayB5b3UgaW50byBpbnN0YWxsaW5nIHNvZnR3YXJlIHRoYXQgaGFybXMg
eW91ciBicm93c2luZyBleHBlcmllbmNlLCBsaWtlIGNoYW5naW5nIHlvdXIgc2V0dGluZ3Mgd2l0
aG91dCB5b3VyIHBlcm1pc3Npb24gb3Igc2hvd2luZyB5b3UgdW53YW50ZWQgYWRzLiBPbmNlIGlu
c3RhbGxlZCwgaXQgbWF5IGJlIGRpZmZpY3VsdCB0byByZW1vdmUuIiA9ICJUaGlzIHdlYnNpdGUg
bWF5IHRyeSB0byB0cmljayB5b3UgaW50byBpbnN0YWxsaW5nIHNvZnR3YXJlIHRoYXQgaGFybXMg
eW91ciBicm93c2luZyBleHBlcmllbmNlLCBsaWtlIGNoYW5naW5nIHlvdXIgc2V0dGluZ3Mgd2l0
aG91dCB5b3VyIHBlcm1pc3Npb24gb3Igc2hvd2luZyB5b3UgdW53YW50ZWQgYWRzLiBPbmNlIGlu
c3RhbGxlZCwgaXQgbWF5IGJlIGRpZmZpY3VsdCB0byByZW1vdmUuIjsKIAogLyogSW5mb3JtYXRp
dmUgdGV4dCBmb3IgcmVxdWVzdGluZyBjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRh
IGFjY2Vzcy4gKi8KLSJUaGlzIHdpbGwgYWxsb3cg4oCcJUDigJ0gdG8gdHJhY2sgeW91ciBhY3Rp
dml0eS4iID0gIlRoaXMgd2lsbCBhbGxvdyDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFjdGl2aXR5
LiI7CisiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5b3Vy
IGFjdGl2aXR5LiIgPSAiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0
cmFjayB5b3VyIGFjdGl2aXR5LiI7CiAKIC8qIEluZm9ybWF0aXZlIHRleHQgZm9yIHJlcXVlc3Rp
bmcgY3Jvc3Mtc2l0ZSBjb29raWUgYW5kIHdlYnNpdGUgZGF0YSBhY2Nlc3MuICovCi0iVGhpcyB3
aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFjdGl2aXR5LiIg
PSAiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFj
dGl2aXR5LiI7CisiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIHRvIHRyYWNrIHlvdXIgYWN0aXZp
dHkuIiA9ICJUaGlzIHdpbGwgYWxsb3cg4oCcJUDigJ0gdG8gdHJhY2sgeW91ciBhY3Rpdml0eS4i
OwogCiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiVGlnaHRlbiBLZXJuaW5nIChVbmRvIGFjdGlv
biBuYW1lKSIgPSAiVGlnaHRlbiBLZXJuaW5nIjsKQEAgLTk1NSw2ICs5NjQsOSBAQAogLyogVHJh
bnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIlRyYW5zZm9ybWF0aW9ucyIg
PSAiVHJhbnNmb3JtYXRpb25zIjsKIAorLyogVHJhbnNsYXRlIGNvbnRleHQgbWVudSBpdGVtIHdp
dGggc2VsZWN0ZWQgd29yZCAqLworIlRyYW5zbGF0ZSDigJwlQOKAnSIgPSAiVHJhbnNsYXRlIOKA
nCVA4oCdIjsKKwogLyogVW5kbyBhY3Rpb24gbmFtZSAqLwogIlR1cm4gT2ZmIEtlcm5pbmcgKFVu
ZG8gYWN0aW9uIG5hbWUpIiA9ICJUdXJuIE9mZiBLZXJuaW5nIjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250ZXh0LmgKaW5kZXggYzIyYjFhMjFkMTEwMmEyNDBkYzA4YzU4ODIw
YWEwNGU5OWYzZjk1Ny4uY2M1YWQ2MGUwYjgxYjMxYzYyNzA1MDQ1MTc2Nzk4NTE0MWUzYTY2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udGV4dC5oCkBAIC00Myw2ICs0Myw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dChjb25zdCBTdHJpbmcmIHNlbGVj
dGVkVGV4dCkgeyBtX3NlbGVjdGVkVGV4dCA9IHNlbGVjdGVkVGV4dDsgfQogICAgIGNvbnN0IFN0
cmluZyYgc2VsZWN0ZWRUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZFRleHQ7IH0KIAor
ICAgIHZvaWQgc2V0U2VsZWN0aW9uQm91bmRzKGNvbnN0IEludFJlY3QmIGJvdW5kcykgeyBtX3Nl
bGVjdGlvbkJvdW5kcyA9IGJvdW5kczsgfQorICAgIEludFJlY3Qgc2VsZWN0aW9uQm91bmRzKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb25Cb3VuZHM7IH0KKwogI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQogICAgIHZvaWQgc2V0Q29udHJvbGxlZEltYWdlKEltYWdlKiBjb250cm9sbGVk
SW1hZ2UpIHsgbV9jb250cm9sbGVkSW1hZ2UgPSBjb250cm9sbGVkSW1hZ2U7IH0KICAgICBJbWFn
ZSogY29udHJvbGxlZEltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9jb250cm9sbGVkSW1hZ2UuZ2V0
KCk7IH0KQEAgLTUxLDYgKzU0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIaXRUZXN0UmVz
dWx0IG1faGl0VGVzdFJlc3VsdDsKICAgICBTdHJpbmcgbV9zZWxlY3RlZFRleHQ7CisgICAgSW50
UmVjdCBtX3NlbGVjdGlvbkJvdW5kczsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQog
ICAgIFJlZlB0cjxJbWFnZT4gbV9jb250cm9sbGVkSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggMjBmNDM0ZjZlODYzNzllMzY1ZGIy
NjI2YzE1YTNjNmEyYzE5OGFkNi4uOGIxYTM4NmEyOGMwZmM0ZjljYzdjZGYxZGNmODNmOGM4MDY5
MzZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cApAQCAtNTE4LDYgKzUxOCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGZy
YW1lLT5lZGl0b3IoKS5hcHBseURpY3RhdGlvbkFsdGVybmF0aXZlKHRpdGxlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUg
aGFuZGxlZCBhdCB0aGUgY2xpZW50IGxheWVyLgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgYnJlYWs7CkBAIC04MzEsNyArODMyLDcgQEAgdm9pZCBDb250ZXh0TWVudUNv
bnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICBpZiAoIW1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCku
aXNDb250ZW50RWRpdGFibGUoKSAmJiBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pigqbm9kZSkp
CiAgICAgICAgIHJldHVybjsKICNlbmRpZgotICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3Vt
ZW50KCkuZnJhbWUoKTsKKyAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihub2RlLT5kb2N1bWVu
dCgpLmZyYW1lKCkpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtODQy
LDkgKzg0MywxNSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogI2Vu
ZGlmCiAKICAgICBpZiAoIW1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuaXNDb250ZW50RWRpdGFi
bGUoKSkgewotICAgICAgICBTdHJpbmcgc2VsZWN0ZWRTdHJpbmcgPSBtX2NvbnRleHQuaGl0VGVz
dFJlc3VsdCgpLnNlbGVjdGVkVGV4dCgpOworICAgICAgICBhdXRvIHNlbGVjdGVkU3RyaW5nID0g
bV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5zZWxlY3RlZFRleHQoKTsKICAgICAgICAgbV9jb250
ZXh0LnNldFNlbGVjdGVkVGV4dChzZWxlY3RlZFN0cmluZyk7CiAKKyAgICAgICAgaWYgKGF1dG8g
dmlldyA9IG1ha2VSZWZQdHIoZnJhbWUtPnZpZXcoKSk7IHZpZXcgJiYgIXNlbGVjdGVkU3RyaW5n
LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgYXV0byBzZWxlY3Rpb25Cb3VuZHNJbkNvbnRlbnRD
b29yZGluYXRlcyA9IGVuY2xvc2luZ0ludFJlY3QoZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlv
bkJvdW5kcygpKTsKKyAgICAgICAgICAgIGlmICghc2VsZWN0aW9uQm91bmRzSW5Db250ZW50Q29v
cmRpbmF0ZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIG1fY29udGV4dC5zZXRTZWxlY3Rp
b25Cb3VuZHModmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHNlbGVjdGlvbkJvdW5kc0luQ29udGVu
dENvb3JkaW5hdGVzKSk7CisgICAgICAgIH0KKwogICAgICAgICBGcmFtZUxvYWRlciYgbG9hZGVy
ID0gZnJhbWUtPmxvYWRlcigpOwogICAgICAgICBVUkwgbGlua1VSTCA9IG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCk7CiAgICAgICAgIGlmICghbGlua1VSTC5pc0Vt
cHR5KCkpIHsKQEAgLTkwOCw2ICs5MTUsMTAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OnBvcHVsYXRlKCkKIAogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKExvb2tVcEluRGlj
dGlvbmFyeUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogI2VuZGlmCisjaWYgSEFWRShUUkFO
U0xBVElPTl9VSV9TRVJWSUNFUykKKyAgICAgICAgICAgICAgICAgICAgQ29udGV4dE1lbnVJdGVt
IFRyYW5zbGF0ZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlLCBj
b250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGUoc2VsZWN0ZWRTdHJpbmcpKTsKKyAgICAgICAgICAg
ICAgICAgICAgYXBwZW5kSXRlbShUcmFuc2xhdGVJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsK
KyNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKEdUSykKICAgICAgICAgICAgICAgICAgICAgYXBwZW5k
SXRlbShTZWFyY2hXZWJJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKQEAgLTE0NjMsNiArMTQ3
NCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQo
Q29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBz
aG91bGRFbmFibGUgJiYgIG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkubWVkaWFNdXRlZCgpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2U6CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmNwcAppbmRleCA4Mzc2YTFmNjk4MGU3YjllMTRjYzZjOTI3ZmI2N2U1Mjg0NDI1MDQ5
Li41YWUwMjVlOTE4MGM1ZGZiMjE5NjJlMTdmMTllNjcwNGQ1ZDZkNDI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKQEAgLTI0Nyw2ICsyNDcsNyBAQCBi
b29sIGlzVmFsaWRDb250ZXh0TWVudUFjdGlvbihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAg
ICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51Ogog
ICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVv
RW5oYW5jZWRGdWxsc2NyZWVuOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRl
eHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250
ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNv
bnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6
Q29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uaAppbmRleCAxNWZhODdkYTYwNzQ5YTE3ODhmYzFmMThjMTUxMzQw
MTFhOTViMzgzLi5kYTFhMGFlNzJiYTM0MmEzMzljYTEzMTFjYTdmOTU2YmM4YWIzYTE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMTUwLDYgKzE1MCw3
IEBAIGVudW0gQ29udGV4dE1lbnVBY3Rpb24gewogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhp
Z2hsaWdodFRvTmV3R3JvdXAsCiAjZW5kaWYKICAgICBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJ
bWFnZSwKKyAgICBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGUsCiAgICAgQ29udGV4dE1lbnVJ
dGVtQmFzZUN1c3RvbVRhZyA9IDUwMDAsCiAgICAgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRh
ZyA9IDU5OTksCiAgICAgQ29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnID0gMTAwMDAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggNGNj
ZDExYjY1MjUzMDM4YmQwY2I0NmZjNDE0NzU4MDgwYmMxY2FmZC4uYzVjOWVkYjk2YjNmNDkyNzU1
MDQzYzFhOTdlZmZlODFhMzgzOTg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgU3RyaW5nIGxvY2FsaXplZFN0cmlu
Zyhjb25zdCBjaGFyKiBrZXkpCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAotc3RhdGlj
IFN0cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9y
aWdpbmFsKQorc3RhdGljIFN0cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JNZW51SXRlbShjb25zdCBT
dHJpbmcmIG9yaWdpbmFsKQogewogICAgIC8vIFRydW5jYXRlIHRoZSBzdHJpbmcgaWYgaXQncyB0
b28gbG9uZy4gVGhpcyBudW1iZXIgaXMgcm91Z2hseSB0aGUgc2FtZSBhcyB0aGUgb25lIHVzZWQg
YnkgQXBwS2l0LgogICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9v
a3VwTWVudUl0ZW0gPSAyNDsKQEAgLTIzMiwxNSArMjMyLDI1IEBAIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJ
bkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxlY3RlZFN0cmluZykKIHsKICNpZiBVU0UoQ0Yp
Ci0gICAgYXV0byBzZWxlY3RlZENGU3RyaW5nID0gdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVu
dUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgYXV0byBzZWxlY3Rl
ZENGU3RyaW5nID0gdHJ1bmNhdGVkU3RyaW5nRm9yTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNy
ZWF0ZUNGU3RyaW5nKCk7CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
Q0ZTVFJJTkcoIkxvb2sgVXAg4oCcJUDigJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3
aXRoIHNlbGVjdGVkIHdvcmQiKSwgc2VsZWN0ZWRDRlN0cmluZy5nZXQoKSk7CiAjZWxpZiBVU0Uo
R0xJQikKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIkxv
b2sgVXAg4oCcJXPigJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVk
IHdvcmQiKSwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcp
LnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJ
X1NUUklORygiTG9vayBVcCDigJwlc+KAnSIsICJMb29rIFVwIGNvbnRleHQgbWVudSBpdGVtIHdp
dGggc2VsZWN0ZWQgd29yZCIpLCB0cnVuY2F0ZWRTdHJpbmdGb3JNZW51SXRlbShzZWxlY3RlZFN0
cmluZykudXRmOCgpLmRhdGEoKSk7CiAjZWxzZQotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJM
b29rIFVwIOKAnDxzZWxlY3Rpb24+4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0
aCBzZWxlY3RlZCB3b3JkIikucmVwbGFjZSgiPHNlbGVjdGlvbj4iLCB0cnVuY2F0ZWRTdHJpbmdG
b3JMb29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmluZykpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJMb29rIFVwIOKAnDxzZWxlY3Rpb24+4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0
ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIikucmVwbGFjZSgiPHNlbGVjdGlvbj4iLCB0cnVuY2F0ZWRT
dHJpbmdGb3JNZW51SXRlbShzZWxlY3RlZFN0cmluZykpOwogI2VuZGlmCiB9CiAKKyNpZiBIQVZF
KFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVHJh
bnNsYXRlKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpCit7CisgICAgYXV0byBzZWxlY3Rl
ZENGU3RyaW5nID0gdHJ1bmNhdGVkU3RyaW5nRm9yTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNy
ZWF0ZUNGU3RyaW5nKCk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
Q0ZTVFJJTkcoIlRyYW5zbGF0ZSDigJwlQOKAnSIsICJUcmFuc2xhdGUgY29udGV4dCBtZW51IGl0
ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOworfQorCisj
ZW5kaWYKKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKIHsKICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19XSVRIX01ORU1PTklDKCJPcGVuIExpbmsiLCAiX09wZW4gTGluayIs
ICJPcGVuIExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCA3YzQyODRlYTRkMDViNjU3MTU1NTYyZjgxYmUyNWNi
YWFiN2IyMzlkLi44ZmI1MWE4OWVkNDJjYzE1MzY4NzAyZTIwM2VhMGU3NDgxN2FhYTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0zNTQsNiArMzU0
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UoKTsKICNlbmRpZgogCisjaWYgSEFWRShUUkFOU0xB
VElPTl9VSV9TRVJWSUNFUykKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRl
KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpOworI2VuZGlmCisKICNpZiBVU0UoR0xJQikg
JiYgZGVmaW5lZChHRVRURVhUX1BBQ0tBR0UpCiAjZGVmaW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5n
LCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVkU3RyaW5nKF8oc3RyaW5nKSkKICNkZWZp
bmUgV0VCX1VJX1NUUklOR19LRVkoc3RyaW5nLCBrZXksIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjps
b2NhbGl6ZWRTdHJpbmcoQ18oa2V5LCBzdHJpbmcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oCmluZGV4IGMxZTkzM2ViNTY1Zjdk
NDAzZjY4MTMzNWY3ZDM0YjFmYjBjOGRmNGIuLjBhOTE4OGM5ZjZhM2UxZmFhNWIzMzQ2YmY1MTIy
YjY4NjE5ZThjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ29u
dGV4dE1lbnVJdGVtVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Nv
bnRleHRNZW51SXRlbVR5cGVzLmgKQEAgLTEyNiw2ICsxMjYsNyBAQCBlbnVtIHsKICAgICBrV0tD
b250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1cnJlbnRHcm91cCwKICAgICBrV0tDb250
ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05ld0dyb3VwLAogICAgIGtXS0NvbnRleHRNZW51
SXRlbVRhZ1JldmVhbEltYWdlLAorICAgIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZSwK
ICAgICBrV0tDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcgPSAxMDAwMAogfTsKIHR5
cGVkZWYgdWludDMyX3QgV0tDb250ZXh0TWVudUl0ZW1UYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IGNjY2U0ODkwZDUwYmNlYzZjMDhmYTU5
ZThlOTY1ZWU5NmEwNTE4ZGUuLmVlNDI0NWMyZjFlZDllNWQ5ZjM4Y2MxOTkwYzgwNGY5MjUxMGIx
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBA
IC01NDcsNiArNTQ3LDggQEAgaW5saW5lIFdLQ29udGV4dE1lbnVJdGVtVGFnIHRvQVBJKFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRN
ZW51SXRlbVRhZ1NoYXJlTWVudTsKICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRh
Z1JldmVhbEltYWdlOgogICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2U7CisgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6Cisg
ICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgaWYgKGFjdGlvbiA8IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbUJhc2VBcHBs
aWNhdGlvblRhZyAmJiAhKGFjdGlvbiA+PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3Vz
dG9tVGFnICYmIGFjdGlvbiA8PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFn
KSkKICAgICAgICAgICAgIExPR19FUlJPUigiQ29udGV4dE1lbnVBY3Rpb24gJWkgaXMgYW4gdW5r
bm93biB0YWcgYnV0IGlzIGJlbG93IHRoZSBhbGxvd2FibGUgY3VzdG9tIHRhZyB2YWx1ZSBvZiAl
aSIsIGFjdGlvbiwgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnKTsK
QEAgLTc0OSw2ICs3NTEsOCBAQCBpbmxpbmUgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gdG9J
bXBsKFdLQ29udGV4dE1lbnVJdGVtVGFnIHRhZykKICNlbmRpZgogICAgIGNhc2Uga1dLQ29udGV4
dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UYWdSZXZlYWxJbWFnZTsKKyAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1Ry
YW5zbGF0ZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
bGF0ZTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5UaGlzV2luZG93
OgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmICh0YWcgPCBrV0tDb250ZXh0TWVudUl0ZW1CYXNl
QXBwbGljYXRpb25UYWcgJiYgISh0YWcgPj0gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtQmFzZUN1
c3RvbVRhZyAmJiB0YWcgPD0gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZykp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRh
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCmlu
ZGV4IDhjYzU2MzViNzQ3YjMxNDFhM2Q3MWE5MjhmZDU3MWIyZjBhYWVjNTIuLjg1ZjY1NDdhYTRj
NzQ0Y2RjN2Q2MTAwODU1NDY0ZmNjYjRjZTBkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCkBAIC01NCw2ICs1NCw3IEBAIENvbnRleHRN
ZW51Q29udGV4dERhdGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIG1lbnVMb2NhCiAgICAgLCBtX21lbnVJdGVtcyhtZW51SXRlbXMpCiAgICAgLCBtX3dl
YkhpdFRlc3RSZXN1bHREYXRhKGNvbnRleHQuaGl0VGVzdFJlc3VsdCgpLCB0cnVlKQogICAgICwg
bV9zZWxlY3RlZFRleHQoY29udGV4dC5zZWxlY3RlZFRleHQoKSkKKyAgICAsIG1fc2VsZWN0aW9u
Qm91bmRzKGNvbnRleHQuc2VsZWN0aW9uQm91bmRzKCkpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCiAgICAgLCBtX3NlbGVjdGlvbklzRWRpdGFibGUoZmFsc2UpCiAjZW5kaWYKQEAgLTc5
LDYgKzgwLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRleHREYXRhOjplbmNvZGUoSVBDOjpFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9tZW51SXRlbXM7CiAgICAgZW5j
b2RlciA8PCBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOwogICAgIGVuY29kZXIgPDwgbV9zZWxlY3Rl
ZFRleHQ7CisgICAgZW5jb2RlciA8PCBtX3NlbGVjdGlvbkJvdW5kczsKIAogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKQEAg
LTEwOCw2ICsxMTAsOSBAQCBib29sIENvbnRleHRNZW51Q29udGV4dERhdGE6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIENvbnRleHRNZW51Q29udGV4dERhdAogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0Lm1fc2VsZWN0ZWRUZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9zZWxlY3Rpb25Cb3VuZHMpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
YW5kbGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250
ZXh0RGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5o
CmluZGV4IGY3ZDBmZTFkZWQ3YTIwMTg3YTkwN2RhZDlhYzBlNjJjODYzODYzMGYuLjE1NzJmM2E5
OTM0NzNjY2MyNTY5YjFhNTU5YjJhYWQ0OTQyY2I5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgog
ICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhJiB3ZWJIaXRUZXN0UmVzdWx0RGF0YSgpIHsgcmV0dXJu
IG1fd2ViSGl0VGVzdFJlc3VsdERhdGE7IH0KICAgICBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0
YSYgd2ViSGl0VGVzdFJlc3VsdERhdGEoKSBjb25zdCB7IHJldHVybiBtX3dlYkhpdFRlc3RSZXN1
bHREYXRhOyB9CiAgICAgY29uc3QgU3RyaW5nJiBzZWxlY3RlZFRleHQoKSBjb25zdCB7IHJldHVy
biBtX3NlbGVjdGVkVGV4dDsgfQorICAgIFdlYkNvcmU6OkludFJlY3Qgc2VsZWN0aW9uQm91bmRz
KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb25Cb3VuZHM7IH0KIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgIENvbnRleHRNZW51Q29udGV4dERhdGEoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBzZWxlY3Rpb25E
YXRhLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VsZWN0ZWRUZWxlcGhvbmVOdW1iZXJzLCBib29s
IGlzRWRpdGFibGUpCkBAIC05MSw2ICs5Miw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJIaXRUZXN0
UmVzdWx0RGF0YSBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOwogICAgIFN0cmluZyBtX3NlbGVjdGVk
VGV4dDsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IG1fc2VsZWN0aW9uQm91bmRzOwogCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gbV9jb250
cm9sbGVkSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tNZW51SXRlbUlkZW50aWZpZXJzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVycy5tbQppbmRleCBjMmE5NGMzY2M0OTAwMjMzNzU4
ZTA1ZDQ1YTljYWQzZjY5YjRiNmFlLi5hZGQ3OWZlZjk2NmM1NzdkM2Q0YjAzMWRiOTQ3Y2Q1ODY4
ZGM0MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tN
ZW51SXRlbUlkZW50aWZpZXJzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnMubW0KQEAgLTU1LDMgKzU1LDUgQEAgTlNTdHJpbmcg
KiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVGdWxsU2NyZWVuID0gQCJXS01lbnVJ
dGVtSWRlbnRpZmllclQKIAogTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJT
aGFyZU1lbnUgPSBAIldLTWVudUl0ZW1JZGVudGlmaWVyU2hhcmVNZW51IjsKIE5TU3RyaW5nICog
Y29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNoTWVudSA9IEAiV0tNZW51SXRlbUlkZW50
aWZpZXJTcGVlY2hNZW51IjsKKworTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJUcmFuc2xhdGUgPSBAIldLTWVudUl0ZW1JZGVudGlmaWVyVHJhbnNsYXRlIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmll
cnNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRl
bUlkZW50aWZpZXJzUHJpdmF0ZS5oCmluZGV4IDY5NmVhYjI5YmJjNGUxZTY4ZWI2Y2JmM2E5MWQy
MGRiN2UzNTM3MzguLmI2MWQ0NWUzNmRhMGNmMjFmODA3MTdiYTMzNjVlNDY4Yjc4YjEzYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRl
bnRpZmllcnNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaApAQCAtNTcsMyArNTcsNSBAQCBXS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNoTWVu
dSBXS19BUElfQVZBSUxBQgogCiBXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyQWRkSGlnaGxpZ2h0VG9DdXJyZW50R3JvdXAgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIFdLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJBZGRIaWdobGlnaHRUb05l
d0dyb3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CisKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJUcmFuc2xhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0KaW5kZXggMzBlZGFjNGY5ZjFkZDZmOGEyMGFkNDJkMDk5MTgzYTc3YzQ0
MjU3NC4uNDBiZjQ5ODY5ZGYyY2JjZGM4ZWVkYzk3YWVkYmMwNzNkZDJjMjI1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAg
LTU5MCw3ICs1OTAsOCBAQCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBXZWJQYWdlUHJv
eHk6OmNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJveEV4dGVucwogICAgIHJldHVybiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSgpOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGFu
ZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSgpCiB7CkBAIC02MDEsNyArNjAyLDE3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKCkKICAgICByZXZlYWxF
eHRyYWN0ZWRJbWFnZUluUHJldmlld1BhbmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50
b29sVGlwVGV4dCk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYg
RU5BQkxFKENPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
CisKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQorCitib29sIFdlYlBhZ2VQcm94
eTo6Y2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHBhZ2VDbGllbnQoKS5jYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCk7Cit9CisKKyNl
bmRpZiAvLyBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQorI2VuZGlmIC8vIEVOQUJMRShD
T05URVhUX01FTlVTKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mbyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIGJvb2wsIGNvbnN0IFN0
cmluZyYsIGRvdWJsZSwgZG91YmxlLCB1aW50NjRfdCk+JiYgY2FsbGJhY2spCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCAwNTZjMzllNGI2M2Zi
Y2Q4ZDk5NDM2YTYxNjY0ZmUwMDM1NzE1MmYzLi44NTg1NDRkMjdkNzA0YjNmMDIzOGZiOTg4YTU1
NmQ1YmQ4ZjBjYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKQEAgLTYzOCw2ICs2MzgsMTEgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlRE9NUGFz
dGVSZXF1ZXN0V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKTsKICAg
ICBOU01lbnUgKmRvbVBhc3RlTWVudSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tUGFzdGVNZW51Lmdl
dCgpOyB9CiAKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKKyAgICBib29sIGNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oKSBj
b25zdDsKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBib3VuZHNJblZpZXcsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBtZW51TG9jYXRpb24pOworI2VuZGlmCisKIHByaXZhdGU6CiAjaWYgSEFW
RShUT1VDSF9CQVIpCiAgICAgdm9pZCBzZXRVcFRleHRUb3VjaEJhcihOU1RvdWNoQmFyICopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBlNmZi
NzgxMGY5NjU3OGVlMjNmMWY5YmEyMzFhYTE0MzY5OTlkODkyLi44YWEwNDQ4ZjliMzA5MzMzMjcz
MTlkZmNjOTdjY2JlMTdjODgyM2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQpAQCAtMTM5LDYgKzEzOSwxMyBAQAogI2ltcG9ydCA8V2ViQ29yZS9J
bWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KICNlbmRpZgogCisjaWYgSEFWRShUUkFOU0xBVElPTl9V
SV9TRVJWSUNFUykKKyNpbXBvcnQgPFRyYW5zbGF0aW9uVUlTZXJ2aWNlcy9MVFVJVHJhbnNsYXRp
b25WaWV3Q29udHJvbGxlci5oPgorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9O
QUwoVHJhbnNsYXRpb25VSVNlcnZpY2VzKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKFRyYW5z
bGF0aW9uVUlTZXJ2aWNlcywgTFRVSVRyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXIpCisjZW5kaWYK
KwogI2lmIEhBVkUoVE9VQ0hfQkFSKSAmJiBFTkFCTEUoV0VCX1BMQVlCQUNLX0NPTlRST0xTX01B
TkFHRVIpCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0KQogU09GVF9MSU5LX0NMQVNTKEFWS2l0
LCBBVlRvdWNoQmFyUGxheWJhY2tDb250cm9sc1Byb3ZpZGVyKQpAQCAtNTU3NCw2ICs1NTgxLDQ3
IEBAIGJvb2wgV2ViVmlld0ltcGw6OmVmZmVjdGl2ZVVzZXJJbnRlcmZhY2VMZXZlbElzRWxldmF0
ZWQoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VS
VklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorCitib29sIFdlYlZpZXdJbXBsOjpjYW5I
YW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gVHJhbnNs
YXRpb25VSVNlcnZpY2VzTGlicmFyeSgpICYmIFtnZXRMVFVJVHJhbnNsYXRpb25WaWV3Q29udHJv
bGxlckNsYXNzKCkgaXNBdmFpbGFibGVdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpoYW5kbGVD
b250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgSW50UmVjdCYg
Ym91bmRzSW5WaWV3LCBjb25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9uKQoreworICAgIGlmICgh
Y2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpKSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byB2aWV3ID0gbV92
aWV3LmdldCgpOworICAgIGF1dG8gdHJhbnNsYXRpb25WaWV3Q29udHJvbGxlciA9IGFkb3B0TlMo
W2FsbG9jTFRVSVRyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAg
ICBhdXRvIHRleHRUb1RyYW5zbGF0ZSA9IGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxs
b2NdIGluaXRXaXRoU3RyaW5nOnRleHRdKTsKKyAgICBbdHJhbnNsYXRpb25WaWV3Q29udHJvbGxl
ciBzZXRUZXh0OnRleHRUb1RyYW5zbGF0ZS5nZXQoKV07CisgICAgaWYgKE5TRXF1YWxTaXplcyhb
dHJhbnNsYXRpb25WaWV3Q29udHJvbGxlciBwcmVmZXJyZWRDb250ZW50U2l6ZV0sIE5TWmVyb1Np
emUpKQorICAgICAgICBbdHJhbnNsYXRpb25WaWV3Q29udHJvbGxlciBzZXRQcmVmZXJyZWRDb250
ZW50U2l6ZTpOU01ha2VTaXplKDQwMCwgNDAwKV07CisKKyAgICBhdXRvIHBvcG92ZXIgPSBhZG9w
dE5TKFtbTlNQb3BvdmVyIGFsbG9jXSBpbml0XSk7CisgICAgW3BvcG92ZXIgc2V0QmVoYXZpb3I6
TlNQb3BvdmVyQmVoYXZpb3JUcmFuc2llbnRdOworICAgIFtwb3BvdmVyIHNldEFwcGVhcmFuY2U6
W3ZpZXcgZWZmZWN0aXZlQXBwZWFyYW5jZV1dOworICAgIFtwb3BvdmVyIHNldEFuaW1hdGVzOllF
U107CisgICAgW3BvcG92ZXIgc2V0Q29udGVudFZpZXdDb250cm9sbGVyOnRyYW5zbGF0aW9uVmll
d0NvbnRyb2xsZXIuZ2V0KCldOworICAgIFtwb3BvdmVyIHNldENvbnRlbnRTaXplOlt0cmFuc2xh
dGlvblZpZXdDb250cm9sbGVyIHByZWZlcnJlZENvbnRlbnRTaXplXV07CisKKyAgICBOU1JlY3RF
ZGdlIHByZWZlcnJlZEVkZ2U7CisgICAgYXV0byBhaW0gPSBtZW51TG9jYXRpb24ueCgpOworICAg
IGF1dG8gaGlnaGxpZ2h0ID0gYm91bmRzSW5WaWV3LmNlbnRlcigpLngoKTsKKyAgICBpZiAoYWlt
ID09IGhpZ2hsaWdodCkKKyAgICAgICAgcHJlZmVycmVkRWRnZSA9IFt2aWV3IHVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb25dID09IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0
VG9MZWZ0ID8gTlNSZWN0RWRnZU1pblggOiBOU1JlY3RFZGdlTWF4WDsKKyAgICBlbHNlCisgICAg
ICAgIHByZWZlcnJlZEVkZ2UgPSBhaW0gPiBoaWdobGlnaHQgPyBOU1JlY3RFZGdlTWF4WCA6IE5T
UmVjdEVkZ2VNaW5YOworCisgICAgW3BvcG92ZXIgc2hvd1JlbGF0aXZlVG9SZWN0OmJvdW5kc0lu
VmlldyBvZlZpZXc6dmlldy5nZXQoKSBwcmVmZXJyZWRFZGdlOnByZWZlcnJlZEVkZ2VdOworfQor
CisjZW5kaWYgLy8gSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDBhY2VjNzE1ZmU0NmQ3
ODM3ZmQyZDJlZDI0ZDAyMjdjNmRmNDNmYTUuLmI2YzA3NWIxYTk1OTJiMWI1MzQ1YWFlMmUwNzNl
NmIyM2Y1ZDA2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTYwMiw2
ICs2MDIsMTEgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIFN0cmlu
ZyB0aGVtZU5hbWUoKSBjb25zdCA9IDA7CiAjZW5kaWYKKworI2lmIEhBVkUoVFJBTlNMQVRJT05f
VUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHZpcnR1YWwgYm9vbCBj
YW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgYm91bmRzSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgbWVudUxvY2F0aW9uKSA9IDA7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOGY0M2JiODg2
NGUzOTIwNjdlMThlYjE4MzdjMDUwYmEzN2Q3MmJhNi4uNTgwMDMwZWVlN2VkMWE2MDQzZmRkZTg0
NDMwNjVlODdhZTNlNGMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC02NzIyLDYgKzY3MjIsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6
CisjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKKyAgICAgICAgcGFnZUNsaWVudCgp
LmhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24obV9hY3RpdmVDb250ZXh0TWVudUNvbnRleHRE
YXRhLnNlbGVjdGVkVGV4dCgpLCBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEuc2VsZWN0
aW9uQm91bmRzKCksIG1fYWN0aXZlQ29udGV4dE1lbnVDb250ZXh0RGF0YS5tZW51TG9jYXRpb24o
KSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJl
YWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3OWUy
ODk3ZjAzNjIxZTZkYTgwN2FhYTEzNGUxNDFkNDUyNDViZjlkLi41MDg1OTcyYjJjYTM1OTExZDZi
MDAwOTc2OTY5MDhkYTk3OTNhYmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTg2Niw2ICsxODY2LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0SW1hZ2VF
eHRyYWN0aW9uUHJldmlldygpOwogI2VuZGlmCiAKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NF
UlZJQ0VTKQorICAgIGJvb2wgY2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0
OworI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNldExhc3ROYXZpZ2F0
aW9uV2FzQXBwQm91bmQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdm9pZCBsYXN0
TmF2aWdhdGlvbldhc0FwcEJvdW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRl
eCBkNTBkOTMxMGU4YzAwZTlmMmFhOGY3MjM0YjUxMjlkZTQwN2YwZjUyLi5jMzdlYjIzZmY1NDA2
ZTkzMDQzZjlmNzg4NmJmZTYwMjJhY2Y5OTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMjc2LDYgKzI3NiwxMSBAQCBwcml2YXRl
OgogICAgIFdlYkNvcmU6OkNvbG9yIGFjY2VudENvbG9yKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAor
I2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVT
KQorICAgIGJvb2wgY2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbihjb25zdCBTdHJpbmcm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBvdmVy
cmlkZTsKKyNlbmRpZgorCiAgICAgTlNWaWV3ICptX3ZpZXc7CiAgICAgV2Vha1B0cjxXZWJWaWV3
SW1wbD4gbV9pbXBsOwogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCA1ODQ5YTJk
OTk5NjRiOGMzYmNkMDM0ZmNmODNhNjBmMmI5MTYzZGRkLi41NmI0NDAyMTM1MzJlM2I1ZjlmM2Y2
M2JhNDlmNDk0Yjk4YzFkOTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC05OTIsNiArOTkyLDIwIEBAIFdlYkNvcmU6OkNvbG9y
IFBhZ2VDbGllbnRJbXBsOjphY2NlbnRDb2xvcigpCiB9CiAjZW5kaWYKIAorI2lmIEhBVkUoVFJB
TlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorCitib29sIFBh
Z2VDbGllbnRJbXBsOjpjYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9pbXBsLT5jYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCk7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBJbnRSZWN0JiBib3VuZHNJblZpZXcsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBtZW51TG9jYXRpb24pCit7CisgICAgbV9pbXBsLT5oYW5kbGVDb250ZXh0
TWVudVRyYW5zbGF0aW9uKHRleHQsIGJvdW5kc0luVmlldywgbWVudUxvY2F0aW9uKTsKK30KKwor
I2VuZGlmIC8vIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhU
X01FTlVTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51
UHJveHlNYWMubW0KaW5kZXggOGYyYTdkNDZjNTM5ODE4YTU4YWRkNGJhODA4ZGM2MWFiNDkzNjUz
ZC4uMjI0NDY2ODFkMmY4MGIzMGNhZjg1Yzc3MTQyMTZhZGFhMTRhOTEyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0K
QEAgLTM2Miw2ICszNjIsMTIgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250
ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICAgICAgfSk7
CiAgICAgfQogCisgICAgaWYgKCFwYWdlKCktPmNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRp
b24oKSB8fCBpc1BvcG92ZXIpIHsKKyAgICAgICAgZmlsdGVyZWRJdGVtcy5yZW1vdmVBbGxNYXRj
aGluZyhbXSAoYXV0byYgaXRlbSkgeworICAgICAgICAgICAgcmV0dXJuIGl0ZW0uYWN0aW9uKCkg
PT0gQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOworICAgICAgICB9KTsKKyAgICB9CisKICAg
ICBhdXRvIHNwYXJzZU1lbnVJdGVtcyA9IHJldGFpblB0cihbTlNQb2ludGVyQXJyYXkgc3Ryb25n
T2JqZWN0c1BvaW50ZXJBcnJheV0pOwogICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtlQmxv
Y2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0
ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUp
LCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11
dGFibGUgewogICAgICAgICBBU1NFUlQoaW5kZXggPCBbc3BhcnNlTWVudUl0ZW1zIGNvdW50XSk7
CkBAIC00NjAsNiArNDY2LDkgQEAgc3RhdGljIE5TU3RyaW5nICptZW51SXRlbUlkZW50aWZpZXIo
Y29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9GdWxsc2NyZWVuOgogICAgICAgICByZXR1cm4gX1dLTWVu
dUl0ZW1JZGVudGlmaWVyVG9nZ2xlRnVsbFNjcmVlbjsKIAorICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnVHJhbnNsYXRlOgorICAgICAgICByZXR1cm4gX1dLTWVudUl0ZW1JZGVudGlmaWVyVHJh
bnNsYXRlOworCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU6CiAgICAgICAg
IHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZpZXJTaGFyZU1lbnU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IGRiOTZiNDA0ODA2MDM4
N2E5NDM2MzQ4ZmQyZDM5MGM0NDg4MWUzODEuLjJiOGEyODIwZjgwOWI4YWIzOTVmNjZmZDgwOGY3
YWQwOGRlZDNhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbQpAQCAtNjE1LDYgKzYxNSw3IEBAIHN0YXRpYyBPcHRpb25hbDxOU0ludGVnZXI+
IHRvVGFnKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuOgogICAgICAgICByZXR1
cm4gV2ViTWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbjsKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnVHJhbnNsYXRlOgogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnIC4uLiBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9t
VGFnOgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGVjMmZmNDE1NGRmZjljYjM0ZWEwZjViZjg1OGVjZWNkMzM5NDZhMTYuLmJkYmY4ZWNkZmJmMmMx
ZjlkNGRkZDQ5MmI1ODliNTc4NThhMjJlMjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMy0wOCAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEFkZCBh
IHdheSB0byB0cmlnZ2VyIHdlYnBhZ2UgdHJhbnNsYXRpb24gdmlhIHRoZSBjb250ZXh0IG1lbnUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjk1Mwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM5MDE5Njc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0IGFuIEFQSSB0ZXN0LiBUaGlzIG5ldyBl
bnVtIHZhbHVlIGlzIG5vdyB0aGUgbmV3IGxhc3QgdmFsaWQgaXRlbSB2YWx1ZS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZXh0TWVudUFjdGlvbi5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0wMy0wOCAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0
aW5nIHIyNzMwODQuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29udGV4dE1lbnVBY3Rpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0NvbnRleHRNZW51QWN0aW9uLmNwcAppbmRleCAzNDA2ZmMxOGVkZDE1YTY0OGVhZTA3NTRl
YTc4OTNhZjkyYjUyNzg0Li4yNjg0ZTg1Yjk4ZWM1N2NlYTEwZjFkM2EzOTBlMzE2YzZiYjNlMDQ5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1l
bnVBY3Rpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZXh0TWVudUFjdGlvbi5jcHAKQEAgLTM3LDkgKzM3LDkgQEAgVEVTVChXZWJDb3JlLCBDb250ZXh0
TWVudUFjdGlvbl9Jc1ZhbGlkRW51bSkKICAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVt
PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6
Q29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24pKTsKICAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFs
aWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFj
dGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24gKyAxKSk7CiAKLSAgICBFWFBFQ1RfVFJV
RShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpD
b250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UgLSAxKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
bj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbElt
YWdlKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFdURjo6aXNWYWxpZEVudW08V2ViQ29yZTo6Q29udGV4
dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1U
YWdSZXZlYWxJbWFnZSArIDEpKTsKKyAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdl
YkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29u
dGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlIC0gMSkpOworICAgIEVYUEVDVF9UUlVFKFdURjo6aXNW
YWxpZEVudW08V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGUpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
V1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29u
dGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZSArIDEpKTsKIAogICAg
IEVYUEVDVF9GQUxTRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9u
PihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRh
ZyAtIDEpKTsKICAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRl
eHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVt
QmFzZUN1c3RvbVRhZykpOwo=
</data>
<flag name="commit-queue"
          id="441784"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422640</attachid>
            <date>2021-03-08 17:05:15 -0800</date>
            <delta_ts>2021-03-08 18:27:13 -0800</delta_ts>
            <desc>Fix non-internal builds</desc>
            <filename>bug-222953-20210308170514.patch</filename>
            <type>text/plain</type>
            <size>40758</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc1N2ZkMDY3ODMxMGMz
NmQ2ZDFlODg1ZmJmMjhmYWMzMmU3ZDM2My4uYjNlMjAxYzNmNDA1MWYzYTdkNTJjN2QyYzg1Y2Iy
YmYzMDQ4NWU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTAzLTA4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRk
IGEgd2F5IHRvIHRyaWdnZXIgd2VicGFnZSB0cmFuc2xhdGlvbiB2aWEgdGhlIGNvbnRleHQgbWVu
dQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTUz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MzkwMTk2Nz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgYSBXZWJDb3JlIGVudW0gZm9y
IHRoZSBuZXcgY29udGV4dCBtZW51IGl0ZW0uIEFkZGl0aW9uYWxseSwgdXBkYXRlIGBMb2NhbGl6
YWJsZS5zdHJpbmdzYCBieSByZS1ydW5uaW5nCisgICAgICAgIGBUb29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJraXQtbG9jYWxpemFibGUtc3RyaW5nc2AuCisKKyAgICAgICAgKiBlbi5scHJvai9Mb2Nh
bGl6YWJsZS5zdHJpbmdzOgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250ZXh0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQ6OnNldFNlbGVjdGlvbkJvdW5kcyk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQ6OnNlbGVjdGlvbkJvdW5kcyBj
b25zdCk6CisKKyAgICAgICAgQWRkIGEgbmV3IG1lbWJlciB0byByZXByZXNlbnQgdGhlIHRleHQg
c2VsZWN0aW9uIGJvdW5kcyBpbiByb290IHZpZXcgY29vcmRpbmF0ZXMuCisKKyAgICAgICAgKiBw
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKworICAgICAgICBDb21w
dXRlIGFuZCBzZXQgdGV4dCBzZWxlY3Rpb24gYm91bmRzLgorCisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxp
ZENvbnRleHRNZW51QWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
aDoKKworICAgICAgICBBZGQgdGhlIG5ldyBlbnVtIHZhbHVlLgorCisgICAgICAgICogcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0cnVuY2F0ZWRTdHJp
bmdGb3JNZW51SXRlbSk6CisKKyAgICAgICAgUmVuYW1lZCB0aGlzIGZyb20gYHRydW5jYXRlZFN0
cmluZ0Zvckxvb2t1cE1lbnVJdGVtYCwgc2luY2UgaXQncyBub3cgdXNlZCBmb3IgdGhpcyBuZXcg
dHJhbnNsYXRlIG1lbnUgaXRlbS4KKworICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1RyYW5zbGF0ZSk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHJldHVy
biB0aGUgdGl0bGUgZm9yIHRoZSBuZXcgdHJhbnNsYXRlIG1lbnUgaXRlbSwgbW9kZWxlZCBhZnRl
ciAiTG9vayBVcCIuCisKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRlZFN0cmluZ0Zvckxvb2t1
cE1lbnVJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
Lmg6CisKIDIwMjEtMDMtMDggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjczMDg0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBj
NWM4NjZmMDM1MTUxMGQxMTAyNjU5NjM4YjY0MTI2MGU2NzJmN2VjLi4yYmZjOTIxNzgxMzA5Y2M3
OTQ5MTNhMGI1MTE4NjQxNDhhNDQ3NTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIx
LTAzLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFttYWNPU10gQWRkIGEgd2F5IHRvIHRyaWdnZXIgd2VicGFnZSB0cmFuc2xhdGlvbiB2aWEgdGhl
IGNvbnRleHQgbWVudQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyOTUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MzkwMTk2Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
dGhlIG5ldyBjb250ZXh0IG1lbnUgaXRlbSBpbiBXZWJLaXQyLiBTZWUgYmVsb3cgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbVR5cGVz
Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAo
V2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChXZWJLaXQ6OnRvSW1wbCk6CisKKyAgICAgICAgQWRk
IGEgQyBBUEkgdmFsdWUgZm9yIHRoZSBuZXcgV2ViQ29yZSBlbnVtLgorCisgICAgICAgICogU2hh
cmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0
TWVudUNvbnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKToKKyAgICAgICAgKFdlYktp
dDo6Q29udGV4dE1lbnVDb250ZXh0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6Q29udGV4dE1lbnVDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29u
dGV4dE1lbnVDb250ZXh0RGF0YS5oOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNvbnRl
eHREYXRhOjpzZWxlY3Rpb25Cb3VuZHMgY29uc3QpOgorCisgICAgICAgIEFkZCBhIHJlY3QsIGBz
ZWxlY3Rpb25Cb3VuZHNgLCB0byBgQ29udGV4dE1lbnVDb250ZXh0RGF0YWAgdGhhdCByZXByZXNl
bnRzIHRoZSByZWN0IG9mIHRoZSBjdXJyZW50IHRleHQKKyAgICAgICAgc2VsZWN0aW9uIGluIHJv
b3QgdmlldyBjb29yZGluYXRlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tN
ZW51SXRlbUlkZW50aWZpZXJzLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tN
ZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYW5I
YW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjYW5IYW5kbGVDb250ZXh0TWVu
dVRyYW5zbGF0aW9uIGNvbnN0KToKKworICAgICAgICBDb25zdWx0IHRoZSBjbGFzcyBtZXRob2Qg
dG8gcmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBtZW51IGl0ZW0gc2hvdWxkIGJlIHByZXNlbnQu
IElmIG5vdCwgdGhlbiB3ZSBmaWx0ZXIgdGhpcworICAgICAgICBpdGVtIG91dCBmcm9tIHRoZSBs
aXN0IG9mIGNvbnRleHQgbWVudSBpdGVtcyBpbiBgV2ViQ29udGV4dE1lbnVQcm94eU1hY2AgYmVs
b3cuCisKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJh
bnNsYXRpb24pOgorCisgICAgICAgIEhhbmRsZSB0aGUgdHJhbnNsYXRpb24gYWN0aW9uIGJ5IHVz
aW5nIGBOU1BvcG92ZXJgIHRvIHByZXNlbnQgYW4gYExUVUlUcmFuc2xhdGlvblZpZXdDb250cm9s
bGVyYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24gY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQ29udGV4dE1lbnVUcmFu
c2xhdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0
TWVudUZyb21JdGVtcyk6CisKKyAgICAgICAgUmVtb3ZlIHRoZSB0cmFuc2xhdGUgbWVudSBpdGVt
IGlmIHdlJ3JlIGFscmVhZHkgcHJlc2VudGVkIGluIHRoZSBjb250ZXh0IG9mIGEgcG9wb3Zlciwg
b3IgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdAorICAgICAgICBzdXBwb3J0IHRoZSBmZWF0dXJlIChz
ZWUgYFdlYlZpZXdJbXBsOjpjYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uYCkuCisKKyAg
ICAgICAgKFdlYktpdDo6bWVudUl0ZW1JZGVudGlmaWVyKToKKwogMjAyMS0wMy0wOCAgS2ltbW8g
S2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkdMIGFzc2VydHMg
YWZ0ZXIgR1BVIHByb2Nlc3MgdGltZXMgb3V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggMzU0NmY5NjA2NzU2NDVhZTcwNjEyZDVjOWE5ODUyNWM1YTlkZGQ2My4uMWM4NWRiNDY0NTI0
YTY4MDc2NzM2NTU1OWY2ZTg1MGYwZDVkNTI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAzLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRkIGEgd2F5IHRvIHRyaWdnZXIgd2Vi
cGFnZSB0cmFuc2xhdGlvbiB2aWEgdGhlIGNvbnRleHQgbWVudQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTUzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MzkwMTk2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgKG5vLW9wKSBoYW5kbGluZyBmb3IgdGhlIG5ldyBlbnVtIHZhbHVlLgorCisg
ICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKHRvVGFnKToKKwogMjAy
MS0wMy0wNiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxp
ZnkgRHVtcFJlbmRlclRyZWUgV2ViUHJlZmVyZW5jZXMgcmVzZXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9l
bi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDczOTYxMjI3NjkwMmUzMGYwNzgwNGNk
Zjc4ZWQ1NjdlYjQ3M2M2ODcuLjk1MDliNGUxNDA0M2U4NWI1M2IyZDJiOTc2NTg5MDIxNWM3ODQ3
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAt
MTI0LDEyICsxMjQsMjEgQEAKIC8qIEJ1dHRvbiB0aXRsZSBpbiBEZXZpY2UgT3JpZW50YXRpb24g
UGVybWlzc2lvbiBBUEkgcHJvbXB0ICovCiAiQWxsb3cgKGRldmljZSBtb3Rpb24gYW5kIG9yaWVu
dGF0aW9uIGFjY2VzcykiID0gIkFsbG93IjsKIAotLyogTWVzc2FnZSBmb3IgcmVxdWVzdGluZyBj
cm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8KLSJBbGxvdyDigJwl
QOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA
4oCdPyIgPSAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3
aGlsZSBicm93c2luZyDigJwlQOKAnT8iOworLyogQWxsb3cgYnV0dG9uIHRpdGxlIGluIHNwZWVj
aCByZWNvZ25pdGlvbiBwcm9tcHQgKi8KKyJBbGxvdyAoc3BlZWNocmVjb2duaXRpb24pIiA9ICJB
bGxvdyI7CisKKy8qIEFsbG93IGJ1dHRvbiB0aXRsZSBpbiB1c2VyIG1lZGlhIHByb21wdCAqLwor
IkFsbG93ICh1c2VybWVkaWEpIiA9ICJBbGxvdyI7CiAKLS8qIE1lc3NhZ2UgZm9yIHJlcXVlc3Rp
bmcgY3Jvc3Mtc2l0ZSBjb29raWUgYW5kIHdlYnNpdGUgZGF0YSBhY2Nlc3MgZm9yIG11bHRpcGxl
IHRoaXJkIHBhcnR5IGRvbWFpbnMuICovCisvKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3Nz
LXNpdGUgY29va2llIGFuZCB3ZWJzaXRlIGRhdGEgYWNjZXNzLiAqLwogIkFsbG93IOKAnCVA4oCd
IGFuZCDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dz
aW5nIOKAnCVA4oCdPyIgPSAiQWxsb3cg4oCcJUDigJ0gYW5kIOKAnCVA4oCdIHRvIHVzZSBjb29r
aWVzIGFuZCB3ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IjsKIAorLyogTWVz
c2FnZSBmb3Igc3BlY2hyZWNvZ25pdGlvbiBwcm9tcHQgKi8KKyJBbGxvdyDigJwlQOKAnSB0byBj
YXB0dXJlIHlvdXIgYXVkaW8gYW5kIHVzZSBpdCBmb3Igc3BlZWNoIHJlY29nbml0aW9uPyIgPSAi
QWxsb3cg4oCcJUDigJ0gdG8gY2FwdHVyZSB5b3VyIGF1ZGlvIGFuZCB1c2UgaXQgZm9yIHNwZWVj
aCByZWNvZ25pdGlvbj8iOworCisvKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3NzLXNpdGUg
Y29va2llIGFuZCB3ZWJzaXRlIGRhdGEgYWNjZXNzLiAqLworIkFsbG93IOKAnCVA4oCdIHRvIHVz
ZSBjb29raWVzIGFuZCB3ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IiA9ICJB
bGxvdyDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dz
aW5nIOKAnCVA4oCdPyI7CisKIC8qIE1lc3NhZ2UgZm9yIHVzZXIgbWVkaWEgcHJvbXB0ICovCiAi
QWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lPyIgPSAiQWxs
b3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lPyI7CiAKQEAgLTEz
OSwyMSArMTQ4LDYgQEAKIC8qIE1lc3NhZ2UgZm9yIHVzZXIgbWljcm9waG9uZSBhY2Nlc3MgcHJv
bXB0ICovCiAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgbWljcm9waG9uZT8iID0gIkFsbG93
IOKAnCVA4oCdIHRvIHVzZSB5b3VyIG1pY3JvcGhvbmU/IjsKIAotLyogQWxsb3cgYnV0dG9uIHRp
dGxlIGluIHVzZXIgbWVkaWEgcHJvbXB0ICovCi0iQWxsb3cgKHVzZXJtZWRpYSkiID0gIkFsbG93
IjsKLQotLyogRGlzYWxsb3cgYnV0dG9uIHRpdGxlIGluIHVzZXIgbWVkaWEgcHJvbXB0ICovCi0i
RG9u4oCZdCBBbGxvdyAodXNlcm1lZGlhKSIgPSAiRG9u4oCZdCBBbGxvdyI7Ci0KLS8qIE1lc3Nh
Z2UgZm9yIHNwZWVjaCByZWNvZ25pdGlvbiBwcm9tcHQgKi8KLSJBbGxvdyDigJwlQOKAnSB0byBj
YXB0dXJlIHlvdXIgYXVkaW8gYW5kIHVzZSBpdCBmb3Igc3BlZWNoIHJlY29nbml0aW9uPyIgPSAi
QWxsb3cg4oCcJUDigJ0gdG8gY2FwdHVyZSB5b3VyIGF1ZGlvIGFuZCB1c2UgaXQgZm9yIHNwZWVj
aCByZWNvZ25pdGlvbj8iOwotCi0vKiBBbGxvdyBidXR0b24gdGl0bGUgaW4gc3BlZWNoIHJlY29n
bml0aW9uIHByb21wdCAqLwotIkFsbG93IChzcGVlY2hyZWNvZ25pdGlvbikiID0gIkFsbG93IjsK
LQotLyogRGlzYWxsb3cgYnV0dG9uIHRpdGxlIGluIHNwZWVjaCByZWNvZ25pdGlvbiBwcm9tcHQg
Ki8KLSJEb27igJl0IEFsbG93IChzcGVlY2hyZWNvZ25pdGlvbikiID0gIkRvbuKAmXQgQWxsb3ci
OwotCiAvKiBXS0Vycm9yVW5rbm93biBkZXNjcmlwdGlvbiAqLwogIkFuIHVua25vd24gZXJyb3Ig
b2NjdXJyZWQiID0gIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQiOwogCkBAIC0xNjMsNiArMTU3
LDkgQEAKIC8qIE1hbHdhcmUgY29uZmlybWF0aW9uIGRpYWxvZyB0aXRsZSAqLwogIkFyZSB5b3Ug
c3VyZSB5b3Ugd2lzaCB0byBnbyB0byB0aGlzIHNpdGU/IiA9ICJBcmUgeW91IHN1cmUgeW91IHdp
c2ggdG8gZ28gdG8gdGhpcyBzaXRlPyI7CiAKKy8qIFdLRXJyb3JOYXZpZ2F0aW9uQXBwQm91bmRE
b21haW4gZGVzY3JpcHRpb24gKi8KKyJBdHRlbXB0ZWQgdG8gbmF2aWdhdGUgYXdheSBmcm9tIGFu
IGFwcC1ib3VuZCBkb21haW4gb3IgbmF2aWdhdGUgYWZ0ZXIgdXNpbmcgcmVzdHJpY3RlZCBBUElz
IiA9ICJBdHRlbXB0ZWQgdG8gbmF2aWdhdGUgYXdheSBmcm9tIGFuIGFwcC1ib3VuZCBkb21haW4g
b3IgbmF2aWdhdGUgYWZ0ZXIgdXNpbmcgcmVzdHJpY3RlZCBBUElzIjsKKwogLyogV0tFcnJvckF0
dHJpYnV0ZWRTdHJpbmdDb250ZW50RmFpbGVkVG9Mb2FkIGRlc2NyaXB0aW9uICovCiAiQXR0cmli
dXRlZCBzdHJpbmcgY29udGVudCBmYWlsZWQgdG8gbG9hZCIgPSAiQXR0cmlidXRlZCBzdHJpbmcg
Y29udGVudCBmYWlsZWQgdG8gbG9hZCI7CiAKQEAgLTMyMCwxMSArMzE3LDExIEBACiAiRGljdGF0
aW9uIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiRGljdGF0aW9uIjsKIAogLyogTWVzc2FnZSBmb3Ig
cmVxdWVzdGluZyBjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8K
LSJEbyB5b3Ugd2FudCB0byBhbGxvdyDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0
ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIgPSAiRG8geW91IHdhbnQgdG8gYWxsb3cg
4oCcJUDigJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3aGlsZSBicm93c2luZyDi
gJwlQOKAnT8iOwotCi0vKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3NzLXNpdGUgY29va2ll
IGFuZCB3ZWJzaXRlIGRhdGEgYWNjZXNzIGZvciBtdWx0aXBsZSB0aGlyZCBwYXJ0eSBkb21haW5z
LiAqLwogIkRvIHlvdSB3YW50IHRvIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB1c2Ug
Y29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIgPSAiRG8g
eW91IHdhbnQgdG8gYWxsb3cg4oCcJUDigJ0gYW5kIOKAnCVA4oCdIHRvIHVzZSBjb29raWVzIGFu
ZCB3ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IjsKIAorLyogTWVzc2FnZSBm
b3IgcmVxdWVzdGluZyBjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4g
Ki8KKyJEbyB5b3Ugd2FudCB0byBhbGxvdyDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vi
c2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIgPSAiRG8geW91IHdhbnQgdG8gYWxs
b3cg4oCcJUDigJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3aGlsZSBicm93c2lu
ZyDigJwlQOKAnT8iOworCiAvKiBCdXR0b24gdGl0bGUgaW4gU3RvcmFnZSBBY2Nlc3MgQVBJIHBy
b21wdCAqLwogIkRvbid0IEFsbG93IChjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRh
IGFjY2VzcykiID0gIkRvbid0IEFsbG93IjsKIApAQCAtMzM0LDYgKzMzMSwxMiBAQAogLyogVGl0
bGUgb2YgdGhlIERvbmUgYnV0dG9uIGZvciB6b29tZWQgZm9ybSBjb250cm9scy4gKi8KICJEb25l
IiA9ICJEb25lIjsKIAorLyogRGlzYWxsb3cgYnV0dG9uIHRpdGxlIGluIHNwZWVjaCByZWNvZ25p
dGlvbiBwcm9tcHQgKi8KKyJEb27igJl0IEFsbG93IChzcGVlY2hyZWNvZ25pdGlvbikiID0gIkRv
buKAmXQgQWxsb3ciOworCisvKiBEaXNhbGxvdyBidXR0b24gdGl0bGUgaW4gdXNlciBtZWRpYSBw
cm9tcHQgKi8KKyJEb27igJl0IEFsbG93ICh1c2VybWVkaWEpIiA9ICJEb27igJl0IEFsbG93IjsK
KwogLyogRG93bmxvYWQgQXVkaW8gVG8gRGlzayBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkRvd25s
b2FkIEF1ZGlvIiA9ICJEb3dubG9hZCBBdWRpbyI7CiAKQEAgLTQ3Miw2ICs0NzUsMTIgQEAKIC8q
IFdLRXJyb3JKYXZhU2NyaXB0UmVzdWx0VHlwZUlzVW5zdXBwb3J0ZWQgZGVzY3JpcHRpb24gKi8K
ICJKYXZhU2NyaXB0IGV4ZWN1dGlvbiByZXR1cm5lZCBhIHJlc3VsdCBvZiBhbiB1bnN1cHBvcnRl
ZCB0eXBlIiA9ICJKYXZhU2NyaXB0IGV4ZWN1dGlvbiByZXR1cm5lZCBhIHJlc3VsdCBvZiBhbiB1
bnN1cHBvcnRlZCB0eXBlIjsKIAorLyogV0tFcnJvckphdmFTY3JpcHRBcHBCb3VuZERvbWFpbiBk
ZXNjcmlwdGlvbiAqLworIkphdmFTY3JpcHQgZXhlY3V0aW9uIHRhcmdldGVkIGEgZnJhbWUgdGhh
dCBpcyBub3QgaW4gYW4gYXBwLWJvdW5kIGRvbWFpbiIgPSAiSmF2YVNjcmlwdCBleGVjdXRpb24g
dGFyZ2V0ZWQgYSBmcmFtZSB0aGF0IGlzIG5vdCBpbiBhbiBhcHAtYm91bmQgZG9tYWluIjsKKwor
LyogV0tFcnJvckphdmFTY3JpcHRJbnZhbGlkRnJhbWVUYXJnZXQgZGVzY3JpcHRpb24gKi8KKyJK
YXZhU2NyaXB0IGV4ZWN1dGlvbiB0YXJnZXRlZCBhbiBpbnZhbGlkIGZyYW1lIiA9ICJKYXZhU2Ny
aXB0IGV4ZWN1dGlvbiB0YXJnZXRlZCBhbiBpbnZhbGlkIGZyYW1lIjsKKwogLyogVW5kbyBhY3Rp
b24gbmFtZSAqLwogIkp1c3RpZnkgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJKdXN0aWZ5IjsKIApA
QCAtNTcxLDE1ICs1ODAsMTUgQEAKIC8qIE9wdGlvbiBpbiBzZWdtZW50ZWQgY29udHJvbCBmb3Ig
aW5zZXJ0aW5nIGEgbnVtYmVyZWQgbGlzdCBpbiB0ZXh0IGVkaXRpbmcgKi8KICJOdW1iZXJlZCBs
aXN0IiA9ICJOdW1iZXJlZCBsaXN0IjsKIAorLyogVGl0bGUgb2YgdGhlIE9LIGJ1dHRvbiBpbiBk
YXRlL3RpbWUgZm9ybSBjb250cm9scy4gKi8KKyJPSyAoT0sgYnV0dG9uIHRpdGxlIGluIGRhdGUv
dGltZSBwaWNrZXIpIiA9ICJPSyI7CisKIC8qIFRpdGxlIG9mIHRoZSBPSyBidXR0b24gZm9yIHRo
ZSBudW1iZXIgcGFkIGluIHpvb21lZCBmb3JtIGNvbnRyb2xzLiAqLwogIk9LIChPSyBidXR0b24g
dGl0bGUgaW4gZXh0cmEgem9vbWVkIG51bWJlciBwYWQpIiA9ICJPSyI7CiAKIC8qIE9LIGJ1dHRv
biBsYWJlbCBpbiBkb2N1bWVudCBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0ICovCiAiT0sgKGRvY3Vt
ZW50IHBhc3N3b3JkIGZhaWx1cmUgYWxlcnQpIiA9ICJPSyI7CiAKLS8qIFRpdGxlIG9mIHRoZSBP
SyBidXR0b24gaW4gZGF0ZS90aW1lIGZvcm0gY29udHJvbHMuICovCi0iT0sgKE9LIGJ1dHRvbiB0
aXRsZSBpbiBkYXRlL3RpbWUgcGlja2VyKSIgPSAiT0siOwotCiAvKiBNZW51IGl0ZW0gbGFiZWwg
Zm9yIHRoZSB0cmFjayB0aGF0IHJlcHJlc2VudHMgZGlzYWJsaW5nIGNsb3NlZCBjYXB0aW9ucyAq
LwogIk9mZiIgPSAiT2ZmIjsKIApAQCAtOTI2LDEwICs5MzUsMTAgQEAKICJUaGlzIHdlYnNpdGUg
bWF5IHRyeSB0byB0cmljayB5b3UgaW50byBpbnN0YWxsaW5nIHNvZnR3YXJlIHRoYXQgaGFybXMg
eW91ciBicm93c2luZyBleHBlcmllbmNlLCBsaWtlIGNoYW5naW5nIHlvdXIgc2V0dGluZ3Mgd2l0
aG91dCB5b3VyIHBlcm1pc3Npb24gb3Igc2hvd2luZyB5b3UgdW53YW50ZWQgYWRzLiBPbmNlIGlu
c3RhbGxlZCwgaXQgbWF5IGJlIGRpZmZpY3VsdCB0byByZW1vdmUuIiA9ICJUaGlzIHdlYnNpdGUg
bWF5IHRyeSB0byB0cmljayB5b3UgaW50byBpbnN0YWxsaW5nIHNvZnR3YXJlIHRoYXQgaGFybXMg
eW91ciBicm93c2luZyBleHBlcmllbmNlLCBsaWtlIGNoYW5naW5nIHlvdXIgc2V0dGluZ3Mgd2l0
aG91dCB5b3VyIHBlcm1pc3Npb24gb3Igc2hvd2luZyB5b3UgdW53YW50ZWQgYWRzLiBPbmNlIGlu
c3RhbGxlZCwgaXQgbWF5IGJlIGRpZmZpY3VsdCB0byByZW1vdmUuIjsKIAogLyogSW5mb3JtYXRp
dmUgdGV4dCBmb3IgcmVxdWVzdGluZyBjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRh
IGFjY2Vzcy4gKi8KLSJUaGlzIHdpbGwgYWxsb3cg4oCcJUDigJ0gdG8gdHJhY2sgeW91ciBhY3Rp
dml0eS4iID0gIlRoaXMgd2lsbCBhbGxvdyDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFjdGl2aXR5
LiI7CisiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5b3Vy
IGFjdGl2aXR5LiIgPSAiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0
cmFjayB5b3VyIGFjdGl2aXR5LiI7CiAKIC8qIEluZm9ybWF0aXZlIHRleHQgZm9yIHJlcXVlc3Rp
bmcgY3Jvc3Mtc2l0ZSBjb29raWUgYW5kIHdlYnNpdGUgZGF0YSBhY2Nlc3MuICovCi0iVGhpcyB3
aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFjdGl2aXR5LiIg
PSAiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFj
dGl2aXR5LiI7CisiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIHRvIHRyYWNrIHlvdXIgYWN0aXZp
dHkuIiA9ICJUaGlzIHdpbGwgYWxsb3cg4oCcJUDigJ0gdG8gdHJhY2sgeW91ciBhY3Rpdml0eS4i
OwogCiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiVGlnaHRlbiBLZXJuaW5nIChVbmRvIGFjdGlv
biBuYW1lKSIgPSAiVGlnaHRlbiBLZXJuaW5nIjsKQEAgLTk1NSw2ICs5NjQsOSBAQAogLyogVHJh
bnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIlRyYW5zZm9ybWF0aW9ucyIg
PSAiVHJhbnNmb3JtYXRpb25zIjsKIAorLyogVHJhbnNsYXRlIGNvbnRleHQgbWVudSBpdGVtIHdp
dGggc2VsZWN0ZWQgd29yZCAqLworIlRyYW5zbGF0ZSDigJwlQOKAnSIgPSAiVHJhbnNsYXRlIOKA
nCVA4oCdIjsKKwogLyogVW5kbyBhY3Rpb24gbmFtZSAqLwogIlR1cm4gT2ZmIEtlcm5pbmcgKFVu
ZG8gYWN0aW9uIG5hbWUpIiA9ICJUdXJuIE9mZiBLZXJuaW5nIjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250ZXh0LmgKaW5kZXggYzIyYjFhMjFkMTEwMmEyNDBkYzA4YzU4ODIw
YWEwNGU5OWYzZjk1Ny4uY2M1YWQ2MGUwYjgxYjMxYzYyNzA1MDQ1MTc2Nzk4NTE0MWUzYTY2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udGV4dC5oCkBAIC00Myw2ICs0Myw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dChjb25zdCBTdHJpbmcmIHNlbGVj
dGVkVGV4dCkgeyBtX3NlbGVjdGVkVGV4dCA9IHNlbGVjdGVkVGV4dDsgfQogICAgIGNvbnN0IFN0
cmluZyYgc2VsZWN0ZWRUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZFRleHQ7IH0KIAor
ICAgIHZvaWQgc2V0U2VsZWN0aW9uQm91bmRzKGNvbnN0IEludFJlY3QmIGJvdW5kcykgeyBtX3Nl
bGVjdGlvbkJvdW5kcyA9IGJvdW5kczsgfQorICAgIEludFJlY3Qgc2VsZWN0aW9uQm91bmRzKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb25Cb3VuZHM7IH0KKwogI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQogICAgIHZvaWQgc2V0Q29udHJvbGxlZEltYWdlKEltYWdlKiBjb250cm9sbGVk
SW1hZ2UpIHsgbV9jb250cm9sbGVkSW1hZ2UgPSBjb250cm9sbGVkSW1hZ2U7IH0KICAgICBJbWFn
ZSogY29udHJvbGxlZEltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9jb250cm9sbGVkSW1hZ2UuZ2V0
KCk7IH0KQEAgLTUxLDYgKzU0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIaXRUZXN0UmVz
dWx0IG1faGl0VGVzdFJlc3VsdDsKICAgICBTdHJpbmcgbV9zZWxlY3RlZFRleHQ7CisgICAgSW50
UmVjdCBtX3NlbGVjdGlvbkJvdW5kczsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQog
ICAgIFJlZlB0cjxJbWFnZT4gbV9jb250cm9sbGVkSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggMjBmNDM0ZjZlODYzNzllMzY1ZGIy
NjI2YzE1YTNjNmEyYzE5OGFkNi4uOGIxYTM4NmEyOGMwZmM0ZjljYzdjZGYxZGNmODNmOGM4MDY5
MzZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cApAQCAtNTE4LDYgKzUxOCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGZy
YW1lLT5lZGl0b3IoKS5hcHBseURpY3RhdGlvbkFsdGVybmF0aXZlKHRpdGxlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUg
aGFuZGxlZCBhdCB0aGUgY2xpZW50IGxheWVyLgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgYnJlYWs7CkBAIC04MzEsNyArODMyLDcgQEAgdm9pZCBDb250ZXh0TWVudUNv
bnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICBpZiAoIW1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCku
aXNDb250ZW50RWRpdGFibGUoKSAmJiBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pigqbm9kZSkp
CiAgICAgICAgIHJldHVybjsKICNlbmRpZgotICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3Vt
ZW50KCkuZnJhbWUoKTsKKyAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihub2RlLT5kb2N1bWVu
dCgpLmZyYW1lKCkpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtODQy
LDkgKzg0MywxNSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogI2Vu
ZGlmCiAKICAgICBpZiAoIW1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuaXNDb250ZW50RWRpdGFi
bGUoKSkgewotICAgICAgICBTdHJpbmcgc2VsZWN0ZWRTdHJpbmcgPSBtX2NvbnRleHQuaGl0VGVz
dFJlc3VsdCgpLnNlbGVjdGVkVGV4dCgpOworICAgICAgICBhdXRvIHNlbGVjdGVkU3RyaW5nID0g
bV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5zZWxlY3RlZFRleHQoKTsKICAgICAgICAgbV9jb250
ZXh0LnNldFNlbGVjdGVkVGV4dChzZWxlY3RlZFN0cmluZyk7CiAKKyAgICAgICAgaWYgKGF1dG8g
dmlldyA9IG1ha2VSZWZQdHIoZnJhbWUtPnZpZXcoKSk7IHZpZXcgJiYgIXNlbGVjdGVkU3RyaW5n
LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgYXV0byBzZWxlY3Rpb25Cb3VuZHNJbkNvbnRlbnRD
b29yZGluYXRlcyA9IGVuY2xvc2luZ0ludFJlY3QoZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlv
bkJvdW5kcygpKTsKKyAgICAgICAgICAgIGlmICghc2VsZWN0aW9uQm91bmRzSW5Db250ZW50Q29v
cmRpbmF0ZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIG1fY29udGV4dC5zZXRTZWxlY3Rp
b25Cb3VuZHModmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHNlbGVjdGlvbkJvdW5kc0luQ29udGVu
dENvb3JkaW5hdGVzKSk7CisgICAgICAgIH0KKwogICAgICAgICBGcmFtZUxvYWRlciYgbG9hZGVy
ID0gZnJhbWUtPmxvYWRlcigpOwogICAgICAgICBVUkwgbGlua1VSTCA9IG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCk7CiAgICAgICAgIGlmICghbGlua1VSTC5pc0Vt
cHR5KCkpIHsKQEAgLTkwOCw2ICs5MTUsMTAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OnBvcHVsYXRlKCkKIAogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKExvb2tVcEluRGlj
dGlvbmFyeUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogI2VuZGlmCisjaWYgSEFWRShUUkFO
U0xBVElPTl9VSV9TRVJWSUNFUykKKyAgICAgICAgICAgICAgICAgICAgQ29udGV4dE1lbnVJdGVt
IFRyYW5zbGF0ZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlLCBj
b250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGUoc2VsZWN0ZWRTdHJpbmcpKTsKKyAgICAgICAgICAg
ICAgICAgICAgYXBwZW5kSXRlbShUcmFuc2xhdGVJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsK
KyNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKEdUSykKICAgICAgICAgICAgICAgICAgICAgYXBwZW5k
SXRlbShTZWFyY2hXZWJJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKQEAgLTE0NjMsNiArMTQ3
NCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQo
Q29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBz
aG91bGRFbmFibGUgJiYgIG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkubWVkaWFNdXRlZCgpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2U6CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmNwcAppbmRleCA4Mzc2YTFmNjk4MGU3YjllMTRjYzZjOTI3ZmI2N2U1Mjg0NDI1MDQ5
Li41YWUwMjVlOTE4MGM1ZGZiMjE5NjJlMTdmMTllNjcwNGQ1ZDZkNDI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKQEAgLTI0Nyw2ICsyNDcsNyBAQCBi
b29sIGlzVmFsaWRDb250ZXh0TWVudUFjdGlvbihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAg
ICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51Ogog
ICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVv
RW5oYW5jZWRGdWxsc2NyZWVuOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRl
eHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250
ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNv
bnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6
Q29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uaAppbmRleCAxNWZhODdkYTYwNzQ5YTE3ODhmYzFmMThjMTUxMzQw
MTFhOTViMzgzLi5kYTFhMGFlNzJiYTM0MmEzMzljYTEzMTFjYTdmOTU2YmM4YWIzYTE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMTUwLDYgKzE1MCw3
IEBAIGVudW0gQ29udGV4dE1lbnVBY3Rpb24gewogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhp
Z2hsaWdodFRvTmV3R3JvdXAsCiAjZW5kaWYKICAgICBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJ
bWFnZSwKKyAgICBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGUsCiAgICAgQ29udGV4dE1lbnVJ
dGVtQmFzZUN1c3RvbVRhZyA9IDUwMDAsCiAgICAgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRh
ZyA9IDU5OTksCiAgICAgQ29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnID0gMTAwMDAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggNGNj
ZDExYjY1MjUzMDM4YmQwY2I0NmZjNDE0NzU4MDgwYmMxY2FmZC4uYzVjOWVkYjk2YjNmNDkyNzU1
MDQzYzFhOTdlZmZlODFhMzgzOTg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgU3RyaW5nIGxvY2FsaXplZFN0cmlu
Zyhjb25zdCBjaGFyKiBrZXkpCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAotc3RhdGlj
IFN0cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9y
aWdpbmFsKQorc3RhdGljIFN0cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JNZW51SXRlbShjb25zdCBT
dHJpbmcmIG9yaWdpbmFsKQogewogICAgIC8vIFRydW5jYXRlIHRoZSBzdHJpbmcgaWYgaXQncyB0
b28gbG9uZy4gVGhpcyBudW1iZXIgaXMgcm91Z2hseSB0aGUgc2FtZSBhcyB0aGUgb25lIHVzZWQg
YnkgQXBwS2l0LgogICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9v
a3VwTWVudUl0ZW0gPSAyNDsKQEAgLTIzMiwxNSArMjMyLDI1IEBAIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJ
bkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxlY3RlZFN0cmluZykKIHsKICNpZiBVU0UoQ0Yp
Ci0gICAgYXV0byBzZWxlY3RlZENGU3RyaW5nID0gdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVu
dUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgYXV0byBzZWxlY3Rl
ZENGU3RyaW5nID0gdHJ1bmNhdGVkU3RyaW5nRm9yTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNy
ZWF0ZUNGU3RyaW5nKCk7CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
Q0ZTVFJJTkcoIkxvb2sgVXAg4oCcJUDigJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3
aXRoIHNlbGVjdGVkIHdvcmQiKSwgc2VsZWN0ZWRDRlN0cmluZy5nZXQoKSk7CiAjZWxpZiBVU0Uo
R0xJQikKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIkxv
b2sgVXAg4oCcJXPigJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVk
IHdvcmQiKSwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcp
LnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJ
X1NUUklORygiTG9vayBVcCDigJwlc+KAnSIsICJMb29rIFVwIGNvbnRleHQgbWVudSBpdGVtIHdp
dGggc2VsZWN0ZWQgd29yZCIpLCB0cnVuY2F0ZWRTdHJpbmdGb3JNZW51SXRlbShzZWxlY3RlZFN0
cmluZykudXRmOCgpLmRhdGEoKSk7CiAjZWxzZQotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJM
b29rIFVwIOKAnDxzZWxlY3Rpb24+4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0
aCBzZWxlY3RlZCB3b3JkIikucmVwbGFjZSgiPHNlbGVjdGlvbj4iLCB0cnVuY2F0ZWRTdHJpbmdG
b3JMb29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmluZykpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJMb29rIFVwIOKAnDxzZWxlY3Rpb24+4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0
ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIikucmVwbGFjZSgiPHNlbGVjdGlvbj4iLCB0cnVuY2F0ZWRT
dHJpbmdGb3JNZW51SXRlbShzZWxlY3RlZFN0cmluZykpOwogI2VuZGlmCiB9CiAKKyNpZiBIQVZF
KFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVHJh
bnNsYXRlKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpCit7CisgICAgYXV0byBzZWxlY3Rl
ZENGU3RyaW5nID0gdHJ1bmNhdGVkU3RyaW5nRm9yTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNy
ZWF0ZUNGU3RyaW5nKCk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
Q0ZTVFJJTkcoIlRyYW5zbGF0ZSDigJwlQOKAnSIsICJUcmFuc2xhdGUgY29udGV4dCBtZW51IGl0
ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOworfQorCisj
ZW5kaWYKKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKIHsKICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19XSVRIX01ORU1PTklDKCJPcGVuIExpbmsiLCAiX09wZW4gTGluayIs
ICJPcGVuIExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCA3YzQyODRlYTRkMDViNjU3MTU1NTYyZjgxYmUyNWNi
YWFiN2IyMzlkLi44ZmI1MWE4OWVkNDJjYzE1MzY4NzAyZTIwM2VhMGU3NDgxN2FhYTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0zNTQsNiArMzU0
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UoKTsKICNlbmRpZgogCisjaWYgSEFWRShUUkFOU0xB
VElPTl9VSV9TRVJWSUNFUykKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRl
KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpOworI2VuZGlmCisKICNpZiBVU0UoR0xJQikg
JiYgZGVmaW5lZChHRVRURVhUX1BBQ0tBR0UpCiAjZGVmaW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5n
LCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVkU3RyaW5nKF8oc3RyaW5nKSkKICNkZWZp
bmUgV0VCX1VJX1NUUklOR19LRVkoc3RyaW5nLCBrZXksIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjps
b2NhbGl6ZWRTdHJpbmcoQ18oa2V5LCBzdHJpbmcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oCmluZGV4IGMxZTkzM2ViNTY1Zjdk
NDAzZjY4MTMzNWY3ZDM0YjFmYjBjOGRmNGIuLjBhOTE4OGM5ZjZhM2UxZmFhNWIzMzQ2YmY1MTIy
YjY4NjE5ZThjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ29u
dGV4dE1lbnVJdGVtVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Nv
bnRleHRNZW51SXRlbVR5cGVzLmgKQEAgLTEyNiw2ICsxMjYsNyBAQCBlbnVtIHsKICAgICBrV0tD
b250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1cnJlbnRHcm91cCwKICAgICBrV0tDb250
ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05ld0dyb3VwLAogICAgIGtXS0NvbnRleHRNZW51
SXRlbVRhZ1JldmVhbEltYWdlLAorICAgIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZSwK
ICAgICBrV0tDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcgPSAxMDAwMAogfTsKIHR5
cGVkZWYgdWludDMyX3QgV0tDb250ZXh0TWVudUl0ZW1UYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IGNjY2U0ODkwZDUwYmNlYzZjMDhmYTU5
ZThlOTY1ZWU5NmEwNTE4ZGUuLmVlNDI0NWMyZjFlZDllNWQ5ZjM4Y2MxOTkwYzgwNGY5MjUxMGIx
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBA
IC01NDcsNiArNTQ3LDggQEAgaW5saW5lIFdLQ29udGV4dE1lbnVJdGVtVGFnIHRvQVBJKFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRN
ZW51SXRlbVRhZ1NoYXJlTWVudTsKICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRh
Z1JldmVhbEltYWdlOgogICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2U7CisgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6Cisg
ICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgaWYgKGFjdGlvbiA8IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbUJhc2VBcHBs
aWNhdGlvblRhZyAmJiAhKGFjdGlvbiA+PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3Vz
dG9tVGFnICYmIGFjdGlvbiA8PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFn
KSkKICAgICAgICAgICAgIExPR19FUlJPUigiQ29udGV4dE1lbnVBY3Rpb24gJWkgaXMgYW4gdW5r
bm93biB0YWcgYnV0IGlzIGJlbG93IHRoZSBhbGxvd2FibGUgY3VzdG9tIHRhZyB2YWx1ZSBvZiAl
aSIsIGFjdGlvbiwgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnKTsK
QEAgLTc0OSw2ICs3NTEsOCBAQCBpbmxpbmUgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gdG9J
bXBsKFdLQ29udGV4dE1lbnVJdGVtVGFnIHRhZykKICNlbmRpZgogICAgIGNhc2Uga1dLQ29udGV4
dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UYWdSZXZlYWxJbWFnZTsKKyAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1Ry
YW5zbGF0ZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
bGF0ZTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5UaGlzV2luZG93
OgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmICh0YWcgPCBrV0tDb250ZXh0TWVudUl0ZW1CYXNl
QXBwbGljYXRpb25UYWcgJiYgISh0YWcgPj0gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtQmFzZUN1
c3RvbVRhZyAmJiB0YWcgPD0gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZykp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRh
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCmlu
ZGV4IDhjYzU2MzViNzQ3YjMxNDFhM2Q3MWE5MjhmZDU3MWIyZjBhYWVjNTIuLjg1ZjY1NDdhYTRj
NzQ0Y2RjN2Q2MTAwODU1NDY0ZmNjYjRjZTBkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCkBAIC01NCw2ICs1NCw3IEBAIENvbnRleHRN
ZW51Q29udGV4dERhdGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIG1lbnVMb2NhCiAgICAgLCBtX21lbnVJdGVtcyhtZW51SXRlbXMpCiAgICAgLCBtX3dl
YkhpdFRlc3RSZXN1bHREYXRhKGNvbnRleHQuaGl0VGVzdFJlc3VsdCgpLCB0cnVlKQogICAgICwg
bV9zZWxlY3RlZFRleHQoY29udGV4dC5zZWxlY3RlZFRleHQoKSkKKyAgICAsIG1fc2VsZWN0aW9u
Qm91bmRzKGNvbnRleHQuc2VsZWN0aW9uQm91bmRzKCkpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCiAgICAgLCBtX3NlbGVjdGlvbklzRWRpdGFibGUoZmFsc2UpCiAjZW5kaWYKQEAgLTc5
LDYgKzgwLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRleHREYXRhOjplbmNvZGUoSVBDOjpFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9tZW51SXRlbXM7CiAgICAgZW5j
b2RlciA8PCBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOwogICAgIGVuY29kZXIgPDwgbV9zZWxlY3Rl
ZFRleHQ7CisgICAgZW5jb2RlciA8PCBtX3NlbGVjdGlvbkJvdW5kczsKIAogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKQEAg
LTEwOCw2ICsxMTAsOSBAQCBib29sIENvbnRleHRNZW51Q29udGV4dERhdGE6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIENvbnRleHRNZW51Q29udGV4dERhdAogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0Lm1fc2VsZWN0ZWRUZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9zZWxlY3Rpb25Cb3VuZHMpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
YW5kbGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250
ZXh0RGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5o
CmluZGV4IGY3ZDBmZTFkZWQ3YTIwMTg3YTkwN2RhZDlhYzBlNjJjODYzODYzMGYuLjE1NzJmM2E5
OTM0NzNjY2MyNTY5YjFhNTU5YjJhYWQ0OTQyY2I5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgog
ICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhJiB3ZWJIaXRUZXN0UmVzdWx0RGF0YSgpIHsgcmV0dXJu
IG1fd2ViSGl0VGVzdFJlc3VsdERhdGE7IH0KICAgICBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0
YSYgd2ViSGl0VGVzdFJlc3VsdERhdGEoKSBjb25zdCB7IHJldHVybiBtX3dlYkhpdFRlc3RSZXN1
bHREYXRhOyB9CiAgICAgY29uc3QgU3RyaW5nJiBzZWxlY3RlZFRleHQoKSBjb25zdCB7IHJldHVy
biBtX3NlbGVjdGVkVGV4dDsgfQorICAgIFdlYkNvcmU6OkludFJlY3Qgc2VsZWN0aW9uQm91bmRz
KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb25Cb3VuZHM7IH0KIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgIENvbnRleHRNZW51Q29udGV4dERhdGEoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBzZWxlY3Rpb25E
YXRhLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VsZWN0ZWRUZWxlcGhvbmVOdW1iZXJzLCBib29s
IGlzRWRpdGFibGUpCkBAIC05MSw2ICs5Miw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJIaXRUZXN0
UmVzdWx0RGF0YSBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOwogICAgIFN0cmluZyBtX3NlbGVjdGVk
VGV4dDsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IG1fc2VsZWN0aW9uQm91bmRzOwogCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gbV9jb250
cm9sbGVkSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tNZW51SXRlbUlkZW50aWZpZXJzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVycy5tbQppbmRleCBjMmE5NGMzY2M0OTAwMjMzNzU4
ZTA1ZDQ1YTljYWQzZjY5YjRiNmFlLi5hZGQ3OWZlZjk2NmM1NzdkM2Q0YjAzMWRiOTQ3Y2Q1ODY4
ZGM0MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tN
ZW51SXRlbUlkZW50aWZpZXJzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnMubW0KQEAgLTU1LDMgKzU1LDUgQEAgTlNTdHJpbmcg
KiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVGdWxsU2NyZWVuID0gQCJXS01lbnVJ
dGVtSWRlbnRpZmllclQKIAogTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJT
aGFyZU1lbnUgPSBAIldLTWVudUl0ZW1JZGVudGlmaWVyU2hhcmVNZW51IjsKIE5TU3RyaW5nICog
Y29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNoTWVudSA9IEAiV0tNZW51SXRlbUlkZW50
aWZpZXJTcGVlY2hNZW51IjsKKworTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJUcmFuc2xhdGUgPSBAIldLTWVudUl0ZW1JZGVudGlmaWVyVHJhbnNsYXRlIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmll
cnNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRl
bUlkZW50aWZpZXJzUHJpdmF0ZS5oCmluZGV4IDY5NmVhYjI5YmJjNGUxZTY4ZWI2Y2JmM2E5MWQy
MGRiN2UzNTM3MzguLmI2MWQ0NWUzNmRhMGNmMjFmODA3MTdiYTMzNjVlNDY4Yjc4YjEzYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRl
bnRpZmllcnNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaApAQCAtNTcsMyArNTcsNSBAQCBXS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNoTWVu
dSBXS19BUElfQVZBSUxBQgogCiBXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyQWRkSGlnaGxpZ2h0VG9DdXJyZW50R3JvdXAgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIFdLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJBZGRIaWdobGlnaHRUb05l
d0dyb3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CisKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJUcmFuc2xhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0KaW5kZXggMzBlZGFjNGY5ZjFkZDZmOGEyMGFkNDJkMDk5MTgzYTc3YzQ0
MjU3NC4uNDBiZjQ5ODY5ZGYyY2JjZGM4ZWVkYzk3YWVkYmMwNzNkZDJjMjI1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAg
LTU5MCw3ICs1OTAsOCBAQCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBXZWJQYWdlUHJv
eHk6OmNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJveEV4dGVucwogICAgIHJldHVybiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSgpOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGFu
ZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSgpCiB7CkBAIC02MDEsNyArNjAyLDE3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKCkKICAgICByZXZlYWxF
eHRyYWN0ZWRJbWFnZUluUHJldmlld1BhbmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50
b29sVGlwVGV4dCk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYg
RU5BQkxFKENPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
CisKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQorCitib29sIFdlYlBhZ2VQcm94
eTo6Y2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHBhZ2VDbGllbnQoKS5jYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCk7Cit9CisKKyNl
bmRpZiAvLyBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQorI2VuZGlmIC8vIEVOQUJMRShD
T05URVhUX01FTlVTKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mbyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIGJvb2wsIGNvbnN0IFN0
cmluZyYsIGRvdWJsZSwgZG91YmxlLCB1aW50NjRfdCk+JiYgY2FsbGJhY2spCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCAwNTZjMzllNGI2M2Zi
Y2Q4ZDk5NDM2YTYxNjY0ZmUwMDM1NzE1MmYzLi44NTg1NDRkMjdkNzA0YjNmMDIzOGZiOTg4YTU1
NmQ1YmQ4ZjBjYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKQEAgLTYzOCw2ICs2MzgsMTEgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlRE9NUGFz
dGVSZXF1ZXN0V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKTsKICAg
ICBOU01lbnUgKmRvbVBhc3RlTWVudSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tUGFzdGVNZW51Lmdl
dCgpOyB9CiAKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKKyAgICBib29sIGNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oKSBj
b25zdDsKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBib3VuZHNJblZpZXcsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBtZW51TG9jYXRpb24pOworI2VuZGlmCisKIHByaXZhdGU6CiAjaWYgSEFW
RShUT1VDSF9CQVIpCiAgICAgdm9pZCBzZXRVcFRleHRUb3VjaEJhcihOU1RvdWNoQmFyICopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBlNmZi
NzgxMGY5NjU3OGVlMjNmMWY5YmEyMzFhYTE0MzY5OTlkODkyLi44YWEwNDQ4ZjliMzA5MzMzMjcz
MTlkZmNjOTdjY2JlMTdjODgyM2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQpAQCAtMTM5LDYgKzEzOSwxMyBAQAogI2ltcG9ydCA8V2ViQ29yZS9J
bWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KICNlbmRpZgogCisjaWYgSEFWRShUUkFOU0xBVElPTl9V
SV9TRVJWSUNFUykKKyNpbXBvcnQgPFRyYW5zbGF0aW9uVUlTZXJ2aWNlcy9MVFVJVHJhbnNsYXRp
b25WaWV3Q29udHJvbGxlci5oPgorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9O
QUwoVHJhbnNsYXRpb25VSVNlcnZpY2VzKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKFRyYW5z
bGF0aW9uVUlTZXJ2aWNlcywgTFRVSVRyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXIpCisjZW5kaWYK
KwogI2lmIEhBVkUoVE9VQ0hfQkFSKSAmJiBFTkFCTEUoV0VCX1BMQVlCQUNLX0NPTlRST0xTX01B
TkFHRVIpCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0KQogU09GVF9MSU5LX0NMQVNTKEFWS2l0
LCBBVlRvdWNoQmFyUGxheWJhY2tDb250cm9sc1Byb3ZpZGVyKQpAQCAtNTU3NCw2ICs1NTgxLDQ3
IEBAIGJvb2wgV2ViVmlld0ltcGw6OmVmZmVjdGl2ZVVzZXJJbnRlcmZhY2VMZXZlbElzRWxldmF0
ZWQoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VS
VklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorCitib29sIFdlYlZpZXdJbXBsOjpjYW5I
YW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gVHJhbnNs
YXRpb25VSVNlcnZpY2VzTGlicmFyeSgpICYmIFtnZXRMVFVJVHJhbnNsYXRpb25WaWV3Q29udHJv
bGxlckNsYXNzKCkgaXNBdmFpbGFibGVdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpoYW5kbGVD
b250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgSW50UmVjdCYg
Ym91bmRzSW5WaWV3LCBjb25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9uKQoreworICAgIGlmICgh
Y2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpKSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byB2aWV3ID0gbV92
aWV3LmdldCgpOworICAgIGF1dG8gdHJhbnNsYXRpb25WaWV3Q29udHJvbGxlciA9IGFkb3B0TlMo
W2FsbG9jTFRVSVRyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAg
ICBhdXRvIHRleHRUb1RyYW5zbGF0ZSA9IGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxs
b2NdIGluaXRXaXRoU3RyaW5nOnRleHRdKTsKKyAgICBbdHJhbnNsYXRpb25WaWV3Q29udHJvbGxl
ciBzZXRUZXh0OnRleHRUb1RyYW5zbGF0ZS5nZXQoKV07CisgICAgaWYgKE5TRXF1YWxTaXplcyhb
dHJhbnNsYXRpb25WaWV3Q29udHJvbGxlciBwcmVmZXJyZWRDb250ZW50U2l6ZV0sIE5TWmVyb1Np
emUpKQorICAgICAgICBbdHJhbnNsYXRpb25WaWV3Q29udHJvbGxlciBzZXRQcmVmZXJyZWRDb250
ZW50U2l6ZTpOU01ha2VTaXplKDQwMCwgNDAwKV07CisKKyAgICBhdXRvIHBvcG92ZXIgPSBhZG9w
dE5TKFtbTlNQb3BvdmVyIGFsbG9jXSBpbml0XSk7CisgICAgW3BvcG92ZXIgc2V0QmVoYXZpb3I6
TlNQb3BvdmVyQmVoYXZpb3JUcmFuc2llbnRdOworICAgIFtwb3BvdmVyIHNldEFwcGVhcmFuY2U6
W3ZpZXcgZWZmZWN0aXZlQXBwZWFyYW5jZV1dOworICAgIFtwb3BvdmVyIHNldEFuaW1hdGVzOllF
U107CisgICAgW3BvcG92ZXIgc2V0Q29udGVudFZpZXdDb250cm9sbGVyOnRyYW5zbGF0aW9uVmll
d0NvbnRyb2xsZXIuZ2V0KCldOworICAgIFtwb3BvdmVyIHNldENvbnRlbnRTaXplOlt0cmFuc2xh
dGlvblZpZXdDb250cm9sbGVyIHByZWZlcnJlZENvbnRlbnRTaXplXV07CisKKyAgICBOU1JlY3RF
ZGdlIHByZWZlcnJlZEVkZ2U7CisgICAgYXV0byBhaW0gPSBtZW51TG9jYXRpb24ueCgpOworICAg
IGF1dG8gaGlnaGxpZ2h0ID0gYm91bmRzSW5WaWV3LmNlbnRlcigpLngoKTsKKyAgICBpZiAoYWlt
ID09IGhpZ2hsaWdodCkKKyAgICAgICAgcHJlZmVycmVkRWRnZSA9IFt2aWV3IHVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb25dID09IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0
VG9MZWZ0ID8gTlNSZWN0RWRnZU1pblggOiBOU1JlY3RFZGdlTWF4WDsKKyAgICBlbHNlCisgICAg
ICAgIHByZWZlcnJlZEVkZ2UgPSBhaW0gPiBoaWdobGlnaHQgPyBOU1JlY3RFZGdlTWF4WCA6IE5T
UmVjdEVkZ2VNaW5YOworCisgICAgW3BvcG92ZXIgc2hvd1JlbGF0aXZlVG9SZWN0OmJvdW5kc0lu
VmlldyBvZlZpZXc6dmlldy5nZXQoKSBwcmVmZXJyZWRFZGdlOnByZWZlcnJlZEVkZ2VdOworfQor
CisjZW5kaWYgLy8gSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDBhY2VjNzE1ZmU0NmQ3
ODM3ZmQyZDJlZDI0ZDAyMjdjNmRmNDNmYTUuLmI2YzA3NWIxYTk1OTJiMWI1MzQ1YWFlMmUwNzNl
NmIyM2Y1ZDA2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTYwMiw2
ICs2MDIsMTEgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIFN0cmlu
ZyB0aGVtZU5hbWUoKSBjb25zdCA9IDA7CiAjZW5kaWYKKworI2lmIEhBVkUoVFJBTlNMQVRJT05f
VUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHZpcnR1YWwgYm9vbCBj
YW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgYm91bmRzSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgbWVudUxvY2F0aW9uKSA9IDA7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOGY0M2JiODg2
NGUzOTIwNjdlMThlYjE4MzdjMDUwYmEzN2Q3MmJhNi4uNTgwMDMwZWVlN2VkMWE2MDQzZmRkZTg0
NDMwNjVlODdhZTNlNGMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC02NzIyLDYgKzY3MjIsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6
CisjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKKyAgICAgICAgcGFnZUNsaWVudCgp
LmhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24obV9hY3RpdmVDb250ZXh0TWVudUNvbnRleHRE
YXRhLnNlbGVjdGVkVGV4dCgpLCBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEuc2VsZWN0
aW9uQm91bmRzKCksIG1fYWN0aXZlQ29udGV4dE1lbnVDb250ZXh0RGF0YS5tZW51TG9jYXRpb24o
KSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJl
YWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3OWUy
ODk3ZjAzNjIxZTZkYTgwN2FhYTEzNGUxNDFkNDUyNDViZjlkLi41MDg1OTcyYjJjYTM1OTExZDZi
MDAwOTc2OTY5MDhkYTk3OTNhYmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTg2Niw2ICsxODY2LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0SW1hZ2VF
eHRyYWN0aW9uUHJldmlldygpOwogI2VuZGlmCiAKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NF
UlZJQ0VTKQorICAgIGJvb2wgY2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0
OworI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNldExhc3ROYXZpZ2F0
aW9uV2FzQXBwQm91bmQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdm9pZCBsYXN0
TmF2aWdhdGlvbldhc0FwcEJvdW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRl
eCBkNTBkOTMxMGU4YzAwZTlmMmFhOGY3MjM0YjUxMjlkZTQwN2YwZjUyLi5jMzdlYjIzZmY1NDA2
ZTkzMDQzZjlmNzg4NmJmZTYwMjJhY2Y5OTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMjc2LDYgKzI3NiwxMSBAQCBwcml2YXRl
OgogICAgIFdlYkNvcmU6OkNvbG9yIGFjY2VudENvbG9yKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAor
I2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVT
KQorICAgIGJvb2wgY2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbihjb25zdCBTdHJpbmcm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBvdmVy
cmlkZTsKKyNlbmRpZgorCiAgICAgTlNWaWV3ICptX3ZpZXc7CiAgICAgV2Vha1B0cjxXZWJWaWV3
SW1wbD4gbV9pbXBsOwogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCA1ODQ5YTJk
OTk5NjRiOGMzYmNkMDM0ZmNmODNhNjBmMmI5MTYzZGRkLi41NmI0NDAyMTM1MzJlM2I1ZjlmM2Y2
M2JhNDlmNDk0Yjk4YzFkOTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC05OTIsNiArOTkyLDIwIEBAIFdlYkNvcmU6OkNvbG9y
IFBhZ2VDbGllbnRJbXBsOjphY2NlbnRDb2xvcigpCiB9CiAjZW5kaWYKIAorI2lmIEhBVkUoVFJB
TlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorCitib29sIFBh
Z2VDbGllbnRJbXBsOjpjYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9pbXBsLT5jYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCk7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBJbnRSZWN0JiBib3VuZHNJblZpZXcsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBtZW51TG9jYXRpb24pCit7CisgICAgbV9pbXBsLT5oYW5kbGVDb250ZXh0
TWVudVRyYW5zbGF0aW9uKHRleHQsIGJvdW5kc0luVmlldywgbWVudUxvY2F0aW9uKTsKK30KKwor
I2VuZGlmIC8vIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhU
X01FTlVTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51
UHJveHlNYWMubW0KaW5kZXggOGYyYTdkNDZjNTM5ODE4YTU4YWRkNGJhODA4ZGM2MWFiNDkzNjUz
ZC4uZjBmYWYxMTQwOGRiMDU1MzVmYmM4ZjQ0YmY5Y2YxMGQ4ODRmYmI2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0K
QEAgLTM2Miw2ICszNjIsMTQgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250
ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICAgICAgfSk7
CiAgICAgfQogCisjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKKyAgICBpZiAoIXBh
Z2UoKS0+Y2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIHx8IGlzUG9wb3Zlcikgewor
ICAgICAgICBmaWx0ZXJlZEl0ZW1zLnJlbW92ZUFsbE1hdGNoaW5nKFtdIChhdXRvJiBpdGVtKSB7
CisgICAgICAgICAgICByZXR1cm4gaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdU
cmFuc2xhdGU7CisgICAgICAgIH0pOworICAgIH0KKyNlbmRpZgorCiAgICAgYXV0byBzcGFyc2VN
ZW51SXRlbXMgPSByZXRhaW5QdHIoW05TUG9pbnRlckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVy
QXJyYXldKTsKICAgICBhdXRvIGluc2VydE1lbnVJdGVtID0gbWFrZUJsb2NrUHRyKFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBpdGVtc1JlbWFpbmluZyA9
IGZpbHRlcmVkSXRlbXMuc2l6ZSgpLCBtZW51ID0gV1RGTW92ZShtZW51KSwgc3BhcnNlTWVudUl0
ZW1zXShOU01lbnVJdGVtICppdGVtLCBOU1VJbnRlZ2VyIGluZGV4KSBtdXRhYmxlIHsKICAgICAg
ICAgQVNTRVJUKGluZGV4IDwgW3NwYXJzZU1lbnVJdGVtcyBjb3VudF0pOwpAQCAtNDYwLDYgKzQ2
OCw5IEBAIHN0YXRpYyBOU1N0cmluZyAqbWVudUl0ZW1JZGVudGlmaWVyKGNvbnN0IFdlYkNvcmU6
OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZVZpZGVvRnVsbHNjcmVlbjoKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmll
clRvZ2dsZUZ1bGxTY3JlZW47CiAKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0
ZToKKyAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclRyYW5zbGF0ZTsKKwogICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgICAgICByZXR1cm4gX1dLTWVu
dUl0ZW1JZGVudGlmaWVyU2hhcmVNZW51OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCBkYjk2YjQwNDgwNjAzODdhOTQzNjM0OGZkMmQz
OTBjNDQ4ODFlMzgxLi4yYjhhMjgyMGY4MDliOGFiMzk1ZjY2ZmQ4MDhmN2FkMDhkZWQzYWQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAg
LTYxNSw2ICs2MTUsNyBAQCBzdGF0aWMgT3B0aW9uYWw8TlNJbnRlZ2VyPiB0b1RhZyhXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbjoKICAgICAgICAgcmV0dXJuIFdlYk1lbnVJdGVt
VGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW47CiAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdSZXZlYWxJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
QmFzZUN1c3RvbVRhZyAuLi4gQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYzJmZjQxNTRkZmY5
Y2IzNGVhMGY1YmY4NThlY2VjZDMzOTQ2YTE2Li5iZGJmOGVjZGZiZjJjMWY5ZDRkZGQ0OTJiNTg5
YjU3ODU4YTIyZTIyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDMtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBZGQgYSB3YXkgdG8gdHJpZ2dl
ciB3ZWJwYWdlIHRyYW5zbGF0aW9uIHZpYSB0aGUgY29udGV4dCBtZW51CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5NTMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzczOTAxOTY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkanVzdCBhbiBBUEkgdGVzdC4gVGhpcyBuZXcgZW51bSB2YWx1ZSBpcyBu
b3cgdGhlIG5ldyBsYXN0IHZhbGlkIGl0ZW0gdmFsdWUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1lbnVBY3Rpb24uY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDMtMDggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjczMDg0Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRleHRNZW51
QWN0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZXh0TWVu
dUFjdGlvbi5jcHAKaW5kZXggMzQwNmZjMThlZGQxNWE2NDhlYWUwNzU0ZWE3ODkzYWY5MmI1Mjc4
NC4uMjY4NGU4NWI5OGVjNTdjZWExMGYxZDNhMzkwZTMxNmM2YmIzZTA0OSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRleHRNZW51QWN0aW9uLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1lbnVBY3Rpb24u
Y3BwCkBAIC0zNyw5ICszNyw5IEBAIFRFU1QoV2ViQ29yZSwgQ29udGV4dE1lbnVBY3Rpb25fSXNW
YWxpZEVudW0pCiAgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250
ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRl
bVRhZ05vQWN0aW9uKSk7CiAgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbVRhZ05vQWN0aW9uICsgMSkpOwogCi0gICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlk
RW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rp
b246OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlIC0gMSkpOwotICAgIEVYUEVDVF9UUlVF
KFdURjo6aXNWYWxpZEVudW08V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNv
bnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSkpOwotICAgIEVY
UEVDVF9GQUxTRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihX
ZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2Ug
KyAxKSk7CisgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0
TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRh
Z1RyYW5zbGF0ZSAtIDEpKTsKKyAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4
dE1lbnVJdGVtVGFnVHJhbnNsYXRlKSk7CisgICAgRVhQRUNUX0ZBTFNFKFdURjo6aXNWYWxpZEVu
dW08V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9u
OjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGUgKyAxKSk7CiAKICAgICBFWFBFQ1RfRkFMU0Uo
V1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29u
dGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgLSAxKSk7CiAgICAg
RVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4o
V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422651</attachid>
            <date>2021-03-08 18:27:17 -0800</date>
            <delta_ts>2021-03-09 08:21:35 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-222953-20210308182716.patch</filename>
            <type>text/plain</type>
            <size>40802</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc1N2ZkMDY3ODMxMGMz
NmQ2ZDFlODg1ZmJmMjhmYWMzMmU3ZDM2My4uNmY4MDRlNmNjMjcwYzk5MDY1OGU2ZTRlNTg5ZTQ5
YWI0NTIzMzRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTAzLTA4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRk
IGEgd2F5IHRvIHRyaWdnZXIgd2VicGFnZSB0cmFuc2xhdGlvbiB2aWEgdGhlIGNvbnRleHQgbWVu
dQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTUz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MzkwMTk2Nz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgSW50cm9kdWNlIGEgV2ViQ29yZSBlbnVtIGZvciB0
aGUgbmV3IGNvbnRleHQgbWVudSBpdGVtLiBBZGRpdGlvbmFsbHksIHVwZGF0ZSBgTG9jYWxpemFi
bGUuc3RyaW5nc2AgYnkgcmUtcnVubmluZworICAgICAgICBgVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2Via2l0LWxvY2FsaXphYmxlLXN0cmluZ3NgLgorCisgICAgICAgICogZW4ubHByb2ovTG9jYWxp
emFibGUuc3RyaW5nczoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udGV4dC5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250ZXh0OjpzZXRTZWxlY3Rpb25Cb3VuZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250ZXh0OjpzZWxlY3Rpb25Cb3VuZHMgY29u
c3QpOgorCisgICAgICAgIEFkZCBhIG5ldyBtZW1iZXIgdG8gcmVwcmVzZW50IHRoZSB0ZXh0IHNl
bGVjdGlvbiBib3VuZHMgaW4gcm9vdCB2aWV3IGNvb3JkaW5hdGVzLgorCisgICAgICAgICogcGFn
ZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisKKyAgICAgICAgQ29tcHV0
ZSBhbmQgc2V0IHRleHQgc2VsZWN0aW9uIGJvdW5kcy4KKworICAgICAgICAoV2ViQ29yZTo6Q29u
dGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZCBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRD
b250ZXh0TWVudUFjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6
CisKKyAgICAgICAgQWRkIHRoZSBuZXcgZW51bSB2YWx1ZS4KKworICAgICAgICAqIHBsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJ1bmNhdGVkU3RyaW5n
Rm9yTWVudUl0ZW0pOgorCisgICAgICAgIFJlbmFtZWQgdGhpcyBmcm9tIGB0cnVuY2F0ZWRTdHJp
bmdGb3JMb29rdXBNZW51SXRlbWAsIHNpbmNlIGl0J3Mgbm93IHVzZWQgZm9yIHRoaXMgbmV3IHRy
YW5zbGF0ZSBtZW51IGl0ZW0uCisKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0xvb2tVcEluRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdUcmFuc2xhdGUpOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBmdW5jdGlvbiB0byByZXR1cm4g
dGhlIHRpdGxlIGZvciB0aGUgbmV3IHRyYW5zbGF0ZSBtZW51IGl0ZW0sIG1vZGVsZWQgYWZ0ZXIg
Ikxvb2sgVXAiLgorCisgICAgICAgIChXZWJDb3JlOjp0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBN
ZW51SXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
OgorCiAyMDIxLTAzLTA4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3MzA4NC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzVj
ODY2ZjAzNTE1MTBkMTEwMjY1OTYzOGI2NDEyNjBlNjcyZjdlYy4uZDZlN2Q4Mjg1NjAxNTllZDJl
OTkwYjkzYzE4YTQ3MjIwNTA2ZWVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0w
My0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBb
bWFjT1NdIEFkZCBhIHdheSB0byB0cmlnZ2VyIHdlYnBhZ2UgdHJhbnNsYXRpb24gdmlhIHRoZSBj
b250ZXh0IG1lbnUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMjk1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM5MDE5Njc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUg
bmV3IGNvbnRleHQgbWVudSBpdGVtIGluIFdlYktpdDIuIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaDoK
KyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJL
aXQ6OnRvQVBJKToKKyAgICAgICAgKFdlYktpdDo6dG9JbXBsKToKKworICAgICAgICBBZGQgYSBD
IEFQSSB2YWx1ZSBmb3IgdGhlIG5ldyBXZWJDb3JlIGVudW0uCisKKyAgICAgICAgKiBTaGFyZWQv
Q29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51
Q29udGV4dERhdGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEpOgorICAgICAgICAoV2ViS2l0OjpD
b250ZXh0TWVudUNvbnRleHREYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpD
b250ZXh0TWVudUNvbnRleHREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Db250ZXh0
TWVudUNvbnRleHREYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51Q29udGV4dERh
dGE6OnNlbGVjdGlvbkJvdW5kcyBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgcmVjdCwgYHNlbGVj
dGlvbkJvdW5kc2AsIHRvIGBDb250ZXh0TWVudUNvbnRleHREYXRhYCB0aGF0IHJlcHJlc2VudHMg
dGhlIHJlY3Qgb2YgdGhlIGN1cnJlbnQgdGV4dAorICAgICAgICBzZWxlY3Rpb24gaW4gcm9vdCB2
aWV3IGNvb3JkaW5hdGVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJ
dGVtSWRlbnRpZmllcnMubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJ
dGVtSWRlbnRpZmllcnNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBh
Z2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNhbkhhbmRs
ZUNvbnRleHRNZW51VHJhbnNsYXRpb24gY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNhbkhhbmRsZUNvbnRleHRNZW51VHJh
bnNsYXRpb24gY29uc3QpOgorCisgICAgICAgIENvbnN1bHQgdGhlIGNsYXNzIG1ldGhvZCB0byBy
ZXR1cm4gd2hldGhlciBvciBub3QgdGhlIG1lbnUgaXRlbSBzaG91bGQgYmUgcHJlc2VudC4gSWYg
bm90LCB0aGVuIHdlIGZpbHRlciB0aGlzCisgICAgICAgIGl0ZW0gb3V0IGZyb20gdGhlIGxpc3Qg
b2YgY29udGV4dCBtZW51IGl0ZW1zIGluIGBXZWJDb250ZXh0TWVudVByb3h5TWFjYCBiZWxvdy4K
KworICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlQ29udGV4dE1lbnVUcmFuc2xh
dGlvbik6CisKKyAgICAgICAgSGFuZGxlIHRoZSB0cmFuc2xhdGlvbiBhY3Rpb24gYnkgdXNpbmcg
YE5TUG9wb3ZlcmAgdG8gcHJlc2VudCBhbiBgTFRVSVRyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXJg
LgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6Y2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51
RnJvbUl0ZW1zKToKKworICAgICAgICBSZW1vdmUgdGhlIHRyYW5zbGF0ZSBtZW51IGl0ZW0gaWYg
d2UncmUgYWxyZWFkeSBwcmVzZW50ZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBwb3BvdmVyLCBvciBp
ZiB0aGUgc3lzdGVtIGRvZXMgbm90CisgICAgICAgIHN1cHBvcnQgdGhlIGZlYXR1cmUgKHNlZSBg
V2ViVmlld0ltcGw6OmNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb25gKS4KKworICAgICAg
ICAoV2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIpOgorCiAyMDIxLTAzLTA4ICBLaW1tbyBLaW5u
dW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViR0wgYXNzZXJ0cyBhZnRl
ciBHUFUgcHJvY2VzcyB0aW1lcyBvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAz
NTQ2Zjk2MDY3NTY0NWFlNzA2MTJkNWM5YTk4NTI1YzVhOWRkZDYzLi5lZDA0YjQwZGM5MDI0MGFk
NGNmNmNiY2U5MmFmOTQ4N2U1OGE5MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjEtMDMtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBZGQgYSB3YXkgdG8gdHJpZ2dlciB3ZWJwYWdl
IHRyYW5zbGF0aW9uIHZpYSB0aGUgY29udGV4dCBtZW51CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5NTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzczOTAxOTY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAg
ICBBZGQgKG5vLW9wKSBoYW5kbGluZyBmb3IgdGhlIG5ldyBlbnVtIHZhbHVlLgorCisgICAgICAg
ICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKHRvVGFnKToKKwogMjAyMS0wMy0w
NiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgRHVt
cFJlbmRlclRyZWUgV2ViUHJlZmVyZW5jZXMgcmVzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDczOTYxMjI3NjkwMmUzMGYwNzgwNGNkZjc4ZWQ1
NjdlYjQ3M2M2ODcuLjk1MDliNGUxNDA0M2U4NWI1M2IyZDJiOTc2NTg5MDIxNWM3ODQ3ZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysr
IGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtMTI0LDEy
ICsxMjQsMjEgQEAKIC8qIEJ1dHRvbiB0aXRsZSBpbiBEZXZpY2UgT3JpZW50YXRpb24gUGVybWlz
c2lvbiBBUEkgcHJvbXB0ICovCiAiQWxsb3cgKGRldmljZSBtb3Rpb24gYW5kIG9yaWVudGF0aW9u
IGFjY2VzcykiID0gIkFsbG93IjsKIAotLyogTWVzc2FnZSBmb3IgcmVxdWVzdGluZyBjcm9zcy1z
aXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8KLSJBbGxvdyDigJwlQOKAnSB0
byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIg
PSAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3aGlsZSBi
cm93c2luZyDigJwlQOKAnT8iOworLyogQWxsb3cgYnV0dG9uIHRpdGxlIGluIHNwZWVjaCByZWNv
Z25pdGlvbiBwcm9tcHQgKi8KKyJBbGxvdyAoc3BlZWNocmVjb2duaXRpb24pIiA9ICJBbGxvdyI7
CisKKy8qIEFsbG93IGJ1dHRvbiB0aXRsZSBpbiB1c2VyIG1lZGlhIHByb21wdCAqLworIkFsbG93
ICh1c2VybWVkaWEpIiA9ICJBbGxvdyI7CiAKLS8qIE1lc3NhZ2UgZm9yIHJlcXVlc3RpbmcgY3Jv
c3Mtc2l0ZSBjb29raWUgYW5kIHdlYnNpdGUgZGF0YSBhY2Nlc3MgZm9yIG11bHRpcGxlIHRoaXJk
IHBhcnR5IGRvbWFpbnMuICovCisvKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3NzLXNpdGUg
Y29va2llIGFuZCB3ZWJzaXRlIGRhdGEgYWNjZXNzLiAqLwogIkFsbG93IOKAnCVA4oCdIGFuZCDi
gJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKA
nCVA4oCdPyIgPSAiQWxsb3cg4oCcJUDigJ0gYW5kIOKAnCVA4oCdIHRvIHVzZSBjb29raWVzIGFu
ZCB3ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IjsKIAorLyogTWVzc2FnZSBm
b3Igc3BlY2hyZWNvZ25pdGlvbiBwcm9tcHQgKi8KKyJBbGxvdyDigJwlQOKAnSB0byBjYXB0dXJl
IHlvdXIgYXVkaW8gYW5kIHVzZSBpdCBmb3Igc3BlZWNoIHJlY29nbml0aW9uPyIgPSAiQWxsb3cg
4oCcJUDigJ0gdG8gY2FwdHVyZSB5b3VyIGF1ZGlvIGFuZCB1c2UgaXQgZm9yIHNwZWVjaCByZWNv
Z25pdGlvbj8iOworCisvKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3NzLXNpdGUgY29va2ll
IGFuZCB3ZWJzaXRlIGRhdGEgYWNjZXNzLiAqLworIkFsbG93IOKAnCVA4oCdIHRvIHVzZSBjb29r
aWVzIGFuZCB3ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IiA9ICJBbGxvdyDi
gJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKA
nCVA4oCdPyI7CisKIC8qIE1lc3NhZ2UgZm9yIHVzZXIgbWVkaWEgcHJvbXB0ICovCiAiQWxsb3cg
4oCcJUDigJ0gdG8gdXNlIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lPyIgPSAiQWxsb3cg4oCc
JUDigJ0gdG8gdXNlIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lPyI7CiAKQEAgLTEzOSwyMSAr
MTQ4LDYgQEAKIC8qIE1lc3NhZ2UgZm9yIHVzZXIgbWljcm9waG9uZSBhY2Nlc3MgcHJvbXB0ICov
CiAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgbWljcm9waG9uZT8iID0gIkFsbG93IOKAnCVA
4oCdIHRvIHVzZSB5b3VyIG1pY3JvcGhvbmU/IjsKIAotLyogQWxsb3cgYnV0dG9uIHRpdGxlIGlu
IHVzZXIgbWVkaWEgcHJvbXB0ICovCi0iQWxsb3cgKHVzZXJtZWRpYSkiID0gIkFsbG93IjsKLQot
LyogRGlzYWxsb3cgYnV0dG9uIHRpdGxlIGluIHVzZXIgbWVkaWEgcHJvbXB0ICovCi0iRG9u4oCZ
dCBBbGxvdyAodXNlcm1lZGlhKSIgPSAiRG9u4oCZdCBBbGxvdyI7Ci0KLS8qIE1lc3NhZ2UgZm9y
IHNwZWVjaCByZWNvZ25pdGlvbiBwcm9tcHQgKi8KLSJBbGxvdyDigJwlQOKAnSB0byBjYXB0dXJl
IHlvdXIgYXVkaW8gYW5kIHVzZSBpdCBmb3Igc3BlZWNoIHJlY29nbml0aW9uPyIgPSAiQWxsb3cg
4oCcJUDigJ0gdG8gY2FwdHVyZSB5b3VyIGF1ZGlvIGFuZCB1c2UgaXQgZm9yIHNwZWVjaCByZWNv
Z25pdGlvbj8iOwotCi0vKiBBbGxvdyBidXR0b24gdGl0bGUgaW4gc3BlZWNoIHJlY29nbml0aW9u
IHByb21wdCAqLwotIkFsbG93IChzcGVlY2hyZWNvZ25pdGlvbikiID0gIkFsbG93IjsKLQotLyog
RGlzYWxsb3cgYnV0dG9uIHRpdGxlIGluIHNwZWVjaCByZWNvZ25pdGlvbiBwcm9tcHQgKi8KLSJE
b27igJl0IEFsbG93IChzcGVlY2hyZWNvZ25pdGlvbikiID0gIkRvbuKAmXQgQWxsb3ciOwotCiAv
KiBXS0Vycm9yVW5rbm93biBkZXNjcmlwdGlvbiAqLwogIkFuIHVua25vd24gZXJyb3Igb2NjdXJy
ZWQiID0gIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQiOwogCkBAIC0xNjMsNiArMTU3LDkgQEAK
IC8qIE1hbHdhcmUgY29uZmlybWF0aW9uIGRpYWxvZyB0aXRsZSAqLwogIkFyZSB5b3Ugc3VyZSB5
b3Ugd2lzaCB0byBnbyB0byB0aGlzIHNpdGU/IiA9ICJBcmUgeW91IHN1cmUgeW91IHdpc2ggdG8g
Z28gdG8gdGhpcyBzaXRlPyI7CiAKKy8qIFdLRXJyb3JOYXZpZ2F0aW9uQXBwQm91bmREb21haW4g
ZGVzY3JpcHRpb24gKi8KKyJBdHRlbXB0ZWQgdG8gbmF2aWdhdGUgYXdheSBmcm9tIGFuIGFwcC1i
b3VuZCBkb21haW4gb3IgbmF2aWdhdGUgYWZ0ZXIgdXNpbmcgcmVzdHJpY3RlZCBBUElzIiA9ICJB
dHRlbXB0ZWQgdG8gbmF2aWdhdGUgYXdheSBmcm9tIGFuIGFwcC1ib3VuZCBkb21haW4gb3IgbmF2
aWdhdGUgYWZ0ZXIgdXNpbmcgcmVzdHJpY3RlZCBBUElzIjsKKwogLyogV0tFcnJvckF0dHJpYnV0
ZWRTdHJpbmdDb250ZW50RmFpbGVkVG9Mb2FkIGRlc2NyaXB0aW9uICovCiAiQXR0cmlidXRlZCBz
dHJpbmcgY29udGVudCBmYWlsZWQgdG8gbG9hZCIgPSAiQXR0cmlidXRlZCBzdHJpbmcgY29udGVu
dCBmYWlsZWQgdG8gbG9hZCI7CiAKQEAgLTMyMCwxMSArMzE3LDExIEBACiAiRGljdGF0aW9uIChV
bmRvIGFjdGlvbiBuYW1lKSIgPSAiRGljdGF0aW9uIjsKIAogLyogTWVzc2FnZSBmb3IgcmVxdWVz
dGluZyBjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8KLSJEbyB5
b3Ugd2FudCB0byBhbGxvdyDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRh
IHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIgPSAiRG8geW91IHdhbnQgdG8gYWxsb3cg4oCcJUDi
gJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3aGlsZSBicm93c2luZyDigJwlQOKA
nT8iOwotCi0vKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3NzLXNpdGUgY29va2llIGFuZCB3
ZWJzaXRlIGRhdGEgYWNjZXNzIGZvciBtdWx0aXBsZSB0aGlyZCBwYXJ0eSBkb21haW5zLiAqLwog
IkRvIHlvdSB3YW50IHRvIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB1c2UgY29va2ll
cyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIgPSAiRG8geW91IHdh
bnQgdG8gYWxsb3cg4oCcJUDigJ0gYW5kIOKAnCVA4oCdIHRvIHVzZSBjb29raWVzIGFuZCB3ZWJz
aXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IjsKIAorLyogTWVzc2FnZSBmb3IgcmVx
dWVzdGluZyBjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8KKyJE
byB5b3Ugd2FudCB0byBhbGxvdyDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBk
YXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyIgPSAiRG8geW91IHdhbnQgdG8gYWxsb3cg4oCc
JUDigJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3aGlsZSBicm93c2luZyDigJwl
QOKAnT8iOworCiAvKiBCdXR0b24gdGl0bGUgaW4gU3RvcmFnZSBBY2Nlc3MgQVBJIHByb21wdCAq
LwogIkRvbid0IEFsbG93IChjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vz
cykiID0gIkRvbid0IEFsbG93IjsKIApAQCAtMzM0LDYgKzMzMSwxMiBAQAogLyogVGl0bGUgb2Yg
dGhlIERvbmUgYnV0dG9uIGZvciB6b29tZWQgZm9ybSBjb250cm9scy4gKi8KICJEb25lIiA9ICJE
b25lIjsKIAorLyogRGlzYWxsb3cgYnV0dG9uIHRpdGxlIGluIHNwZWVjaCByZWNvZ25pdGlvbiBw
cm9tcHQgKi8KKyJEb27igJl0IEFsbG93IChzcGVlY2hyZWNvZ25pdGlvbikiID0gIkRvbuKAmXQg
QWxsb3ciOworCisvKiBEaXNhbGxvdyBidXR0b24gdGl0bGUgaW4gdXNlciBtZWRpYSBwcm9tcHQg
Ki8KKyJEb27igJl0IEFsbG93ICh1c2VybWVkaWEpIiA9ICJEb27igJl0IEFsbG93IjsKKwogLyog
RG93bmxvYWQgQXVkaW8gVG8gRGlzayBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkRvd25sb2FkIEF1
ZGlvIiA9ICJEb3dubG9hZCBBdWRpbyI7CiAKQEAgLTQ3Miw2ICs0NzUsMTIgQEAKIC8qIFdLRXJy
b3JKYXZhU2NyaXB0UmVzdWx0VHlwZUlzVW5zdXBwb3J0ZWQgZGVzY3JpcHRpb24gKi8KICJKYXZh
U2NyaXB0IGV4ZWN1dGlvbiByZXR1cm5lZCBhIHJlc3VsdCBvZiBhbiB1bnN1cHBvcnRlZCB0eXBl
IiA9ICJKYXZhU2NyaXB0IGV4ZWN1dGlvbiByZXR1cm5lZCBhIHJlc3VsdCBvZiBhbiB1bnN1cHBv
cnRlZCB0eXBlIjsKIAorLyogV0tFcnJvckphdmFTY3JpcHRBcHBCb3VuZERvbWFpbiBkZXNjcmlw
dGlvbiAqLworIkphdmFTY3JpcHQgZXhlY3V0aW9uIHRhcmdldGVkIGEgZnJhbWUgdGhhdCBpcyBu
b3QgaW4gYW4gYXBwLWJvdW5kIGRvbWFpbiIgPSAiSmF2YVNjcmlwdCBleGVjdXRpb24gdGFyZ2V0
ZWQgYSBmcmFtZSB0aGF0IGlzIG5vdCBpbiBhbiBhcHAtYm91bmQgZG9tYWluIjsKKworLyogV0tF
cnJvckphdmFTY3JpcHRJbnZhbGlkRnJhbWVUYXJnZXQgZGVzY3JpcHRpb24gKi8KKyJKYXZhU2Ny
aXB0IGV4ZWN1dGlvbiB0YXJnZXRlZCBhbiBpbnZhbGlkIGZyYW1lIiA9ICJKYXZhU2NyaXB0IGV4
ZWN1dGlvbiB0YXJnZXRlZCBhbiBpbnZhbGlkIGZyYW1lIjsKKwogLyogVW5kbyBhY3Rpb24gbmFt
ZSAqLwogIkp1c3RpZnkgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJKdXN0aWZ5IjsKIApAQCAtNTcx
LDE1ICs1ODAsMTUgQEAKIC8qIE9wdGlvbiBpbiBzZWdtZW50ZWQgY29udHJvbCBmb3IgaW5zZXJ0
aW5nIGEgbnVtYmVyZWQgbGlzdCBpbiB0ZXh0IGVkaXRpbmcgKi8KICJOdW1iZXJlZCBsaXN0IiA9
ICJOdW1iZXJlZCBsaXN0IjsKIAorLyogVGl0bGUgb2YgdGhlIE9LIGJ1dHRvbiBpbiBkYXRlL3Rp
bWUgZm9ybSBjb250cm9scy4gKi8KKyJPSyAoT0sgYnV0dG9uIHRpdGxlIGluIGRhdGUvdGltZSBw
aWNrZXIpIiA9ICJPSyI7CisKIC8qIFRpdGxlIG9mIHRoZSBPSyBidXR0b24gZm9yIHRoZSBudW1i
ZXIgcGFkIGluIHpvb21lZCBmb3JtIGNvbnRyb2xzLiAqLwogIk9LIChPSyBidXR0b24gdGl0bGUg
aW4gZXh0cmEgem9vbWVkIG51bWJlciBwYWQpIiA9ICJPSyI7CiAKIC8qIE9LIGJ1dHRvbiBsYWJl
bCBpbiBkb2N1bWVudCBwYXNzd29yZCBmYWlsdXJlIGFsZXJ0ICovCiAiT0sgKGRvY3VtZW50IHBh
c3N3b3JkIGZhaWx1cmUgYWxlcnQpIiA9ICJPSyI7CiAKLS8qIFRpdGxlIG9mIHRoZSBPSyBidXR0
b24gaW4gZGF0ZS90aW1lIGZvcm0gY29udHJvbHMuICovCi0iT0sgKE9LIGJ1dHRvbiB0aXRsZSBp
biBkYXRlL3RpbWUgcGlja2VyKSIgPSAiT0siOwotCiAvKiBNZW51IGl0ZW0gbGFiZWwgZm9yIHRo
ZSB0cmFjayB0aGF0IHJlcHJlc2VudHMgZGlzYWJsaW5nIGNsb3NlZCBjYXB0aW9ucyAqLwogIk9m
ZiIgPSAiT2ZmIjsKIApAQCAtOTI2LDEwICs5MzUsMTAgQEAKICJUaGlzIHdlYnNpdGUgbWF5IHRy
eSB0byB0cmljayB5b3UgaW50byBpbnN0YWxsaW5nIHNvZnR3YXJlIHRoYXQgaGFybXMgeW91ciBi
cm93c2luZyBleHBlcmllbmNlLCBsaWtlIGNoYW5naW5nIHlvdXIgc2V0dGluZ3Mgd2l0aG91dCB5
b3VyIHBlcm1pc3Npb24gb3Igc2hvd2luZyB5b3UgdW53YW50ZWQgYWRzLiBPbmNlIGluc3RhbGxl
ZCwgaXQgbWF5IGJlIGRpZmZpY3VsdCB0byByZW1vdmUuIiA9ICJUaGlzIHdlYnNpdGUgbWF5IHRy
eSB0byB0cmljayB5b3UgaW50byBpbnN0YWxsaW5nIHNvZnR3YXJlIHRoYXQgaGFybXMgeW91ciBi
cm93c2luZyBleHBlcmllbmNlLCBsaWtlIGNoYW5naW5nIHlvdXIgc2V0dGluZ3Mgd2l0aG91dCB5
b3VyIHBlcm1pc3Npb24gb3Igc2hvd2luZyB5b3UgdW53YW50ZWQgYWRzLiBPbmNlIGluc3RhbGxl
ZCwgaXQgbWF5IGJlIGRpZmZpY3VsdCB0byByZW1vdmUuIjsKIAogLyogSW5mb3JtYXRpdmUgdGV4
dCBmb3IgcmVxdWVzdGluZyBjcm9zcy1zaXRlIGNvb2tpZSBhbmQgd2Vic2l0ZSBkYXRhIGFjY2Vz
cy4gKi8KLSJUaGlzIHdpbGwgYWxsb3cg4oCcJUDigJ0gdG8gdHJhY2sgeW91ciBhY3Rpdml0eS4i
ID0gIlRoaXMgd2lsbCBhbGxvdyDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFjdGl2aXR5LiI7Cisi
VGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFjdGl2
aXR5LiIgPSAiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5
b3VyIGFjdGl2aXR5LiI7CiAKIC8qIEluZm9ybWF0aXZlIHRleHQgZm9yIHJlcXVlc3RpbmcgY3Jv
c3Mtc2l0ZSBjb29raWUgYW5kIHdlYnNpdGUgZGF0YSBhY2Nlc3MuICovCi0iVGhpcyB3aWxsIGFs
bG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFjdGl2aXR5LiIgPSAiVGhp
cyB3aWxsIGFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB0cmFjayB5b3VyIGFjdGl2aXR5
LiI7CisiVGhpcyB3aWxsIGFsbG93IOKAnCVA4oCdIHRvIHRyYWNrIHlvdXIgYWN0aXZpdHkuIiA9
ICJUaGlzIHdpbGwgYWxsb3cg4oCcJUDigJ0gdG8gdHJhY2sgeW91ciBhY3Rpdml0eS4iOwogCiAv
KiBVbmRvIGFjdGlvbiBuYW1lICovCiAiVGlnaHRlbiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1l
KSIgPSAiVGlnaHRlbiBLZXJuaW5nIjsKQEAgLTk1NSw2ICs5NjQsOSBAQAogLyogVHJhbnNmb3Jt
YXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIlRyYW5zZm9ybWF0aW9ucyIgPSAiVHJh
bnNmb3JtYXRpb25zIjsKIAorLyogVHJhbnNsYXRlIGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2Vs
ZWN0ZWQgd29yZCAqLworIlRyYW5zbGF0ZSDigJwlQOKAnSIgPSAiVHJhbnNsYXRlIOKAnCVA4oCd
IjsKKwogLyogVW5kbyBhY3Rpb24gbmFtZSAqLwogIlR1cm4gT2ZmIEtlcm5pbmcgKFVuZG8gYWN0
aW9uIG5hbWUpIiA9ICJUdXJuIE9mZiBLZXJuaW5nIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250ZXh0LmgKaW5kZXggYzIyYjFhMjFkMTEwMmEyNDBkYzA4YzU4ODIwYWEwNGU5
OWYzZjk1Ny4uZTVmMDA1MGIxNzViZjMzMTUzNDBiMDRjMGJkYjRhYWU0Zjc0ZjRhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udGV4dC5oCkBAIC00Myw2ICs0Myw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dChjb25zdCBTdHJpbmcmIHNlbGVjdGVkVGV4
dCkgeyBtX3NlbGVjdGVkVGV4dCA9IHNlbGVjdGVkVGV4dDsgfQogICAgIGNvbnN0IFN0cmluZyYg
c2VsZWN0ZWRUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZFRleHQ7IH0KIAorICAgIHZv
aWQgc2V0U2VsZWN0aW9uQm91bmRzKGNvbnN0IEludFJlY3QmIGJvdW5kcykgeyBtX3NlbGVjdGlv
bkJvdW5kcyA9IGJvdW5kczsgfQorICAgIGNvbnN0IEludFJlY3QmIHNlbGVjdGlvbkJvdW5kcygp
IGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uQm91bmRzOyB9CisKICNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKICAgICB2b2lkIHNldENvbnRyb2xsZWRJbWFnZShJbWFnZSogY29udHJvbGxl
ZEltYWdlKSB7IG1fY29udHJvbGxlZEltYWdlID0gY29udHJvbGxlZEltYWdlOyB9CiAgICAgSW1h
Z2UqIGNvbnRyb2xsZWRJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJvbGxlZEltYWdlLmdl
dCgpOyB9CkBAIC01MSw2ICs1NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSGl0VGVzdFJl
c3VsdCBtX2hpdFRlc3RSZXN1bHQ7CiAgICAgU3RyaW5nIG1fc2VsZWN0ZWRUZXh0OworICAgIElu
dFJlY3QgbV9zZWxlY3Rpb25Cb3VuZHM7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykK
ICAgICBSZWZQdHI8SW1hZ2U+IG1fY29udHJvbGxlZEltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDIwZjQzNGY2ZTg2Mzc5ZTM2NWRi
MjYyNmMxNWEzYzZhMmMxOThhZDYuLmQ5YmQ5ZDhlZDRkMDljNTQ3OTQ2NjljMGQ5YzM3MTI3Zjg5
ZTQ4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5j
cHAKQEAgLTUxOCw2ICs1MTgsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBm
cmFtZS0+ZWRpdG9yKCkuYXBwbHlEaWN0YXRpb25BbHRlcm5hdGl2ZSh0aXRsZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJl
IGhhbmRsZWQgYXQgdGhlIGNsaWVudCBsYXllci4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIGJyZWFrOwpAQCAtODMxLDcgKzgzMiw3IEBAIHZvaWQgQ29udGV4dE1lbnVD
b250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgaWYgKCFtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgp
LmlzQ29udGVudEVkaXRhYmxlKCkgJiYgaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKm5vZGUp
KQogICAgICAgICByZXR1cm47CiAjZW5kaWYKLSAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1
bWVudCgpLmZyYW1lKCk7CisgICAgYXV0byBmcmFtZSA9IG1ha2VSZWZQdHIobm9kZS0+ZG9jdW1l
bnQoKS5mcmFtZSgpKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKQEAgLTg0
Miw5ICs4NDMsMTcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICNl
bmRpZgogCiAgICAgaWYgKCFtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmlzQ29udGVudEVkaXRh
YmxlKCkpIHsKLSAgICAgICAgU3RyaW5nIHNlbGVjdGVkU3RyaW5nID0gbV9jb250ZXh0LmhpdFRl
c3RSZXN1bHQoKS5zZWxlY3RlZFRleHQoKTsKKyAgICAgICAgYXV0byBzZWxlY3RlZFN0cmluZyA9
IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuc2VsZWN0ZWRUZXh0KCk7CiAgICAgICAgIG1fY29u
dGV4dC5zZXRTZWxlY3RlZFRleHQoc2VsZWN0ZWRTdHJpbmcpOwogCisgICAgICAgIGlmICghc2Vs
ZWN0ZWRTdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byB2aWV3ID0gbWFr
ZVJlZlB0cihmcmFtZS0+dmlldygpKSkgeworICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0aW9u
Qm91bmRzSW5Db250ZW50Q29vcmRpbmF0ZXMgPSBlbmNsb3NpbmdJbnRSZWN0KGZyYW1lLT5zZWxl
Y3Rpb24oKS5zZWxlY3Rpb25Cb3VuZHMoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFzZWxlY3Rp
b25Cb3VuZHNJbkNvbnRlbnRDb29yZGluYXRlcy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
ICAgIG1fY29udGV4dC5zZXRTZWxlY3Rpb25Cb3VuZHModmlldy0+Y29udGVudHNUb1Jvb3RWaWV3
KHNlbGVjdGlvbkJvdW5kc0luQ29udGVudENvb3JkaW5hdGVzKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKwogICAgICAgICBGcmFtZUxvYWRlciYgbG9hZGVyID0gZnJhbWUtPmxvYWRlcigp
OwogICAgICAgICBVUkwgbGlua1VSTCA9IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1
dGVMaW5rVVJMKCk7CiAgICAgICAgIGlmICghbGlua1VSTC5pc0VtcHR5KCkpIHsKQEAgLTkwOCw2
ICs5MTcsMTAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKIAogICAg
ICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKExvb2tVcEluRGljdGlvbmFyeUl0ZW0sIG1fY29u
dGV4dE1lbnUuZ2V0KCkpOwogI2VuZGlmCisjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNF
UykKKyAgICAgICAgICAgICAgICAgICAgQ29udGV4dE1lbnVJdGVtIFRyYW5zbGF0ZUl0ZW0oQWN0
aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlLCBjb250ZXh0TWVudUl0ZW1UYWdU
cmFuc2xhdGUoc2VsZWN0ZWRTdHJpbmcpKTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kSXRl
bShUcmFuc2xhdGVJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKKyNlbmRpZgogCiAjaWYgIVBM
QVRGT1JNKEdUSykKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShTZWFyY2hXZWJJdGVt
LCBtX2NvbnRleHRNZW51LmdldCgpKTsKQEAgLTE0NjMsNiArMTQ3Niw3IEBAIHZvaWQgQ29udGV4
dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBp
dGVtKSBjb25zdAogICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBzaG91bGRFbmFibGUgJiYgIG1f
Y29udGV4dC5oaXRUZXN0UmVzdWx0KCkubWVkaWFNdXRlZCgpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcAppbmRleCA4
Mzc2YTFmNjk4MGU3YjllMTRjYzZjOTI3ZmI2N2U1Mjg0NDI1MDQ5Li41YWUwMjVlOTE4MGM1ZGZi
MjE5NjJlMTdmMTllNjcwNGQ1ZDZkNDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5jcHAKQEAgLTI0Nyw2ICsyNDcsNyBAQCBib29sIGlzVmFsaWRDb250ZXh0
TWVudUFjdGlvbihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVu
dUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgIGNhc2UgQ29udGV4dE1l
bnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVu
OgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbElt
YWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
bGF0ZToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3Vz
dG9tVGFnOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUxhc3RD
dXN0b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtQmFz
ZUFwcGxpY2F0aW9uVGFnOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
aAppbmRleCAxNWZhODdkYTYwNzQ5YTE3ODhmYzFmMThjMTUxMzQwMTFhOTViMzgzLi5kYTFhMGFl
NzJiYTM0MmEzMzljYTEzMTFjYTdmOTU2YmM4YWIzYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMTUwLDYgKzE1MCw3IEBAIGVudW0gQ29udGV4dE1l
bnVBY3Rpb24gewogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3R3JvdXAs
CiAjZW5kaWYKICAgICBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSwKKyAgICBDb250ZXh0
TWVudUl0ZW1UYWdUcmFuc2xhdGUsCiAgICAgQ29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyA9
IDUwMDAsCiAgICAgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZyA9IDU5OTksCiAgICAgQ29u
dGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnID0gMTAwMDAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggNGNjZDExYjY1MjUzMDM4YmQwY2I0
NmZjNDE0NzU4MDgwYmMxY2FmZC4uYzVjOWVkYjk2YjNmNDkyNzU1MDQzYzFhOTdlZmZlODFhMzgz
OTg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAK
QEAgLTgwLDcgKzgwLDcgQEAgU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkp
CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAotc3RhdGljIFN0cmluZyB0cnVuY2F0ZWRT
dHJpbmdGb3JMb29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9yaWdpbmFsKQorc3RhdGljIFN0
cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JNZW51SXRlbShjb25zdCBTdHJpbmcmIG9yaWdpbmFsKQog
ewogICAgIC8vIFRydW5jYXRlIHRoZSBzdHJpbmcgaWYgaXQncyB0b28gbG9uZy4gVGhpcyBudW1i
ZXIgaXMgcm91Z2hseSB0aGUgc2FtZSBhcyB0aGUgb25lIHVzZWQgYnkgQXBwS2l0LgogICAgIHVu
c2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0gPSAyNDsK
QEAgLTIzMiwxNSArMjMyLDI1IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxs
aW5nKCkKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3Qg
U3RyaW5nJiBzZWxlY3RlZFN0cmluZykKIHsKICNpZiBVU0UoQ0YpCi0gICAgYXV0byBzZWxlY3Rl
ZENGU3RyaW5nID0gdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJp
bmcpLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgYXV0byBzZWxlY3RlZENGU3RyaW5nID0gdHJ1bmNh
dGVkU3RyaW5nRm9yTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCk7CiAg
ICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIkxvb2sgVXAg
4oCcJUDigJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQi
KSwgc2VsZWN0ZWRDRlN0cmluZy5nZXQoKSk7CiAjZWxpZiBVU0UoR0xJQikKLSAgICByZXR1cm4g
Zm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg4oCcJXPigJ0iLCAi
TG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQiKSwgdHJ1bmNhdGVk
U3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiTG9vayBVcCDi
gJwlc+KAnSIsICJMb29rIFVwIGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIp
LCB0cnVuY2F0ZWRTdHJpbmdGb3JNZW51SXRlbShzZWxlY3RlZFN0cmluZykudXRmOCgpLmRhdGEo
KSk7CiAjZWxzZQotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVwIOKAnDxzZWxlY3Rp
b24+4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIiku
cmVwbGFjZSgiPHNlbGVjdGlvbj4iLCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShz
ZWxlY3RlZFN0cmluZykpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVwIOKAnDxz
ZWxlY3Rpb24+4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBzZWxlY3RlZCB3
b3JkIikucmVwbGFjZSgiPHNlbGVjdGlvbj4iLCB0cnVuY2F0ZWRTdHJpbmdGb3JNZW51SXRlbShz
ZWxlY3RlZFN0cmluZykpOwogI2VuZGlmCiB9CiAKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NF
UlZJQ0VTKQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlKGNvbnN0IFN0cmlu
ZyYgc2VsZWN0ZWRTdHJpbmcpCit7CisgICAgYXV0byBzZWxlY3RlZENGU3RyaW5nID0gdHJ1bmNh
dGVkU3RyaW5nRm9yTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCk7Cisg
ICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIlRyYW5zbGF0
ZSDigJwlQOKAnSIsICJUcmFuc2xhdGUgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBzZWxlY3RlZCB3
b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOworfQorCisjZW5kaWYKKwogU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKIHsKICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19X
SVRIX01ORU1PTklDKCJPcGVuIExpbmsiLCAiX09wZW4gTGluayIsICJPcGVuIExpbmsgY29udGV4
dCBtZW51IGl0ZW0iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
aAppbmRleCA3YzQyODRlYTRkMDViNjU3MTU1NTYyZjgxYmUyNWNiYWFiN2IyMzlkLi44ZmI1MWE4
OWVkNDJjYzE1MzY4NzAyZTIwM2VhMGU3NDgxN2FhYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0zNTQsNiArMzU0LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmV2
ZWFsSW1hZ2UoKTsKICNlbmRpZgogCisjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykK
KyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlKGNvbnN0IFN0cmluZyYgc2Vs
ZWN0ZWRTdHJpbmcpOworI2VuZGlmCisKICNpZiBVU0UoR0xJQikgJiYgZGVmaW5lZChHRVRURVhU
X1BBQ0tBR0UpCiAjZGVmaW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5nLCBkZXNjcmlwdGlvbikgV2Vi
Q29yZTo6bG9jYWxpemVkU3RyaW5nKF8oc3RyaW5nKSkKICNkZWZpbmUgV0VCX1VJX1NUUklOR19L
RVkoc3RyaW5nLCBrZXksIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoQ18o
a2V5LCBzdHJpbmcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tD
b250ZXh0TWVudUl0ZW1UeXBlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDb250
ZXh0TWVudUl0ZW1UeXBlcy5oCmluZGV4IGMxZTkzM2ViNTY1ZjdkNDAzZjY4MTMzNWY3ZDM0YjFm
YjBjOGRmNGIuLjBhOTE4OGM5ZjZhM2UxZmFhNWIzMzQ2YmY1MTIyYjY4NjE5ZThjM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbVR5cGVz
LmgKQEAgLTEyNiw2ICsxMjYsNyBAQCBlbnVtIHsKICAgICBrV0tDb250ZXh0TWVudUl0ZW1UYWdB
ZGRIaWdobGlnaHRUb0N1cnJlbnRHcm91cCwKICAgICBrV0tDb250ZXh0TWVudUl0ZW1UYWdBZGRI
aWdobGlnaHRUb05ld0dyb3VwLAogICAgIGtXS0NvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdl
LAorICAgIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZSwKICAgICBrV0tDb250ZXh0TWVu
dUl0ZW1CYXNlQXBwbGljYXRpb25UYWcgPSAxMDAwMAogfTsKIHR5cGVkZWYgdWludDMyX3QgV0tD
b250ZXh0TWVudUl0ZW1UYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Yy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVk
QVBJQ2FzdC5oCmluZGV4IGNjY2U0ODkwZDUwYmNlYzZjMDhmYTU5ZThlOTY1ZWU5NmEwNTE4ZGUu
LmVlNDI0NWMyZjFlZDllNWQ5ZjM4Y2MxOTkwYzgwNGY5MjUxMGIxZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC01NDcsNiArNTQ3LDggQEAg
aW5saW5lIFdLQ29udGV4dE1lbnVJdGVtVGFnIHRvQVBJKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0
aW9uIGFjdGlvbikKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVu
dTsKICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgogICAg
ICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U7CisgICAgY2FzZSBX
ZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CisgICAgICAgIHJldHVybiBrV0tD
b250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKGFj
dGlvbiA8IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlvblRhZyAmJiAhKGFj
dGlvbiA+PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnICYmIGFjdGlvbiA8
PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnKSkKICAgICAgICAgICAgIExP
R19FUlJPUigiQ29udGV4dE1lbnVBY3Rpb24gJWkgaXMgYW4gdW5rbm93biB0YWcgYnV0IGlzIGJl
bG93IHRoZSBhbGxvd2FibGUgY3VzdG9tIHRhZyB2YWx1ZSBvZiAlaSIsIGFjdGlvbiwgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnKTsKQEAgLTc0OSw2ICs3NTEsOCBA
QCBpbmxpbmUgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gdG9JbXBsKFdLQ29udGV4dE1lbnVJ
dGVtVGFnIHRhZykKICNlbmRpZgogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2U6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJ
bWFnZTsKKyAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZTsKICAgICBjYXNlIGtX
S0NvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5UaGlzV2luZG93OgogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGlmICh0YWcgPCBrV0tDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcgJiYg
ISh0YWcgPj0gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyAmJiB0YWcgPD0g
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCmluZGV4IDhjYzU2MzViNzQ3YjMx
NDFhM2Q3MWE5MjhmZDU3MWIyZjBhYWVjNTIuLjg1ZjY1NDdhYTRjNzQ0Y2RjN2Q2MTAwODU1NDY0
ZmNjYjRjZTBkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51
Q29udGV4dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29u
dGV4dERhdGEuY3BwCkBAIC01NCw2ICs1NCw3IEBAIENvbnRleHRNZW51Q29udGV4dERhdGE6OkNv
bnRleHRNZW51Q29udGV4dERhdGEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhCiAg
ICAgLCBtX21lbnVJdGVtcyhtZW51SXRlbXMpCiAgICAgLCBtX3dlYkhpdFRlc3RSZXN1bHREYXRh
KGNvbnRleHQuaGl0VGVzdFJlc3VsdCgpLCB0cnVlKQogICAgICwgbV9zZWxlY3RlZFRleHQoY29u
dGV4dC5zZWxlY3RlZFRleHQoKSkKKyAgICAsIG1fc2VsZWN0aW9uQm91bmRzKGNvbnRleHQuc2Vs
ZWN0aW9uQm91bmRzKCkpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgLCBtX3Nl
bGVjdGlvbklzRWRpdGFibGUoZmFsc2UpCiAjZW5kaWYKQEAgLTc5LDYgKzgwLDcgQEAgdm9pZCBD
b250ZXh0TWVudUNvbnRleHREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIGVuY29kZXIgPDwgbV9tZW51SXRlbXM7CiAgICAgZW5jb2RlciA8PCBtX3dlYkhpdFRl
c3RSZXN1bHREYXRhOwogICAgIGVuY29kZXIgPDwgbV9zZWxlY3RlZFRleHQ7CisgICAgZW5jb2Rl
ciA8PCBtX3NlbGVjdGlvbkJvdW5kczsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQog
ICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKQEAgLTEwOCw2ICsxMTAsOSBAQCBi
b29sIENvbnRleHRNZW51Q29udGV4dERhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIs
IENvbnRleHRNZW51Q29udGV4dERhdAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1f
c2VsZWN0ZWRUZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubV9zZWxlY3Rpb25Cb3VuZHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSBoYW5kbGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYW5kbGUpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oCmluZGV4IGY3ZDBmZTFkZWQ3
YTIwMTg3YTkwN2RhZDlhYzBlNjJjODYzODYzMGYuLjFkOTU5YTY4Njk4YTk5MmNkOGQ5NzJkMzJh
OThkNmMwMDczNTQ0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRN
ZW51Q29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNv
bnRleHREYXRhLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogICAgIFdlYkhpdFRlc3RSZXN1
bHREYXRhJiB3ZWJIaXRUZXN0UmVzdWx0RGF0YSgpIHsgcmV0dXJuIG1fd2ViSGl0VGVzdFJlc3Vs
dERhdGE7IH0KICAgICBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgd2ViSGl0VGVzdFJlc3Vs
dERhdGEoKSBjb25zdCB7IHJldHVybiBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOyB9CiAgICAgY29u
c3QgU3RyaW5nJiBzZWxlY3RlZFRleHQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGVkVGV4dDsg
fQorICAgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNlbGVjdGlvbkJvdW5kcygpIGNvbnN0IHsg
cmV0dXJuIG1fc2VsZWN0aW9uQm91bmRzOyB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKICAgICBDb250ZXh0TWVudUNvbnRleHREYXRhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBt
ZW51TG9jYXRpb24sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgc2VsZWN0aW9uRGF0YSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHNlbGVjdGVkVGVsZXBob25lTnVtYmVycywgYm9vbCBpc0VkaXRhYmxl
KQpAQCAtOTEsNiArOTIsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViSGl0VGVzdFJlc3VsdERhdGEg
bV93ZWJIaXRUZXN0UmVzdWx0RGF0YTsKICAgICBTdHJpbmcgbV9zZWxlY3RlZFRleHQ7CisgICAg
V2ViQ29yZTo6SW50UmVjdCBtX3NlbGVjdGlvbkJvdW5kczsKIAogI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IG1fY29udHJvbGxlZEltYWdl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0
ZW1JZGVudGlmaWVycy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01l
bnVJdGVtSWRlbnRpZmllcnMubW0KaW5kZXggYzJhOTRjM2NjNDkwMDIzMzc1OGUwNWQ0NWE5Y2Fk
M2Y2OWI0YjZhZS4uYWRkNzlmZWY5NjZjNTc3ZDNkNGIwMzFkYjk0N2NkNTg2OGRjNDI1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVu
dGlmaWVycy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51
SXRlbUlkZW50aWZpZXJzLm1tCkBAIC01NSwzICs1NSw1IEBAIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyVG9nZ2xlRnVsbFNjcmVlbiA9IEAiV0tNZW51SXRlbUlkZW50aWZp
ZXJUCiAKIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hhcmVNZW51ID0g
QCJXS01lbnVJdGVtSWRlbnRpZmllclNoYXJlTWVudSI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS01l
bnVJdGVtSWRlbnRpZmllclNwZWVjaE1lbnUgPSBAIldLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNo
TWVudSI7CisKK05TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyVHJhbnNsYXRl
ID0gQCJXS01lbnVJdGVtSWRlbnRpZmllclRyYW5zbGF0ZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVy
c1ByaXZhdGUuaAppbmRleCA2OTZlYWIyOWJiYzRlMWU2OGViNmNiZjNhOTFkMjBkYjdlMzUzNzM4
Li5iNjFkNDVlMzZkYTBjZjIxZjgwNzE3YmEzMzY1ZTQ2OGI3OGIxM2FhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVt
SWRlbnRpZmllcnNQcml2YXRlLmgKQEAgLTU3LDMgKzU3LDUgQEAgV0tfRVhQT1JUIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNwZWVjaE1lbnUgV0tfQVBJX0FW
QUlMQUIKIAogV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllckFkZEhpZ2hsaWdodFRvQ3VycmVudEdyb3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQWRkSGlnaGxpZ2h0VG9OZXdHcm91cCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCitXS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyVHJhbnNs
YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCmluZGV4IDMwZWRhYzRmOWYxZGQ2ZjhhMjBhZDQyZDA5OTE4M2E3N2M0NDI1NzQuLjQwYmY0
OTg2OWRmMmNiY2RjOGVlZGM5N2FlZGJjMDczZGQyYzIyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC01OTAsNyArNTkw
LDggQEAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgV2ViUGFnZVByb3h5OjpjcmVhdGVO
ZXR3b3JrRXh0ZW5zaW9uc1NhbmRib3hFeHRlbnMKICAgICByZXR1cm4gU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlQXJyYXkoKTsKIH0KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKIAogdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRN
ZW51UmV2ZWFsSW1hZ2UoKQogewpAQCAtNjAxLDcgKzYwMiwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6aGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSgpCiAgICAgcmV2ZWFsRXh0cmFjdGVkSW1h
Z2VJblByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRleHQp
OwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShDT05U
RVhUX01FTlVTKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorCisjaWYgSEFW
RShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKKworYm9vbCBXZWJQYWdlUHJveHk6OmNhbkhhbmRs
ZUNvbnRleHRNZW51VHJhbnNsYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBwYWdlQ2xpZW50
KCkuY2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpOworfQorCisjZW5kaWYgLy8gSEFW
RShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKKyNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbklu
Zm8oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBib29sLCBjb25zdCBTdHJpbmcmLCBkb3Vi
bGUsIGRvdWJsZSwgdWludDY0X3QpPiYmIGNhbGxiYWNrKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggMDU2YzM5ZTRiNjNmYmNkOGQ5OTQzNmE2
MTY2NGZlMDAzNTcxNTJmMy4uODU4NTQ0ZDI3ZDcwNGIzZjAyMzhmYjk4OGE1NTZkNWJkOGYwY2I5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC02
MzgsNiArNjM4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZURPTVBhc3RlUmVxdWVzdFdp
dGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk7CiAgICAgTlNNZW51ICpk
b21QYXN0ZU1lbnUoKSBjb25zdCB7IHJldHVybiBtX2RvbVBhc3RlTWVudS5nZXQoKTsgfQogCisj
aWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
CisgICAgYm9vbCBjYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCkgY29uc3Q7CisgICAg
dm9pZCBoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgYm91bmRzSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgbWVudUxvY2F0aW9uKTsKKyNlbmRpZgorCiBwcml2YXRlOgogI2lmIEhBVkUoVE9VQ0hfQkFS
KQogICAgIHZvaWQgc2V0VXBUZXh0VG91Y2hCYXIoTlNUb3VjaEJhciAqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggZTZmYjc4MTBmOTY1Nzhl
ZTIzZjFmOWJhMjMxYWExNDM2OTk5ZDg5Mi4uOGFhMDQ0OGY5YjMwOTMzMzI3MzE5ZGZjYzk3Y2Ni
ZTE3Yzg4MjNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KQEAgLTEzOSw2ICsxMzksMTMgQEAKICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2VFeHRyYWN0
aW9uUmVzdWx0Lmg+CiAjZW5kaWYKIAorI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMp
CisjaW1wb3J0IDxUcmFuc2xhdGlvblVJU2VydmljZXMvTFRVSVRyYW5zbGF0aW9uVmlld0NvbnRy
b2xsZXIuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKFRyYW5zbGF0
aW9uVUlTZXJ2aWNlcykKK1NPRlRfTElOS19DTEFTU19PUFRJT05BTChUcmFuc2xhdGlvblVJU2Vy
dmljZXMsIExUVUlUcmFuc2xhdGlvblZpZXdDb250cm9sbGVyKQorI2VuZGlmCisKICNpZiBIQVZF
KFRPVUNIX0JBUikgJiYgRU5BQkxFKFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQogU09G
VF9MSU5LX0ZSQU1FV09SSyhBVktpdCkKIFNPRlRfTElOS19DTEFTUyhBVktpdCwgQVZUb3VjaEJh
clBsYXliYWNrQ29udHJvbHNQcm92aWRlcikKQEAgLTU1NzQsNiArNTU4MSw0NyBAQCBib29sIFdl
YlZpZXdJbXBsOjplZmZlY3RpdmVVc2VySW50ZXJmYWNlTGV2ZWxJc0VsZXZhdGVkKCkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKKworYm9vbCBXZWJWaWV3SW1wbDo6Y2FuSGFuZGxlQ29udGV4
dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFRyYW5zbGF0aW9uVUlTZXJ2
aWNlc0xpYnJhcnkoKSAmJiBbZ2V0TFRVSVRyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXJDbGFzcygp
IGlzQXZhaWxhYmxlXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6aGFuZGxlQ29udGV4dE1lbnVU
cmFuc2xhdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEludFJlY3QmIGJvdW5kc0luVmll
dywgY29uc3QgSW50UG9pbnQmIG1lbnVMb2NhdGlvbikKK3sKKyAgICBpZiAoIWNhbkhhbmRsZUNv
bnRleHRNZW51VHJhbnNsYXRpb24oKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gdmlldyA9IG1fdmlldy5nZXQoKTsK
KyAgICBhdXRvIHRyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXIgPSBhZG9wdE5TKFthbGxvY0xUVUlU
cmFuc2xhdGlvblZpZXdDb250cm9sbGVySW5zdGFuY2UoKSBpbml0XSk7CisgICAgYXV0byB0ZXh0
VG9UcmFuc2xhdGUgPSBhZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0
aFN0cmluZzp0ZXh0XSk7CisgICAgW3RyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXIgc2V0VGV4dDp0
ZXh0VG9UcmFuc2xhdGUuZ2V0KCldOworICAgIGlmIChOU0VxdWFsU2l6ZXMoW3RyYW5zbGF0aW9u
Vmlld0NvbnRyb2xsZXIgcHJlZmVycmVkQ29udGVudFNpemVdLCBOU1plcm9TaXplKSkKKyAgICAg
ICAgW3RyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXIgc2V0UHJlZmVycmVkQ29udGVudFNpemU6TlNN
YWtlU2l6ZSg0MDAsIDQwMCldOworCisgICAgYXV0byBwb3BvdmVyID0gYWRvcHROUyhbW05TUG9w
b3ZlciBhbGxvY10gaW5pdF0pOworICAgIFtwb3BvdmVyIHNldEJlaGF2aW9yOk5TUG9wb3ZlckJl
aGF2aW9yVHJhbnNpZW50XTsKKyAgICBbcG9wb3ZlciBzZXRBcHBlYXJhbmNlOlt2aWV3IGVmZmVj
dGl2ZUFwcGVhcmFuY2VdXTsKKyAgICBbcG9wb3ZlciBzZXRBbmltYXRlczpZRVNdOworICAgIFtw
b3BvdmVyIHNldENvbnRlbnRWaWV3Q29udHJvbGxlcjp0cmFuc2xhdGlvblZpZXdDb250cm9sbGVy
LmdldCgpXTsKKyAgICBbcG9wb3ZlciBzZXRDb250ZW50U2l6ZTpbdHJhbnNsYXRpb25WaWV3Q29u
dHJvbGxlciBwcmVmZXJyZWRDb250ZW50U2l6ZV1dOworCisgICAgTlNSZWN0RWRnZSBwcmVmZXJy
ZWRFZGdlOworICAgIGF1dG8gYWltID0gbWVudUxvY2F0aW9uLngoKTsKKyAgICBhdXRvIGhpZ2hs
aWdodCA9IGJvdW5kc0luVmlldy5jZW50ZXIoKS54KCk7CisgICAgaWYgKGFpbSA9PSBoaWdobGln
aHQpCisgICAgICAgIHByZWZlcnJlZEVkZ2UgPSBbdmlldyB1c2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uXSA9PSBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25SaWdodFRvTGVmdCA/IE5T
UmVjdEVkZ2VNaW5YIDogTlNSZWN0RWRnZU1heFg7CisgICAgZWxzZQorICAgICAgICBwcmVmZXJy
ZWRFZGdlID0gYWltID4gaGlnaGxpZ2h0ID8gTlNSZWN0RWRnZU1heFggOiBOU1JlY3RFZGdlTWlu
WDsKKworICAgIFtwb3BvdmVyIHNob3dSZWxhdGl2ZVRvUmVjdDpib3VuZHNJblZpZXcgb2ZWaWV3
OnZpZXcuZ2V0KCkgcHJlZmVycmVkRWRnZTpwcmVmZXJyZWRFZGdlXTsKK30KKworI2VuZGlmIC8v
IEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAwYWNlYzcxNWZlNDZkNzgzN2ZkMmQyZWQy
NGQwMjI3YzZkZjQzZmE1Li5iNmMwNzViMWE5NTkyYjFiNTM0NWFhZTJlMDczZTZiMjNmNWQwNjU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC02MDIsNiArNjAyLDExIEBA
IHB1YmxpYzoKICNpZiBQTEFURk9STShHVEspCiAgICAgdmlydHVhbCBTdHJpbmcgdGhlbWVOYW1l
KCkgY29uc3QgPSAwOwogI2VuZGlmCisKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VT
KSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGFuZGxlQ29u
dGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
Q29udGV4dE1lbnVUcmFuc2xhdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGJvdW5kc0luVmlldywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2Nh
dGlvbikgPSAwOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhmNDNiYjg4NjRlMzkyMDY3ZTE4
ZWIxODM3YzA1MGJhMzdkNzJiYTYuLjU4MDAzMGVlZTdlZDFhNjA0M2ZkZGU4NDQzMDY1ZTg3YWUz
ZTRjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjcy
Miw2ICs2NzIyLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQogI2VuZGlmCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgorI2lmIEhBVkUo
VFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCisgICAgICAgIHBhZ2VDbGllbnQoKS5oYW5kbGVDb250
ZXh0TWVudVRyYW5zbGF0aW9uKG1fYWN0aXZlQ29udGV4dE1lbnVDb250ZXh0RGF0YS5zZWxlY3Rl
ZFRleHQoKSwgbV9hY3RpdmVDb250ZXh0TWVudUNvbnRleHREYXRhLnNlbGVjdGlvbkJvdW5kcygp
LCBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEubWVudUxvY2F0aW9uKCkpOworI2VuZGlm
CisgICAgICAgIHJldHVybjsKKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzllMjg5N2YwMzYyMWU2
ZGE4MDdhYWExMzRlMTQxZDQ1MjQ1YmY5ZC4uNTA4NTk3MmIyY2EzNTkxMWQ2YjAwMDk3Njk2OTA4
ZGE5NzkzYWJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE4
NjYsNiArMTg2NiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldEltYWdlRXh0cmFjdGlvblBy
ZXZpZXcoKTsKICNlbmRpZgogCisjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKKyAg
ICBib29sIGNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oKSBjb25zdDsKKyNlbmRpZgor
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRMYXN0TmF2aWdhdGlvbldhc0FwcEJv
dW5kKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgbGFzdE5hdmlnYXRpb25X
YXNBcHBCb3VuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggZDUwZDkzMTBl
OGMwMGU5ZjJhYThmNzIzNGI1MTI5ZGU0MDdmMGY1Mi4uYzM3ZWIyM2ZmNTQwNmU5MzA0M2Y5Zjc4
ODZiZmU2MDIyYWNmOTkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmgKQEAgLTI3Niw2ICsyNzYsMTEgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpDb2xvciBhY2NlbnRDb2xvcigpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBIQVZFKFRS
QU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICBib29s
IGNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
b2lkIGhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jikgb3ZlcnJpZGU7CisjZW5k
aWYKKwogICAgIE5TVmlldyAqbV92aWV3OwogICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IG1faW1w
bDsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggNTg0OWEyZDk5OTY0YjhjM2Jj
ZDAzNGZjZjgzYTYwZjJiOTE2M2RkZC4uNTZiNDQwMjEzNTMyZTNiNWY5ZjNmNjNiYTQ5ZjQ5NGI5
OGMxZDk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5tbQpAQCAtOTkyLDYgKzk5MiwyMCBAQCBXZWJDb3JlOjpDb2xvciBQYWdlQ2xpZW50
SW1wbDo6YWNjZW50Q29sb3IoKQogfQogI2VuZGlmCiAKKyNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJ
X1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKworYm9vbCBQYWdlQ2xpZW50SW1w
bDo6Y2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1faW1wbC0+Y2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpOworfQorCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgSW50UmVjdCYgYm91bmRzSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgbWVudUxvY2F0aW9uKQoreworICAgIG1faW1wbC0+aGFuZGxlQ29udGV4dE1lbnVUcmFuc2xh
dGlvbih0ZXh0LCBib3VuZHNJblZpZXcsIG1lbnVMb2NhdGlvbik7Cit9CisKKyNlbmRpZiAvLyBI
QVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1t
CmluZGV4IDhmMmE3ZDQ2YzUzOTgxOGE1OGFkZDRiYTgwOGRjNjFhYjQ5MzY1M2QuLmYwZmFmMTE0
MDhkYjA1NTM1ZmJjOGY0NGJmOWNmMTBkODg0ZmJiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC0zNjIsNiAr
MzYyLDE0IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9t
SXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAgICAgIH0pOwogICAgIH0KIAor
I2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCisgICAgaWYgKCFwYWdlKCktPmNhbkhh
bmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oKSB8fCBpc1BvcG92ZXIpIHsKKyAgICAgICAgZmls
dGVyZWRJdGVtcy5yZW1vdmVBbGxNYXRjaGluZyhbXSAoYXV0byYgaXRlbSkgeworICAgICAgICAg
ICAgcmV0dXJuIGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOwor
ICAgICAgICB9KTsKKyAgICB9CisjZW5kaWYKKwogICAgIGF1dG8gc3BhcnNlTWVudUl0ZW1zID0g
cmV0YWluUHRyKFtOU1BvaW50ZXJBcnJheSBzdHJvbmdPYmplY3RzUG9pbnRlckFycmF5XSk7CiAg
ICAgYXV0byBpbnNlcnRNZW51SXRlbSA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgaXRlbXNSZW1haW5pbmcgPSBmaWx0ZXJlZEl0
ZW1zLnNpemUoKSwgbWVudSA9IFdURk1vdmUobWVudSksIHNwYXJzZU1lbnVJdGVtc10oTlNNZW51
SXRlbSAqaXRlbSwgTlNVSW50ZWdlciBpbmRleCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChp
bmRleCA8IFtzcGFyc2VNZW51SXRlbXMgY291bnRdKTsKQEAgLTQ2MCw2ICs0NjgsOSBAQCBzdGF0
aWMgTlNTdHJpbmcgKm1lbnVJdGVtSWRlbnRpZmllcihjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVu
dUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0Z1
bGxzY3JlZW46CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVGdWxs
U2NyZWVuOwogCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CisgICAgICAg
IHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZpZXJUcmFuc2xhdGU7CisKICAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRp
ZmllclNoYXJlTWVudTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXcubW0KaW5kZXggZGI5NmI0MDQ4MDYwMzg3YTk0MzYzNDhmZDJkMzkwYzQ0ODgxZTM4
MS4uMmI4YTI4MjBmODA5YjhhYjM5NWY2NmZkODA4ZjdhZDA4ZGVkM2FkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02MTUsNiArNjE1
LDcgQEAgc3RhdGljIE9wdGlvbmFsPE5TSW50ZWdlcj4gdG9UYWcoV2ViQ29yZTo6Q29udGV4dE1l
bnVBY3Rpb24gYWN0aW9uKQogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9F
bmhhbmNlZEZ1bGxzY3JlZW46CiAgICAgICAgIHJldHVybiBXZWJNZW51SXRlbVRhZ1RvZ2dsZVZp
ZGVvRW5oYW5jZWRGdWxsc2NyZWVuOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBjYXNlIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21U
YWcgLi4uIENvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWc6CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWMyZmY0MTU0ZGZmOWNiMzRlYTBmNWJm
ODU4ZWNlY2QzMzk0NmExNi4uNjhiYTJlYjk0YjNjM2QyOTlmMjRiNDJmOTM0MTdhNDEwOTJkOTgz
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTAzLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRkIGEgd2F5IHRvIHRyaWdnZXIgd2VicGFnZSB0
cmFuc2xhdGlvbiB2aWEgdGhlIGNvbnRleHQgbWVudQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MzkwMTk2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAg
QWRqdXN0IGFuIEFQSSB0ZXN0LiBUaGlzIG5ldyBlbnVtIHZhbHVlIGlzIG5vdyB0aGUgbmV3IGxh
c3QgdmFsaWQgaXRlbSB2YWx1ZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Db250ZXh0TWVudUFjdGlvbi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKwogMjAyMS0wMy0wOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzMwODQuCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1lbnVBY3Rpb24uY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRleHRNZW51QWN0aW9uLmNwcApp
bmRleCAzNDA2ZmMxOGVkZDE1YTY0OGVhZTA3NTRlYTc4OTNhZjkyYjUyNzg0Li4yNjg0ZTg1Yjk4
ZWM1N2NlYTEwZjFkM2EzOTBlMzE2YzZiYjNlMDQ5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1lbnVBY3Rpb24uY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZXh0TWVudUFjdGlvbi5jcHAKQEAgLTM3LDkg
KzM3LDkgQEAgVEVTVChXZWJDb3JlLCBDb250ZXh0TWVudUFjdGlvbl9Jc1ZhbGlkRW51bSkKICAg
ICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9u
PihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24p
KTsKICAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnTm9B
Y3Rpb24gKyAxKSk7CiAKLSAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6
OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1l
bnVJdGVtVGFnUmV2ZWFsSW1hZ2UgLSAxKSk7Ci0gICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlk
RW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rp
b246OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFdU
Rjo6aXNWYWxpZEVudW08V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRl
eHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSArIDEpKTsKKyAgICBF
WFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihX
ZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlIC0g
MSkpOworICAgIEVYUEVDVF9UUlVFKFdURjo6aXNWYWxpZEVudW08V2ViQ29yZTo6Q29udGV4dE1l
bnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdU
cmFuc2xhdGUpKTsKKyAgICBFWFBFQ1RfRkFMU0UoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpD
b250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51
SXRlbVRhZ1RyYW5zbGF0ZSArIDEpKTsKIAogICAgIEVYUEVDVF9GQUxTRShXVEY6OmlzVmFsaWRF
bnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
bjo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyAtIDEpKTsKICAgICBFWFBFQ1RfVFJVRShX
VEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250
ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZykpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>