<?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>143421</bug_id>
          
          <creation_ts>2015-04-05 12:54:13 -0700</creation_ts>
          <short_desc>Remove &quot;go ahead and&quot; from comments</short_desc>
          <delta_ts>2015-04-05 13:19:16 -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>New Bugs</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1082914</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-05 12:54:13 -0700</bug_when>
    <thetext>Remove &quot;go ahead and&quot; from comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082916</commentid>
    <comment_count>1</comment_count>
      <attachid>250161</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-05 12:57:00 -0700</bug_when>
    <thetext>Created attachment 250161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082919</commentid>
    <comment_count>2</comment_count>
      <attachid>250161</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-05 13:09:48 -0700</bug_when>
    <thetext>Comment on attachment 250161
Patch

Commit queue: go ahead and land this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082925</commentid>
    <comment_count>3</comment_count>
      <attachid>250161</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-05 13:13:22 -0700</bug_when>
    <thetext>Comment on attachment 250161
Patch

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

&gt; Source/WebCore/loader/DocumentLoader.cpp:909
&gt; +    // frame have any loads active, so and kill all the loads.

so and kill?

&gt; Source/WebCore/platform/ScrollView.cpp:607
&gt; +    // If we came in here with the view already needing a layout, then do that first.

I the comma useful here?

&gt; Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:1637
&gt; -        return ObjectContentFrame; // Go ahead and hope that we can display the content.
&gt; +        return ObjectContentFrame; // Just hope that we can display the content.

Not convinced this one is an improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082929</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-05 13:18:52 -0700</bug_when>
    <thetext>https://trac.webkit.org/r182364</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250161</attachid>
            <date>2015-04-05 12:57:00 -0700</date>
            <delta_ts>2015-04-05 13:13:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143421-20150405125612.patch</filename>
            <type>text/plain</type>
            <size>64156</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OWM3NzZmOGEwNGYwZjk5NTg1YWFlZGZmYTQ5NTc4ZDk1NzAxZjA1Li5mYTYzYzEwMjU5MTM0NzU2
