<?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>97624</bug_id>
          
          <creation_ts>2012-09-25 19:52:49 -0700</creation_ts>
          <short_desc>[EFL][WK2] Some expected and actual parameters in unit tests are reversed</short_desc>
          <delta_ts>2012-09-28 09:12:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</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="Jinwoo Song">jinwoo7.song</reporter>
          <assigned_to name="Jinwoo Song">jinwoo7.song</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>naginenis</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>728160</commentid>
    <comment_count>0</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-25 19:52:49 -0700</bug_when>
    <thetext>According to the gtest guide, EXPECT_XXX(expected, actual) is recommended but some unit tests do not follow this.

http://code.google.com/p/googletest/wiki/Primer
&quot;In the event of a failure, Google Test prints both val1 and val2 . In ASSERT_EQ* and EXPECT_EQ* (and all other equality assertions we&apos;ll introduce later), you should put the expression you want to test in the position of actual, and put its expected value in expected, as Google Test&apos;s failure messages are optimized for this convention.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730465</commentid>
    <comment_count>1</comment_count>
      <attachid>166198</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-28 04:01:06 -0700</bug_when>
    <thetext>Created attachment 166198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730525</commentid>
    <comment_count>2</comment_count>
      <attachid>166198</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-09-28 05:10:12 -0700</bug_when>
    <thetext>Comment on attachment 166198
Patch

Looks harmless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730534</commentid>
    <comment_count>3</comment_count>
      <attachid>166198</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-28 05:21:18 -0700</bug_when>
    <thetext>Comment on attachment 166198
Patch

Interesting. Looks good, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730566</commentid>
    <comment_count>4</comment_count>
      <attachid>166198</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2012-09-28 06:05:54 -0700</bug_when>
    <thetext>Comment on attachment 166198
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730621</commentid>
    <comment_count>5</comment_count>
      <attachid>166198</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 07:00:19 -0700</bug_when>
    <thetext>Comment on attachment 166198
Patch

Clearing flags on attachment: 166198

Committed r129892: &lt;http://trac.webkit.org/changeset/129892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730622</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 07:00:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730678</commentid>
    <comment_count>7</comment_count>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-09-28 08:28:19 -0700</bug_when>
    <thetext>This is causing a failure in API tests.

http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug/builds/6521/steps/API%20tests/logs/stdio

/home/buildslave-1/webkit-buildslave/efl-linux-64-debug/build/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:212: Failure
Value of: countHostnamesWithCookies(cookieManager)
  Actual: 0
Expected: 2
[  FAILED  ] EWK2UnitTestBase.ewk_cookie_manager_changes_watch (136 ms)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730687</commentid>
    <comment_count>8</comment_count>
      <attachid>166198</attachid>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-09-28 08:41:03 -0700</bug_when>
    <thetext>Comment on attachment 166198
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp:171
&gt; +    ASSERT_EQ(ewk_context_ref(context), context);

This change is not needed.

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:212
&gt; +    ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));

Expected value should be 0, not 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730692</commentid>
    <comment_count>9</comment_count>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-09-28 08:45:25 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp:171
&gt; &gt; +    ASSERT_EQ(ewk_context_ref(context), context);
&gt; 
&gt; This change is not needed.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:212
&gt; &gt; +    ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));
&gt; 
&gt; Expected value should be 0, not 2.

These are now fixed in http://trac.webkit.org/changeset/129900
Thanks Raphael.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730724</commentid>
    <comment_count>10</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-28 09:12:57 -0700</bug_when>
    <thetext>Thanks for fixing, Raphael.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166198</attachid>
            <date>2012-09-28 04:01:06 -0700</date>
            <delta_ts>2012-09-28 08:41:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97624-20120928200022.patch</filename>
            <type>text/plain</type>
            <size>51675</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTRkNWRmYmM4ZGFlY2Mw
