<?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>33338</bug_id>
          
          <creation_ts>2010-01-07 12:26:57 -0800</creation_ts>
          <short_desc>Create a renderer for &lt;object&gt; and &lt;embed&gt;</short_desc>
          <delta_ts>2010-01-07 13:57:55 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>mitz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>178312</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-07 12:26:57 -0800</bug_when>
    <thetext>RenderPartObject, which is used for iframe, object and embed, has code that is mostly plugin related. I also need to add some more plugin-specific methods, so I&apos;d like to subclass RenderPartObject for plugins.

My proposed name is RenderEmbeddedObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178332</commentid>
    <comment_count>1</comment_count>
      <attachid>46076</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-07 12:58:08 -0800</bug_when>
    <thetext>Created attachment 46076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178341</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-07 13:03:20 -0800</bug_when>
    <thetext>Attachment 46076 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/rendering/RenderEmbeddedObject.cpp:146:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
WebCore/rendering/RenderEmbeddedObject.cpp:150:  One space before end of line comments  [whitespace/comments] [5]
WebCore/rendering/RenderEmbeddedObject.cpp:152:  One space before end of line comments  [whitespace/comments] [5]
WebCore/rendering/RenderEmbeddedObject.cpp:156:  Declaration has space between type name and * in HTMLElement *embedOrObject  [whitespace/declaration] [3]
WebCore/rendering/RenderEmbeddedObject.cpp:175:  Declaration has space between type name and * in Node *child  [whitespace/declaration] [3]
WebCore/rendering/RenderEmbeddedObject.cpp:233:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/rendering/RenderEmbeddedObject.cpp:247:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/rendering/RenderEmbeddedObject.cpp:252:  Declaration has space between type name and * in HTMLEmbedElement *o  [whitespace/declaration] [3]
Total errors found: 8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178371</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-07 13:57:55 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/52946
and
http://trac.webkit.org/changeset/52947</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46076</attachid>
            <date>2010-01-07 12:58:08 -0800</date>
            <delta_ts>2010-01-07 13:05:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>33338_patch.txt</filename>
            <type>text/plain</type>
            <size>77399</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZDIzZjg1Li5iZTA5YmU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTAtMDEt
MDcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMzMzM4CisgICAgICAgIENyZWF0ZSBhIHJlbmRlcmVyIGZvciA8
b2JqZWN0PiBhbmQgPGVtYmVkPgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlIFJlbmRlclBhcnRP
YmplY3QgdG8gUmVuZGVyRW1iZWRkZWRPYmplY3QgaW4gdGVzdCByZXN1bHRzLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9taXNjL2FjaWQzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtdGlnZXIvc3ZnL2hpeGllL3RleHQvMDAzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3Rpbmctb2JqZWN0LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9ibG9jay9iYXNpYy8wMTMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Jsb2NrL2Zsb2F0LzQxNDU1MzVDcmFz
aC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL0hUTUxPYmpl
Y3RFbGVtZW50L3ZzcGFjZS1oc3BhY2UtYXMtbnVtYmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvZmFzdC9keW5hbWljL2ZsYXNoLXJlcGxhY2VtZW50LXRlc3QtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy8wMDEtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2ludmFsaWQvcmVzaWR1YWwtc3R5bGUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3BhcnNlci8wMDEtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlcGxhY2VkLzAwNy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwbGFjZWQvYm9yZGVyLXJh
ZGl1cy1jbGlwLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9yZXBs
YWNlZC9yZXBsYWNlZC1icmVha2luZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL3BsdWdpbnMvZW1iZWQtYXR0cmlidXRlcy1zdHlsZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3BsdWdpbnMvbmV0c2NhcGUtZG9tLWFjY2Vzcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL3BsdWdpbnMvcXQtcXdpZGdldC1wbHVnaW4tZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2dldHN2Z2RvY3VtZW50
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3JvbGxp
bmctZW1iZWRkZWQtc3ZnLWZpbGUtaW1hZ2UtcmVwYWludC1wcm9ibGVtLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2hpeGllL3RleHQvMDAzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGluZy1vYmplY3Qt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvYmxvY2svYmFzaWMvMDEz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2Jsb2NrL2Zsb2F0LzQx
NDU1MzVDcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20v
SFRNTE9iamVjdEVsZW1lbnQvdnNwYWNlLWhzcGFjZS1hcy1udW1iZXItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvZHluYW1pYy9mbGFzaC1yZXBsYWNlbWVudC10ZXN0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2ZyYW1lcy8wMDEtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvcGFyc2VyLzAwMS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9yZXBsYWNlZC8wMDctZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvcmVwbGFjZWQvcmVwbGFjZWQtYnJlYWtp
bmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L3BsdWdpbnMvZW1iZWQtYXR0
cmlidXRlcy1zdHlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvcGx1Z2lu
cy9uZXRzY2FwZS1kb20tYWNjZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9wbHVnaW5zL3F0LXF3aWRnZXQtcGx1Z2luLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wMS0wNyAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
YWNpZDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2FjaWQzLWV4
cGVjdGVkLnR4dAppbmRleCBjMTQ3NzFhLi45NjQyNTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvYWNpZDMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9hY2lkMy1leHBlY3RlZC50eHQKQEAgLTIyNiw3ICsyMjYsNyBAQCBsYXll
ciBhdCAoNjM5LDE3KSBzaXplIDIweDIwCiAgICAgUmVuZGVyVGV4dCBhdCAoMCwwKSBzaXplIDIw
eDIwCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDogIlgiCiBsYXllciBhdCAoMTMw
LDg0KSBzaXplIDMwMHgxNTAKLSAgUmVuZGVyUGFydE9iamVjdCB7T0JKRUNUfSBhdCAoMTMwLDg0
KSBzaXplIDMwMHgxNTAKKyAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQgKDEzMCw4
NCkgc2l6ZSAzMDB4MTUwCiAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCiAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzAweDE1MAogICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MzAweDE2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvc3ZnL2hp
eGllL3RleHQvMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdl
ci9zdmcvaGl4aWUvdGV4dC8wMDMtZXhwZWN0ZWQudHh0CmluZGV4IGZhMDM1YzQuLjczYTQyN2Mg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9zdmcvaGl4aWUvdGV4
dC8wMDMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9z
dmcvaGl4aWUvdGV4dC8wMDMtZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg0MDIKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNjA4eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNjA4OiAiVGhlIGZv
bGxvd2luZyB0d28gYmxvY2tzIHNob3VsZCBsb29rIGlkZW50aWNhbCAodG8gdGhlIHBpeGVsKSwg
YW5kIHRoZXkgc2hvdWxkIGJvdGggc2F5IFwiUEFTU1wiOiIKICAgICAgIFJlbmRlckJsb2NrIHtQ
fSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTYwCi0gICAgICAgIFJlbmRlclBhcnRPYmplY3Qge09CSkVD
VH0gYXQgKDAsMCkgc2l6ZSAzMDZ4MTU2IFtib3JkZXI6ICgzcHggaW5zZXQgIzAwMDA4MCldCisg
ICAgICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0IHtPQkpFQ1R9IGF0ICgwLDApIHNpemUgMzA2eDE1
NiBbYm9yZGVyOiAoM3B4IGluc2V0ICMwMDAwODApXQogICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMzAweDE1MAogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDMwMHgx
NTAKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDMwMHgxNTAKQEAgLTE2LDcgKzE2LDcg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDAyCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xKSBzaXplIDR4MgogICAgICAgICAgICAgICAgICAg
Y2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgwLjAwLDAuODApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0
IDQgd2lkdGggNC4wMDogIlBBU1MiCiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMjEwKSBz
aXplIDc4NHgxNjAKLSAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7T0JKRUNUfSBhdCAoMCwwKSBz
aXplIDMwNngxNTYgW2JvcmRlcjogKDNweCBpbnNldCAjMDAwMDgwKV0KKyAgICAgICAgUmVuZGVy
RW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQgKDAsMCkgc2l6ZSAzMDZ4MTU2IFtib3JkZXI6ICgz
cHggaW5zZXQgIzAwMDA4MCldCiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUw
CiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzAweDE1MAogICAgICAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0aW5nLW9iamVjdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3Rpbmctb2Jq
ZWN0LWV4cGVjdGVkLnR4dAppbmRleCBhNGFiZDI5Li5iYzMzYzE0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3Rpbmctb2JqZWN0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJv
YXJkL3Bhc3Rpbmctb2JqZWN0LWV4cGVjdGVkLnR4dApAQCAtMTcsNyArMTcsNyBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUyKSBz
aXplIDc4NHgxNTYKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEzOCkgc2l6ZSAz
NXgxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDEzOCkgd2lkdGggMzU6ICJIZWxsbyIKLSAg
ICAgICAgUmVuZGVyUGFydE9iamVjdCB7T0JKRUNUfSBhdCAoMzUsMCkgc2l6ZSAzMDJ4MTUyIFti
b3JkZXI6ICgxcHggc29saWQgI0FBQUFBQSldCisgICAgICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0
IHtPQkpFQ1R9IGF0ICgzNSwwKSBzaXplIDMwMngxNTIgW2JvcmRlcjogKDFweCBzb2xpZCAjQUFB
QUFBKV0KICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMzcsMTM4KSBzaXplIDQ5eDE4
CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDMzNywxMzgpIHdpZHRoIDQ5OiAiIFdvcmxkISIKIGNh
cmV0OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDEge09CSkVDVH0gb2YgY2hpbGQgMyB7RElWfSBvZiBj
aGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvYmxvY2svYmFzaWMvMDEzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Jsb2NrL2Jhc2ljLzAxMy1leHBlY3Rl
ZC50eHQKaW5kZXggNWZkNTY3OC4uZmFmZDg0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvYmxvY2svYmFzaWMvMDEzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ibG9jay9iYXNpYy8wMTMtZXhwZWN0ZWQudHh0CkBAIC0x
Nyw3ICsxNyw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTQ3OiAiVGhpcyB0ZXh0IGlzIHVuZGVybmVhdGgu
IgogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1MDQsOTApIHNpemUgNHgxOAogICAgICAg
ICB0ZXh0IHJ1biBhdCAoNTA0LDkwKSB3aWR0aCA0OiAiICIKLSAgICAgIFJlbmRlclBhcnRPYmpl
Y3Qge09CSkVDVH0gYXQgKDAsMTA4KSBzaXplIDUwMHgxMDAKKyAgICAgIFJlbmRlckVtYmVkZGVk
T2JqZWN0IHtPQkpFQ1R9IGF0ICgwLDEwOCkgc2l6ZSA1MDB4MTAwCiAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgNTAweDEwMAogICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA1
MDB4MTAwCiAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTAweDEwMApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvYmxvY2svZmxvYXQvNDE0NTUzNUNyYXNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Jsb2NrL2Zsb2F0LzQx
NDU1MzVDcmFzaC1leHBlY3RlZC50eHQKaW5kZXggYmMyM2U0Yy4uNjZkOGQxOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvYmxvY2svZmxvYXQvNDE0NTUzNUNyYXNo
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ibG9jay9m
bG9hdC80MTQ1NTM1Q3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC00LDYgKzQsNiBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAogICAgICAg
UmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MTUwCi0gICAgICAgIFJl
bmRlclBhcnRPYmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDMwMHgxNTAKKyAgICAgICAgUmVu
ZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDMwMHgxNTAKICAgICAgIFJl
bmRlclRhYmxlIHtUQUJMRX0gYXQgKDAsMTUwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJUYWJs
ZVNlY3Rpb24ge1RCT0RZfSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL0hUTUxPYmplY3RFbGVtZW50L3ZzcGFjZS1oc3BhY2Ut
YXMtbnVtYmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Rv
bS9IVE1MT2JqZWN0RWxlbWVudC92c3BhY2UtaHNwYWNlLWFzLW51bWJlci1leHBlY3RlZC50eHQK
aW5kZXggNzY3MWM1ZS4uMTViNWRiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZG9tL0hUTUxPYmplY3RFbGVtZW50L3ZzcGFjZS1oc3BhY2UtYXMtbnVtYmVyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vSFRNTE9i
amVjdEVsZW1lbnQvdnNwYWNlLWhzcGFjZS1hcy1udW1iZXItZXhwZWN0ZWQudHh0CkBAIC04LDcg
KzgsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA3ODI6ICJUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IEhUTUxPYmplY3RF
bGVtZW50LnZzcGFjZSBhbmQgSFRNTE9iamVjdEVsZW1lbnQuaHNwYWNlIGFyZSBleHBvc2VkIGFz
IG51bWJlcnMgaW5zdGVhZCBvZiIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGgg
NzE5OiAic3RyaW5ncywgcGVyIHRoZSBET00gTGV2ZWwgMiBIVE1MIHNwZWM6IGh0dHA6Ly93d3cu
dzMub3JnL1RSL0RPTS1MZXZlbC0yLUhUTUwvaHRtbC5odG1sI0lELTk4OTMxNzciCiAgICAgICBS
ZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCw1Mikgc2l6ZSA3ODR4MTcwCi0gICAgICAgIFJl
bmRlclBhcnRPYmplY3Qge09CSkVDVH0gYXQgKDIwLDEwKSBzaXplIDMwMHgxNTAKKyAgICAgICAg
UmVuZGVyRW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQgKDIwLDEwKSBzaXplIDMwMHgxNTAKICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwyMjIpIHNpemUgNzg0eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDc2eDE4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9keW5hbWljL2ZsYXNoLXJlcGxhY2VtZW50LXRlc3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZHluYW1pYy9mbGFzaC1yZXBsYWNlbWVudC10
ZXN0LWV4cGVjdGVkLnR4dAppbmRleCAxYmVlOGJlLi5jNmQ2YWU1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9keW5hbWljL2ZsYXNoLXJlcGxhY2VtZW50LXRlc3Qt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2R5bmFtaWMv
Zmxhc2gtcmVwbGFjZW1lbnQtdGVzdC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDI3MQogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4MjcxCiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MjU1CiAg
ICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc4NHgxNTgKLSAgICAg
ICAgUmVuZGVyUGFydE9iamVjdCB7T0JKRUNUfSBhdCAoMCwwKSBzaXplIDI0OXgxNTQKKyAgICAg
ICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQgKDAsMCkgc2l6ZSAyNDl4MTU0CiAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjQ5LDE0MCkgc2l6ZSA0eDE4CiAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDI0OSwxNDApIHdpZHRoIDQ6ICIgIgogICAgICAgICBSZW5kZXJCUiB7
QlJ9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9mcmFtZXMvMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2ZyYW1lcy8wMDEtZXhwZWN0ZWQudHh0CmluZGV4IDg2NjczZmEuLjIzYTBmNDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy8wMDEtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy8wMDEtZXhw
ZWN0ZWQudHh0CkBAIC0xNCw3ICsxNCw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA4NHg4NAogICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNzAsMTc0KSBzaXplIDR4MTgKICAgICAgICAgdGV4dCBy
dW4gYXQgKDE3MCwxNzQpIHdpZHRoIDQ6ICIgIgotICAgICAgUmVuZGVyUGFydE9iamVjdCB7T0JK
RUNUfSBhdCAoMTc0LDE4KSBzaXplIDE3MHgxNzAgW2JvcmRlcjogKDEwcHggc29saWQgI0ZGMDAw
MCldCisgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7T0JKRUNUfSBhdCAoMTc0LDE4KSBzaXpl
IDE3MHgxNzAgW2JvcmRlcjogKDEwcHggc29saWQgI0ZGMDAwMCldCiAgICAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMTAweDEwMAogICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAx
MDB4MTAwCiAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTAweDEwMApAQCAtMjIsNyArMjIs
NyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgODR4ODQKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MzQ0LDE3NCkgc2l6ZSA0eDE4CiAgICAgICAgIHRleHQgcnVuIGF0ICgzNDQsMTc0KSB3aWR0aCA0
OiAiICIKLSAgICAgIFJlbmRlclBhcnRPYmplY3Qge09CSkVDVH0gYXQgKDM0OCwxOCkgc2l6ZSAx
NzB4MTcwIFtib3JkZXI6ICgxMHB4IHNvbGlkICNGRjAwMDApXQorICAgICAgUmVuZGVyRW1iZWRk
ZWRPYmplY3Qge09CSkVDVH0gYXQgKDM0OCwxOCkgc2l6ZSAxNzB4MTcwIFtib3JkZXI6ICgxMHB4
IHNvbGlkICNGRjAwMDApXQogICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEwMHgxMDAKICAg
ICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTAweDEwMAogICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDEwMHgxMDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2ludmFsaWQvcmVzaWR1YWwtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvaW52YWxpZC9yZXNpZHVhbC1zdHlsZS1leHBlY3RlZC50eHQKaW5k
ZXggYzUzNDJkOS4uOGIwZjhjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvaW52YWxpZC9yZXNpZHVhbC1zdHlsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW52YWxpZC9yZXNpZHVhbC1zdHlsZS1leHBlY3RlZC50eHQK
QEAgLTI5Miw3ICsyOTIsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXgzNDQxCiAgICAgICBS
ZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwxMDk3KSBzaXplIDc2OXgxOAogICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2NXgxOAogICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDY1OiAiRU1CRUQ6ICIKLSAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7
RU1CRUR9IGF0ICg2NSwxNCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qg
e0VNQkVEfSBhdCAoNjUsMTQpIHNpemUgMHgwCiAgICAgICAgIFJlbmRlcklubGluZSB7Rk9OVH0g
YXQgKDAsMCkgc2l6ZSAxNzF4MTggW2NvbG9yPSMwMDgwMDBdCiAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICg2NSwwKSBzaXplIDE3MXgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDY1LDApIHdpZHRoIDE3MTogIkFsbCBvZiB0aGlzIHNob3VsZCBiZSBncmVlbi4iCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9wYXJzZXIvMDAxLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3BhcnNlci8wMDEtZXhwZWN0ZWQudHh0
CmluZGV4IDBhNTllOTkuLjYzMDhlYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L3BhcnNlci8wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3BhcnNlci8wMDEtZXhwZWN0ZWQudHh0CkBAIC0yMiw3ICsyMiw3IEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSA2NHgxNQogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDY0OiAi
UHJlIHRleHQiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDY0LDApIHdpZHRoIDA6ICIgIgotICAg
ICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtPQkpFQ1R9IGF0ICgwLDE1KSBzaXplIDMwMHgzMDAgW2Jn
Y29sb3I9IzAwODAwMF0KKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQg
KDAsMTUpIHNpemUgMzAweDMwMCBbYmdjb2xvcj0jMDA4MDAwXQogICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDMwMCwzMDMpIHNpemUgMzAweDMwCiAgICAgICAgICAgdGV4dCBydW4gYXQg
KDMwMCwzMDMpIHdpZHRoIDA6ICIgIgogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDMxOCkgd2lk
dGggMTA0OiAiQWxzbyBwcmUgdGV4dCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L3JlcGxhY2VkLzAwNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZXBsYWNlZC8wMDctZXhwZWN0ZWQudHh0CmluZGV4IDYwZmIzODkuLmM3MzRk
MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGxhY2VkLzAw
Ny1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwbGFj
ZWQvMDA3LWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNyBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoNjIzLDE1NCkgc2l6ZSAweDAKICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNjMsMjk0KSBzaXplIDE1OHgxOAogICAgICAg
ICAgIHRleHQgcnVuIGF0ICgxNjMsMjk0KSB3aWR0aCAxNTg6ICJUaGlzIHNob3VsZCBiZSBjZW50
ZXJlZC4gIgotICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtPQkpFQ1R9IGF0ICgzMjEsMTU4KSBz
aXplIDMwMHgxNTAKKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQgKDMy
MSwxNTgpIHNpemUgMzAweDE1MAogICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1
MAogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDMwMHgxNTAKICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDMwMHgxNTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3JlcGxhY2VkL2JvcmRlci1yYWRpdXMtY2xpcC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNs
aXAtZXhwZWN0ZWQudHh0CmluZGV4IDAyNGY2MWEuLmE4NWRhZWQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGxhY2VkL2JvcmRlci1yYWRpdXMtY2xpcC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwbGFjZWQvYm9y
ZGVyLXJhZGl1cy1jbGlwLWV4cGVjdGVkLnR4dApAQCAtMjcsNyArMjcsNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDc4NXg5NTIKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzAwLDUyMCkg
c2l6ZSA0eDE4CiAgICAgICAgIHRleHQgcnVuIGF0ICgzMDAsNTIwKSB3aWR0aCA0OiAiICIKICAg
ICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclBhcnRPYmpl
Y3Qge0VNQkVEfSBhdCAoMCw1MzgpIHNpemUgNTU2eDQwNiBbYmdjb2xvcj0jMDBGRjAwXSBbYm9y
ZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge0VN
QkVEfSBhdCAoMCw1MzgpIHNpemUgNTU2eDQwNiBbYmdjb2xvcj0jMDBGRjAwXSBbYm9yZGVyOiAo
M3B4IHNvbGlkICMwMDAwMDApXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMHgwCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKIGxheWVy
IGF0ICg4LDM5Mikgc2l6ZSAzMDB4MTUwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZXBsYWNlZC9yZXBsYWNlZC1icmVha2luZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBsYWNlZC9yZXBsYWNlZC1icmVha2luZy1leHBl
Y3RlZC50eHQKaW5kZXggYTFmZjQ4MS4uMGQ5ZThjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvcmVwbGFjZWQvcmVwbGFjZWQtYnJlYWtpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGxhY2VkL3JlcGxhY2VkLWJy
ZWFraW5nLWV4cGVjdGVkLnR4dApAQCAtNTksOCArNTksOCBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDI1
eDI1CiAgICAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgOXg5CiAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICBSZW5k
ZXJQYXJ0T2JqZWN0IHtFTUJFRH0gYXQgKDEsNDgzKSBzaXplIDI3eDI3IFtib3JkZXI6ICgxcHgg
c29saWQgIzAwMDAwMCldCi0gICAgICAgIFJlbmRlclBhcnRPYmplY3Qge0VNQkVEfSBhdCAoMSw1
MTApIHNpemUgMjd4MjcgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVu
ZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVEfSBhdCAoMSw0ODMpIHNpemUgMjd4MjcgW2JvcmRlcjog
KDFweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVE
fSBhdCAoMSw1MTApIHNpemUgMjd4MjcgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiBsYXllciBhdCAoMTQs
MTQpIHNpemUgMTIyeDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgzLDMpIHNpemUgMTIyeDEz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9lbWJlZC1hdHRy
aWJ1dGVzLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVn
aW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IGIyZDczYjcuLjJh
NTI2ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL2VtYmVk
LWF0dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9wbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQudHh0CkBAIC0xMiwx
NyArMTIsMTcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJCbG9j
ayB7SFJ9IGF0ICgwLDUyKSBzaXplIDc4NHgyIFtib3JkZXI6ICgxcHggaW5zZXQgIzAwMDAwMCld
CiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw2Mikgc2l6ZSA3ODR4MAogICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsNjIpIHNpemUgNzg0eDEwNAotICAgICAgICBSZW5kZXJQYXJ0
T2JqZWN0IHtFTUJFRH0gYXQgKDAsMCkgc2l6ZSA1MHgxMDAKKyAgICAgICAgUmVuZGVyRW1iZWRk
ZWRPYmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDUweDEwMAogICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDUwLDg2KSBzaXplIDEyMngxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICg1
MCw4Nikgd2lkdGggNDogIiAiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDU0LDg2KSB3aWR0aCAx
MTg6ICJ2YWxpZ24gdG9wIGF0dHJpYnV0ZSIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDE2Nikgc2l6ZSA3ODR4MTA0Ci0gICAgICAgIFJlbmRlclBhcnRPYmplY3Qge0VNQkVEfSBhdCAo
MCwwKSBzaXplIDUweDEwMAorICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7RU1CRUR9IGF0
ICgwLDApIHNpemUgNTB4MTAwCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTAsODYp
IHNpemUgMTI4eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDUwLDg2KSB3aWR0aCA0OiAiICIK
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTQsODYpIHdpZHRoIDEyNDogImJvcmRlciA1cHggYXR0
cmlidXRlIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMjcwKSBzaXplIDc4NHgxMDYK
LSAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7RU1CRUR9IGF0ICgwLDApIHNpemUgNTJ4MTAyIFti
b3JkZXI6ICgxcHggZGFzaGVkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVj
dCB7RU1CRUR9IGF0ICgwLDApIHNpemUgNTJ4MTAyIFtib3JkZXI6ICgxcHggZGFzaGVkICMwMDAw
MDApXQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDUyLDg4KSBzaXplIDEwMngxOAog
ICAgICAgICAgIHRleHQgcnVuIGF0ICg1Miw4OCkgd2lkdGggNDogIiAiCiAgICAgICAgICAgdGV4
dCBydW4gYXQgKDU2LDg4KSB3aWR0aCA5ODogImhpZGRlbiBhdHRyaWJ1dGUiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9uZXRzY2FwZS1kb20tYWNjZXNzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL25ldHNjYXBlLWRv
bS1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IDE2ODAzNjMuLjc1N2IzOGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL25ldHNjYXBlLWRvbS1hY2Nlc3MtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL25ldHNjYXBl
LWRvbS1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNyBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1MDg6ICJUaGlz
IHBhZ2UgdGVzdHMgd2hldGhlciBOZXRzY2FwZSBwbHVnLWlucyBjYW4gYWNjZXNzIHRoZWlyIG93
biBET00gZWxlbWVudHMuICIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTA4LDApIHdpZHRoIDI2
NjogIlRoZSBwbHVnLWluIHNob3VsZCBoYXZlIGEgM3B4IHJlZCBib3JkZXIuIgogICAgICAgUmVu
ZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMzQpIHNpemUgNzg0eDIwNgotICAgICAgICBSZW5k
ZXJQYXJ0T2JqZWN0IHtFTUJFRH0gYXQgKDAsMCkgc2l6ZSAyMDZ4MjA2IFtib3JkZXI6ICgzcHgg
c29saWQgI0ZGMDAwMCldCisgICAgICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0IHtFTUJFRH0gYXQg
KDAsMCkgc2l6ZSAyMDZ4MjA2IFtib3JkZXI6ICgzcHggc29saWQgI0ZGMDAwMCldCiAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1
Z2lucy9xdC1xd2lkZ2V0LXBsdWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvcGx1Z2lucy9xdC1xd2lkZ2V0LXBsdWdpbi1leHBlY3RlZC50eHQKaW5kZXggMjEwMjgx
Ny4uZmQzOWJiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMv
cXQtcXdpZGdldC1wbHVnaW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9wbHVnaW5zL3F0LXF3aWRnZXQtcGx1Z2luLWV4cGVjdGVkLnR4dApAQCAtMTQsMTAgKzE0
LDEwIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDAsMTAyKSBzaXplIDc4NHgzNAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMTYpIHNpemUgMTExeDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTYpIHdpZHRoIDEx
MTogIlFUIHByb2dyZXNzIGJhcjogIgotICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtPQkpFQ1R9
IGF0ICgxMTEsMCkgc2l6ZSAzMDB4MzAKKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge09C
SkVDVH0gYXQgKDExMSwwKSBzaXplIDMwMHgzMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEzNikgc2l6
ZSA3ODR4MzQKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE2KSBzaXplIDE1Nngx
OAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE2KSB3aWR0aCAxNTY6ICJZb3Ugc2hvdWxkIG5v
dCBzZWUgdGhpczogIgotICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtPQkpFQ1R9IGF0ICgxNTYs
MCkgc2l6ZSAzMDB4MzAKKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQg
KDE1NiwwKSBzaXplIDMwMHgzMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L2dldHN2Z2RvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3VzdG9tL2dldHN2Z2RvY3VtZW50LWV4cGVjdGVkLnR4dAppbmRleCAxM2Q0NzNlLi5mODUw
NjJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9nZXRz
dmdkb2N1bWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9jdXN0b20vZ2V0c3ZnZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNyBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA3Njc6ICJUaGlzIHRlc3RzIHRvIHNlZSBpZiBIVE1MRW1iZWRFbGVtZW50LmdldFNWR0RvY3Vt
ZW50KCkgYW5kIEhUTUxPYmplY3RFbGVtZW50LmdldFNWR0RvY3VtZW50KCkgd29yay4gWW91Igog
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAzMDA6ICJzaG91bGQgc2VlIFNVQ0NF
U1MgcHJpbnRlZCB0d2ljZSBiZWxvdyB0aGlzOiIKICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1v
dXMpIGF0ICgwLDUyKSBzaXplIDc4NHg1OAotICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtFTUJF
RH0gYXQgKDAsMCkgc2l6ZSA4NXgyMAorICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7RU1C
RUR9IGF0ICgwLDApIHNpemUgODV4MjAKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDg1
eDIwCiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODV4MjAKICAgICAgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDg1eDIwCkBAIC0xOSw3ICsxOSw3IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0
ICg1LjAwLDE2LjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA3IHdpZHRoIDcxLjAwOiAiU1VD
Q0VTUyIKICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoODUsMjApIHNpemUgMHgwCiAgICAgICAg
IFJlbmRlckJSIHtCUn0gYXQgKDAsMjApIHNpemUgMHgxOAotICAgICAgICBSZW5kZXJQYXJ0T2Jq
ZWN0IHtPQkpFQ1R9IGF0ICgwLDM4KSBzaXplIDg1eDIwCisgICAgICAgIFJlbmRlckVtYmVkZGVk
T2JqZWN0IHtPQkpFQ1R9IGF0ICgwLDM4KSBzaXplIDg1eDIwCiAgICAgICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4NXgyMAogICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDg1
eDIwCiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4NXgyMApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2Nyb2xsaW5nLWVtYmVkZGVkLXN2Zy1m
aWxlLWltYWdlLXJlcGFpbnQtcHJvYmxlbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3JvbGxpbmctZW1iZWRkZWQtc3ZnLWZpbGUtaW1hZ2UtcmVw
YWludC1wcm9ibGVtLWV4cGVjdGVkLnR4dAppbmRleCA1ZmJmYTUyLi41YjNjZDIxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3JvbGxpbmctZW1iZWRk
ZWQtc3ZnLWZpbGUtaW1hZ2UtcmVwYWludC1wcm9ibGVtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3JvbGxpbmctZW1iZWRkZWQtc3ZnLWZp
bGUtaW1hZ2UtcmVwYWludC1wcm9ibGVtLWV4cGVjdGVkLnR4dApAQCAtNTQsNyArNTQsNyBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDEwMjZ4MTAzNQogICAgICAgICAgICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDIwMiw5KSB3aWR0aCA5MTogIlBORyBJbWFnZSIKICAgICAgICAgICAgICAgICAg
IFJlbmRlclRhYmxlUm93IHtUUn0gYXQgKDAsMTQ5KSBzaXplIDk5OHgzODEKICAgICAgICAgICAg
ICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIsMTQ5KSBzaXplIDQ5NngzODEgW3I9
MiBjPTAgcnM9MSBjcz0xXQotICAgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhcnRPYmplY3Qg
e0VNQkVEfSBhdCAoOCw4KSBzaXplIDQ4MHgzNjAKKyAgICAgICAgICAgICAgICAgICAgICBSZW5k
ZXJFbWJlZGRlZE9iamVjdCB7RU1CRUR9IGF0ICg4LDgpIHNpemUgNDgweDM2MAogICAgICAgICAg
ICAgICAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgICAg
ICAgICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvaGl4aWUvdGV4dC8wMDMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9oaXhpZS90ZXh0LzAwMy1leHBlY3RlZC50eHQK
aW5kZXggMTQ4NTgwNC4uZWJlMDRmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9oaXhpZS90ZXh0LzAwMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9oaXhpZS90ZXh0LzAwMy1leHBlY3RlZC50eHQKQEAgLTcsNyArNyw3IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDQwMgogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA2MDh4MTgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA2
MDg6ICJUaGUgZm9sbG93aW5nIHR3byBibG9ja3Mgc2hvdWxkIGxvb2sgaWRlbnRpY2FsICh0byB0
aGUgcGl4ZWwpLCBhbmQgdGhleSBzaG91bGQgYm90aCBzYXkgXCJQQVNTXCI6IgogICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDM0KSBzaXplIDc4NHgxNjAKLSAgICAgICAgUmVuZGVyUGFydE9i
amVjdCB7T0JKRUNUfSBhdCAoMCwwKSBzaXplIDMwNngxNTYgW2JvcmRlcjogKDNweCBpbnNldCAj
MDAwMDgwKV0KKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQgKDAsMCkg
c2l6ZSAzMDZ4MTU2IFtib3JkZXI6ICgzcHggaW5zZXQgIzAwMDA4MCldCiAgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCiAgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgMzAweDE1MAogICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MApAQCAt
MTYsNyArMTYsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg0MDIKICAgICAgICAgICAgICAg
ICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTEpIHNpemUgNHgyCiAgICAgICAg
ICAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDAuMDAsMC44MCkgc3RhcnRPZmZzZXQg
MCBlbmRPZmZzZXQgNCB3aWR0aCAzLjAwOiAiUEFTUyIKICAgICAgIFJlbmRlckJsb2NrIHtQfSBh
dCAoMCwyMTApIHNpemUgNzg0eDE2MAotICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtPQkpFQ1R9
IGF0ICgwLDApIHNpemUgMzA2eDE1NiBbYm9yZGVyOiAoM3B4IGluc2V0ICMwMDAwODApXQorICAg
ICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7T0JKRUNUfSBhdCAoMCwwKSBzaXplIDMwNngxNTYg
W2JvcmRlcjogKDNweCBpbnNldCAjMDAwMDgwKV0KICAgICAgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDMwMHgxNTAKICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzMDB4MTUw
CiAgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGluZy1vYmplY3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZWRpdGluZy9wYXN0ZWJvYXJkL3Bh
c3Rpbmctb2JqZWN0LWV4cGVjdGVkLnR4dAppbmRleCBlM2Y4YmIxLi42OGU1ZGUwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGluZy1v
YmplY3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2VkaXRpbmcv
cGFzdGVib2FyZC9wYXN0aW5nLW9iamVjdC1leHBlY3RlZC50eHQKQEAgLTE3LDcgKzE3LDcgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCw1Mikgc2l6ZSA3ODR4MTU3CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxMzgp
IHNpemUgMzJ4MTkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxMzgpIHdpZHRoIDMyOiAiSGVs
bG8iCi0gICAgICAgIFJlbmRlclBhcnRPYmplY3Qge09CSkVDVH0gYXQgKDMyLDApIHNpemUgMzAy
eDE1MiBbYm9yZGVyOiAoMXB4IHNvbGlkICNBQUFBQUEpXQorICAgICAgICBSZW5kZXJFbWJlZGRl
ZE9iamVjdCB7T0JKRUNUfSBhdCAoMzIsMCkgc2l6ZSAzMDJ4MTUyIFtib3JkZXI6ICgxcHggc29s
aWQgI0FBQUFBQSldCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzM0LDEzOCkgc2l6
ZSA0NXgxOQogICAgICAgICAgIHRleHQgcnVuIGF0ICgzMzQsMTM4KSB3aWR0aCA0NTogIiBXb3Js
ZCEiCiBjYXJldDogcG9zaXRpb24gMSBvZiBjaGlsZCAxIHtPQkpFQ1R9IG9mIGNoaWxkIDMge0RJ
Vn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvYmxvY2svYmFzaWMvMDEzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvYmxvY2svYmFzaWMvMDEzLWV4
cGVjdGVkLnR4dAppbmRleCBiZDYzODJiLi4wOTU4NDgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9mYXN0L2Jsb2NrL2Jhc2ljLzAxMy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9ibG9jay9iYXNpYy8wMTMtZXhwZWN0ZWQudHh0CkBA
IC0xNyw3ICsxNyw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTQ5OiAiVGhpcyB0ZXh0IGlzIHVuZGVybmVh
dGguIgogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1MDQsOTApIHNpemUgNHgxOQogICAg
ICAgICB0ZXh0IHJ1biBhdCAoNTA0LDkwKSB3aWR0aCA0OiAiICIKLSAgICAgIFJlbmRlclBhcnRP
YmplY3Qge09CSkVDVH0gYXQgKDAsMTA5KSBzaXplIDUwMHgxMDAKKyAgICAgIFJlbmRlckVtYmVk
ZGVkT2JqZWN0IHtPQkpFQ1R9IGF0ICgwLDEwOSkgc2l6ZSA1MDB4MTAwCiAgICAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgNTAweDEwMAogICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA1MDB4MTAwCiAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTAweDEwMApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9ibG9jay9mbG9hdC80MTQ1NTM1Q3Jhc2gt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9ibG9jay9mbG9hdC80
MTQ1NTM1Q3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4IGJjMjNlNGMuLjY2ZDhkMTkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvYmxvY2svZmxvYXQvNDE0NTUzNUNyYXNo
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2Jsb2NrL2Zs
b2F0LzQxNDU1MzVDcmFzaC1leHBlY3RlZC50eHQKQEAgLTQsNiArNCw2IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CiAgICAgICBS
ZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc4NHgxNTAKLSAgICAgICAgUmVu
ZGVyUGFydE9iamVjdCB7RU1CRUR9IGF0ICgwLDApIHNpemUgMzAweDE1MAorICAgICAgICBSZW5k
ZXJFbWJlZGRlZE9iamVjdCB7RU1CRUR9IGF0ICgwLDApIHNpemUgMzAweDE1MAogICAgICAgUmVu
ZGVyVGFibGUge1RBQkxFfSBhdCAoMCwxNTApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclRhYmxl
U2VjdGlvbiB7VEJPRFl9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MT2JqZWN0RWxlbWVudC92c3BhY2UtaHNwYWNlLWFz
LW51bWJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9I
VE1MT2JqZWN0RWxlbWVudC92c3BhY2UtaHNwYWNlLWFzLW51bWJlci1leHBlY3RlZC50eHQKaW5k
ZXggZTgwMTRiMS4uNTUyMzQ2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
ZmFzdC9kb20vSFRNTE9iamVjdEVsZW1lbnQvdnNwYWNlLWhzcGFjZS1hcy1udW1iZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxPYmplY3RF
bGVtZW50L3ZzcGFjZS1oc3BhY2UtYXMtbnVtYmVyLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDcg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNzcxOiAiVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBIVE1MT2JqZWN0RWxlbWVu
dC52c3BhY2UgYW5kIEhUTUxPYmplY3RFbGVtZW50LmhzcGFjZSBhcmUgZXhwb3NlZCBhcyBudW1i
ZXJzIGluc3RlYWQiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTkpIHdpZHRoIDY5NzogIm9m
IHN0cmluZ3MsIHBlciB0aGUgRE9NIExldmVsIDIgSFRNTCBzcGVjOiBodHRwOi8vd3d3LnczLm9y
Zy9UUi9ET00tTGV2ZWwtMi1IVE1ML2h0bWwuaHRtbCNJRC05ODkzMTc3IgogICAgICAgUmVuZGVy
QmxvY2sgKGFub255bW91cykgYXQgKDAsNTIpIHNpemUgNzg0eDE3MAotICAgICAgICBSZW5kZXJQ
YXJ0T2JqZWN0IHtPQkpFQ1R9IGF0ICgyMCwxMCkgc2l6ZSAzMDB4MTUwCisgICAgICAgIFJlbmRl
ckVtYmVkZGVkT2JqZWN0IHtPQkpFQ1R9IGF0ICgyMCwxMCkgc2l6ZSAzMDB4MTUwCiAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMjIyKSBzaXplIDc4NHgxOQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA3MHgxOQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
ZmFzdC9keW5hbWljL2ZsYXNoLXJlcGxhY2VtZW50LXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9keW5hbWljL2ZsYXNoLXJlcGxhY2VtZW50LXRlc3QtZXhw
ZWN0ZWQudHh0CmluZGV4IDE4MzkyNjQuLjUxMGFmYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2Zhc3QvZHluYW1pYy9mbGFzaC1yZXBsYWNlbWVudC10ZXN0LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2R5bmFtaWMvZmxhc2gtcmVw
bGFjZW1lbnQtdGVzdC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDI2OAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjY4
CiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MjUyCiAgICAgICBSZW5k
ZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc4NHgxNTkKLSAgICAgICAgUmVuZGVy
UGFydE9iamVjdCB7T0JKRUNUfSBhdCAoMCwwKSBzaXplIDI0OXgxNTQKKyAgICAgICAgUmVuZGVy
RW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQgKDAsMCkgc2l6ZSAyNDl4MTU0CiAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMjQ5LDE0MCkgc2l6ZSA0eDE5CiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDI0OSwxNDApIHdpZHRoIDQ6ICIgIgogICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgw
LDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2Zy
YW1lcy8wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9mcmFt
ZXMvMDAxLWV4cGVjdGVkLnR4dAppbmRleCA2NWVjNzIwLi4xYjRmMDBkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2ZyYW1lcy8wMDEtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZnJhbWVzLzAwMS1leHBlY3RlZC50eHQKQEAg
LTE0LDcgKzE0LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDg0eDg0CiAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDE3MCwxNzUpIHNpemUgNHgxOQogICAgICAgICB0ZXh0IHJ1biBhdCAoMTcwLDE3
NSkgd2lkdGggNDogIiAiCi0gICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtPQkpFQ1R9IGF0ICgxNzQs
MTkpIHNpemUgMTcweDE3MCBbYm9yZGVyOiAoMTBweCBzb2xpZCAjRkYwMDAwKV0KKyAgICAgIFJl
bmRlckVtYmVkZGVkT2JqZWN0IHtPQkpFQ1R9IGF0ICgxNzQsMTkpIHNpemUgMTcweDE3MCBbYm9y
ZGVyOiAoMTBweCBzb2xpZCAjRkYwMDAwKV0KICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
MDB4MTAwCiAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEwMHgxMDAKICAgICAg
ICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMDB4MTAwCkBAIC0yMiw3ICsyMiw3IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA4NHg4NAogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzNDQsMTc1KSBzaXpl
IDR4MTkKICAgICAgICAgdGV4dCBydW4gYXQgKDM0NCwxNzUpIHdpZHRoIDQ6ICIgIgotICAgICAg
UmVuZGVyUGFydE9iamVjdCB7T0JKRUNUfSBhdCAoMzQ4LDE5KSBzaXplIDE3MHgxNzAgW2JvcmRl
cjogKDEwcHggc29saWQgI0ZGMDAwMCldCisgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7T0JK
RUNUfSBhdCAoMzQ4LDE5KSBzaXplIDE3MHgxNzAgW2JvcmRlcjogKDEwcHggc29saWQgI0ZGMDAw
MCldCiAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTAweDEwMAogICAgICAgICAgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSAxMDB4MTAwCiAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MTAweDEwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9wYXJzZXIv
MDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvcGFyc2VyLzAw
MS1leHBlY3RlZC50eHQKaW5kZXggMmUyNWQ5Zi4uOGFmZjcwOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9wYXJzZXIvMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L3BhcnNlci8wMDEtZXhwZWN0ZWQudHh0CkBAIC0yMiw3
ICsyMiw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0OXgxOQogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDQ5OiAiUHJlIHRleHQiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ5LDApIHdpZHRo
IDA6ICIgIgotICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtPQkpFQ1R9IGF0ICgwLDE5KSBzaXpl
IDMwMHgzMDAgW2JnY29sb3I9IzAwODAwMF0KKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qg
e09CSkVDVH0gYXQgKDAsMTkpIHNpemUgMzAweDMwMCBbYmdjb2xvcj0jMDA4MDAwXQogICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMwMCwzMDUpIHNpemUgMzAweDM4CiAgICAgICAgICAg
dGV4dCBydW4gYXQgKDMwMCwzMDUpIHdpZHRoIDA6ICIgIgogICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDMyNCkgd2lkdGggNzk6ICJBbHNvIHByZSB0ZXh0IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZmFzdC9yZXBsYWNlZC8wMDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZmFzdC9yZXBsYWNlZC8wMDctZXhwZWN0ZWQudHh0CmluZGV4IGVkMDUw
OWYuLjc4MGMyNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvcmVw
bGFjZWQvMDA3LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0
L3JlcGxhY2VkLzAwNy1leHBlY3RlZC50eHQKQEAgLTE1LDcgKzE1LDcgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDYyNCwxNTQpIHNpemUg
MHgwCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTYxLDI5NSkgc2l6ZSAxNjF4MTkK
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTYxLDI5NSkgd2lkdGggMTYxOiAiVGhpcyBzaG91bGQg
YmUgY2VudGVyZWQuICIKLSAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7T0JKRUNUfSBhdCAoMzIy
LDE1OSkgc2l6ZSAzMDB4MTUwCisgICAgICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0IHtPQkpFQ1R9
IGF0ICgzMjIsMTU5KSBzaXplIDMwMHgxNTAKICAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDMwMHgxNTAKICAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCiAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L3JlcGxhY2VkL3JlcGxhY2VkLWJyZWFraW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvcmVwbGFjZWQvcmVwbGFjZWQtYnJl
YWtpbmctZXhwZWN0ZWQudHh0CmluZGV4IDdjNWZiMzkuLjZiNzcyYjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvcmVwbGFjZWQvcmVwbGFjZWQtYnJlYWtpbmctZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvcmVwbGFjZWQvcmVw
bGFjZWQtYnJlYWtpbmctZXhwZWN0ZWQudHh0CkBAIC01OSw4ICs1OSw4IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDY2OAogICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgMjV4MjUKICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA5eDkKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICAgIFJlbmRlclBhcnRPYmplY3Qge0VNQkVEfSBhdCAoMSw1OTcpIHNpemUgMjd4MjcgW2JvcmRl
cjogKDFweCBzb2xpZCAjMDAwMDAwKV0KLSAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7RU1CRUR9
IGF0ICgxLDYyNCkgc2l6ZSAyN3gyNyBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorICAg
ICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCB7RU1CRUR9IGF0ICgxLDU5Nykgc2l6ZSAyN3gyNyBb
Ym9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVj
dCB7RU1CRUR9IGF0ICgxLDYyNCkgc2l6ZSAyN3gyNyBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAw
MDApXQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKIGxheWVy
IGF0ICgxNCwxNCkgc2l6ZSAxNjJ4MTkKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDMsMykgc2l6
ZSAxNjJ4MTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3BsdWdpbnMvZW1i
ZWQtYXR0cmlidXRlcy1zdHlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9wbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IDQ5MzM2
MzYuLmNlMThhZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3BsdWdpbnMv
ZW1iZWQtYXR0cmlidXRlcy1zdHlsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvcGx1Z2lucy9lbWJlZC1hdHRyaWJ1dGVzLXN0eWxlLWV4cGVjdGVkLnR4dApAQCAt
MTIsMTcgKzEyLDE3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVy
QmxvY2sge0hSfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MiBbYm9yZGVyOiAoMXB4IGluc2V0ICMwMDAw
MDApXQogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNjEpIHNpemUgNzg0eDAKICAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDYxKSBzaXplIDc4NHgxMDUKLSAgICAgICAgUmVuZGVy
UGFydE9iamVjdCB7RU1CRUR9IGF0ICgwLDApIHNpemUgNTB4MTAwCisgICAgICAgIFJlbmRlckVt
YmVkZGVkT2JqZWN0IHtFTUJFRH0gYXQgKDAsMCkgc2l6ZSA1MHgxMDAKICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICg1MCw4Nikgc2l6ZSAxMjF4MTkKICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNTAsODYpIHdpZHRoIDQ6ICIgIgogICAgICAgICAgIHRleHQgcnVuIGF0ICg1NCw4Nikgd2lk
dGggMTE3OiAidmFsaWduIHRvcCBhdHRyaWJ1dGUiCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwxNjYpIHNpemUgNzg0eDEwNQotICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtFTUJFRH0g
YXQgKDAsMCkgc2l6ZSA1MHgxMDAKKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVE
fSBhdCAoMCwwKSBzaXplIDUweDEwMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDUw
LDg2KSBzaXplIDEyOXgxOQogICAgICAgICAgIHRleHQgcnVuIGF0ICg1MCw4Nikgd2lkdGggNDog
IiAiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDU0LDg2KSB3aWR0aCAxMjU6ICJib3JkZXIgNXB4
IGF0dHJpYnV0ZSIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDI3MSkgc2l6ZSA3ODR4
MTA3Ci0gICAgICAgIFJlbmRlclBhcnRPYmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDUyeDEw
MiBbYm9yZGVyOiAoMXB4IGRhc2hlZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyRW1iZWRkZWRP
YmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDUyeDEwMiBbYm9yZGVyOiAoMXB4IGRhc2hlZCAj
MDAwMDAwKV0KICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1Miw4OCkgc2l6ZSAxMDN4
MTkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTIsODgpIHdpZHRoIDQ6ICIgIgogICAgICAgICAg
IHRleHQgcnVuIGF0ICg1Niw4OCkgd2lkdGggOTk6ICJoaWRkZW4gYXR0cmlidXRlIgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvcGx1Z2lucy9uZXRzY2FwZS1kb20tYWNjZXNz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3BsdWdpbnMvbmV0c2NhcGUt
ZG9tLWFjY2Vzcy1leHBlY3RlZC50eHQKaW5kZXggMzhiNWI0Mi4uN2E2MDkzMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvcGx1Z2lucy9uZXRzY2FwZS1kb20tYWNjZXNzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9wbHVnaW5zL25ldHNjYXBl
LWRvbS1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC05LDcgKzksNyBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTczLDApIHdpZHRoIDE4NTogIlRo
ZSBwbHVnLWluIHNob3VsZCBoYXZlIGEiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdp
ZHRoIDEwNzogIjNweCByZWQgYm9yZGVyLiIKICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMp
IGF0ICgwLDU2KSBzaXplIDc4NHgyMDYKLSAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7RU1CRUR9
IGF0ICgwLDApIHNpemUgMjA2eDIwNiBbYm9yZGVyOiAoM3B4IHNvbGlkICNGRjAwMDApXSBbUVQ6
IGdlb21ldHJ5OiB7YXQgKDgsNjQpIHNpemUgMjAweDIwMH0gaXNIaWRkZW46IDAgaXNTZWxmVmlz
aWJsZTogMSBpc1BhcmVudFZpc2libGU6IDEgbWFzazoge2F0ICgwLDApIHNpemUgMjAweDIwMH0g
XSAKKyAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge0VNQkVEfSBhdCAoMCwwKSBzaXplIDIw
NngyMDYgW2JvcmRlcjogKDNweCBzb2xpZCAjRkYwMDAwKV0gW1FUOiBnZW9tZXRyeToge2F0ICg4
LDY0KSBzaXplIDIwMHgyMDB9IGlzSGlkZGVuOiAwIGlzU2VsZlZpc2libGU6IDEgaXNQYXJlbnRW
aXNpYmxlOiAxIG1hc2s6IHthdCAoMCwwKSBzaXplIDIwMHgyMDB9IF0gCiAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9wbHVnaW5zL3F0
LXF3aWRnZXQtcGx1Z2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3Bs
dWdpbnMvcXQtcXdpZGdldC1wbHVnaW4tZXhwZWN0ZWQudHh0CmluZGV4IGZjY2E3N2QuLmU3ZjQz
MTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3BsdWdpbnMvcXQtcXdpZGdl
dC1wbHVnaW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3BsdWdp
bnMvcXQtcXdpZGdldC1wbHVnaW4tZXhwZWN0ZWQudHh0CkBAIC0xNCwxMCArMTQsMTAgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwx
MDQpIHNpemUgNzg0eDM0CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxNCkgc2l6
ZSAxMjN4MjAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxNCkgd2lkdGggMTIzOiAiUVQgcHJv
Z3Jlc3MgYmFyOiAiCi0gICAgICAgIFJlbmRlclBhcnRPYmplY3Qge09CSkVDVH0gYXQgKDEyMyww
KSBzaXplIDMwMHgzMCBbUVQ6IGdlb21ldHJ5OiB7YXQgKDEzMSwxMTIpIHNpemUgMzAweDMwfSBp
c0hpZGRlbjogMCBpc1NlbGZWaXNpYmxlOiAxIGlzUGFyZW50VmlzaWJsZTogMSBtYXNrOiB7YXQg
KDAsMCkgc2l6ZSAzMDB4MzB9IF0gCisgICAgICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0IHtPQkpF
Q1R9IGF0ICgxMjMsMCkgc2l6ZSAzMDB4MzAgW1FUOiBnZW9tZXRyeToge2F0ICgxMzEsMTEyKSBz
aXplIDMwMHgzMH0gaXNIaWRkZW46IDAgaXNTZWxmVmlzaWJsZTogMSBpc1BhcmVudFZpc2libGU6
IDEgbWFzazoge2F0ICgwLDApIHNpemUgMzAweDMwfSBdIAogICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEz
OCkgc2l6ZSA3ODR4MzQKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE0KSBzaXpl
IDE3NHgyMAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE0KSB3aWR0aCAxNzQ6ICJZb3Ugc2hv
dWxkIG5vdCBzZWUgdGhpczogIgotICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtPQkpFQ1R9IGF0
ICgxNzQsMCkgc2l6ZSAzMDB4MzAgW1FUOiBnZW9tZXRyeToge2F0ICgxODIsMTQ2KSBzaXplIDMw
MHgzMH0gaXNIaWRkZW46IDEgaXNTZWxmVmlzaWJsZTogMCBpc1BhcmVudFZpc2libGU6IDEgbWFz
azoge2F0ICgwLDApIHNpemUgMzAweDMwfSBdIAorICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVj
dCB7T0JKRUNUfSBhdCAoMTc0LDApIHNpemUgMzAweDMwIFtRVDogZ2VvbWV0cnk6IHthdCAoMTgy
LDE0Nikgc2l6ZSAzMDB4MzB9IGlzSGlkZGVuOiAxIGlzU2VsZlZpc2libGU6IDAgaXNQYXJlbnRW
aXNpYmxlOiAxIG1hc2s6IHthdCAoMCwwKSBzaXplIDMwMHgzMH0gXSAKICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU5ZTM0NjMuLmQ0M2NlMDcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTcgQEAKKzIwMTAtMDEtMDcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzM4CisgICAgICAgIENyZWF0ZSBh
IHJlbmRlcmVyIGZvciA8b2JqZWN0PiBhbmQgPGVtYmVkPgorICAgICAgICAKKyAgICAgICAgQWRk
IFJlbmRlckVtYmVkZGVkT2JqZWN0LCB3aGljaCBkZXJpdmVzIGZyb20gUmVuZGVyUGFydE9iamVj
dCwgYW5kIGlzIGNyZWF0ZWQgZm9yIDxvYmplY3Q+IGFuZCA8ZW1iZWQ+LgorICAgICAgICBJbnN0
YW5jZXMgb2YgUmVuZGVyUGFydE9iamVjdCBhcmUgbm93IG9ubHkgYWxsb2NhdGVkIGZvciBpZnJh
bWVzLgorICAgICAgICAKKyAgICAgICAgTW92ZSBvYmplY3QvZW1iZWQtcmVsYXRlZCBjb2RlIGZy
b20gUmVuZGVyUGFydE9iamVjdCB0byBSZW5kZXJFbWJlZGRlZE9iamVjdC4KKworICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIFJlbmRlckVt
YmVkZGVkT2JqZWN0LmgvY3BwCisgICAgICAgIAorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjpjcmVhdGVSZW5k
ZXJlcik6IENyZWF0ZSBhIFJlbmRlckVtYmVkZGVkT2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVtYmVkRWxlbWVudDo6dXBkYXRlV2lkZ2V0KTogVXNlIHRvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QoKQorCisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwOiBObyBsb25nZXIgbmVlZCBhdHRhY2goKSwgc2luY2Ug
cmVuZGVyUGFydE9iamVjdC0+dXBkYXRlV2lkZ2V0KCkKKyAgICAgICAgaXMgYSBuby1vcCBmb3Ig
bm9uLXBsdWdpbnMuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOiBNYWtlIGEg
UmVuZGVyRW1iZWRkZWRPYmplY3QgZm9yIHRoZSBwbHVnaW4tcHJveHkgY2FzZS4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbik6IFVzZSB0
b1JlbmRlckVtYmVkZGVkT2JqZWN0KCkgaW4gdGhlIHBsdWdpbi1wcm94eSBjb2RlLgorCisgICAg
ICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
T2JqZWN0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOiBNYWtlIGEgUmVuZGVyRW1iZWRkZWRPYmpl
Y3QKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojp1cGRhdGVXaWRnZXQpOiBV
c2UgdG9SZW5kZXJFbWJlZGRlZE9iamVjdCgpCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6YWRkV2lkZ2V0VG9VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpy
ZW1vdmVXaWRnZXRUb1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0
ZVdpZGdldHMpOgorICAgICAgICBPYmplY3RzIGluIHRoZSBtX3dpZGdldFVwZGF0ZVNldCBhcmUg
b25seSBldmVyIFJlbmRlckVtYmVkZGVkT2JqZWN0cy4KKyAgICAgICAgCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICBNb3N0IG9mIHRoZSBj
b2RlIG1vdmVkIGZyb20gUmVuZGVyUGFydE9iamVjdC4KKyAgICAgICAgCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpp
c0VtYmVkZGVkT2JqZWN0KTogTmV3IG1ldGhvZC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJQYXJ0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhcnQ6OlJlbmRlclBhcnQpOiBJ
bml0aWFsaXplIG1faGFzRmFsbGJhY2tDb250ZW50IGhlcmUsIHJhdGhlciB0aGFuIGluIHRoZSBk
ZXJpdmVkIGNsYXNzZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhcnQuaDogQ29tbWVu
dHMuCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUGFydE9iamVjdDo6UmVuZGVyUGFydE9iamVjdCk6IENsZWFuIHVwLCBjb2RlIG1v
dmVkIHRvIGJhc2UgY2xhc3MsIGFuZCByZW1vdmVkIG9iamVjdC9lbWJlZC1zcGVjaWZpYyBjb2Rl
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGFydE9iamVjdDo6bGF5b3V0KTogUmVtb3ZlZCBv
YmplY3QvZW1iZWQtc3BlY2lmaWMgY29kZS4KKwogMjAxMC0wMS0wNyAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSZXNvbHZlIG1lcmdlIGNv
bmZsaWN0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAz
N2MyMzU2Li44OWM2NGY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTgxLDYgKzE4MSw4IEBACiAJCTBGNTgwQ0ZFMEYxMkRFOUIwMDUxRDY4OSAvKiBS
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1ODBDRkEwRjEyREU5QjAwNTFENjg5IC8qIFJlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAgKi87IH07CiAJCTBGNTgwQ0ZGMEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJM
YXllckJhY2tpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNTgwQ0ZCMEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJMYXllckJhY2tpbmcuaCAqLzsg
fTsKIAkJMEY1ODBEMDAwRjEyREU5QjAwNTFENjg5IC8qIFJlbmRlckxheWVyQmFja2luZy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU4MENGQzBG
MTJERTlCMDA1MUQ2ODkgLyogUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCAqLzsgfTsKKwkJMEY1QjdB
NTQxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUI3QTUyMTBGNjVEN0EwMDM3
NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgKi87IH07CisJCTBGNUI3QTU1MTBGNjVE
N0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QjdBNTMxMEY2NUQ3QTAwMzc2MzAyIC8qIFJl
bmRlckVtYmVkZGVkT2JqZWN0LmggKi87IH07CiAJCTBGNkVDRDQ1MEYyNTJGMzcwMEJERTI3MSAv
KiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjZFQ0Q0MzBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25n
aGFuZC5oICovOyB9OwogCQkwRjZFQ0Q0NjBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlM
b25naGFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjZFQ0Q0NDBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25naGFuZC5jcHAgKi87
IH07CiAJCTBGQzcwNTIxMEVCMTgxNTYwMEI5MEFEOCAvKiBBdG9taWNTdHJpbmdIYXNoLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM3MDUyMDBFQjE4
MTU2MDBCOTBBRDggLyogQXRvbWljU3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01Mzk2LDYgKzUzOTgsOCBAQAogCQkwRjU4MENG
QTBGMTJERTlCMDA1MUQ2ODkgLyogUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckxheWVyQ29tcG9zaXRvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTgwQ0ZCMEYxMkRFOUIwMDUxRDY4OSAvKiBS
ZW5kZXJMYXllckJhY2tpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyTGF5ZXJCYWNraW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTgwQ0ZD
MEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJMYXllckJhY2tpbmcuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1QjdBNTIxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlckVtYmVkZGVkT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1
QjdBNTMxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckVtYmVkZGVkT2JqZWN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNkVDRDQzMEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9w
ZXJ0eUxvbmdoYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1Byb3Bl
cnR5TG9uZ2hhbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2RUNENDQwRjI1
MkYzNzAwQkRFMjcxIC8qIENTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUHJvcGVydHlMb25naGFuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGOUM2RjRCMTA3M0VGMDQwMERFRDlCRiAvKiBXZWJDb3JlLjNE
UmVuZGVyaW5nLmV4cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuZXhwb3J0czsgcGF0aCA9IFdlYkNv
cmUuM0RSZW5kZXJpbmcuZXhwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU1MDUs
NiArMTU1MDksOCBAQAogCQkJCUE4NzFERUNEMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0
T2JqZWN0LmggKi8sCiAJCQkJODUzQ0E5RUUwQUVFQzY1NzAwMjM3MkRDIC8qIFJlbmRlclBhdGgu
Y3BwICovLAogCQkJCTg1M0NBOUVGMEFFRUM2NTcwMDIzNzJEQyAvKiBSZW5kZXJQYXRoLmggKi8s
CisJCQkJMEY1QjdBNTIxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmNw
cCAqLywKKwkJCQkwRjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuaCAqLywKIAkJCQlBODcxREZERTBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQu
Y3BwICovLAogCQkJCUE4NzFERkRGMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5o
ICovLAogCQkJCUJDQTg0NkQ0MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJSZXBsaWNhLmNwcCAq
LywKQEAgLTE4MzEzLDYgKzE4MzE5LDcgQEAKIAkJCQk1MTEyMjQ3NjEwQ0ZCOEU4MDA4MDk5RDcg
LyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTEyMjQ3QTEwQ0ZCOEZGMDA4MDk5RDcgLyogV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzI4QTY4MTBGNjU5Q0MwMDhDNzgx
MyAvKiBUeXBlc2V0dGluZ0ZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVCN0E1NTEw
RjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMjA0NzMsNiArMjA0ODAsNyBAQAogCQkJCTBBRkRBQzNCMTBGNTQ0ODMwMEUxRjNEMiAvKiBQ
bHVnaW5XaWRnZXRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTEyMjQ3MjEwQ0ZCOEM2MDA4
MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTExMjI0NzgxMENGQjhGNDAwODA5OUQ3IC8qIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNUI3QTU0MTBGNjVEN0EwMDM3NjMwMiAv
KiBSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmNwcAppbmRleCA4MWI4OGE0Li42YzYyODQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1l
bnQuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKKyNp
bmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgi
Ci0jaW5jbHVkZSAiUmVuZGVyUGFydE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5o
IgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpA
QCAtMTU1LDcgKzE1NSw3IEBAIFJlbmRlck9iamVjdCogSFRNTEVtYmVkRWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7CiAgICAgaWYgKGlz
SW1hZ2VUeXBlKCkpCiAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlz
KTsKLSAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUGFydE9iamVjdCh0aGlzKTsKKyAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRW1iZWRkZWRPYmplY3QodGhpcyk7CiB9CiAKIHZvaWQg
SFRNTEVtYmVkRWxlbWVudDo6YXR0YWNoKCkKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIEhUTUxF
bWJlZEVsZW1lbnQ6OnVwZGF0ZVdpZGdldCgpCiB7CiAgICAgZG9jdW1lbnQoKS0+dXBkYXRlU3R5
bGVJZk5lZWRlZCgpOwogICAgIGlmIChtX25lZWRXaWRnZXRVcGRhdGUgJiYgcmVuZGVyZXIoKSAm
JiAhaXNJbWFnZVR5cGUoKSkKLSAgICAgICAgdG9SZW5kZXJQYXJ0T2JqZWN0KHJlbmRlcmVyKCkp
LT51cGRhdGVXaWRnZXQodHJ1ZSk7CisgICAgICAgIHRvUmVuZGVyRW1iZWRkZWRPYmplY3QocmVu
ZGVyZXIoKSktPnVwZGF0ZVdpZGdldCh0cnVlKTsKIH0KIAogdm9pZCBIVE1MRW1iZWRFbGVtZW50
OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElG
cmFtZUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAppbmRl
eCBhMmYyODdlLi4zNTliZGI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKQEAgLTE1
NSwxNCArMTU1LDYgQEAgdm9pZCBIVE1MSUZyYW1lRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVu
dCgpCiAgICAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKIH0K
IAotdm9pZCBIVE1MSUZyYW1lRWxlbWVudDo6YXR0YWNoKCkKLXsKLSAgICBIVE1MRnJhbWVFbGVt
ZW50QmFzZTo6YXR0YWNoKCk7Ci0KLSAgICBpZiAoUmVuZGVyUGFydE9iamVjdCogcmVuZGVyUGFy
dE9iamVjdCA9IHRvUmVuZGVyUGFydE9iamVjdChyZW5kZXJlcigpKSkKLSAgICAgICAgcmVuZGVy
UGFydE9iamVjdC0+dXBkYXRlV2lkZ2V0KGZhbHNlKTsKLX0KLQogYm9vbCBIVE1MSUZyYW1lRWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSBjb25zdAogewogICAgIHJldHVy
biBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXgg
ZjFjNmEzNS4uYzcwODQ1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVt
ZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAgLTQ0LDggKzQ0
LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIAotICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2goKTsKLQogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJl
bmRlclN0eWxlKik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAppbmRleCBiYThmMjE5Li5mZDgzNDYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBA
IC0yMzksNyArMjM5LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVk
KFJlbmRlclN0eWxlKiBzdHlsZSkKIFJlbmRlck9iamVjdCogSFRNTE1lZGlhRWxlbWVudDo6Y3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7CiAjaWYgRU5B
QkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRl
clBhcnRPYmplY3QodGhpcyk7CisgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckVtYmVkZGVk
T2JqZWN0KHRoaXMpOwogI2Vsc2UKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyTWVkaWEo
dGhpcyk7CiAjZW5kaWYKQEAgLTE3NjUsNyArMTc2NSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKICAgICAKICAgICBkb2N1bWVudCgpLT51cGRhdGVT
dHlsZUlmTmVlZGVkKCk7CiAgICAgaWYgKG1fbmVlZFdpZGdldFVwZGF0ZSAmJiByZW5kZXJlcigp
KQotICAgICAgICB0b1JlbmRlclBhcnRPYmplY3QocmVuZGVyZXIoKSktPnVwZGF0ZVdpZGdldCh0
cnVlKTsKKyAgICAgICAgdG9SZW5kZXJFbWJlZGRlZE9iamVjdChyZW5kZXJlcigpKS0+dXBkYXRl
V2lkZ2V0KHRydWUpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmlu
ZGV4IDdhNmExNGQuLjgwYTVlZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcApAQCAt
MzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRl
ICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCisjaW5j
bHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgot
I2luY2x1ZGUgIlJlbmRlclBhcnRPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIK
ICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgpAQCAtMTQw
LDcgKzE0MCw3IEBAIFJlbmRlck9iamVjdCAqSFRNTE9iamVjdEVsZW1lbnQ6OmNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqCiAgICAgICAgIHJldHVybiBSZW5k
ZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CiAgICAgaWYgKGlzSW1hZ2VUeXBl
KCkpCiAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlzKTsKLSAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUGFydE9iamVjdCh0aGlzKTsKKyAgICByZXR1cm4gbmV3
IChhcmVuYSkgUmVuZGVyRW1iZWRkZWRPYmplY3QodGhpcyk7CiB9CiAKIHZvaWQgSFRNTE9iamVj
dEVsZW1lbnQ6OmF0dGFjaCgpCkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBIVE1MT2JqZWN0RWxl
bWVudDo6dXBkYXRlV2lkZ2V0KCkKIHsKICAgICBkb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVl
ZGVkKCk7CiAgICAgaWYgKG1fbmVlZFdpZGdldFVwZGF0ZSAmJiByZW5kZXJlcigpICYmICFtX3Vz
ZUZhbGxiYWNrQ29udGVudCAmJiAhaXNJbWFnZVR5cGUoKSkKLSAgICAgICAgdG9SZW5kZXJQYXJ0
T2JqZWN0KHJlbmRlcmVyKCkpLT51cGRhdGVXaWRnZXQodHJ1ZSk7CisgICAgICAgIHRvUmVuZGVy
RW1iZWRkZWRPYmplY3QocmVuZGVyZXIoKSktPnVwZGF0ZVdpZGdldCh0cnVlKTsKIH0KIAogdm9p
ZCBIVE1MT2JqZWN0RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggMmNjZDBkMi4uMTQ1ZDNmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTQ2LDggKzQ2LDggQEAK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50
LmgiCiAjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVk
T2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyUGFydC5oIgotI2luY2x1ZGUgIlJlbmRlclBhcnRP
YmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJSZW5kZXJT
Y3JvbGxiYXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKQEAgLTc1MiwxNSArNzUy
LDE1IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgbV9u
ZXN0ZWRMYXlvdXRDb3VudC0tOwogfQogCi12b2lkIEZyYW1lVmlldzo6YWRkV2lkZ2V0VG9VcGRh
dGUoUmVuZGVyUGFydE9iamVjdCogb2JqZWN0KQordm9pZCBGcmFtZVZpZXc6OmFkZFdpZGdldFRv
VXBkYXRlKFJlbmRlckVtYmVkZGVkT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgaWYgKCFtX3dpZGdl
dFVwZGF0ZVNldCkKLSAgICAgICAgbV93aWRnZXRVcGRhdGVTZXQuc2V0KG5ldyBIYXNoU2V0PFJl
bmRlclBhcnRPYmplY3QqPik7CisgICAgICAgIG1fd2lkZ2V0VXBkYXRlU2V0LnNldChuZXcgUmVu
ZGVyRW1iZWRkZWRPYmplY3RTZXQpOwogCiAgICAgbV93aWRnZXRVcGRhdGVTZXQtPmFkZChvYmpl
Y3QpOwogfQogCi12b2lkIEZyYW1lVmlldzo6cmVtb3ZlV2lkZ2V0VG9VcGRhdGUoUmVuZGVyUGFy
dE9iamVjdCogb2JqZWN0KQordm9pZCBGcmFtZVZpZXc6OnJlbW92ZVdpZGdldFRvVXBkYXRlKFJl
bmRlckVtYmVkZGVkT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgaWYgKCFtX3dpZGdldFVwZGF0ZVNl
dCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTM0NiwxMSArMTM0NiwxMSBAQCBib29sIEZyYW1lVmll
dzo6dXBkYXRlV2lkZ2V0cygpCiAgICAgaWYgKG1fbmVzdGVkTGF5b3V0Q291bnQgPiAxIHx8ICFt
X3dpZGdldFVwZGF0ZVNldCB8fCBtX3dpZGdldFVwZGF0ZVNldC0+aXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAKLSAgICBWZWN0b3I8UmVuZGVyUGFydE9iamVjdCo+IG9iamVj
dFZlY3RvcjsKKyAgICBWZWN0b3I8UmVuZGVyRW1iZWRkZWRPYmplY3QqPiBvYmplY3RWZWN0b3I7
CiAgICAgY29weVRvVmVjdG9yKCptX3dpZGdldFVwZGF0ZVNldCwgb2JqZWN0VmVjdG9yKTsKICAg
ICBzaXplX3Qgc2l6ZSA9IG9iamVjdFZlY3Rvci5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgUmVuZGVyUGFydE9iamVjdCogb2JqZWN0ID0g
b2JqZWN0VmVjdG9yW2ldOworICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCogb2JqZWN0ID0g
b2JqZWN0VmVjdG9yW2ldOwogICAgICAgICBvYmplY3QtPnVwZGF0ZVdpZGdldChmYWxzZSk7CiAg
ICAgICAgIAogICAgICAgICAvLyB1cGRhdGVXaWRnZXQoKSBjYW4gZGVzdHJveSB0aGUgUmVuZGVy
UGFydE9iamVjdCwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgaXQncwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGQ2
YjY1OGMuLmIyN2ZmZDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysg
Yi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgTm9kZTsK
IGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIGNsYXNzIFJlbmRlckxheWVyOwogY2xhc3MgUmVu
ZGVyT2JqZWN0OwotY2xhc3MgUmVuZGVyUGFydE9iamVjdDsKK2NsYXNzIFJlbmRlckVtYmVkZGVk
T2JqZWN0OwogY2xhc3MgU2NoZWR1bGVkRXZlbnQ7CiBjbGFzcyBTdHJpbmc7CiAKQEAgLTE2NSw4
ICsxNjUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCB3YXNTY3JvbGxlZEJ5VXNlcigpIGNvbnN0Owog
ICAgIHZvaWQgc2V0V2FzU2Nyb2xsZWRCeVVzZXIoYm9vbCk7CiAKLSAgICB2b2lkIGFkZFdpZGdl
dFRvVXBkYXRlKFJlbmRlclBhcnRPYmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZVdpZGdldFRvVXBk
YXRlKFJlbmRlclBhcnRPYmplY3QqKTsKKyAgICB2b2lkIGFkZFdpZGdldFRvVXBkYXRlKFJlbmRl
ckVtYmVkZGVkT2JqZWN0Kik7CisgICAgdm9pZCByZW1vdmVXaWRnZXRUb1VwZGF0ZShSZW5kZXJF
bWJlZGRlZE9iamVjdCopOwogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCk7CiAgICAgdm9pZCBzZXRQYWlu
dEJlaGF2aW9yKFBhaW50QmVoYXZpb3IpOwpAQCAtMjU2LDcgKzI1Niw5IEBAIHByaXZhdGU6CiAK
ICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBJbnRTaXplIG1fbWFyZ2luczsKLSAgICBPd25QdHI8
SGFzaFNldDxSZW5kZXJQYXJ0T2JqZWN0Kj4gPiBtX3dpZGdldFVwZGF0ZVNldDsKKyAgICAKKyAg
ICB0eXBlZGVmIEhhc2hTZXQ8UmVuZGVyRW1iZWRkZWRPYmplY3QqPiBSZW5kZXJFbWJlZGRlZE9i
amVjdFNldDsKKyAgICBPd25QdHI8UmVuZGVyRW1iZWRkZWRPYmplY3RTZXQ+IG1fd2lkZ2V0VXBk
YXRlU2V0OwogICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKIAogICAgIGJvb2wgbV9kb0Z1bGxS
ZXBhaW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MmU1NDAKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTAsMCArMSwz
MzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9y
ZykKKyAqICAgICAgICAgICAoQykgMjAwMCBTaW1vbiBIYXVzbWFubiA8aGF1c21hbm5Aa2RlLm9y
Zz4KKyAqICAgICAgICAgICAoQykgMjAwMCBTdGVmYW4gU2NoaW1hbnNraSAoMVN0ZWluQGdteC5k
ZSkKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCwgMjAwOSwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJIVE1MRW1iZWRFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKKyNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhbUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXRQcm90ZWN0
b3IuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKKyNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6UmVuZGVyRW1iZWRkZWRPYmplY3QoRWxlbWVudCogZWxlbWVudCkKKyAgICA6IFJl
bmRlclBhcnRPYmplY3QoZWxlbWVudCkKK3sKKyAgICB2aWV3KCktPmZyYW1lVmlldygpLT5zZXRJ
c1Zpc3VhbGx5Tm9uRW1wdHkoKTsKK30KKworUmVuZGVyRW1iZWRkZWRPYmplY3Q6On5SZW5kZXJF
bWJlZGRlZE9iamVjdCgpCit7CisgICAgaWYgKGZyYW1lVmlldygpKQorICAgICAgICBmcmFtZVZp
ZXcoKS0+cmVtb3ZlV2lkZ2V0VG9VcGRhdGUodGhpcyk7Cit9CisKK3N0YXRpYyBib29sIGlzVVJM
QWxsb3dlZChEb2N1bWVudCogZG9jLCBjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBpZiAoZG9j
LT5mcmFtZSgpLT5wYWdlKCktPmZyYW1lQ291bnQoKSA+PSAyMDApCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIC8vIFdlIGFsbG93IG9uZSBsZXZlbCBvZiBzZWxmLXJlZmVyZW5jZSBiZWNh
dXNlIHNvbWUgc2l0ZXMgZGVwZW5kIG9uIHRoYXQuCisgICAgLy8gQnV0IHdlIGRvbid0IGFsbG93
IG1vcmUgdGhhbiBvbmUuCisgICAgS1VSTCBjb21wbGV0ZVVSTCA9IGRvYy0+Y29tcGxldGVVUkwo
dXJsKTsKKyAgICBib29sIGZvdW5kU2VsZlJlZmVyZW5jZSA9IGZhbHNlOworICAgIGZvciAoRnJh
bWUqIGZyYW1lID0gZG9jLT5mcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT5w
YXJlbnQoKSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcihm
cmFtZS0+bG9hZGVyKCktPnVybCgpLCBjb21wbGV0ZVVSTCkpIHsKKyAgICAgICAgICAgIGlmIChm
b3VuZFNlbGZSZWZlcmVuY2UpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgZm91bmRTZWxmUmVmZXJlbmNlID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3RyaW5nLCBDYXNlRm9s
ZGluZ0hhc2g+IENsYXNzSWRUb1R5cGVNYXA7CisKK3N0YXRpYyBDbGFzc0lkVG9UeXBlTWFwKiBj
cmVhdGVDbGFzc0lkVG9UeXBlTWFwKCkKK3sKKyAgICBDbGFzc0lkVG9UeXBlTWFwKiBtYXAgPSBu
ZXcgQ2xhc3NJZFRvVHlwZU1hcDsKKyAgICBtYXAtPmFkZCgiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0x
MUNGLTk2QjgtNDQ0NTUzNTQwMDAwIiwgImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIik7
CisgICAgbWFwLT5hZGQoImNsc2lkOkNGQ0RBQTAzLThCRTQtMTFDRi1CODRCLTAwMjBBRkJCQ0NG
QSIsICJhdWRpby94LXBuLXJlYWxhdWRpby1wbHVnaW4iKTsKKyAgICBtYXAtPmFkZCgiY2xzaWQ6
MDJCRjI1RDUtOEMxNy00QjIzLUJDODAtRDM0ODhBQkREQzZCIiwgInZpZGVvL3F1aWNrdGltZSIp
OworICAgIG1hcC0+YWRkKCJjbHNpZDoxNjZCMUJDQS0zRjlDLTExQ0YtODA3NS00NDQ1NTM1NDAw
MDAiLCAiYXBwbGljYXRpb24veC1kaXJlY3RvciIpOworICAgIG1hcC0+YWRkKCJjbHNpZDo2QkY1
MkE1Mi0zOTRBLTExRDMtQjE1My0wMEMwNEY3OUZBQTYiLCAiYXBwbGljYXRpb24veC1tcGxheWVy
MiIpOworICAgIG1hcC0+YWRkKCJjbHNpZDoyMkQ2RjMxMi1CMEY2LTExRDAtOTRBQi0wMDgwQzc0
QzdFOTUiLCAiYXBwbGljYXRpb24veC1tcGxheWVyMiIpOworICAgIHJldHVybiBtYXA7Cit9CisK
K3N0YXRpYyBTdHJpbmcgc2VydmljZVR5cGVGb3JDbGFzc0lkKGNvbnN0IFN0cmluZyYgY2xhc3NJ
ZCkKK3sKKyAgICAvLyBSZXR1cm4gZWFybHkgaWYgY2xhc3NJZCBpcyBlbXB0eSAoc2luY2Ugd2Ug
d29uJ3QgZG8gYW55dGhpbmcgYmVsb3cpLgorICAgIC8vIEZ1cnRoZXJtb3JlLCBpZiBjbGFzc0lk
IGlzIG51bGwsIGNhbGxpbmcgZ2V0KCkgYmVsb3cgd2lsbCBjcmFzaC4KKyAgICBpZiAoY2xhc3NJ
ZC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIHN0YXRpYyBDbGFz
c0lkVG9UeXBlTWFwKiBtYXAgPSBjcmVhdGVDbGFzc0lkVG9UeXBlTWFwKCk7CisgICAgcmV0dXJu
IG1hcC0+Z2V0KGNsYXNzSWQpOworfQorCitzdGF0aWMgdm9pZCBtYXBEYXRhUGFyYW1Ub1NyYyhW
ZWN0b3I8U3RyaW5nPiogcGFyYW1OYW1lcywgVmVjdG9yPFN0cmluZz4qIHBhcmFtVmFsdWVzKQor
eworICAgIC8vIFNvbWUgcGx1Z2lucyBkb24ndCB1bmRlcnN0YW5kIHRoZSAiZGF0YSIgYXR0cmli
dXRlIG9mIHRoZSBPQkpFQ1QgdGFnIChpLmUuIFJlYWwgYW5kIFdNUAorICAgIC8vIHJlcXVpcmUg
InNyYyIgYXR0cmlidXRlKS4KKyAgICBpbnQgc3JjSW5kZXggPSAtMSwgZGF0YUluZGV4ID0gLTE7
CisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwYXJhbU5hbWVzLT5zaXplKCk7ICsr
aSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoKCpwYXJhbU5hbWVzKVtpXSwgInNy
YyIpKQorICAgICAgICAgICAgc3JjSW5kZXggPSBpOworICAgICAgICBlbHNlIGlmIChlcXVhbEln
bm9yaW5nQ2FzZSgoKnBhcmFtTmFtZXMpW2ldLCAiZGF0YSIpKQorICAgICAgICAgICAgZGF0YUlu
ZGV4ID0gaTsKKyAgICB9CisKKyAgICBpZiAoc3JjSW5kZXggPT0gLTEgJiYgZGF0YUluZGV4ICE9
IC0xKSB7CisgICAgICAgIHBhcmFtTmFtZXMtPmFwcGVuZCgic3JjIik7CisgICAgICAgIHBhcmFt
VmFsdWVzLT5hcHBlbmQoKCpwYXJhbVZhbHVlcylbZGF0YUluZGV4XSk7CisgICAgfQorfQorCit2
b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojp1cGRhdGVXaWRnZXQoYm9vbCBvbmx5Q3JlYXRlTm9u
TmV0c2NhcGVQbHVnaW5zKQoreworICAgIFN0cmluZyB1cmw7CisgICAgU3RyaW5nIHNlcnZpY2VU
eXBlOworICAgIFZlY3RvcjxTdHJpbmc+IHBhcmFtTmFtZXM7CisgICAgVmVjdG9yPFN0cmluZz4g
cGFyYW1WYWx1ZXM7CisgICAgRnJhbWUqIGZyYW1lID0gZnJhbWVWaWV3KCktPmZyYW1lKCk7CisK
KyAgICAvLyBUaGUgY2FsbHMgdG8gRnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3Qgd2l0aGluIHRo
aXMgZnVuY3Rpb24gY2FuIHJlc3VsdCBpbiBhIHBsdWctaW4gYmVpbmcgaW5pdGlhbGl6ZWQuCisg
ICAgLy8gVGhpcyBjYW4gcnVuIGNhdXNlIGFyYml0cmFyeSBKYXZhU2NyaXB0IHRvIHJ1biBhbmQg
bWF5IHJlc3VsdCBpbiB0aGlzIFJlbmRlck9iamVjdCBiZWluZyBkZXRhY2hlZCBmcm9tCisgICAg
Ly8gdGhlIHJlbmRlciB0cmVlIGFuZCBkZXN0cm95ZWQsIGNhdXNpbmcgYSBjcmFzaCBsaWtlIDxy
ZGFyOi8vcHJvYmxlbS82OTU0NTQ2Pi4gIEJ5IGV4dGVuZGluZyBvdXIgbGlmZXRpbWUKKyAgICAv
LyBhcnRpZmljYWxseSB0byBlbnN1cmUgdGhhdCB3ZSByZW1haW4gYWxpdmUgZm9yIHRoZSBkdXJh
dGlvbiBvZiBwbHVnLWluIGluaXRpYWxpemF0aW9uLgorICAgIFJlbmRlcldpZGdldFByb3RlY3Rv
ciBwcm90ZWN0b3IodGhpcyk7CisKKyAgICBpZiAobm9kZSgpLT5oYXNUYWdOYW1lKG9iamVjdFRh
ZykpIHsKKyAgICAgICAgSFRNTE9iamVjdEVsZW1lbnQqIG8gPSBzdGF0aWNfY2FzdDxIVE1MT2Jq
ZWN0RWxlbWVudCo+KG5vZGUoKSk7CisKKyAgICAgICAgby0+c2V0TmVlZFdpZGdldFVwZGF0ZShm
YWxzZSk7CisgICAgICAgIGlmICghby0+aXNGaW5pc2hlZFBhcnNpbmdDaGlsZHJlbigpKQorICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBDaGVjayBmb3IgYSBjaGlsZCBFTUJFRCB0YWcu
CisgICAgICAgIEhUTUxFbWJlZEVsZW1lbnQqIGVtYmVkID0gMDsKKyAgICAgICAgZm9yIChOb2Rl
KiBjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7ICkgeworICAgICAgICAgICAgaWYgKGNo
aWxkLT5oYXNUYWdOYW1lKGVtYmVkVGFnKSkgeworICAgICAgICAgICAgICAgIGVtYmVkID0gc3Rh
dGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSkK
KyAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOyAgICAgICAgIC8v
IERvbid0IGRlc2NlbmQgaW50byBuZXN0ZWQgT0JKRUNUIHRhZ3MKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT50cmF2ZXJzZU5leHROb2RlKG8pOyAgIC8v
IE90aGVyd2lzZSBkZXNjZW5kIChFTUJFRHMgbWF5IGJlIGluc2lkZSBDT01NRU5UIHRhZ3MpCisg
ICAgICAgIH0KKworICAgICAgICAvLyBVc2UgdGhlIGF0dHJpYnV0ZXMgZnJvbSB0aGUgRU1CRUQg
dGFnIGluc3RlYWQgb2YgdGhlIE9CSkVDVCB0YWcgaW5jbHVkaW5nIFdJRFRIIGFuZCBIRUlHSFQu
CisgICAgICAgIEhUTUxFbGVtZW50ICplbWJlZE9yT2JqZWN0OworICAgICAgICBpZiAoZW1iZWQp
IHsKKyAgICAgICAgICAgIGVtYmVkT3JPYmplY3QgPSAoSFRNTEVsZW1lbnQgKillbWJlZDsKKyAg
ICAgICAgICAgIHVybCA9IGVtYmVkLT51cmwoKTsKKyAgICAgICAgICAgIHNlcnZpY2VUeXBlID0g
ZW1iZWQtPnNlcnZpY2VUeXBlKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZW1iZWRP
ck9iamVjdCA9IChIVE1MRWxlbWVudCAqKW87CisKKyAgICAgICAgLy8gSWYgdGhlcmUgd2FzIG5v
IFVSTCBvciB0eXBlIGRlZmluZWQgaW4gRU1CRUQsIHRyeSB0aGUgT0JKRUNUIHRhZy4KKyAgICAg
ICAgaWYgKHVybC5pc0VtcHR5KCkpCisgICAgICAgICAgICB1cmwgPSBvLT51cmwoKTsKKyAgICAg
ICAgaWYgKHNlcnZpY2VUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHNlcnZpY2VUeXBlID0g
by0+c2VydmljZVR5cGUoKTsKKworICAgICAgICBIYXNoU2V0PFN0cmluZ0ltcGwqLCBDYXNlRm9s
ZGluZ0hhc2g+IHVuaXF1ZVBhcmFtTmFtZXM7CisKKyAgICAgICAgLy8gU2NhbiB0aGUgUEFSQU0g
Y2hpbGRyZW4uCisgICAgICAgIC8vIEdldCB0aGUgVVJMIGFuZCB0eXBlIGZyb20gdGhlIHBhcmFt
cyBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgdGhlbS4KKyAgICAgICAgLy8gR2V0IHRoZSBhdHRy
aWJ1dGVzIGZyb20gdGhlIHBhcmFtcyBpZiB0aGVyZSBpcyBubyBFTUJFRCB0YWcuCisgICAgICAg
IE5vZGUgKmNoaWxkID0gby0+Zmlyc3RDaGlsZCgpOworICAgICAgICB3aGlsZSAoY2hpbGQgJiYg
KHVybC5pc0VtcHR5KCkgfHwgc2VydmljZVR5cGUuaXNFbXB0eSgpIHx8ICFlbWJlZCkpIHsKKyAg
ICAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZShwYXJhbVRhZykpIHsKKyAgICAgICAgICAg
ICAgICBIVE1MUGFyYW1FbGVtZW50KiBwID0gc3RhdGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVudCo+
KGNoaWxkKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHAtPm5hbWUoKTsKKyAgICAg
ICAgICAgICAgICBpZiAodXJsLmlzRW1wdHkoKSAmJiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwg
InNyYyIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJtb3ZpZSIpIHx8IGVxdWFsSWdub3Jp
bmdDYXNlKG5hbWUsICJjb2RlIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgInVybCIpKSkK
KyAgICAgICAgICAgICAgICAgICAgdXJsID0gcC0+dmFsdWUoKTsKKyAgICAgICAgICAgICAgICBp
ZiAoc2VydmljZVR5cGUuaXNFbXB0eSgpICYmIGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJ0eXBl
IikpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VydmljZVR5cGUgPSBwLT52YWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICBpbnQgcG9zID0gc2VydmljZVR5cGUuZmluZCgiOyIpOworICAgICAg
ICAgICAgICAgICAgICBpZiAocG9zICE9IC0xKQorICAgICAgICAgICAgICAgICAgICAgICAgc2Vy
dmljZVR5cGUgPSBzZXJ2aWNlVHlwZS5sZWZ0KHBvcyk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGlmICghZW1iZWQgJiYgIW5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICAgICAgICAgIHVuaXF1ZVBhcmFtTmFtZXMuYWRkKG5hbWUuaW1wbCgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgcGFyYW1OYW1lcy5hcHBlbmQocC0+bmFtZSgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgcGFyYW1WYWx1ZXMuYXBwZW5kKHAtPnZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCk7Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBXaGVuIE9CSkVDVCBpcyB1c2VkIGZvciBhbiBhcHBsZXQg
dmlhIFN1bidzIEphdmEgcGx1Z2luLCB0aGUgQ09ERUJBU0UgYXR0cmlidXRlIGluIHRoZSB0YWcK
KyAgICAgICAgLy8gcG9pbnRzIHRvIHRoZSBKYXZhIHBsdWdpbiBpdHNlbGYgKGFuIEFjdGl2ZVgg
Y29tcG9uZW50KSB3aGlsZSB0aGUgYWN0dWFsIGFwcGxldCBDT0RFQkFTRSBpcworICAgICAgICAv
LyBpbiBhIFBBUkFNIHRhZy4gU2VlIDxodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL3BsdWdp
bi8xLjIvZG9jcy90YWdzLmh0bWw+LiBUaGlzIG1lYW5zCisgICAgICAgIC8vIHdlIGhhdmUgdG8g
ZXhwbGljaXRseSBzdXBwcmVzcyB0aGUgdGFnJ3MgQ09ERUJBU0UgYXR0cmlidXRlIGlmIHRoZXJl
IGlzIG5vbmUgaW4gYSBQQVJBTSwKKyAgICAgICAgLy8gZWxzZSBvdXIgSmF2YSBwbHVnaW4gd2ls
bCBtaXNpbnRlcnByZXQgaXQuIFs0MDA0NTMxXQorICAgICAgICBTdHJpbmcgY29kZWJhc2U7Cisg
ICAgICAgIGlmICghZW1iZWQgJiYgTUlNRVR5cGVSZWdpc3RyeTo6aXNKYXZhQXBwbGV0TUlNRVR5
cGUoc2VydmljZVR5cGUpKSB7CisgICAgICAgICAgICBjb2RlYmFzZSA9ICJjb2RlYmFzZSI7Cisg
ICAgICAgICAgICB1bmlxdWVQYXJhbU5hbWVzLmFkZChjb2RlYmFzZS5pbXBsKCkpOyAvLyBwcmV0
ZW5kIHdlIGZvdW5kIGl0IGluIGEgUEFSQU0gYWxyZWFkeQorICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAvLyBUdXJuIHRoZSBhdHRyaWJ1dGVzIG9mIGVpdGhlciB0aGUgRU1CRUQgdGFnIG9y
IE9CSkVDVCB0YWcgaW50byBhcnJheXMsIGJ1dCBkb24ndCBvdmVycmlkZSBQQVJBTSB2YWx1ZXMu
CisgICAgICAgIE5hbWVkTm9kZU1hcCogYXR0cmlidXRlcyA9IGVtYmVkT3JPYmplY3QtPmF0dHJp
YnV0ZXMoKTsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMpIHsKKyAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAg
ICAgICAgQXR0cmlidXRlKiBpdCA9IGF0dHJpYnV0ZXMtPmF0dHJpYnV0ZUl0ZW0oaSk7CisgICAg
ICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gaXQtPm5hbWUoKS5sb2NhbE5h
bWUoKTsKKyAgICAgICAgICAgICAgICBpZiAoZW1iZWQgfHwgIXVuaXF1ZVBhcmFtTmFtZXMuY29u
dGFpbnMobmFtZS5pbXBsKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhcmFtTmFtZXMuYXBw
ZW5kKG5hbWUuc3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBwYXJhbVZhbHVlcy5hcHBl
bmQoaXQtPnZhbHVlKCkuc3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIG1hcERhdGFQYXJhbVRvU3JjKCZwYXJhbU5hbWVzLCAm
cGFyYW1WYWx1ZXMpOworCisgICAgICAgIC8vIElmIHdlIHN0aWxsIGRvbid0IGhhdmUgYSB0eXBl
LCB0cnkgdG8gbWFwIGZyb20gYSBzcGVjaWZpYyBDTEFTU0lEIHRvIGEgdHlwZS4KKyAgICAgICAg
aWYgKHNlcnZpY2VUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHNlcnZpY2VUeXBlID0gc2Vy
dmljZVR5cGVGb3JDbGFzc0lkKG8tPmNsYXNzSWQoKSk7CisKKyAgICAgICAgaWYgKCFpc1VSTEFs
bG93ZWQoZG9jdW1lbnQoKSwgdXJsKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAv
LyBGaW5kIG91dCBpZiB3ZSBzdXBwb3J0IGZhbGxiYWNrIGNvbnRlbnQuCisgICAgICAgIG1faGFz
RmFsbGJhY2tDb250ZW50ID0gZmFsc2U7CisgICAgICAgIGZvciAoTm9kZSAqY2hpbGQgPSBvLT5m
aXJzdENoaWxkKCk7IGNoaWxkICYmICFtX2hhc0ZhbGxiYWNrQ29udGVudDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKCghY2hpbGQtPmlzVGV4dE5vZGUo
KSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpICYmICFjaGlsZC0+aGFzVGFnTmFtZShw
YXJhbVRhZykpIHx8IC8vIERpc2NvdW50IDxlbWJlZD4gYW5kIDxwYXJhbT4KKyAgICAgICAgICAg
ICAgICAoY2hpbGQtPmlzVGV4dE5vZGUoKSAmJiAhc3RhdGljX2Nhc3Q8VGV4dCo+KGNoaWxkKS0+
Y29udGFpbnNPbmx5V2hpdGVzcGFjZSgpKSkKKyAgICAgICAgICAgICAgICBtX2hhc0ZhbGxiYWNr
Q29udGVudCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAob25seUNyZWF0ZU5vbk5l
dHNjYXBlUGx1Z2lucykgeworICAgICAgICAgICAgS1VSTCBjb21wbGV0ZWRVUkw7CisgICAgICAg
ICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY29tcGxldGVkVVJMID0g
ZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0ZVVSTCh1cmwpOworCisgICAgICAgICAgICBpZiAoZnJh
bWUtPmxvYWRlcigpLT5jbGllbnQoKS0+b2JqZWN0Q29udGVudFR5cGUoY29tcGxldGVkVVJMLCBz
ZXJ2aWNlVHlwZSkgPT0gT2JqZWN0Q29udGVudE5ldHNjYXBlUGx1Z2luKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgc3VjY2VzcyA9IG8tPmRpc3Bh
dGNoQmVmb3JlTG9hZEV2ZW50KHVybCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUt
PmxvYWRlcigpLT5yZXF1ZXN0T2JqZWN0KHRoaXMsIHVybCwgby0+Z2V0QXR0cmlidXRlKG5hbWVB
dHRyKSwgc2VydmljZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKKyAgICAgICAgaWYg
KCFzdWNjZXNzICYmIG1faGFzRmFsbGJhY2tDb250ZW50KQorICAgICAgICAgICAgby0+cmVuZGVy
RmFsbGJhY2tDb250ZW50KCk7CisgICAgfSBlbHNlIGlmIChub2RlKCktPmhhc1RhZ05hbWUoZW1i
ZWRUYWcpKSB7CisgICAgICAgIEhUTUxFbWJlZEVsZW1lbnQgKm8gPSBzdGF0aWNfY2FzdDxIVE1M
RW1iZWRFbGVtZW50Kj4obm9kZSgpKTsKKyAgICAgICAgby0+c2V0TmVlZFdpZGdldFVwZGF0ZShm
YWxzZSk7CisgICAgICAgIHVybCA9IG8tPnVybCgpOworICAgICAgICBzZXJ2aWNlVHlwZSA9IG8t
PnNlcnZpY2VUeXBlKCk7CisKKyAgICAgICAgaWYgKHVybC5pc0VtcHR5KCkgJiYgc2VydmljZVR5
cGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoIWlzVVJMQWxs
b3dlZChkb2N1bWVudCgpLCB1cmwpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8v
IGFkZCBhbGwgYXR0cmlidXRlcyBzZXQgb24gdGhlIGVtYmVkIG9iamVjdAorICAgICAgICBOYW1l
ZE5vZGVNYXAqIGEgPSBvLT5hdHRyaWJ1dGVzKCk7CisgICAgICAgIGlmIChhKSB7CisgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYS0+bGVuZ3RoKCk7ICsraSkgeworICAgICAg
ICAgICAgICAgIEF0dHJpYnV0ZSogaXQgPSBhLT5hdHRyaWJ1dGVJdGVtKGkpOworICAgICAgICAg
ICAgICAgIHBhcmFtTmFtZXMuYXBwZW5kKGl0LT5uYW1lKCkubG9jYWxOYW1lKCkuc3RyaW5nKCkp
OworICAgICAgICAgICAgICAgIHBhcmFtVmFsdWVzLmFwcGVuZChpdC0+dmFsdWUoKS5zdHJpbmco
KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob25seUNyZWF0ZU5v
bk5ldHNjYXBlUGx1Z2lucykgeworICAgICAgICAgICAgS1VSTCBjb21wbGV0ZWRVUkw7CisgICAg
ICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY29tcGxldGVkVVJM
ID0gZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0ZVVSTCh1cmwpOworCisgICAgICAgICAgICBpZiAo
ZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+b2JqZWN0Q29udGVudFR5cGUoY29tcGxldGVkVVJM
LCBzZXJ2aWNlVHlwZSkgPT0gT2JqZWN0Q29udGVudE5ldHNjYXBlUGx1Z2luKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICB9CisKKyAgICAgICAgaWYgKG8tPmRpc3BhdGNoQmVm
b3JlTG9hZEV2ZW50KHVybCkpCisgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCktPnJlcXVlc3RP
YmplY3QodGhpcywgdXJsLCBvLT5nZXRBdHRyaWJ1dGUobmFtZUF0dHIpLCBzZXJ2aWNlVHlwZSwg
cGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOworICAgIH0KKyNpZiBFTkFCTEUoUExVR0lOX1BST1hZ
X0ZPUl9WSURFTykgICAgICAgIAorICAgIGVsc2UgaWYgKG5vZGUoKS0+aGFzVGFnTmFtZSh2aWRl
b1RhZykgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKGF1ZGlvVGFnKSkgeworICAgICAgICBIVE1MTWVk
aWFFbGVtZW50KiBvID0gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG5vZGUoKSk7CisK
KyAgICAgICAgby0+c2V0TmVlZFdpZGdldFVwZGF0ZShmYWxzZSk7CisgICAgICAgIGlmIChub2Rl
KCktPmhhc1RhZ05hbWUodmlkZW9UYWcpKSB7CisgICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50
KiB2aWQgPSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obm9kZSgpKTsKKyAgICAgICAg
ICAgIFN0cmluZyBwb3N0ZXIgPSB2aWQtPnBvc3RlcigpOworICAgICAgICAgICAgaWYgKCFwb3N0
ZXIuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgcGFyYW1OYW1lcy5hcHBlbmQoIl9tZWRp
YV9lbGVtZW50X3Bvc3Rlcl8iKTsKKyAgICAgICAgICAgICAgICBwYXJhbVZhbHVlcy5hcHBlbmQo
cG9zdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHVybCA9IG8tPmlu
aXRpYWxVUkwoKTsKKyAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBw
YXJhbU5hbWVzLmFwcGVuZCgiX21lZGlhX2VsZW1lbnRfc3JjXyIpOworICAgICAgICAgICAgcGFy
YW1WYWx1ZXMuYXBwZW5kKHVybCk7CisgICAgICAgIH0KKworICAgICAgICBzZXJ2aWNlVHlwZSA9
ICJhcHBsaWNhdGlvbi94LW1lZGlhLWVsZW1lbnQtcHJveHktcGx1Z2luIjsKKyAgICAgICAgCisg
ICAgICAgIGlmIChvLT5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudCh1cmwpKQorICAgICAgICAgICAg
ZnJhbWUtPmxvYWRlcigpLT5yZXF1ZXN0T2JqZWN0KHRoaXMsIHVybCwgbnVsbEF0b20sIHNlcnZp
Y2VUeXBlLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7CisgICAgfQorI2VuZGlmCit9CisKK3Zv
aWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmxheW91dCgpCit7CisgICAgQVNTRVJUKG5lZWRzTGF5
b3V0KCkpOworCisgICAgY2FsY1dpZHRoKCk7CisgICAgY2FsY0hlaWdodCgpOworCisgICAgUmVu
ZGVyUGFydDo6bGF5b3V0KCk7CisKKyAgICBtX292ZXJmbG93LmNsZWFyKCk7CisgICAgYWRkU2hh
ZG93T3ZlcmZsb3coKTsKKworICAgIGlmICghd2lkZ2V0KCkgJiYgZnJhbWVWaWV3KCkpCisgICAg
ICAgIGZyYW1lVmlldygpLT5hZGRXaWRnZXRUb1VwZGF0ZSh0aGlzKTsKKworICAgIHNldE5lZWRz
TGF5b3V0KGZhbHNlKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRW1iZWRkZWRPYmplY3QuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQxOTExZQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKQEAg
LTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAwIFNpbW9uIEhhdXNtYW5uIDxoYXVzbWFu
bkBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4LCAyMDA5
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUmVuZGVy
RW1iZWRkZWRPYmplY3RfaAorI2RlZmluZSBSZW5kZXJFbWJlZGRlZE9iamVjdF9oCisKKyNpbmNs
dWRlICJSZW5kZXJQYXJ0T2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gUmVu
ZGVyZXIgZm9yIGVtYmVkcyBhbmQgb2JqZWN0cy4KK2NsYXNzIFJlbmRlckVtYmVkZGVkT2JqZWN0
IDogcHVibGljIFJlbmRlclBhcnRPYmplY3QgeworcHVibGljOgorICAgIFJlbmRlckVtYmVkZGVk
T2JqZWN0KEVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJFbWJlZGRlZE9iamVjdCgpOwor
CisgICAgdm9pZCB1cGRhdGVXaWRnZXQoYm9vbCBvbmx5Q3JlYXRlTm9uTmV0c2NhcGVQbHVnaW5z
KTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25z
dCB7IHJldHVybiAiUmVuZGVyRW1iZWRkZWRPYmplY3QiOyB9CisgICAgdmlydHVhbCBib29sIGlz
RW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgbGF5b3V0KCk7Cit9OworCitpbmxpbmUgUmVuZGVyRW1iZWRkZWRPYmplY3QqIHRvUmVuZGVy
RW1iZWRkZWRPYmplY3QoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJUKCFvYmpl
Y3QgfHwgIXN0cmNtcChvYmplY3QtPnJlbmRlck5hbWUoKSwgIlJlbmRlckVtYmVkZGVkT2JqZWN0
IikpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJFbWJlZGRlZE9iamVjdCo+KG9iamVj
dCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3Nhcnkg
Y2FzdC4KK3ZvaWQgdG9SZW5kZXJFbWJlZGRlZE9iamVjdChjb25zdCBSZW5kZXJFbWJlZGRlZE9i
amVjdCopOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJFbWJl
ZGRlZE9iamVjdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDA5N2UwODguLmI2NWEw
MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yNjMsNiArMjYzLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBpc0Jsb2NrRmxvdygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzQm94TW9kZWxPYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NvdW50ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc0VtYmVkZGVkT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGaWVsZHNldCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzRmlsZVVwbG9hZENvbnRyb2woKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKaW5kZXggY2I1NmMwYy4uNWM0YTZlYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBSZW5kZXJQYXJ0OjpSZW5kZXJQYXJ0KEVsZW1lbnQqIG5vZGUpCiAgICAgOiBSZW5k
ZXJXaWRnZXQobm9kZSkKKyAgICAsIG1faGFzRmFsbGJhY2tDb250ZW50KGZhbHNlKQogewogICAg
IC8vIGluaXQgUmVuZGVyT2JqZWN0IGF0dHJpYnV0ZXMKICAgICBzZXRJbmxpbmUoZmFsc2UpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUGFydC5oCmluZGV4IDA4YWJmOTkuLmU5NzU5YjYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQYXJ0LmgKQEAgLTI3LDYgKzI3LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8g
UmVuZGVyZXIgZm9yIGZyYW1lcywgYW5kIHBsdWctaW5zLgorCisvLyBGSVhNRTogSXQncyBub3Qg
Y2xlYXIgd2hhdCBmdW5jdGlvbmFsaXR5IHRoaXMgb3ducyB0aGF0IGRvZXMgbm90IGJlbG9uZyBp
biB0aGUKKy8vIGxlYWYgY2xhc3Nlcy4KIGNsYXNzIFJlbmRlclBhcnQgOiBwdWJsaWMgUmVuZGVy
V2lkZ2V0IHsKIHB1YmxpYzoKICAgICBSZW5kZXJQYXJ0KEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUGFydE9iamVjdC5jcHAKaW5kZXggZTJjOGU3ZC4uMjg3MGQ2YyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAKQEAgLTQ4LDI3MSArNDgsNiBAQCB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogUmVuZGVyUGFydE9iamVjdDo6UmVuZGVyUGFydE9iamVjdChF
bGVtZW50KiBlbGVtZW50KQogICAgIDogUmVuZGVyUGFydChlbGVtZW50KQogewotICAgIC8vIGlu
aXQgUmVuZGVyT2JqZWN0IGF0dHJpYnV0ZXMKLSAgICBzZXRJbmxpbmUodHJ1ZSk7Ci0gICAgbV9o
YXNGYWxsYmFja0NvbnRlbnQgPSBmYWxzZTsKLSAgICAKLSAgICBpZiAoZWxlbWVudC0+aGFzVGFn
TmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpKQotICAgICAg
ICB2aWV3KCktPmZyYW1lVmlldygpLT5zZXRJc1Zpc3VhbGx5Tm9uRW1wdHkoKTsKLX0KLQotUmVu
ZGVyUGFydE9iamVjdDo6flJlbmRlclBhcnRPYmplY3QoKQotewotICAgIGlmIChmcmFtZVZpZXco
KSkKLSAgICAgICAgZnJhbWVWaWV3KCktPnJlbW92ZVdpZGdldFRvVXBkYXRlKHRoaXMpOwotfQot
Ci1zdGF0aWMgYm9vbCBpc1VSTEFsbG93ZWQoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiB1
cmwpCi17Ci0gICAgaWYgKGRvYy0+ZnJhbWUoKS0+cGFnZSgpLT5mcmFtZUNvdW50KCkgPj0gMjAw
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvLyBXZSBhbGxvdyBvbmUgbGV2ZWwgb2Yg
c2VsZi1yZWZlcmVuY2UgYmVjYXVzZSBzb21lIHNpdGVzIGRlcGVuZCBvbiB0aGF0LgotICAgIC8v
IEJ1dCB3ZSBkb24ndCBhbGxvdyBtb3JlIHRoYW4gb25lLgotICAgIEtVUkwgY29tcGxldGVVUkwg
PSBkb2MtPmNvbXBsZXRlVVJMKHVybCk7Ci0gICAgYm9vbCBmb3VuZFNlbGZSZWZlcmVuY2UgPSBm
YWxzZTsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IGRvYy0+ZnJhbWUoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdG
cmFnbWVudElkZW50aWZpZXIoZnJhbWUtPmxvYWRlcigpLT51cmwoKSwgY29tcGxldGVVUkwpKSB7
Ci0gICAgICAgICAgICBpZiAoZm91bmRTZWxmUmVmZXJlbmNlKQotICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgICAgIGZvdW5kU2VsZlJlZmVyZW5jZSA9IHRydWU7Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXR5cGVkZWYgSGFzaE1hcDxTdHJp
bmcsIFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBDbGFzc0lkVG9UeXBlTWFwOwotCi1zdGF0aWMg
Q2xhc3NJZFRvVHlwZU1hcCogY3JlYXRlQ2xhc3NJZFRvVHlwZU1hcCgpCi17Ci0gICAgQ2xhc3NJ
ZFRvVHlwZU1hcCogbWFwID0gbmV3IENsYXNzSWRUb1R5cGVNYXA7Ci0gICAgbWFwLT5hZGQoImNs
c2lkOkQyN0NEQjZFLUFFNkQtMTFDRi05NkI4LTQ0NDU1MzU0MDAwMCIsICJhcHBsaWNhdGlvbi94
LXNob2Nrd2F2ZS1mbGFzaCIpOwotICAgIG1hcC0+YWRkKCJjbHNpZDpDRkNEQUEwMy04QkU0LTEx
Q0YtQjg0Qi0wMDIwQUZCQkNDRkEiLCAiYXVkaW8veC1wbi1yZWFsYXVkaW8tcGx1Z2luIik7Ci0g
ICAgbWFwLT5hZGQoImNsc2lkOjAyQkYyNUQ1LThDMTctNEIyMy1CQzgwLUQzNDg4QUJEREM2QiIs
ICJ2aWRlby9xdWlja3RpbWUiKTsKLSAgICBtYXAtPmFkZCgiY2xzaWQ6MTY2QjFCQ0EtM0Y5Qy0x
MUNGLTgwNzUtNDQ0NTUzNTQwMDAwIiwgImFwcGxpY2F0aW9uL3gtZGlyZWN0b3IiKTsKLSAgICBt
YXAtPmFkZCgiY2xzaWQ6NkJGNTJBNTItMzk0QS0xMUQzLUIxNTMtMDBDMDRGNzlGQUE2IiwgImFw
cGxpY2F0aW9uL3gtbXBsYXllcjIiKTsKLSAgICBtYXAtPmFkZCgiY2xzaWQ6MjJENkYzMTItQjBG
Ni0xMUQwLTk0QUItMDA4MEM3NEM3RTk1IiwgImFwcGxpY2F0aW9uL3gtbXBsYXllcjIiKTsKLSAg
ICByZXR1cm4gbWFwOwotfQotCi1zdGF0aWMgU3RyaW5nIHNlcnZpY2VUeXBlRm9yQ2xhc3NJZChj
b25zdCBTdHJpbmcmIGNsYXNzSWQpCi17Ci0gICAgLy8gUmV0dXJuIGVhcmx5IGlmIGNsYXNzSWQg
aXMgZW1wdHkgKHNpbmNlIHdlIHdvbid0IGRvIGFueXRoaW5nIGJlbG93KS4KLSAgICAvLyBGdXJ0
aGVybW9yZSwgaWYgY2xhc3NJZCBpcyBudWxsLCBjYWxsaW5nIGdldCgpIGJlbG93IHdpbGwgY3Jh
c2guCi0gICAgaWYgKGNsYXNzSWQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7
Ci0KLSAgICBzdGF0aWMgQ2xhc3NJZFRvVHlwZU1hcCogbWFwID0gY3JlYXRlQ2xhc3NJZFRvVHlw
ZU1hcCgpOwotICAgIHJldHVybiBtYXAtPmdldChjbGFzc0lkKTsKLX0KLQotc3RhdGljIHZvaWQg
bWFwRGF0YVBhcmFtVG9TcmMoVmVjdG9yPFN0cmluZz4qIHBhcmFtTmFtZXMsIFZlY3RvcjxTdHJp
bmc+KiBwYXJhbVZhbHVlcykKLXsKLSAgICAvLyBTb21lIHBsdWdpbnMgZG9uJ3QgdW5kZXJzdGFu
ZCB0aGUgImRhdGEiIGF0dHJpYnV0ZSBvZiB0aGUgT0JKRUNUIHRhZyAoaS5lLiBSZWFsIGFuZCBX
TVAKLSAgICAvLyByZXF1aXJlICJzcmMiIGF0dHJpYnV0ZSkuCi0gICAgaW50IHNyY0luZGV4ID0g
LTEsIGRhdGFJbmRleCA9IC0xOwotICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGFy
YW1OYW1lcy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCgq
cGFyYW1OYW1lcylbaV0sICJzcmMiKSkKLSAgICAgICAgICAgIHNyY0luZGV4ID0gaTsKLSAgICAg
ICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoKCpwYXJhbU5hbWVzKVtpXSwgImRhdGEiKSkK
LSAgICAgICAgICAgIGRhdGFJbmRleCA9IGk7Ci0gICAgfQotCi0gICAgaWYgKHNyY0luZGV4ID09
IC0xICYmIGRhdGFJbmRleCAhPSAtMSkgewotICAgICAgICBwYXJhbU5hbWVzLT5hcHBlbmQoInNy
YyIpOwotICAgICAgICBwYXJhbVZhbHVlcy0+YXBwZW5kKCgqcGFyYW1WYWx1ZXMpW2RhdGFJbmRl
eF0pOwotICAgIH0KLX0KLQotdm9pZCBSZW5kZXJQYXJ0T2JqZWN0Ojp1cGRhdGVXaWRnZXQoYm9v
bCBvbmx5Q3JlYXRlTm9uTmV0c2NhcGVQbHVnaW5zKQotewotICAgIFN0cmluZyB1cmw7Ci0gICAg
U3RyaW5nIHNlcnZpY2VUeXBlOwotICAgIFZlY3RvcjxTdHJpbmc+IHBhcmFtTmFtZXM7Ci0gICAg
VmVjdG9yPFN0cmluZz4gcGFyYW1WYWx1ZXM7Ci0gICAgRnJhbWUqIGZyYW1lID0gZnJhbWVWaWV3
KCktPmZyYW1lKCk7Ci0KLSAgICAvLyBUaGUgY2FsbHMgdG8gRnJhbWVMb2FkZXI6OnJlcXVlc3RP
YmplY3Qgd2l0aGluIHRoaXMgZnVuY3Rpb24gY2FuIHJlc3VsdCBpbiBhIHBsdWctaW4gYmVpbmcg
aW5pdGlhbGl6ZWQuCi0gICAgLy8gVGhpcyBjYW4gcnVuIGNhdXNlIGFyYml0cmFyeSBKYXZhU2Ny
aXB0IHRvIHJ1biBhbmQgbWF5IHJlc3VsdCBpbiB0aGlzIFJlbmRlck9iamVjdCBiZWluZyBkZXRh
Y2hlZCBmcm9tCi0gICAgLy8gdGhlIHJlbmRlciB0cmVlIGFuZCBkZXN0cm95ZWQsIGNhdXNpbmcg
YSBjcmFzaCBsaWtlIDxyZGFyOi8vcHJvYmxlbS82OTU0NTQ2Pi4gIEJ5IGV4dGVuZGluZyBvdXIg
bGlmZXRpbWUKLSAgICAvLyBhcnRpZmljYWxseSB0byBlbnN1cmUgdGhhdCB3ZSByZW1haW4gYWxp
dmUgZm9yIHRoZSBkdXJhdGlvbiBvZiBwbHVnLWluIGluaXRpYWxpemF0aW9uLgotICAgIFJlbmRl
cldpZGdldFByb3RlY3RvciBwcm90ZWN0b3IodGhpcyk7Ci0KLSAgICBpZiAobm9kZSgpLT5oYXNU
YWdOYW1lKG9iamVjdFRhZykpIHsKLSAgICAgICAgSFRNTE9iamVjdEVsZW1lbnQqIG8gPSBzdGF0
aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KG5vZGUoKSk7Ci0KLSAgICAgICAgby0+c2V0TmVl
ZFdpZGdldFVwZGF0ZShmYWxzZSk7Ci0gICAgICAgIGlmICghby0+aXNGaW5pc2hlZFBhcnNpbmdD
aGlsZHJlbigpKQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBDaGVjayBmb3IgYSBj
aGlsZCBFTUJFRCB0YWcuCi0gICAgICAgIEhUTUxFbWJlZEVsZW1lbnQqIGVtYmVkID0gMDsKLSAg
ICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7ICkgewotICAg
ICAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKGVtYmVkVGFnKSkgewotICAgICAgICAgICAg
ICAgIGVtYmVkID0gc3RhdGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+KGNoaWxkKTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQtPmhhc1RhZ05h
bWUob2JqZWN0VGFnKSkKLSAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpOyAgICAgICAgIC8vIERvbid0IGRlc2NlbmQgaW50byBuZXN0ZWQgT0JKRUNUIHRhZ3MKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT50cmF2ZXJzZU5l
eHROb2RlKG8pOyAgIC8vIE90aGVyd2lzZSBkZXNjZW5kIChFTUJFRHMgbWF5IGJlIGluc2lkZSBD
T01NRU5UIHRhZ3MpCi0gICAgICAgIH0KLQotICAgICAgICAvLyBVc2UgdGhlIGF0dHJpYnV0ZXMg
ZnJvbSB0aGUgRU1CRUQgdGFnIGluc3RlYWQgb2YgdGhlIE9CSkVDVCB0YWcgaW5jbHVkaW5nIFdJ
RFRIIGFuZCBIRUlHSFQuCi0gICAgICAgIEhUTUxFbGVtZW50ICplbWJlZE9yT2JqZWN0OwotICAg
ICAgICBpZiAoZW1iZWQpIHsKLSAgICAgICAgICAgIGVtYmVkT3JPYmplY3QgPSAoSFRNTEVsZW1l
bnQgKillbWJlZDsKLSAgICAgICAgICAgIHVybCA9IGVtYmVkLT51cmwoKTsKLSAgICAgICAgICAg
IHNlcnZpY2VUeXBlID0gZW1iZWQtPnNlcnZpY2VUeXBlKCk7Ci0gICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgZW1iZWRPck9iamVjdCA9IChIVE1MRWxlbWVudCAqKW87Ci0KLSAgICAgICAgLy8g
SWYgdGhlcmUgd2FzIG5vIFVSTCBvciB0eXBlIGRlZmluZWQgaW4gRU1CRUQsIHRyeSB0aGUgT0JK
RUNUIHRhZy4KLSAgICAgICAgaWYgKHVybC5pc0VtcHR5KCkpCi0gICAgICAgICAgICB1cmwgPSBv
LT51cmwoKTsKLSAgICAgICAgaWYgKHNlcnZpY2VUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
IHNlcnZpY2VUeXBlID0gby0+c2VydmljZVR5cGUoKTsKLQotICAgICAgICBIYXNoU2V0PFN0cmlu
Z0ltcGwqLCBDYXNlRm9sZGluZ0hhc2g+IHVuaXF1ZVBhcmFtTmFtZXM7Ci0KLSAgICAgICAgLy8g
U2NhbiB0aGUgUEFSQU0gY2hpbGRyZW4uCi0gICAgICAgIC8vIEdldCB0aGUgVVJMIGFuZCB0eXBl
IGZyb20gdGhlIHBhcmFtcyBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgdGhlbS4KLSAgICAgICAg
Ly8gR2V0IHRoZSBhdHRyaWJ1dGVzIGZyb20gdGhlIHBhcmFtcyBpZiB0aGVyZSBpcyBubyBFTUJF
RCB0YWcuCi0gICAgICAgIE5vZGUgKmNoaWxkID0gby0+Zmlyc3RDaGlsZCgpOwotICAgICAgICB3
aGlsZSAoY2hpbGQgJiYgKHVybC5pc0VtcHR5KCkgfHwgc2VydmljZVR5cGUuaXNFbXB0eSgpIHx8
ICFlbWJlZCkpIHsKLSAgICAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZShwYXJhbVRhZykp
IHsKLSAgICAgICAgICAgICAgICBIVE1MUGFyYW1FbGVtZW50KiBwID0gc3RhdGljX2Nhc3Q8SFRN
TFBhcmFtRWxlbWVudCo+KGNoaWxkKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHAt
Pm5hbWUoKTsKLSAgICAgICAgICAgICAgICBpZiAodXJsLmlzRW1wdHkoKSAmJiAoZXF1YWxJZ25v
cmluZ0Nhc2UobmFtZSwgInNyYyIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJtb3ZpZSIp
IHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJjb2RlIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2Uo
bmFtZSwgInVybCIpKSkKLSAgICAgICAgICAgICAgICAgICAgdXJsID0gcC0+dmFsdWUoKTsKLSAg
ICAgICAgICAgICAgICBpZiAoc2VydmljZVR5cGUuaXNFbXB0eSgpICYmIGVxdWFsSWdub3JpbmdD
YXNlKG5hbWUsICJ0eXBlIikpIHsKLSAgICAgICAgICAgICAgICAgICAgc2VydmljZVR5cGUgPSBw
LT52YWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gc2VydmljZVR5cGUuZmlu
ZCgiOyIpOwotICAgICAgICAgICAgICAgICAgICBpZiAocG9zICE9IC0xKQotICAgICAgICAgICAg
ICAgICAgICAgICAgc2VydmljZVR5cGUgPSBzZXJ2aWNlVHlwZS5sZWZ0KHBvcyk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICghZW1iZWQgJiYgIW5hbWUuaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHVuaXF1ZVBhcmFtTmFtZXMuYWRkKG5hbWUuaW1wbCgp
KTsKLSAgICAgICAgICAgICAgICAgICAgcGFyYW1OYW1lcy5hcHBlbmQocC0+bmFtZSgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgcGFyYW1WYWx1ZXMuYXBwZW5kKHAtPnZhbHVlKCkpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNoaWxkID0gY2hpbGQtPm5l
eHRTaWJsaW5nKCk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBXaGVuIE9CSkVDVCBpcyB1c2Vk
IGZvciBhbiBhcHBsZXQgdmlhIFN1bidzIEphdmEgcGx1Z2luLCB0aGUgQ09ERUJBU0UgYXR0cmli
dXRlIGluIHRoZSB0YWcKLSAgICAgICAgLy8gcG9pbnRzIHRvIHRoZSBKYXZhIHBsdWdpbiBpdHNl
bGYgKGFuIEFjdGl2ZVggY29tcG9uZW50KSB3aGlsZSB0aGUgYWN0dWFsIGFwcGxldCBDT0RFQkFT
RSBpcwotICAgICAgICAvLyBpbiBhIFBBUkFNIHRhZy4gU2VlIDxodHRwOi8vamF2YS5zdW4uY29t
L3Byb2R1Y3RzL3BsdWdpbi8xLjIvZG9jcy90YWdzLmh0bWw+LiBUaGlzIG1lYW5zCi0gICAgICAg
IC8vIHdlIGhhdmUgdG8gZXhwbGljaXRseSBzdXBwcmVzcyB0aGUgdGFnJ3MgQ09ERUJBU0UgYXR0
cmlidXRlIGlmIHRoZXJlIGlzIG5vbmUgaW4gYSBQQVJBTSwKLSAgICAgICAgLy8gZWxzZSBvdXIg
SmF2YSBwbHVnaW4gd2lsbCBtaXNpbnRlcnByZXQgaXQuIFs0MDA0NTMxXQotICAgICAgICBTdHJp
bmcgY29kZWJhc2U7Ci0gICAgICAgIGlmICghZW1iZWQgJiYgTUlNRVR5cGVSZWdpc3RyeTo6aXNK
YXZhQXBwbGV0TUlNRVR5cGUoc2VydmljZVR5cGUpKSB7Ci0gICAgICAgICAgICBjb2RlYmFzZSA9
ICJjb2RlYmFzZSI7Ci0gICAgICAgICAgICB1bmlxdWVQYXJhbU5hbWVzLmFkZChjb2RlYmFzZS5p
bXBsKCkpOyAvLyBwcmV0ZW5kIHdlIGZvdW5kIGl0IGluIGEgUEFSQU0gYWxyZWFkeQotICAgICAg
ICB9Ci0gICAgICAgIAotICAgICAgICAvLyBUdXJuIHRoZSBhdHRyaWJ1dGVzIG9mIGVpdGhlciB0
aGUgRU1CRUQgdGFnIG9yIE9CSkVDVCB0YWcgaW50byBhcnJheXMsIGJ1dCBkb24ndCBvdmVycmlk
ZSBQQVJBTSB2YWx1ZXMuCi0gICAgICAgIE5hbWVkTm9kZU1hcCogYXR0cmlidXRlcyA9IGVtYmVk
T3JPYmplY3QtPmF0dHJpYnV0ZXMoKTsKLSAgICAgICAgaWYgKGF0dHJpYnV0ZXMpIHsKLSAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLT5sZW5ndGgoKTsgKytp
KSB7Ci0gICAgICAgICAgICAgICAgQXR0cmlidXRlKiBpdCA9IGF0dHJpYnV0ZXMtPmF0dHJpYnV0
ZUl0ZW0oaSk7Ci0gICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gaXQt
Pm5hbWUoKS5sb2NhbE5hbWUoKTsKLSAgICAgICAgICAgICAgICBpZiAoZW1iZWQgfHwgIXVuaXF1
ZVBhcmFtTmFtZXMuY29udGFpbnMobmFtZS5pbXBsKCkpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHBhcmFtTmFtZXMuYXBwZW5kKG5hbWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICBw
YXJhbVZhbHVlcy5hcHBlbmQoaXQtPnZhbHVlKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIG1hcERhdGFQYXJhbVRvU3Jj
KCZwYXJhbU5hbWVzLCAmcGFyYW1WYWx1ZXMpOwotCi0gICAgICAgIC8vIElmIHdlIHN0aWxsIGRv
bid0IGhhdmUgYSB0eXBlLCB0cnkgdG8gbWFwIGZyb20gYSBzcGVjaWZpYyBDTEFTU0lEIHRvIGEg
dHlwZS4KLSAgICAgICAgaWYgKHNlcnZpY2VUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHNl
cnZpY2VUeXBlID0gc2VydmljZVR5cGVGb3JDbGFzc0lkKG8tPmNsYXNzSWQoKSk7Ci0KLSAgICAg
ICAgaWYgKCFpc1VSTEFsbG93ZWQoZG9jdW1lbnQoKSwgdXJsKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICAvLyBGaW5kIG91dCBpZiB3ZSBzdXBwb3J0IGZhbGxiYWNrIGNvbnRlbnQu
Ci0gICAgICAgIG1faGFzRmFsbGJhY2tDb250ZW50ID0gZmFsc2U7Ci0gICAgICAgIGZvciAoTm9k
ZSAqY2hpbGQgPSBvLT5maXJzdENoaWxkKCk7IGNoaWxkICYmICFtX2hhc0ZhbGxiYWNrQ29udGVu
dDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAgaWYgKCghY2hp
bGQtPmlzVGV4dE5vZGUoKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpICYmICFjaGls
ZC0+aGFzVGFnTmFtZShwYXJhbVRhZykpIHx8IC8vIERpc2NvdW50IDxlbWJlZD4gYW5kIDxwYXJh
bT4KLSAgICAgICAgICAgICAgICAoY2hpbGQtPmlzVGV4dE5vZGUoKSAmJiAhc3RhdGljX2Nhc3Q8
VGV4dCo+KGNoaWxkKS0+Y29udGFpbnNPbmx5V2hpdGVzcGFjZSgpKSkKLSAgICAgICAgICAgICAg
ICBtX2hhc0ZhbGxiYWNrQ29udGVudCA9IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAo
b25seUNyZWF0ZU5vbk5ldHNjYXBlUGx1Z2lucykgewotICAgICAgICAgICAgS1VSTCBjb21wbGV0
ZWRVUkw7Ci0gICAgICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAg
Y29tcGxldGVkVVJMID0gZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0ZVVSTCh1cmwpOwotCi0gICAg
ICAgICAgICBpZiAoZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+b2JqZWN0Q29udGVudFR5cGUo
Y29tcGxldGVkVVJMLCBzZXJ2aWNlVHlwZSkgPT0gT2JqZWN0Q29udGVudE5ldHNjYXBlUGx1Z2lu
KQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgc3Vj
Y2VzcyA9IG8tPmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KHVybCkgJiYKLSAgICAgICAgICAgICAg
ICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5yZXF1ZXN0T2JqZWN0KHRoaXMsIHVybCwgby0+Z2V0
QXR0cmlidXRlKG5hbWVBdHRyKSwgc2VydmljZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVz
KTsKLSAgICAgICAgaWYgKCFzdWNjZXNzICYmIG1faGFzRmFsbGJhY2tDb250ZW50KQotICAgICAg
ICAgICAgby0+cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7Ci0gICAgfSBlbHNlIGlmIChub2RlKCkt
Pmhhc1RhZ05hbWUoZW1iZWRUYWcpKSB7Ci0gICAgICAgIEhUTUxFbWJlZEVsZW1lbnQgKm8gPSBz
dGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4obm9kZSgpKTsKLSAgICAgICAgby0+c2V0TmVl
ZFdpZGdldFVwZGF0ZShmYWxzZSk7Ci0gICAgICAgIHVybCA9IG8tPnVybCgpOwotICAgICAgICBz
ZXJ2aWNlVHlwZSA9IG8tPnNlcnZpY2VUeXBlKCk7Ci0KLSAgICAgICAgaWYgKHVybC5pc0VtcHR5
KCkgJiYgc2VydmljZVR5cGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBpZiAoIWlzVVJMQWxsb3dlZChkb2N1bWVudCgpLCB1cmwpKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIC8vIGFkZCBhbGwgYXR0cmlidXRlcyBzZXQgb24gdGhlIGVtYmVkIG9iamVj
dAotICAgICAgICBOYW1lZE5vZGVNYXAqIGEgPSBvLT5hdHRyaWJ1dGVzKCk7Ci0gICAgICAgIGlm
IChhKSB7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYS0+bGVuZ3RoKCk7
ICsraSkgewotICAgICAgICAgICAgICAgIEF0dHJpYnV0ZSogaXQgPSBhLT5hdHRyaWJ1dGVJdGVt
KGkpOwotICAgICAgICAgICAgICAgIHBhcmFtTmFtZXMuYXBwZW5kKGl0LT5uYW1lKCkubG9jYWxO
YW1lKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHBhcmFtVmFsdWVzLmFwcGVuZChpdC0+
dmFsdWUoKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAob25seUNyZWF0ZU5vbk5ldHNjYXBlUGx1Z2lucykgewotICAgICAgICAgICAgS1VSTCBjb21w
bGV0ZWRVUkw7Ci0gICAgICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAg
ICAgY29tcGxldGVkVVJMID0gZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0ZVVSTCh1cmwpOwotCi0g
ICAgICAgICAgICBpZiAoZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+b2JqZWN0Q29udGVudFR5
cGUoY29tcGxldGVkVVJMLCBzZXJ2aWNlVHlwZSkgPT0gT2JqZWN0Q29udGVudE5ldHNjYXBlUGx1
Z2luKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KG8tPmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KHVybCkpCi0gICAgICAgICAgICBmcmFtZS0+bG9h
ZGVyKCktPnJlcXVlc3RPYmplY3QodGhpcywgdXJsLCBvLT5nZXRBdHRyaWJ1dGUobmFtZUF0dHIp
LCBzZXJ2aWNlVHlwZSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwotICAgIH0KLSNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykgICAgICAgIAotICAgIGVsc2UgaWYgKG5vZGUoKS0+
aGFzVGFnTmFtZSh2aWRlb1RhZykgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKGF1ZGlvVGFnKSkgewot
ICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBvID0gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVu
dCo+KG5vZGUoKSk7Ci0KLSAgICAgICAgby0+c2V0TmVlZFdpZGdldFVwZGF0ZShmYWxzZSk7Ci0g
ICAgICAgIGlmIChub2RlKCktPmhhc1RhZ05hbWUodmlkZW9UYWcpKSB7Ci0gICAgICAgICAgICBI
VE1MVmlkZW9FbGVtZW50KiB2aWQgPSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obm9k
ZSgpKTsKLSAgICAgICAgICAgIFN0cmluZyBwb3N0ZXIgPSB2aWQtPnBvc3RlcigpOwotICAgICAg
ICAgICAgaWYgKCFwb3N0ZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgcGFyYW1OYW1l
cy5hcHBlbmQoIl9tZWRpYV9lbGVtZW50X3Bvc3Rlcl8iKTsKLSAgICAgICAgICAgICAgICBwYXJh
bVZhbHVlcy5hcHBlbmQocG9zdGVyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAg
ICAgIHVybCA9IG8tPmluaXRpYWxVUkwoKTsKLSAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICBwYXJhbU5hbWVzLmFwcGVuZCgiX21lZGlhX2VsZW1lbnRfc3JjXyIpOwot
ICAgICAgICAgICAgcGFyYW1WYWx1ZXMuYXBwZW5kKHVybCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBzZXJ2aWNlVHlwZSA9ICJhcHBsaWNhdGlvbi94LW1lZGlhLWVsZW1lbnQtcHJveHktcGx1Z2lu
IjsKLSAgICAgICAgCi0gICAgICAgIGlmIChvLT5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudCh1cmwp
KQotICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5yZXF1ZXN0T2JqZWN0KHRoaXMsIHVybCwg
bnVsbEF0b20sIHNlcnZpY2VUeXBlLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7Ci0gICAgfQot
I2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVyUGFydE9iamVjdDo6bGF5b3V0KCkKQEAgLTMyNyw5ICs2
Miw2IEBAIHZvaWQgUmVuZGVyUGFydE9iamVjdDo6bGF5b3V0KCkKICAgICBtX292ZXJmbG93LmNs
ZWFyKCk7CiAgICAgYWRkU2hhZG93T3ZlcmZsb3coKTsKIAotICAgIGlmICghd2lkZ2V0KCkgJiYg
ZnJhbWVWaWV3KCkpCi0gICAgICAgIGZyYW1lVmlldygpLT5hZGRXaWRnZXRUb1VwZGF0ZSh0aGlz
KTsKLQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UGFydE9iamVjdC5oCmluZGV4IGFkOTU2YmQuLjhiZDYzNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQYXJ0T2JqZWN0LmgKQEAgLTI3LDEyICsyNywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKKy8vIFJlbmRlcmVyIGZvciBpZnJhbWVzLiBJcyBzdWJjbGFzc2VkIGZvciBvYmplY3QgYW5k
IGVtYmVkLgogY2xhc3MgUmVuZGVyUGFydE9iamVjdCA6IHB1YmxpYyBSZW5kZXJQYXJ0IHsKIHB1
YmxpYzoKICAgICBSZW5kZXJQYXJ0T2JqZWN0KEVsZW1lbnQqKTsKLSAgICB2aXJ0dWFsIH5SZW5k
ZXJQYXJ0T2JqZWN0KCk7Ci0KLSAgICB2b2lkIHVwZGF0ZVdpZGdldChib29sIG9ubHlDcmVhdGVO
b25OZXRzY2FwZVBsdWdpbnMpOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciog
cmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJQYXJ0T2JqZWN0IjsgfQo=
</data>
<flag name="review"
          id="28283"
          type_id="1"
          status="+"
          setter="kdecker"
    />
          </attachment>
      

    </bug>

</bugzilla>