<?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>85986</bug_id>
          
          <creation_ts>2012-05-09 05:33:51 -0700</creation_ts>
          <short_desc>Move suspendAnimations to use Internals interface</short_desc>
          <delta_ts>2012-07-17 19:54:30 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>ap</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>roger_fong</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>619416</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-09 05:33:51 -0700</bug_when>
    <thetext>Adjust suspendAnimations() tests to use Internals instead of LayoutTestController interface. It seems to me that suspendAnimations() is able to be supported by Internals. Because, it looks this function is implemented by WebCore layer, not WebKit layer. If this patch is valid, I&apos;m going to submit a patch for resumeAnimations() as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619420</commentid>
    <comment_count>1</comment_count>
      <attachid>140927</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-09 05:43:44 -0700</bug_when>
    <thetext>Created attachment 140927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619429</commentid>
    <comment_count>2</comment_count>
      <attachid>140927</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-09 06:10:40 -0700</bug_when>
    <thetext>Comment on attachment 140927
Patch

Attachment 140927 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12642907</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619449</commentid>
    <comment_count>3</comment_count>
      <attachid>140936</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-09 07:03:43 -0700</bug_when>
    <thetext>Created attachment 140936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620234</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-09 21:34:37 -0700</bug_when>
    <thetext>CC&apos;ing Ryosuke, Alexey</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620271</commentid>
    <comment_count>5</comment_count>
      <attachid>140936</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-09 23:10:43 -0700</bug_when>
    <thetext>Comment on attachment 140936
Patch

Clearing flags on attachment: 140936

Committed r116610: &lt;http://trac.webkit.org/changeset/116610&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620272</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-09 23:10:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671767</commentid>
    <comment_count>7</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-07-17 17:07:32 -0700</bug_when>
    <thetext>This patch changed API that was being used by other apps, which consequently now causes these other apps to fail. Please be more careful in the future when making such changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671851</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-17 18:23:07 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; This patch changed API that was being used by other apps, which consequently now causes these other apps to fail. Please be more careful in the future when making such changes.

Could you add a message rule on Source/WebKit/win/WebFrame.h
to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/watchlist ?

e.g. see AppleMacPublicApi
http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/watchlist#L262

It wasn&apos;t obvious that this was a part of public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671909</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-17 19:54:30 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; This patch changed API that was being used by other apps, which consequently now causes these other apps to fail. Please be more careful in the future when making such changes.

There was similar problem in Bug 86704. I have tried to be more careful since the bug. Sorry for making inconvenience.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140927</attachid>
            <date>2012-05-09 05:43:44 -0700</date>
            <delta_ts>2012-05-09 07:03:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85986-20120509214342.patch</filename>
            <type>text/plain</type>
            <size>36734</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZkYjlhOWQ5NGU4OTIy