MjNiNmIzMWQ1MjY0NTdhY2Q1YmJiZTdhOS4uNDA4MDIyOGRjYjJkZTdkMDAwYmM5YWJhMTZiZmFm
ZGE3Mzk3YzY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA5LTI4ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IFNvbWUgZXhwZWN0ZWQgYW5kIGFjdHVhbCBwYXJhbWV0ZXJzIGluIHVuaXQgdGVzdHMgYXJlIHJl
dmVyc2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFj
Y29yZGluZyB0byB0aGUgZ3Rlc3QgZ3VpZGUsIEFTU0VSVF9YWFgsIEVYUEVDVF9YWFgoZXhwZWN0
ZWQsIGFjdHVhbCkgYXJlIHJlY29tbWVuZGVkCisgICAgICAgIGJ1dCBzb21lIHVuaXQgdGVzdHMg
ZG8gbm90IGZvbGxvdyB0aGlzLihodHRwOi8vY29kZS5nb29nbGUuY29tL3AvZ29vZ2xldGVzdC93
aWtpL1ByaW1lcikKKyAgICAgICAgR29vZ2xlIFRlc3QncyBmYWlsdXJlIG1lc3NhZ2VzIGFyZSBv
cHRpbWl6ZWQgZm9yIHRoaXMgY29udmVudGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl9iYWNrX2ZvcndhcmRfbGlzdC5jcHA6CisgICAgICAgIChURVNU
X0YpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0
LmNwcDoKKyAgICAgICAgKHNjaGVtZVJlcXVlc3RDYWxsYmFjayk6CisgICAgICAgIChURVNUX0Yp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb29raWVfbWFu
YWdlci5jcHA6CisgICAgICAgIChURVNUX0YpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL3Rlc3RfZXdrMl9kb3dubG9hZF9qb2IuY3BwOgorICAgICAgICAob25fZG93bmxvYWRf
cmVxdWVzdGVkKToKKyAgICAgICAgKG9uX2Rvd25sb2FkX2ZpbmlzaGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfaW50ZW50cy5jcHA6CisgICAgICAgIChv
bkludGVudFNlcnZpY2VSZWdpc3RyYXRpb24pOgorICAgICAgICAob25JbnRlbnRSZWNlaXZlZCk6
CisgICAgICAgIChURVNUX0YpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rl
c3RfZXdrMl9yZWZwdHJfZXZhc19vYmplY3QuY3BwOgorICAgICAgICAoVEVTVF9GKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHA6CisgICAgICAg
IChURVNUX0YpOgorICAgICAgICAob25Gb3JtQWJvdXRUb0JlU3VibWl0dGVkKToKKyAgICAgICAg
KGNoZWNrQmFzaWNQb3B1cE1lbnVJdGVtKToKKyAgICAgICAgKHNob3dQb3B1cE1lbnUpOgorICAg
ICAgICAoc2hvd0NvbG9yUGlja2VyKToKKwogMjAxMi0wOS0yNyAgQmV0aCBEYWtpbiAgPGJkYWtp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk3ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC90ZXN0cy90ZXN0X2V3azJfYmFja19mb3J3YXJkX2xpc3QuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2JhY2tfZm9yd2FyZF9saXN0LmNwcApp
bmRleCA5NTQyYjc2ZjA4MzZmODZhZmE2NzNlMGVlOWI2YWE0NjFiMmZiZTY5Li40NjIzNTFmMzlh
ZWY3OWRmZGIzYTNkMThjYTNiZGJmMjk2M2NiNGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfYmFja19mb3J3YXJkX2xpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9i
YWNrX2ZvcndhcmRfbGlzdC5jcHAKQEAgLTEwNywxMCArMTA3LDEwIEBAIFRFU1RfRihFV0syVW5p
dFRlc3RCYXNlLCBld2tfYmFja19mb3J3YXJkX2xpc3RfcHJldmlvdXNfaXRlbV9nZXQpCiAKICAg
ICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsMSA9IHVybEZyb21UaXRsZShodHRwU2VydmVyLmdldCgp
LCB0aXRsZTEpOwogICAgIGxvYWRVcmxTeW5jKHVybDEpOwotICAgIEFTU0VSVF9TVFJFUShld2tf
dmlld190aXRsZV9nZXQod2ViVmlldygpKSwgdGl0bGUxKTsKKyAgICBBU1NFUlRfU1RSRVEodGl0
bGUxLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAKICAgICBsb2FkVXJsU3luYyh1
cmxGcm9tVGl0bGUoaHR0cFNlcnZlci5nZXQoKSwgdGl0bGUyKSk7Ci0gICAgQVNTRVJUX1NUUkVR
KGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpLCB0aXRsZTIpOworICAgIEFTU0VSVF9TVFJF
USh0aXRsZTIsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpKTsKIAogICAgIEV3a19CYWNr
X0ZvcndhcmRfTGlzdCogYmFja0ZvcndhcmRMaXN0ID0gZXdrX3ZpZXdfYmFja19mb3J3YXJkX2xp
c3RfZ2V0KHdlYlZpZXcoKSk7CiAgICAgQVNTRVJUX1RSVUUoYmFja0ZvcndhcmRMaXN0KTsKQEAg
LTEyOCwxMSArMTI4LDExIEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfYmFja19mb3J3
YXJkX2xpc3RfbmV4dF9pdGVtX2dldCkKICAgICBodHRwU2VydmVyLT5ydW4oc2VydmVyQ2FsbGJh
Y2tOYXZpZ2F0aW9uKTsKIAogICAgIGxvYWRVcmxTeW5jKHVybEZyb21UaXRsZShodHRwU2VydmVy
LmdldCgpLCB0aXRsZTEpKTsKLSAgICBBU1NFUlRfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdl
YlZpZXcoKSksIHRpdGxlMSk7CisgICAgQVNTRVJUX1NUUkVRKHRpdGxlMSwgZXdrX3ZpZXdfdGl0
bGVfZ2V0KHdlYlZpZXcoKSkpOwogCiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDIgPSB1cmxG
cm9tVGl0bGUoaHR0cFNlcnZlci5nZXQoKSwgdGl0bGUyKTsKICAgICBsb2FkVXJsU3luYyh1cmwy
KTsKLSAgICBBU1NFUlRfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSksIHRpdGxl
Mik7CisgICAgQVNTRVJUX1NUUkVRKHRpdGxlMiwgZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXco
KSkpOwogCiAgICAgLy8gR28gYmFjayB0byBQYWdlMS4KICAgICBld2tfdmlld19iYWNrKHdlYlZp
ZXcoKSk7CkBAIC0xNTUsMTAgKzE1NSwxMCBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdr
X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fYXRfaW5kZXhfZ2V0KQogCiAgICAgV0tFaW5hU2hhcmVk
U3RyaW5nIHVybDEgPSB1cmxGcm9tVGl0bGUoaHR0cFNlcnZlci5nZXQoKSwgdGl0bGUxKTsKICAg
ICBsb2FkVXJsU3luYyh1cmwxKTsKLSAgICBBU1NFUlRfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0
KHdlYlZpZXcoKSksIHRpdGxlMSk7CisgICAgQVNTRVJUX1NUUkVRKHRpdGxlMSwgZXdrX3ZpZXdf
dGl0bGVfZ2V0KHdlYlZpZXcoKSkpOwogCiAgICAgbG9hZFVybFN5bmModXJsRnJvbVRpdGxlKGh0
dHBTZXJ2ZXIuZ2V0KCksIHRpdGxlMikpOwotICAgIEFTU0VSVF9TVFJFUShld2tfdmlld190aXRs
ZV9nZXQod2ViVmlldygpKSwgdGl0bGUyKTsKKyAgICBBU1NFUlRfU1RSRVEodGl0bGUyLCBld2tf
dmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAKICAgICBFd2tfQmFja19Gb3J3YXJkX0xpc3Qq
IGJhY2tGb3J3YXJkTGlzdCA9IGV3a192aWV3X2JhY2tfZm9yd2FyZF9saXN0X2dldCh3ZWJWaWV3
KCkpOwogICAgIEFTU0VSVF9UUlVFKGJhY2tGb3J3YXJkTGlzdCk7CkBAIC0xNzksMTUgKzE3OSwx
NSBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2NvdW50
KQogICAgIGh0dHBTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFja05hdmlnYXRpb24pOwogCiAgICAg
bG9hZFVybFN5bmModXJsRnJvbVRpdGxlKGh0dHBTZXJ2ZXIuZ2V0KCksIHRpdGxlMSkpOwotICAg
IEFTU0VSVF9TVFJFUShld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSwgdGl0bGUxKTsKKyAg
ICBBU1NFUlRfU1RSRVEodGl0bGUxLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAK
ICAgICBsb2FkVXJsU3luYyh1cmxGcm9tVGl0bGUoaHR0cFNlcnZlci5nZXQoKSwgdGl0bGUyKSk7
Ci0gICAgQVNTRVJUX1NUUkVRKGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpLCB0aXRsZTIp
OworICAgIEFTU0VSVF9TVFJFUSh0aXRsZTIsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkp
KTsKIAogICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdCogYmFja0ZvcndhcmRMaXN0ID0gZXdrX3Zp
ZXdfYmFja19mb3J3YXJkX2xpc3RfZ2V0KHdlYlZpZXcoKSk7CiAgICAgQVNTRVJUX1RSVUUoYmFj
a0ZvcndhcmRMaXN0KTsKIAotICAgIEVYUEVDVF9FUShld2tfYmFja19mb3J3YXJkX2xpc3RfY291
bnQoYmFja0ZvcndhcmRMaXN0KSwgMik7CisgICAgRVhQRUNUX0VRKDIsIGV3a19iYWNrX2Zvcndh
cmRfbGlzdF9jb3VudChiYWNrRm9yd2FyZExpc3QpKTsKIH0KIAogVEVTVF9GKEVXSzJVbml0VGVz
dEJhc2UsIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uX2JhY2tfaXRlbXNfY29weSkKQEAgLTE5Nywy
MSArMTk3LDIxIEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfYmFja19mb3J3YXJkX2xp
c3Rfbl9iYWNrX2l0ZW1zX2NvcHkpCiAKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsMSA9IHVy
bEZyb21UaXRsZShodHRwU2VydmVyLmdldCgpLCB0aXRsZTEpOwogICAgIGxvYWRVcmxTeW5jKHVy
bDEpOwotICAgIEFTU0VSVF9TVFJFUShld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSwgdGl0
bGUxKTsKKyAgICBBU1NFUlRfU1RSRVEodGl0bGUxLCBld2tfdmlld190aXRsZV9nZXQod2ViVmll
dygpKSk7CiAKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsMiA9IHVybEZyb21UaXRsZShodHRw
U2VydmVyLmdldCgpLCB0aXRsZTIpOwogICAgIGxvYWRVcmxTeW5jKHVybDIpOwotICAgIEFTU0VS
VF9TVFJFUShld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSwgdGl0bGUyKTsKKyAgICBBU1NF
UlRfU1RSRVEodGl0bGUyLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAKICAgICBs
b2FkVXJsU3luYyh1cmxGcm9tVGl0bGUoaHR0cFNlcnZlci5nZXQoKSwgdGl0bGUzKSk7Ci0gICAg
QVNTRVJUX1NUUkVRKGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpLCB0aXRsZTMpOworICAg
IEFTU0VSVF9TVFJFUSh0aXRsZTMsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpKTsKIAog
ICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdCogYmFja0ZvcndhcmRMaXN0ID0gZXdrX3ZpZXdfYmFj
a19mb3J3YXJkX2xpc3RfZ2V0KHdlYlZpZXcoKSk7CiAgICAgQVNTRVJUX1RSVUUoYmFja0Zvcndh
cmRMaXN0KTsKIAogICAgIEVpbmFfTGlzdCogYmFja0xpc3QgPSBld2tfYmFja19mb3J3YXJkX2xp
c3Rfbl9iYWNrX2l0ZW1zX2NvcHkoYmFja0ZvcndhcmRMaXN0LCAxKTsKICAgICBBU1NFUlRfVFJV
RShiYWNrTGlzdCk7Ci0gICAgQVNTRVJUX0VRKGVpbmFfbGlzdF9jb3VudChiYWNrTGlzdCksIDEp
OworICAgIEFTU0VSVF9FUSgxLCBlaW5hX2xpc3RfY291bnQoYmFja0xpc3QpKTsKICAgICBjaGVj
a0l0ZW0oc3RhdGljX2Nhc3Q8RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qPihlaW5hX2xpc3Rf
bnRoKGJhY2tMaXN0LCAwKSksIHRpdGxlMiwgdXJsMiwgdXJsMik7CiAgICAgZnJlZUVpbmFMaXN0
KGJhY2tMaXN0KTsKIApAQCAtMjIxLDcgKzIyMSw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNl
LCBld2tfYmFja19mb3J3YXJkX2xpc3Rfbl9iYWNrX2l0ZW1zX2NvcHkpCiAKICAgICBiYWNrTGlz
dCA9IGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uX2JhY2tfaXRlbXNfY29weShiYWNrRm9yd2FyZExp
c3QsIC0xKTsKICAgICBBU1NFUlRfVFJVRShiYWNrTGlzdCk7Ci0gICAgQVNTRVJUX0VRKGVpbmFf
bGlzdF9jb3VudChiYWNrTGlzdCksIDIpOworICAgIEFTU0VSVF9FUSgyLCBlaW5hX2xpc3RfY291
bnQoYmFja0xpc3QpKTsKICAgICBjaGVja0l0ZW0oc3RhdGljX2Nhc3Q8RXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0X0l0ZW0qPihlaW5hX2xpc3RfbnRoKGJhY2tMaXN0LCAwKSksIHRpdGxlMSwgdXJsMSwg
dXJsMSk7CiAgICAgY2hlY2tJdGVtKHN0YXRpY19jYXN0PEV3a19CYWNrX0ZvcndhcmRfTGlzdF9J
dGVtKj4oZWluYV9saXN0X250aChiYWNrTGlzdCwgMSkpLCB0aXRsZTIsIHVybDIsIHVybDIpOwog
ICAgIGZyZWVFaW5hTGlzdChiYWNrTGlzdCk7CkBAIC0yMzMsMTUgKzIzMywxNSBAQCBURVNUX0Yo
RVdLMlVuaXRUZXN0QmFzZSwgZXdrX2JhY2tfZm9yd2FyZF9saXN0X25fZm9yd2FyZF9pdGVtc19j
b3B5KQogICAgIGh0dHBTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFja05hdmlnYXRpb24pOwogCiAg
ICAgbG9hZFVybFN5bmModXJsRnJvbVRpdGxlKGh0dHBTZXJ2ZXIuZ2V0KCksIHRpdGxlMSkpOwot
ICAgIEFTU0VSVF9TVFJFUShld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSwgdGl0bGUxKTsK
KyAgICBBU1NFUlRfU1RSRVEodGl0bGUxLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7
CiAKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsMiA9IHVybEZyb21UaXRsZShodHRwU2VydmVy
LmdldCgpLCB0aXRsZTIpOwogICAgIGxvYWRVcmxTeW5jKHVybDIpOwotICAgIEFTU0VSVF9TVFJF
UShld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSwgdGl0bGUyKTsKKyAgICBBU1NFUlRfU1RS
RVEodGl0bGUyLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAKICAgICBXS0VpbmFT
aGFyZWRTdHJpbmcgdXJsMyA9IHVybEZyb21UaXRsZShodHRwU2VydmVyLmdldCgpLCB0aXRsZTMp
OwogICAgIGxvYWRVcmxTeW5jKHVybDMpOwotICAgIEFTU0VSVF9TVFJFUShld2tfdmlld190aXRs
ZV9nZXQod2ViVmlldygpKSwgdGl0bGUzKTsKKyAgICBBU1NFUlRfU1RSRVEodGl0bGUzLCBld2tf
dmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAKICAgICAvLyBHbyBiYWNrIHRvIFBhZ2UxLgog
ICAgIGV3a192aWV3X2JhY2sod2ViVmlldygpKTsKQEAgLTI1NCw3ICsyNTQsNyBAQCBURVNUX0Yo
RVdLMlVuaXRUZXN0QmFzZSwgZXdrX2JhY2tfZm9yd2FyZF9saXN0X25fZm9yd2FyZF9pdGVtc19j
b3B5KQogCiAgICAgRWluYV9MaXN0KiBmb3J3YXJkTGlzdCA9IGV3a19iYWNrX2ZvcndhcmRfbGlz
dF9uX2ZvcndhcmRfaXRlbXNfY29weShiYWNrRm9yd2FyZExpc3QsIDEpOwogICAgIEFTU0VSVF9U
UlVFKGZvcndhcmRMaXN0KTsKLSAgICBBU1NFUlRfRVEoZWluYV9saXN0X2NvdW50KGZvcndhcmRM
aXN0KSwgMSk7CisgICAgQVNTRVJUX0VRKDEsIGVpbmFfbGlzdF9jb3VudChmb3J3YXJkTGlzdCkp
OwogICAgIGNoZWNrSXRlbShzdGF0aWNfY2FzdDxFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSo+
KGVpbmFfbGlzdF9udGgoZm9yd2FyZExpc3QsIDApKSwgdGl0bGUyLCB1cmwyLCB1cmwyKTsKICAg
ICBmcmVlRWluYUxpc3QoZm9yd2FyZExpc3QpOwogCkBAIC0yNjQsNyArMjY0LDcgQEAgVEVTVF9G
KEVXSzJVbml0VGVzdEJhc2UsIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uX2ZvcndhcmRfaXRlbXNf
Y29weSkKIAogICAgIGZvcndhcmRMaXN0ID0gZXdrX2JhY2tfZm9yd2FyZF9saXN0X25fZm9yd2Fy
ZF9pdGVtc19jb3B5KGJhY2tGb3J3YXJkTGlzdCwgLTEpOwogICAgIEFTU0VSVF9UUlVFKGZvcndh
cmRMaXN0KTsKLSAgICBBU1NFUlRfRVEoZWluYV9saXN0X2NvdW50KGZvcndhcmRMaXN0KSwgMik7
CisgICAgQVNTRVJUX0VRKDIsIGVpbmFfbGlzdF9jb3VudChmb3J3YXJkTGlzdCkpOwogICAgIGNo
ZWNrSXRlbShzdGF0aWNfY2FzdDxFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSo+KGVpbmFfbGlz
dF9udGgoZm9yd2FyZExpc3QsIDApKSwgdGl0bGUyLCB1cmwyLCB1cmwyKTsKICAgICBjaGVja0l0
ZW0oc3RhdGljX2Nhc3Q8RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qPihlaW5hX2xpc3RfbnRo
KGZvcndhcmRMaXN0LCAxKSksIHRpdGxlMywgdXJsMywgdXJsMyk7CiAgICAgZnJlZUVpbmFMaXN0
KGZvcndhcmRMaXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcAppbmRleCA4MmRlZDU1ZGFjYzM2
NDA3MTczZjMyMGNlYmZiMWZmN2MzZDc3NmZiLi5hYjAyMmI1YmU3NzkxN2RlYWQ1MjI3NWQyYjNm
MWM0ODU3MGEwYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3BwCkBAIC01NiwxMSArNTYsMTEg
QEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19jb250ZXh0X2Nvb2tpZV9tYW5hZ2VyX2dl
dCkKIHN0YXRpYyB2b2lkIHNjaGVtZVJlcXVlc3RDYWxsYmFjayhFd2tfVXJsX1NjaGVtZV9SZXF1
ZXN0KiByZXF1ZXN0LCB2b2lkKiB1c2VyRGF0YSkKIHsKICAgICBjb25zdCBjaGFyKiBzY2hlbWUg
PSBld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3NjaGVtZV9nZXQocmVxdWVzdCk7Ci0gICAgQVNTRVJU
X1NUUkVRKHNjaGVtZSwgImZvb3NjaGVtZSIpOworICAgIEFTU0VSVF9TVFJFUSgiZm9vc2NoZW1l
Iiwgc2NoZW1lKTsKICAgICBjb25zdCBjaGFyKiB1cmwgPSBld2tfdXJsX3NjaGVtZV9yZXF1ZXN0
X3VybF9nZXQocmVxdWVzdCk7Ci0gICAgQVNTRVJUX1NUUkVRKHVybCwgImZvb3NjaGVtZTpNeVBh
dGgiKTsKKyAgICBBU1NFUlRfU1RSRVEoImZvb3NjaGVtZTpNeVBhdGgiLCB1cmwpOwogICAgIGNv
bnN0IGNoYXIqIHBhdGggPSBld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3BhdGhfZ2V0KHJlcXVlc3Qp
OwotICAgIEFTU0VSVF9TVFJFUShwYXRoLCAiTXlQYXRoIik7CisgICAgQVNTRVJUX1NUUkVRKCJN
eVBhdGgiLCBwYXRoKTsKICAgICBBU1NFUlRfVFJVRShld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X2Zp
bmlzaChyZXF1ZXN0LCBodG1sUmVwbHksIHN0cmxlbihodG1sUmVwbHkpLCAidGV4dC9odG1sIikp
OwogfQogCkBAIC02OCw3ICs2OCw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfY29u
dGV4dF91cmlfc2NoZW1lX3JlZ2lzdGVyKQogewogICAgIGV3a19jb250ZXh0X3VyaV9zY2hlbWVf
cmVnaXN0ZXIoZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKSwgImZvb3NjaGVtZSIsIHNj
aGVtZVJlcXVlc3RDYWxsYmFjaywgMCk7CiAgICAgbG9hZFVybFN5bmMoImZvb3NjaGVtZTpNeVBh
dGgiKTsKLSAgICBBU1NFUlRfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSksICJG
b28iKTsKKyAgICBBU1NFUlRfU1RSRVEoIkZvbyIsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3
KCkpKTsKIH0KIAogc3RydWN0IFZpYnJhdGlvbkNiRGF0YSB7CkBAIC0xMjgsNyArMTI4LDcgQEAg
VEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2Fs
bGJhY2tzX3NldCkKIAogICAgIC8vIFRoaXMgY2FzZSB0aGUgcGF0dGVybiB3aWxsIGNhdXNlIHRo
ZSBkZXZpY2UgdG8gdmlicmF0ZSBmb3IgMjAwIG1zLCBiZSBzdGlsbCBmb3IgMTAwIG1zLCBhbmQg
dGhlbiB2aWJyYXRlIGZvciA1MDAwIG1zLgogICAgIGxvYWRWaWJyYXRpb25IVE1MU3RyaW5nKHdl
YlZpZXcoKSwgIlsyMDAsIDEwMCwgNTAwMF0iLCB0cnVlLCAmZGF0YSk7Ci0gICAgQVNTRVJUX0VR
KGRhdGEudmlicmF0ZUNhbGxlZENvdW50LCAyKTsKKyAgICBBU1NFUlRfRVEoMiwgZGF0YS52aWJy
YXRlQ2FsbGVkQ291bnQpOwogICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGVD
YWxsYmFjayk7CiAKICAgICAvLyBDYW5jZWwgb3V0c3RhbmRpbmcgdmlicmF0aW9uIHBhdHRlcm4u
CkBAIC0xNDEsMTMgKzE0MSwxMyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX2NvbnRl
eHRfdmlicmF0aW9uX2NsaWVudF9jYWxsYmFja3Nfc2V0KQogICAgIC8vIE1ha2Ugc3VyZSB3ZSBk
b24ndCByZWNlaXZlIHZpYnJhdGlvbiBldmVudC4KICAgICBsb2FkVmlicmF0aW9uSFRNTFN0cmlu
Zyh3ZWJWaWV3KCksICJbNTAwMF0iLCBmYWxzZSwgJmRhdGEpOwogICAgIEFTU0VSVF9UUlVFKHdh
aXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCJMb2FkZWQiKSk7Ci0gICAgQVNTRVJUX1NUUkVRKGV3a192
aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpLCAiTG9hZGVkIik7CisgICAgQVNTRVJUX1NUUkVRKCJM
b2FkZWQiLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAgICAgQVNTRVJUX0ZBTFNF
KGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGVDYWxsYmFjayk7CiAKICAgICAvLyBNYWtlIHN1cmUgd2Ug
ZG9uJ3QgcmVjZWl2ZSBjYW5jZWwgdmlicmF0aW9uIGV2ZW50LgogICAgIGxvYWRWaWJyYXRpb25I
VE1MU3RyaW5nKHdlYlZpZXcoKSwgIjAiLCBmYWxzZSwgJmRhdGEpOwogICAgIEFTU0VSVF9UUlVF
KHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCJMb2FkZWQiKSk7Ci0gICAgQVNTRVJUX1NUUkVRKGV3
a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpLCAiTG9hZGVkIik7CisgICAgQVNTRVJUX1NUUkVR
KCJMb2FkZWQiLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAgICAgQVNTRVJUX0ZB
TFNFKGRhdGEuZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlvbkNhbGxiYWNrKTsKIH0KIApAQCAtMTY4
LDcgKzE2OCw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfY29udGV4dF9uZXdfd2l0
aF9pbmplY3RlZF9idW5kbGVfcGF0aCkKIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfY29u
dGV4dF9yZWYpCiB7CiAgICAgRXdrX0NvbnRleHQqIGNvbnRleHQgPSBld2tfY29udGV4dF9uZXco
KTsKLSAgICBBU1NFUlRfRVEoY29udGV4dCwgZXdrX2NvbnRleHRfcmVmKGNvbnRleHQpKTsKKyAg
ICBBU1NFUlRfRVEoZXdrX2NvbnRleHRfcmVmKGNvbnRleHQpLCBjb250ZXh0KTsKICAgICBld2tf
Y29udGV4dF91bnJlZihjb250ZXh0KTsKICAgICBld2tfY29udGV4dF91bnJlZihjb250ZXh0KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rl
c3RfZXdrMl9jb29raWVfbWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfY29va2llX21hbmFnZXIuY3BwCmluZGV4IDQzNTNjZWQ3OTJh
MzU2M2Y1Mzg5NWM3MWZkZjNlZjYyNzhhYmIzMWMuLjZmZGE1OWNiNzc4OTZlZmY5OTIwZTQxNzk3
ZGNmYTY4YjFlNWRmMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb29raWVfbWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Nvb2tpZV9tYW5hZ2VyLmNwcApA
QCAtMTI1LDMyICsxMjUsMzIgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19jb29raWVf
bWFuYWdlcl9hY2NlcHRfcG9saWN5KQogICAgIEFTU0VSVF9UUlVFKGNvb2tpZU1hbmFnZXIpOwog
CiAgICAgLy8gRGVmYXVsdCBwb2xpY3kgaXMgRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX05PX1RI
SVJEX1BBUlRZLgotICAgIEFTU0VSVF9FUShnZXRBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciks
IEVXS19DT09LSUVfQUNDRVBUX1BPTElDWV9OT19USElSRF9QQVJUWSk7CisgICAgQVNTRVJUX0VR
KEVXS19DT09LSUVfQUNDRVBUX1BPTElDWV9OT19USElSRF9QQVJUWSwgZ2V0QWNjZXB0UG9saWN5
KGNvb2tpZU1hbmFnZXIpKTsKICAgICBsb2FkVXJsU3luYyhodHRwU2VydmVyLT5nZXRVUklGb3JQ
YXRoKCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CiAKICAgICBFaW5hX0xpc3QqIGhvc3RuYW1lcyA9
IGdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNvb2tpZU1hbmFnZXIpOwotICAgIEFTU0VSVF9FUShl
aW5hX2xpc3RfY291bnQoaG9zdG5hbWVzKSwgMSk7Ci0gICAgQVNTRVJUX1NUUkVRKHN0YXRpY19j
YXN0PGNoYXIqPihlaW5hX2xpc3RfbnRoKGhvc3RuYW1lcywgMCkpLCBGSVJTVF9QQVJUWV9ET01B
SU4pOworICAgIEFTU0VSVF9FUSgxLCBlaW5hX2xpc3RfY291bnQoaG9zdG5hbWVzKSk7CisgICAg
QVNTRVJUX1NUUkVRKEZJUlNUX1BBUlRZX0RPTUFJTiwgc3RhdGljX2Nhc3Q8Y2hhcio+KGVpbmFf
bGlzdF9udGgoaG9zdG5hbWVzLCAwKSkpOwogICAgIGZyZWVIb3N0TmFtZXMoaG9zdG5hbWVzKTsK
ICAgICBld2tfY29va2llX21hbmFnZXJfY29va2llc19jbGVhcihjb29raWVNYW5hZ2VyKTsKIAog
ICAgIC8vIENoYW5nZSBwb2xpY3kgdG8gRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX0FMV0FZUwog
ICAgIGV3a19jb29raWVfbWFuYWdlcl9hY2NlcHRfcG9saWN5X3NldChjb29raWVNYW5hZ2VyLCBF
V0tfQ09PS0lFX0FDQ0VQVF9QT0xJQ1lfQUxXQVlTKTsKLSAgICBBU1NFUlRfRVEoZ2V0QWNjZXB0
UG9saWN5KGNvb2tpZU1hbmFnZXIpLCBFV0tfQ09PS0lFX0FDQ0VQVF9QT0xJQ1lfQUxXQVlTKTsK
KyAgICBBU1NFUlRfRVEoRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX0FMV0FZUywgZ2V0QWNjZXB0
UG9saWN5KGNvb2tpZU1hbmFnZXIpKTsKICAgICBsb2FkVXJsU3luYyhodHRwU2VydmVyLT5nZXRV
UklGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CiAKICAgICBob3N0bmFtZXMgPSBnZXRI
b3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKTsKLSAgICBBU1NFUlRfRVEoZWluYV9s
aXN0X2NvdW50KGhvc3RuYW1lcyksIDIpOwotICAgIEFTU0VSVF9TVFJFUShzdGF0aWNfY2FzdDxj
aGFyKj4oZWluYV9saXN0X250aChob3N0bmFtZXMsIDApKSwgRklSU1RfUEFSVFlfRE9NQUlOKTsK
LSAgICBBU1NFUlRfU1RSRVEoc3RhdGljX2Nhc3Q8Y2hhcio+KGVpbmFfbGlzdF9udGgoaG9zdG5h
bWVzLCAxKSksIFRISVJEX1BBUlRZX0RPTUFJTik7CisgICAgQVNTRVJUX0VRKDIsIGVpbmFfbGlz
dF9jb3VudChob3N0bmFtZXMpKTsKKyAgICBBU1NFUlRfU1RSRVEoRklSU1RfUEFSVFlfRE9NQUlO
LCBzdGF0aWNfY2FzdDxjaGFyKj4oZWluYV9saXN0X250aChob3N0bmFtZXMsIDApKSk7CisgICAg
QVNTRVJUX1NUUkVRKFRISVJEX1BBUlRZX0RPTUFJTiwgc3RhdGljX2Nhc3Q8Y2hhcio+KGVpbmFf
bGlzdF9udGgoaG9zdG5hbWVzLCAxKSkpOwogICAgIGZyZWVIb3N0TmFtZXMoaG9zdG5hbWVzKTsK
ICAgICBld2tfY29va2llX21hbmFnZXJfY29va2llc19jbGVhcihjb29raWVNYW5hZ2VyKTsKIAog
ICAgIC8vIENoYW5nZSBwb2xpY3kgdG8gRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX05FVkVSCiAg
ICAgZXdrX2Nvb2tpZV9tYW5hZ2VyX2FjY2VwdF9wb2xpY3lfc2V0KGNvb2tpZU1hbmFnZXIsIEVX
S19DT09LSUVfQUNDRVBUX1BPTElDWV9ORVZFUik7Ci0gICAgQVNTRVJUX0VRKGdldEFjY2VwdFBv
bGljeShjb29raWVNYW5hZ2VyKSwgRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX05FVkVSKTsKKyAg
ICBBU1NFUlRfRVEoRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX05FVkVSLCBnZXRBY2NlcHRQb2xp
Y3koY29va2llTWFuYWdlcikpOwogICAgIGxvYWRVcmxTeW5jKGh0dHBTZXJ2ZXItPmdldFVSSUZv
clBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKLSAgICBBU1NFUlRfRVEoY291bnRIb3N0bmFt
ZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSwgMCk7CisgICAgQVNTRVJUX0VRKDAsIGNvdW50
SG9zdG5hbWVzV2l0aENvb2tpZXMoY29va2llTWFuYWdlcikpOwogfQogCiB2b2lkIG9uQ29va2ll
c0NoYW5nZWQodm9pZCAqZXZlbnRJbmZvKQpAQCAtMTY4LDcgKzE2OCw3IEBAIFRFU1RfRihFV0sy
VW5pdFRlc3RCYXNlLCBld2tfY29va2llX21hbmFnZXJfY2hhbmdlc193YXRjaCkKICAgICBBU1NF
UlRfVFJVRShjb29raWVNYW5hZ2VyKTsKIAogICAgIGV3a19jb29raWVfbWFuYWdlcl9hY2NlcHRf
cG9saWN5X3NldChjb29raWVNYW5hZ2VyLCBFV0tfQ09PS0lFX0FDQ0VQVF9QT0xJQ1lfQUxXQVlT
KTsKLSAgICBBU1NFUlRfRVEoZ2V0QWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIpLCBFV0tfQ09P
S0lFX0FDQ0VQVF9QT0xJQ1lfQUxXQVlTKTsKKyAgICBBU1NFUlRfRVEoRVdLX0NPT0tJRV9BQ0NF
UFRfUE9MSUNZX0FMV0FZUywgZ2V0QWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIpKTsKIAogICAg
IC8vIFdhdGNoIGZvciBjaGFuZ2VzCiAgICAgYm9vbCBjb29raWVzQ2hhbmdlZCA9IGZhbHNlOwpA
QCAtMTkxLDcgKzE5MSw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfY29va2llX21h
bmFnZXJfY2hhbmdlc193YXRjaCkKICAgICBld2tfY29va2llX21hbmFnZXJfY2hhbmdlc193YXRj
aChjb29raWVNYW5hZ2VyLCAwLCAwKTsKICAgICBjb29raWVzQ2hhbmdlZCA9IGZhbHNlOwogICAg
IGxvYWRVcmxTeW5jKGh0dHBTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0
YSgpKTsKLSAgICBBU1NFUlRfRVEoY291bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5h
Z2VyKSwgMik7CisgICAgQVNTRVJUX0VRKDIsIGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMoY29v
a2llTWFuYWdlcikpOwogICAgIEFTU0VSVF9GQUxTRShjb29raWVzQ2hhbmdlZCk7CiAKICAgICAv
LyBXYXRjaCBhZ2FpbiBmb3Igbm90aWZpY2F0aW9ucwpAQCAtMjA1LDE0ICsyMDUsMTQgQEAgVEVT
VF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19jb29raWVfbWFuYWdlcl9jaGFuZ2VzX3dhdGNoKQog
CiAgICAgZXdrX2Nvb2tpZV9tYW5hZ2VyX3BlcnNpc3RlbnRfc3RvcmFnZV9zZXQoY29va2llTWFu
YWdlciwgdGV4dFN0b3JhZ2UxLCBFV0tfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhUKTsK
ICAgICBsb2FkVXJsU3luYyhodHRwU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvaW5kZXguaHRtbCIp
LmRhdGEoKSk7Ci0gICAgQVNTRVJUX0VRKGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMoY29va2ll
TWFuYWdlciksIDIpOworICAgIEFTU0VSVF9FUSgyLCBjb3VudEhvc3RuYW1lc1dpdGhDb29raWVz
KGNvb2tpZU1hbmFnZXIpKTsKIAogICAgIGNvb2tpZXNDaGFuZ2VkID0gZmFsc2U7CiAgICAgZXdr
X2Nvb2tpZV9tYW5hZ2VyX3BlcnNpc3RlbnRfc3RvcmFnZV9zZXQoY29va2llTWFuYWdlciwgdGV4
dFN0b3JhZ2UyLCBFV0tfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhUKTsKLSAgICBBU1NF
UlRfRVEoY291bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSwgMCk7CisgICAg
QVNTRVJUX0VRKDIsIGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMoY29va2llTWFuYWdlcikpOwog
CiAgICAgZXdrX2Nvb2tpZV9tYW5hZ2VyX3BlcnNpc3RlbnRfc3RvcmFnZV9zZXQoY29va2llTWFu
YWdlciwgdGV4dFN0b3JhZ2UxLCBFV0tfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhUKTsK
LSAgICBBU1NFUlRfRVEoY291bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSwg
Mik7CisgICAgQVNTRVJUX0VRKDIsIGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMoY29va2llTWFu
YWdlcikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKGNvb2tpZXNDaGFuZ2VkKTsKIApAQCAtMjMxLDMx
ICsyMzEsMzEgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19jb29raWVfbWFuYWdlcl9j
b29raWVzX2RlbGV0ZSkKICAgICBBU1NFUlRfVFJVRShjb29raWVNYW5hZ2VyKTsKIAogICAgIGV3
a19jb29raWVfbWFuYWdlcl9hY2NlcHRfcG9saWN5X3NldChjb29raWVNYW5hZ2VyLCBFV0tfQ09P
S0lFX0FDQ0VQVF9QT0xJQ1lfQUxXQVlTKTsKLSAgICBBU1NFUlRfRVEoZ2V0QWNjZXB0UG9saWN5
KGNvb2tpZU1hbmFnZXIpLCBFV0tfQ09PS0lFX0FDQ0VQVF9QT0xJQ1lfQUxXQVlTKTsKKyAgICBB
U1NFUlRfRVEoRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX0FMV0FZUywgZ2V0QWNjZXB0UG9saWN5
KGNvb2tpZU1hbmFnZXIpKTsKIAogICAgIGxvYWRVcmxTeW5jKGh0dHBTZXJ2ZXItPmdldFVSSUZv
clBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKICAgICBFaW5hX0xpc3QqIGhvc3RuYW1lcyA9
IGdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNvb2tpZU1hbmFnZXIpOwotICAgIEFTU0VSVF9FUShl
aW5hX2xpc3RfY291bnQoaG9zdG5hbWVzKSwgMik7CisgICAgQVNTRVJUX0VRKDIsIGVpbmFfbGlz
dF9jb3VudChob3N0bmFtZXMpKTsKICAgICBmcmVlSG9zdE5hbWVzKGhvc3RuYW1lcyk7CiAKICAg
ICAvLyBEZWxldGUgZmlyc3QgcGFydHkgY29va2llCiAgICAgZXdrX2Nvb2tpZV9tYW5hZ2VyX2hv
c3RuYW1lX2Nvb2tpZXNfY2xlYXIoY29va2llTWFuYWdlciwgRklSU1RfUEFSVFlfRE9NQUlOKTsK
ICAgICBob3N0bmFtZXMgPSBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKTsK
LSAgICBBU1NFUlRfRVEoZWluYV9saXN0X2NvdW50KGhvc3RuYW1lcyksIDEpOwotICAgIEFTU0VS
VF9TVFJFUShzdGF0aWNfY2FzdDxjaGFyKj4oZWluYV9saXN0X250aChob3N0bmFtZXMsIDApKSwg
VEhJUkRfUEFSVFlfRE9NQUlOKTsKKyAgICBBU1NFUlRfRVEoMSwgZWluYV9saXN0X2NvdW50KGhv
c3RuYW1lcykpOworICAgIEFTU0VSVF9TVFJFUShUSElSRF9QQVJUWV9ET01BSU4sIHN0YXRpY19j
YXN0PGNoYXIqPihlaW5hX2xpc3RfbnRoKGhvc3RuYW1lcywgMCkpKTsKICAgICBmcmVlSG9zdE5h
bWVzKGhvc3RuYW1lcyk7CiAKICAgICAvLyBEZWxldGUgdGhpcmQgcGFydHkgY29va2llCiAgICAg
ZXdrX2Nvb2tpZV9tYW5hZ2VyX2hvc3RuYW1lX2Nvb2tpZXNfY2xlYXIoY29va2llTWFuYWdlciwg
VEhJUkRfUEFSVFlfRE9NQUlOKTsKLSAgICBBU1NFUlRfRVEoY291bnRIb3N0bmFtZXNXaXRoQ29v
a2llcyhjb29raWVNYW5hZ2VyKSwgMCk7CisgICAgQVNTRVJUX0VRKDAsIGNvdW50SG9zdG5hbWVz
V2l0aENvb2tpZXMoY29va2llTWFuYWdlcikpOwogCiAgICAgLy8gR2V0IGFsbCBjb29raWVzIGFn
YWluCiAgICAgbG9hZFVybFN5bmMoaHR0cFNlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL2luZGV4Lmh0
bWwiKS5kYXRhKCkpOwotICAgIEFTU0VSVF9FUShjb3VudEhvc3RuYW1lc1dpdGhDb29raWVzKGNv
b2tpZU1hbmFnZXIpLCAyKTsKKyAgICBBU1NFUlRfRVEoMiwgY291bnRIb3N0bmFtZXNXaXRoQ29v
a2llcyhjb29raWVNYW5hZ2VyKSk7CiAKICAgICAvLyBDbGVhciBhbGwgY29va2llcwogICAgIGV3
a19jb29raWVfbWFuYWdlcl9jb29raWVzX2NsZWFyKGNvb2tpZU1hbmFnZXIpOwotICAgIEFTU0VS
VF9FUShjb3VudEhvc3RuYW1lc1dpdGhDb29raWVzKGNvb2tpZU1hbmFnZXIpLCAwKTsKKyAgICBB
U1NFUlRfRVEoMCwgY291bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSk7CiB9
CiAKIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBESVNBQkxFRF9ld2tfY29va2llX21hbmFnZXJf
cGVybWFuZW50X3N0b3JhZ2UpCkBAIC0yNzMsMzMgKzI3MywzMyBAQCBURVNUX0YoRVdLMlVuaXRU
ZXN0QmFzZSwgRElTQUJMRURfZXdrX2Nvb2tpZV9tYW5hZ2VyX3Blcm1hbmVudF9zdG9yYWdlKQog
ICAgIEFTU0VSVF9UUlVFKGNvb2tpZU1hbmFnZXIpOwogCiAgICAgZXdrX2Nvb2tpZV9tYW5hZ2Vy
X2FjY2VwdF9wb2xpY3lfc2V0KGNvb2tpZU1hbmFnZXIsIEVXS19DT09LSUVfQUNDRVBUX1BPTElD
WV9BTFdBWVMpOwotICAgIEFTU0VSVF9FUShnZXRBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciks
IEVXS19DT09LSUVfQUNDRVBUX1BPTElDWV9BTFdBWVMpOworICAgIEFTU0VSVF9FUShFV0tfQ09P
S0lFX0FDQ0VQVF9QT0xJQ1lfQUxXQVlTLCBnZXRBY2NlcHRQb2xpY3koY29va2llTWFuYWdlcikp
OwogCiAgICAgLy8gVGV4dCBzdG9yYWdlIHVzaW5nIGEgbmV3IGZpbGUuCiAgICAgZXdrX2Nvb2tp
ZV9tYW5hZ2VyX3BlcnNpc3RlbnRfc3RvcmFnZV9zZXQoY29va2llTWFuYWdlciwgdGV4dFN0b3Jh
Z2UsIEVXS19DT09LSUVfUEVSU0lTVEVOVF9TVE9SQUdFX1RFWFQpOwotICAgIEFTU0VSVF9FUShj
b3VudEhvc3RuYW1lc1dpdGhDb29raWVzKGNvb2tpZU1hbmFnZXIpLCAwKTsKKyAgICBBU1NFUlRf
RVEoMCwgY291bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSk7CiAKICAgICBs
b2FkVXJsU3luYyhodHRwU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEo
KSk7Ci0gICAgQVNTRVJUX0VRKGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMoY29va2llTWFuYWdl
ciksIDIpOworICAgIEFTU0VSVF9FUSgyLCBjb3VudEhvc3RuYW1lc1dpdGhDb29raWVzKGNvb2tp
ZU1hbmFnZXIpKTsKIAogICAgIC8vIFNRTGl0ZSBzdG9yYWdlIHVzaW5nIGEgbmV3IGZpbGUuCiAg
ICAgZXdrX2Nvb2tpZV9tYW5hZ2VyX3BlcnNpc3RlbnRfc3RvcmFnZV9zZXQoY29va2llTWFuYWdl
ciwgc3FsaXRlU3RvcmFnZSwgRVdLX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfU1FMSVRFKTsK
LSAgICBBU1NFUlRfRVEoY291bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSwg
MCk7CisgICAgQVNTRVJUX0VRKDAsIGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMoY29va2llTWFu
YWdlcikpOwogCiAgICAgbG9hZFVybFN5bmMoaHR0cFNlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL2lu
ZGV4Lmh0bWwiKS5kYXRhKCkpOwotICAgIEFTU0VSVF9FUShjb3VudEhvc3RuYW1lc1dpdGhDb29r
aWVzKGNvb2tpZU1hbmFnZXIpLCAyKTsKKyAgICBBU1NFUlRfRVEoMiwgY291bnRIb3N0bmFtZXNX
aXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSk7CiAKICAgICAvLyBUZXh0IHN0b3JhZ2UgdXNpbmcg
YW4gZXhpc3RpbmcgZmlsZS4KICAgICBld2tfY29va2llX21hbmFnZXJfcGVyc2lzdGVudF9zdG9y
YWdlX3NldChjb29raWVNYW5hZ2VyLCB0ZXh0U3RvcmFnZSwgRVdLX0NPT0tJRV9QRVJTSVNURU5U
X1NUT1JBR0VfVEVYVCk7Ci0gICAgQVNTRVJUX0VRKGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMo
Y29va2llTWFuYWdlciksIDIpOworICAgIEFTU0VSVF9FUSgyLCBjb3VudEhvc3RuYW1lc1dpdGhD
b29raWVzKGNvb2tpZU1hbmFnZXIpKTsKICAgICBld2tfY29va2llX21hbmFnZXJfY29va2llc19j
bGVhcihjb29raWVNYW5hZ2VyKTsKLSAgICBBU1NFUlRfRVEoY291bnRIb3N0bmFtZXNXaXRoQ29v
a2llcyhjb29raWVNYW5hZ2VyKSwgMCk7CisgICAgQVNTRVJUX0VRKDAsIGNvdW50SG9zdG5hbWVz
V2l0aENvb2tpZXMoY29va2llTWFuYWdlcikpOwogCiAgICAgLy8gU1FMaXRlIHN0b3JhZ2Ugd2l0
aCBhbiBleGlzdGluZyBmaWxlLgogICAgIGV3a19jb29raWVfbWFuYWdlcl9wZXJzaXN0ZW50X3N0
b3JhZ2Vfc2V0KGNvb2tpZU1hbmFnZXIsIHNxbGl0ZVN0b3JhZ2UsIEVXS19DT09LSUVfUEVSU0lT
VEVOVF9TVE9SQUdFX1NRTElURSk7Ci0gICAgQVNTRVJUX0VRKGNvdW50SG9zdG5hbWVzV2l0aENv
b2tpZXMoY29va2llTWFuYWdlciksIDIpOworICAgIEFTU0VSVF9FUSgyLCBjb3VudEhvc3RuYW1l
c1dpdGhDb29raWVzKGNvb2tpZU1hbmFnZXIpKTsKICAgICBld2tfY29va2llX21hbmFnZXJfY29v
a2llc19jbGVhcihjb29raWVNYW5hZ2VyKTsKLSAgICBBU1NFUlRfRVEoY291bnRIb3N0bmFtZXNX
aXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSwgMCk7CisgICAgQVNTRVJUX0VRKDAsIGNvdW50SG9z
dG5hbWVzV2l0aENvb2tpZXMoY29va2llTWFuYWdlcikpOwogCiAgICAgLy8gRmluYWwgY2xlYW4g
dXAuCiAgICAgdW5saW5rKHRleHRTdG9yYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9kb3dubG9hZF9qb2IuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Rvd25sb2FkX2pv
Yi5jcHAKaW5kZXggMjJjOTdhYWQ4OWM0MTBjYmFjN2EyYzc3ZDc2Yjc4ODNmODhkMGQ1NC4uNDMz
ZThkMTM3NTdmYTYwZTUwNjk2Y2EyOTU4YWQ3Y2RjOWQ1Y2FhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Rvd25sb2FkX2pvYi5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2sy
X2Rvd25sb2FkX2pvYi5jcHAKQEAgLTEwMiwyMyArMTAyLDIzIEBAIHN0YXRpYyB2b2lkIG9uX2Rv
d25sb2FkX3JlcXVlc3RlZCh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZv
aWQqIGV2CiB7CiAgICAgRG93bmxvYWRUZXN0RGF0YSogdGVzdERhdGEgPSBzdGF0aWNfY2FzdDxE
b3dubG9hZFRlc3REYXRhKj4odXNlckRhdGEpOwogICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25s
b2FkID0gc3RhdGljX2Nhc3Q8RXdrX0Rvd25sb2FkX0pvYio+KGV2ZW50SW5mbyk7Ci0gICAgQVNT
RVJUX0VRKGV3a19kb3dubG9hZF9qb2Jfc3RhdGVfZ2V0KGRvd25sb2FkKSwgRVdLX0RPV05MT0FE
X0pPQl9TVEFURV9OT1RfU1RBUlRFRCk7Ci0gICAgQVNTRVJUX0VRKGV3a19kb3dubG9hZF9qb2Jf
ZXN0aW1hdGVkX3Byb2dyZXNzX2dldChkb3dubG9hZCksIDApOwotICAgIEFTU0VSVF9FUShld2tf
ZG93bmxvYWRfam9iX2VsYXBzZWRfdGltZV9nZXQoZG93bmxvYWQpLCAwKTsKKyAgICBBU1NFUlRf
RVEoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9OT1RfU1RBUlRFRCwgZXdrX2Rvd25sb2FkX2pvYl9z
dGF0ZV9nZXQoZG93bmxvYWQpKTsKKyAgICBBU1NFUlRfRVEoMCwgZXdrX2Rvd25sb2FkX2pvYl9l
c3RpbWF0ZWRfcHJvZ3Jlc3NfZ2V0KGRvd25sb2FkKSk7CisgICAgQVNTRVJUX0VRKDAsIGV3a19k
b3dubG9hZF9qb2JfZWxhcHNlZF90aW1lX2dldChkb3dubG9hZCkpOwogCiAgICAgRXdrX1VybF9S
ZXF1ZXN0KiByZXF1ZXN0ID0gZXdrX2Rvd25sb2FkX2pvYl9yZXF1ZXN0X2dldChkb3dubG9hZCk7
CiAgICAgQVNTRVJUX1RSVUUocmVxdWVzdCk7Ci0gICAgRVhQRUNUX1NUUkVRKGV3a191cmxfcmVx
dWVzdF91cmxfZ2V0KHJlcXVlc3QpLCB0ZXN0RGF0YS0+ZmlsZVVybCk7CisgICAgRVhQRUNUX1NU
UkVRKHRlc3REYXRhLT5maWxlVXJsLCBld2tfdXJsX3JlcXVlc3RfdXJsX2dldChyZXF1ZXN0KSk7
CiAKICAgICBFd2tfVXJsX1Jlc3BvbnNlKiByZXNwb25zZSA9IGV3a19kb3dubG9hZF9qb2JfcmVz
cG9uc2VfZ2V0KGRvd25sb2FkKTsKICAgICBBU1NFUlRfVFJVRShyZXNwb25zZSk7Ci0gICAgRVhQ
RUNUX1NUUkVRKGV3a191cmxfcmVzcG9uc2VfbWltZV90eXBlX2dldChyZXNwb25zZSksICJhcHBs
aWNhdGlvbi9wZGYiKTsKKyAgICBFWFBFQ1RfU1RSRVEoImFwcGxpY2F0aW9uL3BkZiIsIGV3a191
cmxfcmVzcG9uc2VfbWltZV90eXBlX2dldChyZXNwb25zZSkpOwogCi0gICAgRVhQRUNUX1NUUkVR
KGV3a19kb3dubG9hZF9qb2Jfc3VnZ2VzdGVkX2ZpbGVuYW1lX2dldChkb3dubG9hZCksIHNlcnZl
clN1Z2dlc3RlZEZpbGVuYW1lKTsKKyAgICBFWFBFQ1RfU1RSRVEoc2VydmVyU3VnZ2VzdGVkRmls
ZW5hbWUsIGV3a19kb3dubG9hZF9qb2Jfc3VnZ2VzdGVkX2ZpbGVuYW1lX2dldChkb3dubG9hZCkp
OwogCiAgICAgQVNTRVJUX0ZBTFNFKGZpbGVFeGlzdHModGVzdERhdGEtPmRlc3RpbmF0aW9uUGF0
aCkpOwogICAgIGV3a19kb3dubG9hZF9qb2JfZGVzdGluYXRpb25fc2V0KGRvd25sb2FkLCB0ZXN0
RGF0YS0+ZGVzdGluYXRpb25QYXRoKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX2Rvd25sb2FkX2pv
Yl9kZXN0aW5hdGlvbl9nZXQoZG93bmxvYWQpLCB0ZXN0RGF0YS0+ZGVzdGluYXRpb25QYXRoKTsK
KyAgICBFWFBFQ1RfU1RSRVEodGVzdERhdGEtPmRlc3RpbmF0aW9uUGF0aCwgZXdrX2Rvd25sb2Fk
X2pvYl9kZXN0aW5hdGlvbl9nZXQoZG93bmxvYWQpKTsKIH0KIAogc3RhdGljIHZvaWQgb25fZG93
bmxvYWRfY2FuY2VsbGVkKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9p
ZCogZXZlbnRJbmZvKQpAQCAtMTQxLDggKzE0MSw4IEBAIHN0YXRpYyB2b2lkIG9uX2Rvd25sb2Fk
X2ZpbmlzaGVkKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZl
CiAgICAgRG93bmxvYWRUZXN0RGF0YSogdGVzdERhdGEgPSBzdGF0aWNfY2FzdDxEb3dubG9hZFRl
c3REYXRhKj4odXNlckRhdGEpOwogICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gc3Rh
dGljX2Nhc3Q8RXdrX0Rvd25sb2FkX0pvYio+KGV2ZW50SW5mbyk7CiAKLSAgICBBU1NFUlRfRVEo
ZXdrX2Rvd25sb2FkX2pvYl9lc3RpbWF0ZWRfcHJvZ3Jlc3NfZ2V0KGRvd25sb2FkKSwgMSk7Ci0g
ICAgQVNTRVJUX0VRKGV3a19kb3dubG9hZF9qb2Jfc3RhdGVfZ2V0KGRvd25sb2FkKSwgRVdLX0RP
V05MT0FEX0pPQl9TVEFURV9GSU5JU0hFRCk7CisgICAgQVNTRVJUX0VRKDEsIGV3a19kb3dubG9h
ZF9qb2JfZXN0aW1hdGVkX3Byb2dyZXNzX2dldChkb3dubG9hZCkpOworICAgIEFTU0VSVF9FUShF
V0tfRE9XTkxPQURfSk9CX1NUQVRFX0ZJTklTSEVELCBld2tfZG93bmxvYWRfam9iX3N0YXRlX2dl
dChkb3dubG9hZCkpOwogICAgIEFTU0VSVF9HVChld2tfZG93bmxvYWRfam9iX2VsYXBzZWRfdGlt
ZV9nZXQoZG93bmxvYWQpLCAwKTsKIAogICAgIEFTU0VSVF9UUlVFKGZpbGVFeGlzdHModGVzdERh
dGEtPmRlc3RpbmF0aW9uUGF0aCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2ludGVudHMuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2ludGVudHMuY3BwCmluZGV4IGJlOGIw
ZmZhOGNhM2RhMzA1MzliNzg4OTQzNWI2NjVlZTgwNmZlMmQuLmYyMTcxZmFhMGNiYTljMmY4ZDky
YzYwNmJlZGRhZjQyOWEzYjY2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9pbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfaW50ZW50cy5jcHAKQEAgLTQzLDEx
ICs0MywxMSBAQCBzdGF0aWMgdm9pZCBvbkludGVudFNlcnZpY2VSZWdpc3RyYXRpb24odm9pZCog
dXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbgogCiAgICAgRXdrX0ludGVudF9TZXJ2
aWNlKiBzZXJ2aWNlID0gc3RhdGljX2Nhc3Q8RXdrX0ludGVudF9TZXJ2aWNlKj4oZXZlbnRJbmZv
KTsKICAgICBBU1NFUlRfVFJVRShzZXJ2aWNlKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX2ludGVu
dF9zZXJ2aWNlX2FjdGlvbl9nZXQoc2VydmljZSksICJhY3Rpb24iKTsKLSAgICBFWFBFQ1RfU1RS
RVEoZXdrX2ludGVudF9zZXJ2aWNlX3R5cGVfZ2V0KHNlcnZpY2UpLCAidHlwZSIpOwotICAgIEVY
UEVDVF9TVFJFUShld2tfaW50ZW50X3NlcnZpY2VfdGl0bGVfZ2V0KHNlcnZpY2UpLCAiVGl0bGUi
KTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX2ludGVudF9zZXJ2aWNlX2hyZWZfZ2V0KHNlcnZpY2Up
LCAiaHR0cDovL2V4YW1wbGUuY29tL3NlcnZpY2UiKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX2lu
dGVudF9zZXJ2aWNlX2Rpc3Bvc2l0aW9uX2dldChzZXJ2aWNlKSwgImlubGluZSIpOworICAgIEVY
UEVDVF9TVFJFUSgiYWN0aW9uIiwgZXdrX2ludGVudF9zZXJ2aWNlX2FjdGlvbl9nZXQoc2Vydmlj
ZSkpOworICAgIEVYUEVDVF9TVFJFUSgidHlwZSIsIGV3a19pbnRlbnRfc2VydmljZV90eXBlX2dl
dChzZXJ2aWNlKSk7CisgICAgRVhQRUNUX1NUUkVRKCJUaXRsZSIsIGV3a19pbnRlbnRfc2Vydmlj
ZV90aXRsZV9nZXQoc2VydmljZSkpOworICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL2V4YW1wbGUu
Y29tL3NlcnZpY2UiLCBld2tfaW50ZW50X3NlcnZpY2VfaHJlZl9nZXQoc2VydmljZSkpOworICAg
IEVYUEVDVF9TVFJFUSgiaW5saW5lIiwgZXdrX2ludGVudF9zZXJ2aWNlX2Rpc3Bvc2l0aW9uX2dl
dChzZXJ2aWNlKSk7CiB9CiAKIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfaW50ZW50X3Nl
cnZpY2VfcmVnaXN0cmF0aW9uKQpAQCAtNzYsMjIgKzc2LDIyIEBAIHN0YXRpYyB2b2lkIG9uSW50
ZW50UmVjZWl2ZWQodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZv
KQogCiAgICAgaWYgKCppbnRlbnRSZWNlaXZlZENvdW50ID09IDEpIHsKICAgICAgICAgLy8gRmly
c3QgaW50ZW50LgotICAgICAgICBFWFBFQ1RfU1RSRVEoZXdrX2ludGVudF9hY3Rpb25fZ2V0KGlu
dGVudCksICJhY3Rpb24xIik7Ci0gICAgICAgIEVYUEVDVF9TVFJFUShld2tfaW50ZW50X3R5cGVf
Z2V0KGludGVudCksICJtaW1lL3R5cGUxIik7Ci0gICAgICAgIEVYUEVDVF9TVFJFUShld2tfaW50
ZW50X3NlcnZpY2VfZ2V0KGludGVudCksICJodHRwOi8vc2VydmljZTEuY29tLyIpOwotICAgICAg
ICBFWFBFQ1RfU1RSRVEoZXdrX2ludGVudF9leHRyYV9nZXQoaW50ZW50LCAia2V5MSIpLCAidmFs
dWUxIik7Ci0gICAgICAgIEVYUEVDVF9TVFJFUShld2tfaW50ZW50X2V4dHJhX2dldChpbnRlbnQs
ICJrZXkyIiksICJ2YWx1ZTIiKTsKKyAgICAgICAgRVhQRUNUX1NUUkVRKCJhY3Rpb24xIiwgZXdr
X2ludGVudF9hY3Rpb25fZ2V0KGludGVudCkpOworICAgICAgICBFWFBFQ1RfU1RSRVEoIm1pbWUv
dHlwZTEiLCBld2tfaW50ZW50X3R5cGVfZ2V0KGludGVudCkpOworICAgICAgICBFWFBFQ1RfU1RS
RVEoImh0dHA6Ly9zZXJ2aWNlMS5jb20vIiwgZXdrX2ludGVudF9zZXJ2aWNlX2dldChpbnRlbnQp
KTsKKyAgICAgICAgRVhQRUNUX1NUUkVRKCJ2YWx1ZTEiLCBld2tfaW50ZW50X2V4dHJhX2dldChp
bnRlbnQsICJrZXkxIikpOworICAgICAgICBFWFBFQ1RfU1RSRVEoInZhbHVlMiIsIGV3a19pbnRl
bnRfZXh0cmFfZ2V0KGludGVudCwgImtleTIiKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8g
U2Vjb25kIGludGVudC4KLSAgICAgICAgRVhQRUNUX1NUUkVRKGV3a19pbnRlbnRfYWN0aW9uX2dl
dChpbnRlbnQpLCAiYWN0aW9uMiIpOwotICAgICAgICBFWFBFQ1RfU1RSRVEoZXdrX2ludGVudF90
eXBlX2dldChpbnRlbnQpLCAibWltZS90eXBlMiIpOworICAgICAgICBFWFBFQ1RfU1RSRVEoImFj
dGlvbjIiLCBld2tfaW50ZW50X2FjdGlvbl9nZXQoaW50ZW50KSk7CisgICAgICAgIEVYUEVDVF9T
VFJFUSgibWltZS90eXBlMiIsIGV3a19pbnRlbnRfdHlwZV9nZXQoaW50ZW50KSk7CiAgICAgICAg
IEVpbmFfTGlzdCogc3VnZ2VzdGlvbnMgPSBld2tfaW50ZW50X3N1Z2dlc3Rpb25zX2dldChpbnRl
bnQpOwogICAgICAgICBBU1NFUlRfVFJVRShzdWdnZXN0aW9ucyk7Ci0gICAgICAgIEFTU0VSVF9F
UShlaW5hX2xpc3RfY291bnQoc3VnZ2VzdGlvbnMpLCAyKTsKKyAgICAgICAgQVNTRVJUX0VRKDIs
IGVpbmFfbGlzdF9jb3VudChzdWdnZXN0aW9ucykpOwogICAgICAgICAvLyBXZSBuZWVkIHRvIHNv
cnQgdGhlIHN1Z2dlc3Rpb25zIHNpbmNlIEludGVudCBpcyB1c2luZyBhIEhhc2hTZXQgaW50ZXJu
YWxseS4KICAgICAgICAgc3VnZ2VzdGlvbnMgPSBlaW5hX2xpc3Rfc29ydChzdWdnZXN0aW9ucywg
Miwgc3RyaW5nU29ydENiKTsKLSAgICAgICAgRVhQRUNUX1NUUkVRKHN0YXRpY19jYXN0PGNvbnN0
IGNoYXIqPihlaW5hX2xpc3RfbnRoKHN1Z2dlc3Rpb25zLCAwKSksICJodHRwOi8vc2VydmljZTEu
Y29tLyIpOwotICAgICAgICBFWFBFQ1RfU1RSRVEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGVp
bmFfbGlzdF9udGgoc3VnZ2VzdGlvbnMsIDEpKSwgImh0dHA6Ly9zZXJ2aWNlMi5jb20vIik7Cisg
ICAgICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NlcnZpY2UxLmNvbS8iLCBzdGF0aWNfY2FzdDxj
b25zdCBjaGFyKj4oZWluYV9saXN0X250aChzdWdnZXN0aW9ucywgMCkpKTsKKyAgICAgICAgRVhQ
RUNUX1NUUkVRKCJodHRwOi8vc2VydmljZTIuY29tLyIsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIq
PihlaW5hX2xpc3RfbnRoKHN1Z2dlc3Rpb25zLCAxKSkpOwogCiAgICAgICAgIHZvaWQqIGxpc3RE
YXRhID0gMDsKICAgICAgICAgRUlOQV9MSVNUX0ZSRUUoc3VnZ2VzdGlvbnMsIGxpc3REYXRhKQpA
QCAtMTA5LDEyICsxMDksMTIgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19pbnRlbnRf
cmVxdWVzdCkKICAgICBtb3VzZUNsaWNrKDUsIDUpOwogICAgIHdoaWxlIChpbnRlbnRSZWNlaXZl
ZENvdW50ICE9IDEpCiAgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7Ci0gICAgQVNT
RVJUX0VRKGludGVudFJlY2VpdmVkQ291bnQsIDEpOworICAgIEFTU0VSVF9FUSgxLCBpbnRlbnRS
ZWNlaXZlZENvdW50KTsKIAogICAgIC8vIEdlbmVyYXRlIGEgc2Vjb25kIGludGVudCByZXF1ZXN0
LgogICAgIG1vdXNlQ2xpY2soNSwgNSk7CiAgICAgd2hpbGUgKGludGVudFJlY2VpdmVkQ291bnQg
IT0gMikKICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKLSAgICBBU1NFUlRfRVEo
aW50ZW50UmVjZWl2ZWRDb3VudCwgMik7CisgICAgQVNTRVJUX0VRKDIsIGludGVudFJlY2VpdmVk
Q291bnQpOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbCh3ZWJWaWV3KCksICJp
bnRlbnQscmVxdWVzdCxuZXciLCBvbkludGVudFJlY2VpdmVkKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9yZWZwdHJfZXZh
c19vYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX3JlZnB0cl9ldmFzX29iamVjdC5jcHAKaW5kZXggZmI2ZTU3MjY5ZDUzN2YxZDYwYTlj
YzJlNjg2NjViNWE1ZWI4Nzg3MC4uOTM5ZDIwYzZkNTM2ZjNkNDAwYzlmZjcwOTllNTcxZTQ0YWZl
OWU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
dGVzdF9ld2syX3JlZnB0cl9ldmFzX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3JlZnB0cl9ldmFzX29iamVjdC5jcHAKQEAg
LTY1LDE0ICs2NSwxNCBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgcmVmZmluZykKICAgICBS
ZWZQdHI8RXZhc19PYmplY3Q+IG9iamVjdCA9IGFkb3B0UmVmKGV2YXNfb2JqZWN0X2JveF9hZGQo
Y2FudmFzKCkpKTsKICAgICBBU1NFUlRfVFJVRShvYmplY3QpOwogICAgIC8vIEV2YXNfT2JqZWMg
ZXh0ZXJuYWwgcmVmIGNvdW50IGlzIG5vdCBhcyB5b3Ugd291bGQgZXhwZWN0LgotICAgIEFTU0VS
VF9FUShldmFzX29iamVjdF9yZWZfZ2V0KG9iamVjdC5nZXQoKSksIDApOworICAgIEFTU0VSVF9F
USgwLCBldmFzX29iamVjdF9yZWZfZ2V0KG9iamVjdC5nZXQoKSkpOwogCiAgICAgewogICAgICAg
ICBSZWZQdHI8RXZhc19PYmplY3Q+IGFSZWYgPSBvYmplY3Q7CiAgICAgICAgIEFTU0VSVF9UUlVF
KG9iamVjdCk7CiAgICAgICAgIEFTU0VSVF9UUlVFKGFSZWYpOwotICAgICAgICBBU1NFUlRfRVEo
ZXZhc19vYmplY3RfcmVmX2dldChvYmplY3QuZ2V0KCkpLCAxKTsKLSAgICAgICAgQVNTRVJUX0VR
KGV2YXNfb2JqZWN0X3JlZl9nZXQoYVJlZi5nZXQoKSksIDEpOworICAgICAgICBBU1NFUlRfRVEo
MSwgZXZhc19vYmplY3RfcmVmX2dldChvYmplY3QuZ2V0KCkpKTsKKyAgICAgICAgQVNTRVJUX0VR
KDEsIGV2YXNfb2JqZWN0X3JlZl9nZXQoYVJlZi5nZXQoKSkpOwogCiAgICAgICAgIHsKICAgICAg
ICAgICAgIFJlZlB0cjxFdmFzX09iamVjdD4gYlJlZiA9IG9iamVjdDsKQEAgLTgxLDUxICs4MSw1
MSBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgcmVmZmluZykKICAgICAgICAgICAgIEFTU0VS
VF9UUlVFKGFSZWYpOwogICAgICAgICAgICAgQVNTRVJUX1RSVUUoYlJlZik7CiAKLSAgICAgICAg
ICAgIEFTU0VSVF9FUShldmFzX29iamVjdF9yZWZfZ2V0KG9iamVjdC5nZXQoKSksIDIpOwotICAg
ICAgICAgICAgQVNTRVJUX0VRKGV2YXNfb2JqZWN0X3JlZl9nZXQoYVJlZi5nZXQoKSksIDIpOwor
ICAgICAgICAgICAgQVNTRVJUX0VRKDIsIGV2YXNfb2JqZWN0X3JlZl9nZXQob2JqZWN0LmdldCgp
KSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoMiwgZXZhc19vYmplY3RfcmVmX2dldChhUmVmLmdl
dCgpKSk7CiAKICAgICAgICAgICAgIFJlZlB0cjxFdmFzX09iamVjdD4gY1JlZiA9IGJSZWY7CiAg
ICAgICAgICAgICBBU1NFUlRfVFJVRShjUmVmKTsKIAotICAgICAgICAgICAgQVNTRVJUX0VRKGV2
YXNfb2JqZWN0X3JlZl9nZXQob2JqZWN0LmdldCgpKSwgMyk7Ci0gICAgICAgICAgICBBU1NFUlRf
RVEoZXZhc19vYmplY3RfcmVmX2dldChhUmVmLmdldCgpKSwgMyk7Ci0gICAgICAgICAgICBBU1NF
UlRfRVEoZXZhc19vYmplY3RfcmVmX2dldChiUmVmLmdldCgpKSwgMyk7Ci0gICAgICAgICAgICBB
U1NFUlRfRVEoZXZhc19vYmplY3RfcmVmX2dldChjUmVmLmdldCgpKSwgMyk7CisgICAgICAgICAg
ICBBU1NFUlRfRVEoMywgZXZhc19vYmplY3RfcmVmX2dldChvYmplY3QuZ2V0KCkpKTsKKyAgICAg
ICAgICAgIEFTU0VSVF9FUSgzLCBldmFzX29iamVjdF9yZWZfZ2V0KGFSZWYuZ2V0KCkpKTsKKyAg
ICAgICAgICAgIEFTU0VSVF9FUSgzLCBldmFzX29iamVjdF9yZWZfZ2V0KGJSZWYuZ2V0KCkpKTsK
KyAgICAgICAgICAgIEFTU0VSVF9FUSgzLCBldmFzX29iamVjdF9yZWZfZ2V0KGNSZWYuZ2V0KCkp
KTsKIAogICAgICAgICAgICAgYlJlZi5jbGVhcigpOwotICAgICAgICAgICAgQVNTRVJUX0VRKGV2
YXNfb2JqZWN0X3JlZl9nZXQob2JqZWN0LmdldCgpKSwgMik7Ci0gICAgICAgICAgICBBU1NFUlRf
RVEoZXZhc19vYmplY3RfcmVmX2dldChhUmVmLmdldCgpKSwgMik7Ci0gICAgICAgICAgICBBU1NF
UlRfRVEoZXZhc19vYmplY3RfcmVmX2dldChjUmVmLmdldCgpKSwgMik7CisgICAgICAgICAgICBB
U1NFUlRfRVEoMiwgZXZhc19vYmplY3RfcmVmX2dldChvYmplY3QuZ2V0KCkpKTsKKyAgICAgICAg
ICAgIEFTU0VSVF9FUSgyLCBldmFzX29iamVjdF9yZWZfZ2V0KGFSZWYuZ2V0KCkpKTsKKyAgICAg
ICAgICAgIEFTU0VSVF9FUSgyLCBldmFzX29iamVjdF9yZWZfZ2V0KGNSZWYuZ2V0KCkpKTsKICAg
ICAgICAgfQotICAgICAgICBBU1NFUlRfRVEoZXZhc19vYmplY3RfcmVmX2dldChvYmplY3QuZ2V0
KCkpLCAxKTsKLSAgICAgICAgQVNTRVJUX0VRKGV2YXNfb2JqZWN0X3JlZl9nZXQoYVJlZi5nZXQo
KSksIDEpOworICAgICAgICBBU1NFUlRfRVEoMSwgZXZhc19vYmplY3RfcmVmX2dldChvYmplY3Qu
Z2V0KCkpKTsKKyAgICAgICAgQVNTRVJUX0VRKDEsIGV2YXNfb2JqZWN0X3JlZl9nZXQoYVJlZi5n
ZXQoKSkpOwogICAgIH0KLSAgICBBU1NFUlRfRVEoZXZhc19vYmplY3RfcmVmX2dldChvYmplY3Qu
Z2V0KCkpLCAwKTsKKyAgICBBU1NFUlRfRVEoMCwgZXZhc19vYmplY3RfcmVmX2dldChvYmplY3Qu
Z2V0KCkpKTsKIH0KIAogVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGRlc3RydWN0aW9uKQogewog
ICAgIFJlZlB0cjxFdmFzX09iamVjdD4gb2JqZWN0ID0gYWRvcHRSZWYoZXZhc19vYmplY3RfYm94
X2FkZChjYW52YXMoKSkpOwogICAgIEFTU0VSVF9UUlVFKG9iamVjdCk7Ci0gICAgQVNTRVJUX0VR
KGV2YXNfb2JqZWN0X3JlZl9nZXQob2JqZWN0LmdldCgpKSwgMCk7CisgICAgQVNTRVJUX0VRKDAs
IGV2YXNfb2JqZWN0X3JlZl9nZXQob2JqZWN0LmdldCgpKSk7CiAKICAgICBSZWZQdHI8RXZhc19P
YmplY3Q+IGFSZWYgPSBvYmplY3Q7CiAgICAgQVNTRVJUX1RSVUUob2JqZWN0KTsKICAgICBBU1NF
UlRfVFJVRShhUmVmKTsKLSAgICBBU1NFUlRfRVEoZXZhc19vYmplY3RfcmVmX2dldChvYmplY3Qu
Z2V0KCkpLCAxKTsKLSAgICBBU1NFUlRfRVEoZXZhc19vYmplY3RfcmVmX2dldChhUmVmLmdldCgp
KSwgMSk7CisgICAgQVNTRVJUX0VRKDEsIGV2YXNfb2JqZWN0X3JlZl9nZXQob2JqZWN0LmdldCgp
KSk7CisgICAgQVNTRVJUX0VRKDEsIGV2YXNfb2JqZWN0X3JlZl9nZXQoYVJlZi5nZXQoKSkpOwog
CiAgICAgb2JqZWN0ID0gbnVsbHB0cjsKLSAgICBBU1NFUlRfRVEoZXZhc19vYmplY3RfcmVmX2dl
dChvYmplY3QuZ2V0KCkpLCAwKTsKLSAgICBBU1NFUlRfRVEoZXZhc19vYmplY3RfcmVmX2dldChh
UmVmLmdldCgpKSwgMCk7CisgICAgQVNTRVJUX0VRKDAsIGV2YXNfb2JqZWN0X3JlZl9nZXQob2Jq
ZWN0LmdldCgpKSk7CisgICAgQVNTRVJUX0VRKDAsIGV2YXNfb2JqZWN0X3JlZl9nZXQoYVJlZi5n
ZXQoKSkpOwogCiAgICAgb2JqZWN0ID0gYVJlZjsKLSAgICBBU1NFUlRfRVEoZXZhc19vYmplY3Rf
cmVmX2dldChvYmplY3QuZ2V0KCkpLCAxKTsKLSAgICBBU1NFUlRfRVEoZXZhc19vYmplY3RfcmVm
X2dldChhUmVmLmdldCgpKSwgMSk7CisgICAgQVNTRVJUX0VRKDEsIGV2YXNfb2JqZWN0X3JlZl9n
ZXQob2JqZWN0LmdldCgpKSk7CisgICAgQVNTRVJUX0VRKDEsIGV2YXNfb2JqZWN0X3JlZl9nZXQo
YVJlZi5nZXQoKSkpOwogCiAgICAgb2JqZWN0ID0gMDsKLSAgICBBU1NFUlRfRVEoZXZhc19vYmpl
Y3RfcmVmX2dldChvYmplY3QuZ2V0KCkpLCAwKTsKLSAgICBBU1NFUlRfRVEoZXZhc19vYmplY3Rf
cmVmX2dldChhUmVmLmdldCgpKSwgMCk7CisgICAgQVNTRVJUX0VRKDAsIGV2YXNfb2JqZWN0X3Jl
Zl9nZXQob2JqZWN0LmdldCgpKSk7CisgICAgQVNTRVJUX0VRKDAsIGV2YXNfb2JqZWN0X3JlZl9n
ZXQoYVJlZi5nZXQoKSkpOwogCiAgICAgYVJlZi5jbGVhcigpOwogICAgIEFTU0VSVF9GQUxTRShh
UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3Rz
L3Rlc3RfZXdrMl92aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL3Rlc3RfZXdrMl92aWV3LmNwcAppbmRleCA5M2UwYjQ5NDg4OTVkNTc2N2NjNzk1YjFhNmZh
M2M4MTcxMjg2YWUxLi4zZjY3ZDVlYTI4ZDFjZjcxNWFkYzQwNGU2ZmFmZWEwNTJjZjRmNTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3
azJfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
dGVzdF9ld2syX3ZpZXcuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyB2b2lkIG9uTG9hZEZp
bmlzaGVkRm9yUmVkaXJlY3Rpb24odm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCop
CiBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfdXJpX2dldCkKIHsKICAgICBsb2Fk
VXJsU3luYyhlbnZpcm9ubWVudC0+ZGVmYXVsdFRlc3RQYWdlVXJsKCkpOwotICAgIEVYUEVDVF9T
VFJFUShld2tfdmlld191cmlfZ2V0KHdlYlZpZXcoKSksIGVudmlyb25tZW50LT5kZWZhdWx0VGVz
dFBhZ2VVcmwoKSk7CisgICAgRVhQRUNUX1NUUkVRKGVudmlyb25tZW50LT5kZWZhdWx0VGVzdFBh
Z2VVcmwoKSwgZXdrX3ZpZXdfdXJpX2dldCh3ZWJWaWV3KCkpKTsKIAogICAgIGludCBjb3VudExv
YWRGaW5pc2hlZCA9IDI7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZp
ZXcoKSwgImxvYWQsZmluaXNoZWQiLCBvbkxvYWRGaW5pc2hlZEZvclJlZGlyZWN0aW9uLCAmY291
bnRMb2FkRmluaXNoZWQpOwpAQCAtNTUsNyArNTUsNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFz
ZSwgZXdrX3ZpZXdfdXJpX2dldCkKICAgICB3aGlsZSAoY291bnRMb2FkRmluaXNoZWQpCiAgICAg
ICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfZGVsKHdlYlZpZXcoKSwgImxvYWQsZmluaXNoZWQiLCBvbkxvYWRGaW5pc2hlZEZvclJl
ZGlyZWN0aW9uKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX3ZpZXdfdXJpX2dldCh3ZWJWaWV3KCkp
LCBlbnZpcm9ubWVudC0+ZGVmYXVsdFRlc3RQYWdlVXJsKCkpOworICAgIEVYUEVDVF9TVFJFUShl
bnZpcm9ubWVudC0+ZGVmYXVsdFRlc3RQYWdlVXJsKCksIGV3a192aWV3X3VyaV9nZXQod2ViVmll
dygpKSk7CiB9CiAKIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19kZXZpY2VfcGl4
ZWxfcmF0aW8pCkBAIC02MywyMyArNjMsMjMgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3
a192aWV3X2RldmljZV9waXhlbF9yYXRpbykKICAgICBsb2FkVXJsU3luYyhlbnZpcm9ubWVudC0+
ZGVmYXVsdFRlc3RQYWdlVXJsKCkpOwogCiAgICAgLy8gRGVmYXVsdCBwaXhlbCByYXRpbyBpcyAx
LjAKLSAgICBBU1NFUlRfRkxPQVRfRVEoZXdrX3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldCh3
ZWJWaWV3KCkpLCAxKTsKKyAgICBBU1NFUlRfRkxPQVRfRVEoMSwgZXdrX3ZpZXdfZGV2aWNlX3Bp
eGVsX3JhdGlvX2dldCh3ZWJWaWV3KCkpKTsKIAogICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2Rl
dmljZV9waXhlbF9yYXRpb19zZXQod2ViVmlldygpLCAxLjIpKTsKLSAgICBBU1NFUlRfRkxPQVRf
RVEoZXdrX3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldCh3ZWJWaWV3KCkpLCAxLjIpOworICAg
IEFTU0VSVF9GTE9BVF9FUSgxLjIsIGV3a192aWV3X2RldmljZV9waXhlbF9yYXRpb19nZXQod2Vi
VmlldygpKSk7CiAKICAgICBBU1NFUlRfVFJVRShld2tfdmlld19kZXZpY2VfcGl4ZWxfcmF0aW9f
c2V0KHdlYlZpZXcoKSwgMSkpOwotICAgIEFTU0VSVF9GTE9BVF9FUShld2tfdmlld19kZXZpY2Vf
cGl4ZWxfcmF0aW9fZ2V0KHdlYlZpZXcoKSksIDEpOworICAgIEFTU0VSVF9GTE9BVF9FUSgxLCBl
d2tfdmlld19kZXZpY2VfcGl4ZWxfcmF0aW9fZ2V0KHdlYlZpZXcoKSkpOwogfQogCiBURVNUX0Yo
RVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfaHRtbF9zdHJpbmdfbG9hZCkKIHsKICAgICBld2tf
dmlld19odG1sX3N0cmluZ19sb2FkKHdlYlZpZXcoKSwgIjxodG1sPjxoZWFkPjx0aXRsZT5Gb288
L3RpdGxlPjwvaGVhZD48Ym9keT5CYXI8L2JvZHk+PC9odG1sPiIsIDAsIDApOwogICAgIEFTU0VS
VF9UUlVFKHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCJGb28iKSk7Ci0gICAgQVNTRVJUX1NUUkVR
KGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpLCAiRm9vIik7CisgICAgQVNTRVJUX1NUUkVR
KCJGb28iLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAgICAgZXdrX3ZpZXdfaHRt
bF9zdHJpbmdfbG9hZCh3ZWJWaWV3KCksICI8aHRtbD48aGVhZD48dGl0bGU+QmFyPC90aXRsZT48
L2hlYWQ+PGJvZHk+Rm9vPC9ib2R5PjwvaHRtbD4iLCAwLCAwKTsKICAgICBBU1NFUlRfVFJVRSh3
YWl0VW50aWxUaXRsZUNoYW5nZWRUbygiQmFyIikpOwotICAgIEFTU0VSVF9TVFJFUShld2tfdmll
d190aXRsZV9nZXQod2ViVmlldygpKSwgIkJhciIpOworICAgIEFTU0VSVF9TVFJFUSgiQmFyIiwg
ZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSkpOwogfQogCiBzdGF0aWMgdm9pZCBzZXJ2ZXJD
YWxsYmFja05hdmlnYXRpb24oU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVzc2FnZSogbWVzc2Fn
ZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hUYWJsZSosIFNvdXBDbGllbnRDb250ZXh0KiwgZ3Bv
aW50ZXIpCkBAIC0xMDcsMjcgKzEwNywyNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdr
X3ZpZXdfbmF2aWdhdGlvbikKIAogICAgIC8vIFZpc2l0IFBhZ2UxCiAgICAgbG9hZFVybFN5bmMo
aHR0cFNlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL1BhZ2UxIikuZGF0YSgpKTsKLSAgICBBU1NFUlRf
U1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSksICJQYWdlMSIpOworICAgIEFTU0VS
VF9TVFJFUSgiUGFnZTEiLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAgICAgQVNT
RVJUX0ZBTFNFKGV3a192aWV3X2JhY2tfcG9zc2libGUod2ViVmlldygpKSk7CiAgICAgQVNTRVJU
X0ZBTFNFKGV3a192aWV3X2ZvcndhcmRfcG9zc2libGUod2ViVmlldygpKSk7CiAKICAgICAvLyBW
aXNpdCBQYWdlMgogICAgIGxvYWRVcmxTeW5jKGh0dHBTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9Q
YWdlMiIpLmRhdGEoKSk7Ci0gICAgQVNTRVJUX1NUUkVRKGV3a192aWV3X3RpdGxlX2dldCh3ZWJW
aWV3KCkpLCAiUGFnZTIiKTsKKyAgICBBU1NFUlRfU1RSRVEoIlBhZ2UyIiwgZXdrX3ZpZXdfdGl0
bGVfZ2V0KHdlYlZpZXcoKSkpOwogICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2JhY2tfcG9zc2li
bGUod2ViVmlldygpKSk7CiAgICAgQVNTRVJUX0ZBTFNFKGV3a192aWV3X2ZvcndhcmRfcG9zc2li
bGUod2ViVmlldygpKSk7CiAKICAgICAvLyBHbyBiYWNrIHRvIFBhZ2UxCiAgICAgZXdrX3ZpZXdf
YmFjayh3ZWJWaWV3KCkpOwogICAgIEFTU0VSVF9UUlVFKHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRv
KCJQYWdlMSIpKTsKLSAgICBBU1NFUlRfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXco
KSksICJQYWdlMSIpOworICAgIEFTU0VSVF9TVFJFUSgiUGFnZTEiLCBld2tfdmlld190aXRsZV9n
ZXQod2ViVmlldygpKSk7CiAgICAgQVNTRVJUX0ZBTFNFKGV3a192aWV3X2JhY2tfcG9zc2libGUo
d2ViVmlldygpKSk7CiAgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfZm9yd2FyZF9wb3NzaWJsZSh3
ZWJWaWV3KCkpKTsKIAogICAgIC8vIEdvIGZvcndhcmQgdG8gUGFnZTIKICAgICBld2tfdmlld19m
b3J3YXJkKHdlYlZpZXcoKSk7CiAgICAgQVNTRVJUX1RSVUUod2FpdFVudGlsVGl0bGVDaGFuZ2Vk
VG8oIlBhZ2UyIikpOwotICAgIEFTU0VSVF9TVFJFUShld2tfdmlld190aXRsZV9nZXQod2ViVmll
dygpKSwgIlBhZ2UyIik7CisgICAgQVNTRVJUX1NUUkVRKCJQYWdlMiIsIGV3a192aWV3X3RpdGxl
X2dldCh3ZWJWaWV3KCkpKTsKICAgICBBU1NFUlRfVFJVRShld2tfdmlld19iYWNrX3Bvc3NpYmxl
KHdlYlZpZXcoKSkpOwogICAgIEFTU0VSVF9GQUxTRShld2tfdmlld19mb3J3YXJkX3Bvc3NpYmxl
KHdlYlZpZXcoKSkpOwogfQpAQCAtMTM2LDcgKzEzNiw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RC
YXNlLCBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbSkKIHsKICAgICBBU1NFUlRfRkFM
U0UoZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGluZ19jdXN0b21fZ2V0KHdlYlZpZXcoKSkpOwogICAg
IEFTU0VSVF9UUlVFKGV3a192aWV3X3NldHRpbmdfZW5jb2RpbmdfY3VzdG9tX3NldCh3ZWJWaWV3
KCksICJVVEYtOCIpKTsKLSAgICBBU1NFUlRfU1RSRVEoZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGlu
Z19jdXN0b21fZ2V0KHdlYlZpZXcoKSksICJVVEYtOCIpOworICAgIEFTU0VSVF9TVFJFUSgiVVRG
LTgiLCBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9nZXQod2ViVmlldygpKSk7CiAg
ICAgLy8gU2V0IHRoZSBkZWZhdWx0IGNoYXJzZXQuCiAgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdf
c2V0dGluZ19lbmNvZGluZ19jdXN0b21fc2V0KHdlYlZpZXcoKSwgMCkpOwogICAgIEFTU0VSVF9G
QUxTRShld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9nZXQod2ViVmlldygpKSk7CkBA
IC0xNTEsMTkgKzE1MSwxOSBAQCBzdGF0aWMgdm9pZCBvbkZvcm1BYm91dFRvQmVTdWJtaXR0ZWQo
dm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbgogCiAgICAgRWluYV9M
aXN0KiBmaWVsZE5hbWVzID0gZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X2ZpZWxkX25hbWVz
X2dldChyZXF1ZXN0KTsKICAgICBBU1NFUlRfVFJVRShmaWVsZE5hbWVzKTsKLSAgICBBU1NFUlRf
RVEoZWluYV9saXN0X2NvdW50KGZpZWxkTmFtZXMpLCAzKTsKKyAgICBBU1NFUlRfRVEoMywgZWlu
YV9saXN0X2NvdW50KGZpZWxkTmFtZXMpKTsKICAgICB2b2lkKiBkYXRhOwogICAgIEVJTkFfTElT
VF9GUkVFKGZpZWxkTmFtZXMsIGRhdGEpCiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHN0
YXRpY19jYXN0PGNoYXIqPihkYXRhKSk7CiAKICAgICBjb25zdCBjaGFyKiB2YWx1ZTEgPSBld2tf
Zm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfZmllbGRfdmFsdWVfZ2V0KHJlcXVlc3QsICJ0ZXh0MSIp
OwotICAgIEFTU0VSVF9TVFJFUSh2YWx1ZTEsICJ2YWx1ZTEiKTsKKyAgICBBU1NFUlRfU1RSRVEo
InZhbHVlMSIsIHZhbHVlMSk7CiAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwodmFsdWUxKTsKICAg
ICBjb25zdCBjaGFyKiB2YWx1ZTIgPSBld2tfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfZmllbGRf
dmFsdWVfZ2V0KHJlcXVlc3QsICJ0ZXh0MiIpOwotICAgIEFTU0VSVF9TVFJFUSh2YWx1ZTIsICJ2
YWx1ZTIiKTsKKyAgICBBU1NFUlRfU1RSRVEoInZhbHVlMiIsIHZhbHVlMik7CiAgICAgZWluYV9z
dHJpbmdzaGFyZV9kZWwodmFsdWUyKTsKICAgICBjb25zdCBjaGFyKiBwYXNzd29yZCA9IGV3a19m
b3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9maWVsZF92YWx1ZV9nZXQocmVxdWVzdCwgInBhc3N3b3Jk
Iik7Ci0gICAgQVNTRVJUX1NUUkVRKHBhc3N3b3JkLCAic2VjcmV0Iik7CisgICAgQVNTRVJUX1NU
UkVRKCJzZWNyZXQiLCBwYXNzd29yZCk7CiAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwocGFzc3dv
cmQpOwogCiAgICAgKmhhbmRsZWQgPSB0cnVlOwpAQCAtMTk1LDkgKzE5NSw5IEBAIFRFU1RfRihF
V0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdCkKIAogc3Rh
dGljIGlubGluZSB2b2lkIGNoZWNrQmFzaWNQb3B1cE1lbnVJdGVtKEV3a19Qb3B1cF9NZW51X0l0
ZW0qIGl0ZW0sIGNvbnN0IGNoYXIqIHRpdGxlLCBib29sIGVuYWJsZWQpCiB7Ci0gICAgRVhQRUNU
X0VRKGV3a19wb3B1cF9tZW51X2l0ZW1fdHlwZV9nZXQoaXRlbSksIEVXS19QT1BVUF9NRU5VX0lU
RU0pOwotICAgIEVYUEVDVF9TVFJFUShld2tfcG9wdXBfbWVudV9pdGVtX3RleHRfZ2V0KGl0ZW0p
LCB0aXRsZSk7Ci0gICAgRVhQRUNUX0VRKGV3a19wb3B1cF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQo
aXRlbSksIGVuYWJsZWQpOworICAgIEVYUEVDVF9FUShFV0tfUE9QVVBfTUVOVV9JVEVNLCBld2tf
cG9wdXBfbWVudV9pdGVtX3R5cGVfZ2V0KGl0ZW0pKTsKKyAgICBFWFBFQ1RfU1RSRVEodGl0bGUs
IGV3a19wb3B1cF9tZW51X2l0ZW1fdGV4dF9nZXQoaXRlbSkpOworICAgIEVYUEVDVF9FUShlbmFi
bGVkLCBld2tfcG9wdXBfbWVudV9pdGVtX2VuYWJsZWRfZ2V0KGl0ZW0pKTsKIH0KIAogc3RhdGlj
IEVpbmFfQm9vbCBzZWxlY3RJdGVtQWZ0ZXJEZWxheWVkKHZvaWQqIGRhdGEpCkBAIC0yMDgsMjUg
KzIwOCwyNSBAQCBzdGF0aWMgRWluYV9Cb29sIHNlbGVjdEl0ZW1BZnRlckRlbGF5ZWQodm9pZCog
ZGF0YSkKIAogc3RhdGljIEVpbmFfQm9vbCBzaG93UG9wdXBNZW51KEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSwgRWluYV9SZWN0YW5nbGUsIEV3a19UZXh0X0RpcmVjdGlvbiwgZG91Ymxl
LCBFaW5hX0xpc3QqIGxpc3QsIGludCBzZWxlY3RlZEluZGV4KQogewotICAgIEVYUEVDVF9FUShz
ZWxlY3RlZEluZGV4LCAyKTsKKyAgICBFWFBFQ1RfRVEoMiwgc2VsZWN0ZWRJbmRleCk7CiAKICAg
ICBFd2tfUG9wdXBfTWVudV9JdGVtKiBpdGVtID0gc3RhdGljX2Nhc3Q8RXdrX1BvcHVwX01lbnVf
SXRlbSo+KGVpbmFfbGlzdF9udGgobGlzdCwgMCkpOwogICAgIGNoZWNrQmFzaWNQb3B1cE1lbnVJ
dGVtKGl0ZW0sICJmaXJzdCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShld2tfcG9wdXBfbWVudV9p
dGVtX3RleHRfZGlyZWN0aW9uX2dldChpdGVtKSwgRVdLX1RFWFRfRElSRUNUSU9OX0xFRlRfVE9f
UklHSFQpOwotICAgIEVYUEVDVF9TVFJFUShld2tfcG9wdXBfbWVudV9pdGVtX3Rvb2x0aXBfZ2V0
KGl0ZW0pLCAiIik7Ci0gICAgRVhQRUNUX1NUUkVRKGV3a19wb3B1cF9tZW51X2l0ZW1fYWNjZXNz
aWJpbGl0eV90ZXh0X2dldChpdGVtKSwgIiIpOworICAgIEVYUEVDVF9FUShFV0tfVEVYVF9ESVJF
Q1RJT05fTEVGVF9UT19SSUdIVCwgZXdrX3BvcHVwX21lbnVfaXRlbV90ZXh0X2RpcmVjdGlvbl9n
ZXQoaXRlbSkpOworICAgIEVYUEVDVF9TVFJFUSgiIiwgZXdrX3BvcHVwX21lbnVfaXRlbV90b29s
dGlwX2dldChpdGVtKSk7CisgICAgRVhQRUNUX1NUUkVRKCIiLCBld2tfcG9wdXBfbWVudV9pdGVt
X2FjY2Vzc2liaWxpdHlfdGV4dF9nZXQoaXRlbSkpOwogICAgIEVYUEVDVF9GQUxTRShld2tfcG9w
dXBfbWVudV9pdGVtX2lzX2xhYmVsX2dldChpdGVtKSk7CiAgICAgRVhQRUNUX0ZBTFNFKGV3a19w
b3B1cF9tZW51X2l0ZW1fc2VsZWN0ZWRfZ2V0KGl0ZW0pKTsKIAogICAgIGl0ZW0gPSBzdGF0aWNf
Y2FzdDxFd2tfUG9wdXBfTWVudV9JdGVtKj4oZWluYV9saXN0X250aChsaXN0LCAxKSk7CiAgICAg
Y2hlY2tCYXNpY1BvcHVwTWVudUl0ZW0oaXRlbSwgInNlY29uZCIsIGZhbHNlKTsKLSAgICBFWFBF
Q1RfRVEoZXdrX3BvcHVwX21lbnVfaXRlbV9lbmFibGVkX2dldChpdGVtKSwgZmFsc2UpOworICAg
IEVYUEVDVF9FUShmYWxzZSwgZXdrX3BvcHVwX21lbnVfaXRlbV9lbmFibGVkX2dldChpdGVtKSk7
CiAKICAgICBpdGVtID0gc3RhdGljX2Nhc3Q8RXdrX1BvcHVwX01lbnVfSXRlbSo+KGVpbmFfbGlz
dF9udGgobGlzdCwgMikpOwogICAgIGNoZWNrQmFzaWNQb3B1cE1lbnVJdGVtKGl0ZW0sICJ0aGly
ZCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShld2tfcG9wdXBfbWVudV9pdGVtX3RleHRfZGlyZWN0
aW9uX2dldChpdGVtKSwgRVdLX1RFWFRfRElSRUNUSU9OX1JJR0hUX1RPX0xFRlQpOwotICAgIEVY
UEVDVF9TVFJFUShld2tfcG9wdXBfbWVudV9pdGVtX3Rvb2x0aXBfZ2V0KGl0ZW0pLCAidG9vbHRp
cCIpOwotICAgIEVYUEVDVF9TVFJFUShld2tfcG9wdXBfbWVudV9pdGVtX2FjY2Vzc2liaWxpdHlf
dGV4dF9nZXQoaXRlbSksICJhcmlhIik7CisgICAgRVhQRUNUX0VRKEVXS19URVhUX0RJUkVDVElP
Tl9SSUdIVF9UT19MRUZULCBld2tfcG9wdXBfbWVudV9pdGVtX3RleHRfZGlyZWN0aW9uX2dldChp
dGVtKSk7CisgICAgRVhQRUNUX1NUUkVRKCJ0b29sdGlwIiwgZXdrX3BvcHVwX21lbnVfaXRlbV90
b29sdGlwX2dldChpdGVtKSk7CisgICAgRVhQRUNUX1NUUkVRKCJhcmlhIiwgZXdrX3BvcHVwX21l
bnVfaXRlbV9hY2Nlc3NpYmlsaXR5X3RleHRfZ2V0KGl0ZW0pKTsKICAgICBFWFBFQ1RfVFJVRShl
d2tfcG9wdXBfbWVudV9pdGVtX3NlbGVjdGVkX2dldChpdGVtKSk7CiAKICAgICBpdGVtID0gc3Rh
dGljX2Nhc3Q8RXdrX1BvcHVwX01lbnVfSXRlbSo+KGVpbmFfbGlzdF9udGgobGlzdCwgMykpOwpA
QCAtMjM3LDggKzIzNyw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgc2hvd1BvcHVwTWVudShFd2tfVmll
d19TbWFydF9EYXRhKiBzbWFydERhdGEsIEVpbmFfUmVjdGFuZ2xlLCBFCiAgICAgY2hlY2tCYXNp
Y1BvcHVwTWVudUl0ZW0oaXRlbSwgIiAgICBmb3J0aCIsIHRydWUpOwogCiAgICAgaXRlbSA9IHN0
YXRpY19jYXN0PEV3a19Qb3B1cF9NZW51X0l0ZW0qPihlaW5hX2xpc3RfbnRoKGxpc3QsIDUpKTsK
LSAgICBFWFBFQ1RfRVEoZXdrX3BvcHVwX21lbnVfaXRlbV90eXBlX2dldChpdGVtKSwgRVdLX1BP
UFVQX01FTlVfVU5LTk9XTik7Ci0gICAgRVhQRUNUX1NUUkVRKGV3a19wb3B1cF9tZW51X2l0ZW1f
dGV4dF9nZXQoaXRlbSksIDApOworICAgIEVYUEVDVF9FUShFV0tfUE9QVVBfTUVOVV9VTktOT1dO
LCBld2tfcG9wdXBfbWVudV9pdGVtX3R5cGVfZ2V0KGl0ZW0pKTsKKyAgICBFWFBFQ1RfU1RSRVEo
MCwgZXdrX3BvcHVwX21lbnVfaXRlbV90ZXh0X2dldChpdGVtKSk7CiAKICAgICBlY29yZV90aW1l
cl9hZGQoMCwgc2VsZWN0SXRlbUFmdGVyRGVsYXllZCwgc21hcnREYXRhLT5zZWxmKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTM4MSwyMSArMzgxLDIxIEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNl
LCBld2tfdmlld190aXRsZV9jaGFuZ2VkKQogICAgICAgICAiPGJvZHkgb25sb2FkPVwiZG9jdW1l
bnQudGl0bGU9J1RpdGxlIGFmdGVyIGNoYW5nZWQnO1wiPjwvYm9keT4iOwogICAgIGV3a192aWV3
X2h0bWxfc3RyaW5nX2xvYWQod2ViVmlldygpLCB0aXRsZUNoYW5nZWRIVE1MLCAwLCAwKTsKICAg
ICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxUaXRsZUNoYW5nZWRUbygiVGl0bGUgYWZ0ZXIgY2hhbmdl
ZCIpKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSksICJU
aXRsZSBhZnRlciBjaGFuZ2VkIik7CisgICAgRVhQRUNUX1NUUkVRKCJUaXRsZSBhZnRlciBjaGFu
Z2VkIiwgZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSkpOwogCiAgICAgdGl0bGVDaGFuZ2Vk
SFRNTCA9CiAgICAgICAgICI8IWRvY3R5cGUgaHRtbD48aGVhZD48dGl0bGU+VGl0bGUgYmVmb3Jl
IGNoYW5nZWQ8L3RpdGxlPjwvaGVhZD4iCiAgICAgICAgICI8Ym9keSBvbmxvYWQ9XCJkb2N1bWVu
dC50aXRsZT0nJztcIj48L2JvZHk+IjsKICAgICBld2tfdmlld19odG1sX3N0cmluZ19sb2FkKHdl
YlZpZXcoKSwgdGl0bGVDaGFuZ2VkSFRNTCwgMCwgMCk7CiAgICAgRVhQRUNUX1RSVUUod2FpdFVu
dGlsVGl0bGVDaGFuZ2VkVG8oIiIpKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX3ZpZXdfdGl0bGVf
Z2V0KHdlYlZpZXcoKSksICIiKTsKKyAgICBFWFBFQ1RfU1RSRVEoIiIsIGV3a192aWV3X3RpdGxl
X2dldCh3ZWJWaWV3KCkpKTsKIAogICAgIHRpdGxlQ2hhbmdlZEhUTUwgPQogICAgICAgICAiPCFk
b2N0eXBlIGh0bWw+PGhlYWQ+PHRpdGxlPlRpdGxlIGJlZm9yZSBjaGFuZ2VkPC90aXRsZT48L2hl
YWQ+IgogICAgICAgICAiPGJvZHkgb25sb2FkPVwiZG9jdW1lbnQudGl0bGU9bnVsbDtcIj48L2Jv
ZHk+IjsKICAgICBld2tfdmlld19odG1sX3N0cmluZ19sb2FkKHdlYlZpZXcoKSwgdGl0bGVDaGFu
Z2VkSFRNTCwgMCwgMCk7CiAgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsVGl0bGVDaGFuZ2VkVG8o
IiIpKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSksICIi
KTsKKyAgICBFWFBFQ1RfU1RSRVEoIiIsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpKTsK
IH0KIAogc3RhdGljIHN0cnVjdCB7CkBAIC00MzEsMzUgKzQzMSwzNSBAQCBURVNUX0YoRVdLMlVu
aXRUZXN0QmFzZSwgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfYWxlcnQpCiAgICAgYWxlcnRDYWxs
YmFja0RhdGEuY2FsbGVkID0gZmFsc2U7CiAgICAgZXdrX3ZpZXdfaHRtbF9zdHJpbmdfbG9hZCh3
ZWJWaWV3KCksIGFsZXJ0SFRNTCwgMCwgMCk7CiAgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsTG9h
ZEZpbmlzaGVkKCkpOwotICAgIEVYUEVDVF9FUShhbGVydENhbGxiYWNrRGF0YS5jYWxsZWQsIHRy
dWUpOworICAgIEVYUEVDVF9FUSh0cnVlLCBhbGVydENhbGxiYWNrRGF0YS5jYWxsZWQpOwogCiAg
ICAgYWxlcnRIVE1MID0gIjwhZG9jdHlwZSBodG1sPjxib2R5IG9ubG9hZD1cImFsZXJ0KCcnKTtc
Ij48L2JvZHk+IjsKICAgICBhbGVydENhbGxiYWNrRGF0YS5leHBlY3RlZE1lc3NhZ2UgPSAiIjsK
ICAgICBhbGVydENhbGxiYWNrRGF0YS5jYWxsZWQgPSBmYWxzZTsKICAgICBld2tfdmlld19odG1s
X3N0cmluZ19sb2FkKHdlYlZpZXcoKSwgYWxlcnRIVE1MLCAwLCAwKTsKICAgICBFWFBFQ1RfVFJV
RSh3YWl0VW50aWxMb2FkRmluaXNoZWQoKSk7Ci0gICAgRVhQRUNUX0VRKGFsZXJ0Q2FsbGJhY2tE
YXRhLmNhbGxlZCwgdHJ1ZSk7CisgICAgRVhQRUNUX0VRKHRydWUsIGFsZXJ0Q2FsbGJhY2tEYXRh
LmNhbGxlZCk7CiAKICAgICBhbGVydEhUTUwgPSAiPCFkb2N0eXBlIGh0bWw+PGJvZHkgb25sb2Fk
PVwiYWxlcnQobnVsbCk7XCI+PC9ib2R5PiI7CiAgICAgYWxlcnRDYWxsYmFja0RhdGEuZXhwZWN0
ZWRNZXNzYWdlID0gIm51bGwiOwogICAgIGFsZXJ0Q2FsbGJhY2tEYXRhLmNhbGxlZCA9IGZhbHNl
OwogICAgIGV3a192aWV3X2h0bWxfc3RyaW5nX2xvYWQod2ViVmlldygpLCBhbGVydEhUTUwsIDAs
IDApOwogICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbExvYWRGaW5pc2hlZCgpKTsKLSAgICBFWFBF
Q1RfRVEoYWxlcnRDYWxsYmFja0RhdGEuY2FsbGVkLCB0cnVlKTsKKyAgICBFWFBFQ1RfRVEodHJ1
ZSwgYWxlcnRDYWxsYmFja0RhdGEuY2FsbGVkKTsKIAogICAgIGFsZXJ0SFRNTCA9ICI8IWRvY3R5
cGUgaHRtbD48Ym9keSBvbmxvYWQ9XCJhbGVydCgpO1wiPjwvYm9keT4iOwogICAgIGFsZXJ0Q2Fs
bGJhY2tEYXRhLmV4cGVjdGVkTWVzc2FnZSA9ICJ1bmRlZmluZWQiOwogICAgIGFsZXJ0Q2FsbGJh
Y2tEYXRhLmNhbGxlZCA9IGZhbHNlOwogICAgIGV3a192aWV3X2h0bWxfc3RyaW5nX2xvYWQod2Vi
VmlldygpLCBhbGVydEhUTUwsIDAsIDApOwogICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbExvYWRG
aW5pc2hlZCgpKTsKLSAgICBFWFBFQ1RfRVEoYWxlcnRDYWxsYmFja0RhdGEuY2FsbGVkLCB0cnVl
KTsKKyAgICBFWFBFQ1RfRVEodHJ1ZSwgYWxlcnRDYWxsYmFja0RhdGEuY2FsbGVkKTsKIAogICAg
IGV3a1ZpZXdDbGFzcygpLT5ydW5famF2YXNjcmlwdF9hbGVydCA9IDA7CiAKICAgICBhbGVydENh
bGxiYWNrRGF0YS5jYWxsZWQgPSBmYWxzZTsKICAgICBld2tfdmlld19odG1sX3N0cmluZ19sb2Fk
KHdlYlZpZXcoKSwgYWxlcnRIVE1MLCAwLCAwKTsKICAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxM
b2FkRmluaXNoZWQoKSk7Ci0gICAgRVhQRUNUX0VRKGFsZXJ0Q2FsbGJhY2tEYXRhLmNhbGxlZCwg
ZmFsc2UpOworICAgIEVYUEVDVF9FUShmYWxzZSwgYWxlcnRDYWxsYmFja0RhdGEuY2FsbGVkKTsK
IH0KIAogc3RhdGljIEVpbmFfQm9vbCBjaGVja0NvbmZpcm0oRXdrX1ZpZXdfU21hcnRfRGF0YSos
IGNvbnN0IGNoYXIqIG1lc3NhZ2UpCkBAIC00NzksMTYgKzQ3OSwxNiBAQCBURVNUX0YoRVdLMlVu
aXRUZXN0QmFzZSwgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfY29uZmlybSkKICAgICBjb25maXJt
Q2FsbGJhY2tEYXRhLmNhbGxlZCA9IGZhbHNlOwogICAgIGV3a192aWV3X2h0bWxfc3RyaW5nX2xv
YWQod2ViVmlldygpLCBjb25maXJtSFRNTCwgMCwgMCk7CiAgICAgRVhQRUNUX1RSVUUod2FpdFVu
dGlsVGl0bGVDaGFuZ2VkVG8oInRydWUiKSk7Ci0gICAgRVhQRUNUX1NUUkVRKGV3a192aWV3X3Rp
dGxlX2dldCh3ZWJWaWV3KCkpLCAidHJ1ZSIpOwotICAgIEVYUEVDVF9FUShjb25maXJtQ2FsbGJh
Y2tEYXRhLmNhbGxlZCwgdHJ1ZSk7CisgICAgRVhQRUNUX1NUUkVRKCJ0cnVlIiwgZXdrX3ZpZXdf
dGl0bGVfZ2V0KHdlYlZpZXcoKSkpOworICAgIEVYUEVDVF9FUSh0cnVlLCBjb25maXJtQ2FsbGJh
Y2tEYXRhLmNhbGxlZCk7CiAKICAgICBjb25maXJtQ2FsbGJhY2tEYXRhLmV4cGVjdGVkTWVzc2Fn
ZSA9ICJDb25maXJtIG1lc3NhZ2UiOwogICAgIGNvbmZpcm1DYWxsYmFja0RhdGEucmVzdWx0ID0g
ZmFsc2U7CiAgICAgY29uZmlybUNhbGxiYWNrRGF0YS5jYWxsZWQgPSBmYWxzZTsKICAgICBld2tf
dmlld19odG1sX3N0cmluZ19sb2FkKHdlYlZpZXcoKSwgY29uZmlybUhUTUwsIDAsIDApOwogICAg
IEVYUEVDVF9UUlVFKHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCJmYWxzZSIpKTsKLSAgICBFWFBF
Q1RfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSksICJmYWxzZSIpOwotICAgIEVY
UEVDVF9FUShjb25maXJtQ2FsbGJhY2tEYXRhLmNhbGxlZCwgdHJ1ZSk7CisgICAgRVhQRUNUX1NU
UkVRKCJmYWxzZSIsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpKTsKKyAgICBFWFBFQ1Rf
RVEodHJ1ZSwgY29uZmlybUNhbGxiYWNrRGF0YS5jYWxsZWQpOwogCiAgICAgY29uZmlybUhUTUwg
PSAiPCFkb2N0eXBlIGh0bWw+PGJvZHkgb25sb2FkPVwiZG9jdW1lbnQudGl0bGUgPSBjb25maXJt
KCcnKTtcIj48L2JvZHk+IjsKICAgICBjb25maXJtQ2FsbGJhY2tEYXRhLmV4cGVjdGVkTWVzc2Fn
ZSA9ICIiOwpAQCAtNDk2LDggKzQ5Niw4IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tf
dmlld19ydW5famF2YXNjcmlwdF9jb25maXJtKQogICAgIGNvbmZpcm1DYWxsYmFja0RhdGEuY2Fs
bGVkID0gZmFsc2U7CiAgICAgZXdrX3ZpZXdfaHRtbF9zdHJpbmdfbG9hZCh3ZWJWaWV3KCksIGNv
bmZpcm1IVE1MLCAwLCAwKTsKICAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxUaXRsZUNoYW5nZWRU
bygidHJ1ZSIpKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXco
KSksICJ0cnVlIik7Ci0gICAgRVhQRUNUX0VRKGNvbmZpcm1DYWxsYmFja0RhdGEuY2FsbGVkLCB0
cnVlKTsKKyAgICBFWFBFQ1RfU1RSRVEoInRydWUiLCBld2tfdmlld190aXRsZV9nZXQod2ViVmll
dygpKSk7CisgICAgRVhQRUNUX0VRKHRydWUsIGNvbmZpcm1DYWxsYmFja0RhdGEuY2FsbGVkKTsK
IAogICAgIGNvbmZpcm1IVE1MID0gIjwhZG9jdHlwZSBodG1sPjxib2R5IG9ubG9hZD1cImRvY3Vt
ZW50LnRpdGxlID0gY29uZmlybShudWxsKTtcIj48L2JvZHk+IjsKICAgICBjb25maXJtQ2FsbGJh
Y2tEYXRhLmV4cGVjdGVkTWVzc2FnZSA9ICJudWxsIjsKQEAgLTUwNSw4ICs1MDUsOCBAQCBURVNU
X0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfY29uZmlybSkKICAg
ICBjb25maXJtQ2FsbGJhY2tEYXRhLmNhbGxlZCA9IGZhbHNlOwogICAgIGV3a192aWV3X2h0bWxf
c3RyaW5nX2xvYWQod2ViVmlldygpLCBjb25maXJtSFRNTCwgMCwgMCk7CiAgICAgRVhQRUNUX1RS
VUUod2FpdFVudGlsVGl0bGVDaGFuZ2VkVG8oInRydWUiKSk7Ci0gICAgRVhQRUNUX1NUUkVRKGV3
a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpLCAidHJ1ZSIpOwotICAgIEVYUEVDVF9FUShjb25m
aXJtQ2FsbGJhY2tEYXRhLmNhbGxlZCwgdHJ1ZSk7CisgICAgRVhQRUNUX1NUUkVRKCJ0cnVlIiwg
ZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSkpOworICAgIEVYUEVDVF9FUSh0cnVlLCBjb25m
aXJtQ2FsbGJhY2tEYXRhLmNhbGxlZCk7CiAKICAgICBjb25maXJtSFRNTCA9ICI8IWRvY3R5cGUg
aHRtbD48Ym9keSBvbmxvYWQ9XCJkb2N1bWVudC50aXRsZSA9IGNvbmZpcm0oKTtcIj48L2JvZHk+
IjsKICAgICBjb25maXJtQ2FsbGJhY2tEYXRhLmV4cGVjdGVkTWVzc2FnZSA9ICJ1bmRlZmluZWQi
OwpAQCAtNTE0LDE2ICs1MTQsMTYgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3
X3J1bl9qYXZhc2NyaXB0X2NvbmZpcm0pCiAgICAgY29uZmlybUNhbGxiYWNrRGF0YS5jYWxsZWQg
PSBmYWxzZTsKICAgICBld2tfdmlld19odG1sX3N0cmluZ19sb2FkKHdlYlZpZXcoKSwgY29uZmly
bUhUTUwsIDAsIDApOwogICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCJ0
cnVlIikpOwotICAgIEVYUEVDVF9TVFJFUShld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSwg
InRydWUiKTsKLSAgICBFWFBFQ1RfRVEoY29uZmlybUNhbGxiYWNrRGF0YS5jYWxsZWQsIHRydWUp
OworICAgIEVYUEVDVF9TVFJFUSgidHJ1ZSIsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkp
KTsKKyAgICBFWFBFQ1RfRVEodHJ1ZSwgY29uZmlybUNhbGxiYWNrRGF0YS5jYWxsZWQpOwogCiAg
ICAgZXdrVmlld0NsYXNzKCktPnJ1bl9qYXZhc2NyaXB0X2NvbmZpcm0gPSAwOwogCiAgICAgY29u
ZmlybUNhbGxiYWNrRGF0YS5jYWxsZWQgPSBmYWxzZTsKICAgICBld2tfdmlld19odG1sX3N0cmlu
Z19sb2FkKHdlYlZpZXcoKSwgY29uZmlybUhUTUwsIDAsIDApOwogICAgIEVYUEVDVF9UUlVFKHdh
aXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCJmYWxzZSIpKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX3Zp
ZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSksICJmYWxzZSIpOwotICAgIEVYUEVDVF9FUShjb25maXJt
Q2FsbGJhY2tEYXRhLmNhbGxlZCwgZmFsc2UpOworICAgIEVYUEVDVF9TVFJFUSgiZmFsc2UiLCBl
d2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CisgICAgRVhQRUNUX0VRKGZhbHNlLCBjb25m
aXJtQ2FsbGJhY2tEYXRhLmNhbGxlZCk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBjaGVja1By
b21wdChFd2tfVmlld19TbWFydF9EYXRhKiwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hh
ciogZGVmYXVsdFZhbHVlKQpAQCAtNTUyLDggKzU1Miw4IEBAIFRFU1RfRihFV0syVW5pdFRlc3RC
YXNlLCBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQpCiAgICAgcHJvbXB0Q2FsbGJhY2tE
YXRhLmNhbGxlZCA9IGZhbHNlOwogICAgIGV3a192aWV3X2h0bWxfc3RyaW5nX2xvYWQod2ViVmll
dygpLCBwcm9tcHRIVE1MLCAwLCAwKTsKICAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxUaXRsZUNo
YW5nZWRUbyhwcm9tcHRSZXN1bHQpKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX3ZpZXdfdGl0bGVf
Z2V0KHdlYlZpZXcoKSksIHByb21wdFJlc3VsdCk7Ci0gICAgRVhQRUNUX0VRKHByb21wdENhbGxi
YWNrRGF0YS5jYWxsZWQsIHRydWUpOworICAgIEVYUEVDVF9TVFJFUShwcm9tcHRSZXN1bHQsIGV3
a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpKTsKKyAgICBFWFBFQ1RfRVEodHJ1ZSwgcHJvbXB0
Q2FsbGJhY2tEYXRhLmNhbGxlZCk7CiAKICAgICBwcm9tcHRIVE1MID0gIjwhZG9jdHlwZSBodG1s
Pjxib2R5IG9ubG9hZD1cImRvY3VtZW50LnRpdGxlID0gcHJvbXB0KCdQcm9tcHQgbWVzc2FnZScs
ICcnKTtcIj48L2JvZHk+IjsKICAgICBwcm9tcHRDYWxsYmFja0RhdGEuZXhwZWN0ZWRNZXNzYWdl
ID0gcHJvbXB0TWVzc2FnZTsKQEAgLTU2Miw4ICs1NjIsOCBAQCBURVNUX0YoRVdLMlVuaXRUZXN0
QmFzZSwgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfcHJvbXB0KQogICAgIHByb21wdENhbGxiYWNr
RGF0YS5jYWxsZWQgPSBmYWxzZTsKICAgICBld2tfdmlld19odG1sX3N0cmluZ19sb2FkKHdlYlZp
ZXcoKSwgcHJvbXB0SFRNTCwgMCwgMCk7CiAgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsVGl0bGVD
aGFuZ2VkVG8ocHJvbXB0UmVzdWx0KSk7Ci0gICAgRVhQRUNUX1NUUkVRKGV3a192aWV3X3RpdGxl
X2dldCh3ZWJWaWV3KCkpLCBwcm9tcHRSZXN1bHQpOwotICAgIEVYUEVDVF9FUShwcm9tcHRDYWxs
YmFja0RhdGEuY2FsbGVkLCB0cnVlKTsKKyAgICBFWFBFQ1RfU1RSRVEocHJvbXB0UmVzdWx0LCBl
d2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CisgICAgRVhQRUNUX0VRKHRydWUsIHByb21w
dENhbGxiYWNrRGF0YS5jYWxsZWQpOwogCiAgICAgcHJvbXB0SFRNTCA9ICI8IWRvY3R5cGUgaHRt
bD48Ym9keSBvbmxvYWQ9XCJkb2N1bWVudC50aXRsZSA9IHByb21wdCgnUHJvbXB0IG1lc3NhZ2Un
KTtcIj48L2JvZHk+IjsKICAgICBwcm9tcHRDYWxsYmFja0RhdGEuZXhwZWN0ZWRNZXNzYWdlID0g
cHJvbXB0TWVzc2FnZTsKQEAgLTU3Miw4ICs1NzIsOCBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFz
ZSwgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfcHJvbXB0KQogICAgIHByb21wdENhbGxiYWNrRGF0
YS5jYWxsZWQgPSBmYWxzZTsKICAgICBld2tfdmlld19odG1sX3N0cmluZ19sb2FkKHdlYlZpZXco
KSwgcHJvbXB0SFRNTCwgMCwgMCk7CiAgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsVGl0bGVDaGFu
Z2VkVG8ocHJvbXB0UmVzdWx0KSk7Ci0gICAgRVhQRUNUX1NUUkVRKGV3a192aWV3X3RpdGxlX2dl
dCh3ZWJWaWV3KCkpLCBwcm9tcHRSZXN1bHQpOwotICAgIEVYUEVDVF9FUShwcm9tcHRDYWxsYmFj
a0RhdGEuY2FsbGVkLCB0cnVlKTsKKyAgICBFWFBFQ1RfU1RSRVEocHJvbXB0UmVzdWx0LCBld2tf
dmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CisgICAgRVhQRUNUX0VRKHRydWUsIHByb21wdENh
bGxiYWNrRGF0YS5jYWxsZWQpOwogCiAgICAgcHJvbXB0SFRNTCA9ICI8IWRvY3R5cGUgaHRtbD48
Ym9keSBvbmxvYWQ9XCJkb2N1bWVudC50aXRsZSA9IHByb21wdCgnJyk7XCI+PC9ib2R5PiI7CiAg
ICAgcHJvbXB0Q2FsbGJhY2tEYXRhLmV4cGVjdGVkTWVzc2FnZSA9ICIiOwpAQCAtNTgyLDggKzU4
Miw4IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19ydW5famF2YXNjcmlwdF9w
cm9tcHQpCiAgICAgcHJvbXB0Q2FsbGJhY2tEYXRhLmNhbGxlZCA9IGZhbHNlOwogICAgIGV3a192
aWV3X2h0bWxfc3RyaW5nX2xvYWQod2ViVmlldygpLCBwcm9tcHRIVE1MLCAwLCAwKTsKICAgICBF
WFBFQ1RfVFJVRSh3YWl0VW50aWxUaXRsZUNoYW5nZWRUbyhwcm9tcHRSZXN1bHQpKTsKLSAgICBF
WFBFQ1RfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSksIHByb21wdFJlc3VsdCk7
Ci0gICAgRVhQRUNUX0VRKHByb21wdENhbGxiYWNrRGF0YS5jYWxsZWQsIHRydWUpOworICAgIEVY
UEVDVF9TVFJFUShwcm9tcHRSZXN1bHQsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpKTsK
KyAgICBFWFBFQ1RfRVEodHJ1ZSwgcHJvbXB0Q2FsbGJhY2tEYXRhLmNhbGxlZCk7CiAKICAgICBw
cm9tcHRIVE1MID0gIjwhZG9jdHlwZSBodG1sPjxib2R5IG9ubG9hZD1cImRvY3VtZW50LnRpdGxl
ID0gcHJvbXB0KCk7XCI+PC9ib2R5PiI7CiAgICAgcHJvbXB0Q2FsbGJhY2tEYXRhLmV4cGVjdGVk
TWVzc2FnZSA9ICJ1bmRlZmluZWQiOwpAQCAtNTkyLDggKzU5Miw4IEBAIFRFU1RfRihFV0syVW5p
dFRlc3RCYXNlLCBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQpCiAgICAgcHJvbXB0Q2Fs
bGJhY2tEYXRhLmNhbGxlZCA9IGZhbHNlOwogICAgIGV3a192aWV3X2h0bWxfc3RyaW5nX2xvYWQo
d2ViVmlldygpLCBwcm9tcHRIVE1MLCAwLCAwKTsKICAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxU
aXRsZUNoYW5nZWRUbyhwcm9tcHRSZXN1bHQpKTsKLSAgICBFWFBFQ1RfU1RSRVEoZXdrX3ZpZXdf
dGl0bGVfZ2V0KHdlYlZpZXcoKSksIHByb21wdFJlc3VsdCk7Ci0gICAgRVhQRUNUX0VRKHByb21w
dENhbGxiYWNrRGF0YS5jYWxsZWQsIHRydWUpOworICAgIEVYUEVDVF9TVFJFUShwcm9tcHRSZXN1
bHQsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpKTsKKyAgICBFWFBFQ1RfRVEodHJ1ZSwg
cHJvbXB0Q2FsbGJhY2tEYXRhLmNhbGxlZCk7CiAKICAgICBwcm9tcHRIVE1MID0gIjxodG1sPjxo
ZWFkPjx0aXRsZT5EZWZhdWx0IHRpdGxlPC90aXRsZT48L2hlYWQ+IgogICAgICAgICAgICAgICAg
ICAiPGJvZHkgb25sb2FkPVwidmFyIHByb21wdFJlc3VsdCA9IHByb21wdCgnUHJvbXB0IG1lc3Nh
Z2UnKTsiCkBAIC02MDUsOCArNjA1LDggQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192
aWV3X3J1bl9qYXZhc2NyaXB0X3Byb21wdCkKICAgICBwcm9tcHRDYWxsYmFja0RhdGEuY2FsbGVk
ID0gZmFsc2U7CiAgICAgZXdrX3ZpZXdfaHRtbF9zdHJpbmdfbG9hZCh3ZWJWaWV3KCksIHByb21w
dEhUTUwsIDAsIDApOwogICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCIi
KSk7Ci0gICAgRVhQRUNUX1NUUkVRKGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpLCAiIik7
Ci0gICAgRVhQRUNUX0VRKHByb21wdENhbGxiYWNrRGF0YS5jYWxsZWQsIHRydWUpOworICAgIEVY
UEVDVF9TVFJFUSgiIiwgZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSkpOworICAgIEVYUEVD
VF9FUSh0cnVlLCBwcm9tcHRDYWxsYmFja0RhdGEuY2FsbGVkKTsKIAogICAgIHByb21wdENhbGxi
YWNrRGF0YS5leHBlY3RlZE1lc3NhZ2UgPSBwcm9tcHRNZXNzYWdlOwogICAgIHByb21wdENhbGxi
YWNrRGF0YS5leHBlY3RlZERlZmF1bHRWYWx1ZSA9ICIiOwpAQCAtNjE0LDE2ICs2MTQsMTYgQEAg
VEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X3Byb21wdCkK
ICAgICBwcm9tcHRDYWxsYmFja0RhdGEuY2FsbGVkID0gZmFsc2U7CiAgICAgZXdrX3ZpZXdfaHRt
bF9zdHJpbmdfbG9hZCh3ZWJWaWV3KCksIHByb21wdEhUTUwsIDAsIDApOwogICAgIEVYUEVDVF9U
UlVFKHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCJudWxsIikpOwotICAgIEVYUEVDVF9TVFJFUShl
d2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSwgIm51bGwiKTsKLSAgICBFWFBFQ1RfRVEocHJv
bXB0Q2FsbGJhY2tEYXRhLmNhbGxlZCwgdHJ1ZSk7CisgICAgRVhQRUNUX1NUUkVRKCJudWxsIiwg
ZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSkpOworICAgIEVYUEVDVF9FUSh0cnVlLCBwcm9t
cHRDYWxsYmFja0RhdGEuY2FsbGVkKTsKIAogICAgIGV3a1ZpZXdDbGFzcygpLT5ydW5famF2YXNj
cmlwdF9wcm9tcHQgPSAwOwogCiAgICAgcHJvbXB0Q2FsbGJhY2tEYXRhLmNhbGxlZCA9IGZhbHNl
OwogICAgIGV3a192aWV3X2h0bWxfc3RyaW5nX2xvYWQod2ViVmlldygpLCBwcm9tcHRIVE1MLCAw
LCAwKTsKICAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxUaXRsZUNoYW5nZWRUbygibnVsbCIpKTsK
LSAgICBFWFBFQ1RfU1RSRVEoZXdrX3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSksICJudWxsIik7
Ci0gICAgRVhQRUNUX0VRKHByb21wdENhbGxiYWNrRGF0YS5jYWxsZWQsIGZhbHNlKTsKKyAgICBF
WFBFQ1RfU1RSRVEoIm51bGwiLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CisgICAg
RVhQRUNUX0VRKGZhbHNlLCBwcm9tcHRDYWxsYmFja0RhdGEuY2FsbGVkKTsKIH0KIAogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtNjY1LDE4ICs2NjUsMTggQEAgc3RhdGljIEVpbmFf
Qm9vbCBzaG93Q29sb3JQaWNrZXIoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBpbnQg
ciwgaW50IGcsIGkKIAogICAgIGlmIChpc0ZpcnN0UnVuKSB7CiAgICAgICAgIC8vIDIuIENoZWNr
IGluaXRpYWwgdmFsdWUgZnJvbSBodG1sIGZpbGUuCi0gICAgICAgIEVYUEVDVF9FUShyLCBpbml0
aWFsUmVkKTsKLSAgICAgICAgRVhQRUNUX0VRKGcsIGluaXRpYWxHcmVlbik7Ci0gICAgICAgIEVY
UEVDVF9FUShiLCBpbml0aWFsQmx1ZSk7Ci0gICAgICAgIEVYUEVDVF9FUShhLCBpbml0aWFsQWxw
aGEpOworICAgICAgICBFWFBFQ1RfRVEoaW5pdGlhbFJlZCwgcik7CisgICAgICAgIEVYUEVDVF9F
UShpbml0aWFsR3JlZW4sIGcpOworICAgICAgICBFWFBFQ1RfRVEoaW5pdGlhbEJsdWUsIGIpOwor
ICAgICAgICBFWFBFQ1RfRVEoaW5pdGlhbEFscGhhLCBhKTsKIAogICAgICAgICBpc0ZpcnN0UnVu
ID0gZmFsc2U7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gNy4gSW5wdXQgdmFsdWVzIHNob3Vs
ZCBiZSBzYW1lIGFzIGNoYW5nZWQgY29sb3IuCi0gICAgICAgIEVYUEVDVF9FUShyLCBjaGFuZ2Vk
UmVkKTsKLSAgICAgICAgRVhQRUNUX0VRKGcsIGNoYW5nZWRHcmVlbik7Ci0gICAgICAgIEVYUEVD
VF9FUShiLCBjaGFuZ2VkQmx1ZSk7Ci0gICAgICAgIEVYUEVDVF9FUShhLCBjaGFuZ2VkQWxwaGEp
OworICAgICAgICBFWFBFQ1RfRVEoY2hhbmdlZFJlZCwgcik7CisgICAgICAgIEVYUEVDVF9FUShj
aGFuZ2VkR3JlZW4sIGcpOworICAgICAgICBFWFBFQ1RfRVEoY2hhbmdlZEJsdWUsIGIpOworICAg
ICAgICBFWFBFQ1RfRVEoY2hhbmdlZEFscGhhLCBhKTsKIAogICAgICAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19jYWxsKHNtYXJ0RGF0YS0+c2VsZiwgImlucHV0LHR5cGUsY29sb3IscmVx
dWVzdCIsIDApOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>