ZjM0YmNjMDMwZTM2YjZlYzgxN2IxYzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNS0wNC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgImdvIGFoZWFkIGFuZCIgZnJvbSBjb21tZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNDIxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBw
aHJhc2UgImdvIGFoZWFkIGFuZCIgZnJvbSBjb21tZW50cyB3aGVyZSBpdCBkb2Vzbid0IGFkZAor
ICAgICAgICBhbnl0aGluZyAod2hpY2ggaXMgYWxtb3N0IGFsbCBvZiB0aGVtKS4KKworICAgICAg
ICAqIGludGVycHJldGVyL0pTU3RhY2suY3BwOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpncm93
U2xvd0Nhc2UpOgorCiAyMDE1LTA0LTA0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNv
bT4KIAogICAgICAgICBMb2dpY2FsbHkgZW1wdHkgV2Vha0Jsb2NrcyBzaG91bGQgbm90IHBpbiBk
b3duIHRoZWlyIE1hcmtlZEJsb2NrcyBpbmRlZmluaXRlbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI1YTEw
YTMwZDJkZTUzNjQ5OTBjZTRjMWZlOGEzZDlmODEwYzdlMi4uMzIxMDc4Nzc3OTEyZTc4MDA1MTky
YWMwYmEwNjNlMTAyMmE5MzgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDE1LTA0
LTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJl
bW92ZSAiZ28gYWhlYWQgYW5kIiBmcm9tIGNvbW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0MjEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIHBocmFzZSAiZ28gYWhlYWQgYW5k
IiBmcm9tIGNvbW1lbnRzIHdoZXJlIGl0IGRvZXNuJ3QgYWRkCisgICAgICAgIGFueXRoaW5nICh3
aGljaCBpcyBhbG1vc3QgYWxsIG9mIHRoZW0pLgorCisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFj
a2VyOjpkZWxldGVPcmlnaW5Mb2NrRm9yKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjppc1N1cHBv
cnRlZEZvcm1hdCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAg
ICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6c3R5bGVGb3JLZXlmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpz
dHlsZUZvclBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRj
aGVkUHJvcGVydGllcyk6CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6cHVzaERvd25JbmxpbmVTdHls
ZUFyb3VuZE5vZGUpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OmFkZEluY3JlbWVudGFsRGF0YUJ1ZmZlcik6CisgICAgICAgICogbG9hZGVyL2ljb24v
SWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9y
bVVSTEltcG9ydCk6CisgICAgICAgICogcGFnZS9QYWdlT3ZlcmxheS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlT3ZlcmxheTo6ZmFkZUFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
dXBkYXRlU2Nyb2xsYmFycyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3JvbGxD
b250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25p
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRB
ZHZhbmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYXJzZUhUVFBSZWZyZXNoKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnJlbW92ZUNo
aWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRQb3NpdGlvbmVkT2Jq
ZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2VsZWN0aW9uR2Fwcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YmxvY2tTZWxlY3Rpb25HYXBzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphYnNvbHV0ZVJlY3RzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjphYnNvbHV0ZVF1YWRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjphZGRGb2N1c1JpbmdSZWN0cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJs
b2NrQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpoYW5kbGVBZnRl
clNpZGVPZkJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6YWRqdXN0
QmxvY2tDaGlsZEZvclBhZ2luYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tG
bG93OjppbnNlcnRGbG9hdGluZ09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
a0Zsb3c6OmFkZE92ZXJoYW5naW5nRmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2Fwcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrRmxvdzo6YXBwZW5kUnVuc0Zvck9iamVjdCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBvc2l0aW9u
TGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNpemVzTG9naWNhbFdpZHRo
VG9GaXRDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExh
eWVyRXh0ZW5kZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ck1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMaW5lQm94TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaW5lQm94TGlzdDo6
ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0TGluZUJveGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRMaW5lQm94ZXM6
OmRpcnR5UmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dC5o
OgorICAgICAgICAoV2ViQ29yZTo6QnJlYWtpbmdDb250ZXh0OjpoYW5kbGVPdXRPZkZsb3dQb3Np
dGlvbmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkJyZWFraW5nQ29udGV4dDo6aGFuZGxlVGV4dCk6
CisgICAgICAgICogcmVuZGVyaW5nL2xpbmUvTGluZUJyZWFrZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGluZUJyZWFrZXI6Om5leHRMaW5lQnJlYWspOgorICAgICAgICAqIHN0eWxlL1N0eWxl
UmVzb2x2ZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OnJlc29sdmVMb2NhbCk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpk
aXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnQpOgorICAgICAgICAqIHhtbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6
OmFwcGVuZCk6CisKIDIwMTUtMDQtMDQgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb250ZW50IEZpbHRlcmluZ10gQmxvY2tlZCBwYWdlIGlzIG5vdCBhbHdheXMg
ZGlzcGxheWVkIHdoZW4gaXQgc2hvdWxkIGJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjE2NGM5NDli
YzI2MjI0N2Q4NWYxMzYwNGM1YTYyMTU1MDM5ZGFmYi4uNzc4NjQwMzY2OTJhZjU1ZTc5MjU5ZGYy
NThiMDliNGYzNzkwYjU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1
LTA0LTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSAiZ28gYWhlYWQgYW5kIiBmcm9tIGNvbW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0MjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIHBocmFzZSAiZ28gYWhlYWQg
YW5kIiBmcm9tIGNvbW1lbnRzIHdoZXJlIGl0IGRvZXNuJ3QgYWRkCisgICAgICAgIGFueXRoaW5n
ICh3aGljaCBpcyBhbG1vc3QgYWxsIG9mIHRoZW0pLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVu
dDo6b2JqZWN0Q29udGVudFR5cGUpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRHluYW1pY1Njcm9s
bEJhcnNWaWV3Lm1tOgorICAgICAgICAoLVtXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcgdXBkYXRl
U2Nyb2xsZXJzXSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgaW5zZXJ0VGV4dDpdKToKKwogMjAxNS0wNC0wMiAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZDogUmVsYW5kIGNoYW5n
ZSBhZnRlciByb2xsb3V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJlYmZhMDAyNDg3MDE5ZDQwODAxZGQzNzZl
NzQyMTBmNDA3MDQ5MmEuLmViYzViMGNlOTBjNDY2ZTI5NzljYWEyNGMyOTRlNTlhNTgxYjYyY2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNS0wNC0wNSAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgImdvIGFoZWFkIGFuZCIg
ZnJvbSBjb21tZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQzNDIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlIHRoZSBwaHJhc2UgImdvIGFoZWFkIGFuZCIgZnJvbSBjb21tZW50cyB3aGVy
ZSBpdCBkb2Vzbid0IGFkZAorICAgICAgICBhbnl0aGluZyAod2hpY2ggaXMgYWxtb3N0IGFsbCBv
ZiB0aGVtKS4KKworICAgICAgICAqIFBsYXRmb3JtL3VuaXgvRW52aXJvbm1lbnRVdGlsaXRpZXMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNF
bmRpbmdXaXRoU3RyaW5nKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaW5zZXJ0
VGV4dDpyZXBsYWNlbWVudFJhbmdlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3BsdWdpbkZvY3Vz
T3JXaW5kb3dGb2N1c0NoYW5nZWQ6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpyZW1v
dmVEYXRhYmFzZVdpdGhPcmlnaW5JZGVudGlmaWVyKToKKwogMjAxNS0wNC0wNCAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0d29yayBjYWNoZSBCbG9vbSBm
aWx0ZXIgaXMgdG9vIGJpZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0pTU3RhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pT
U3RhY2suY3BwCmluZGV4IDNjZTAxNTk5NDM0MjczM2Q0OTc5NTBhNjY4NmNjMWM5ZTUwMTdiNTcu
LjAyNWZlZjA4MzE0NTViZmM2OWZiNzhlZjUzMjM2MjBjZjhlYTMyODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAKQEAgLTk3LDggKzk3LDcgQEAg
Ym9vbCBKU1N0YWNrOjpncm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiAgICAg
aWYgKG5ld0NvbW1pdFRvcCA8IHJlc2VydmF0aW9uVG9wKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIC8vIE90aGVyd2lzZSwgdGhlIGdyb3d0aCBpcyBzdGlsbCB3aXRoaW4gb3VyIGJ1
ZGdldC4gR28gYWhlYWQgYW5kIGNvbW1pdAotICAgIC8vIGl0IGFuZCByZXR1cm4gdHJ1ZS4KKyAg
ICAvLyBPdGhlcndpc2UsIHRoZSBncm93dGggaXMgc3RpbGwgd2l0aGluIG91ciBidWRnZXQuIENv
bW1pdCBpdCBhbmQgcmV0dXJuIHRydWUuCiAgICAgbV9yZXNlcnZhdGlvbi5jb21taXQobmV3Q29t
bWl0VG9wLCBkZWx0YSk7CiAgICAgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQoZGVsdGEpOwogICAg
IG1fY29tbWl0VG9wID0gbmV3Q29tbWl0VG9wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDNlOTYxNmJkMzY5
NjlhODg2Njk1NGMyODY2OTUyNGVhZjQzOTY4NzEuLmM5NWI3N2VmZjcyMDE0YjEwZTBmZGNhMjA1
MjIzYzQwOGI3MDdkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTY4NCw4ICs2ODQsNyBAQCB2b2lkIERh
dGFiYXNlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luTG9ja0ZvcihTZWN1cml0eU9yaWdpbiogb3JpZ2lu
KQogICAgIC8vIGZpbGVzIGluIHRoaXMgb3JpZ2luLiBXZSdsbCBnaXZlIHRoZSBPcmlnaW5Mb2Nr
IG9uZSBjaGFuY2UgdG8gZG8gYW4KICAgICAvLyBvcmRlcmx5IGNsZWFuIHVwIGZpcnN0IHdoZW4g
d2UgcmVtb3ZlIGl0cyByZWYgZnJvbSB0aGUgbV9vcmlnaW5Mb2NrTWFwLgogICAgIC8vIFRoaXMg
bWF5IG9yIG1heSBub3QgYmUgcG9zc2libGUgZGVwZW5kaW5nIG9uIHdoZXRoZXIgb3RoZXIgdGhy
ZWFkcyBhcmUKLSAgICAvLyBhbHNvIHVzaW5nIHRoZSBPcmlnaW5Mb2NrIGF0IHRoZSBzYW1lIHRp
bWUuIEFmdGVyIHRoYXQsIHdlIHdpbGwgZ28gYWhlYWQKLSAgICAvLyBhbmQgZGVsZXRlIHRoZSBs
b2NrIGZpbGUuCisgICAgLy8gYWxzbyB1c2luZyB0aGUgT3JpZ2luTG9jayBhdCB0aGUgc2FtZSB0
aW1lLiBBZnRlciB0aGF0LCB3ZSB3aWxsIGRlbGV0ZSB0aGUgbG9jayBmaWxlLgogCiAgICAgbV9v
cmlnaW5Mb2NrTWFwLnJlbW92ZShvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBP
cmlnaW5Mb2NrOjpkZWxldGVMb2NrRmlsZShvcmlnaW5QYXRoKG9yaWdpbikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4IDdlMjk2ZDZmOGNhMzZkOGJm
NjI4YWFmOGNiZGExNjAwMTc4NjNjYzcuLmYxMDA1NzRiZjI0YTk4MTg3OTk0M2VlNzFhMzRjZWQw
OTBhNTk3MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1Zh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAK
QEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBDU1NGb250RmFjZVNyY1ZhbHVlOjppc1NWR0ZvbnRUYXJn
ZXQoKSBjb25zdAogYm9vbCBDU1NGb250RmFjZVNyY1ZhbHVlOjppc1N1cHBvcnRlZEZvcm1hdCgp
IGNvbnN0CiB7CiAgICAgLy8gTm9ybWFsbHkgd2Ugd291bGQganVzdCBjaGVjayB0aGUgZm9ybWF0
LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggdGhlIG9sZCBXaW5JRSBzdHls
ZSBvZiBmb250LWZhY2UsCi0gICAgLy8gd2Ugd2lsbCBhbHNvIGNoZWNrIHRvIHNlZSBpZiB0aGUg
VVJMIGVuZHMgd2l0aCAuZW90LiAgSWYgc28sIHdlJ2xsIGdvIGFoZWFkIGFuZCBhc3N1bWUgdGhh
dCB3ZSBzaG91bGRuJ3QgbG9hZCBpdC4KKyAgICAvLyB3ZSB3aWxsIGFsc28gY2hlY2sgdG8gc2Vl
IGlmIHRoZSBVUkwgZW5kcyB3aXRoIC5lb3QuIElmIHNvLCB3ZSdsbCBhc3N1bWUgdGhhdCB3ZSBz
aG91bGRuJ3QgbG9hZCBpdC4KICAgICBpZiAobV9mb3JtYXQuaXNFbXB0eSgpKSB7CiAgICAgICAg
IC8vIENoZWNrIGZvciAuZW90LgogICAgICAgICBpZiAoIW1fcmVzb3VyY2Uuc3RhcnRzV2l0aCgi
ZGF0YToiLCBmYWxzZSkgJiYgbV9yZXNvdXJjZS5lbmRzV2l0aCgiLmVvdCIsIGZhbHNlKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggZDhlZDQ5ZDZiYTBhMzEyNTdk
YmQ1MDA5Mjc4NDJhNDA3MzUyZDYyNC4uMTMwYjBiNDlhYTBhYzg3OTMyMTRhY2NhYzk3MTE5OTE1
ZmJhNTdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTU5LDgg
KzU5LDcgQEAgY29uc3QgaW50IG1heFZhbHVlRm9yQ3NzTGVuZ3RoID0gaW50TWF4Rm9yTGF5b3V0
VW5pdCAtIDI7CiBjb25zdCBpbnQgbWluVmFsdWVGb3JDc3NMZW5ndGggPSBpbnRNaW5Gb3JMYXlv
dXRVbml0ICsgMjsKIAogLy8gRGltZW5zaW9uIGNhbGN1bGF0aW9ucyBhcmUgaW1wcmVjaXNlLCBv
ZnRlbiByZXN1bHRpbmcgaW4gdmFsdWVzIG9mIGUuZy4KLS8vIDQ0Ljk5OTk4LiBXZSBuZWVkIHRv
IGdvIGFoZWFkIGFuZCByb3VuZCBpZiB3ZSdyZSByZWFsbHkgY2xvc2UgdG8gdGhlIG5leHQKLS8v
IGludGVnZXIgdmFsdWUuCisvLyA0NC45OTk5OC4gV2UgbmVlZCB0byByb3VuZCBpZiB3ZSdyZSBy
ZWFsbHkgY2xvc2UgdG8gdGhlIG5leHQgaW50ZWdlciB2YWx1ZS4KIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGlubGluZSBUIHJvdW5kRm9ySW1wcmVjaXNlQ29udmVyc2lvbihkb3VibGUgdmFsdWUpCiB7
CiAgICAgdmFsdWUgKz0gKHZhbHVlIDwgMCkgPyAtMC4wMSA6ICswLjAxOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDUzN2ViMDA4MmU3Y2QzZDNlODA1Y2I1NGQ3MWY4NjQz
ZDMwOTNkZTEuLmEyMjk4Y2YxOTI3YWU2ZDEzOTk4ZWNiZmY0NzZhODczOWFjZGJiZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTg2OCwxNCArODY4LDEzIEBAIFJlZjxS
ZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JLZXlmcmFtZShjb25zdCBSZW5kZXJT
dHlsZSogZWxlbWVudFN0eWxlCiAKICAgICBhcHBseUNhc2NhZGVkUHJvcGVydGllcyhjYXNjYWRl
LCBmaXJzdENTU1Byb3BlcnR5LCBsYXN0SGlnaFByaW9yaXR5UHJvcGVydHkpOwogCi0gICAgLy8g
SWYgb3VyIGZvbnQgZ290IGRpcnRpZWQsIGdvIGFoZWFkIGFuZCB1cGRhdGUgaXQgbm93LgorICAg
IC8vIElmIG91ciBmb250IGdvdCBkaXJ0aWVkLCB1cGRhdGUgaXQgbm93LgogICAgIHVwZGF0ZUZv
bnQoKTsKIAogICAgIC8vIE5vdyBkbyByZXN0IG9mIHRoZSBwcm9wZXJ0aWVzLgogICAgIGFwcGx5
Q2FzY2FkZWRQcm9wZXJ0aWVzKGNhc2NhZGUsIGZpcnN0TG93UHJpb3JpdHlQcm9wZXJ0eSwgbGFz
dENTU1Byb3BlcnR5KTsKIAotICAgIC8vIElmIG91ciBmb250IGdvdCBkaXJ0aWVkIGJ5IG9uZSBv
ZiB0aGUgbm9uLWVzc2VudGlhbCBmb250IHByb3BzLAotICAgIC8vIGdvIGFoZWFkIGFuZCB1cGRh
dGUgaXQgYSBzZWNvbmQgdGltZS4KKyAgICAvLyBJZiBvdXIgZm9udCBnb3QgZGlydGllZCBieSBv
bmUgb2YgdGhlIG5vbi1lc3NlbnRpYWwgZm9udCBwcm9wcywgdXBkYXRlIGl0IGEgc2Vjb25kIHRp
bWUuCiAgICAgdXBkYXRlRm9udCgpOwogCiAgICAgY2FzY2FkZS5hcHBseURlZmVycmVkUHJvcGVy
dGllcygqdGhpcyk7CkBAIC0xMDM0LDcgKzEwMzMsNyBAQCBSZWY8UmVuZGVyU3R5bGU+IFN0eWxl
UmVzb2x2ZXI6OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KQogCiAgICAgYXBwbHlDYXNjYWRl
ZFByb3BlcnRpZXMoY2FzY2FkZSwgZmlyc3RDU1NQcm9wZXJ0eSwgbGFzdEhpZ2hQcmlvcml0eVBy
b3BlcnR5KTsKIAotICAgIC8vIElmIG91ciBmb250IGdvdCBkaXJ0aWVkLCBnbyBhaGVhZCBhbmQg
dXBkYXRlIGl0IG5vdy4KKyAgICAvLyBJZiBvdXIgZm9udCBnb3QgZGlydGllZCwgdXBkYXRlIGl0
IG5vdy4KICAgICB1cGRhdGVGb250KCk7CiAKICAgICBhcHBseUNhc2NhZGVkUHJvcGVydGllcyhj
YXNjYWRlLCBmaXJzdExvd1ByaW9yaXR5UHJvcGVydHksIGxhc3RDU1NQcm9wZXJ0eSk7CkBAIC0x
NzkwLDcgKzE3ODksNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRp
ZXMoY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0LCBjb25zdAogICAgIGlmIChjYWNoZUl0
ZW0gJiYgY2FjaGVJdGVtLT5yZW5kZXJTdHlsZS0+ZWZmZWN0aXZlWm9vbSgpICE9IHN0YXRlLnN0
eWxlKCktPmVmZmVjdGl2ZVpvb20oKSkKICAgICAgICAgcmV0dXJuIGFwcGx5TWF0Y2hlZFByb3Bl
cnRpZXMobWF0Y2hSZXN1bHQsIGVsZW1lbnQsIERvTm90VXNlTWF0Y2hlZFByb3BlcnRpZXNDYWNo
ZSk7CiAKLSAgICAvLyBJZiBvdXIgZm9udCBnb3QgZGlydGllZCwgZ28gYWhlYWQgYW5kIHVwZGF0
ZSBpdCBub3cuCisgICAgLy8gSWYgb3VyIGZvbnQgZ290IGRpcnRpZWQsIHVwZGF0ZSBpdCBub3cu
CiAgICAgdXBkYXRlRm9udCgpOwogCiAgICAgLy8gSWYgdGhlIGZvbnQgY2hhbmdlZCwgd2UgY2Fu
J3QgdXNlIHRoZSBtYXRjaGVkIHByb3BlcnRpZXMgY2FjaGUuIFN0YXJ0IG92ZXIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IGUzM2I4ZjYxZGIy
NDNmODhmYTYzMjlhZmUzMjk3MDA5NWJiNzI4NzkuLjdjNDE4YzI3MWMwNTljNDNhODFhYTQwN2Zi
NzBjMjI2MjA3N2Q2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwCkBAIC0xMDY1LDcgKzEwNjUsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpw
dXNoRG93bklubGluZVN0eWxlQXJvdW5kTm9kZShFZGl0aW5nU3R5bGUqIHN0eWxlLCBOb2RlKgog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBBcHBseSBzdHlsZSB0byBhbGwgbm9kZXMg
Y29udGFpbmluZyB0YXJnZXROb2RlIGFuZCB0aGVpciBzaWJsaW5ncyBidXQgTk9UIHRvIHRhcmdl
dE5vZGUKLSAgICAgICAgICAgIC8vIEJ1dCBpZiB3ZSd2ZSByZW1vdmVkIHN0eWxlZEVsZW1lbnQg
dGhlbiBnbyBhaGVhZCBhbmQgYWx3YXlzIGFwcGx5IHRoZSBzdHlsZS4KKyAgICAgICAgICAgIC8v
IEJ1dCBpZiB3ZSd2ZSByZW1vdmVkIHN0eWxlZEVsZW1lbnQgdGhlbiBhbHdheXMgYXBwbHkgdGhl
IHN0eWxlLgogICAgICAgICAgICAgaWYgKCZjaGlsZCAhPSB0YXJnZXROb2RlIHx8IHN0eWxlZEVs
ZW1lbnQpCiAgICAgICAgICAgICAgICAgYXBwbHlJbmxpbmVTdHlsZVRvUHVzaERvd24oJmNoaWxk
LCBzdHlsZVRvUHVzaERvd24uZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAppbmRleCAzZjVlMTJkYThkODkzYTYwNDczNWE5MzUwNTE1ZGM5YjM3OWE4MzVm
Li5jYTY4NDhjMWU4YWEwOGNjNTgyOTA1NWZhMjg2MTI4Y2UyYTZhNDJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTkwNiw3ICs5MDYsNyBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjpkZXRhY2hGcm9tRnJhbWUoKQogICAgIFJlZjxEb2N1bWVudExvYWRlcj4g
cHJvdGVjdExvYWRlcigqdGhpcyk7CiAKICAgICAvLyBJdCBuZXZlciBtYWtlcyBzZW5zZSB0byBo
YXZlIGEgZG9jdW1lbnQgbG9hZGVyIHRoYXQgaXMgZGV0YWNoZWQgZnJvbSBpdHMKLSAgICAvLyBm
cmFtZSBoYXZlIGFueSBsb2FkcyBhY3RpdmUsIHNvIGdvIGFoZWFkIGFuZCBraWxsIGFsbCB0aGUg
bG9hZHMuCisgICAgLy8gZnJhbWUgaGF2ZSBhbnkgbG9hZHMgYWN0aXZlLCBzbyBhbmQga2lsbCBh
bGwgdGhlIGxvYWRzLgogICAgIHN0b3BMb2FkaW5nKCk7CiAgICAgaWYgKG1fbWFpblJlc291cmNl
ICYmIG1fbWFpblJlc291cmNlLT5oYXNDbGllbnQodGhpcykpCiAgICAgICAgIG1fbWFpblJlc291
cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEltYWdlLmNwcAppbmRleCBmNTcwMzZhZmFlOTFkMmYzY2QxOGRkOTcxNGI2MzM3NjI2MGJi
ZTRjLi5jZDU5ZjYzMWVjNTUwNTJlMGM5MTUzOTBlNmViZDg2ZGE0NzdjYzAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTM5MCw5ICszOTAsOCBA
QCB2b2lkIENhY2hlZEltYWdlOjphZGRJbmNyZW1lbnRhbERhdGFCdWZmZXIoU2hhcmVkQnVmZmVy
JiBkYXRhKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gR28gYWhlYWQgYW5kIHRl
bGwgb3VyIG9ic2VydmVycyB0byB0cnkgdG8gZHJhdy4KLSAgICAvLyBFYWNoIGNodW5rIGZyb20g
dGhlIG5ldHdvcmsgY2F1c2VzIG9ic2VydmVycyB0byByZXBhaW50LCB3aGljaCB3aWxsCi0gICAg
Ly8gZm9yY2UgdGhhdCBjaHVuayB0byBkZWNvZGUuCisgICAgLy8gVGVsbCBvdXIgb2JzZXJ2ZXJz
IHRvIHRyeSB0byBkcmF3LgorICAgIC8vIEVhY2ggY2h1bmsgZnJvbSB0aGUgbmV0d29yayBjYXVz
ZXMgb2JzZXJ2ZXJzIHRvIHJlcGFpbnQsIHdoaWNoIHdpbGwgZm9yY2UgdGhhdCBjaHVuayB0byBk
ZWNvZGUuCiAgICAgLy8gSXQgd291bGQgYmUgbmljZSB0byBvbmx5IHJlZHJhdyB0aGUgZGVjb2Rl
ZCBiYW5kIG9mIHRoZSBpbWFnZSwgYnV0IHdpdGggdGhlIGN1cnJlbnQgZGVzaWduCiAgICAgLy8g
KGRlY29kaW5nIGRlbGF5ZWQgdW50aWwgcGFpbnRpbmcpIHRoYXQgc2VlbXMgaGFyZC4KICAgICBu
b3RpZnlPYnNlcnZlcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJh
c2UuY3BwCmluZGV4IGMyOTc0ZjEzZmZlMTBlMjE4MTM1Njg2MGZlNWY1YmYyYjIzMDkzNmEuLjM1
ZThlOWQ3MjVhZmQwYTZmOTE4NGZmZjdjNDU4MGJmMGEzNjEyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcApAQCAtMTIyMSw3ICsxMjIxLDcgQEAgdm9p
ZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQoKQogICAgICAgICAgICAgCiAgICAgICAg
ICAgICAvLyBJZiB0aGUgcGFnZVJlY29yZCBkb2Vzbid0IGV4aXN0IGluIHRoaXMgbWFwLCB0aGVu
IG5vIG9uZSBoYXMgcmV0YWluZWQgdGhpcyBwYWdlVVJMCiAgICAgICAgICAgICAvLyBJZiB0aGUg
c19kYXRhYmFzZUNsZWFudXBDb3VudGVyIGNvdW50IGlzIG5vbi16ZXJvLCB0aGVuIHdlJ3JlIG5v
dCBzdXBwb3NlZCB0byBiZSBwcnVuaW5nIHRoZSBkYXRhYmFzZSBpbiBhbnkgbWFubmVyLAotICAg
ICAgICAgICAgLy8gc28gZ28gYWhlYWQgYW5kIGFjdHVhbGx5IGNyZWF0ZSBhIHBhZ2VVUkxSZWNv
cmQgZm9yIHRoaXMgdXJsIGV2ZW4gdGhvdWdoIGl0J3Mgbm90IHJldGFpbmVkLgorICAgICAgICAg
ICAgLy8gc28gYWN0dWFsbHkgY3JlYXRlIGEgcGFnZVVSTFJlY29yZCBmb3IgdGhpcyB1cmwgZXZl
biB0aG91Z2ggaXQncyBub3QgcmV0YWluZWQuCiAgICAgICAgICAgICAvLyBJZiBkYXRhYmFzZSBj
bGVhbnVwICppcyogYWxsb3dlZCwgd2UgZG9uJ3Qgd2FudCB0byBib3RoZXIgcHVsbGluZyBpbiBh
IHBhZ2UgdXJsIGZyb20gZGlzayB0aGF0IG5vb25lIGlzIGFjdHVhbGx5IGludGVyZXN0ZWQKICAg
ICAgICAgICAgIC8vIGluIC0gd2UnbGwgcHJ1bmUgaXQgbGF0ZXIgaW5zdGVhZCEKICAgICAgICAg
ICAgIGlmICghcGFnZVJlY29yZCAmJiBkYXRhYmFzZUNsZWFudXBDb3VudGVyICYmIGRvY3VtZW50
Q2FuSGF2ZUljb24ocGFnZVVSTCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKaW5k
ZXggM2JiZDg0OWRlN2Q1OGZjZThkZTg5ZDdjNmFkZjBhZWNjOTc1NjhkYS4uMjI3ZTkyMGI4YTVj
Y2ExOWQ3OWI3NWNkMDE4MGZmMjcwN2U2MjAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zlcmxh
eS5jcHAKQEAgLTI1MSw3ICsyNTEsNyBAQCB2b2lkIFBhZ2VPdmVybGF5OjpmYWRlQW5pbWF0aW9u
VGltZXJGaXJlZCgpCiAgICAgICAgIGJvb2wgd2FzRmFkaW5nT3V0ID0gbV9mYWRlQW5pbWF0aW9u
VHlwZSA9PSBGYWRlT3V0QW5pbWF0aW9uOwogICAgICAgICBtX2ZhZGVBbmltYXRpb25UeXBlID0g
Tm9BbmltYXRpb247CiAKLSAgICAgICAgLy8gSWYgdGhpcyB3YXMgYSBmYWRlIG91dCwgZ28gYWhl
YWQgYW5kIHVuaW5zdGFsbCB0aGUgcGFnZSBvdmVybGF5LgorICAgICAgICAvLyBJZiB0aGlzIHdh
cyBhIGZhZGUgb3V0LCB1bmluc3RhbGwgdGhlIHBhZ2Ugb3ZlcmxheS4KICAgICAgICAgaWYgKHdh
c0ZhZGluZ091dCkKICAgICAgICAgICAgIGNvbnRyb2xsZXIoKS0+dW5pbnN0YWxsUGFnZU92ZXJs
YXkodGhpcywgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggZjk3ZmI2MTQ4N2E2NWYzMzgzNTE2
MTMyNjQzOGUzM2M3NTYyNTI0OS4uYzU3OWQxY2NiN2EyMTkwMjBlYjUxY2QyMzU2MmM1ZmFhMDg2
YTFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTYwNCw4ICs2
MDQsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgSW50U2l6ZSYg
ZGVzaXJlZE9mZnNldCkKIAogICAgIGJvb2wgaGFzT3ZlcmxheVNjcm9sbGJhcnMgPSAoIW1faG9y
aXpvbnRhbFNjcm9sbGJhciB8fCBtX2hvcml6b250YWxTY3JvbGxiYXItPmlzT3ZlcmxheVNjcm9s
bGJhcigpKSAmJiAoIW1fdmVydGljYWxTY3JvbGxiYXIgfHwgbV92ZXJ0aWNhbFNjcm9sbGJhci0+
aXNPdmVybGF5U2Nyb2xsYmFyKCkpOwogCi0gICAgLy8gSWYgd2UgY2FtZSBpbiBoZXJlIHdpdGgg
dGhlIHZpZXcgYWxyZWFkeSBuZWVkaW5nIGEgbGF5b3V0LCB0aGVuIGdvIGFoZWFkIGFuZCBkbyB0
aGF0Ci0gICAgLy8gZmlyc3QuIChUaGlzIHdpbGwgYmUgdGhlIGNvbW1vbiBjYXNlLCBlLmcuLCB3
aGVuIHRoZSBwYWdlIGNoYW5nZXMgZHVlIHRvIHdpbmRvdyByZXNpemluZyBmb3IgZXhhbXBsZSku
CisgICAgLy8gSWYgd2UgY2FtZSBpbiBoZXJlIHdpdGggdGhlIHZpZXcgYWxyZWFkeSBuZWVkaW5n
IGEgbGF5b3V0LCB0aGVuIGRvIHRoYXQgZmlyc3QuCisgICAgLy8gKFRoaXMgd2lsbCBiZSB0aGUg
Y29tbW9uIGNhc2UsIGUuZy4sIHdoZW4gdGhlIHBhZ2UgY2hhbmdlcyBkdWUgdG8gd2luZG93IHJl
c2l6aW5nIGZvciBleGFtcGxlKS4KICAgICAvLyBUaGlzIGxheW91dCB3aWxsIG5vdCByZS1lbnRl
ciB1cGRhdGVTY3JvbGxiYXJzIGFuZCBkb2VzIG5vdCBjb3VudCB0b3dhcmRzIG91ciBtYXggbGF5
b3V0IHBhc3MgdG90YWwuCiAgICAgaWYgKCFtX3Njcm9sbGJhcnNTdXBwcmVzc2VkICYmICFoYXNP
dmVybGF5U2Nyb2xsYmFycykgewogICAgICAgICBtX2luVXBkYXRlU2Nyb2xsYmFycyA9IHRydWU7
CkBAIC04MzksOSArODM5LDggQEAgdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50cyhjb25z
dCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICAgICAgaWYgKCFzY3JvbGxDb250ZW50c0Zhc3RQ
YXRoKC1zY3JvbGxEZWx0YSwgc2Nyb2xsVmlld1JlY3QsIGNsaXBSZWN0KSkKICAgICAgICAgICAg
IHNjcm9sbENvbnRlbnRzU2xvd1BhdGgodXBkYXRlUmVjdCk7CiAgICAgfSBlbHNlIHsgCi0gICAg
ICAgLy8gV2UgbmVlZCB0byBnbyBhaGVhZCBhbmQgcmVwYWludCB0aGUgZW50aXJlIGJhY2tpbmcg
c3RvcmUuICBEbyBpdCBub3cgYmVmb3JlIG1vdmluZyB0aGUKLSAgICAgICAvLyB3aW5kb3dlZCBw
bHVnaW5zLgotICAgICAgIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgodXBkYXRlUmVjdCk7CisgICAg
ICAgIC8vIFdlIG5lZWQgdG8gcmVwYWludCB0aGUgZW50aXJlIGJhY2tpbmcgc3RvcmUuIERvIGl0
IG5vdyBiZWZvcmUgbW92aW5nIHRoZSB3aW5kb3dlZCBwbHVnaW5zLgorICAgICAgICBzY3JvbGxD
b250ZW50c1Nsb3dQYXRoKHVwZGF0ZVJlY3QpOwogICAgIH0KIAogICAgIC8vIEludmFsaWRhdGUg
dGhlIG92ZXJoYW5nIGFyZWFzIGlmIHRoZXkgYXJlIHZpc2libGUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNw
cAppbmRleCBmYThjMDJiNmI4YWIxOWI2ZjA3YWIxYTg0M2FlYWNkYjZjMTkwMGJkLi44ZmViZGM2
M2VhNjAyZmM5ZmNjMDc1MjViYjE5ZTc2MTNmMjRiZGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAK
QEAgLTQyLDcgKzQyLDcgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRGlzcGxheVJl
ZnJlc2hNb25pdG9yOjpjcmVhdGUoRGlzcGxheVJlZnJlc2hNb25pdG8KICAgICBpZiAoT3B0aW9u
YWw8UmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4+IG1vbml0b3IgPSBjbGllbnQtPmNyZWF0
ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpKQogICAgICAgICByZXR1cm4gbW9uaXRv
ci52YWx1ZSgpOwogCi0gICAgLy8gSWYgQ2hyb21lQ2xpZW50IHJldHVybmVkIE51bGxvcHQsIHdl
J2xsIGdvIGFoZWFkIGFuZCBtYWtlIG9uZSBvZiB0aGUgZGVmYXVsdCB0eXBlLgorICAgIC8vIElm
IENocm9tZUNsaWVudCByZXR1cm5lZCBOdWxsb3B0LCB3ZSdsbCBtYWtlIG9uZSBvZiB0aGUgZGVm
YXVsdCB0eXBlLgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHJldHVybiBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWM6OmNyZWF0ZShkaXNwbGF5SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggNzNhZDI5NGYwNDY2
MmQwNGNjM2I1NTc1OTA5ZmE1MWVkMGY0M2IyMC4uMzcwNDA2NjE4MDFiMTI4YmM4ZGQ1YWU4NDY1
OTFhOGY3ZDI0N2VjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC01NjIsOCArNTYyLDcgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvciBjb21wb3Np
dGVPcGVyYXRpb24KIH0KIAogI2lmICFVU0UoQ0cpCi0vLyBJbXBsZW1lbnQgdGhpcyBpZiB5b3Ug
d2FudCB0byBnbyBhaGVhZCBhbmQgcHVzaCB0aGUgZHJhd2luZyBtb2RlIGludG8geW91ciBuYXRp
dmUgY29udGV4dAotLy8gaW1tZWRpYXRlbHkuCisvLyBJbXBsZW1lbnQgdGhpcyBpZiB5b3Ugd2Fu
dCB0byBnbyBwdXNoIHRoZSBkcmF3aW5nIG1vZGUgaW50byB5b3VyIG5hdGl2ZSBjb250ZXh0IGlt
bWVkaWF0ZWx5Lgogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtVGV4dERyYXdpbmdN
b2RlKFRleHREcmF3aW5nTW9kZUZsYWdzKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNw
cAppbmRleCAyZDIyYWVlOTNjYTViNWE5N2U5ZmU3YTgyZTAyNTI2YTc5NGRkNzhmLi40MGRkOWEz
OGJiNTgxYzc3OWE3NjM0Y2FkM2M1NWMxM2VhZTE5YTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyLmNwcApAQCAtNjg5LDcgKzY4OSw3IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjph
ZGp1c3RHbHlwaHNBbmRBZHZhbmNlcygpCiAgICAgICAgICAgICAgICAgYWR2YW5jZS53aWR0aCA9
IGZvbnQuYWRqdXN0ZWRTcGFjZVdpZHRoKCk7CiAKICAgICAgICAgICAgIGlmIChoYXNFeHRyYVNw
YWNpbmcpIHsKLSAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBhIGdseXBoIHdpdGggYW4gYWR2
YW5jZSwgZ28gYWhlYWQgYW5kIGFkZCBpbiBsZXR0ZXItc3BhY2luZy4KKyAgICAgICAgICAgICAg
ICAvLyBJZiB3ZSdyZSBhIGdseXBoIHdpdGggYW4gYWR2YW5jZSwgYWRkIGluIGxldHRlci1zcGFj
aW5nLgogICAgICAgICAgICAgICAgIC8vIFRoYXQgd2F5IHdlIHdlZWQgb3V0IHplcm8gd2lkdGgg
bHVya2Vycy4gIFRoaXMgYmVoYXZpb3IgbWF0Y2hlcyB0aGUgZmFzdCB0ZXh0IGNvZGUgcGF0aC4K
ICAgICAgICAgICAgICAgICBpZiAoYWR2YW5jZS53aWR0aCkKICAgICAgICAgICAgICAgICAgICAg
YWR2YW5jZS53aWR0aCArPSBtX2ZvbnQubGV0dGVyU3BhY2luZygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAppbmRleCAwYzgwOTM1YTVmMjEw
OTczMzk5ZDQ4MDM3N2M2ZjhhYWU2NWU5Mjk1Li43N2E3MWUzMzVjMjYzY2RlYjQ0NTRjZGNlZDI4
YjhjY2JiY2I3OGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmNwcApAQCAtMjIzLDcgKzIyMyw3IEBAIGJvb2wgcGFyc2VIVFRQUmVmcmVzaChj
b25zdCBTdHJpbmcmIHJlZnJlc2gsIGJvb2wgZnJvbUh0dHBFcXVpdk1ldGEsIGRvdWJsZSYgZGVs
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNzg2OAogICAgICAgICAgICAgLy8gU29tZXRpbWVzIHRoZXJlIGlzIG5v
IGNsb3NpbmcgcXVvdGUgZm9yIHRoZSBlbmQgb2YgdGhlIFVSTCBldmVuIHRob3VnaCB0aGVyZSB3
YXMgYW4gb3BlbmluZyBxdW90ZS4KLSAgICAgICAgICAgIC8vIElmIHdlIGxvb3BlZCBvdmVyIHRo
ZSBlbnRpcmUgYWxsZWdlZCBVUkwgc3RyaW5nIGJhY2sgdG8gdGhlIG9wZW5pbmcgcXVvdGUsIGp1
c3QgZ28gYWhlYWQgYW5kIHVzZSBldmVyeXRoaW5nCisgICAgICAgICAgICAvLyBJZiB3ZSBsb29w
ZWQgb3ZlciB0aGUgZW50aXJlIGFsbGVnZWQgVVJMIHN0cmluZyBiYWNrIHRvIHRoZSBvcGVuaW5n
IHF1b3RlLCBqdXN0IHVzZSBldmVyeXRoaW5nCiAgICAgICAgICAgICAvLyBhZnRlciB0aGUgb3Bl
bmluZyBxdW90ZSBpbnN0ZWFkLgogICAgICAgICAgICAgaWYgKHVybEVuZFBvcyA9PSB1cmxTdGFy
dFBvcykKICAgICAgICAgICAgICAgICB1cmxFbmRQb3MgPSBsZW47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBmNWJhOWQ0ZjgyZGFlZTNhZjE4YzgwNTIxYzEy
ZDhkMTQxZTM1Yjk1Li4xOTAzMTI5NGU0Yzc4YjA1ZDFhNzJkMTc5MmFiNzU0NTA2ZTY0ZTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTY5MSw5ICs2OTEs
OCBAQCB2b2lkIFJlbmRlckJsb2NrOjpyZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmIG9sZENoaWxk
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gSWYgdGhpcyBjaGlsZCBpcyBhIGJs
b2NrLCBhbmQgaWYgb3VyIHByZXZpb3VzIGFuZCBuZXh0IHNpYmxpbmdzIGFyZQotICAgIC8vIGJv
dGggYW5vbnltb3VzIGJsb2NrcyB3aXRoIGlubGluZSBjb250ZW50LCB0aGVuIHdlIGNhbiBnbyBh
aGVhZCBhbmQKLSAgICAvLyBmb2xkIHRoZSBpbmxpbmUgY29udGVudCBiYWNrIHRvZ2V0aGVyLgor
ICAgIC8vIElmIHRoaXMgY2hpbGQgaXMgYSBibG9jaywgYW5kIGlmIG91ciBwcmV2aW91cyBhbmQg
bmV4dCBzaWJsaW5ncyBhcmUgYm90aCBhbm9ueW1vdXMgYmxvY2tzCisgICAgLy8gd2l0aCBpbmxp
bmUgY29udGVudCwgdGhlbiB3ZSBjYW4gZm9sZCB0aGUgaW5saW5lIGNvbnRlbnQgYmFjayB0b2dl
dGhlci4KICAgICBSZW5kZXJPYmplY3QqIHByZXYgPSBvbGRDaGlsZC5wcmV2aW91c1NpYmxpbmco
KTsKICAgICBSZW5kZXJPYmplY3QqIG5leHQgPSBvbGRDaGlsZC5uZXh0U2libGluZygpOwogICAg
IGJvb2wgY2FuTWVyZ2VBbm9ueW1vdXNCbG9ja3MgPSBjYW5NZXJnZUNvbnRpZ3VvdXNBbm9ueW1v
dXNCbG9ja3Mob2xkQ2hpbGQsIHByZXYsIG5leHQpOwpAQCAtNzQ3LDggKzc0Niw3IEBAIHZvaWQg
UmVuZGVyQmxvY2s6OnJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCYgb2xkQ2hpbGQpCiAgICAgUmVu
ZGVyT2JqZWN0KiBjaGlsZCA9IHByZXYgPyBwcmV2IDogbmV4dDsKICAgICBpZiAoY2FuTWVyZ2VB
bm9ueW1vdXNCbG9ja3MgJiYgY2hpbGQgJiYgIWNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSAmJiAh
Y2hpbGQtPm5leHRTaWJsaW5nKCkgJiYgY2FuQ29sbGFwc2VBbm9ueW1vdXNCbG9ja0NoaWxkKCkp
IHsKICAgICAgICAgLy8gVGhlIHJlbW92YWwgaGFzIGtub2NrZWQgdXMgZG93biB0byBjb250YWlu
aW5nIG9ubHkgYSBzaW5nbGUgYW5vbnltb3VzCi0gICAgICAgIC8vIGJveC4gIFdlIGNhbiBnbyBh
aGVhZCBhbmQgcHVsbCB0aGUgY29udGVudCByaWdodCBiYWNrIHVwIGludG8gb3VyCi0gICAgICAg
IC8vIGJveC4KKyAgICAgICAgLy8gYm94LiBXZSBjYW4gcHVsbCB0aGUgY29udGVudCByaWdodCBi
YWNrIHVwIGludG8gb3VyIGJveC4KICAgICAgICAgY29sbGFwc2VBbm9ueW1vdXNCb3hDaGlsZCgq
dGhpcywgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KGNoaWxkKSk7CiAgICAgfSBlbHNlIGlmICgoKHBy
ZXYgJiYgcHJldi0+aXNBbm9ueW1vdXNCbG9jaygpKSB8fCAobmV4dCAmJiBuZXh0LT5pc0Fub255
bW91c0Jsb2NrKCkpKSAmJiBjYW5Db2xsYXBzZUFub255bW91c0Jsb2NrQ2hpbGQoKSkgewogICAg
ICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHJlbW92YWwgaGFzIGtub2NrZWQgdXMgZG93
biB0byBhIHNpbmdsZSBhbm9ueW1vdXMKQEAgLTEzMzEsNyArMTMyOSw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OmxheW91dFBvc2l0aW9uZWRPYmplY3RzKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgYm9v
bCBmaXhlZFBvc2l0CiAgICAgICAgIGlmIChyLm5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0
T25seSgpICYmIHIudHJ5TGF5b3V0RG9pbmdQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KCkpCiAgICAg
ICAgICAgICByLmNsZWFyTmVlZHNMYXlvdXQoKTsKICAgICAgICAgICAgIAotICAgICAgICAvLyBJ
ZiB3ZSBhcmUgcGFnaW5hdGVkIG9yIGluIGEgbGluZSBncmlkLCBnbyBhaGVhZCBhbmQgY29tcHV0
ZSBhIHZlcnRpY2FsIHBvc2l0aW9uIGZvciBvdXIgb2JqZWN0IG5vdy4KKyAgICAgICAgLy8gSWYg
d2UgYXJlIHBhZ2luYXRlZCBvciBpbiBhIGxpbmUgZ3JpZCwgY29tcHV0ZSBhIHZlcnRpY2FsIHBv
c2l0aW9uIGZvciBvdXIgb2JqZWN0IG5vdy4KICAgICAgICAgLy8gSWYgaXQncyB3cm9uZyB3ZSds
bCBsYXkgb3V0IGFnYWluLgogICAgICAgICBMYXlvdXRVbml0IG9sZExvZ2ljYWxUb3AgPSAwOwog
ICAgICAgICBib29sIG5lZWRzQmxvY2tEaXJlY3Rpb25Mb2NhdGlvblNldEJlZm9yZUxheW91dCA9
IHIubmVlZHNMYXlvdXQoKSAmJiB2aWV3KCkubGF5b3V0U3RhdGUoKS0+bmVlZHNCbG9ja0RpcmVj
dGlvbkxvY2F0aW9uU2V0QmVmb3JlTGF5b3V0KCk7CkBAIC0xODYwLDcgKzE4NTgsNyBAQCBHYXBS
ZWN0cyBSZW5kZXJCbG9jazo6c2VsZWN0aW9uR2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBj
b25zdCBMYXlvdXRQb2ludCYgcgogICAgIGVsc2UKICAgICAgICAgcmVzdWx0ID0gYmxvY2tTZWxl
Y3Rpb25HYXBzKHJvb3RCbG9jaywgcm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgb2Zmc2V0RnJv
bVJvb3RCbG9jaywgbGFzdExvZ2ljYWxUb3AsIGxhc3RMb2dpY2FsTGVmdCwgbGFzdExvZ2ljYWxS
aWdodCwgY2FjaGUsIHBhaW50SW5mbyk7CiAKLSAgICAvLyBHbyBhaGVhZCBhbmQgZmlsbCB0aGUg
dmVydGljYWwgZ2FwIGFsbCB0aGUgd2F5IHRvIHRoZSBib3R0b20gb2Ygb3VyIGJsb2NrIGlmIHRo
ZSBzZWxlY3Rpb24gZXh0ZW5kcyBwYXN0IG91ciBibG9jay4KKyAgICAvLyBGaWxsIHRoZSB2ZXJ0
aWNhbCBnYXAgYWxsIHRoZSB3YXkgdG8gdGhlIGJvdHRvbSBvZiBvdXIgYmxvY2sgaWYgdGhlIHNl
bGVjdGlvbiBleHRlbmRzIHBhc3Qgb3VyIGJsb2NrLgogICAgIGlmICgmcm9vdEJsb2NrID09IHRo
aXMgJiYgKHNlbGVjdGlvblN0YXRlKCkgIT0gU2VsZWN0aW9uQm90aCAmJiBzZWxlY3Rpb25TdGF0
ZSgpICE9IFNlbGVjdGlvbkVuZCkgJiYgIWlzUnVieUJhc2UoKSAmJiAhaXNSdWJ5VGV4dCgpKSB7
CiAgICAgICAgIHJlc3VsdC51bml0ZUNlbnRlcihibG9ja1NlbGVjdGlvbkdhcChyb290QmxvY2ss
IHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIG9mZnNldEZyb21Sb290QmxvY2ssCiAgICAgICAg
ICAgICBsYXN0TG9naWNhbFRvcCwgbGFzdExvZ2ljYWxMZWZ0LCBsYXN0TG9naWNhbFJpZ2h0LCBs
b2dpY2FsSGVpZ2h0KCksIGNhY2hlLCBwYWludEluZm8pKTsKQEAgLTE4ODAsNyArMTg3OCw3IEBA
IEdhcFJlY3RzIFJlbmRlckJsb2NrOjpibG9ja1NlbGVjdGlvbkdhcHMoUmVuZGVyQmxvY2smIHJv
b3RCbG9jaywgY29uc3QgTGF5b3V0UG9pCiB7CiAgICAgR2FwUmVjdHMgcmVzdWx0OwogCi0gICAg
Ly8gR28gYWhlYWQgYW5kIGp1bXAgcmlnaHQgdG8gdGhlIGZpcnN0IGJsb2NrIGNoaWxkIHRoYXQg
Y29udGFpbnMgc29tZSBzZWxlY3RlZCBvYmplY3RzLgorICAgIC8vIEp1bXAgcmlnaHQgdG8gdGhl
IGZpcnN0IGJsb2NrIGNoaWxkIHRoYXQgY29udGFpbnMgc29tZSBzZWxlY3RlZCBvYmplY3RzLgog
ICAgIFJlbmRlckJveCogY3VycjsKICAgICBmb3IgKGN1cnIgPSBmaXJzdENoaWxkQm94KCk7IGN1
cnIgJiYgY3Vyci0+c2VsZWN0aW9uU3RhdGUoKSA9PSBTZWxlY3Rpb25Ob25lOyBjdXJyID0gY3Vy
ci0+bmV4dFNpYmxpbmdCb3goKSkgeyB9CiAgICAgCkBAIC0xOTM2LDcgKzE5MzQsNyBAQCBHYXBS
ZWN0cyBSZW5kZXJCbG9jazo6YmxvY2tTZWxlY3Rpb25HYXBzKFJlbmRlckJsb2NrJiByb290Qmxv
Y2ssIGNvbnN0IExheW91dFBvaQogICAgICAgICAgICAgbGFzdExvZ2ljYWxMZWZ0ID0gbG9naWNh
bExlZnRTZWxlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBjdXJyLT5sb2dpY2FsQm90dG9tKCksIGNh
Y2hlKTsKICAgICAgICAgICAgIGxhc3RMb2dpY2FsUmlnaHQgPSBsb2dpY2FsUmlnaHRTZWxlY3Rp
b25PZmZzZXQocm9vdEJsb2NrLCBjdXJyLT5sb2dpY2FsQm90dG9tKCksIGNhY2hlKTsKICAgICAg
ICAgfSBlbHNlIGlmIChjaGlsZFN0YXRlICE9IFNlbGVjdGlvbk5vbmUgJiYgaXM8UmVuZGVyQmxv
Y2s+KCpjdXJyKSkgewotICAgICAgICAgICAgLy8gV2UgbXVzdCBiZSBhIGJsb2NrIHRoYXQgaGFz
IHNvbWUgc2VsZWN0ZWQgb2JqZWN0IGluc2lkZSBpdC4gIEdvIGFoZWFkIGFuZCByZWN1ci4KKyAg
ICAgICAgICAgIC8vIFdlIG11c3QgYmUgYSBibG9jayB0aGF0IGhhcyBzb21lIHNlbGVjdGVkIG9i
amVjdCBpbnNpZGUgaXQsIHNvIHJlY3VyLgogICAgICAgICAgICAgcmVzdWx0LnVuaXRlKGRvd25j
YXN0PFJlbmRlckJsb2NrPigqY3Vycikuc2VsZWN0aW9uR2Fwcyhyb290QmxvY2ssIHJvb3RCbG9j
a1BoeXNpY2FsUG9zaXRpb24sIExheW91dFNpemUob2Zmc2V0RnJvbVJvb3RCbG9jay53aWR0aCgp
ICsgY3Vyci0+eCgpLCBvZmZzZXRGcm9tUm9vdEJsb2NrLmhlaWdodCgpICsgY3Vyci0+eSgpKSwK
ICAgICAgICAgICAgICAgICBsYXN0TG9naWNhbFRvcCwgbGFzdExvZ2ljYWxMZWZ0LCBsYXN0TG9n
aWNhbFJpZ2h0LCBjaGlsZENhY2hlLCBwYWludEluZm8pKTsKICAgICAgICAgfQpAQCAtMzMxMiw5
ICszMzEwLDggQEAgdm9pZCBSZW5kZXJCbG9jazo6c2V0UGFnZUxvZ2ljYWxPZmZzZXQoTGF5b3V0
VW5pdCBsb2dpY2FsT2Zmc2V0KQogCiB2b2lkIFJlbmRlckJsb2NrOjphYnNvbHV0ZVJlY3RzKFZl
Y3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNl
dCkgY29uc3QKIHsKLSAgICAvLyBGb3IgYmxvY2tzIGluc2lkZSBpbmxpbmVzLCB3ZSBnbyBhaGVh
ZCBhbmQgaW5jbHVkZSBtYXJnaW5zIHNvIHRoYXQgd2UgcnVuIHJpZ2h0IHVwIHRvIHRoZQotICAg
IC8vIGlubGluZSBib3hlcyBhYm92ZSBhbmQgYmVsb3cgdXMgKHRodXMgZ2V0dGluZyBtZXJnZWQg
d2l0aCB0aGVtIHRvIGZvcm0gYSBzaW5nbGUgaXJyZWd1bGFyCi0gICAgLy8gc2hhcGUpLgorICAg
IC8vIEZvciBibG9ja3MgaW5zaWRlIGlubGluZXMsIHdlIGluY2x1ZGUgbWFyZ2lucyBzbyB0aGF0
IHdlIHJ1biByaWdodCB1cCB0byB0aGUgaW5saW5lIGJveGVzCisgICAgLy8gYWJvdmUgYW5kIGJl
bG93IHVzICh0aHVzIGdldHRpbmcgbWVyZ2VkIHdpdGggdGhlbSB0byBmb3JtIGEgc2luZ2xlIGly
cmVndWxhciBzaGFwZSkuCiAgICAgaWYgKGlzQW5vbnltb3VzQmxvY2tDb250aW51YXRpb24oKSkg
ewogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZyBmb3IgYmxvY2stZmxvd3MgdGhhdCBh
cmUgaG9yaXpvbnRhbC4KICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ2NzgxCkBAIC0zMzI4LDkgKzMzMjUsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjph
YnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bQogCiB2b2lkIFJlbmRlckJsb2NrOjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+
JiBxdWFkcywgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0gICAgLy8gRm9yIGJsb2NrcyBpbnNp
ZGUgaW5saW5lcywgd2UgZ28gYWhlYWQgYW5kIGluY2x1ZGUgbWFyZ2lucyBzbyB0aGF0IHdlIHJ1
biByaWdodCB1cCB0byB0aGUKLSAgICAvLyBpbmxpbmUgYm94ZXMgYWJvdmUgYW5kIGJlbG93IHVz
ICh0aHVzIGdldHRpbmcgbWVyZ2VkIHdpdGggdGhlbSB0byBmb3JtIGEgc2luZ2xlIGlycmVndWxh
cgotICAgIC8vIHNoYXBlKS4KKyAgICAvLyBGb3IgYmxvY2tzIGluc2lkZSBpbmxpbmVzLCB3ZSBp
bmNsdWRlIG1hcmdpbnMgc28gdGhhdCB3ZSBydW4gcmlnaHQgdXAgdG8gdGhlIGlubGluZSBib3hl
cworICAgIC8vIGFib3ZlIGFuZCBiZWxvdyB1cyAodGh1cyBnZXR0aW5nIG1lcmdlZCB3aXRoIHRo
ZW0gdG8gZm9ybSBhIHNpbmdsZSBpcnJlZ3VsYXIgc2hhcGUpLgogICAgIEZsb2F0UmVjdCBsb2Nh
bFJlY3QgPSBpc0Fub255bW91c0Jsb2NrQ29udGludWF0aW9uKCkgCiAgICAgICAgID8gRmxvYXRS
ZWN0KDAsIC1jb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSwgd2lkdGgoKSwgaGVpZ2h0KCkgKyBjb2xs
YXBzZWRNYXJnaW5CZWZvcmUoKSArIGNvbGxhcHNlZE1hcmdpbkFmdGVyKCkpCiAgICAgICAgIDog
RmxvYXRSZWN0KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKTsKQEAgLTM0MTMsOSArMzQwOSw4IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzRm9ySW5saW5lQ2hpbGRyZW4oVmVj
dG9yPEludFJlY3Q+JiwgY29uc3QgTGF5CiAKIHZvaWQgUmVuZGVyQmxvY2s6OmFkZEZvY3VzUmlu
Z1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlv
bmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lcikK
IHsKLSAgICAvLyBGb3IgYmxvY2tzIGluc2lkZSBpbmxpbmVzLCB3ZSBnbyBhaGVhZCBhbmQgaW5j
bHVkZSBtYXJnaW5zIHNvIHRoYXQgd2UgcnVuIHJpZ2h0IHVwIHRvIHRoZQotICAgIC8vIGlubGlu
ZSBib3hlcyBhYm92ZSBhbmQgYmVsb3cgdXMgKHRodXMgZ2V0dGluZyBtZXJnZWQgd2l0aCB0aGVt
IHRvIGZvcm0gYSBzaW5nbGUgaXJyZWd1bGFyCi0gICAgLy8gc2hhcGUpLgorICAgIC8vIEZvciBi
bG9ja3MgaW5zaWRlIGlubGluZXMsIHdlIGluY2x1ZGUgbWFyZ2lucyBzbyB0aGF0IHdlIHJ1biBy
aWdodCB1cCB0byB0aGUgaW5saW5lIGJveGVzCisgICAgLy8gYWJvdmUgYW5kIGJlbG93IHVzICh0
aHVzIGdldHRpbmcgbWVyZ2VkIHdpdGggdGhlbSB0byBmb3JtIGEgc2luZ2xlIGlycmVndWxhciBz
aGFwZSkuCiAgICAgaWYgKGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKSkgewogICAgICAgICAv
LyBGSVhNRTogVGhpcyBjaGVjayByZWFsbHkgaXNuJ3QgYWNjdXJhdGUuIAogICAgICAgICBib29s
IG5leHRJbmxpbmVIYXNMaW5lQm94ID0gaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpLT5maXJz
dExpbmVCb3goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKaW5kZXggZTM2ZTQ5ZGZkOTQ2YmU4ZGJmOTE1NGIxZTk0N2ZlNzc5OWJlMjQ1ZC4uYWQyZTQ3
N2FjZjhhMzg2MTQxMGExMDI0NjBjNmEyYmM3Y2ExY2U1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTY3MSw3ICs2NzEsNyBAQCB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZChSZW5kZXJCb3gmIGNoaWxkLCBNYXJnaW5J
bmZvJiBtYXJnaW5JbmZvLAogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICBMYXlvdXRTaXplIG9s
ZExheW91dERlbHRhID0gdmlldygpLmxheW91dERlbHRhKCk7CiAjZW5kaWYKLSAgICAvLyBHbyBh
aGVhZCBhbmQgcG9zaXRpb24gdGhlIGNoaWxkIGFzIHRob3VnaCBpdCBkaWRuJ3QgY29sbGFwc2Ug
d2l0aCB0aGUgdG9wLgorICAgIC8vIFBvc2l0aW9uIHRoZSBjaGlsZCBhcyB0aG91Z2ggaXQgZGlk
bid0IGNvbGxhcHNlIHdpdGggdGhlIHRvcC4KICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hp
bGQsIGxvZ2ljYWxUb3BFc3RpbWF0ZSwgQXBwbHlMYXlvdXREZWx0YSk7CiAgICAgZXN0aW1hdGVS
ZWdpb25SYW5nZUZvckJveENoaWxkKGNoaWxkKTsKIApAQCAtNzI4LDEwICs3MjgsOCBAQCB2b2lk
IFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZChSZW5kZXJCb3gmIGNoaWxkLCBNYXJn
aW5JbmZvJiBtYXJnaW5JbmZvLAogICAgIC8vIHdoZW4gY29sbGFwc2VNYXJnaW5zIGR5bmFtaWNh
bGx5IGFkZHMgb3ZlcmhhbmdpbmcgZmxvYXRzIGJlY2F1c2Ugb2YgYSBjaGlsZCB3aXRoIG5lZ2F0
aXZlIG1hcmdpbnMuCiAgICAgaWYgKGxvZ2ljYWxUb3BBZnRlckNsZWFyICE9IGxvZ2ljYWxUb3BF
c3RpbWF0ZSB8fCBjaGlsZC5uZWVkc0xheW91dCgpIHx8IChwYWdpbmF0ZWQgJiYgY2hpbGRCbG9j
a0Zsb3cgJiYgY2hpbGRCbG9ja0Zsb3ctPnNob3VsZEJyZWFrQXRMaW5lVG9Bdm9pZFdpZG93KCkp
KSB7CiAgICAgICAgIGlmIChjaGlsZC5zaHJpbmtUb0F2b2lkRmxvYXRzKCkpIHsKLSAgICAgICAg
ICAgIC8vIFRoZSBjaGlsZCdzIHdpZHRoIGRlcGVuZHMgb24gdGhlIGxpbmUgd2lkdGguCi0gICAg
ICAgICAgICAvLyBXaGVuIHRoZSBjaGlsZCBzaGlmdHMgdG8gY2xlYXIgYW4gaXRlbSwgaXRzIHdp
ZHRoIGNhbgotICAgICAgICAgICAgLy8gY2hhbmdlIChiZWNhdXNlIGl0IGhhcyBtb3JlIGF2YWls
YWJsZSBsaW5lIHdpZHRoKS4KLSAgICAgICAgICAgIC8vIFNvIGdvIGFoZWFkIGFuZCBtYXJrIHRo
ZSBpdGVtIGFzIGRpcnR5LgorICAgICAgICAgICAgLy8gVGhlIGNoaWxkJ3Mgd2lkdGggZGVwZW5k
cyBvbiB0aGUgbGluZSB3aWR0aC4gV2hlbiB0aGUgY2hpbGQgc2hpZnRzIHRvIGNsZWFyIGFuIGl0
ZW0sIGl0cyB3aWR0aCBjYW4KKyAgICAgICAgICAgIC8vIGNoYW5nZSAoYmVjYXVzZSBpdCBoYXMg
bW9yZSBhdmFpbGFibGUgbGluZSB3aWR0aCkuIFNvIG1hcmsgdGhlIGl0ZW0gYXMgZGlydHkuCiAg
ICAgICAgICAgICBjaGlsZC5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CiAgICAg
ICAgIH0KICAgICAgICAgCkBAIC0xMzEyLDcgKzEzMTAsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6aGFuZGxlQWZ0ZXJTaWRlT2ZCbG9jayhMYXlvdXRVbml0IGJlZm9yZVNpZGUsIExheW91dFVu
aXQgYQogICAgIGlmIChpczxSZW5kZXJCbG9ja0Zsb3c+KGxhc3RCbG9jaykgJiYgZG93bmNhc3Q8
UmVuZGVyQmxvY2tGbG93PigqbGFzdEJsb2NrKS5pc1NlbGZDb2xsYXBzaW5nQmxvY2soKSkKICAg
ICAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KCkgLSBkb3duY2FzdDxSZW5kZXJC
bG9ja0Zsb3c+KCpsYXN0QmxvY2spLm1hcmdpbk9mZnNldEZvclNlbGZDb2xsYXBzaW5nQmxvY2so
KSk7CiAKLSAgICAvLyBJZiB3ZSBjYW4ndCBjb2xsYXBzZSB3aXRoIGNoaWxkcmVuIHRoZW4gZ28g
YWhlYWQgYW5kIGFkZCBpbiB0aGUgYm90dG9tIG1hcmdpbi4KKyAgICAvLyBJZiB3ZSBjYW4ndCBj
b2xsYXBzZSB3aXRoIGNoaWxkcmVuIHRoZW4gYWRkIGluIHRoZSBib3R0b20gbWFyZ2luLgogICAg
IGlmICghbWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkgJiYgKCFtYXJnaW5JbmZvLmNhbkNvbGxh
cHNlV2l0aE1hcmdpbkFmdGVyKCkgJiYgIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2lu
QmVmb3JlKCkKICAgICAgICAgJiYgKCFkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpIHx8ICFtYXJn
aW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8uaGFzTWFyZ2luQWZ0ZXJRdWly
aygpKSkpCiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbWFyZ2lu
SW5mby5tYXJnaW4oKSk7CkBAIC0xNTI2LDEwICsxNTI0LDggQEAgTGF5b3V0VW5pdCBSZW5kZXJC
bG9ja0Zsb3c6OmFkanVzdEJsb2NrQ2hpbGRGb3JQYWdpbmF0aW9uKExheW91dFVuaXQgbG9naWNh
bFRvcEEKICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkLCBsb2dpY2FsVG9wQWZ0
ZXJDbGVhciwgQXBwbHlMYXlvdXREZWx0YSk7CiAKICAgICAgICAgaWYgKGNoaWxkLnNocmlua1Rv
QXZvaWRGbG9hdHMoKSkgewotICAgICAgICAgICAgLy8gVGhlIGNoaWxkJ3Mgd2lkdGggZGVwZW5k
cyBvbiB0aGUgbGluZSB3aWR0aC4KLSAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNoaWxkIHNoaWZ0
cyB0byBjbGVhciBhbiBpdGVtLCBpdHMgd2lkdGggY2FuCi0gICAgICAgICAgICAvLyBjaGFuZ2Ug
KGJlY2F1c2UgaXQgaGFzIG1vcmUgYXZhaWxhYmxlIGxpbmUgd2lkdGgpLgotICAgICAgICAgICAg
Ly8gU28gZ28gYWhlYWQgYW5kIG1hcmsgdGhlIGl0ZW0gYXMgZGlydHkuCisgICAgICAgICAgICAv
LyBUaGUgY2hpbGQncyB3aWR0aCBkZXBlbmRzIG9uIHRoZSBsaW5lIHdpZHRoLiBXaGVuIHRoZSBj
aGlsZCBzaGlmdHMgdG8gY2xlYXIgYW4gaXRlbSwgaXRzIHdpZHRoIGNhbgorICAgICAgICAgICAg
Ly8gY2hhbmdlIChiZWNhdXNlIGl0IGhhcyBtb3JlIGF2YWlsYWJsZSBsaW5lIHdpZHRoKS4gU28g
bWFyayB0aGUgaXRlbSBhcyBkaXJ0eS4KICAgICAgICAgICAgIGNoaWxkLnNldENoaWxkTmVlZHNM
YXlvdXQoTWFya09ubHlUaGlzKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE1ODgsNyArMTU4
NCw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RCbG9ja0NoaWxkRm9yUGFn
aW5hdGlvbihMYXlvdXRVbml0IGxvZ2ljYWxUb3BBCiAgICAgICAgICAgICByZXN1bHQgKz0gcGFn
aW5hdGlvblN0cnV0OwogICAgIH0KIAotICAgIC8vIFNpbWlsYXIgdG8gaG93IHdlIGFwcGx5IGNs
ZWFyYW5jZS4gR28gYWhlYWQgYW5kIGJvb3N0IGhlaWdodCgpIHRvIGJlIHRoZSBwbGFjZSB3aGVy
ZSB3ZSdyZSBnb2luZyB0byBwb3NpdGlvbiB0aGUgY2hpbGQuCisgICAgLy8gU2ltaWxhciB0byBo
b3cgd2UgYXBwbHkgY2xlYXJhbmNlLiBCb29zdCBoZWlnaHQoKSB0byBiZSB0aGUgcGxhY2Ugd2hl
cmUgd2UncmUgZ29pbmcgdG8gcG9zaXRpb24gdGhlIGNoaWxkLgogICAgIHNldExvZ2ljYWxIZWln
aHQobG9naWNhbEhlaWdodCgpICsgKHJlc3VsdCAtIG9sZFRvcCkpOwogICAgIAogICAgIC8vIFJl
dHVybiB0aGUgZmluYWwgYWRqdXN0ZWQgbG9naWNhbCB0b3AuCkBAIC0yMjMxLDggKzIyMjcsNyBA
QCBGbG9hdGluZ09iamVjdCogUmVuZGVyQmxvY2tGbG93OjppbnNlcnRGbG9hdGluZ09iamVjdChS
ZW5kZXJCb3gmIGZsb2F0Qm94KQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZsb2F0aW5nT2JqZWN0
PiBmbG9hdGluZ09iamVjdCA9IEZsb2F0aW5nT2JqZWN0OjpjcmVhdGUoZmxvYXRCb3gpOwogICAg
IAotICAgIC8vIE91ciBsb2NhdGlvbiBpcyBpcnJlbGV2YW50IGlmIHdlJ3JlIHVuc3BsaXR0YWJs
ZSBvciBubyBwYWdpbmF0aW9uIGlzIGluIGVmZmVjdC4KLSAgICAvLyBKdXN0IGdvIGFoZWFkIGFu
ZCBsYXkgb3V0IHRoZSBmbG9hdC4KKyAgICAvLyBPdXIgbG9jYXRpb24gaXMgaXJyZWxldmFudCBp
ZiB3ZSdyZSB1bnNwbGl0dGFibGUgb3Igbm8gcGFnaW5hdGlvbiBpcyBpbiBlZmZlY3QuIEp1c3Qg
bGF5IG91dCB0aGUgZmxvYXQuCiAgICAgYm9vbCBpc0NoaWxkUmVuZGVyQmxvY2sgPSBmbG9hdEJv
eC5pc1JlbmRlckJsb2NrKCk7CiAgICAgaWYgKGlzQ2hpbGRSZW5kZXJCbG9jayAmJiAhZmxvYXRC
b3gubmVlZHNMYXlvdXQoKSAmJiB2aWV3KCkubGF5b3V0U3RhdGUoKS0+cGFnZUxvZ2ljYWxIZWln
aHRDaGFuZ2VkKCkpCiAgICAgICAgIGZsb2F0Qm94LnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09u
bHlUaGlzKTsKQEAgLTI2NjIsOCArMjY1Nyw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93
OjphZGRPdmVyaGFuZ2luZ0Zsb2F0cyhSZW5kZXJCbG9ja0Zsb3cmIGNoaWxkLCBib29sIG1hCiAg
ICAgICAgICAgICAgICAgZmxvYXRpbmdPYmplY3QtPnNldFNob3VsZFBhaW50KHRydWUpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBTaW5jZSB0aGUgZmxvYXQg
ZG9lc24ndCBvdmVyaGFuZywgaXQgZGlkbid0IGdldCBwdXQgaW50byBvdXIgbGlzdC4gV2UgbmVl
ZCB0byBnbyBhaGVhZCBhbmQgYWRkIGl0cyBvdmVyZmxvdyBpbiB0byB0aGUKLSAgICAgICAgICAg
IC8vIGNoaWxkIG5vdy4KKyAgICAgICAgICAgIC8vIFNpbmNlIHRoZSBmbG9hdCBkb2Vzbid0IG92
ZXJoYW5nLCBpdCBkaWRuJ3QgZ2V0IHB1dCBpbnRvIG91ciBsaXN0LiBXZSBuZWVkIHRvIGFkZCBp
dHMgb3ZlcmZsb3cgaW4gdG8gdGhlIGNoaWxkIG5vdy4KICAgICAgICAgICAgIGlmIChmbG9hdGlu
Z09iamVjdC0+aXNEZXNjZW5kYW50KCkpCiAgICAgICAgICAgICAgICAgY2hpbGQuYWRkT3ZlcmZs
b3dGcm9tQ2hpbGQoJmZsb2F0aW5nT2JqZWN0LT5yZW5kZXJlcigpLCBMYXlvdXRTaXplKHhQb3Np
dGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGZsb2F0aW5nT2JqZWN0KSwgeVBvc2l0aW9uRm9y
RmxvYXRJbmNsdWRpbmdNYXJnaW4oZmxvYXRpbmdPYmplY3QpKSk7CiAgICAgICAgIH0KQEAgLTMw
NTcsOCArMzA1MSw3IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9u
R2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAKICAgICBpZiAoIWhhc0xp
bmVzKCkpIHsKICAgICAgICAgaWYgKGNvbnRhaW5zU3RhcnQpIHsKLSAgICAgICAgICAgIC8vIEdv
IGFoZWFkIGFuZCB1cGRhdGUgb3VyIGxhc3RMb2dpY2FsVG9wIHRvIGJlIHRoZSBib3R0b20gb2Yg
dGhlIGJsb2NrLiAgPGhyPnMgb3IgZW1wdHkgYmxvY2tzIHdpdGggaGVpZ2h0IGNhbiB0cmlwIHRo
aXMKLSAgICAgICAgICAgIC8vIGNhc2UuCisgICAgICAgICAgICAvLyBVcGRhdGUgb3VyIGxhc3RM
b2dpY2FsVG9wIHRvIGJlIHRoZSBib3R0b20gb2YgdGhlIGJsb2NrLiA8aHI+cyBvciBlbXB0eSBi
bG9ja3Mgd2l0aCBoZWlnaHQgY2FuIHRyaXAgdGhpcyBjYXNlLgogICAgICAgICAgICAgbGFzdExv
Z2ljYWxUb3AgPSBibG9ja0RpcmVjdGlvbk9mZnNldChyb290QmxvY2ssIG9mZnNldEZyb21Sb290
QmxvY2spICsgbG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgbGFzdExvZ2ljYWxMZWZ0ID0g
bG9naWNhbExlZnRTZWxlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBsb2dpY2FsSGVpZ2h0KCksIGNh
Y2hlKTsKICAgICAgICAgICAgIGxhc3RMb2dpY2FsUmlnaHQgPSBsb2dpY2FsUmlnaHRTZWxlY3Rp
b25PZmZzZXQocm9vdEJsb2NrLCBsb2dpY2FsSGVpZ2h0KCksIGNhY2hlKTsKQEAgLTMwOTQsNyAr
MzA4Nyw3IEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrRmxvdzo6aW5saW5lU2VsZWN0aW9uR2FwcyhS
ZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvCiAgICAgICAgIGxhc3RTZWxlY3RlZExp
bmUgPSBsYXN0Um9vdEJveCgpOwogCiAgICAgaWYgKGxhc3RTZWxlY3RlZExpbmUgJiYgc2VsZWN0
aW9uU3RhdGUoKSAhPSBTZWxlY3Rpb25FbmQgJiYgc2VsZWN0aW9uU3RhdGUoKSAhPSBTZWxlY3Rp
b25Cb3RoKSB7Ci0gICAgICAgIC8vIEdvIGFoZWFkIGFuZCB1cGRhdGUgb3VyIGxhc3RZIHRvIGJl
IHRoZSBib3R0b20gb2YgdGhlIGxhc3Qgc2VsZWN0ZWQgbGluZS4KKyAgICAgICAgLy8gVXBkYXRl
IG91ciBsYXN0WSB0byBiZSB0aGUgYm90dG9tIG9mIHRoZSBsYXN0IHNlbGVjdGVkIGxpbmUuCiAg
ICAgICAgIGxhc3RMb2dpY2FsVG9wID0gYmxvY2tEaXJlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBv
ZmZzZXRGcm9tUm9vdEJsb2NrKSArIGxhc3RTZWxlY3RlZExpbmUtPnNlbGVjdGlvbkJvdHRvbSgp
OwogICAgICAgICBsYXN0TG9naWNhbExlZnQgPSBsb2dpY2FsTGVmdFNlbGVjdGlvbk9mZnNldChy
b290QmxvY2ssIGxhc3RTZWxlY3RlZExpbmUtPnNlbGVjdGlvbkJvdHRvbSgpLCBjYWNoZSk7CiAg
ICAgICAgIGxhc3RMb2dpY2FsUmlnaHQgPSBsb2dpY2FsUmlnaHRTZWxlY3Rpb25PZmZzZXQocm9v
dEJsb2NrLCBsYXN0U2VsZWN0ZWRMaW5lLT5zZWxlY3Rpb25Cb3R0b20oKSwgY2FjaGUpOwpAQCAt
NDAzMCwxMCArNDAyMyw5IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlSW5saW5lUHJl
ZmVycmVkTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsCiAgICAgICAgIGJvb2wg
aXNBbm9ueW1vdXNJbmxpbmVCbG9jayA9IGNoaWxkLT5pc0Fub255bW91c0lubGluZUJsb2NrKCk7
CiAgICAgICAgIAogICAgICAgICBpZiAoIWNoaWxkLT5pc0JSKCkpIHsKLSAgICAgICAgICAgIC8v
IFN0ZXAgT25lOiBkZXRlcm1pbmUgd2hldGhlciBvciBub3Qgd2UgbmVlZCB0byBnbyBhaGVhZCBh
bmQKLSAgICAgICAgICAgIC8vIHRlcm1pbmF0ZSBvdXIgY3VycmVudCBsaW5lLiBFYWNoIGRpc2Ny
ZXRlIGNodW5rIGNhbiBiZWNvbWUKLSAgICAgICAgICAgIC8vIHRoZSBuZXcgbWluLXdpZHRoLCBp
ZiBpdCBpcyB0aGUgd2lkZXN0IGNodW5rIHNlZW4gc28gZmFyLCBhbmQKLSAgICAgICAgICAgIC8v
IGl0IGNhbiBhbHNvIGJlY29tZSB0aGUgbWF4LXdpZHRoLgorICAgICAgICAgICAgLy8gU3RlcCBP
bmU6IGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB3ZSBuZWVkIHRvIHRlcm1pbmF0ZSBvdXIgY3Vy
cmVudCBsaW5lLgorICAgICAgICAgICAgLy8gRWFjaCBkaXNjcmV0ZSBjaHVuayBjYW4gYmVjb21l
IHRoZSBuZXcgbWluLXdpZHRoLCBpZiBpdCBpcyB0aGUgd2lkZXN0IGNodW5rCisgICAgICAgICAg
ICAvLyBzZWVuIHNvIGZhciwgYW5kIGl0IGNhbiBhbHNvIGJlY29tZSB0aGUgbWF4LXdpZHRoLgog
CiAgICAgICAgICAgICAvLyBDaGlsZHJlbiBmYWxsIGludG8gdGhyZWUgY2F0ZWdvcmllczoKICAg
ICAgICAgICAgIC8vICgxKSBBbiBpbmxpbmUgZmxvdyBvYmplY3QuIFRoZXNlIG9iamVjdHMgYWx3
YXlzIGhhdmUgYSBtaW4vbWF4IG9mIDAsCkBAIC00MDQyLDggKzQwMzQsOCBAQCB2b2lkIFJlbmRl
ckJsb2NrRmxvdzo6Y29tcHV0ZUlubGluZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoTGF5b3V0VW5p
dCYgbWluTG9naWNhbAogICAgICAgICAgICAgLy8KICAgICAgICAgICAgIC8vICgyKSBBbiBpbmxp
bmUgbm9uLXRleHQgbm9uLWZsb3cgb2JqZWN0LCBlLmcuLCBhbiBpbmxpbmUgcmVwbGFjZWQgZWxl
bWVudC4KICAgICAgICAgICAgIC8vIFRoZXNlIG9iamVjdHMgY2FuIGFsd2F5cyBiZSBvbiBhIGxp
bmUgYnkgdGhlbXNlbHZlcywgc28gaW4gdGhpcyBzaXR1YXRpb24KLSAgICAgICAgICAgIC8vIHdl
IG5lZWQgdG8gZ28gYWhlYWQgYW5kIGJyZWFrIHRoZSBjdXJyZW50IGxpbmUsIGFuZCB0aGVuIGFk
ZCBpbiBvdXIgb3duCi0gICAgICAgICAgICAvLyBtYXJnaW5zIGFuZCBtaW4vbWF4IHdpZHRoIG9u
IGl0cyBvd24gbGluZSwgYW5kIHRoZW4gdGVybWluYXRlIHRoZSBsaW5lLgorICAgICAgICAgICAg
Ly8gd2UgbmVlZCB0byBicmVhayB0aGUgY3VycmVudCBsaW5lLCBhbmQgdGhlbiBhZGQgaW4gb3Vy
IG93biBtYXJnaW5zIGFuZCBtaW4vbWF4CisgICAgICAgICAgICAvLyB3aWR0aCBvbiBpdHMgb3du
IGxpbmUsIGFuZCB0aGVuIHRlcm1pbmF0ZSB0aGUgbGluZS4KICAgICAgICAgICAgIC8vCiAgICAg
ICAgICAgICAvLyAoMykgQSB0ZXh0IG9iamVjdC4gVGV4dCBydW5zIGNhbiBoYXZlIGJyZWFrYWJs
ZSBjaGFyYWN0ZXJzIGF0IHRoZSBzdGFydCwKICAgICAgICAgICAgIC8vIHRoZSBtaWRkbGUgb3Ig
dGhlIGVuZC4gVGhleSBtYXkgYWxzbyBsb3NlIHdoaXRlc3BhY2Ugb2ZmIHRoZSBmcm9udCBpZgpA
QCAtNDA1NSw5ICs0MDQ3LDggQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWwKICAgICAgICAgICAg
IC8vIGVuZHMgd2l0aCB3aGl0ZXNwYWNlLgogICAgICAgICAgICAgLy8gKGMpIHRoZSBtaW4vbWF4
IHdpZHRoIG9mIHRoZSBzdHJpbmcgKHRyaW1tZWQgZm9yIHdoaXRlc3BhY2UpLgogICAgICAgICAg
ICAgLy8KLSAgICAgICAgICAgIC8vIElmIHRoZSB0ZXh0IHN0cmluZyBzdGFydHMgd2l0aCB3aGl0
ZXNwYWNlLCB0aGVuIHdlIG5lZWQgdG8gZ28gYWhlYWQgYW5kCi0gICAgICAgICAgICAvLyB0ZXJt
aW5hdGUgb3VyIGN1cnJlbnQgbGluZSAodW5sZXNzIHdlJ3JlIGFscmVhZHkgaW4gYSB3aGl0ZXNw
YWNlIHN0cmlwcGluZwotICAgICAgICAgICAgLy8gbW9kZS4KKyAgICAgICAgICAgIC8vIElmIHRo
ZSB0ZXh0IHN0cmluZyBzdGFydHMgd2l0aCB3aGl0ZXNwYWNlLCB0aGVuIHdlIG5lZWQgdG8gdGVy
bWluYXRlIG91ciBjdXJyZW50IGxpbmUKKyAgICAgICAgICAgIC8vICh1bmxlc3Mgd2UncmUgYWxy
ZWFkeSBpbiBhIHdoaXRlc3BhY2Ugc3RyaXBwaW5nIG1vZGUuCiAgICAgICAgICAgICAvLwogICAg
ICAgICAgICAgLy8gSWYgdGhlIHRleHQgc3RyaW5nIGhhcyBhIGJyZWFrYWJsZSBjaGFyYWN0ZXIg
aW4gdGhlIG1pZGRsZSwgYnV0IGRpZG4ndCBzdGFydAogICAgICAgICAgICAgLy8gd2l0aCB3aGl0
ZXNwYWNlLCB0aGVuIHdlIGFkZCB0aGUgd2lkdGggb2YgdGhlIGZpcnN0IG5vbi1icmVha2FibGUg
cnVuIGFuZApAQCAtNDEwMyw4ICs0MDk0LDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1
dGVJbmxpbmVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWwKIAog
ICAgICAgICAgICAgaWYgKCFpczxSZW5kZXJJbmxpbmU+KCpjaGlsZCkgJiYgIWlzPFJlbmRlclRl
eHQ+KCpjaGlsZCkpIHsKICAgICAgICAgICAgICAgICAvLyBDYXNlICgyKS4gSW5saW5lIHJlcGxh
Y2VkIGVsZW1lbnRzIGFuZCBmbG9hdHMuCi0gICAgICAgICAgICAgICAgLy8gR28gYWhlYWQgYW5k
IHRlcm1pbmF0ZSB0aGUgY3VycmVudCBsaW5lIGFzIGZhciBhcwotICAgICAgICAgICAgICAgIC8v
IG1pbndpZHRoIGlzIGNvbmNlcm5lZC4KKyAgICAgICAgICAgICAgICAvLyBUZXJtaW5hdGUgdGhl
IGN1cnJlbnQgbGluZSBhcyBmYXIgYXMgbWlud2lkdGggaXMgY29uY2VybmVkLgogICAgICAgICAg
ICAgICAgIGNoaWxkTWluICs9IGNoaWxkLT5taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKS5jZWls
VG9GbG9hdCgpOwogICAgICAgICAgICAgICAgIGNoaWxkTWF4ICs9IGNoaWxkLT5tYXhQcmVmZXJy
ZWRMb2dpY2FsV2lkdGgoKS5jZWlsVG9GbG9hdCgpOwogCkBAIC00MjQwLDcgKzQyMzAsNyBAQCB2
b2lkIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUlubGluZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMo
TGF5b3V0VW5pdCYgbWluTG9naWNhbAogICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGEg
YnJlYWthYmxlIGNoYXJhY3Rlci4gTm93IHdlIG5lZWQgdG8ga25vdyBpZgogICAgICAgICAgICAg
ICAgICAgICAvLyB3ZSBzdGFydCBhbmQgZW5kIHdpdGggd2hpdGVzcGFjZS4KICAgICAgICAgICAg
ICAgICAgICAgaWYgKGJlZ2luV1MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdvIGFo
ZWFkIGFuZCBlbmQgdGhlIGN1cnJlbnQgbGluZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEVuZCB0aGUgY3VycmVudCBsaW5lLgogICAgICAgICAgICAgICAgICAgICAgICAgbWluTG9naWNh
bFdpZHRoID0gcHJlZmVycmVkV2lkdGgobWluTG9naWNhbFdpZHRoLCBpbmxpbmVNaW4pOwogICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5l
TWluICs9IGJlZ2luTWluOwpAQCAtNDI1MSw4ICs0MjQxLDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zs
b3c6OmNvbXB1dGVJbmxpbmVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxv
Z2ljYWwKICAgICAgICAgICAgICAgICAgICAgaW5saW5lTWluID0gY2hpbGRNaW47CiAKICAgICAg
ICAgICAgICAgICAgICAgaWYgKGVuZFdTKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBX
ZSBlbmQgaW4gd2hpdGVzcGFjZSwgd2hpY2ggbWVhbnMgd2UgY2FuIGdvIGFoZWFkCi0gICAgICAg
ICAgICAgICAgICAgICAgICAvLyBhbmQgZW5kIG91ciBjdXJyZW50IGxpbmUuCisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBXZSBlbmQgaW4gd2hpdGVzcGFjZSwgd2hpY2ggbWVhbnMgd2UgY2Fu
IGVuZCBvdXIgY3VycmVudCBsaW5lLgogICAgICAgICAgICAgICAgICAgICAgICAgbWluTG9naWNh
bFdpZHRoID0gcHJlZmVycmVkV2lkdGgobWluTG9naWNhbFdpZHRoLCBpbmxpbmVNaW4pOwogICAg
ICAgICAgICAgICAgICAgICAgICAgaW5saW5lTWluID0gMDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJyZWFrTGluZUFmdGVyVGV4dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCBiODA4OTE3NzY0
YjU1YTA5NzA3NDVkYWYwNWY2NjMyYzU4OTAyMmRhLi4wNGJhY2Q4ODQ5ZTU2ZGUzNjhmY2NmMmFi
NDM2M2VmOGNiZDczM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTAzLDggKzEwMyw3IEBAIHZvaWQgUmVuZGVyQmxv
Y2tGbG93OjphcHBlbmRSdW5zRm9yT2JqZWN0KEJpZGlSdW5MaXN0PEJpZGlSdW4+JiBydW5zLCBp
bnQgc3RhcnQsCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICAvLyBB
biBlbmQgbWlkcG9pbnQgaGFzIGJlZW4gZW5jb3VudGVyZWQgd2l0aGluIG91ciBvYmplY3QuICBX
ZQotICAgICAgICAvLyBuZWVkIHRvIGdvIGFoZWFkIGFuZCBhcHBlbmQgYSBydW4gd2l0aCBvdXIg
ZW5kcG9pbnQuCisgICAgICAgIC8vIEFuIGVuZCBtaWRwb2ludCBoYXMgYmVlbiBlbmNvdW50ZXJl
ZCB3aXRoaW4gb3VyIG9iamVjdC4gV2UgbmVlZCB0byBhcHBlbmQgYSBydW4gd2l0aCBvdXIgZW5k
cG9pbnQuCiAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KG5leHRNaWRwb2ludC5vZmZzZXQo
KSArIDEpIDw9IGVuZCkgewogICAgICAgICAgICAgbGluZU1pZHBvaW50U3RhdGUuc2V0QmV0d2Vl
bk1pZHBvaW50cyh0cnVlKTsKICAgICAgICAgICAgIGxpbmVNaWRwb2ludFN0YXRlLmluY3JlbWVu
dEN1cnJlbnRNaWRwb2ludCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApp
bmRleCBlNTJmYTc1M2MxODVkYzhiNWNkN2E5M2IwZjY2OTgwNjc5OTg4NGVkLi5kN2Y1NDAyYjFi
ZDMxNTcxMzlhZWYyZmNjZmJkNDE4ODRiOWIxMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcApAQCAtMjA4Miw3ICsyMDgyLDcgQEAgdm9pZCBSZW5kZXJCb3g6OnBvc2l0
aW9uTGluZUJveChJbmxpbmVFbGVtZW50Qm94JiBib3gpCiAgICAgICAgICAgICBSb290SW5saW5l
Qm94JiByb290Qm94ID0gYm94LnJvb3QoKTsKICAgICAgICAgICAgIHJvb3RCb3guYmxvY2tGbG93
KCkuc2V0U3RhdGljSW5saW5lUG9zaXRpb25Gb3JDaGlsZCgqdGhpcywgcm9vdEJveC5saW5lVG9w
V2l0aExlYWRpbmcoKSwgTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQoYm94LmxvZ2ljYWxMZWZ0
KCkpKTsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLmhhc1N0YXRpY0lubGluZVBvc2l0aW9uKGJv
eC5pc0hvcml6b250YWwoKSkpCi0gICAgICAgICAgICAgICAgc2V0Q2hpbGROZWVkc0xheW91dChN
YXJrT25seVRoaXMpOyAvLyBKdXN0IGdvIGFoZWFkIGFuZCBtYXJrIHRoZSBwb3NpdGlvbmVkIG9i
amVjdCBhcyBuZWVkaW5nIGxheW91dCwgc28gaXQgd2lsbCB1cGRhdGUgaXRzIHBvc2l0aW9uIHBy
b3Blcmx5LgorICAgICAgICAgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlz
KTsgLy8gSnVzdCBtYXJrIHRoZSBwb3NpdGlvbmVkIG9iamVjdCBhcyBuZWVkaW5nIGxheW91dCwg
c28gaXQgd2lsbCB1cGRhdGUgaXRzIHBvc2l0aW9uIHByb3Blcmx5LgogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgLy8gT3VyIG9iamVjdCB3YXMgYSBibG9jayBvcmlnaW5hbGx5LCBzbyB3
ZSBtYWtlIG91ciBub3JtYWwgZmxvdyBwb3NpdGlvbiBiZQogICAgICAgICAgICAgLy8ganVzdCBi
ZWxvdyB0aGUgbGluZSBib3ggKGFzIHRob3VnaCBhbGwgdGhlIGlubGluZXMgdGhhdCBjYW1lIGJl
Zm9yZSB1cyBnb3QKQEAgLTIwOTAsNyArMjA5MCw3IEBAIHZvaWQgUmVuZGVyQm94Ojpwb3NpdGlv
bkxpbmVCb3goSW5saW5lRWxlbWVudEJveCYgYm94KQogICAgICAgICAgICAgLy8gaW4gZmxvdyku
ICBUaGlzIHZhbHVlIHdhcyBjYWNoZWQgaW4gdGhlIHkoKSBvZiB0aGUgYm94LgogICAgICAgICAg
ICAgbGF5ZXIoKS0+c2V0U3RhdGljQmxvY2tQb3NpdGlvbihib3gubG9naWNhbFRvcCgpKTsKICAg
ICAgICAgICAgIGlmIChzdHlsZSgpLmhhc1N0YXRpY0Jsb2NrUG9zaXRpb24oYm94LmlzSG9yaXpv
bnRhbCgpKSkKLSAgICAgICAgICAgICAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhp
cyk7IC8vIEp1c3QgZ28gYWhlYWQgYW5kIG1hcmsgdGhlIHBvc2l0aW9uZWQgb2JqZWN0IGFzIG5l
ZWRpbmcgbGF5b3V0LCBzbyBpdCB3aWxsIHVwZGF0ZSBpdHMgcG9zaXRpb24gcHJvcGVybHkuCisg
ICAgICAgICAgICAgICAgc2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOyAvLyBKdXN0
IG1hcmsgdGhlIHBvc2l0aW9uZWQgb2JqZWN0IGFzIG5lZWRpbmcgbGF5b3V0LCBzbyBpdCB3aWxs
IHVwZGF0ZSBpdHMgcG9zaXRpb24gcHJvcGVybHkuCiAgICAgICAgIH0KIAogICAgICAgICAvLyBO
dWtlIHRoZSBib3guCkBAIC0yNDg4LDggKzI0ODgsOCBAQCBib29sIFJlbmRlckJveDo6c2l6ZXNM
b2dpY2FsV2lkdGhUb0ZpdENvbnRlbnQoU2l6ZVR5cGUgd2lkdGhUeXBlKSBjb25zdAogICAgIH0K
IAogICAgIC8vIEZsZXhpYmxlIGJveCBpdGVtcyBzaG91bGQgc2hyaW5rIHdyYXAsIHNvIHdlIGxh
eSB0aGVtIG91dCBhdCB0aGVpciBpbnRyaW5zaWMgd2lkdGhzLgotICAgIC8vIEluIHRoZSBjYXNl
IG9mIGNvbHVtbnMgdGhhdCBoYXZlIGEgc3RyZXRjaCBhbGlnbm1lbnQsIHdlIGdvIGFoZWFkIGFu
ZCBsYXlvdXQgYXQgdGhlCi0gICAgLy8gc3RyZXRjaGVkIHNpemUgdG8gYXZvaWQgYW4gZXh0cmEg
bGF5b3V0IHdoZW4gYXBwbHlpbmcgYWxpZ25tZW50LgorICAgIC8vIEluIHRoZSBjYXNlIG9mIGNv
bHVtbnMgdGhhdCBoYXZlIGEgc3RyZXRjaCBhbGlnbm1lbnQsIHdlIGxheW91dCBhdCB0aGUgc3Ry
ZXRjaGVkIHNpemUKKyAgICAvLyB0byBhdm9pZCBhbiBleHRyYSBsYXlvdXQgd2hlbiBhcHBseWlu
ZyBhbGlnbm1lbnQuCiAgICAgaWYgKHBhcmVudCgpLT5pc0ZsZXhpYmxlQm94KCkpIHsKICAgICAg
ICAgLy8gRm9yIG11bHRpbGluZSBjb2x1bW5zLCB3ZSBuZWVkIHRvIGFwcGx5IGFsaWduLWNvbnRl
bnQgZmlyc3QsIHNvIHdlIGNhbid0IHN0cmV0Y2ggbm93LgogICAgICAgICBpZiAoIXBhcmVudCgp
LT5zdHlsZSgpLmlzQ29sdW1uRmxleERpcmVjdGlvbigpIHx8IHBhcmVudCgpLT5zdHlsZSgpLmZs
ZXhXcmFwKCkgIT0gRmxleE5vV3JhcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDJhMzU5ZjViMzI4NTQ2ODYyMmYwYjNmOWVl
NWFiNzJjZjNkM2UzZTAuLjkxMDIxYWZiM2JmNzIwMWZkZTQwNzU5YjBjMzJlZTMzNGU1YWE2MDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcApAQCAtODEzLDcgKzgxMyw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAgICAgICAg
ICAgICBpZiAoIWJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZCkKICAgICAgICAg
ICAgICAgICBiYWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3QocGFpbnRJbmZvLnJlY3QpOwogCi0gICAg
ICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIGFscGhhIGFuZCB3ZSBhcmUgcGFpbnRpbmcgdGhlIHJv
b3QgZWxlbWVudCwgZ28gYWhlYWQgYW5kIGJsZW5kIHdpdGggdGhlIGJhc2UgYmFja2dyb3VuZCBj
b2xvci4KKyAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gYWxwaGEgYW5kIHdlIGFyZSBwYWlu
dGluZyB0aGUgcm9vdCBlbGVtZW50LCBibGVuZCB3aXRoIHRoZSBiYXNlIGJhY2tncm91bmQgY29s
b3IuCiAgICAgICAgICAgICBDb2xvciBiYXNlQ29sb3I7CiAgICAgICAgICAgICBib29sIHNob3Vs
ZENsZWFyQmFja2dyb3VuZCA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKChiYXNlQmdDb2xvclVz
YWdlICE9IEJhc2VCYWNrZ3JvdW5kQ29sb3JTa2lwKSAmJiBpc09wYXF1ZVJvb3QpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGY4ZmM4Mjg0NDQ1M2JiYmRj
MWNiMzU4OWNkNTAyMWNlZjE5Y2I4ODEuLjYyMDFhOGFmODMwMGI5NTNkNDRhNGE0ODhiMWZkOWVk
NzRiMzdjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAt
NTM2LDcgKzUzNiw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKFJl
bmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1hcCwgVXBkYXRlTGF5CiAgICAgbV9oYXNUcmFuc2Zv
cm1lZEFuY2VzdG9yID0gZmxhZ3MgJiBTZWVuVHJhbnNmb3JtZWRMYXllcjsKICAgICBtX2hhczNE
VHJhbnNmb3JtZWRBbmNlc3RvciA9IGZsYWdzICYgU2VlbjNEVHJhbnNmb3JtZWRMYXllcjsKIAot
ICAgIC8vIEdvIGFoZWFkIGFuZCB1cGRhdGUgdGhlIHJlZmxlY3Rpb24ncyBwb3NpdGlvbiBhbmQg
c2l6ZS4KKyAgICAvLyBVcGRhdGUgdGhlIHJlZmxlY3Rpb24ncyBwb3NpdGlvbiBhbmQgc2l6ZS4K
ICAgICBpZiAobV9yZWZsZWN0aW9uKQogICAgICAgICBtX3JlZmxlY3Rpb24tPmxheW91dCgpOwog
CkBAIC01MDA2LDcgKzUwMDYsNyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmhpdFRlc3RM
YXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBSZW5kZXJMYXllciogY29udAogICAgICAgICBp
ZiAocGFyZW50KCkpIHsKICAgICAgICAgICAgIENsaXBSZWN0c0NvbnRleHQgY2xpcFJlY3RzQ29u
dGV4dChyb290TGF5ZXIsIFJvb3RSZWxhdGl2ZUNsaXBSZWN0cywgSW5jbHVkZU92ZXJsYXlTY3Jv
bGxiYXJTaXplKTsKICAgICAgICAgICAgIENsaXBSZWN0IGNsaXBSZWN0ID0gYmFja2dyb3VuZENs
aXBSZWN0KGNsaXBSZWN0c0NvbnRleHQpOwotICAgICAgICAgICAgLy8gR28gYWhlYWQgYW5kIHRl
c3QgdGhlIGVuY2xvc2luZyBjbGlwIG5vdy4KKyAgICAgICAgICAgIC8vIFRlc3QgdGhlIGVuY2xv
c2luZyBjbGlwIG5vdy4KICAgICAgICAgICAgIGlmICghY2xpcFJlY3QuaW50ZXJzZWN0cyhoaXRU
ZXN0TG9jYXRpb24pKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9
CkBAIC01NjAzLDE1ICs1NjAzLDE0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZVJlY3Rz
KGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIGNvbnN0CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAocmVuZGVyZXIoKS5oYXNDbGlwKCkpIHsKLSAgICAgICAgICAgIC8v
IENsaXAgYXBwbGllcyB0byAqdXMqIGFzIHdlbGwsIHNvIGdvIGFoZWFkIGFuZCB1cGRhdGUgdGhl
IGRhbWFnZVJlY3QuCisgICAgICAgICAgICAvLyBDbGlwIGFwcGxpZXMgdG8gKnVzKiBhcyB3ZWxs
LCBzbyB1cGRhdGUgdGhlIGRhbWFnZVJlY3QuCiAgICAgICAgICAgICBMYXlvdXRSZWN0IG5ld1Bv
c0NsaXAgPSBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpLmNsaXBSZWN0KHRvTGF5b3V0
UG9pbnQob2Zmc2V0RnJvbVJvb3RMb2NhbCksIG5hbWVkRmxvd0ZyYWdtZW50KTsKICAgICAgICAg
ICAgIGJhY2tncm91bmRSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKICAgICAgICAgICAgIGZv
cmVncm91bmRSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKICAgICAgICAgICAgIG91dGxpbmVS
ZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIElmIHdl
IGVzdGFibGlzaCBhIGNsaXAgYXQgYWxsLCB0aGVuIGdvIGFoZWFkIGFuZCBtYWtlIHN1cmUgb3Vy
IGJhY2tncm91bmQKLSAgICAgICAgLy8gcmVjdCBpcyBpbnRlcnNlY3RlZCB3aXRoIG91ciBsYXll
cidzIGJvdW5kcyBpbmNsdWRpbmcgb3VyIHZpc3VhbCBvdmVyZmxvdywKKyAgICAgICAgLy8gSWYg
d2UgZXN0YWJsaXNoIGEgY2xpcCBhdCBhbGwsIHRoZW4gbWFrZSBzdXJlIG91ciBiYWNrZ3JvdW5k
IHJlY3QgaXMgaW50ZXJzZWN0ZWQgd2l0aCBvdXIgbGF5ZXIncyBib3VuZHMgaW5jbHVkaW5nIG91
ciB2aXN1YWwgb3ZlcmZsb3csCiAgICAgICAgIC8vIHNpbmNlIGFueSB2aXN1YWwgb3ZlcmZsb3cg
bGlrZSBib3gtc2hhZG93IG9yIGJvcmRlci1vdXRzZXQgaXMgbm90IGNsaXBwZWQgYnkgb3ZlcmZs
b3c6YXV0by9oaWRkZW4uCiAgICAgICAgIGlmIChyZW5kZXJCb3goKS0+aGFzVmlzdWFsT3ZlcmZs
b3coKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IERvZXMgbm90IGRvIHRoZSByaWdodCB0aGlu
ZyB3aXRoIENTUyByZWdpb25zIHlldCwgc2luY2Ugd2UgZG9uJ3QgeWV0IGZhY3RvciBpbiB0aGUK
QEAgLTU3MzksOCArNTczOCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmludGVyc2VjdHNEYW1hZ2VS
ZWN0KGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRzLCBjb25zdCBMYXlvCiAgICAgaWYgKGRh
bWFnZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBJZiB3
ZSBhcmVuJ3QgYW4gaW5saW5lIGZsb3csIGFuZCBvdXIgbGF5ZXIgYm91bmRzIGRvIGludGVyc2Vj
dCB0aGUgZGFtYWdlIHJlY3QsIHRoZW4gd2UgCi0gICAgLy8gY2FuIGdvIGFoZWFkIGFuZCByZXR1
cm4gdHJ1ZS4KKyAgICAvLyBJZiB3ZSBhcmVuJ3QgYW4gaW5saW5lIGZsb3csIGFuZCBvdXIgbGF5
ZXIgYm91bmRzIGRvIGludGVyc2VjdCB0aGUgZGFtYWdlIHJlY3QsIHRoZW4gd2UgY2FuIHJldHVy
biB0cnVlLgogICAgIGlmICghcmVuZGVyZXIoKS5pc1JlbmRlcklubGluZSgpKSB7CiAgICAgICAg
IExheW91dFJlY3QgYiA9IGxheWVyQm91bmRzOwogICAgICAgICBiLmluZmxhdGUocmVuZGVyZXIo
KS52aWV3KCkubWF4aW1hbE91dGxpbmVTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IDVmMjgyNjM3MDM2ZmM4
Yzk3MWMwZjg2NWQwMTNjMWU3NTRlZjExOWYuLmM0ZDMxZWI0Y2MxMjBjMTI5N2ZkYmNkMTM2MWIw
MzAxNTM2YTM5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTEwMSw4ICsxMDEsNyBAQCB2b2lkIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3Qg
UmVuZGVyUwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNl
TGF5b3V0IHx8IGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlU2ltcGxpZmllZExheW91dCkgewotICAg
ICAgICAgICAgLy8gV2hlbiBhIGxheW91dCBoaW50IGhhcHBlbnMsIHdlIGdvIGFoZWFkIGFuZCBk
byBhIHJlcGFpbnQgb2YgdGhlIGxheWVyLCBzaW5jZSB0aGUgbGF5ZXIgY291bGQKLSAgICAgICAg
ICAgIC8vIGVuZCB1cCBiZWluZyBkZXN0cm95ZWQuCisgICAgICAgICAgICAvLyBXaGVuIGEgbGF5
b3V0IGhpbnQgaGFwcGVucywgd2UgZG8gYSByZXBhaW50IG9mIHRoZSBsYXllciwgc2luY2UgdGhl
IGxheWVyIGNvdWxkIGVuZCB1cCBiZWluZyBkZXN0cm95ZWQuCiAgICAgICAgICAgICBpZiAoaGFz
TGF5ZXIoKSkgewogICAgICAgICAgICAgICAgIGlmIChvbGRTdHlsZS0+cG9zaXRpb24oKSAhPSBu
ZXdTdHlsZS5wb3NpdGlvbigpCiAgICAgICAgICAgICAgICAgICAgIHx8IG9sZFN0eWxlLT56SW5k
ZXgoKSAhPSBuZXdTdHlsZS56SW5kZXgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaW5lQm94TGlzdC5jcHAKaW5kZXggNDNhYzg4MGFjM2ZjYWZlYWI0MTk0MGU4MDIzMmI2
MzhmYjE3MDg1NC4uNWYzYmVhNDkzOWI2MmJiMmE1MzBlNmFjNTk3MjI4MWFmNGRhMzBlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwCkBAIC0z
MTUsOCArMzE1LDcgQEAgdm9pZCBSZW5kZXJMaW5lQm94TGlzdDo6ZGlydHlMaW5lc0Zyb21DaGFu
Z2VkQ2hpbGQoUmVuZGVyQm94TW9kZWxPYmplY3QmIGNvbnRhaW4KIAogICAgIC8vIElmIHdlIGhh
dmUgbm8gZmlyc3QgbGluZSBib3gsIHRoZW4ganVzdCBiYWlsIGVhcmx5LgogICAgIGlmICghZmly
c3RCb3gpIHsKLSAgICAgICAgLy8gRm9yIGFuIGVtcHR5IGlubGluZSwgZ28gYWhlYWQgYW5kIHBy
b3BhZ2F0ZSB0aGUgY2hlY2sgdXAgdG8gb3VyIHBhcmVudCwgdW5sZXNzIHRoZSBwYXJlbnQKLSAg
ICAgICAgLy8gaXMgYWxyZWFkeSBkaXJ0eS4KKyAgICAgICAgLy8gRm9yIGFuIGVtcHR5IGlubGlu
ZSwgcHJvcGFnYXRlIHRoZSBjaGVjayB1cCB0byBvdXIgcGFyZW50LCB1bmxlc3MgdGhlIHBhcmVu
dCBpcyBhbHJlYWR5IGRpcnR5LgogICAgICAgICBpZiAoY29udGFpbmVyLmlzSW5saW5lKCkgJiYg
IWNvbnRhaW5lci5hbmNlc3RvckxpbmVCb3hEaXJ0eSgpKSB7CiAgICAgICAgICAgICBjb250YWlu
ZXIucGFyZW50KCktPmRpcnR5TGluZXNGcm9tQ2hhbmdlZENoaWxkKGNvbnRhaW5lcik7CiAgICAg
ICAgICAgICBjb250YWluZXIuc2V0QW5jZXN0b3JMaW5lQm94RGlydHkoKTsgLy8gTWFyayB0aGUg
Y29udGFpbmVyIHRvIGF2b2lkIGRpcnR5aW5nIHRoZSBzYW1lIGxpbmVzIGFnYWluIGFjcm9zcyBt
dWx0aXBsZSBkZXN0cm95KCkgY2FsbHMgb2YgdGhlIHNhbWUgc3VidHJlZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcAppbmRleCBjYjY2ZTgx
NTEyZWQ1MGViOTQxOTFjODUzOTY1YTBjMzhjY2E2MTA0Li5jNTcxYTI4MGY1N2E2YTQ1OGExNDc2
MDIxMDVlOGI5YzdmMDUxYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dExpbmVCb3hlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRMaW5lQm94ZXMuY3BwCkBAIC02MzMsOCArNjMzLDcgQEAgYm9vbCBSZW5kZXJUZXh0
TGluZUJveGVzOjpkaXJ0eVJhbmdlKFJlbmRlclRleHQmIHJlbmRlcmVyLCB1bnNpZ25lZCBzdGFy
dCwgdW5zaWcKICAgICAgICAgICAgIGlmICghZmlyc3RSb290Qm94KSB7CiAgICAgICAgICAgICAg
ICAgZmlyc3RSb290Qm94ID0gJnJvb3RCb3g7CiAgICAgICAgICAgICAgICAgaWYgKCFkaXJ0aWVk
TGluZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGFmZmVjdGVkIGFyZWEgd2FzIGlu
IGJldHdlZW4gdHdvIHJ1bnMuIEdvIGFoZWFkIGFuZCBtYXJrIHRoZSByb290IGJveCBvZgotICAg
ICAgICAgICAgICAgICAgICAvLyB0aGUgcnVuIGFmdGVyIHRoZSBhZmZlY3RlZCBhcmVhIGFzIGRp
cnR5LgorICAgICAgICAgICAgICAgICAgICAvLyBUaGUgYWZmZWN0ZWQgYXJlYSB3YXMgaW4gYmV0
d2VlbiB0d28gcnVucy4gTWFyayB0aGUgcm9vdCBib3ggb2YgdGhlIHJ1biBhZnRlciB0aGUgYWZm
ZWN0ZWQgYXJlYSBhcyBkaXJ0eS4KICAgICAgICAgICAgICAgICAgICAgZmlyc3RSb290Qm94LT5t
YXJrRGlydHkoKTsKICAgICAgICAgICAgICAgICAgICAgZGlydGllZExpbmVzID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGlu
ZS9CcmVha2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFr
aW5nQ29udGV4dC5oCmluZGV4IDFlYjcxNmEwNmQ1NTNiMWQxMjlmNmVmYjMxZTBmNmMxZGNiYjg0
YzkuLjUwY2VhZmRjYWMwOGM0YmM3NDIyYzMyN2Y5YmU3MmEwZDgzMDE1NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dC5oCkBAIC0zODMsMTUg
KzM4MywxMyBAQCBpbmxpbmUgTGF5b3V0VW5pdCBpbmxpbmVMb2dpY2FsV2lkdGgoUmVuZGVyT2Jq
ZWN0KiBjaGlsZCwgYm9vbCBjaGVja1N0YXJ0RWRnZSA9CiAKIGlubGluZSB2b2lkIEJyZWFraW5n
Q29udGV4dDo6aGFuZGxlT3V0T2ZGbG93UG9zaXRpb25lZChWZWN0b3I8UmVuZGVyQm94Kj4mIHBv
c2l0aW9uZWRPYmplY3RzKQogewotICAgIC8vIElmIG91ciBvcmlnaW5hbCBkaXNwbGF5IHdhc24n
dCBhbiBpbmxpbmUgdHlwZSwgdGhlbiB3ZSBjYW4KLSAgICAvLyBnbyBhaGVhZCBhbmQgZGV0ZXJt
aW5lIG91ciBzdGF0aWMgaW5saW5lIHBvc2l0aW9uIG5vdy4KKyAgICAvLyBJZiBvdXIgb3JpZ2lu
YWwgZGlzcGxheSB3YXNuJ3QgYW4gaW5saW5lIHR5cGUsIHRoZW4gd2UgY2FuIGRldGVybWluZSBv
dXIgc3RhdGljIGlubGluZSBwb3NpdGlvbiBub3cuCiAgICAgYXV0byYgYm94ID0gZG93bmNhc3Q8
UmVuZGVyQm94PigqbV9jdXJyZW50LnJlbmRlcmVyKCkpOwogICAgIGJvb2wgaXNJbmxpbmVUeXBl
ID0gYm94LnN0eWxlKCkuaXNPcmlnaW5hbERpc3BsYXlJbmxpbmVUeXBlKCk7CiAgICAgaWYgKCFp
c0lubGluZVR5cGUpCiAgICAgICAgIG1fYmxvY2suc2V0U3RhdGljSW5saW5lUG9zaXRpb25Gb3JD
aGlsZChib3gsIG1fYmxvY2subG9naWNhbEhlaWdodCgpLCBtX2Jsb2NrLnN0YXJ0T2Zmc2V0Rm9y
Q29udGVudChtX2Jsb2NrLmxvZ2ljYWxIZWlnaHQoKSkpOwogICAgIGVsc2UgewotICAgICAgICAv
LyBJZiBvdXIgb3JpZ2luYWwgZGlzcGxheSB3YXMgYW4gSU5MSU5FIHR5cGUsIHRoZW4gd2UgY2Fu
IGdvIGFoZWFkCi0gICAgICAgIC8vIGFuZCBkZXRlcm1pbmUgb3VyIHN0YXRpYyB5IHBvc2l0aW9u
IG5vdy4KKyAgICAgICAgLy8gSWYgb3VyIG9yaWdpbmFsIGRpc3BsYXkgd2FzIGFuIElOTElORSB0
eXBlLCB0aGVuIHdlIGNhbiBkZXRlcm1pbmUgb3VyIHN0YXRpYyB5IHBvc2l0aW9uIG5vdy4KICAg
ICAgICAgYm94LmxheWVyKCktPnNldFN0YXRpY0Jsb2NrUG9zaXRpb24obV9ibG9jay5sb2dpY2Fs
SGVpZ2h0KCkpOwogICAgIH0KIApAQCAtOTIwLDkgKzkxOCw4IEBAIGlubGluZSBib29sIEJyZWFr
aW5nQ29udGV4dDo6aGFuZGxlVGV4dChXb3JkTWVhc3VyZW1lbnRzJiB3b3JkTWVhc3VyZW1lbnRz
LCBib29sCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICghbV9pZ25vcmluZ1NwYWNl
cyAmJiBtX2N1cnJlbnRTdHlsZS0+Y29sbGFwc2VXaGl0ZVNwYWNlKCkpIHsKLSAgICAgICAgICAg
ICAgICAvLyBJZiB3ZSBlbmNvdW50ZXIgYSBuZXdsaW5lLCBvciBpZiB3ZSBlbmNvdW50ZXIgYQot
ICAgICAgICAgICAgICAgIC8vIHNlY29uZCBzcGFjZSwgd2UgbmVlZCB0byBnbyBhaGVhZCBhbmQg
YnJlYWsgdXAgdGhpcwotICAgICAgICAgICAgICAgIC8vIHJ1biBhbmQgZW50ZXIgYSBtb2RlIHdo
ZXJlIHdlIHN0YXJ0IGNvbGxhcHNpbmcgc3BhY2VzLgorICAgICAgICAgICAgICAgIC8vIElmIHdl
IGVuY291bnRlciBhIG5ld2xpbmUsIG9yIGlmIHdlIGVuY291bnRlciBhIHNlY29uZCBzcGFjZSwK
KyAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGJyZWFrIHVwIHRoaXMgcnVuIGFuZCBlbnRl
ciBhIG1vZGUgd2hlcmUgd2Ugc3RhcnQgY29sbGFwc2luZyBzcGFjZXMuCiAgICAgICAgICAgICAg
ICAgaWYgKG1fY3VycmVudENoYXJhY3RlcklzU3BhY2UgJiYgcHJldmlvdXNDaGFyYWN0ZXJJc1Nw
YWNlKSB7CiAgICAgICAgICAgICAgICAgICAgIG1faWdub3JpbmdTcGFjZXMgPSB0cnVlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lQnJlYWtlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lQnJlYWtlci5jcHAKaW5kZXggNmUz
M2NkMzEwOWY1MWM5MzdjMTZhNGEyNzQzZjVmYjljYWU5YWQ5MS4uOTEwNDgxOWJiMTg5ODllODIy
Yjg3ZDFiZDcwOGMzMTk3MGFmY2FlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL2xpbmUvTGluZUJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9s
aW5lL0xpbmVCcmVha2VyLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIElubGluZUl0ZXJhdG9yIExp
bmVCcmVha2VyOjpuZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIExp
bmVJbmZvCiAgICAgICAgICAgICBjb250ZXh0LmhhbmRsZVJlcGxhY2VkKCk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoY29udGV4dC5jdXJyZW50T2JqZWN0KCktPmlzVGV4dCgpKSB7CiAgICAgICAgICAg
ICBpZiAoY29udGV4dC5oYW5kbGVUZXh0KHdvcmRNZWFzdXJlbWVudHMsIG1faHlwaGVuYXRlZCwg
Y29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMpKSB7Ci0gICAgICAgICAgICAgICAgLy8gV2UndmUg
aGl0IGEgaGFyZCB0ZXh0IGxpbmUgYnJlYWsuIE91ciBsaW5lIGJyZWFrIGl0ZXJhdG9yIGlzIHVw
ZGF0ZWQsIHNvIGdvIGFoZWFkIGFuZCBlYXJseSByZXR1cm4uCisgICAgICAgICAgICAgICAgLy8g
V2UndmUgaGl0IGEgaGFyZCB0ZXh0IGxpbmUgYnJlYWsuIE91ciBsaW5lIGJyZWFrIGl0ZXJhdG9y
IGlzIHVwZGF0ZWQsIHNvIGVhcmx5IHJldHVybi4KICAgICAgICAgICAgICAgICByZXR1cm4gY29u
dGV4dC5saW5lQnJlYWsoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChjb250
ZXh0LmN1cnJlbnRPYmplY3QoKS0+aXNMaW5lQnJlYWtPcHBvcnR1bml0eSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAppbmRleCBlZjM5YTFmMGMzMTJmYjUwODhm
NDA0OGU1YTZlOTk1NzRhMzVjZDIwLi4wN2VmYTVmOTc1ZWVlMmRjOTIyNGM5N2ViNGMxOTgzMWQ5
OWYzZmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcApAQCAt
NzcxLDcgKzc3MSw3IEBAIHN0YXRpYyBDaGFuZ2UgcmVzb2x2ZUxvY2FsKEVsZW1lbnQmIGN1cnJl
bnQsIFJlbmRlclN0eWxlJiBpbmhlcml0ZWRTdHlsZSwgUmVuZGVyCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICAvLyBJZiAicmVtIiB1bml0cyBhcmUgdXNlZCBhbnl3aGVyZSBpbiB0aGUgZG9jdW1l
bnQsIGFuZCBpZiB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6ZSBjaGFuZ2VzLCB0aGVu
IGdvIGFoZWFkIGFuZCBmb3JjZSBmb250IHVwZGF0aW5nCisgICAgLy8gSWYgInJlbSIgdW5pdHMg
YXJlIHVzZWQgYW55d2hlcmUgaW4gdGhlIGRvY3VtZW50LCBhbmQgaWYgdGhlIGRvY3VtZW50IGVs
ZW1lbnQncyBmb250IHNpemUgY2hhbmdlcywgdGhlbiBmb3JjZSBmb250IHVwZGF0aW5nCiAgICAg
Ly8gYWxsIHRoZSB3YXkgZG93biB0aGUgdHJlZS4gVGhpcyBpcyBzaW1wbGVyIHRoYW4gaGF2aW5n
IHRvIG1haW50YWluIGEgY2FjaGUgb2Ygb2JqZWN0cyAoYW5kIHN1Y2ggZm9udCBzaXplIGNoYW5n
ZXMgc2hvdWxkIGJlIHJhcmUgYW55d2F5KS4KICAgICBpZiAoZG9jdW1lbnQuc3R5bGVTaGVldENv
bGxlY3Rpb24oKS51c2VzUmVtVW5pdHMoKSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSA9
PSAmY3VycmVudCAmJiBsb2NhbENoYW5nZSAhPSBOb0NoYW5nZSAmJiBjdXJyZW50U3R5bGUgJiYg
bmV3U3R5bGUgJiYgY3VycmVudFN0eWxlLT5mb250U2l6ZSgpICE9IG5ld1N0eWxlLT5mb250U2l6
ZSgpKSB7CiAgICAgICAgIC8vIENhY2hlZCBSZW5kZXJTdHlsZXMgbWF5IGRlcGVuZCBvbiB0aGUg
cmUgdW5pdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcAppbmRleCBiYzFmOTFhMWQ1YzYxMjIyYjNmYWY3
MTUyZDUzNjAyZjQ5Y2I1N2MwLi4wODRlZTI3NjZlNDQwNjU1OTcyODFmMzcxMjFjYTQyNDQ4YWNk
NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKQEAgLTY2LDggKzY2LDcgQEAgdm9pZCBYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2
ZW50KGJvb2wgbGUKICAgICB9CiAKICAgICBpZiAoIWlzQWN0aXZlKCkpIHsKLSAgICAgICAgLy8g
VGhlIHRpbWVyIGlzIG5vdCBhY3RpdmUgc28gdGhlIGxlYXN0IGZyZXF1ZW50IGV2ZW50IGZvciBu
b3cgaXMgZXZlcnkgYnl0ZS4KLSAgICAgICAgLy8gSnVzdCBnbyBhaGVhZCBhbmQgZGlzcGF0Y2gg
dGhlIGV2ZW50LgorICAgICAgICAvLyBUaGUgdGltZXIgaXMgbm90IGFjdGl2ZSBzbyB0aGUgbGVh
c3QgZnJlcXVlbnQgZXZlbnQgZm9yIG5vdyBpcyBldmVyeSBieXRlLiBKdXN0IGRpc3BhdGNoIHRo
ZSBldmVudC4KIAogICAgICAgICAvLyBXZSBzaG91bGQgbm90IGhhdmUgYW55IHRocm90dGxlZCBw
cm9ncmVzcyBldmVudC4KICAgICAgICAgQVNTRVJUKCFtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZl
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNw
cAppbmRleCBmNTVhNjE1MThkOGM0YzJmZmUzZjQ4ZTYxNWIzZTdhNzVkZjBkYjBmLi5lYmU5NDBi
YzZmYjQ3OWIyMjM5MDliMTc2OWU4ZTEwZGQwZjY3NWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIHZv
aWQgWE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGlucHV0
U291cmNlKQogCiAgICAgZG9Xcml0ZShzb3VyY2UudG9TdHJpbmcoKSk7CiAKLSAgICAvLyBBZnRl
ciBwYXJzaW5nLCBnbyBhaGVhZCBhbmQgZGlzcGF0Y2ggaW1hZ2UgYmVmb3JlbG9hZCBldmVudHMu
CisgICAgLy8gQWZ0ZXIgcGFyc2luZywgZGlzcGF0Y2ggaW1hZ2UgYmVmb3JlbG9hZCBldmVudHMu
CiAgICAgSW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudHMoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbQppbmRleCBhMzgxZTUwOGY2OTgxMGI0YzhlZGE4OTg1ZTQwNzUwZDkz
ZWUxZGIxLi5jMzljMTJkN2RkZDZhNjUwMDY2OTEwZDczN2UzYWNmMTQ3YmVmNzZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbQpAQCAtMTYzNCw3ICsxNjM0LDcgQEAgT2JqZWN0Q29udGVudFR5cGUgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IFVSTCYgdXJsLCBjb25zdAog
ICAgIH0KIAogICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIE9iamVjdENv
bnRlbnRGcmFtZTsgLy8gR28gYWhlYWQgYW5kIGhvcGUgdGhhdCB3ZSBjYW4gZGlzcGxheSB0aGUg
Y29udGVudC4KKyAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRGcmFtZTsgLy8gSnVzdCBob3Bl
IHRoYXQgd2UgY2FuIGRpc3BsYXkgdGhlIGNvbnRlbnQuCiAKICAgICBXZWJCYXNlUGx1Z2luUGFj
a2FnZSAqcGFja2FnZSA9IFtnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpIF9wbHVnaW5Gb3JN
SU1FVHlwZTp0eXBlXTsKICAgICBPYmplY3RDb250ZW50VHlwZSBwbHVnSW5UeXBlID0gT2JqZWN0
Q29udGVudE5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkR5
bmFtaWNTY3JvbGxCYXJzVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRHlu
YW1pY1Njcm9sbEJhcnNWaWV3Lm1tCmluZGV4IDY0Mzc5M2IwYWI3OTYxNmI4NzBhMGQxZTI3MGE0
NTk2NmM5MzAwNjQuLjNmM2Q2NzI2Yzg5ODc4ZjMxMDdkNGJjYTRmNGNmMzIzNTZkMWM4M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJh
cnNWaWV3Lm1tCkBAIC0yODUsOCArMjg1LDggQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhV
cGRhdGVTY3JvbGxiYXJzUGFzcyA9IDI7CiB7CiAgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBb
c2VsZiBkb2N1bWVudFZpZXddOwogCi0gICAgLy8gSWYgd2UgY2FtZSBpbiBoZXJlIHdpdGggdGhl
IHZpZXcgYWxyZWFkeSBuZWVkaW5nIGEgbGF5b3V0LCB0aGVuIGdvIGFoZWFkIGFuZCBkbyB0aGF0
Ci0gICAgLy8gZmlyc3QuICAoVGhpcyB3aWxsIGJlIHRoZSBjb21tb24gY2FzZSwgZS5nLiwgd2hl
biB0aGUgcGFnZSBjaGFuZ2VzIGR1ZSB0byB3aW5kb3cgcmVzaXppbmcgZm9yIGV4YW1wbGUpLgor
ICAgIC8vIElmIHdlIGNhbWUgaW4gaGVyZSB3aXRoIHRoZSB2aWV3IGFscmVhZHkgbmVlZGluZyBh
IGxheW91dCwgdGhlbiBkbyB0aGF0IGZpcnN0LgorICAgIC8vIChUaGlzIHdpbGwgYmUgdGhlIGNv
bW1vbiBjYXNlLCBlLmcuLCB3aGVuIHRoZSBwYWdlIGNoYW5nZXMgZHVlIHRvIHdpbmRvdyByZXNp
emluZyBmb3IgZXhhbXBsZSkuCiAgICAgLy8gVGhpcyBsYXlvdXQgd2lsbCBub3QgcmUtZW50ZXIg
dXBkYXRlU2Nyb2xsZXJzIGFuZCBkb2VzIG5vdCBjb3VudCB0b3dhcmRzIG91ciBtYXggbGF5b3V0
IHBhc3MgdG90YWwuCiAgICAgaWYgKCFfcHJpdmF0ZS0+c3VwcHJlc3NMYXlvdXQgJiYgIV9wcml2
YXRlLT5zdXBwcmVzc1Njcm9sbGVycyAmJiBbZG9jdW1lbnRWaWV3IGlzS2luZE9mQ2xhc3M6W1dl
YkhUTUxWaWV3IGNsYXNzXV0pIHsKICAgICAgICAgV2ViSFRNTFZpZXcqIGh0bWxWaWV3ID0gKFdl
YkhUTUxWaWV3Kilkb2N1bWVudFZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQppbmRleCBkMzY0OGUxMWIwNDlmNWMzOTVkOGIyYmU0ZDRmMTUwNzU3ODZmNWMyLi43
M2JhNGUxZDJjZjE0OTExYTZmZjFlYTkxNzFjZTYxNTFjOThiYTNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTY0MDIsNyArNjQwMiw3IEBAIHN0YXRpYyB2
b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8
Q29tcG9zaXRpb25VbmRlCiAKICAgICAvLyBpbnNlcnRUZXh0IGNhbiBiZSBjYWxsZWQgZm9yIHNl
dmVyYWwgcmVhc29uczoKICAgICAvLyAtIElmIGl0J3MgZnJvbSBub3JtYWwga2V5IGV2ZW50IHBy
b2Nlc3NpbmcgKGluY2x1ZGluZyBrZXkgYmluZGluZ3MpLCB3ZSBtYXkgbmVlZCB0byBzYXZlIHRo
ZSBhY3Rpb24gdG8gcGVyZm9ybSBpdCBsYXRlci4KLSAgICAvLyAtIElmIGl0J3MgZnJvbSBhbiBp
bnB1dCBtZXRob2QsIHRoZW4gd2Ugc2hvdWxkIGdvIGFoZWFkIGFuZCBpbnNlcnQgdGhlIHRleHQg
bm93LiBXZSBhc3N1bWUgaXQncyBmcm9tIHRoZSBpbnB1dCBtZXRob2QgaWYgd2UgaGF2ZSBtYXJr
ZWQgdGV4dC4KKyAgICAvLyAtIElmIGl0J3MgZnJvbSBhbiBpbnB1dCBtZXRob2QsIHRoZW4gd2Ug
c2hvdWxkIGluc2VydCB0aGUgdGV4dCBub3cuIFdlIGFzc3VtZSBpdCdzIGZyb20gdGhlIGlucHV0
IG1ldGhvZCBpZiB3ZSBoYXZlIG1hcmtlZCB0ZXh0LgogICAgIC8vIEZJWE1FOiBJbiB0aGVvcnks
IHRoaXMgY291bGQgYmUgd3JvbmcgZm9yIHNvbWUgaW5wdXQgbWV0aG9kcywgc28gd2Ugc2hvdWxk
IHRyeSB0byBmaW5kIGFub3RoZXIgd2F5IHRvIGRldGVybWluZSBpZiB0aGUgY2FsbCBpcyBmcm9t
IHRoZSBpbnB1dCBtZXRob2QuCiAgICAgLy8gLSBJZiBpdCdzIHNlbnQgb3V0c2lkZSBvZiBrZXli
b2FyZCBldmVudCBwcm9jZXNzaW5nIChlLmcuIGZyb20gQ2hhcmFjdGVyIFZpZXdlciwgb3Igd2hl
biBjb25maXJtaW5nIGFuIGlubGluZSBpbnB1dCBhcmVhIHdpdGggYSBtb3VzZSksCiAgICAgLy8g
dGhlbiB3ZSBhbHNvIGV4ZWN1dGUgaXQgaW1tZWRpYXRlbHksIGFzIHRoZXJlIHdpbGwgYmUgbm8g
b3RoZXIgY2hhbmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9F
bnZpcm9ubWVudFV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L0Vu
dmlyb25tZW50VXRpbGl0aWVzLmNwcAppbmRleCBmODg0YzdhODZlNGQ4ODFkODJlNmI5MGIyMTcw
M2U1OTg0ZmMwYmJlLi4wZGU4NzY3MTU2ZDJkYzAzMDdmNzVmMDgyOTIwMDNlZjY2ZjBlNzg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L0Vudmlyb25tZW50VXRpbGl0
aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L0Vudmlyb25tZW50VXRp
bGl0aWVzLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIHN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0
cmluZyhjb25zdCBjaGFyKiBlbnZpcm9ubWVudFZhcmlhYmxlLCBjb25zdCBjaGFyKiBzZQogICAg
ICAgICAgICAgICAgIAogICAgICAgICAvLyBDb3B5IG92ZXIgZXZlcnl0aGluZyByaWdodCBvZiB0
aGUgbWF0Y2ggdG8gdGhlIGN1cnJlbnQgY29tcG9uZW50IHN0YXJ0LCBhbmQgc2VhcmNoIGZyb20g
dGhlcmUgYWdhaW4uCiAgICAgICAgIGlmIChjb21wb25lbnRTdGFydFswXSA9PSAnOicpIHsKLSAg
ICAgICAgICAgIC8vIElmIGNvbXBvbmVudFN0YXJ0IHBvaW50cyB0byBhIGNvbG9uLCBnbyBhaGVh
ZCBhbmQgY29weSB0aGUgY29sb24gb3Zlci4KKyAgICAgICAgICAgIC8vIElmIGNvbXBvbmVudFN0
YXJ0IHBvaW50cyB0byBhIGNvbG9uLCBjb3B5IHRoZSBjb2xvbiBvdmVyLgogICAgICAgICAgICAg
c3RyY3B5KGNvbXBvbmVudFN0YXJ0LCBtYXRjaCArIHNlYXJjaExlbmd0aCk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGNvbXBvbmVudFN0YXJ0IHN0aWxsIHBv
aW50cyB0byB0aGUgYmVnaW5uaW5nIG9mIGVudmlyb25tZW50VmFsdWVCdWZmZXIsIHNvIGRvbid0
IGNvcHkgb3ZlciB0aGUgY29sb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Qcm9jZXNzLmNwcAppbmRleCBmOTdiOTE0NDliZTc1MWMxYTc3MDIyN2EyMTg1NWNlMDVh
MjM5OTYyLi4yMjBjYzBkZDAyNDVlNzc0NjUxYjUxNWZmNGExYTVmYTQ3YTMxNmNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTEyNCw3
ICsxMjQsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRAogCiB2b2lkIFBsdWdpblByb2Nlc3M6
OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiB7Ci0gICAgLy8gVGhlIFVJIHByb2Nlc3MgaGFz
IGNyYXNoZWQsIGp1c3QgZ28gYWhlYWQgYW5kIHF1aXQuCisgICAgLy8gVGhlIFVJIHByb2Nlc3Mg
aGFzIGNyYXNoZWQsIGp1c3QgcXVpdC4KICAgICAvLyBGSVhNRTogSWYgdGhlIHBsdWctaW4gaXMg
c3Bpbm5pbmcgaW4gdGhlIG1haW4gbG9vcCwgd2UnbGwgbmV2ZXIgZ2V0IHRoaXMgbWVzc2FnZS4K
ICAgICBzdG9wUnVuTG9vcCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tCmluZGV4IDIyOTcyY2IzZjllZWMyMGNkZTFmZjlmMWU2OTA1YzQwNjdhNzBhY2Qu
LmE1NmRlZTE0MWE3NzE3ODExYmRkMTUzM2QyOWY4M2M4NTMzZmY4NmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTE2MDgsNyArMTYwOCw3IEBAIHN0
YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKICAgICAvLyBpbnNlcnRUZXh0IGNhbiBiZSBjYWxsZWQg
Zm9yIHNldmVyYWwgcmVhc29uczoKICAgICAvLyAtIElmIGl0J3MgZnJvbSBub3JtYWwga2V5IGV2
ZW50IHByb2Nlc3NpbmcgKGluY2x1ZGluZyBrZXkgYmluZGluZ3MpLCB3ZSBzYXZlIHRoZSBhY3Rp
b24gdG8gcGVyZm9ybSBpdCBsYXRlci4KLSAgICAvLyAtIElmIGl0J3MgZnJvbSBhbiBpbnB1dCBt
ZXRob2QsIHRoZW4gd2Ugc2hvdWxkIGdvIGFoZWFkIGFuZCBpbnNlcnQgdGhlIHRleHQgbm93Lgor
ICAgIC8vIC0gSWYgaXQncyBmcm9tIGFuIGlucHV0IG1ldGhvZCwgdGhlbiB3ZSBzaG91bGQgaW5z
ZXJ0IHRoZSB0ZXh0IG5vdy4KICAgICAvLyAtIElmIGl0J3Mgc2VudCBvdXRzaWRlIG9mIGtleWJv
YXJkIGV2ZW50IHByb2Nlc3NpbmcgKGUuZy4gZnJvbSBDaGFyYWN0ZXIgVmlld2VyLCBvciB3aGVu
IGNvbmZpcm1pbmcgYW4gaW5saW5lIGlucHV0IGFyZWEgd2l0aCBhIG1vdXNlKSwKICAgICAvLyB0
aGVuIHdlIGFsc28gZXhlY3V0ZSBpdCBpbW1lZGlhdGVseSwgYXMgdGhlcmUgd2lsbCBiZSBubyBv
dGhlciBjaGFuY2UuCiAgICAgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4qIGtleXByZXNzQ29tbWFu
ZHMgPSBfZGF0YS0+X2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHM7CkBAIC0yMDc4LDcgKzIwNzgs
NyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0
cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAgICAgLy8gaW5zZXJ0VGV4dCBjYW4gYmUg
Y2FsbGVkIGZvciBzZXZlcmFsIHJlYXNvbnM6CiAgICAgLy8gLSBJZiBpdCdzIGZyb20gbm9ybWFs
IGtleSBldmVudCBwcm9jZXNzaW5nIChpbmNsdWRpbmcga2V5IGJpbmRpbmdzKSwgd2UgbWF5IG5l
ZWQgdG8gc2F2ZSB0aGUgYWN0aW9uIHRvIHBlcmZvcm0gaXQgbGF0ZXIuCi0gICAgLy8gLSBJZiBp
dCdzIGZyb20gYW4gaW5wdXQgbWV0aG9kLCB0aGVuIHdlIHNob3VsZCBnbyBhaGVhZCBhbmQgaW5z
ZXJ0IHRoZSB0ZXh0IG5vdy4gV2UgYXNzdW1lIGl0J3MgZnJvbSB0aGUgaW5wdXQgbWV0aG9kIGlm
IHdlIGhhdmUgbWFya2VkIHRleHQuCisgICAgLy8gLSBJZiBpdCdzIGZyb20gYW4gaW5wdXQgbWV0
aG9kLCB0aGVuIHdlIHNob3VsZCBpbnNlcnQgdGhlIHRleHQgbm93LiBXZSBhc3N1bWUgaXQncyBm
cm9tIHRoZSBpbnB1dCBtZXRob2QgaWYgd2UgaGF2ZSBtYXJrZWQgdGV4dC4KICAgICAvLyBGSVhN
RTogSW4gdGhlb3J5LCB0aGlzIGNvdWxkIGJlIHdyb25nIGZvciBzb21lIGlucHV0IG1ldGhvZHMs
IHNvIHdlIHNob3VsZCB0cnkgdG8gZmluZCBhbm90aGVyIHdheSB0byBkZXRlcm1pbmUgaWYgdGhl
IGNhbGwgaXMgZnJvbSB0aGUgaW5wdXQgbWV0aG9kLgogICAgIC8vIC0gSWYgaXQncyBzZW50IG91
dHNpZGUgb2Yga2V5Ym9hcmQgZXZlbnQgcHJvY2Vzc2luZyAoZS5nLiBmcm9tIENoYXJhY3RlciBW
aWV3ZXIsIG9yIHdoZW4gY29uZmlybWluZyBhbiBpbmxpbmUgaW5wdXQgYXJlYSB3aXRoIGEgbW91
c2UpLAogICAgIC8vIHRoZW4gd2UgYWxzbyBleGVjdXRlIGl0IGltbWVkaWF0ZWx5LCBhcyB0aGVy
ZSB3aWxsIGJlIG5vIG90aGVyIGNoYW5jZS4KQEAgLTMzOTQsNyArMzM5NCw3IEBAIHN0YXRpYyB2
b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0
OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZUNoYW5nZWQpIHsKLSAgICAgICAgLy8gVGhl
IGlucHV0IHNvdXJjZSBjaGFuZ2VkLCBnbyBhaGVhZCBhbmQgZGlzY2FyZCBhbnkgZW50ZXJlZCB0
ZXh0LgorICAgICAgICAvLyBUaGUgaW5wdXQgc291cmNlIGNoYW5nZWQ7IGRpc2NhcmQgYW55IGVu
dGVyZWQgdGV4dC4KICAgICAgICAgW1tXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgc2hhcmVk
VGV4dElucHV0V2luZG93Q29udHJvbGxlcl0gdW5tYXJrVGV4dF07CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VyLmNwcAppbmRleCBiZjI5ZDA1MTdlYjNjMzVmNmRiNzkzM2U3YjFm
MDExOWM5OTMzMjVlLi5kY2IzNWMxMTM0ZDg1ZGRlNzA4ZjU0NTViZDVmNTFhMTU4OTg1NWY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9Mb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdl
L0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTM0Miw3ICszNDIsNyBAQCB2b2lk
IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlRGF0YWJhc2VXaXRoT3JpZ2luSWRl
bnRpZmllcihjb25zdCBTdHJpbgogCiAgICAgbV9vcmlnaW5zLnJlbW92ZShvcmlnaW5JZGVudGlm
aWVyKTsKICAgICBpZiAobV9vcmlnaW5zLmlzRW1wdHkoKSkgewotICAgICAgICAvLyBUaGVyZSBh
cmUgbm8gb3JpZ2lucyBsZWZ0LCBnbyBhaGVhZCBhbmQgZGVsZXRlIHRoZSB0cmFja2VyIGRhdGFi
YXNlLgorICAgICAgICAvLyBUaGVyZSBhcmUgbm8gb3JpZ2lucyBsZWZ0OyBkZWxldGUgdGhlIHRy
YWNrZXIgZGF0YWJhc2UuCiAgICAgICAgIG1fZGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAgZGVs
ZXRlRmlsZSh0cmFja2VyRGF0YWJhc2VQYXRoKCkpOwogICAgICAgICBkZWxldGVFbXB0eURpcmVj
dG9yeShtX2xvY2FsU3RvcmFnZURpcmVjdG9yeSk7Cg==
</data>
<flag name="review"
          id="274979"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="274981"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>