NmE4ZGM4NmU2YTUzNzEwMTRkYTM5MDI4Ni4uZTVmODljNDY3ZTNiODExNzFhZDY2MDI5MjRmZDU0
YjkxMDc2ZTY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA1LTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSBzdXNw
ZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1c3BlbmRBbmltYXRpb25zIGZ1
bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3Nz
LXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBzaW5jZSB3ZSBhcmUgaW1wcm92aW5nIGhlcmUgdGhlIGluZnJhLXN0cnVjdHVy
ZSBmb3IgdGVzdGluZworICAgICAgICBhIHNwZWNpZmljIG1ldGhvZC4KKworICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c3VzcGVu
ZEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaWRsOgorCiAyMDEyLTA1LTA5ICBPbGkgTGFuICA8b2xpbGFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBBZGQgaWRlbnRpZnlpbmcgbWV0aG9kcyBmb3IgZGF0ZS90aW1lIGlucHV0IHR5cGVz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCmluZGV4IDc3NjcxNWI4MTBhZjVmMmYxOTM1ZTgwYmIyYTFlMDUzMGVm
ZmI3ZmUuLjQxOTk0MzQyMTU2MmNjNmRmZDgyNjAwNDNiMGVhOGEyNmIwNzM4M2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1
eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMg
dG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzdXNwZW5kQW5pbWF0aW9ucyBmdW5jdGlvbnMsIGJl
Y2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZSAKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkg
dGhyb3VnaCB0aGUgSW50ZXJuYWxzIGludGVyZmFjZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmg6CisKIDIwMTItMDUtMDggIEthbmdpbCBIYW4g
IDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gSW1wbGVtZW50
IFRleHRJbnB1dENvbnRyb2xsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNzcwNTI2ZTUzZGE3ZWQw
NWM1NDI0MWE5ZjU3YzBkNTE0NzU3YWEyZi4uZDIzMzE0NzlmNjc0Yjc3YTUzNDBkMjEwOWFjOTJk
Y2JhZDk3NGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA1LTA5
ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92
ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTg2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHN1c3BlbmRBbmlt
YXRpb25zIGZ1bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlIAorICAg
ICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDUtMDYgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBDb252ZXJ0IGlzUGFnZUJv
eFZpc2libGUgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
MDNiMDkxNjQ0Nzk2Y2U1Mjk1ODA5YjI3NGYyZjYyMGQ2NjA1YWJmNy4uYTBkODRkMGVjODY4YTk4
NWExMWJmNWNiNTFiMzIzNmMwMzFjZDMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+
CisKKyAgICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVy
ZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1
OTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIHN1c3BlbmRBbmltYXRpb25zIGZ1bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdv
cmsgaW4gdGhlIAorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbHMg
aW50ZXJmYWNlLgorCisgICAgICAgICogV2ViS2l0Lm9yZGVyOgorICAgICAgICAqIFdlYlZpZXcv
V2ViRnJhbWUubW06CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaDoKKwogMjAx
Mi0wNS0wOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4
ZSBDaHJvbWl1bSBidWlsZCwgYW5kIGFkZCBhIEZJWE1FIGNvbW1lbnQgYWJvdXQgYSBsYXllcmlu
ZyB2aW9sYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDhhOTM5NGEzYzFjMzRjOGQyNDQxOTIwNjQ0
NzliYWQwM2ZkY2M1MjUuLmMyNjgxODk5M2E5NThiZWE5MWNkMGUzOGI2NDExNjZhODFmZTQyODMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMDkgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHN1c3BlbmRBbmlt
YXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgZnVuY3Rp
b25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCisgICAgICAgIGNyb3NzLXBv
cnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKwogMjAxMi0wNS0wOCAgQmFsYXpz
IEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBYMTEgcGx1Z2lu
cyBuZWVkIHRvIGJlIHJld29ya2VkIGZvciBRdDUrV0sxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZDMz
MGQyM2Q3ZjNhYzI0YmQ4ZDVhNmViOGI1ZDA1ZTE5Y2YxYzlkNi4uODU5N2NmZWZlMjljODg2YzJm
NGYyZmIzN2ZmNjg5NmZkYzdjNzZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisK
KyAgICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFj
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3Zl
IHN1c3BlbmRBbmltYXRpb25zIGZ1bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsg
aW4gdGhlIAorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbHMgaW50
ZXJmYWNlLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbDoKKyAg
ICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgICogV2ViRnJhbWUuaDoKKwogMjAxMi0wNS0w
NyAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZWZhY3RvciB3aW5kb3dDbGlwUmVjdEZvckxheWVyIHRvIHJlbW92ZSB0aGUgZXhwbGljaXQgUmVu
ZGVyTGF5ZXIgZGVwZW5kZW5jeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IDY3ODM5ZjZjYTJlNDIwZGViN2M0MjAxZjBkYzZmMmE3MWRjYzkzZTkuLjc3NDIwMzI1NWMwYzlj
N2RiYjNiYzJhYzZjYTBmOTMzNGViZjljMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTEwMDgsNiArMTAwOCwyMCBAQCBib29sIEludGVybmFsczo6aXNQYWdlQm94Vmlz
aWJsZShEb2N1bWVudCogZG9jdW1lbnQsIGludCBwYWdlTnVtYmVyLCBFeGNlcHRpb25DbwogICAg
IHJldHVybiBkb2N1bWVudC0+aXNQYWdlQm94VmlzaWJsZShwYWdlTnVtYmVyKTsKIH0KIAordm9p
ZCBJbnRlcm5hbHM6OnN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0
aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZy
YW1lKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBBbmltYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gZG9jdW1l
bnQtPmZyYW1lKCktPmFuaW1hdGlvbigpOworICAgIGlmICghY29udHJvbGxlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgY29udHJvbGxlci0+c3VzcGVuZEFuaW1hdGlvbnMoKTsKK30KKwogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIHZvaWQgSW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVsZW1lbnQqIGVsZW1lbnQp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAzOTFkMzc1ZmEwM2ViN2QwMWI1
MDM5ODQzMWFhYWFiOTcyZTBjMWVlLi5lMDdmNGJjNTJkZTViODljNmQxNGQ0OWJhOThhNzgyMmFj
NWU1NDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE2Myw2ICsxNjMsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5ldHdvcmtJbmZvcm1hdGlvbihEb2N1bWVudCosIGNv
bnN0IFN0cmluZyYgZXZlbnRUeXBlLCBsb25nIGJhbmR3aWR0aCwgYm9vbCBtZXRlcmVkLCBFeGNl
cHRpb25Db2RlJik7CiAKKyAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0OworCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICB1bnNpZ25l
ZCBudW1iZXJPZkxpdmVOb2RlcygpIGNvbnN0OwogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2ZURv
Y3VtZW50cygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDA1
ZjZkMzRmODg4NzExZjhlOWUwZGE2MmY2YTMzNjA2YmIyMTgyZmIuLjM0NzY1NzFhYjI0ZTRhZTk1
NjIzZTgwOTRkYzhhZDBmNTEyOTIxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKQEAgLTEzMiw2ICsxMzIsOCBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBzZXR0aW5nczsKIAorICAgICAgICB2b2lkIHN1
c3BlbmRBbmltYXRpb25zKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisKICNpZiBkZWZpbmVkKEVOQUJMRV9CQVRURVJZX1NUQVRVUykgJiYgRU5BQkxFX0JBVFRF
UllfU1RBVFVTCiAgICAgICAgIHZvaWQgc2V0QmF0dGVyeVN0YXR1cyhpbiBEb2N1bWVudCBkb2N1
bWVudCwgaW4gRE9NU3RyaW5nIGV2ZW50VHlwZSwgaW4gYm9vbGVhbiBjaGFyZ2luZywgaW4gZG91
YmxlIGNoYXJnaW5nVGltZSwgaW4gZG91YmxlIGRpc2NoYXJnaW5nVGltZSwgaW4gZG91YmxlIGxl
dmVsKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwu
Y3BwCmluZGV4IDZiMTY2ZGM2NTg4OWQzN2RjOTYxYmE4YjEwNjU2YmYwNGJlN2Q3OTkuLmQ5NzVm
ZjdiNjgwMzQ4NzM1MmY3MTg4YTAzNjRjMTJiMjg3YjMxZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsLmNwcApAQCAtMzIzLDE4ICszMjMsNiBAQCBTdHJpbmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpzdWl0YWJsZURSVEZyYW1lTmFtZShjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbQogICAg
IHJldHVybiBTdHJpbmcoImZyYW1lIChhbm9ueW1vdXMpIik7CiB9CiAKLXZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpzdXNwZW5kQW5pbWF0aW9ucyhFdmFzX09iamVjdCogZXdrRnJhbWUp
Ci17Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3
a0ZyYW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYkNv
cmU6OkFuaW1hdGlvbkNvbnRyb2xsZXIgKmFuaW1hdGlvbkNvbnRyb2xsZXIgPSBmcmFtZS0+YW5p
bWF0aW9uKCk7Ci0gICAgaWYgKGFuaW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIGFuaW1hdGlv
bkNvbnRyb2xsZXItPnN1c3BlbmRBbmltYXRpb25zKCk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpzZXRWYWx1ZUZvclVzZXIoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFs
dWVSZWYgbm9kZU9iamVjdCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBKU0M6OkV4ZWNT
dGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDg5
NzUxZjFjMWYwYjVhNTM1NDY4NmNhNDQ1MmIwNzhmODA2MmE0NzIuLmY1YjY4ZTFjMDliODdhYzY2
MTI5MGRiMGNkZjllYTg1MWZkNjk5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC02NSw3
ICs2NSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZXN1bWVBbmltYXRpb25zKEV2YXNf
T2JqZWN0KiBld2tGcmFtZSk7CiAgICAgc3RhdGljIFdlYkNvcmU6OkludFJlY3Qgc2VsZWN0aW9u
UmVjdGFuZ2xlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAgICAgc3RhdGljIFN0cmlu
ZyBzdWl0YWJsZURSVEZyYW1lTmFtZShjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpOwotICAg
IHN0YXRpYyB2b2lkIHN1c3BlbmRBbmltYXRpb25zKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAg
ICAgc3RhdGljIHZvaWQgc2V0VmFsdWVGb3JVc2VyKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZiBu
b2RlT2JqZWN0LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBzZXRBdXRv
ZmlsbGVkKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZiBub2RlT2JqZWN0LCBib29sIGF1dG9maWxs
ZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldERlZmVyc0xvYWRpbmcoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGJvb2wgZGVmZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDFhMGYzMmYy
ZGM0MGM2MWMwZDkzYjgwZDg4ODZhNzY1MGQ2OTRlNGUuLjVlYjVlNGY3MTZiZDVjMDFmYzE1M2Jm
ZDY0NjE1NTlhMTA4ZmRkZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtMzYzLDE1
ICszNjMsNiBAQCB1bnNpZ25lZCBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpudW1iZXJP
ZkFjdGl2ZUFuaW1hdGlvbnMoV2ViS2l0V2ViRnJhbWUqCiAgICAgcmV0dXJuIGNvcmVGcmFtZS0+
YW5pbWF0aW9uKCktPm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhjb3JlRnJhbWUtPmRvY3VtZW50
KCkpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c3VzcGVuZEFuaW1hdGlv
bnMoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3Jl
KGZyYW1lKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcmV0
dXJuIGNvcmVGcmFtZS0+YW5pbWF0aW9uKCktPnN1c3BlbmRBbmltYXRpb25zKCk7Ci19Ci0KIHZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZXN1bWVBbmltYXRpb25zKFdlYktpdFdlYkZy
YW1lKiBmcmFtZSkKIHsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oCmluZGV4IDdkYjg1Y2ZmZTQ3OWFiZWJmZmYzZDg0N2I2MjJjZWVhY2Yz
NTczMjguLjIwZDgzN2VhMWUzZjdmZjA2NjI0MTU1NGZkYmM4OWMxNTJlM2M2NzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oCkBAIC03Miw3ICs3Miw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9v
bCBwYXVzZVRyYW5zaXRpb24oV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBuYW1lLCBkb3Vi
bGUgdGltZSwgY29uc3QgY2hhciogZWxlbWVudCk7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBt
YXJrZXJUZXh0Rm9yTGlzdEl0ZW0oV2ViS2l0V2ViRnJhbWUqLCBKU0NvbnRleHRSZWYsIEpTVmFs
dWVSZWYgbm9kZU9iamVjdCk7CiAgICAgc3RhdGljIHVuc2lnbmVkIGludCBudW1iZXJPZkFjdGl2
ZUFuaW1hdGlvbnMoV2ViS2l0V2ViRnJhbWUqKTsKLSAgICBzdGF0aWMgdm9pZCBzdXNwZW5kQW5p
bWF0aW9ucyhXZWJLaXRXZWJGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHJlc3VtZUFuaW1hdGlv
bnMoV2ViS2l0V2ViRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhck1haW5GcmFtZU5hbWUo
V2ViS2l0V2ViRnJhbWUqKTsKICAgICBzdGF0aWMgQXRrT2JqZWN0KiBnZXRGb2N1c2VkQWNjZXNz
aWJsZUVsZW1lbnQoV2ViS2l0V2ViRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYktpdC5vcmRlciBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgppbmRleCA1
MTQ4ODE0ODRjMDRkMGExMGExMTA1ZDZhZjM1MjBlNjVlNjNmYWM4Li4yMWQ5NmQ4MjQwOTU0OGU5
NzNhOTc2YmI5YTU3MjA1NGQ2NzRjODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJLaXQub3JkZXIKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCkBAIC0xMjIx
LDcgKzEyMjEsNiBAQCBfV0tFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJk
CiBfX1pOSzdXZWJDb3JlMTJDaHJvbWVDbGllbnQyOWRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hh
bmdlRVJLTlNfMTdWaWV3cG9ydEFyZ3VtZW50c0UKIC1bV2ViVmlldyhXZWJQcml2YXRlKSBzZXRG
cmFtZVNpemU6XQogLVtXZWJGcmFtZShXZWJLaXREZWJ1ZykgcmVuZGVyVHJlZUFzRXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbkZvclByaW50aW5nOl0KLS1bV2ViRnJhbWUoV2ViUHJpdmF0ZSkgX3N1c3Bl
bmRBbmltYXRpb25zXQogLVtXZWJGcmFtZShXZWJQcml2YXRlKSBfcmVzdW1lQW5pbWF0aW9uc10K
ICtbV2ViVmlldyhXZWJQcml2YXRlKSBfcG9pbnRpbmdIYW5kQ3Vyc29yXQogX1dLR2V0Q0ZVUkxS
ZXNwb25zZVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggMDJmNGEz
YzY4YWMzYzgzZDgyOTNhNWVlMjVhZTQ5YTY2MzgyNGU0Zi4uYWQ0MzY0MzdkYWMyNGMzZTlhMDdh
YTViYjdjMmI1OTRhMGE2YWI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
CkBAIC05OTgsMTUgKzk5OCw2IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNv
dXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIHJldHVybiBjb250cm9sbGVyLT5udW1i
ZXJPZkFjdGl2ZUFuaW1hdGlvbnMoZnJhbWUtPmRvY3VtZW50KCkpOwogfQogCi0tICh2b2lkKSBf
c3VzcGVuZEFuaW1hdGlvbnMKLXsKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHNlbGYpOwotICAg
IGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgZnJhbWUtPmFuaW1h
dGlvbigpLT5zdXNwZW5kQW5pbWF0aW9ucygpOwotfQotCiAtICh2b2lkKSBfcmVzdW1lQW5pbWF0
aW9ucwogewogICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUoc2VsZik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAppbmRleCBjYjUyMWMzZWE0MzZjZjM2MzhkMTll
MmI4MTUzOGI4MTI1MGFmOTI0Li40YjdjNzU5MDRjNzczOTZmOGFkNWMxODNjMTM3NDcwNzE5MWUy
M2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKQEAg
LTEwOCw3ICsxMDgsNiBAQCB0eXBlZGVmIGVudW0gewogLSAodW5zaWduZWQpX251bWJlck9mQWN0
aXZlQW5pbWF0aW9uczsKIAogLy8gU3VzcGVuZCBhbmQgcmVzdW1lIGFuaW1hdGlvbnMgKGluY2x1
ZGVzIGJvdGggQ1NTIHRyYW5zaXRpb25zIGFuZCBDU1MgYW5pbWF0aW9ucykuCi0tICh2b2lkKV9z
dXNwZW5kQW5pbWF0aW9uczsKIC0gKHZvaWQpX3Jlc3VtZUFuaW1hdGlvbnM7CiAKIC0gKHZvaWQp
X3JlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQ6KERPTURvY3VtZW50RnJhZ21lbnQgKilmcmFn
bWVudCBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxh
Y2U6KEJPT0wpc21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6KEJPT0wpbWF0Y2hTdHlsZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHAKaW5kZXggZjU1ZTI1NjY3OWExYmZhY2UyN2M2OWVhMGVjMWJiY2E1Nzgw
ZTE2Mi4uNDQ1ZTY4NDg4YmE4M2E5ZTkyYmM5ZjZkOGE3NjU3NWE5MWYzN2FmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHAKQEAgLTM4NCwxOSArMzg0LDYgQEAgaW50IER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoUVdlYkZyYW1lICpmcmFtZSkKICAgICBy
ZXR1cm4gY29udHJvbGxlci0+bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKGNvcmVGcmFtZS0+ZG9j
dW1lbnQoKSk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnN1c3BlbmRBbmlt
YXRpb25zKFFXZWJGcmFtZSAqZnJhbWUpCi17Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJG
cmFtZVByaXZhdGU6OmNvcmUoZnJhbWUpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBBbmltYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gY29yZUZyYW1l
LT5hbmltYXRpb24oKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGNvbnRyb2xsZXItPnN1c3BlbmRBbmltYXRpb25zKCk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OnJlc3VtZUFuaW1hdGlvbnMoUVdlYkZyYW1lICpmcmFtZSkKIHsKICAg
ICBGcmFtZSogY29yZUZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShmcmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmgKaW5kZXggZWFkYzFhZjM1NjYyOTlhODNlMzA5NWY2ZGM0MWQxYWU3YjM2ZjQy
OS4uZDg1YTMzNmM5NjM2NDE4ZGRkMjQ4OTk2ZWE2NTM5N2UyODY5MmQ0NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaApAQCAtMTQxLDcgKzE0MSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjbGVh
ckZyYW1lTmFtZShRV2ViRnJhbWUqIGZyYW1lKTsKICAgICBzdGF0aWMgdm9pZCBvdmVyd3JpdGVQ
bHVnaW5EaXJlY3RvcmllcygpOwogICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZBY3RpdmVBbmltYXRp
b25zKFFXZWJGcmFtZSopOwotICAgIHN0YXRpYyB2b2lkIHN1c3BlbmRBbmltYXRpb25zKFFXZWJG
cmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoUVdlYkZyYW1lKik7CiAg
ICAgc3RhdGljIGludCBudW1iZXJPZlBhZ2VzKFFXZWJGcmFtZSogZnJhbWUsIGZsb2F0IHdpZHRo
LCBmbG9hdCBoZWlnaHQpOwogICAgIHN0YXRpYyBpbnQgcGFnZU51bWJlckZvckVsZW1lbnRCeUlk
KFFXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFFTdHJpbmcmIGlkLCBmbG9hdCB3aWR0aCwgZmxvYXQg
aGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkZy
YW1lUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVBy
aXZhdGUuaWRsCmluZGV4IGNiN2E0Njk5NzI4NDZkZjcwNzFjMjE2YTFiNjQyZDg5NDVhYTk5ZDcu
LmJjYTY1ZTQyNTNlMGRiYjlkMWU3ZDU5NDJiNzgwZTU2MGVjYjJkMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5pZGwKKysrIGIvU291
cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbApAQCAtMTEwLDcg
KzExMCw2IEBAIGludGVyZmFjZSBJV2ViRnJhbWVQcml2YXRlIDogSVVua25vd24KIAogICAgIEhS
RVNVTFQgcmVuZGVyVHJlZUFzRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihbaW5dIEJPT0wgZm9yUHJp
bnRpbmcsIFtvdXQsIHJldHZhbF0gQlNUUiogcmVzdWx0KTsKIAotICAgIEhSRVNVTFQgc3VzcGVu
ZEFuaW1hdGlvbnMoKTsKICAgICBIUkVTVUxUIHJlc3VtZUFuaW1hdGlvbnMoKTsKIAogICAgIEhS
RVNVTFQgbG9hZFBsYWluVGV4dFN0cmluZyhbaW5dIEJTVFIgc3RyaW5nLCBbaW5dIEJTVFIgdXJs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCAxYTRiNjc2YTA2M2E2MTBiODYxNDhmMzdmYzQ1
MzQ5YWFiMWM3ZjNkLi5jMGVhNTMzMTMyYzY4YTAzMDJmZWZjNDRkMGQwMDJmZDUwYzA1ZDU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC0xMzExLDE2ICsxMzExLDYgQEAgSFJFU1VMVCBXZWJG
cmFtZTo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKFVJTlQqIG51bWJlcikKICAgICByZXR1cm4g
U19PSzsKIH0KIAotSFJFU1VMVCBXZWJGcmFtZTo6c3VzcGVuZEFuaW1hdGlvbnMoKQotewotICAg
IEZyYW1lKiBmcmFtZSA9IGNvcmUodGhpcyk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0
dXJuIEVfRkFJTDsKLQotICAgIGZyYW1lLT5hbmltYXRpb24oKS0+c3VzcGVuZEFuaW1hdGlvbnMo
KTsKLSAgICByZXR1cm4gU19PSzsKLX0KLQogSFJFU1VMVCBXZWJGcmFtZTo6cmVzdW1lQW5pbWF0
aW9ucygpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gY29yZSh0aGlzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5o
CmluZGV4IGM3ZGRmZTg2MGZhOTY1ZDJiNDgwZjkzODQ1MTY0NWI1YmUwNzNlZTEuLmZhZTJhYzM2
MDBkN2Y2ZDYxZjMzZWFlZTY1MDA3MGFhYTM0OWRkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuaApAQCAt
MjYwLDcgKzI2MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgcGF1c2VBbmltYXRpb24oQlNUUiBhbmltYXRpb25OYW1lLCBJRE9NTm9kZSosIGRvdWJs
ZSBzZWNvbmRzRnJvbU5vdywgQk9PTCogYW5pbWF0aW9uV2FzUnVubmluZyk7CiAgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHBhdXNlVHJhbnNpdGlvbihCU1RSIHByb3BlcnR5
TmFtZSwgSURPTU5vZGUqLCBkb3VibGUgc2Vjb25kc0Zyb21Ob3csIEJPT0wqIHRyYW5zaXRpb25X
YXNSdW5uaW5nKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgbnVtYmVy
T2ZBY3RpdmVBbmltYXRpb25zKFVJTlQqKTsKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgc3VzcGVuZEFuaW1hdGlvbnMoKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgcmVzdW1lQW5pbWF0aW9ucygpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBsb2FkUGxhaW5UZXh0U3RyaW5nKEJTVFIgc3RyaW5nLCBCU1RSIHVybCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGMwMzM4NTM3NDYzNjhkNjVkNjU1MmY3NTFk
NzNkN2EyODQzZmQ3ZjguLjQ1NDhhZTBlYzQzZDRhNDk5YzdhNWMzODVkMzIwODczNWMyOTNlZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNl
L2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMTA3LDYgKzEwNyw3IEBAIF9aTks3V2ViQ29y
ZTVSYW5nZTR0ZXh0RXY7CiBfWk5LN1dlYkNvcmU5VHJlZVNjb3BlMTRnZXRFbGVtZW50QnlJZEVS
S04zV1RGMTJBdG9taWNTdHJpbmdFOwogX1pOSzdXZWJDb3JlMTREb2N1bWVudE1hcmtlcjExZGVz
Y3JpcHRpb25FdjsKIF9aTjdXZWJDb3JlOERvY3VtZW50MTZpc1BhZ2VCb3hWaXNpYmxlRWk7Citf
Wk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE3c3VzcGVuZEFuaW1hdGlvbnNFdjsKIF9a
Tks3V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxp
Z2h0RTsKIF9aTjdXZWJDb3JlMjRJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24yNmluc3RydW1lbnRp
bmdBZ2VudHNGb3JQYWdlRVBOU180UGFnZUU7CiBfWk43V2ViQ29yZTI0SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uMTdzX2Zyb250ZW5kQ291bnRlckU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjRhYWFmYzdiY2Y5NzhmZGYwYTM2MjUwMWE2NzA3
NDBjMjkyMGU5Yi4uODM1YmI5MjRiMzRkMTQyMDIyMzhkOGNmYTdjNWFkMGUwOWExMGYwMCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMxIEBACisyMDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5j
b20+CisKKyAgICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGlu
dGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1OTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIHN1c3BlbmRBbmltYXRpb25zIGZ1bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRv
IHdvcmsgaW4gdGhlIAorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5h
bHMgaW50ZXJmYWNlCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25z
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xh
eW91dFRlc3RDb250cm9sbGVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21h
Yy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcDoKKwogMjAxMi0wNS0wOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1hZGUgYnVpbGQtd2Via2l0IGNvcHkgV2ViS2l0TGlicmFyaWVzIHRvIHRoZSByaWdo
dCBsb2NhdGlvbiBhZ2FpbiBhZnRlciByMTE2MjU3CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOGRjNmNkNTNkY2JmM2IxMzM4M2U5ZDQ5NjI1
MDc0OTE0NGY5NjQ0ZC4uNTM3OGYwN2M1NTdhOTIyYTY1YWZkZjNkN2Y0YmE1ZGExY2FhY2UyMSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAt
MTg2MSwxMyArMTg2MSw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIG51bWJlck9mQWN0aXZlQW5pbWF0
aW9uc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjCiAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNvbnRyb2xsZXItPm51bWJlck9mQWN0aXZlQW5pbWF0
aW9ucygpKTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgc3VzcGVuZEFuaW1hdGlvbnNDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgTGF5b3V0VGVzdENvbnRyb2xs
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c3VzcGVuZEFuaW1h
dGlvbnMoKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0K
IHN0YXRpYyBKU1ZhbHVlUmVmIHJlc3VtZUFuaW1hdGlvbnNDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0
aGlzT2JqZWN0KSk7CkBAIC0yMzUwLDcgKzIzNDMsNiBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAibWFya2VyVGV4
dEZvckxpc3RJdGVtIiwgbWFya2VyVGV4dEZvckxpc3RJdGVtQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAibm90aWZ5RG9uZSIsIG5vdGlmeURvbmVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMiLCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnND
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzdXNwZW5kQW5pbWF0aW9ucyIsIHN1c3BlbmRB
bmltYXRpb25zQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVzdW1lQW5pbWF0aW9ucyIs
IHJlc3VtZUFuaW1hdGlvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJvdmVycmlkZVBy
ZWZlcmVuY2UiLCBvdmVycmlkZVByZWZlcmVuY2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQiLCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWRDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmgKaW5kZXggYTNlM2U5Yjk1NzRlMzFiZDQyYmU3Y2NkODhiOTJlN2E4M2FjYWU1ZC4uMzg3ODRm
ZDljNzE4YmQ3ZDVhM2FjMTAyODk2ZmUxMWJlNGZhZDlkMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0yOTAsNyArMjkwLDYgQEAgcHVibGljOgog
ICAgIGJvb2wgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYg
YW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJZCk7CiAgICAg
Ym9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYgcHJv
cGVydHlOYW1lLCBkb3VibGUgdGltZSwgSlNTdHJpbmdSZWYgZWxlbWVudElkKTsKICAgICB1bnNp
Z25lZCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdDsKLSAgICB2b2lkIHN1c3BlbmRB
bmltYXRpb25zKCkgY29uc3Q7CiAgICAgdm9pZCByZXN1bWVBbmltYXRpb25zKCkgY29uc3Q7CiAK
ICAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJj
ZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVz
dGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJC
bGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVz
dENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAppbmRleCBiZDFhNWJkNjZmNWFkY2U2NjdmMmE1MWI3
MGU5NDU5NmFjMzRlNmU0Li5lYjg2YmRlZTBhNGI2Y2FmYzNiMDBmM2IxOGUyNDQ2NTM0MzI3ZDI2
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RD
b250cm9sbGVyQmxhY2tCZXJyeS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2ti
ZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCkBAIC03MDUsMTIgKzcwNSw2
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNv
bnN0IEpTU3RyaW5nUmVmIG1vZGUpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlvbnMoKSBjb25zdAotewotICAgIGlm
IChtYWluRnJhbWUgJiYgbWFpbkZyYW1lLT5hbmltYXRpb24oKSkKLSAgICAgICAgbWFpbkZyYW1l
LT5hbmltYXRpb24oKS0+c3VzcGVuZEFuaW1hdGlvbnMoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgaWYgKG1haW5GcmFt
ZSAmJiBtYWluRnJhbWUtPmFuaW1hdGlvbigpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDhiYjUzMTkxMTA0
ZDk5YzlkODQzNTM3Mjc4OGM3MjY5MjJjM2U0ZTIuLjA5YWYzNjVmODJiNmMxYzViMDc3YmMyZjM5
YTYzNjM2ZWY2MGNkYjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTIxMiw3ICsyMTIsNiBAQCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAg
ICBiaW5kTWV0aG9kKCJzaG93V2ViSW5zcGVjdG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpz
aG93V2ViSW5zcGVjdG9yKTsKICAgICBiaW5kTWV0aG9kKCJzaW11bGF0ZURlc2t0b3BOb3RpZmlj
YXRpb25DbGljayIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZp
Y2F0aW9uQ2xpY2spOwogICAgIGJpbmRNZXRob2QoInN0YXJ0U3BlZWNoSW5wdXQiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnN0YXJ0U3BlZWNoSW5wdXQpOwotICAgIGJpbmRNZXRob2QoInN1c3Bl
bmRBbmltYXRpb25zIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzdXNwZW5kQW5pbWF0aW9ucyk7
CiAgICAgYmluZE1ldGhvZCgidGVzdFJlcGFpbnQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnRl
c3RSZXBhaW50KTsKICAgICBiaW5kTWV0aG9kKCJ3YWl0Rm9yUG9saWN5RGVsZWdhdGUiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSk7CiAgICAgYmluZE1ldGhv
ZCgid2FpdFVudGlsRG9uZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6d2FpdFVudGlsRG9uZSk7
CkBAIC0xMDU5LDE5ICsxMDU4LDYgQEAgaW50IExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJP
ZkFjdGl2ZUFuaW1hdGlvbnMoKQogICAgIHJldHVybiBjb250cm9sbGVyLT5udW1iZXJPZkFjdGl2
ZUFuaW1hdGlvbnMoKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3VzcGVuZEFu
aW1hdGlvbnMoKQotewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IG1fc2hlbGwtPndlYlZpZXco
KS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCF3ZWJGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgV2ViQW5pbWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IHdlYkZyYW1lLT5hbmltYXRp
b25Db250cm9sbGVyKCk7Ci0gICAgaWYgKCFjb250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBjb250cm9sbGVyLT5zdXNwZW5kQW5pbWF0aW9ucygpOwotfQotCiB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkKIHsKICAgICBXZWJGcmFtZSogd2ViRnJh
bWUgPSBtX3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpOwpAQCAtMTE1NiwxMiArMTE0Miw2
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWCiAgICAgcmVzdWx0LT5zZXQobnVtYmVyT2ZBY3Rp
dmVBbmltYXRpb25zKCkpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzdXNwZW5k
QW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCi17
Ci0gICAgc3VzcGVuZEFuaW1hdGlvbnMoKTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQog
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdW1lQW5pbWF0aW9ucygp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmgKaW5kZXggNzM4M2VjZmI1MTg3ZDg2NzNkNWVmMDNhMTY4ZjFkNTIxMDkxM2Y3Yi4u
YTE4M2RiYjc1NjZhM2Y4NDI0MjIzOGQwNGY2OGY0NDVlNzU5ODVlNyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0y
NDMsNyArMjQzLDYgQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGlzYWJsZUF1dG9S
ZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lk
IG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7Ci0gICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCByZXN1bWVBbmltYXRpb25zKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGRpc2FibGVJbWFnZUxvYWRpbmcoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0SWNvbkRhdGFi
YXNlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkBAIC01NzAs
NyArNTY5LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxl
bWVudFdpdGhJZChjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUg
dGltZSwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIGVsZW1lbnRJZCk7CiAgICAgYm9vbCBlbGVt
ZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoY29uc3QgV2ViS2l0OjpXZWJTdHJp
bmcmKTsKICAgICBpbnQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7Ci0gICAgdm9pZCBzdXNw
ZW5kQW5pbWF0aW9ucygpOwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpOwogCiAgICAgLy8g
VXNlZCBmb3IgdGVzdCB0aW1lb3V0cy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9l
ZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCmluZGV4IGNkOTA2ZGJlNDBmNjBjNTA0ZmNl
MThhYWY2ZWZkZTc5M2NhYTk3Y2EuLjI0ZWQzOGVjYzIwZDQ3YmNjZTMyMGZiM2U0YjJiY2M5Mzc1
NjlhZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29u
dHJvbGxlckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RD
b250cm9sbGVyRWZsLmNwcApAQCAtNjQ4LDExICs2NDgsNiBAQCB1bnNpZ25lZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKICAgICByZXR1cm4g
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjphY3RpdmVBbmltYXRpb25zQ291bnQoYnJvd3Nlci0+
bWFpbkZyYW1lKCkpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzdXNwZW5kQW5p
bWF0aW9ucygpIGNvbnN0Ci17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdXNwZW5k
QW5pbWF0aW9ucyhicm93c2VyLT5tYWluRnJhbWUoKSk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6cmVzdW1lQW5pbWF0aW9ucyhicm93c2VyLT5tYWluRnJhbWUoKSk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cAppbmRleCBkZTgwYzc1MGJiOTJkNmI1YzVhMTYzOTdiMGU4NWNjNjIzOTkzMTQyLi45ZjU1MzE0
OWMyZmEzZjE0OTY1OTUwYTYwMmYwMDEyMDg0Zjk1NjBmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTc4NywxMSAr
Nzg3LDYgQEAgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJlck9mQWN0aXZlQW5p
bWF0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVt
YmVyT2ZBY3RpdmVBbmltYXRpb25zKG1haW5GcmFtZSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKCkgY29uc3QKLXsKLSAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OnN1c3BlbmRBbmltYXRpb25zKG1haW5GcmFtZSk7Ci19Ci0KIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzdW1lQW5pbWF0aW9ucyhtYWluRnJhbWUpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmlu
ZGV4IDc5YzM2M2NmN2YzNWIzMzAxOTU0ZTY3NThlMWViY2EzYTE0MmM3ZmYuLjY3ZTdiZTE5Mjdl
MzExZTk4M2M1YzY4NTgxNzM1ZGU1NDUzYmMzMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTg0NCwxMSArODQ0LDYg
QEAgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9u
cygpIGNvbnN0CiAgICAgcmV0dXJuIFttYWluRnJhbWUgX251bWJlck9mQWN0aXZlQW5pbWF0aW9u
c107CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gW21haW5GcmFtZSBfc3VzcGVuZEFuaW1hdGlvbnNdOwotfQot
CiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gW21haW5GcmFtZSBfcmVzdW1lQW5pbWF0aW9uc107CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDQ2NGFj
NTM4MmY2MTFlMjQ4YWY1YjkwMjJiZmIyZjM1MWM4MDY5MjguLjZiOTExNGI0OTAwMmRhNmE2YTBj
YzM2ODk2ZmYyOTM3NDQ2Y2E1NzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC01NjksMTMgKzU2OSw2IEBAIHVuc2lnbmVk
IExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAog
ICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6bnVtYmVyT2ZBY3RpdmVBbmltYXRp
b25zKGZyYW1lKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3VzcGVuZEFuaW1h
dGlvbnMoKSBjb25zdAotewotICAgIFFXZWJGcmFtZSogZnJhbWUgPSBtX2RydC0+d2ViUGFnZSgp
LT5tYWluRnJhbWUoKTsKLSAgICBRX0FTU0VSVChmcmFtZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OnN1c3BlbmRBbmltYXRpb25zKGZyYW1lKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgUVdlYkZyYW1lKiBm
cmFtZSA9IG1fZHJ0LT53ZWJQYWdlKCktPm1haW5GcmFtZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDljYWEzYTlmOWJhOWI4
OTRlMjI3N2Y2MzA5ZGRlMDg1OWFiN2VkNjcuLjU2YTg4MTk3NWE1MzdlYmJiYWIzNjZlNjhiY2Yy
ZjM5YjUzYzA4MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmgKQEAgLTE4Nyw3ICsxODcsNiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgYm9v
bCBlbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoY29uc3QgUVN0cmluZyYg
ZWxlbWVudElkKTsKIAogICAgIHVuc2lnbmVkIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNv
bnN0OwotICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoKSBjb25zdDsKICAgICB2b2lkIHJlc3Vt
ZUFuaW1hdGlvbnMoKSBjb25zdDsKIAogICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoY29uc3QgUVN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5h
dGlvblByb3RvY29sLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggOGQ2MGRmY2E1MTMwOTFjMGMwZmRm
MDA1OTNmM2NkNjMwODIzODFmZS4uNjdiYzRhNzExYmNkOWE3YzY5NzQxMDg5YmFiMGY3YjBjODg1
NGY2OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENv
bnRyb2xsZXJXaW4uY3BwCkBAIC0xMTIyLDE1ICsxMTIyLDYgQEAgdW5zaWduZWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJu
IG51bWJlcjsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlv
bnMoKSBjb25zdAotewotICAgIENPTVB0cjxJV2ViRnJhbWVQcml2YXRlPiBmcmFtZVByaXZhdGUo
UXVlcnksIGZyYW1lKTsKLSAgICBpZiAoIWZyYW1lUHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZnJhbWVQcml2YXRlLT5zdXNwZW5kQW5pbWF0aW9ucygpOwotfQotCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICBDT01QdHI8
SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRlKFF1ZXJ5LCBmcmFtZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCmluZGV4IGMz
YTQzZDIzMmIzZWE3ZWI4ZTAyNTRmZTE2MzRkNzlhOTA4NDM2ZDAuLjBhYjg4NWRkMmU3ZDBmODdm
YTBjZjc5MGU4MjgyZWQwZGY4YmZmYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCkBAIC0zMTMsMTEgKzMxMyw2IEBAIHVuc2ln
bmVkIExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25z
dAogICAgIHJldHVybiAwOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzdXNwZW5k
QW5pbWF0aW9ucygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICAv
LyBGSVhNRTogaW1wbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODhkYWU2ZmJkNWRjOWViYjMwNTNkYWNiZGFiMDE2
NmE1MDIyY2M0ZS4uOTQzNWU4YWZmMWExNWUxZGU2Nzk0YTQyYzA1NDY4MmY0OTc4YmQ1NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5r
aW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2Ug
SW50ZXJuYWxzIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1OTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2FsbCBzdXNwZW5kQW5pbWF0aW9ucyBmdW5jdGlvbnMgZnJvbSBpbnRlcm5h
bHMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1wb3J0
IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorCisgICAgICAgICogYW5pbWF0
aW9ucy9wbGF5LXN0YXRlLXN1c3BlbmQuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL3N0b3At
YW5pbWF0aW9uLW9uLXN1c3BlbmQuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL3N1c3BlbmQt
cmVzdW1lLWFuaW1hdGlvbi1ldmVudHMuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL3N1c3Bl
bmQtcmVzdW1lLWFuaW1hdGlvbi5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvc3VzcGVuZC10
cmFuc2Zvcm0tYW5pbWF0aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvc3VzcGVuZC10
cmFuc2Zvcm0tdHJhbnNpdGlvbi5odG1sOgorCiAyMDEyLTA1LTA5ICBDaHJpc3RvcGhlIER1bWV6
ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gaHR0cC90ZXN0
cy9sb2FkaW5nL3BkZi1jb21taXQtbG9hZC1jYWxsYmFja3MuaHRtbCBpcyBmYWlsaW5nCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3BsYXktc3RhdGUtc3VzcGVuZC5odG1sIGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9wbGF5LXN0YXRlLXN1c3BlbmQuaHRtbAppbmRleCA1MTg1
ZjA3MjI4ZDZiN2U4NzkwNmEyZWIwZWExN2ZiN2EyNWQwMjdkLi5jMDk0OTkzODE1ZDUwMjNhZmM3
ZDZmZjQ4NmE5MzQ2ZjU2NWMxMjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L3BsYXktc3RhdGUtc3VzcGVuZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcGxh
eS1zdGF0ZS1zdXNwZW5kLmh0bWwKQEAgLTU2LDggKzU2LDggQEAKIAogICAgIGZ1bmN0aW9uIHN1
c3BlbmQoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnN1c3BlbmRBbmltYXRpb25zKCk7Cisg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN1c3Bl
bmRBbmltYXRpb25zKGRvY3VtZW50KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiB1bnBhdXNlKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3RvcC1hbmltYXRpb24tb24tc3Vz
cGVuZC5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdG9wLWFuaW1hdGlvbi1vbi1zdXNw
ZW5kLmh0bWwKaW5kZXggMGYwOTBmNDRlZDEzOGI3MzVjYmIwZTU1YjY2OWZjZGRkN2VlOGViOS4u
MDA0YTJlMzk3ZGU3OGE0YTE4ZWUzZGZlZjc5M2JhZDY1ZjQ5NGMyYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9zdG9wLWFuaW1hdGlvbi1vbi1zdXNwZW5kLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdG9wLWFuaW1hdGlvbi1vbi1zdXNwZW5kLmh0bWwKQEAg
LTQwLDggKzQwLDggQEAKICAgICAKICAgICBmdW5jdGlvbiBzdXNwZW5kKCkKICAgICB7Ci0gICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zdXNwZW5kQW5pbWF0aW9ucygpOworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdXNwZW5kQW5pbWF0aW9ucyhkb2N1bWVu
dCk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHJlc3VtZSgpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFuaW1hdGlvbi1ldmVudHMuaHRtbCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLWV2ZW50cy5o
dG1sCmluZGV4IDExYTkzOTliOTAzN2Q1ZGQ0ZWIxYjdiYjRkNTU1MjEwYjdiZWY3NjQuLmZhOWYw
MGI3MjFiMjg3M2Y2M2Q2NGQ1MGNjZGZlOTcwNzJmYjQ2ZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLWV2ZW50cy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLWV2ZW50cy5o
dG1sCkBAIC0zMCw4ICszMCw4IEBACiAgICAgCiAgICAgZnVuY3Rpb24gc3VzcGVuZCgpCiAgICAg
ewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc3VzcGVuZEFuaW1hdGlvbnMoKTsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3VzcGVuZEFuaW1hdGlvbnMo
ZG9jdW1lbnQpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiByZXN1bWUoKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLmh0bWwKaW5k
ZXggODRmMTY1YzJiYWQ2ZTE0MzdlODMwN2QwOWVlNzU5NGI4ZDY2NGNkYS4uYWQ2NjIyZGUwYmEx
MTIxMjNlMmViNzRkYzM0MGE1NmExYmRmMzE4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFuaW1hdGlvbi5odG1sCkBAIC0yOSw4ICsyOSw4IEBA
CiAgICAgCiAgICAgZnVuY3Rpb24gc3VzcGVuZCgpCiAgICAgewotICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c3VzcGVuZEFuaW1hdGlvbnMoKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMuc3VzcGVuZEFuaW1hdGlvbnMoZG9jdW1lbnQpOwogICAgIH0KICAg
ICAKICAgICBmdW5jdGlvbiByZXN1bWUoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9zdXNwZW5kLXRyYW5zZm9ybS1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvc3VzcGVuZC10cmFuc2Zvcm0tYW5pbWF0aW9uLmh0bWwKaW5kZXggZGQ3YjQyYTkzYmEx
ZWY3ZjgwYWY2OTk2MjFjMTEzNGY3MjZmZjAzZS4uNmJhZDJlMTQxMWZhMDk2MzNhNDhhMWYyYWY0
YWI4MGVkZTUyNGMwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5k
LXRyYW5zZm9ybS1hbmltYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N1
c3BlbmQtdHJhbnNmb3JtLWFuaW1hdGlvbi5odG1sCkBAIC0zOCw4ICszOCw4IEBACiAgICAgCiAg
ICAgZnVuY3Rpb24gc3VzcGVuZEFuZFdhaXRGb3JDb21wbGV0aW9uKCkKICAgICB7Ci0gICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zdXNwZW5kQW5pbWF0aW9ucygpOworICAgICAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdXNwZW5kQW5pbWF0aW9ucyhkb2N1bWVudCk7
CiAKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvc3VzcGVuZC10cmFuc2Zvcm0tdHJhbnNpdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvc3VzcGVuZC10cmFuc2Zvcm0tdHJhbnNpdGlvbi5odG1sCmluZGV4IDM5
MDAxMmEzYTZkNDVkOGQ0Njc5MjE3Yjg3MGI0ZjBkNTBlNzEwZWQuLmJkMzY5N2IzMzk1ZDM5YTky
Yjg2MzBmZDVjNjk3ZGQ1NjQxODVjMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3N1c3BlbmQtdHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9zdXNwZW5kLXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwKQEAgLTMzLDggKzMz
LDggQEAKICAgICAKICAgICBmdW5jdGlvbiBzdXNwZW5kQW5kV2FpdEZvckNvbXBsZXRpb24oKQog
ICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnN1c3BlbmRBbmltYXRpb25zKCk7CisgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN1c3BlbmRBbmltYXRp
b25zKGRvY3VtZW50KTsKIAogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCmRpZmYgLS1naXQg
YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMzI2ODIzNWM0YWRhZTQwMzkzZWIxOTA5OWRm
Nzg1MmNjZDAyYmFiNC4uMjk5NWNlN2I5MmQxNmZmZWU4NTFlMDA3MTgzNmRjOGE4YTM1MWNlNCAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOiBBZGQgYSBzeW1ib2wgZmlsdGVyIGZvciBzdXNwZW5k
QW5pbWF0aW9ucy4gCisKIDIwMTItMDUtMDggIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJha3Vj
b0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtDTWFrZV0gRmluZEdTdHJlYW1lcjogRml4IHRoZSBi
dWlsZCB3aXRoIHN0YXRpYyBXZWJDb3JlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140936</attachid>
            <date>2012-05-09 07:03:43 -0700</date>
            <delta_ts>2012-05-09 23:10:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85986-20120509230342.patch</filename>
            <type>text/plain</type>
            <size>37890</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMzNTkxZTdjZTk0MmVh
OWFkNGFmOTlkN2RmYjAwNWIxNjdkMWRlMi4uOTUzYTVjOTMwMTJmYmViM2E4MjI2NzZkZGI4ZTc1
Zjg4OWI4MjYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA1LTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSBzdXNw
ZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1c3BlbmRBbmltYXRpb25zIGZ1
bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3Nz
LXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBzaW5jZSB3ZSBhcmUgaW1wcm92aW5nIGhlcmUgdGhlIGluZnJhLXN0cnVjdHVy
ZSBmb3IgdGVzdGluZworICAgICAgICBhIHNwZWNpZmljIG1ldGhvZC4KKworICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c3VzcGVu
ZEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaWRsOgorCiAyMDEyLTA1LTA5ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBTaGFkb3dSb290IG5lZWRzIGFwcGx5QXV0aG9yU3R5bGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKaW5kZXggM2ZhZTRlNjgzMzFmOTUxY2MzZjA1MmVhZjg1Mjc0OTIxYTdmMTczOS4uODIy
MTEwM2ViNjMwYzFkYzM3ODA2ZTIzOWMyNDM3MzM3YjI1YWY4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1A
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50
ZXJuYWxzIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1OTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlIHN1c3BlbmRBbmltYXRpb25zIGZ1bmN0aW9ucywgYmVjYXVzZSBpdCBp
cyBhYmxlIHRvIHdvcmsgaW4gdGhlIAorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRo
ZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuaDoKKwogMjAxMi0wNS0wOSAgTWlraGFpbCBQb3pkbnlha292ICA8
bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIExheW91
dFRlc3RDb250cm9sbGVyIGFkZFVzZXJTY3JpcHQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwppbmRleCA3NzA1MjZlNTNkYTdlZDA1YzU0MjQxYTlmNTdjMGQ1MTQ3NTdhYTJmLi5kMjMzMTQ3
OWY2NzRiNzdhNTM0MGQyMTA5YWM5MmRjYmFkOTc0ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTItMDUtMDkgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1z
dW5nLmNvbT4KKworICAgICAgICBNb3ZlIHN1c3BlbmRBbmltYXRpb25zIHRvIHVzZSBJbnRlcm5h
bHMgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODU5ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFi
bGUgdG8gd29yayBpbiB0aGUgCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIElu
dGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKKwog
MjAxMi0wNS0wNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIENvbnZlcnQgaXNQYWdlQm94VmlzaWJsZSB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFj
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCAwM2IwOTE2NDQ3OTZjZTUyOTU4MDliMjc0ZjJmNjIwZDY2
MDVhYmY3Li5hMGQ4NGQwZWM4NjhhOTg1YTExYmY1Y2I1MWIzMjM2YzAzMWNkMzA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDUtMDkgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHN1c3BlbmRBbmltYXRpb25z
IHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgZnVuY3Rpb25zLCBi
ZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCisgICAgICAgIGNyb3NzLXBvcnQgd2F5
IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBXZWJLaXQub3Jk
ZXI6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkZyYW1lUHJpdmF0ZS5oOgorCiAyMDEyLTA1LTA4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBGaXhlIENocm9taXVtIGJ1aWxkLCBhbmQgYWRkIGEgRklYTUUg
Y29tbWVudCBhYm91dCBhIGxheWVyaW5nIHZpb2xhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggOGE5
Mzk0YTNjMWMzNGM4ZDI0NDE5MjA2NDQ3OWJhZDAzZmRjYzUyNS4uYzI2ODE4OTkzYTk1OGJlYTkx
Y2QwZTM4YjY0MTE2NmE4MWZlNDI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBz
dXNwZW5kQW5pbWF0aW9ucyBmdW5jdGlvbnMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGlu
IHRoZSAKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxzIGludGVy
ZmFjZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
OgorCiAyMDEyLTA1LTA4ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBbUXRdIFgxMSBwbHVnaW5zIG5lZWQgdG8gYmUgcmV3b3JrZWQgZm9yIFF0NStXSzEK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwppbmRleCBkMzMwZDIzZDdmM2FjMjRiZDhkNWE2ZWI4YjVkMDVlMTljZjFj
OWQ2Li44NTk3Y2ZlZmUyOWM4ODZjMmY0ZjJmYjM3ZmY2ODk2ZmRjN2M3NmRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDUtMDkgIEd5dXlvdW5nIEtpbSAgPGd5dXlv
dW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHN1c3BlbmRBbmltYXRpb25zIHRv
IHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODU5ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgZnVuY3Rpb25zLCBiZWNh
dXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRo
cm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lX
ZWJGcmFtZVByaXZhdGUuaWRsOgorICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKiBX
ZWJGcmFtZS5oOgorCiAyMDEyLTA1LTA3ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlZmFjdG9yIHdpbmRvd0NsaXBSZWN0Rm9yTGF5ZXIgdG8g
cmVtb3ZlIHRoZSBleHBsaWNpdCBSZW5kZXJMYXllciBkZXBlbmRlbmN5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
OTJiODJjOTY5ZDczM2RjM2JkZjI4ZGY1MzlhMzRmOTJjOTYzMDBjNS4uOTAyZTVhZjY2MTdhNjIy
YTkyYmYxMzYzOWY2OWY0MzdjNTZiZmRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2Vi
S2l0Mi5kZWY6IEFkZCBhIHN5bWJvbCBmaWx0ZXIgZm9yIHN1c3BlbmRBbmltYXRpb25zLgorCiAy
MDEyLTA1LTA5ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29t
PgogCiAgICAgICAgIFtRdF0gVGFwLXRvLXpvb20gem9vbXMgdG8gd3JvbmcgYXJlYS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA2NzgzOWY2Y2EyZTQyMGRlYjdjNDIwMWYw
ZGM2ZjJhNzFkY2M5M2U5Li43NzQyMDMyNTVjMGM5YzdkYmIzYmMyYWM2Y2EwZjkzMzRlYmY5YzIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMDA4LDYgKzEwMDgsMjAg
QEAgYm9vbCBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2libGUoRG9jdW1lbnQqIGRvY3VtZW50LCBp
bnQgcGFnZU51bWJlciwgRXhjZXB0aW9uQ28KICAgICByZXR1cm4gZG9jdW1lbnQtPmlzUGFnZUJv
eFZpc2libGUocGFnZU51bWJlcik7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzdXNwZW5kQW5pbWF0
aW9ucyhEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAg
IGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQW5pbWF0aW9u
Q29udHJvbGxlciogY29udHJvbGxlciA9IGRvY3VtZW50LT5mcmFtZSgpLT5hbmltYXRpb24oKTsK
KyAgICBpZiAoIWNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRyb2xsZXIt
PnN1c3BlbmRBbmltYXRpb25zKCk7Cit9CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiB2
b2lkIEludGVybmFsczo6d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50LCBFbGVtZW50KiBlbGVtZW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKaW5kZXggMzkxZDM3NWZhMDNlYjdkMDFiNTAzOTg0MzFhYWFhYjk3MmUwYzFlZS4uZTA3
ZjRiYzUyZGU1Yjg5YzZkMTRkNDliYTk4YTc4MjJhYzVlNTQ3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCkBAIC0xNjMsNiArMTYzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRO
ZXR3b3JrSW5mb3JtYXRpb24oRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgbG9u
ZyBiYW5kd2lkdGgsIGJvb2wgbWV0ZXJlZCwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgdm9pZCBz
dXNwZW5kQW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKwogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZMaXZlTm9kZXMoKSBjb25z
dDsKICAgICB1bnNpZ25lZCBudW1iZXJPZkxpdmVEb2N1bWVudHMoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAwNWY2ZDM0Zjg4ODcxMWY4ZTllMGRhNjJmNmEz
MzYwNmJiMjE4MmZiLi4zNDc2NTcxYWIyNGU0YWU5NTYyM2U4MDk0ZGM4YWQwZjUxMjkyMWM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xMzIsNiArMTMyLDggQEAgbW9k
dWxlIHdpbmRvdyB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEludGVybmFsU2V0dGlu
Z3Mgc2V0dGluZ3M7CiAKKyAgICAgICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhpbiBEb2N1bWVu
dCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOworCiAjaWYgZGVmaW5lZChFTkFCTEVf
QkFUVEVSWV9TVEFUVVMpICYmIEVOQUJMRV9CQVRURVJZX1NUQVRVUwogICAgICAgICB2b2lkIHNl
dEJhdHRlcnlTdGF0dXMoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIERPTVN0cmluZyBldmVudFR5
cGUsIGluIGJvb2xlYW4gY2hhcmdpbmcsIGluIGRvdWJsZSBjaGFyZ2luZ1RpbWUsIGluIGRvdWJs
ZSBkaXNjaGFyZ2luZ1RpbWUsIGluIGRvdWJsZSBsZXZlbCkgcmFpc2VzIChET01FeGNlcHRpb24p
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAppbmRleCAwMzRmMTg4ZDM0NzE5MDE1
OTIxMDA2ZjlkMzY1YTc5MTg2NzI2MzY4Li5kNWE2NmFlMTBmYWU0NWUyMmIwMWY5ODQwZWE0MGQ2
NTA1YzU2NTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKQEAgLTMyMywxOCArMzIzLDYg
QEAgU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUo
Y29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW0KICAgICByZXR1cm4gU3RyaW5nKCJmcmFtZSAoYW5v
bnltb3VzKSIpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c3VzcGVuZEFu
aW1hdGlvbnMoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQotewotICAgIFdlYkNvcmU6OkZyYW1lKiBm
cmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7Ci0KLSAgICBpZiAoIWZyYW1l
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJDb3JlOjpBbmltYXRpb25Db250cm9sbGVyICph
bmltYXRpb25Db250cm9sbGVyID0gZnJhbWUtPmFuaW1hdGlvbigpOwotICAgIGlmIChhbmltYXRp
b25Db250cm9sbGVyKQotICAgICAgICBhbmltYXRpb25Db250cm9sbGVyLT5zdXNwZW5kQW5pbWF0
aW9ucygpOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0VmFsdWVGb3JV
c2VyKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIG5vZGVPYmplY3QsIGNvbnN0IFN0
cmluZyYgdmFsdWUpCiB7CiAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmwuaAppbmRleCAzNmEwNjdiM2RlMDlmZjcwMTQ1ODk4MGMyNTEx
YzY2MmMzNWY4Yjk1Li5mMzQyMGUwMjNhMTlhMzM2YWMxYzQ0NjVkMTc0OTg3ZWY2ODY1NDc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmwuaApAQCAtNjUsNyArNjUsNiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgcmVzdW1lQW5pbWF0aW9ucyhFdmFzX09iamVjdCogZXdrRnJhbWUpOwogICAgIHN0
YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHNlbGVjdGlvblJlY3RhbmdsZShjb25zdCBFdmFzX09iamVj
dCogZXdrRnJhbWUpOwogICAgIHN0YXRpYyBTdHJpbmcgc3VpdGFibGVEUlRGcmFtZU5hbWUoY29u
c3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKLSAgICBzdGF0aWMgdm9pZCBzdXNwZW5kQW5pbWF0
aW9ucyhFdmFzX09iamVjdCogZXdrRnJhbWUpOwogICAgIHN0YXRpYyB2b2lkIHNldFZhbHVlRm9y
VXNlcihKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYgbm9kZU9iamVjdCwgY29uc3QgU3RyaW5nJiB2
YWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0QXV0b2ZpbGxlZChKU0NvbnRleHRSZWYsIEpTVmFs
dWVSZWYgbm9kZU9iamVjdCwgYm9vbCBhdXRvZmlsbGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRE
ZWZlcnNMb2FkaW5nKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGRlZmVycyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrLmNwcAppbmRleCAxYTBmMzJmMmRjNDBjNjFjMGQ5M2I4MGQ4ODg2YTc2NTBk
Njk0ZTRlLi41ZWI1ZTRmNzE2YmQ1YzAxZmMxNTNiZmQ2NDYxNTU5YTEwOGZkZGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTM2MywxNSArMzYzLDYgQEAgdW5zaWduZWQgaW50IER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKFdlYktpdFdl
YkZyYW1lKgogICAgIHJldHVybiBjb3JlRnJhbWUtPmFuaW1hdGlvbigpLT5udW1iZXJPZkFjdGl2
ZUFuaW1hdGlvbnMoY29yZUZyYW1lLT5kb2N1bWVudCgpKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnN1c3BlbmRBbmltYXRpb25zKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkK
LXsKLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJh
bWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHJldHVybiBjb3JlRnJhbWUtPmFuaW1hdGlvbigp
LT5zdXNwZW5kQW5pbWF0aW9ucygpOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6cmVzdW1lQW5pbWF0aW9ucyhXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiB7CiAgICAgRnJhbWUq
IGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCA3ZGI4
NWNmZmU0NzlhYmViZmZmM2Q4NDdiNjIyY2VlYWNmMzU3MzI4Li4yMGQ4MzdlYTFlM2Y3ZmYwNjYy
NDE1NTRmZGJjODljMTUyZTNjNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtNzIsNyAr
NzIsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgcGF1c2VUcmFuc2l0aW9uKFdlYktpdFdl
YkZyYW1lKiwgY29uc3QgY2hhciogbmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IGNoYXIqIGVsZW1l
bnQpOwogICAgIHN0YXRpYyBXVEY6OkNTdHJpbmcgbWFya2VyVGV4dEZvckxpc3RJdGVtKFdlYktp
dFdlYkZyYW1lKiwgSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmIG5vZGVPYmplY3QpOwogICAgIHN0
YXRpYyB1bnNpZ25lZCBpbnQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKFdlYktpdFdlYkZyYW1l
Kik7Ci0gICAgc3RhdGljIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoV2ViS2l0V2ViRnJhbWUqKTsK
ICAgICBzdGF0aWMgdm9pZCByZXN1bWVBbmltYXRpb25zKFdlYktpdFdlYkZyYW1lKik7CiAgICAg
c3RhdGljIHZvaWQgY2xlYXJNYWluRnJhbWVOYW1lKFdlYktpdFdlYkZyYW1lKik7CiAgICAgc3Rh
dGljIEF0a09iamVjdCogZ2V0Rm9jdXNlZEFjY2Vzc2libGVFbGVtZW50KFdlYktpdFdlYkZyYW1l
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJLaXQub3JkZXIKaW5kZXggNTE0ODgxNDg0YzA0ZDBhMTBhMTEwNWQ2YWYz
NTIwZTY1ZTYzZmFjOC4uMjFkOTZkODI0MDk1NDhlOTczYTk3NmJiOWE1NzIwNTRkNjc0Yzg2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYktpdC5vcmRlcgpAQCAtMTIyMSw3ICsxMjIxLDYgQEAgX1dLRXhlY3V0YWJs
ZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZAogX19aTks3V2ViQ29yZTEyQ2hyb21lQ2xp
ZW50MjlkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZUVSS05TXzE3Vmlld3BvcnRBcmd1bWVu
dHNFCiAtW1dlYlZpZXcoV2ViUHJpdmF0ZSkgc2V0RnJhbWVTaXplOl0KIC1bV2ViRnJhbWUoV2Vi
S2l0RGVidWcpIHJlbmRlclRyZWVBc0V4dGVybmFsUmVwcmVzZW50YXRpb25Gb3JQcmludGluZzpd
Ci0tW1dlYkZyYW1lKFdlYlByaXZhdGUpIF9zdXNwZW5kQW5pbWF0aW9uc10KIC1bV2ViRnJhbWUo
V2ViUHJpdmF0ZSkgX3Jlc3VtZUFuaW1hdGlvbnNdCiArW1dlYlZpZXcoV2ViUHJpdmF0ZSkgX3Bv
aW50aW5nSGFuZEN1cnNvcl0KIF9XS0dldENGVVJMUmVzcG9uc2VVUkwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDAyZjRhM2M2OGFjM2M4M2Q4MjkzYTVlZTI1YWU0OWE2
NjM4MjRlNGYuLmFkNDM2NDM3ZGFjMjRjM2U5YTA3YWE1YmI3YzJiNTk0YTBhNmFiOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtOTk4LDE1ICs5OTgsNiBAQCBzdGF0
aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKICAgICByZXR1cm4gY29udHJvbGxlci0+bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKGZyYW1l
LT5kb2N1bWVudCgpKTsKIH0KIAotLSAodm9pZCkgX3N1c3BlbmRBbmltYXRpb25zCi17Ci0gICAg
RnJhbWUqIGZyYW1lID0gY29yZShzZWxmKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1
cm47Ci0gICAgICAgIAotICAgIGZyYW1lLT5hbmltYXRpb24oKS0+c3VzcGVuZEFuaW1hdGlvbnMo
KTsKLX0KLQogLSAodm9pZCkgX3Jlc3VtZUFuaW1hdGlvbnMKIHsKICAgICBGcmFtZSogZnJhbWUg
PSBjb3JlKHNlbGYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRl
LmgKaW5kZXggY2I1MjFjM2VhNDM2Y2YzNjM4ZDE5ZTJiODE1MzhiODEyNTBhZjkyNC4uNGI3Yzc1
OTA0Yzc3Mzk2ZjhhZDVjMTgzYzEzNzQ3MDcxOTFlMjNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCkBAIC0xMDgsNyArMTA4LDYgQEAgdHlwZWRlZiBl
bnVtIHsKIC0gKHVuc2lnbmVkKV9udW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnM7CiAKIC8vIFN1c3Bl
bmQgYW5kIHJlc3VtZSBhbmltYXRpb25zIChpbmNsdWRlcyBib3RoIENTUyB0cmFuc2l0aW9ucyBh
bmQgQ1NTIGFuaW1hdGlvbnMpLgotLSAodm9pZClfc3VzcGVuZEFuaW1hdGlvbnM7CiAtICh2b2lk
KV9yZXN1bWVBbmltYXRpb25zOwogCiAtICh2b2lkKV9yZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdt
ZW50OihET01Eb2N1bWVudEZyYWdtZW50ICopZnJhZ21lbnQgc2VsZWN0UmVwbGFjZW1lbnQ6KEJP
T0wpc2VsZWN0UmVwbGFjZW1lbnQgc21hcnRSZXBsYWNlOihCT09MKXNtYXJ0UmVwbGFjZSBtYXRj
aFN0eWxlOihCT09MKW1hdGNoU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGY1NWUy
NTY2NzlhMWJmYWNlMjdjNjllYTBlYzFiYmNhNTc4MGUxNjIuLjQ0NWU2ODQ4OGJhODNhOWU5MmJj
OWY2ZDhhNzY1NzVhOTFmMzdhZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC0zODQsMTkg
KzM4NCw2IEBAIGludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6bnVtYmVyT2ZBY3RpdmVBbmlt
YXRpb25zKFFXZWJGcmFtZSAqZnJhbWUpCiAgICAgcmV0dXJuIGNvbnRyb2xsZXItPm51bWJlck9m
QWN0aXZlQW5pbWF0aW9ucyhjb3JlRnJhbWUtPmRvY3VtZW50KCkpOwogfQogCi12b2lkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0OjpzdXNwZW5kQW5pbWF0aW9ucyhRV2ViRnJhbWUgKmZyYW1lKQot
ewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKGZyYW1lKTsK
LSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQW5pbWF0aW9uQ29u
dHJvbGxlciogY29udHJvbGxlciA9IGNvcmVGcmFtZS0+YW5pbWF0aW9uKCk7Ci0gICAgaWYgKCFj
b250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb250cm9sbGVyLT5zdXNwZW5kQW5p
bWF0aW9ucygpOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpyZXN1bWVBbmlt
YXRpb25zKFFXZWJGcmFtZSAqZnJhbWUpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJG
cmFtZVByaXZhdGU6OmNvcmUoZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IGVhZGMxYWYz
NTY2Mjk5YTgzZTMwOTVmNmRjNDFkMWFlN2IzNmY0MjkuLmQ4NWEzMzZjOTYzNjQxOGRkZDI0ODk5
NmVhNjUzOTdlMjg2OTJkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTE0MSw3ICsxNDEsNiBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY2xlYXJGcmFtZU5hbWUoUVdlYkZyYW1lKiBmcmFt
ZSk7CiAgICAgc3RhdGljIHZvaWQgb3ZlcndyaXRlUGx1Z2luRGlyZWN0b3JpZXMoKTsKICAgICBz
dGF0aWMgaW50IG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhRV2ViRnJhbWUqKTsKLSAgICBzdGF0
aWMgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhRV2ViRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBy
ZXN1bWVBbmltYXRpb25zKFFXZWJGcmFtZSopOwogICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZQYWdl
cyhRV2ViRnJhbWUqIGZyYW1lLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKICAgICBzdGF0
aWMgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChRV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBR
U3RyaW5nJiBpZCwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRsIGIvU291cmNlL1dl
YktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbAppbmRleCBjYjdhNDY5OTcy
ODQ2ZGY3MDcxYzIxNmExYjY0MmQ4OTQ1YWE5OWQ3Li5iY2E2NWU0MjUzZTBkYmI5ZDFlN2Q1OTQy
Yjc4MGU1NjBlY2IyZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2Vz
L0lXZWJGcmFtZVByaXZhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMv
SVdlYkZyYW1lUHJpdmF0ZS5pZGwKQEAgLTExMCw3ICsxMTAsNiBAQCBpbnRlcmZhY2UgSVdlYkZy
YW1lUHJpdmF0ZSA6IElVbmtub3duCiAKICAgICBIUkVTVUxUIHJlbmRlclRyZWVBc0V4dGVybmFs
UmVwcmVzZW50YXRpb24oW2luXSBCT09MIGZvclByaW50aW5nLCBbb3V0LCByZXR2YWxdIEJTVFIq
IHJlc3VsdCk7CiAKLSAgICBIUkVTVUxUIHN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgSFJFU1VM
VCByZXN1bWVBbmltYXRpb25zKCk7CiAKICAgICBIUkVTVUxUIGxvYWRQbGFpblRleHRTdHJpbmco
W2luXSBCU1RSIHN0cmluZywgW2luXSBCU1RSIHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5k
ZXggMWE0YjY3NmEwNjNhNjEwYjg2MTQ4ZjM3ZmM0NTM0OWFhYjFjN2YzZC4uYzBlYTUzMzEzMmM2
OGEwMzAyZmVmYzQ0ZDBkMDAyZmQ1MGMwNWQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAt
MTMxMSwxNiArMTMxMSw2IEBAIEhSRVNVTFQgV2ViRnJhbWU6Om51bWJlck9mQWN0aXZlQW5pbWF0
aW9ucyhVSU5UKiBudW1iZXIpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgV2ViRnJh
bWU6OnN1c3BlbmRBbmltYXRpb25zKCkKLXsKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHRoaXMp
OwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBFX0ZBSUw7Ci0KLSAgICBmcmFtZS0+
YW5pbWF0aW9uKCktPnN1c3BlbmRBbmltYXRpb25zKCk7Ci0gICAgcmV0dXJuIFNfT0s7Ci19Ci0K
IEhSRVNVTFQgV2ViRnJhbWU6OnJlc3VtZUFuaW1hdGlvbnMoKQogewogICAgIEZyYW1lKiBmcmFt
ZSA9IGNvcmUodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5o
IGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuaAppbmRleCBjN2RkZmU4NjBmYTk2NWQyYjQ4
MGY5Mzg0NTE2NDViNWJlMDczZWUxLi5mYWUyYWMzNjAwZDdmNmQ2MWYzM2VhZWU2NTAwNzBhYWEz
NDlkZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmgKQEAgLTI2MCw3ICsyNjAsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHBhdXNlQW5pbWF0aW9uKEJTVFIg
YW5pbWF0aW9uTmFtZSwgSURPTU5vZGUqLCBkb3VibGUgc2Vjb25kc0Zyb21Ob3csIEJPT0wqIGFu
aW1hdGlvbldhc1J1bm5pbmcpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBwYXVzZVRyYW5zaXRpb24oQlNUUiBwcm9wZXJ0eU5hbWUsIElET01Ob2RlKiwgZG91YmxlIHNl
Y29uZHNGcm9tTm93LCBCT09MKiB0cmFuc2l0aW9uV2FzUnVubmluZyk7CiAgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhVSU5UKik7
Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHN1c3BlbmRBbmltYXRpb25z
KCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlc3VtZUFuaW1hdGlv
bnMoKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgbG9hZFBsYWluVGV4
dFN0cmluZyhCU1RSIHN0cmluZywgQlNUUiB1cmwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5k
ZXggMDM0MmMxZjQ1ODY4N2I3YTI4NGZjZGE4NWQyNTQ1MzAwZWJhNTZjMy4uNmUxYzUyYzY1Zjhj
NjJhYmU1OGIyZWJmYjhmMGNhMmY5ZTE3YWI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAt
MjU1LDMgKzI1NSw0IEBAIEVYUE9SVFMKICAgICAgICAgP3dlYmtpdFdpbGxFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBAWgogICAgICAg
ICA/d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50QERvY3VtZW50QFdlYkNvcmVAQFFB
RVhQQVZFbGVtZW50QDJAQFoKICAgICAgICAgP2lzUGFnZUJveFZpc2libGVARG9jdW1lbnRAV2Vi
Q29yZUBAUUFFX05IQFoKKyAgICAgICAgP3N1c3BlbmRBbmltYXRpb25zQEFuaW1hdGlvbkNvbnRy
b2xsZXJAV2ViQ29yZUBAUUFFWFhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCBjMDMzODUz
NzQ2MzY4ZDY1ZDY1NTJmNzUxZDczZDdhMjg0M2ZkN2Y4Li40NTQ4YWUwZWM0M2Q0YTQ5OWM3YTVj
Mzg1ZDMyMDg3MzVjMjkzZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTEwNyw2ICsx
MDcsNyBAQCBfWk5LN1dlYkNvcmU1UmFuZ2U0dGV4dEV2OwogX1pOSzdXZWJDb3JlOVRyZWVTY29w
ZTE0Z2V0RWxlbWVudEJ5SWRFUktOM1dURjEyQXRvbWljU3RyaW5nRTsKIF9aTks3V2ViQ29yZTE0
RG9jdW1lbnRNYXJrZXIxMWRlc2NyaXB0aW9uRXY7CiBfWk43V2ViQ29yZThEb2N1bWVudDE2aXNQ
YWdlQm94VmlzaWJsZUVpOworX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxN3N1c3Bl
bmRBbmltYXRpb25zRXY7CiBfWk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxMmdldEhp
Z2hsaWdodEVQTlNfOUhpZ2hsaWdodEU7CiBfWk43V2ViQ29yZTI0SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uMjZpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZUVQTlNfNFBhZ2VFOwogX1pON1dlYkNv
cmUyNEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjE3c19mcm9udGVuZENvdW50ZXJFOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRkZGJjM2UzN2Zj
YjI2OGI2YjZlZDJmYTUwMjZhMjQ2NmE0NGM0MTYuLmJjMGQwM2I1YzY3MjFjNjVhNzNlYmRmNjM1
NTk0MjNhMDIyYzc3NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1
eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMg
dG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzdXNwZW5kQW5pbWF0aW9ucyBmdW5jdGlvbnMsIGJl
Y2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZSAKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkg
dGhyb3VnaCB0aGUgSW50ZXJuYWxzIGludGVyZmFjZQorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJy
eS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250
cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlv
dXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvTGF5
b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CisKIDIwMTItMDUtMDkgIEFsbGFuIFNhbmRmZWxkIEpl
bnNlbiAgPGFsbGFuLmplbnNlbkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBPUldUIGZhaWxz
IHdpdGggUXQgNSBhbmQgV0syLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCmluZGV4IDhkYzZjZDUzZGNiZjNiMTMzODNlOWQ0OTYyNTA3NDkxNDRmOTY0
NGQuLjUzNzhmMDdjNTU3YTkyMmE2NWFmZGYzZDdmNGJhNWRhMWNhYWNlMjEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE4NjEsMTMgKzE4
NjEsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnNDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplYwogICAgIHJldHVybiBKU1ZhbHVlTWFrZU51
bWJlcihjb250ZXh0LCBjb250cm9sbGVyLT5udW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSk7CiB9
CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHN1c3BlbmRBbmltYXRpb25zQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9s
bGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnN1c3BlbmRBbmltYXRpb25zKCk7Ci0g
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNW
YWx1ZVJlZiByZXN1bWVBbmltYXRpb25zQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKQogewogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nh
c3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkp
OwpAQCAtMjM1MCw3ICsyMzQzLDYgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgIm1hcmtlclRleHRGb3JMaXN0SXRl
bSIsIG1hcmtlclRleHRGb3JMaXN0SXRlbUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgIm5v
dGlmeURvbmUiLCBub3RpZnlEb25lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAibnVtYmVy
T2ZBY3RpdmVBbmltYXRpb25zIiwgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKLSAgICAgICAgeyAic3VzcGVuZEFuaW1hdGlvbnMiLCBzdXNwZW5kQW5pbWF0aW9uc0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlc3VtZUFuaW1hdGlvbnMiLCByZXN1bWVBbmlt
YXRpb25zQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAib3ZlcnJpZGVQcmVmZXJlbmNlIiwg
b3ZlcnJpZGVQcmVmZXJlbmNlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicGFnZU51bWJl
ckZvckVsZW1lbnRCeUlkIiwgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGEz
ZTNlOWI5NTc0ZTMxYmQ0MmJlN2NjZDg4YjkyZTdhODNhY2FlNWQuLjM4Nzg0ZmQ5YzcxOGJkN2Q1
YTNhYzEwMjg5NmZlMTFiZTRmYWQ5ZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaApAQCAtMjkwLDcgKzI5MCw2IEBAIHB1YmxpYzoKICAgICBib29sIHBh
dXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKEpTU3RyaW5nUmVmIGFuaW1hdGlvbk5h
bWUsIGRvdWJsZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpOwogICAgIGJvb2wgcGF1c2VU
cmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwg
ZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJZCk7CiAgICAgdW5zaWduZWQgbnVtYmVy
T2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3Q7Ci0gICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucygp
IGNvbnN0OwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpIGNvbnN0OwogCiAgICAgdm9pZCBh
ZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpT
U3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9z
dCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVy
QmxhY2tCZXJyeS5jcHAKaW5kZXggYmQxYTViZDY2ZjVhZGNlNjY3ZjJhNTFiNzBlOTQ1OTZhYzM0
ZTZlNC4uZWI4NmJkZWUwYTRiNmNhZmMzYjAwZjNiMThlMjQ0NjUzNDMyN2QyNiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJs
YWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0
VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcApAQCAtNzA1LDEyICs3MDUsNiBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZShjb25zdCBKU1N0cmlu
Z1JlZiBtb2RlKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKCkgY29uc3QKLXsKLSAgICBpZiAobWFpbkZyYW1l
ICYmIG1haW5GcmFtZS0+YW5pbWF0aW9uKCkpCi0gICAgICAgIG1haW5GcmFtZS0+YW5pbWF0aW9u
KCktPnN1c3BlbmRBbmltYXRpb25zKCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIGlmIChtYWluRnJhbWUgJiYgbWFpbkZy
YW1lLT5hbmltYXRpb24oKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA4YmI1MzE5MTEwNGQ5OWM5ZDg0MzUz
NzI3ODhjNzI2OTIyYzNlNGUyLi4wOWFmMzY1ZjgyYjZjMWM1YjA3N2JjMmYzOWE2MzYzNmVmNjBj
ZGIyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yMTIsNyArMjEyLDYgQEAgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhv
ZCgic2hvd1dlYkluc3BlY3RvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvd1dlYkluc3Bl
Y3Rvcik7CiAgICAgYmluZE1ldGhvZCgic2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2si
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNr
KTsKICAgICBiaW5kTWV0aG9kKCJzdGFydFNwZWVjaElucHV0IiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpzdGFydFNwZWVjaElucHV0KTsKLSAgICBiaW5kTWV0aG9kKCJzdXNwZW5kQW5pbWF0aW9u
cyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlvbnMpOwogICAgIGJpbmRN
ZXRob2QoInRlc3RSZXBhaW50IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjp0ZXN0UmVwYWludCk7
CiAgICAgYmluZE1ldGhvZCgid2FpdEZvclBvbGljeURlbGVnYXRlIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjp3YWl0Rm9yUG9saWN5RGVsZWdhdGUpOwogICAgIGJpbmRNZXRob2QoIndhaXRVbnRp
bERvbmUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRVbnRpbERvbmUpOwpAQCAtMTA1OSwx
OSArMTA1OCw2IEBAIGludCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmlt
YXRpb25zKCkKICAgICByZXR1cm4gY29udHJvbGxlci0+bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25z
KCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKCkK
LXsKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBtX3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFt
ZSgpOwotICAgIGlmICghd2ViRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYkFuaW1h
dGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJGcmFtZS0+YW5pbWF0aW9uQ29udHJvbGxl
cigpOwotICAgIGlmICghY29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29udHJv
bGxlci0+c3VzcGVuZEFuaW1hdGlvbnMoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6cmVzdW1lQW5pbWF0aW9ucygpCiB7CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gbV9zaGVs
bC0+d2ViVmlldygpLT5tYWluRnJhbWUoKTsKQEAgLTExNTYsMTIgKzExNDIsNiBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVgogICAgIHJlc3VsdC0+c2V0KG51bWJlck9mQWN0aXZlQW5pbWF0aW9u
cygpKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlvbnMo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIHN1c3Bl
bmRBbmltYXRpb25zKCk7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VtZUFuaW1hdGlvbnMoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmlu
ZGV4IDczODNlY2ZiNTE4N2Q4NjczZDVlZjAzYTE2OGYxZDUyMTA5MTNmN2IuLmExODNkYmI3NTY2
YTNmODQyNDIyMzhkMDRmNjhmNDQ1ZTc1OTg1ZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjQzLDcgKzI0Myw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGRpc2FibGVBdXRvUmVzaXplTW9kZShj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBudW1iZXJPZkFj
dGl2ZUFuaW1hdGlvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAg
IHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAgICAgdm9pZCBkaXNhYmxlSW1hZ2VMb2FkaW5nKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldEljb25EYXRhYmFzZUVuYWJsZWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpAQCAtNTcwLDcgKzU2OSw2IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQo
Y29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0
IFdlYktpdDo6V2ViU3RyaW5nJiBlbGVtZW50SWQpOwogICAgIGJvb2wgZWxlbWVudERvZXNBdXRv
Q29tcGxldGVGb3JFbGVtZW50V2l0aElkKGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CiAgICAg
aW50IG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpOwotICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlv
bnMoKTsKICAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKTsKIAogICAgIC8vIFVzZWQgZm9yIHRl
c3QgdGltZW91dHMuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0
VGVzdENvbnRyb2xsZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRl
c3RDb250cm9sbGVyRWZsLmNwcAppbmRleCAzZmEyZWE0ZGNhZmQ3M2U5ZGNlZGQ1Njc3MTVmYTNl
MDliMWQ4NDk3Li5hNDUzMmYzYzQ4NGNmMGFmNmQ3ZGI5ODNmMWYxYzg0ZTQ3MzM3NTQ5IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVm
bC5jcHAKQEAgLTY0OCwxMSArNjQ4LDYgQEAgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJuIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6YWN0aXZlQW5pbWF0aW9uc0NvdW50KGJyb3dzZXItPm1haW5GcmFtZSgp
KTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlvbnMoKSBj
b25zdAotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c3VzcGVuZEFuaW1hdGlvbnMo
YnJvd3Nlci0+bWFpbkZyYW1lKCkpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpy
ZXN1bWVBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnJlc3VtZUFuaW1hdGlvbnMoYnJvd3Nlci0+bWFpbkZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggZGU4
MGM3NTBiYjkyZDZiNWM1YTE2Mzk3YjBlODVjYzYyMzk5MzE0Mi4uOWY1NTMxNDljMmZhM2YxNDk2
NTk1MGE2MDJmMDAxMjA4NGY5NTYwZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC03ODcsMTEgKzc4Nyw2IEBAIHVu
c2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBj
b25zdAogICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6Om51bWJlck9mQWN0aXZl
QW5pbWF0aW9ucyhtYWluRnJhbWUpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
dXNwZW5kQW5pbWF0aW9ucygpIGNvbnN0Ci17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzdXNwZW5kQW5pbWF0aW9ucyhtYWluRnJhbWUpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnJlc3VtZUFuaW1hdGlvbnMobWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCA3OWMzNjNj
ZjdmMzViMzMwMTk1NGU2NzU4ZTFlYmNhM2ExNDJjN2ZmLi42N2U3YmUxOTI3ZTMxMWU5ODNjNWM2
ODU4MTczNWRlNTQ1M2JjMzA3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC04NDQsMTEgKzg0NCw2IEBAIHVuc2lnbmVk
IExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAog
ICAgIHJldHVybiBbbWFpbkZyYW1lIF9udW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnNdOwogfQogCi12
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzdXNwZW5kQW5pbWF0aW9ucygpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIFttYWluRnJhbWUgX3N1c3BlbmRBbmltYXRpb25zXTsKLX0KLQogdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFttYWluRnJhbWUgX3Jlc3VtZUFuaW1hdGlvbnNdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCA0NjRhYzUzODJmNjExZTI0
OGFmNWI5MDIyYmZiMmYzNTFjODA2OTI4Li42YjkxMTRiNDkwMDJkYTZhNmEwY2MzNjg5NmZmMjkz
NzQ0NmNhNTcwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmNwcApAQCAtNTY5LDEzICs1NjksNiBAQCB1bnNpZ25lZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKICAgICByZXR1cm4g
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhmcmFtZSk7
CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKCkgY29u
c3QKLXsKLSAgICBRV2ViRnJhbWUqIGZyYW1lID0gbV9kcnQtPndlYlBhZ2UoKS0+bWFpbkZyYW1l
KCk7Ci0gICAgUV9BU1NFUlQoZnJhbWUpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpz
dXNwZW5kQW5pbWF0aW9ucyhmcmFtZSk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIFFXZWJGcmFtZSogZnJhbWUgPSBtX2Ry
dC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCA5Y2FhM2E5ZjliYTliODk0ZTIyNzdmNjMw
OWRkZTA4NTlhYjdlZDY3Li41NmE4ODE5NzVhNTM3ZWJiYmFiMzY2ZTY4YmNmMmYzOWI1M2MwODE1
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5oCkBAIC0xODcsNyArMTg3LDYgQEAgcHVibGljIHNsb3RzOgogICAgIGJvb2wgZWxlbWVudERv
ZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkKGNvbnN0IFFTdHJpbmcmIGVsZW1lbnRJZCk7
CiAKICAgICB1bnNpZ25lZCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdDsKLSAgICB2
b2lkIHN1c3BlbmRBbmltYXRpb25zKCkgY29uc3Q7CiAgICAgdm9pZCByZXN1bWVBbmltYXRpb25z
KCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0
IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Qcm90b2Nv
bCwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRU
ZXN0Q29udHJvbGxlcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVz
dENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDhkNjBkZmNhNTEzMDkxYzBjMGZkZjAwNTkzZjNjZDYz
MDgyMzgxZmUuLjY3YmM0YTcxMWJjZDlhN2M2OTc0MTA4OWJhYjBmN2IwYzg4NTRmNjkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcApAQCAtMTEyMiwxNSArMTEyMiw2IEBAIHVuc2lnbmVkIExheW91dFRlc3RDb250cm9sbGVy
OjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogICAgIHJldHVybiBudW1iZXI7CiB9
CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKCkgY29uc3QK
LXsKLSAgICBDT01QdHI8SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRlKFF1ZXJ5LCBmcmFt
ZSk7Ci0gICAgaWYgKCFmcmFtZVByaXZhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZyYW1l
UHJpdmF0ZS0+c3VzcGVuZEFuaW1hdGlvbnMoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6cmVzdW1lQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgQ09NUHRyPElXZWJGcmFtZVBy
aXZhdGU+IGZyYW1lUHJpdmF0ZShRdWVyeSwgZnJhbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCBjM2E0M2QyMzJiM2Vh
N2ViOGUwMjU0ZmUxNjM0ZDc5YTkwODQzNmQwLi4wYWI4ODVkZDJlN2QwZjg3ZmEwY2Y3OTBlODI4
MmVkMGRmOGJmZmIzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRU
ZXN0Q29udHJvbGxlcld4LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRU
ZXN0Q29udHJvbGxlcld4LmNwcApAQCAtMzEzLDExICszMTMsNiBAQCB1bnNpZ25lZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlvbnMo
KSBjb25zdAotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLX0KLQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGlt
cGxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGM5NjVmMTViNjg5NTg3ZGQzZGIzYmMxYzM0NzdhZjRhOGU4NzI3Zjcu
LjU0N2ZlY2YzNDM0ZTIxZWU4NmEwOWQzMGIxZTdjZTU5NjkzN2E0MDggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBp
bnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENhbGwgc3VzcGVuZEFuaW1hdGlvbnMgZnVuY3Rpb25zIGZyb20gaW50ZXJuYWxzLCBiZWNhdXNl
IGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3Vn
aCB0aGUgSW50ZXJuYWxzIGludGVyZmFjZS4KKworICAgICAgICAqIGFuaW1hdGlvbnMvcGxheS1z
dGF0ZS1zdXNwZW5kLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9zdG9wLWFuaW1hdGlvbi1v
bi1zdXNwZW5kLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmlt
YXRpb24tZXZlbnRzLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1h
bmltYXRpb24uaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL3N1c3BlbmQtdHJhbnNmb3JtLWFu
aW1hdGlvbi5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL3N1c3BlbmQtdHJhbnNmb3JtLXRy
YW5zaXRpb24uaHRtbDoKKwogMjAxMi0wNS0wOSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5p
ay5yb3R0c2NoZXNAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEdhcmRlbmluZyBhIHRpbWVv
dXQgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9wbGF5LXN0YXRl
LXN1c3BlbmQuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcGxheS1zdGF0ZS1zdXNwZW5k
Lmh0bWwKaW5kZXggNTE4NWYwNzIyOGQ2YjdlODc5MDZhMmViMGVhMTdmYjdhMjVkMDI3ZC4uYzA5
NDk5MzgxNWQ1MDIzYWZjN2Q2ZmY0ODZhOTM0NmY1NjVjMTIzNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9wbGF5LXN0YXRlLXN1c3BlbmQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL3BsYXktc3RhdGUtc3VzcGVuZC5odG1sCkBAIC01Niw4ICs1Niw4IEBACiAK
ICAgICBmdW5jdGlvbiBzdXNwZW5kKCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zdXNwZW5k
QW5pbWF0aW9ucygpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAg
IGludGVybmFscy5zdXNwZW5kQW5pbWF0aW9ucyhkb2N1bWVudCk7CiAgICAgfQogCiAgICAgZnVu
Y3Rpb24gdW5wYXVzZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N0b3At
YW5pbWF0aW9uLW9uLXN1c3BlbmQuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3RvcC1h
bmltYXRpb24tb24tc3VzcGVuZC5odG1sCmluZGV4IDBmMDkwZjQ0ZWQxMzhiNzM1Y2JiMGU1NWI2
NjlmY2RkZDdlZThlYjkuLjAwNGEyZTM5N2RlNzhhNGExOGVlM2RmZWY3OTNiYWQ2NWY0OTRjMmIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3RvcC1hbmltYXRpb24tb24tc3Vz
cGVuZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3RvcC1hbmltYXRpb24tb24t
c3VzcGVuZC5odG1sCkBAIC00MCw4ICs0MCw4IEBACiAgICAgCiAgICAgZnVuY3Rpb24gc3VzcGVu
ZCgpCiAgICAgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc3VzcGVuZEFuaW1hdGlvbnMoKTsKKyAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3VzcGVuZEFu
aW1hdGlvbnMoZG9jdW1lbnQpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiByZXN1bWUoKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRp
b24tZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFu
aW1hdGlvbi1ldmVudHMuaHRtbAppbmRleCAxMWE5Mzk5YjkwMzdkNWRkNGViMWI3YmI0ZDU1NTIx
MGI3YmVmNzY0Li5mYTlmMDBiNzIxYjI4NzNmNjNkNjRkNTBjY2RmZTk3MDcyZmI0NmUzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFuaW1hdGlvbi1l
dmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFu
aW1hdGlvbi1ldmVudHMuaHRtbApAQCAtMzAsOCArMzAsOCBAQAogICAgIAogICAgIGZ1bmN0aW9u
IHN1c3BlbmQoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnN1c3BlbmRBbmltYXRpb25zKCk7
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN1
c3BlbmRBbmltYXRpb25zKGRvY3VtZW50KTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcmVz
dW1lKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUt
YW5pbWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFu
aW1hdGlvbi5odG1sCmluZGV4IDg0ZjE2NWMyYmFkNmUxNDM3ZTgzMDdkMDllZTc1OTRiOGQ2NjRj
ZGEuLmFkNjYyMmRlMGJhMTEyMTIzZTJlYjc0ZGMzNDBhNTZhMWJkZjMxOGEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24uaHRtbApA
QCAtMjksOCArMjksOCBAQAogICAgIAogICAgIGZ1bmN0aW9uIHN1c3BlbmQoKQogICAgIHsKLSAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnN1c3BlbmRBbmltYXRpb25zKCk7CisgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN1c3BlbmRBbmltYXRpb25zKGRvY3Vt
ZW50KTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcmVzdW1lKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC10cmFuc2Zvcm0tYW5pbWF0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL3N1c3BlbmQtdHJhbnNmb3JtLWFuaW1hdGlvbi5odG1sCmlu
ZGV4IGRkN2I0MmE5M2JhMWVmN2Y4MGFmNjk5NjIxYzExMzRmNzI2ZmYwM2UuLjZiYWQyZTE0MTFm
YTA5NjMzYTQ4YTFmMmFmNGFiODBlZGU1MjRjMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvc3VzcGVuZC10cmFuc2Zvcm0tYW5pbWF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9zdXNwZW5kLXRyYW5zZm9ybS1hbmltYXRpb24uaHRtbApAQCAtMzgsOCAr
MzgsOCBAQAogICAgIAogICAgIGZ1bmN0aW9uIHN1c3BlbmRBbmRXYWl0Rm9yQ29tcGxldGlvbigp
CiAgICAgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc3VzcGVuZEFuaW1hdGlvbnMoKTsKKyAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3VzcGVuZEFuaW1h
dGlvbnMoZG9jdW1lbnQpOwogCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3N1c3BlbmQtdHJhbnNmb3JtLXRyYW5zaXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3N1c3BlbmQtdHJhbnNmb3JtLXRyYW5zaXRp
b24uaHRtbAppbmRleCAzOTAwMTJhM2E2ZDQ1ZDhkNDY3OTIxN2I4NzBiNGYwZDUwZTcxMGVkLi5i
ZDM2OTdiMzM5NWQzOWE5MmI4NjMwZmQ1YzY5N2RkNTY0MTg1YzBlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy9zdXNwZW5kLXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvc3VzcGVuZC10cmFuc2Zvcm0tdHJhbnNpdGlvbi5o
dG1sCkBAIC0zMyw4ICszMyw4IEBACiAgICAgCiAgICAgZnVuY3Rpb24gc3VzcGVuZEFuZFdhaXRG
b3JDb21wbGV0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zdXNwZW5kQW5pbWF0aW9u
cygpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFs
cy5zdXNwZW5kQW5pbWF0aW9ucyhkb2N1bWVudCk7CiAKICAgICAgICAgd2luZG93LnNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDMyNjgyMzVjNGFk
YWU0MDM5M2ViMTkwOTlkZjc4NTJjY2QwMmJhYjQuLjI5OTVjZTdiOTJkMTZmZmVlODUxZTAwNzE4
MzZkYzhhOGEzNTFjZTQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNh
bXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVy
bmFscyBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjogQWRkIGEgc3ltYm9sIGZp
bHRlciBmb3Igc3VzcGVuZEFuaW1hdGlvbnMuIAorCiAyMDEyLTA1LTA4ICBSYXBoYWVsIEt1Ym8g
ZGEgQ29zdGEgIDxyYWt1Y29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ01ha2VdIEZpbmRHU3Ry
ZWFtZXI6IEZpeCB0aGUgYnVpbGQgd2l0aCBzdGF0aWMgV2ViQ29yZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>