<?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>191791</bug_id>
          
          <creation_ts>2018-11-16 16:23:30 -0800</creation_ts>
          <short_desc>Remove superfluous LayoutUnit initializations</short_desc>
          <delta_ts>2018-11-17 19:15:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>191538</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1479726</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-11-16 16:23:30 -0800</bug_when>
    <thetext>Remove superfluous LayoutUnit initializations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479733</commentid>
    <comment_count>1</comment_count>
      <attachid>355159</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-11-16 16:25:56 -0800</bug_when>
    <thetext>Created attachment 355159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479841</commentid>
    <comment_count>2</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-11-16 20:44:08 -0800</bug_when>
    <thetext>Technically this step is unnecessary if we leave LayoutUnit(int) as implicit (which ultimately, it sounds like we should) -- we can go ahead with it if it&apos;s independently desirable, otherwise scrapping it is fine too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480028</commentid>
    <comment_count>3</comment_count>
      <attachid>355159</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-17 19:14:39 -0800</bug_when>
    <thetext>Comment on attachment 355159
Patch

Clearing flags on attachment: 355159

Committed r238359: &lt;https://trac.webkit.org/changeset/238359&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480029</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-17 19:14:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480030</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-17 19:15:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/46152898&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355159</attachid>
            <date>2018-11-16 16:25:56 -0800</date>
            <delta_ts>2018-11-17 19:14:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191791-20181116162556.patch</filename>
            <type>text/plain</type>
            <size>71320</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVkYzI0YWM2ZDVjZGY3
ZDcxMDhhY2UwZTFkN2YyYzU1Y2JiNDBmYS4uMWYyNDAzOWY2MzlmM2MyODI1YTRjMWRlNDg4MGE4
ZDFkMTNmNTk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0OSBAQAorMjAxOC0xMS0xNiAgUm9z
cyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN1
cGVyZmx1b3VzIExheW91dFVuaXQgaW5pdGlhbGl6YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3OTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXJzdCBzdGVwIHRvd2FyZCBtYWtpbmcgTGF5
b3V0VW5pdCBjb25zdHJ1Y3RvcnMgZXhwbGljaXQ6CisgICAgICAgIGVsaW1pbmF0ZSBgPSAwYCB3
aGVuIGNvbnN0cnVjdGluZyBMYXlvdXRVbml0IGx2YWx1ZXMuCisKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmZpcnN0UmVjdEZvclJhbmdl
IGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OmxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlv
bik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlckNvbnRhaW5lcjo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQg
Y29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omp1c3RpZnlSdW5zKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmZvcmNlTGF5b3V0
Rm9yUGFnaW5hdGlvbik6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpk
aXN0YW5jZURhdGFGb3JOb2RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om1hcmdpbkludHJpbnNpY0xvZ2ljYWxXaWR0aEZvckNoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6Z3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbkJsb2NrRGlyZWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBhaW50RmlsbExheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lRmxvd0JveDo6cGFpbnRNYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZUZsb3dCb3g6OmNvbXB1dGVPdmVyQW5ub3RhdGlvbkFkanVzdG1lbnQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6Y29tcHV0ZVVuZGVyQW5ub3RhdGlvbkFkanVz
dG1lbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bWFyZ2luSW50cmluc2ljTG9naWNhbFdpZHRoRm9y
Q2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFBvc2l0
aW9uZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNlbGVjdGlvbkdh
cFJlY3RzRm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRT
ZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnRleHRJbmRlbnRPZmZz
ZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVCbG9ja1By
ZWZlcnJlZExvZ2ljYWxXaWR0aHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpyZWJ1aWxk
RmxvYXRpbmdPYmplY3RTZXRGcm9tSW50cnVkaW5nRmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93OjpsYXlvdXRCbG9ja0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrRmxvdzo6bWFyZ2luVmFsdWVzRm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2tGbG93Ojplc3RpbWF0ZUxvZ2ljYWxUb3BQb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmFwcGx5QmVmb3JlQnJlYWspOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjphcHBseUFmdGVyQnJlYWspOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2tGbG93OjphZGp1c3RCbG9ja0NoaWxkRm9yUGFnaW5hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNsZWFyRmxvYXRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bG93ZXN0SW5pdGlhbExldHRl
ckxvZ2ljYWxCb3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjphZGRPdmVyaGFuZ2luZ0Zsb2F0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OmdldENsZWFyRGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpj
b21wdXRlSW5saW5lUHJlZmVycmVkTG9naWNhbFdpZHRocyBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRM
b2dpY2FsV2lkdGhGb3JUZXh0UnVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxv
dzo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93OjpkZXRlcm1pbmVTdGFydFBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6ZmlsbEF2YWlsYWJs
ZU1lYXN1cmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlSW50
cmluc2ljTG9naWNhbFdpZHRoVXNpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94Ojpjb21wdXRlTG9naWNhbFdpZHRoSW5GcmFnbWVudFVzaW5nIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoVXNpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUG9z
aXRpb25lZExvZ2ljYWxXaWR0aFVzaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0VXNpbmcgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aFJlcGxh
Y2VkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9u
ZWRMb2dpY2FsSGVpZ2h0UmVwbGFjZWQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9i
amVjdDo6Y29tcHV0ZWRDU1NQYWRkaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjptYXJnaW5XaWR0aEZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2Fs
Qm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50T2JqZWN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRnJhZ21lbnRlZEZsb3c6OnZhbGlkYXRlRnJhZ21lbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZyYWdtZW50ZWRGbG93OjphZGp1c3RlZFBvc2l0aW9uUmVsYXRp
dmVUb09mZnNldFBhcmVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFnbWVu
dGVkRmxvdzo6dXBkYXRlRnJhZ21lbnRzRnJhZ21lbnRlZEZsb3dQb3J0aW9uUmVjdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckZyYW1lU2V0OjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjpwb3NpdGlvbkxpc3RNYXJr
ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZU1hcmdpbnMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtblNldDo6aW5pdGlhbEJsb2NrT2Zmc2V0Rm9yUGFpbnRp
bmcgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlSdW46OmxheW91dEJsb2NrKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmNv
bnZlcnRTdHlsZUxvZ2ljYWxXaWR0aFRvQ29tcHV0ZWRXaWR0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUYWJsZTo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpv
ZmZzZXRXaWR0aEZvckNvbHVtbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJs
ZTo6b2Zmc2V0SGVpZ2h0Rm9yQ29sdW1uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRhYmxlOjpvdXRlckJvcmRlckJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZTo6b3V0ZXJCb3JkZXJBZnRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZTo6b3V0ZXJCb3JkZXJTdGFydCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZTo6b3V0ZXJCb3JkZXJFbmQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpsb2dp
Y2FsV2lkdGhGcm9tQ29sdW1ucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJs
ZUNlbGw6OmNvbXB1dGVJbnRyaW5zaWNQYWRkaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlv
bjo6Y2FsY1Jvd0xvZ2ljYWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVT
ZWN0aW9uOjpkaXN0cmlidXRlRXh0cmFMb2dpY2FsSGVpZ2h0VG9QZXJjZW50Um93cyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmRpc3RyaWJ1dGVFeHRyYUxvZ2ljYWxI
ZWlnaHRUb0F1dG9Sb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
ZGlzdHJpYnV0ZVJlbWFpbmluZ0V4dHJhTG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJvd3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGFibGVTZWN0aW9uOjpjYWxjT3V0ZXJCb3JkZXJCZWZvcmUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpjYWxjT3V0ZXJCb3JkZXJBZnRlciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmNhbGNPdXRlckJvcmRlclN0
YXJ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Y2FsY091
dGVyQm9yZGVyRW5kIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjphbGlnbkJveGVzSW5CbG9ja0Rp
cmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpiZWZvcmVBbm5vdGF0
aW9uc0FkanVzdG1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6
bGluZVNuYXBBZGp1c3RtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVC
b3g6OnZlcnRpY2FsUG9zaXRpb25Gb3JCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9saW5lL0Jy
ZWFraW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6aW5saW5lTG9naWNhbFdpZHRoKToK
KyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTEJsb2NrOjpsYXlvdXRJdGVtcyk6CisgICAgICAgICog
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJNYXRoTUxGcmFjdGlvbjo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTWF0aE1MT3BlcmF0b3I6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTWF0aE1MUm9vdDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MUm9vdDo6cGFpbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck1hdGhNTFJvdzo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAg
ICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJNYXRoTUxTY3JpcHRzOjpsYXlvdXRCbG9jayk6CisgICAgICAgICogcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTWF0aE1MVW5kZXJPdmVyOjpzdHJldGNoSG9yaXpvbnRhbE9wZXJhdG9yc0FuZExh
eW91dENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTFVuZGVyT3Zlcjo6
bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Z2V0U2hhZG93SW5zZXRFeHRlbnQgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjpsYXlvdXQpOgorCiAyMDE4LTExLTE2ICBKZXJlbXkg
Sm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAogICAgICAgICBJbmNsdWRlIEFpclBsYXkgZGVz
dGluYXRpb24gbmFtZSBpbiBBaXJQbGF5IHBsYWNhcmQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggYzJmNDllNmM3YTg3N2ZjZmM5YmM0ZDYwYWVmNWIzNDE0MDRjZDI5OC4uMDIzZWQx
OWU3ZTM0MzBiZTJhYTgwNTE4NWVkNTc1OTBiMDE4MmM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcApAQCAtMzIzOCw3ICszMjM4LDcgQEAgSW50UmVjdCBFZGl0b3I6OmZpcnN0UmVjdEZv
clJhbmdlKFJhbmdlKiByYW5nZSkgY29uc3QKICAgICBpZiAoaW5TYW1lTGluZShzdGFydFZpc2li
bGVQb3NpdGlvbiwgZW5kVmlzaWJsZVBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuIGVuY2xvc2lu
Z0ludFJlY3QoUmVuZGVyT2JqZWN0OjphYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEZvclJhbmdlKHJh
bmdlKSk7CiAKLSAgICBMYXlvdXRVbml0IGV4dHJhV2lkdGhUb0VuZE9mTGluZSA9IDA7CisgICAg
TGF5b3V0VW5pdCBleHRyYVdpZHRoVG9FbmRPZkxpbmU7CiAgICAgSW50UmVjdCBzdGFydENhcmV0
UmVjdCA9IFJlbmRlcmVkUG9zaXRpb24oc3RhcnRWaXNpYmxlUG9zaXRpb24pLmFic29sdXRlUmVj
dCgmZXh0cmFXaWR0aFRvRW5kT2ZMaW5lKTsKICAgICBpZiAoc3RhcnRDYXJldFJlY3QgPT0gSW50
UmVjdCgpKQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCAyZGNmMThjNzQxNjMzYzY2NjU5YTg4YzE4ZjFkNTUx
ODI3ZmVlZGVlLi5iMmM3YzVlMjMyMGJlZDNkM2YwNDE3NDc3ZmM2YTFmOTk5OTRiOGQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMTQyMiw3ICsxNDIy
LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCB1bnNp
Z25lZCB2ZXJ0aWNhbERpc3RhbmNlLCBWZXJ0aWMKICAgICB3aWxsQmVNb2RpZmllZChhbHRlciwg
ZGlyZWN0aW9uID09IERpcmVjdGlvblVwID8gRGlyZWN0aW9uQmFja3dhcmQgOiBEaXJlY3Rpb25G
b3J3YXJkKTsKIAogICAgIFZpc2libGVQb3NpdGlvbiBwb3M7Ci0gICAgTGF5b3V0VW5pdCB4UG9z
ID0gMDsKKyAgICBMYXlvdXRVbml0IHhQb3M7CiAgICAgc3dpdGNoIChhbHRlcikgewogICAgIGNh
c2UgQWx0ZXJhdGlvbk1vdmU6CiAgICAgICAgIHBvcyA9IFZpc2libGVQb3NpdGlvbihkaXJlY3Rp
b24gPT0gRGlyZWN0aW9uVXAgPyBtX3NlbGVjdGlvbi5zdGFydCgpIDogbV9zZWxlY3Rpb24uZW5k
KCksIG1fc2VsZWN0aW9uLmFmZmluaXR5KCkpOwpAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgYm9vbCBG
cmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCB1bnNpZ25lZCB2ZXJ0aWNh
bERpc3RhbmNlLCBWZXJ0aWMKIAogTGF5b3V0VW5pdCBGcmFtZVNlbGVjdGlvbjo6bGluZURpcmVj
dGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUgdHlwZSkK
IHsKLSAgICBMYXlvdXRVbml0IHggPSAwOworICAgIExheW91dFVuaXQgeDsKIAogICAgIGlmIChp
c05vbmUoKSkKICAgICAgICAgcmV0dXJuIHg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCAyNDcxOGI2OTFkZjY4ZDY5NmEyNTVk
Y2Q4YjcyNzJlY2JlNGExM2I0Li45YzQ1OWYyM2IwMWMwNTYzODg5ZDY0MzA2MjFiOGU3YTAzMzVm
ODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21w
dXRlZFZhbHVlcyBSZW5kZXJTbGlkZXJDb250YWluZXI6OmNvbXB1dGVMb2dpY2FsSGVpZwogI2lm
IEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIGlmIChpbnB1dC5yZW5kZXJlcigpLT5pc1Ns
aWRlcigpICYmICFpc1ZlcnRpY2FsICYmIGlucHV0Lmxpc3QoKSkgewogICAgICAgICBpbnQgb2Zm
c2V0RnJvbUNlbnRlciA9IHRoZW1lKCkuc2xpZGVyVGlja09mZnNldEZyb21UcmFja0NlbnRlcigp
OwotICAgICAgICBMYXlvdXRVbml0IHRyYWNrSGVpZ2h0ID0gMDsKKyAgICAgICAgTGF5b3V0VW5p
dCB0cmFja0hlaWdodDsKICAgICAgICAgaWYgKG9mZnNldEZyb21DZW50ZXIgPCAwKQogICAgICAg
ICAgICAgdHJhY2tIZWlnaHQgPSAtMiAqIG9mZnNldEZyb21DZW50ZXI7CiAgICAgICAgIGVsc2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRl
eCBjZDgyODlmNDEyNGNlZmQ2MmI0YjFiYzdiYzBlN2EwNjkyMGEwYTMyLi45Y2FlZjkyZWE4OWU5
MGMzZTk2NTkyN2MxY2MyOGEwMTRjYTg1YzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpqdXN0aWZ5UnVucyhJbmxpbmVGb3JtYXR0aW5n
U3RhdGUmIGZvcm1hCiAgICAgICAgIHJldHVybjsKIAogICAgIGZsb2F0IGV4cGFuc2lvbiA9IHdp
ZHRoVG9EaXN0cmlidXRlLnRvRmxvYXQoKSAvIGV4cGFuc2lvbk9wcG9ydHVuaXRpZXM7Ci0gICAg
TGF5b3V0VW5pdCBhY2N1bXVsYXRlZEV4cGFuc2lvbiA9IDA7CisgICAgTGF5b3V0VW5pdCBhY2N1
bXVsYXRlZEV4cGFuc2lvbjsKICAgICBmb3IgKGF1dG8gcnVuSW5kZXggPSAqcnVuUmFuZ2UuZmly
c3RSdW5JbmRleDsgcnVuSW5kZXggPD0gKnJ1blJhbmdlLmxhc3RSdW5JbmRleDsgKytydW5JbmRl
eCkgewogICAgICAgICBhdXRvJiBpbmxpbmVSdW4gPSBpbmxpbmVSdW5zW3J1bkluZGV4XTsKICAg
ICAgICAgYXV0byBleHBhbnNpb25Gb3JSdW4gPSBpbmxpbmVSdW4uZXhwYW5zaW9uT3Bwb3J0dW5p
dHkoKS5jb3VudCAqIGV4cGFuc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAz
OTExMGE2ZjQ3ZDVmY2Y0NWEyY2MxNjcyOGQ4MTdkYjU2OThhNzQ0Li5hNjJkOTNiNWI5MDNkNTJh
MDVlZDUwMWM2ODcxZjM5ZGUxYzVmMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC00NjI0LDcgKzQ2MjQsNyBAQCB2b2lkIEZyYW1lVmlldzo6Zm9yY2VMYXlvdXRGb3JQYWdpbmF0
aW9uKGNvbnN0IEZsb2F0U2l6ZSYgcGFnZVNpemUsIGNvbnN0IEZsb2F0UwogICAgICAgICAgICAg
TGF5b3V0VW5pdCBkb2NMb2dpY2FsSGVpZ2h0ID0gaG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gdXBk
YXRlZERvY3VtZW50UmVjdC5oZWlnaHQoKSA6IHVwZGF0ZWREb2N1bWVudFJlY3Qud2lkdGgoKTsK
ICAgICAgICAgICAgIExheW91dFVuaXQgZG9jTG9naWNhbFRvcCA9IGhvcml6b250YWxXcml0aW5n
TW9kZSA/IHVwZGF0ZWREb2N1bWVudFJlY3QueSgpIDogdXBkYXRlZERvY3VtZW50UmVjdC54KCk7
CiAgICAgICAgICAgICBMYXlvdXRVbml0IGRvY0xvZ2ljYWxSaWdodCA9IGhvcml6b250YWxXcml0
aW5nTW9kZSA/IHVwZGF0ZWREb2N1bWVudFJlY3QubWF4WCgpIDogdXBkYXRlZERvY3VtZW50UmVj
dC5tYXhZKCk7Ci0gICAgICAgICAgICBMYXlvdXRVbml0IGNsaXBwZWRMb2dpY2FsTGVmdCA9IDA7
CisgICAgICAgICAgICBMYXlvdXRVbml0IGNsaXBwZWRMb2dpY2FsTGVmdDsKICAgICAgICAgICAg
IGlmICghcmVuZGVyVmlldy0+c3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAg
ICAgICAgICAgICAgY2xpcHBlZExvZ2ljYWxMZWZ0ID0gZG9jTG9naWNhbFJpZ2h0IC0gcGFnZUxv
Z2ljYWxXaWR0aDsKICAgICAgICAgICAgIExheW91dFJlY3Qgb3ZlcmZsb3coY2xpcHBlZExvZ2lj
YWxMZWZ0LCBkb2NMb2dpY2FsVG9wLCBwYWdlTG9naWNhbFdpZHRoLCBkb2NMb2dpY2FsSGVpZ2h0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKaW5kZXggMmJlZWRk
OTU3Yzg1MGRlN2Y0ZjU3MjI5MDJhMGQ3ZTQ3YmE1YWZjNC4uYmFmZWI3YWU2NmFiYmY2M2E0Yzc5
YjY1MWI1YjVhYWI4YjJmYTM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0
aWFsTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5jcHAKQEAgLTMzNiw4ICszMzYsOCBAQCBib29sIHNjcm9sbEluRGlyZWN0aW9uKEZyYW1l
KiBmcmFtZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIEFTU0VSVChmcmFtZSk7CiAK
ICAgICBpZiAoZnJhbWUgJiYgY2FuU2Nyb2xsSW5EaXJlY3Rpb24oZnJhbWUtPmRvY3VtZW50KCks
IGRpcmVjdGlvbikpIHsKLSAgICAgICAgTGF5b3V0VW5pdCBkeCA9IDA7Ci0gICAgICAgIExheW91
dFVuaXQgZHkgPSAwOworICAgICAgICBMYXlvdXRVbml0IGR4OworICAgICAgICBMYXlvdXRVbml0
IGR5OwogICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewogICAgICAgICBjYXNlIEZvY3VzRGly
ZWN0aW9uTGVmdDoKICAgICAgICAgICAgIGR4ID0gLSBTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVT
dGVwKCk7CkBAIC0zNzIsOCArMzcyLDggQEAgYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihOb2RlKiBj
b250YWluZXIsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgaWYgKGNhblNjcm9sbEluRGlyZWN0aW9uKGNvbnRhaW5lciwgZGlyZWN0aW9uKSkg
ewotICAgICAgICBMYXlvdXRVbml0IGR4ID0gMDsKLSAgICAgICAgTGF5b3V0VW5pdCBkeSA9IDA7
CisgICAgICAgIExheW91dFVuaXQgZHg7CisgICAgICAgIExheW91dFVuaXQgZHk7CiAgICAgICAg
IHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0Ogog
ICAgICAgICAgICAgZHggPSAtIHN0ZDo6bWluPExheW91dFVuaXQ+KFNjcm9sbGJhcjo6cGl4ZWxz
UGVyTGluZVN0ZXAoKSwgY29udGFpbmVyLT5yZW5kZXJCb3goKS0+c2Nyb2xsTGVmdCgpKTsKQEAg
LTY2MCw4ICs2NjAsOCBAQCB2b2lkIGRpc3RhbmNlRGF0YUZvck5vZGUoRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgY3VycmVudAogCiAgICAgTGF5b3V0UG9p
bnQgZXhpdFBvaW50OwogICAgIExheW91dFBvaW50IGVudHJ5UG9pbnQ7Ci0gICAgTGF5b3V0VW5p
dCBzYW1lQXhpc0Rpc3RhbmNlID0gMDsKLSAgICBMYXlvdXRVbml0IG90aGVyQXhpc0Rpc3RhbmNl
ID0gMDsKKyAgICBMYXlvdXRVbml0IHNhbWVBeGlzRGlzdGFuY2U7CisgICAgTGF5b3V0VW5pdCBv
dGhlckF4aXNEaXN0YW5jZTsKICAgICBlbnRyeUFuZEV4aXRQb2ludHNGb3JEaXJlY3Rpb24oZGly
ZWN0aW9uLCBjdXJyZW50UmVjdCwgbm9kZVJlY3QsIGV4aXRQb2ludCwgZW50cnlQb2ludCk7CiAK
ICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQXV0
b1RhYmxlTGF5b3V0LmNwcAppbmRleCBlMmZlYTgyYjI5ZmFhODc4NmI1NjUyN2U3N2Y3M2FhOTA3
NzkzYzAwLi44ZGU0Mjg4YzRjM2EzMDYzMWRjMDE5NjE4NWY3OTNjYjRjMzg5ZDI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcApAQCAtNzczLDcgKzc3
Myw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICB9CiAgICAgfQog
Ci0gICAgTGF5b3V0VW5pdCBwb3MgPSAwOworICAgIExheW91dFVuaXQgcG9zOwogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbkVmZkNvbHM7ICsraSkgewogICAgICAgICBtX3RhYmxlLT5zZXRD
b2x1bW5Qb3NpdGlvbihpLCBwb3MpOwogICAgICAgICBwb3MgKz0gTGF5b3V0VW5pdDo6ZnJvbUZs
b2F0Q2VpbChtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCkgKyBtX3RhYmxl
LT5oQm9yZGVyU3BhY2luZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcAppbmRleCBkMDJiNzRhMDk1NjY5ZDAzZjMxMTUw
YTdiN2Y3NWU3NDNiMWY4NTZmLi42NDgxYTMyZGQ5YmRhNWViOGE0NmMxMzQ4NjA5ZDIwZjU4MjJm
Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtLmNwcApAQCAtMTE0LDcgKzExNCw3IEBAIHN0YXRpYyBMYXlvdXRVbml0IG1h
cmdpbkludHJpbnNpY0xvZ2ljYWxXaWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckdyaWQqIHJlbmRl
ckdyCiAgICAgLy8gRml4ZWQgbWFyZ2lucyBjYW4gYmUgYWRkZWQgaW4gYXMgaXMuCiAgICAgTGVu
Z3RoIG1hcmdpbkxlZnQgPSBjaGlsZC5zdHlsZSgpLm1hcmdpblN0YXJ0VXNpbmcoJnJlbmRlckdy
aWQtPnN0eWxlKCkpOwogICAgIExlbmd0aCBtYXJnaW5SaWdodCA9IGNoaWxkLnN0eWxlKCkubWFy
Z2luRW5kVXNpbmcoJnJlbmRlckdyaWQtPnN0eWxlKCkpOwotICAgIExheW91dFVuaXQgbWFyZ2lu
ID0gMDsKKyAgICBMYXlvdXRVbml0IG1hcmdpbjsKICAgICBpZiAobWFyZ2luTGVmdC5pc0ZpeGVk
KCkpCiAgICAgICAgIG1hcmdpbiArPSBtYXJnaW5MZWZ0LnZhbHVlKCk7CiAgICAgaWYgKG1hcmdp
blJpZ2h0LmlzRml4ZWQoKSkKQEAgLTU4Miw3ICs1ODIsNyBAQCBMYXlvdXRVbml0IEdyaWRUcmFj
a1NpemluZ0FsZ29yaXRobTo6Z3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94
JiBjaAogCiAgICAgY29uc3QgVmVjdG9yPEdyaWRUcmFjaz4mIGFsbFRyYWNrcyA9IHRyYWNrcyhk
aXJlY3Rpb24pOwogICAgIGNvbnN0IEdyaWRTcGFuJiBzcGFuID0gbV9ncmlkLmdyaWRJdGVtU3Bh
bihjaGlsZCwgZGlyZWN0aW9uKTsKLSAgICBMYXlvdXRVbml0IGdyaWRBcmVhQnJlYWR0aCA9IDA7
CisgICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFkdGg7CiAgICAgZm9yIChhdXRvIHRyYWNrUG9z
aXRpb24gOiBzcGFuKQogICAgICAgICBncmlkQXJlYUJyZWFkdGggKz0gYWxsVHJhY2tzW3RyYWNr
UG9zaXRpb25dLmJhc2VTaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmNwcAppbmRleCAwM2U0MWU3MTU5MjAwYWFjZjJjZjg5OGJkMmIyZjljMjg2MDZhYjk1
Li5kNWQ2MmNkMGY3Mzc3YTlkMDUwNmU2ZjdiMWY0NWNiNzY3NmRhZjg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC02MjcsNyArNjI3LDcgQEAgdm9p
ZCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbihMYXlvdXRVbml0IHRv
cCwgTGF5b3V0VW5pdCBtYXhIZWkKICAgICAgICAgc2V0TG9naWNhbFRvcChyb3VuZFRvSW50KHRv
cCArIG1heEFzY2VudCAtIGZvbnRNZXRyaWNzLmFzY2VudChiYXNlbGluZVR5cGUpKSk7CiAgICAg
fQogCi0gICAgTGF5b3V0VW5pdCBhZGp1c3RtZW50Rm9yQ2hpbGRyZW5XaXRoU2FtZUxpbmVIZWln
aHRBbmRCYXNlbGluZSA9IDA7CisgICAgTGF5b3V0VW5pdCBhZGp1c3RtZW50Rm9yQ2hpbGRyZW5X
aXRoU2FtZUxpbmVIZWlnaHRBbmRCYXNlbGluZTsKICAgICBpZiAoZGVzY2VuZGFudHNIYXZlU2Ft
ZUxpbmVIZWlnaHRBbmRCYXNlbGluZSgpKSB7CiAgICAgICAgIGFkanVzdG1lbnRGb3JDaGlsZHJl
bldpdGhTYW1lTGluZUhlaWdodEFuZEJhc2VsaW5lID0gbG9naWNhbFRvcCgpOwogICAgICAgICBp
ZiAocGFyZW50KCkpCkBAIC0xMjU4LDcgKzEyNTgsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBh
aW50RmlsbExheWVyKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBDb2xvciYgY29s
bwogICAgICAgICAvLyBzdHJpcC4gIEV2ZW4gdGhvdWdoIHRoYXQgc3RyaXAgaGFzIGJlZW4gYnJv
a2VuIHVwIGFjcm9zcyBtdWx0aXBsZSBsaW5lcywgeW91IHN0aWxsIHBhaW50IGl0CiAgICAgICAg
IC8vIGFzIHRob3VnaCB5b3UgaGFkIG9uZSBzaW5nbGUgbGluZS4gIFRoaXMgbWVhbnMgZWFjaCBs
aW5lIGhhcyB0byBwaWNrIHVwIHRoZSBiYWNrZ3JvdW5kIHdoZXJlCiAgICAgICAgIC8vIHRoZSBw
cmV2aW91cyBsaW5lIGxlZnQgb2ZmLgotICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxPZmZzZXRP
bkxpbmUgPSAwOworICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxPZmZzZXRPbkxpbmU7CiAgICAg
ICAgIExheW91dFVuaXQgdG90YWxMb2dpY2FsV2lkdGg7CiAgICAgICAgIGlmIChyZW5kZXJlcigp
LnN0eWxlKCkuZGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6TFRSKSB7CiAgICAgICAgICAg
ICBmb3IgKElubGluZUZsb3dCb3gqIGN1cnIgPSBwcmV2TGluZUJveCgpOyBjdXJyOyBjdXJyID0g
Y3Vyci0+cHJldkxpbmVCb3goKSkKQEAgLTE0MDMsNyArMTQwMyw3IEBAIHZvaWQgSW5saW5lRmxv
d0JveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmCiAgICAgICAgIC8vIHRoZSBwcmV2aW91cyBsaW5lIGxlZnQgb2ZmLgogICAgICAg
ICAvLyBGSVhNRTogV2hhdCB0aGUgaGVjayBkbyB3ZSBkbyB3aXRoIFJUTCBoZXJlPyBUaGUgbWF0
aCB3ZSdyZSB1c2luZyBpcyBvYnZpb3VzbHkgbm90IHJpZ2h0LAogICAgICAgICAvLyBidXQgaXQg
aXNuJ3QgZXZlbiBjbGVhciBob3cgdGhpcyBzaG91bGQgd29yayBhdCBhbGwuCi0gICAgICAgIExh
eW91dFVuaXQgbG9naWNhbE9mZnNldE9uTGluZSA9IDA7CisgICAgICAgIExheW91dFVuaXQgbG9n
aWNhbE9mZnNldE9uTGluZTsKICAgICAgICAgZm9yIChJbmxpbmVGbG93Qm94KiBjdXJyID0gcHJl
dkxpbmVCb3goKTsgY3VycjsgY3VyciA9IGN1cnItPnByZXZMaW5lQm94KCkpCiAgICAgICAgICAg
ICBsb2dpY2FsT2Zmc2V0T25MaW5lICs9IGN1cnItPmxvZ2ljYWxXaWR0aCgpOwogICAgICAgICBM
YXlvdXRVbml0IHRvdGFsTG9naWNhbFdpZHRoID0gbG9naWNhbE9mZnNldE9uTGluZTsKQEAgLTE0
NzEsNyArMTQ3MSw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6cGFpbnRNYXNrKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzCiAgICAgfSBlbHNlIHsKICAg
ICAgICAgLy8gV2UgaGF2ZSBhIG1hc2sgaW1hZ2UgdGhhdCBzcGFucyBtdWx0aXBsZSBsaW5lcy4K
ICAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgX3R4IGFuZCBfdHkgYnkgdGhlIHdpZHRoIG9m
IGFsbCBwcmV2aW91cyBsaW5lcy4KLSAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsT2Zmc2V0T25M
aW5lID0gMDsKKyAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsT2Zmc2V0T25MaW5lOwogICAgICAg
ICBmb3IgKElubGluZUZsb3dCb3gqIGN1cnIgPSBwcmV2TGluZUJveCgpOyBjdXJyOyBjdXJyID0g
Y3Vyci0+cHJldkxpbmVCb3goKSkKICAgICAgICAgICAgIGxvZ2ljYWxPZmZzZXRPbkxpbmUgKz0g
Y3Vyci0+bG9naWNhbFdpZHRoKCk7CiAgICAgICAgIExheW91dFVuaXQgdG90YWxMb2dpY2FsV2lk
dGggPSBsb2dpY2FsT2Zmc2V0T25MaW5lOwpAQCAtMTU2MCw3ICsxNTYwLDcgQEAgdm9pZCBJbmxp
bmVGbG93Qm94OjpjbGVhclRydW5jYXRpb24oKQogCiBMYXlvdXRVbml0IElubGluZUZsb3dCb3g6
OmNvbXB1dGVPdmVyQW5ub3RhdGlvbkFkanVzdG1lbnQoTGF5b3V0VW5pdCBhbGxvd2VkUG9zaXRp
b24pIGNvbnN0CiB7Ci0gICAgTGF5b3V0VW5pdCByZXN1bHQgPSAwOworICAgIExheW91dFVuaXQg
cmVzdWx0OwogICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkgewogICAgICAgICBpZiAoY2hpbGQtPnJlbmRl
cmVyKCkuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsgLy8g
UG9zaXRpb25lZCBwbGFjZWhvbGRlcnMgZG9uJ3QgYWZmZWN0IGNhbGN1bGF0aW9ucy4KQEAgLTE2
MDgsNyArMTYwOCw3IEBAIExheW91dFVuaXQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZU92ZXJBbm5v
dGF0aW9uQWRqdXN0bWVudChMYXlvdXRVbml0IGFsbG93ZWRQb3NpCiAKIExheW91dFVuaXQgSW5s
aW5lRmxvd0JveDo6Y29tcHV0ZVVuZGVyQW5ub3RhdGlvbkFkanVzdG1lbnQoTGF5b3V0VW5pdCBh
bGxvd2VkUG9zaXRpb24pIGNvbnN0CiB7Ci0gICAgTGF5b3V0VW5pdCByZXN1bHQgPSAwOworICAg
IExheW91dFVuaXQgcmVzdWx0OwogICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkgewogICAgICAgICBpZiAo
Y2hpbGQtPnJlbmRlcmVyKCkuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBj
b250aW51ZTsgLy8gUG9zaXRpb25lZCBwbGFjZWhvbGRlcnMgZG9uJ3QgYWZmZWN0IGNhbGN1bGF0
aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDBkOTBk
NzA3ZTZmMDYyZmI2ZjhkM2EzNGRiNTkwMDBkNWY0MGNmZWIuLjhkZjQwNjYxOTcxYWE1YzdkY2U4
MWRhNDE3N2RmODFhMjViYjQ1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcApAQCAtOTcwLDcgKzk3MCw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6Om1hcmdp
bkludHJpbnNpY0xvZ2ljYWxXaWR0aEZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQpIGNvCiAgICAg
Ly8gRml4ZWQgbWFyZ2lucyBjYW4gYmUgYWRkZWQgaW4gYXMgaXMuCiAgICAgTGVuZ3RoIG1hcmdp
bkxlZnQgPSBjaGlsZC5zdHlsZSgpLm1hcmdpblN0YXJ0VXNpbmcoJnN0eWxlKCkpOwogICAgIExl
bmd0aCBtYXJnaW5SaWdodCA9IGNoaWxkLnN0eWxlKCkubWFyZ2luRW5kVXNpbmcoJnN0eWxlKCkp
OwotICAgIExheW91dFVuaXQgbWFyZ2luID0gMDsKKyAgICBMYXlvdXRVbml0IG1hcmdpbjsKICAg
ICBpZiAobWFyZ2luTGVmdC5pc0ZpeGVkKCkpCiAgICAgICAgIG1hcmdpbiArPSBtYXJnaW5MZWZ0
LnZhbHVlKCk7CiAgICAgaWYgKG1hcmdpblJpZ2h0LmlzRml4ZWQoKSkKQEAgLTEwMTEsNyArMTAx
MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFBvc2l0aW9uZWRPYmplY3QoUmVuZGVyQm94
JiByLCBib29sIHJlbGF5b3V0Q2hpbGRyZW4sIGJvCiAgICAgICAgIAogICAgIC8vIElmIHdlIGFy
ZSBwYWdpbmF0ZWQgb3IgaW4gYSBsaW5lIGdyaWQsIGNvbXB1dGUgYSB2ZXJ0aWNhbCBwb3NpdGlv
biBmb3Igb3VyIG9iamVjdCBub3cuCiAgICAgLy8gSWYgaXQncyB3cm9uZyB3ZSdsbCBsYXkgb3V0
IGFnYWluLgotICAgIExheW91dFVuaXQgb2xkTG9naWNhbFRvcCA9IDA7CisgICAgTGF5b3V0VW5p
dCBvbGRMb2dpY2FsVG9wOwogICAgIGJvb2wgbmVlZHNCbG9ja0RpcmVjdGlvbkxvY2F0aW9uU2V0
QmVmb3JlTGF5b3V0ID0gci5uZWVkc0xheW91dCgpICYmIHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlv
dXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKS0+bmVlZHNCbG9ja0RpcmVjdGlvbkxvY2F0aW9uU2V0
QmVmb3JlTGF5b3V0KCk7CiAgICAgaWYgKG5lZWRzQmxvY2tEaXJlY3Rpb25Mb2NhdGlvblNldEJl
Zm9yZUxheW91dCkgewogICAgICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBy
LmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCkBAIC0xNDEzLDcgKzE0MTMsNyBAQCBHYXBSZWN0
cyBSZW5kZXJCbG9jazo6c2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqCiAgICAgTGF5b3V0UG9pbnQgb2Zmc2V0RnJvbVJlcGFpbnRDb250YWlu
ZXIoY29udGFpbmVyUG9pbnQgLSB0b0Zsb2F0U2l6ZShzY3JvbGxQb3NpdGlvbigpKSk7CiAKICAg
ICBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzIGNhY2hlKCp0aGlzKTsKLSAgICBMYXlvdXRV
bml0IGxhc3RUb3AgPSAwOworICAgIExheW91dFVuaXQgbGFzdFRvcDsKICAgICBMYXlvdXRVbml0
IGxhc3RMZWZ0ID0gbG9naWNhbExlZnRTZWxlY3Rpb25PZmZzZXQoKnRoaXMsIGxhc3RUb3AsIGNh
Y2hlKTsKICAgICBMYXlvdXRVbml0IGxhc3RSaWdodCA9IGxvZ2ljYWxSaWdodFNlbGVjdGlvbk9m
ZnNldCgqdGhpcywgbGFzdFRvcCwgY2FjaGUpOwogICAgIApAQCAtMTQyNSw3ICsxNDI1LDcgQEAg
dm9pZCBSZW5kZXJCbG9jazo6cGFpbnRTZWxlY3Rpb24oUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE8KICNpZiBFTkFCTEUoVEVYVF9TRUxFQ1RJT04pCiAgICAg
aWYgKHNob3VsZFBhaW50U2VsZWN0aW9uR2FwcygpICYmIHBhaW50SW5mby5waGFzZSA9PSBQYWlu
dFBoYXNlOjpGb3JlZ3JvdW5kKSB7CiAgICAgICAgIExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNo
ZXMgY2FjaGUoKnRoaXMpOwotICAgICAgICBMYXlvdXRVbml0IGxhc3RUb3AgPSAwOworICAgICAg
ICBMYXlvdXRVbml0IGxhc3RUb3A7CiAgICAgICAgIExheW91dFVuaXQgbGFzdExlZnQgPSBsb2dp
Y2FsTGVmdFNlbGVjdGlvbk9mZnNldCgqdGhpcywgbGFzdFRvcCwgY2FjaGUpOwogICAgICAgICBM
YXlvdXRVbml0IGxhc3RSaWdodCA9IGxvZ2ljYWxSaWdodFNlbGVjdGlvbk9mZnNldCgqdGhpcywg
bGFzdFRvcCwgY2FjaGUpOwogICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIocGFpbnRJbmZvLmNvbnRleHQoKSk7CkBAIC0xODM5LDcgKzE4MzksNyBAQCBib29sIFJl
bmRlckJsb2NrOjppc0NvbnRhaW5pbmdCbG9ja0FuY2VzdG9yRm9yKFJlbmRlck9iamVjdCYgcmVu
ZGVyZXIpIGNvbnN0CiAKIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OnRleHRJbmRlbnRPZmZzZXQo
KSBjb25zdAogewotICAgIExheW91dFVuaXQgY3cgPSAwOworICAgIExheW91dFVuaXQgY3c7CiAg
ICAgaWYgKHN0eWxlKCkudGV4dEluZGVudCgpLmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpKQogICAg
ICAgICBjdyA9IGNvbnRhaW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKICAg
ICByZXR1cm4gbWluaW11bVZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkudGV4dEluZGVudCgpLCBjdyk7
CkBAIC0yMzA4LDkgKzIzMDgsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlQmxvY2tQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aAogICAgICAgICAv
LyBGaXhlZCBtYXJnaW5zIGNhbiBiZSBhZGRlZCBpbiBhcyBpcy4KICAgICAgICAgTGVuZ3RoIHN0
YXJ0TWFyZ2luTGVuZ3RoID0gY2hpbGRTdHlsZS5tYXJnaW5TdGFydFVzaW5nKCZzdHlsZVRvVXNl
KTsKICAgICAgICAgTGVuZ3RoIGVuZE1hcmdpbkxlbmd0aCA9IGNoaWxkU3R5bGUubWFyZ2luRW5k
VXNpbmcoJnN0eWxlVG9Vc2UpOwotICAgICAgICBMYXlvdXRVbml0IG1hcmdpbiA9IDA7Ci0gICAg
ICAgIExheW91dFVuaXQgbWFyZ2luU3RhcnQgPSAwOwotICAgICAgICBMYXlvdXRVbml0IG1hcmdp
bkVuZCA9IDA7CisgICAgICAgIExheW91dFVuaXQgbWFyZ2luOworICAgICAgICBMYXlvdXRVbml0
IG1hcmdpblN0YXJ0OworICAgICAgICBMYXlvdXRVbml0IG1hcmdpbkVuZDsKICAgICAgICAgaWYg
KHN0YXJ0TWFyZ2luTGVuZ3RoLmlzRml4ZWQoKSkKICAgICAgICAgICAgIG1hcmdpblN0YXJ0ICs9
IHN0YXJ0TWFyZ2luTGVuZ3RoLnZhbHVlKCk7CiAgICAgICAgIGlmIChlbmRNYXJnaW5MZW5ndGgu
aXNGaXhlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cAppbmRleCAxOTQxNDI3NjEzZTIzYzFlMTU0MTQzMzYzMmU3YWViNDMxZmIzYzU0Li44ZTM3MzBl
ZjUwYjc1MmVjNjNkNTgxNDJhZGY0ZjI1MmFjOTZjYzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMjI2LDcgKzIyNiw3IEBAIHZvaWQgUmVu
ZGVyQmxvY2tGbG93OjpyZWJ1aWxkRmxvYXRpbmdPYmplY3RTZXRGcm9tSW50cnVkaW5nRmxvYXRz
KCkKICAgICBpZiAocGFyZW50SGFzRmxvYXRzIHx8IChwYXJlbnRCbG9jay5sb3dlc3RGbG9hdExv
Z2ljYWxCb3R0b20oKSA+IGxvZ2ljYWxUb3BPZmZzZXQgJiYgcHJldmlvdXNCbG9jayAmJiBwcmV2
aW91c0Jsb2NrLT5pc1NlbGZDb2xsYXBzaW5nQmxvY2soKSkpCiAgICAgICAgIGFkZEludHJ1ZGlu
Z0Zsb2F0cygmcGFyZW50QmxvY2ssICZwYXJlbnRCbG9jaywgcGFyZW50QmxvY2subG9naWNhbExl
ZnRPZmZzZXRGb3JDb250ZW50KCksIGxvZ2ljYWxUb3BPZmZzZXQpOwogICAgIAotICAgIExheW91
dFVuaXQgbG9naWNhbExlZnRPZmZzZXQgPSAwOworICAgIExheW91dFVuaXQgbG9naWNhbExlZnRP
ZmZzZXQ7CiAgICAgaWYgKHByZXZpb3VzQmxvY2spCiAgICAgICAgIGxvZ2ljYWxUb3BPZmZzZXQg
LT0gcHJldmlvdXNCbG9jay0+bG9naWNhbFRvcCgpOwogICAgIGVsc2UgewpAQCAtNDcwLDkgKzQ3
MCw5IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxICiAgICAgYm9vbCBwYWdlTG9naWNhbEhlaWdo
dENoYW5nZWQgPSBmYWxzZTsKICAgICBjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hh
bmdlKHJlbGF5b3V0Q2hpbGRyZW4sIHBhZ2VMb2dpY2FsSGVpZ2h0LCBwYWdlTG9naWNhbEhlaWdo
dENoYW5nZWQpOwogCi0gICAgTGF5b3V0VW5pdCByZXBhaW50TG9naWNhbFRvcCA9IDA7Ci0gICAg
TGF5b3V0VW5pdCByZXBhaW50TG9naWNhbEJvdHRvbSA9IDA7Ci0gICAgTGF5b3V0VW5pdCBtYXhG
bG9hdExvZ2ljYWxCb3R0b20gPSAwOworICAgIExheW91dFVuaXQgcmVwYWludExvZ2ljYWxUb3A7
CisgICAgTGF5b3V0VW5pdCByZXBhaW50TG9naWNhbEJvdHRvbTsKKyAgICBMYXlvdXRVbml0IG1h
eEZsb2F0TG9naWNhbEJvdHRvbTsKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGVUb1VzZSA9
IHN0eWxlKCk7CiAgICAgewogICAgICAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNo
ZXIoKnRoaXMsIGxvY2F0aW9uT2Zmc2V0KCksIGhhc1RyYW5zZm9ybSgpIHx8IGhhc1JlZmxlY3Rp
b24oKSB8fCBzdHlsZVRvVXNlLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCksIHBhZ2VMb2dp
Y2FsSGVpZ2h0LCBwYWdlTG9naWNhbEhlaWdodENoYW5nZWQpOwpAQCAtNjI0LDcgKzYyNCw3IEBA
IHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0NoaWxkcmVuKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCYgbWF4CiAgICAgLy8gSXQgZG9lc24ndCBnZXQgaW5jbHVkZWQg
aW4gdGhlIG5vcm1hbCBsYXlvdXQgcHJvY2VzcyBidXQgaXMgaW5zdGVhZCBza2lwcGVkLgogICAg
IGxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4ocmVsYXlvdXRDaGlsZHJlbik7CiAKLSAgICBMYXlvdXRV
bml0IHByZXZpb3VzRmxvYXRMb2dpY2FsQm90dG9tID0gMDsKKyAgICBMYXlvdXRVbml0IHByZXZp
b3VzRmxvYXRMb2dpY2FsQm90dG9tOwogICAgIG1heEZsb2F0TG9naWNhbEJvdHRvbSA9IDA7CiAK
ICAgICBSZW5kZXJCb3gqIG5leHQgPSBmaXJzdENoaWxkQm94KCk7CkBAIC05MDcsMTMgKzkwNywx
MyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6c2V0U3RhdGljSW5saW5lUG9zaXRpb25Gb3JDaGls
ZChSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbgogCiBSZW5kZXJCbG9ja0Zsb3c6Ok1hcmdpblZh
bHVlcyBSZW5kZXJCbG9ja0Zsb3c6Om1hcmdpblZhbHVlc0ZvckNoaWxkKFJlbmRlckJveCYgY2hp
bGQpIGNvbnN0CiB7Ci0gICAgTGF5b3V0VW5pdCBjaGlsZEJlZm9yZVBvc2l0aXZlID0gMDsKLSAg
ICBMYXlvdXRVbml0IGNoaWxkQmVmb3JlTmVnYXRpdmUgPSAwOwotICAgIExheW91dFVuaXQgY2hp
bGRBZnRlclBvc2l0aXZlID0gMDsKLSAgICBMYXlvdXRVbml0IGNoaWxkQWZ0ZXJOZWdhdGl2ZSA9
IDA7CisgICAgTGF5b3V0VW5pdCBjaGlsZEJlZm9yZVBvc2l0aXZlOworICAgIExheW91dFVuaXQg
Y2hpbGRCZWZvcmVOZWdhdGl2ZTsKKyAgICBMYXlvdXRVbml0IGNoaWxkQWZ0ZXJQb3NpdGl2ZTsK
KyAgICBMYXlvdXRVbml0IGNoaWxkQWZ0ZXJOZWdhdGl2ZTsKIAotICAgIExheW91dFVuaXQgYmVm
b3JlTWFyZ2luID0gMDsKLSAgICBMYXlvdXRVbml0IGFmdGVyTWFyZ2luID0gMDsKKyAgICBMYXlv
dXRVbml0IGJlZm9yZU1hcmdpbjsKKyAgICBMYXlvdXRVbml0IGFmdGVyTWFyZ2luOwogCiAgICAg
UmVuZGVyQmxvY2tGbG93KiBjaGlsZFJlbmRlckJsb2NrID0gaXM8UmVuZGVyQmxvY2tGbG93Pihj
aGlsZCkgPyAmZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihjaGlsZCkgOiBudWxscHRyOwogICAg
IApAQCAtMTI2Myw4ICsxMjYzLDggQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OmVzdGlt
YXRlTG9naWNhbFRvcFBvc2l0aW9uKFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IE0KICAgICAvLyBy
ZWxheW91dCBpZiB0aGVyZSBhcmUgaW50cnVkaW5nIGZsb2F0cy4KICAgICBMYXlvdXRVbml0IGxv
Z2ljYWxUb3BFc3RpbWF0ZSA9IGxvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAoIW1hcmdpbkluZm8u
Y2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkpIHsKLSAgICAgICAgTGF5b3V0VW5pdCBwb3Np
dGl2ZU1hcmdpbkJlZm9yZSA9IDA7Ci0gICAgICAgIExheW91dFVuaXQgbmVnYXRpdmVNYXJnaW5C
ZWZvcmUgPSAwOworICAgICAgICBMYXlvdXRVbml0IHBvc2l0aXZlTWFyZ2luQmVmb3JlOworICAg
ICAgICBMYXlvdXRVbml0IG5lZ2F0aXZlTWFyZ2luQmVmb3JlOwogICAgICAgICBib29sIGRpc2Nh
cmRNYXJnaW5CZWZvcmUgPSBmYWxzZTsKICAgICAgICAgaWYgKGNoaWxkLnNlbGZOZWVkc0xheW91
dCgpKSB7CiAgICAgICAgICAgICAvLyBUcnkgdG8gZG8gYSBiYXNpYyBlc3RpbWF0aW9uIG9mIGhv
dyB0aGUgY29sbGFwc2UgaXMgZ29pbmcgdG8gZ28uCkBAIC0xNTA2LDcgKzE1MDYsNyBAQCBMYXlv
dXRVbml0IFJlbmRlckJsb2NrRmxvdzo6YXBwbHlCZWZvcmVCcmVhayhSZW5kZXJCb3gmIGNoaWxk
LCBMYXlvdXRVbml0IGxvZ2ljYQogICAgICAgICAgICAgICAgIGNoZWNrRnJhZ21lbnRCcmVha3Mg
PSB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChjaGVja0ZyYWdtZW50QnJlYWtzKSB7Ci0g
ICAgICAgICAgICBMYXlvdXRVbml0IG9mZnNldEJyZWFrQWRqdXN0bWVudCA9IDA7CisgICAgICAg
ICAgICBMYXlvdXRVbml0IG9mZnNldEJyZWFrQWRqdXN0bWVudDsKICAgICAgICAgICAgIGlmIChm
cmFnbWVudGVkRmxvdy0+YWRkRm9yY2VkRnJhZ21lbnRCcmVhayh0aGlzLCBvZmZzZXRGcm9tTG9n
aWNhbFRvcE9mRmlyc3RQYWdlKCkgKyBsb2dpY2FsT2Zmc2V0LCAmY2hpbGQsIHRydWUsICZvZmZz
ZXRCcmVha0FkanVzdG1lbnQpKQogICAgICAgICAgICAgICAgIHJldHVybiBsb2dpY2FsT2Zmc2V0
ICsgb2Zmc2V0QnJlYWtBZGp1c3RtZW50OwogICAgICAgICB9CkBAIC0xNTM2LDcgKzE1MzYsNyBA
QCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6YXBwbHlBZnRlckJyZWFrKFJlbmRlckJveCYg
Y2hpbGQsIExheW91dFVuaXQgbG9naWNhbAogICAgICAgICAgICAgICAgIGNoZWNrRnJhZ21lbnRC
cmVha3MgPSB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChjaGVja0ZyYWdtZW50QnJlYWtz
KSB7Ci0gICAgICAgICAgICBMYXlvdXRVbml0IG9mZnNldEJyZWFrQWRqdXN0bWVudCA9IDA7Cisg
ICAgICAgICAgICBMYXlvdXRVbml0IG9mZnNldEJyZWFrQWRqdXN0bWVudDsKICAgICAgICAgICAg
IGlmIChmcmFnbWVudGVkRmxvdy0+YWRkRm9yY2VkRnJhZ21lbnRCcmVhayh0aGlzLCBvZmZzZXRG
cm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKCkgKyBsb2dpY2FsT2Zmc2V0ICsgbWFyZ2luT2Zmc2V0
LCAmY2hpbGQsIGZhbHNlLCAmb2Zmc2V0QnJlYWtBZGp1c3RtZW50KSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gbG9naWNhbE9mZnNldCArIG1hcmdpbk9mZnNldCArIG9mZnNldEJyZWFrQWRqdXN0
bWVudDsKICAgICAgICAgfQpAQCAtMTU5NSw3ICsxNTk1LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJC
bG9ja0Zsb3c6OmFkanVzdEJsb2NrQ2hpbGRGb3JQYWdpbmF0aW9uKExheW91dFVuaXQgbG9naWNh
bFRvcEEKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BCZWZvcmVVbnNwbGl0dGFibGVBZGp1c3Rt
ZW50ID0gcmVzdWx0OwogICAgIExheW91dFVuaXQgbG9naWNhbFRvcEFmdGVyVW5zcGxpdHRhYmxl
QWRqdXN0bWVudCA9IGFkanVzdEZvclVuc3BsaXR0YWJsZUNoaWxkKGNoaWxkLCByZXN1bHQpOwog
ICAgIAotICAgIExheW91dFVuaXQgcGFnaW5hdGlvblN0cnV0ID0gMDsKKyAgICBMYXlvdXRVbml0
IHBhZ2luYXRpb25TdHJ1dDsKICAgICBMYXlvdXRVbml0IHVuc3BsaXR0YWJsZUFkanVzdG1lbnRE
ZWx0YSA9IGxvZ2ljYWxUb3BBZnRlclVuc3BsaXR0YWJsZUFkanVzdG1lbnQgLSBsb2dpY2FsVG9w
QmVmb3JlVW5zcGxpdHRhYmxlQWRqdXN0bWVudDsKICAgICBpZiAodW5zcGxpdHRhYmxlQWRqdXN0
bWVudERlbHRhKQogICAgICAgICBwYWdpbmF0aW9uU3RydXQgPSB1bnNwbGl0dGFibGVBZGp1c3Rt
ZW50RGVsdGE7CkBAIC0yNTM4LDcgKzI1MzgsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6Y2xl
YXJGbG9hdHMoQ2xlYXIgY2xlYXIpCiB7CiAgICAgcG9zaXRpb25OZXdGbG9hdHMoKTsKICAgICAv
LyBzZXQgeSBwb3NpdGlvbgotICAgIExheW91dFVuaXQgbmV3WSA9IDA7CisgICAgTGF5b3V0VW5p
dCBuZXdZOwogICAgIHN3aXRjaCAoY2xlYXIpIHsKICAgICBjYXNlIENsZWFyOjpMZWZ0OgogICAg
ICAgICBuZXdZID0gbG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tKEZsb2F0aW5nT2JqZWN0OjpGbG9h
dExlZnQpOwpAQCAtMjU5Miw3ICsyNTkyLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6
Omxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbShGbG9hdGluZ09iamVjdDo6VHlwZSBmbG9hdFQKIHsK
ICAgICBpZiAoIW1fZmxvYXRpbmdPYmplY3RzKQogICAgICAgICByZXR1cm4gMDsKLSAgICBMYXlv
dXRVbml0IGxvd2VzdEZsb2F0Qm90dG9tID0gMDsKKyAgICBMYXlvdXRVbml0IGxvd2VzdEZsb2F0
Qm90dG9tOwogICAgIGNvbnN0IEZsb2F0aW5nT2JqZWN0U2V0JiBmbG9hdGluZ09iamVjdFNldCA9
IG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKTsKICAgICBhdXRvIGVuZCA9IGZsb2F0aW5nT2JqZWN0
U2V0LmVuZCgpOwogICAgIGZvciAoYXV0byBpdCA9IGZsb2F0aW5nT2JqZWN0U2V0LmJlZ2luKCk7
IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMjYwNyw3ICsyNjA3LDcgQEAgTGF5b3V0VW5pdCBSZW5k
ZXJCbG9ja0Zsb3c6Omxvd2VzdEluaXRpYWxMZXR0ZXJMb2dpY2FsQm90dG9tKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fZmxvYXRpbmdPYmplY3RzKQogICAgICAgICByZXR1cm4gMDsKLSAgICBMYXlv
dXRVbml0IGxvd2VzdEZsb2F0Qm90dG9tID0gMDsKKyAgICBMYXlvdXRVbml0IGxvd2VzdEZsb2F0
Qm90dG9tOwogICAgIGNvbnN0IEZsb2F0aW5nT2JqZWN0U2V0JiBmbG9hdGluZ09iamVjdFNldCA9
IG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKTsKICAgICBhdXRvIGVuZCA9IGZsb2F0aW5nT2JqZWN0
U2V0LmVuZCgpOwogICAgIGZvciAoYXV0byBpdCA9IGZsb2F0aW5nT2JqZWN0U2V0LmJlZ2luKCk7
IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMjYyNiw3ICsyNjI2LDcgQEAgTGF5b3V0VW5pdCBSZW5k
ZXJCbG9ja0Zsb3c6OmFkZE92ZXJoYW5naW5nRmxvYXRzKFJlbmRlckJsb2NrRmxvdyYgY2hpbGQs
IGJvb2wgbWEKIAogICAgIExheW91dFVuaXQgY2hpbGRMb2dpY2FsVG9wID0gY2hpbGQubG9naWNh
bFRvcCgpOwogICAgIExheW91dFVuaXQgY2hpbGRMb2dpY2FsTGVmdCA9IGNoaWxkLmxvZ2ljYWxM
ZWZ0KCk7Ci0gICAgTGF5b3V0VW5pdCBsb3dlc3RGbG9hdExvZ2ljYWxCb3R0b20gPSAwOworICAg
IExheW91dFVuaXQgbG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tOwogCiAgICAgLy8gRmxvYXRzIHRo
YXQgd2lsbCByZW1haW4gdGhlIGNoaWxkJ3MgcmVzcG9uc2liaWxpdHkgdG8gcGFpbnQgc2hvdWxk
IGZhY3RvciBpbnRvIGl0cwogICAgIC8vIG92ZXJmbG93LgpAQCAtMjgwMSw3ICsyODAxLDcgQEAg
TGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OmdldENsZWFyRGVsdGEoUmVuZGVyQm94JiBjaGls
ZCwgTGF5b3V0VW5pdCBsb2dpY2FsVG8KICAgICAKICAgICAvLyBBdCBsZWFzdCBvbmUgZmxvYXQg
aXMgcHJlc2VudC4gV2UgbmVlZCB0byBwZXJmb3JtIHRoZSBjbGVhcmFuY2UgY29tcHV0YXRpb24u
CiAgICAgYm9vbCBjbGVhclNldCA9IGNoaWxkLnN0eWxlKCkuY2xlYXIoKSAhPSBDbGVhcjo6Tm9u
ZTsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxCb3R0b20gPSAwOworICAgIExheW91dFVuaXQgbG9n
aWNhbEJvdHRvbTsKICAgICBzd2l0Y2ggKGNoaWxkLnN0eWxlKCkuY2xlYXIoKSkgewogICAgIGNh
c2UgQ2xlYXI6Ok5vbmU6CiAgICAgICAgIGJyZWFrOwpAQCAtNDE0NCw3ICs0MTQ0LDcgQEAgdm9p
ZCBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKExh
eW91dFVuaXQmIG1pbkxvZ2ljYWwKICAgICAgICAgICAgICAgICAgICAgLy8gSW5saW5lIHJlcGxh
Y2VkIGVsdHMgYWRkIGluIHRoZWlyIG1hcmdpbnMgdG8gdGhlaXIgbWluL21heCB2YWx1ZXMuCiAg
ICAgICAgICAgICAgICAgICAgIGlmICghY2hpbGQtPmlzRmxvYXRpbmcoKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgIGxhc3RUZXh0ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICAgICAgTGF5
b3V0VW5pdCBtYXJnaW5zID0gMDsKKyAgICAgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBtYXJn
aW5zOwogICAgICAgICAgICAgICAgICAgICBMZW5ndGggc3RhcnRNYXJnaW4gPSBjaGlsZFN0eWxl
Lm1hcmdpblN0YXJ0KCk7CiAgICAgICAgICAgICAgICAgICAgIExlbmd0aCBlbmRNYXJnaW4gPSBj
aGlsZFN0eWxlLm1hcmdpbkVuZCgpOwogICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRNYXJn
aW4uaXNGaXhlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tMaW5lTGF5b3V0LmNwcAppbmRleCBmMTM4MDA2NjY1MjQ5ZmMyZTYxNTFjMzU1MDQ3ZjM2ZjQz
ZjRiZDIwLi44MDA1MjUwNGQ3NmYwYmFhYTU0NTZmMTFkNzlkNDA4NWE5MzRjZTczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApA
QCAtNDcxLDcgKzQ3MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRMb2dpY2FsV2lkdGhGb3JU
ZXh0UnVuKFJvb3RJbmxpbmVCb3gqIGxpbmVCb3gsIEJpZGlSdW4qIHJ1CiAgICAgICAgICAgICBn
bHlwaE92ZXJmbG93LmNvbXB1dGVCb3VuZHMgPSB0cnVlOyAKICAgICB9CiAgICAgCi0gICAgTGF5
b3V0VW5pdCBoeXBoZW5XaWR0aCA9IDA7CisgICAgTGF5b3V0VW5pdCBoeXBoZW5XaWR0aDsKICAg
ICBpZiAoZG93bmNhc3Q8SW5saW5lVGV4dEJveD4oKnJ1bi0+Ym94KCkpLmhhc0h5cGhlbigpKQog
ICAgICAgICBoeXBoZW5XaWR0aCA9IG1lYXN1cmVIeXBoZW5XaWR0aChyZW5kZXJlciwgZm9udCwg
JmZhbGxiYWNrRm9udHMpOwogCkBAIC0xNDEzLDcgKzE0MTMsNyBAQCB2b2lkIFJlbmRlckJsb2Nr
Rmxvdzo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRT
dGF0ZSwgSQogICAgICAgICAgICAgICAgIGlmIChsYXlvdXRTdGF0ZS51c2VzUmVwYWludEJvdW5k
cygpKQogICAgICAgICAgICAgICAgICAgICBsYXlvdXRTdGF0ZS51cGRhdGVSZXBhaW50UmFuZ2VG
cm9tQm94KGxpbmVCb3gpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIExheW91
dFVuaXQgYWRqdXN0bWVudCA9IDA7CisgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBhZGp1c3Rt
ZW50OwogICAgICAgICAgICAgICAgIGJvb2wgb3ZlcmZsb3dzRnJhZ21lbnQgPSBmYWxzZTsKICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBsYXlvdXRTdGF0ZS5tYXJnaW5JbmZvKCku
c2V0QXRCZWZvcmVTaWRlT2ZCbG9jayhmYWxzZSk7CkBAIC0xNzg5LDcgKzE3ODksNyBAQCBSb290
SW5saW5lQm94KiBSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZVN0YXJ0UG9zaXRpb24oTGluZUxh
eW91dFN0YXRlJiBsYXlvdXRTdAogICAgIGlmICghbGF5b3V0U3RhdGUuaXNGdWxsTGF5b3V0KCkp
IHsKICAgICAgICAgLy8gUGFnaW5hdGUgYWxsIG9mIHRoZSBjbGVhbiBsaW5lcy4KICAgICAgICAg
Ym9vbCBwYWdpbmF0ZWQgPSB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91
dFN0YXRlKCkgJiYgdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0
ZSgpLT5pc1BhZ2luYXRlZCgpOwotICAgICAgICBMYXlvdXRVbml0IHBhZ2luYXRpb25EZWx0YSA9
IDA7CisgICAgICAgIExheW91dFVuaXQgcGFnaW5hdGlvbkRlbHRhOwogICAgICAgICBhdXRvIGZs
b2F0c0l0ZXJhdG9yID0gZmxvYXRzLmJlZ2luKCk7CiAgICAgICAgIGF1dG8gZW5kID0gZmxvYXRz
LmVuZCgpOwogICAgICAgICBmb3IgKGN1cnJlbnRMaW5lID0gZmlyc3RSb290Qm94KCk7IGN1cnJl
bnRMaW5lICYmICFjdXJyZW50TGluZS0+aXNEaXJ0eSgpOyBjdXJyZW50TGluZSA9IGN1cnJlbnRM
aW5lLT5uZXh0Um9vdEJveCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CmluZGV4IDliMDNhZTk2ZDI1NjczMWI1Yzk1Yzc5OWM4ZjZkOWRhYmIwMmJkMGEuLjU4MmQ1YWYz
ODU0YzM1YzNhNjZiNWI0MDM4MThmNjI0NDZiZmE1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCkBAIC0yNDA0LDggKzI0MDQsOCBAQCB2b2lkIFJlbmRlckJveDo6Y29t
cHV0ZUxvZ2ljYWxXaWR0aEluRnJhZ21lbnQoTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJiBj
b21wdQogCiBMYXlvdXRVbml0IFJlbmRlckJveDo6ZmlsbEF2YWlsYWJsZU1lYXN1cmUoTGF5b3V0
VW5pdCBhdmFpbGFibGVMb2dpY2FsV2lkdGgpIGNvbnN0CiB7Ci0gICAgTGF5b3V0VW5pdCBtYXJn
aW5TdGFydCA9IDA7Ci0gICAgTGF5b3V0VW5pdCBtYXJnaW5FbmQgPSAwOworICAgIExheW91dFVu
aXQgbWFyZ2luU3RhcnQ7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5FbmQ7CiAgICAgcmV0dXJuIGZp
bGxBdmFpbGFibGVNZWFzdXJlKGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgbWFyZ2luU3RhcnQsIG1h
cmdpbkVuZCk7CiB9CiAKQEAgLTI0MjEsOCArMjQyMSw4IEBAIExheW91dFVuaXQgUmVuZGVyQm94
Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoVXNpbmcoTGVuZ3RoIGxvZ2ljYWxXaWR0aExl
bmd0CiAgICAgaWYgKGxvZ2ljYWxXaWR0aExlbmd0aC50eXBlKCkgPT0gRmlsbEF2YWlsYWJsZSkK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KGJvcmRlckFuZFBhZGRpbmcsIGZpbGxBdmFpbGFibGVN
ZWFzdXJlKGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCkpOwogCi0gICAgTGF5b3V0VW5pdCBtaW5Mb2dp
Y2FsV2lkdGggPSAwOwotICAgIExheW91dFVuaXQgbWF4TG9naWNhbFdpZHRoID0gMDsKKyAgICBM
YXlvdXRVbml0IG1pbkxvZ2ljYWxXaWR0aDsKKyAgICBMYXlvdXRVbml0IG1heExvZ2ljYWxXaWR0
aDsKICAgICBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhtaW5Mb2dpY2FsV2lkdGgsIG1h
eExvZ2ljYWxXaWR0aCk7CiAKICAgICBpZiAobG9naWNhbFdpZHRoTGVuZ3RoLnR5cGUoKSA9PSBN
aW5Db250ZW50KQpAQCAtMjQ1Niw4ICsyNDU2LDggQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNv
bXB1dGVMb2dpY2FsV2lkdGhJbkZyYWdtZW50VXNpbmcoU2l6ZVR5cGUgd2lkdGhUeXBlLCBMZW4K
ICAgICBpZiAobG9naWNhbFdpZHRoLmlzSW50cmluc2ljKCkpCiAgICAgICAgIHJldHVybiBjb21w
dXRlSW50cmluc2ljTG9naWNhbFdpZHRoVXNpbmcobG9naWNhbFdpZHRoLCBhdmFpbGFibGVMb2dp
Y2FsV2lkdGgsIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSk7CiAKLSAgICBMYXlvdXRV
bml0IG1hcmdpblN0YXJ0ID0gMDsKLSAgICBMYXlvdXRVbml0IG1hcmdpbkVuZCA9IDA7CisgICAg
TGF5b3V0VW5pdCBtYXJnaW5TdGFydDsKKyAgICBMYXlvdXRVbml0IG1hcmdpbkVuZDsKICAgICBM
YXlvdXRVbml0IGxvZ2ljYWxXaWR0aFJlc3VsdCA9IGZpbGxBdmFpbGFibGVNZWFzdXJlKGF2YWls
YWJsZUxvZ2ljYWxXaWR0aCwgbWFyZ2luU3RhcnQsIG1hcmdpbkVuZCk7CiAKICAgICBpZiAoc2hy
aW5rVG9Bdm9pZEZsb2F0cygpICYmIGNiLmNvbnRhaW5zRmxvYXRzKCkpCkBAIC0yOTA4LDcgKzI5
MDgsNyBAQCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJveDo6Y29tcHV0ZVBlcmNl
bnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbnN0IExlbmd0aAogICAgIGJvb2wgc2tpcHBlZEF1dG9IZWln
aHRDb250YWluaW5nQmxvY2sgPSBmYWxzZTsKICAgICBSZW5kZXJCbG9jayogY2IgPSBjb250YWlu
aW5nQmxvY2soKTsKICAgICBjb25zdCBSZW5kZXJCb3gqIGNvbnRhaW5pbmdCbG9ja0NoaWxkID0g
dGhpczsKLSAgICBMYXlvdXRVbml0IHJvb3RNYXJnaW5Cb3JkZXJQYWRkaW5nSGVpZ2h0ID0gMDsK
KyAgICBMYXlvdXRVbml0IHJvb3RNYXJnaW5Cb3JkZXJQYWRkaW5nSGVpZ2h0OwogICAgIGJvb2wg
aXNIb3Jpem9udGFsID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKICAgICB3aGlsZSAoY2Ig
JiYgIWlzPFJlbmRlclZpZXc+KCpjYikgJiYgc2tpcENvbnRhaW5pbmdCbG9ja0ZvclBlcmNlbnRI
ZWlnaHRDYWxjdWxhdGlvbigqY2IsIGlzSG9yaXpvbnRhbCAhPSBjYi0+aXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSkpIHsKICAgICAgICAgaWYgKGNiLT5pc0JvZHkoKSB8fCBjYi0+aXNEb2N1bWVu
dEVsZW1lbnRSZW5kZXJlcigpKQpAQCAtMjk4Myw3ICsyOTgzLDcgQEAgTGF5b3V0VW5pdCBSZW5k
ZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKFNpemVUeXBlIHdpZHRoVHlw
ZSwgTGVuZ3QKICAgICAgICAgY2FzZSBNaW5Db250ZW50OgogICAgICAgICBjYXNlIE1heENvbnRl
bnQ6IHsKICAgICAgICAgICAgIC8vIE1pbkNvbnRlbnQvTWF4Q29udGVudCBkb24ndCBuZWVkIHRo
ZSBhdmFpbGFibGVMb2dpY2FsV2lkdGggYXJndW1lbnQuCi0gICAgICAgICAgICBMYXlvdXRVbml0
IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCA9IDA7CisgICAgICAgICAgICBMYXlvdXRVbml0IGF2YWls
YWJsZUxvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgIHJldHVybiBjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRoVXNpbmcobG9naWNhbFdpZHRoLCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIGJvcmRl
ckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSkgLSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRo
KCk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBGaXRDb250ZW50OgpAQCAtMzU2Niw3ICszNTY2
LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmco
U2l6ZVR5cGUgd2lkdGhUeXBlLCBMZW5ndGggbG8KICAgICAvLyBjb252ZXJ0ZWQgdG8gdGhlIHN0
YXRpYyBwb3NpdGlvbiBhbHJlYWR5CiAgICAgQVNTRVJUKCEobG9naWNhbExlZnQuaXNBdXRvKCkg
JiYgbG9naWNhbFJpZ2h0LmlzQXV0bygpKSk7CiAKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0
VmFsdWUgPSAwOworICAgIExheW91dFVuaXQgbG9naWNhbExlZnRWYWx1ZTsKIAogICAgIGNvbnN0
IExheW91dFVuaXQgY29udGFpbmVyUmVsYXRpdmVMb2dpY2FsV2lkdGggPSBjb250YWluaW5nQmxv
Y2tMb2dpY2FsV2lkdGhGb3JQb3NpdGlvbmVkKGNvbnRhaW5lckJsb2NrLCBudWxscHRyLCBmYWxz
ZSk7CiAKQEAgLTM5MDUsNyArMzkwNSw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRp
b25lZExvZ2ljYWxIZWlnaHRVc2luZyhTaXplVHlwZSBoZWlnaHRUeXBlLCBMZW5ndGgKIAogICAg
IGNvbnN0IExheW91dFVuaXQgY29udGFpbmVyUmVsYXRpdmVMb2dpY2FsV2lkdGggPSBjb250YWlu
aW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JQb3NpdGlvbmVkKGNvbnRhaW5lckJsb2NrLCBudWxscHRy
LCBmYWxzZSk7CiAKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BWYWx1ZSA9IDA7CisgICAgTGF5
b3V0VW5pdCBsb2dpY2FsVG9wVmFsdWU7CiAKICAgICBib29sIGxvZ2ljYWxIZWlnaHRJc0F1dG8g
PSBsb2dpY2FsSGVpZ2h0TGVuZ3RoLmlzQXV0bygpOwogICAgIGJvb2wgbG9naWNhbFRvcElzQXV0
byA9IGxvZ2ljYWxUb3AuaXNBdXRvKCk7CkBAIC00MDg3LDggKzQwODcsOCBAQCB2b2lkIFJlbmRl
ckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGhSZXBsYWNlZChMb2dpY2FsRXh0ZW50
Q29tcHV0ZWRWYWx1ZQogICAgICAqICAgICgncnRsJyksIHNldCAnbWFyZ2luLWxlZnQnICgnbWFy
Z2luLXJpZ2h0JykgdG8gemVybyBhbmQgc29sdmUgZm9yCiAgICAgICogICAgJ21hcmdpbi1yaWdo
dCcgKCdtYXJnaW4tbGVmdCcpLgogICAgIFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotICAgIExheW91dFVu
aXQgbG9naWNhbExlZnRWYWx1ZSA9IDA7Ci0gICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRWYWx1
ZSA9IDA7CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdFZhbHVlOworICAgIExheW91dFVuaXQg
bG9naWNhbFJpZ2h0VmFsdWU7CiAKICAgICBpZiAobWFyZ2luTG9naWNhbExlZnQuaXNBdXRvKCkg
JiYgbWFyZ2luTG9naWNhbFJpZ2h0LmlzQXV0bygpKSB7CiAgICAgICAgIC8vICdsZWZ0JyBhbmQg
J3JpZ2h0JyBjYW5ub3QgYmUgJ2F1dG8nIGR1ZSB0byBzdGVwIDMKQEAgLTQyNDgsOCArNDI0OCw4
IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRSZXBsYWNl
ZChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1CiAgICAgICogICAgJ2F1dG8nLCBzb2x2ZSB0aGUg
ZXF1YXRpb24gdW5kZXIgdGhlIGV4dHJhIGNvbnN0cmFpbnQgdGhhdCB0aGUgdHdvCiAgICAgICog
ICAgbWFyZ2lucyBtdXN0IGdldCBlcXVhbCB2YWx1ZXMuCiAgICAgXCotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov
Ci0gICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wVmFsdWUgPSAwOwotICAgIExheW91dFVuaXQgbG9n
aWNhbEJvdHRvbVZhbHVlID0gMDsKKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BWYWx1ZTsKKyAg
ICBMYXlvdXRVbml0IGxvZ2ljYWxCb3R0b21WYWx1ZTsKIAogICAgIGlmIChtYXJnaW5CZWZvcmUu
aXNBdXRvKCkgJiYgbWFyZ2luQWZ0ZXIuaXNBdXRvKCkpIHsKICAgICAgICAgLy8gJ3RvcCcgYW5k
ICdib3R0b20nIGNhbm5vdCBiZSAnYXV0bycgZHVlIHRvIHN0ZXAgMiBhbmQgMyBjb21iaW5lZC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
CmluZGV4IDRjYWJmNWVmYjZmNTk1OWEwOTJmYTEzOTU0YTIxODBlMTIzODg4ODQuLmY1NGJiZmUx
YzQ1MWFkYTk4ZjY1ODVmYjAxZjU3MGM0NWI4N2E5NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNjI1LDcgKzYyNSw3IEBA
IExheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om9mZnNldFRvcCgpIGNvbnN0CiAKIExh
eW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVkQ1NTUGFkZGluZyhjb25zdCBM
ZW5ndGgmIHBhZGRpbmcpIGNvbnN0CiB7Ci0gICAgTGF5b3V0VW5pdCB3ID0gMDsKKyAgICBMYXlv
dXRVbml0IHc7CiAgICAgaWYgKHBhZGRpbmcuaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkpCiAgICAg
ICAgIHcgPSBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JDb250ZW50KCk7CiAgICAgcmV0
dXJuIG1pbmltdW1WYWx1ZUZvckxlbmd0aChwYWRkaW5nLCB3KTsKQEAgLTEyMTQsOCArMTIxNCw4
IEBAIHN0YXRpYyBMYXlvdXRVbml0IHJlc29sdmVFZGdlUmVsYXRpdmVMZW5ndGgoY29uc3QgTGVu
Z3RoJiBsZW5ndGgsIEVkZ2UgZWRnZSwgTGF5CiBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIsIGNvbnN0IEZpbGxMYXllciYg
ZmlsbExheWVyLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgY29uc3QgTGF5
b3V0UmVjdCYgYm9yZGVyQm94UmVjdCwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9iamVjdCkg
Y29uc3QKIHsKLSAgICBMYXlvdXRVbml0IGxlZnQgPSAwOwotICAgIExheW91dFVuaXQgdG9wID0g
MDsKKyAgICBMYXlvdXRVbml0IGxlZnQ7CisgICAgTGF5b3V0VW5pdCB0b3A7CiAgICAgTGF5b3V0
U2l6ZSBwb3NpdGlvbmluZ0FyZWFTaXplOwogICAgIC8vIERldGVybWluZSB0aGUgYmFja2dyb3Vu
ZCBwb3NpdGlvbmluZyBhcmVhIGFuZCBzZXQgZGVzdGluYXRpb24gcmVjdCB0byB0aGUgYmFja2dy
b3VuZCBwYWludGluZyBhcmVhLgogICAgIC8vIERlc3RpbmF0aW9uIHJlY3Qgd2lsbCBiZSBhZGp1
c3RlZCBsYXRlciBpZiB0aGUgYmFja2dyb3VuZCBpcyBub24tcmVwZWF0aW5nLgpAQCAtMTIyNCw4
ICsxMjI0LDggQEAgQmFja2dyb3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6
OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KGMKICAgICBib29sIGZpeGVkQXR0YWNo
bWVudCA9IGZpbGxMYXllci5hdHRhY2htZW50KCkgPT0gRmlsbEF0dGFjaG1lbnQ6OkZpeGVkQmFj
a2dyb3VuZDsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IGRvY3VtZW50KCkuZGV2aWNl
U2NhbGVGYWN0b3IoKTsKICAgICBpZiAoIWZpeGVkQXR0YWNobWVudCkgewotICAgICAgICBMYXlv
dXRVbml0IHJpZ2h0ID0gMDsKLSAgICAgICAgTGF5b3V0VW5pdCBib3R0b20gPSAwOworICAgICAg
ICBMYXlvdXRVbml0IHJpZ2h0OworICAgICAgICBMYXlvdXRVbml0IGJvdHRvbTsKICAgICAgICAg
Ly8gU2Nyb2xsIGFuZCBMb2NhbC4KICAgICAgICAgaWYgKGZpbGxMYXllci5vcmlnaW4oKSAhPSBG
aWxsQm94OjpCb3JkZXIpIHsKICAgICAgICAgICAgIGxlZnQgPSBib3JkZXJMZWZ0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3guY3BwCmluZGV4IDA2MDBhODVjYjUxOGVhNjIzNDM3ZDFkMjQ1YTMyNDQ0NDEwOTNiMmQu
LmJmZTk5MzU5ZjNhOTZkYzY5YjRkZWJhMTIxMjZmODU1MDQwZjU2MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
Y3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgc3RhdGljIExheW91dFVuaXQgbWFyZ2luV2lkdGhGb3JD
aGlsZChSZW5kZXJCb3gqIGNoaWxkKQogICAgIC8vIEZpeGVkIG1hcmdpbnMgY2FuIGJlIGFkZGVk
IGluIGFzIGlzLgogICAgIExlbmd0aCBtYXJnaW5MZWZ0ID0gY2hpbGQtPnN0eWxlKCkubWFyZ2lu
TGVmdCgpOwogICAgIExlbmd0aCBtYXJnaW5SaWdodCA9IGNoaWxkLT5zdHlsZSgpLm1hcmdpblJp
Z2h0KCk7Ci0gICAgTGF5b3V0VW5pdCBtYXJnaW4gPSAwOworICAgIExheW91dFVuaXQgbWFyZ2lu
OwogICAgIGlmIChtYXJnaW5MZWZ0LmlzRml4ZWQoKSkKICAgICAgICAgbWFyZ2luICs9IG1hcmdp
bkxlZnQudmFsdWUoKTsKICAgICBpZiAobWFyZ2luUmlnaHQuaXNGaXhlZCgpKQpAQCAtMzg2LDkg
KzM4Niw5IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9u
dGFsQm94KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICBMYXlvdXRVbml0IHlQb3MgPSBib3Jk
ZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsKICAgICBMYXlvdXRVbml0IHhQb3MgPSBib3JkZXJMZWZ0
KCkgKyBwYWRkaW5nTGVmdCgpOwogICAgIGJvb2wgaGVpZ2h0U3BlY2lmaWVkID0gZmFsc2U7Ci0g
ICAgTGF5b3V0VW5pdCBvbGRIZWlnaHQgPSAwOworICAgIExheW91dFVuaXQgb2xkSGVpZ2h0Owog
Ci0gICAgTGF5b3V0VW5pdCByZW1haW5pbmdTcGFjZSA9IDA7CisgICAgTGF5b3V0VW5pdCByZW1h
aW5pbmdTcGFjZTsKIAogICAgIEZsZXhCb3hJdGVyYXRvciBpdGVyYXRvcih0aGlzKTsKICAgICB1
bnNpZ25lZCBpbnQgaGlnaGVzdEZsZXhHcm91cCA9IDA7CkBAIC02MjIsNyArNjIyLDcgQEAgdm9p
ZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEhvcml6b250YWxCb3goYm9vbCBy
ZWxheW91dENoaWxkcmVuKQogICAgIGlmIChyZW1haW5pbmdTcGFjZSA+IDAgJiYgKChzdHlsZSgp
LmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBzdHlsZSgpLmJveFBhY2soKSAhPSBCb3hQYWNr
OjpTdGFydCkKICAgICAgICAgfHwgKCFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAm
JiBzdHlsZSgpLmJveFBhY2soKSAhPSBCb3hQYWNrOjpFbmQpKSkgewogICAgICAgICAvLyBDaGls
ZHJlbiBtdXN0IGJlIHJlcG9zaXRpb25lZC4KLSAgICAgICAgTGF5b3V0VW5pdCBvZmZzZXQgPSAw
OworICAgICAgICBMYXlvdXRVbml0IG9mZnNldDsKICAgICAgICAgaWYgKHN0eWxlKCkuYm94UGFj
aygpID09IEJveFBhY2s6Okp1c3RpZnkpIHsKICAgICAgICAgICAgIC8vIERldGVybWluZSB0aGUg
dG90YWwgbnVtYmVyIG9mIGNoaWxkcmVuLgogICAgICAgICAgICAgaW50IHRvdGFsQ2hpbGRyZW4g
PSAwOwpAQCAtNjc4LDkgKzY3OCw5IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
OjpsYXlvdXRWZXJ0aWNhbEJveChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgTGF5b3V0VW5p
dCB5UG9zID0gYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCk7CiAgICAgTGF5b3V0VW5pdCB0b0Fk
ZCA9IGJvcmRlckJvdHRvbSgpICsgcGFkZGluZ0JvdHRvbSgpICsgaG9yaXpvbnRhbFNjcm9sbGJh
ckhlaWdodCgpOwogICAgIGJvb2wgaGVpZ2h0U3BlY2lmaWVkID0gZmFsc2U7Ci0gICAgTGF5b3V0
VW5pdCBvbGRIZWlnaHQgPSAwOworICAgIExheW91dFVuaXQgb2xkSGVpZ2h0OwogCi0gICAgTGF5
b3V0VW5pdCByZW1haW5pbmdTcGFjZSA9IDA7CisgICAgTGF5b3V0VW5pdCByZW1haW5pbmdTcGFj
ZTsKIAogICAgIEZsZXhCb3hJdGVyYXRvciBpdGVyYXRvcih0aGlzKTsKICAgICB1bnNpZ25lZCBp
bnQgaGlnaGVzdEZsZXhHcm91cCA9IDA7CkBAIC04NzgsNyArODc4LDcgQEAgdm9pZCBSZW5kZXJE
ZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2FsQm94KGJvb2wgcmVsYXlvdXRDaGls
ZHJlbikKIAogICAgIGlmIChzdHlsZSgpLmJveFBhY2soKSAhPSBCb3hQYWNrOjpTdGFydCAmJiBy
ZW1haW5pbmdTcGFjZSA+IDApIHsKICAgICAgICAgLy8gQ2hpbGRyZW4gbXVzdCBiZSByZXBvc2l0
aW9uZWQuCi0gICAgICAgIExheW91dFVuaXQgb2Zmc2V0ID0gMDsKKyAgICAgICAgTGF5b3V0VW5p
dCBvZmZzZXQ7CiAgICAgICAgIGlmIChzdHlsZSgpLmJveFBhY2soKSA9PSBCb3hQYWNrOjpKdXN0
aWZ5KSB7CiAgICAgICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIHRvdGFsIG51bWJlciBvZiBjaGls
ZHJlbi4KICAgICAgICAgICAgIGludCB0b3RhbENoaWxkcmVuID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmluZGV4IGEy
NDJlOGRhNjFlMTdkZWQ4NGJlMzdjN2E4MGM3Y2FjZDQxN2ZlNmYuLjZjNTQ3Y2YwNTgxNzU0MDA0
ZjYwZjBmNDhjYWQ4ZmE0OGU3YTU1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIHZv
aWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2luCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRleHRYID0g
Y29udGVudExlZnQgKyBjb250ZW50V2lkdGgoKSAtIGJ1dHRvbkFuZEljb25XaWR0aCAtIGZvbnQu
d2lkdGgodGV4dFJ1bik7CiAKLSAgICAgICAgTGF5b3V0VW5pdCB0ZXh0WSA9IDA7CisgICAgICAg
IExheW91dFVuaXQgdGV4dFk7CiAgICAgICAgIC8vIFdlIHdhbnQgdG8gbWF0Y2ggdGhlIGJ1dHRv
bidzIGJhc2VsaW5lCiAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgd29yayB3aXRoIHRyYW5z
Zm9ybXMuCiAgICAgICAgIGlmIChSZW5kZXJCdXR0b24qIGJ1dHRvblJlbmRlcmVyID0gZG93bmNh
c3Q8UmVuZGVyQnV0dG9uPihidXR0b24tPnJlbmRlcmVyKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKaW5kZXggZWE4MDVhMGE4YmE4
YTljM2NlNTUxMGUyMjE3M2U3MDkyYmNhNDEzNy4uMGU2MDU5NGRhMDIwYzY1YzNiZDdhYzgwYjc1
Y2NiY2NkMDQ3ZWRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZyYWdtZW50ZWRGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnJhZ21lbnRlZEZsb3cuY3BwCkBAIC0xMTEsOCArMTExLDggQEAgdm9pZCBSZW5kZXJGcmFnbWVu
dGVkRmxvdzo6dmFsaWRhdGVGcmFnbWVudHMoKQogICAgICAgICBtX2ZyYWdtZW50c0hhdmVVbmlm
b3JtTG9naWNhbEhlaWdodCA9IHRydWU7CiAKICAgICAgICAgaWYgKGhhc0ZyYWdtZW50cygpKSB7
Ci0gICAgICAgICAgICBMYXlvdXRVbml0IHByZXZpb3VzRnJhZ21lbnRMb2dpY2FsV2lkdGggPSAw
OwotICAgICAgICAgICAgTGF5b3V0VW5pdCBwcmV2aW91c0ZyYWdtZW50TG9naWNhbEhlaWdodCA9
IDA7CisgICAgICAgICAgICBMYXlvdXRVbml0IHByZXZpb3VzRnJhZ21lbnRMb2dpY2FsV2lkdGg7
CisgICAgICAgICAgICBMYXlvdXRVbml0IHByZXZpb3VzRnJhZ21lbnRMb2dpY2FsSGVpZ2h0Owog
ICAgICAgICAgICAgYm9vbCBmaXJzdEZyYWdtZW50VmlzaXRlZCA9IGZhbHNlOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBmb3IgKGF1dG8mIGZyYWdtZW50IDogbV9mcmFnbWVudExpc3QpIHsK
QEAgLTI5Miw3ICsyOTIsNyBAQCBMYXlvdXRQb2ludCBSZW5kZXJGcmFnbWVudGVkRmxvdzo6YWRq
dXN0ZWRQb3NpdGlvblJlbGF0aXZlVG9PZmZzZXRQYXJlbnQoY29uc3QgUgogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBHZXQgdGhlIGxvZ2ljYWwgdG9wIGNvb3Jk
aW5hdGUgb2YgdGhlIGN1cnJlbnQgb2JqZWN0LgotICAgICAgICAgICAgTGF5b3V0VW5pdCB0b3Ag
PSAwOworICAgICAgICAgICAgTGF5b3V0VW5pdCB0b3A7CiAgICAgICAgICAgICBpZiAoaXM8UmVu
ZGVyQmxvY2s+KGJveE1vZGVsT2JqZWN0KSkKICAgICAgICAgICAgICAgICB0b3AgPSBkb3duY2Fz
dDxSZW5kZXJCbG9jaz4oYm94TW9kZWxPYmplY3QpLm9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJz
dFBhZ2UoKTsKICAgICAgICAgICAgIGVsc2UgewpAQCAtNzgwLDcgKzc4MCw3IEBAIHZvaWQgUmVu
ZGVyRnJhZ21lbnRlZEZsb3c6Om1hcmtGcmFnbWVudHNGb3JPdmVyZmxvd0xheW91dElmTmVlZGVk
KCkKIAogdm9pZCBSZW5kZXJGcmFnbWVudGVkRmxvdzo6dXBkYXRlRnJhZ21lbnRzRnJhZ21lbnRl
ZEZsb3dQb3J0aW9uUmVjdCgpCiB7Ci0gICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMDsK
KyAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQ7CiAgICAgLy8gRklYTUU6IE9wdGltaXplIG5v
dCB0byBjbGVhciB0aGUgaW50ZXJ2YWwgYWxsIHRoZSB0aW1lLiBUaGlzIGltcGxpZXMgbWFudWFs
bHkgbWFuYWdpbmcgdGhlIHRyZWUgbm9kZXMgbGlmZWN5Y2xlLgogICAgIG1fZnJhZ21lbnRJbnRl
cnZhbFRyZWUuY2xlYXIoKTsKICAgICBmb3IgKGF1dG8mIGZyYWdtZW50IDogbV9mcmFnbWVudExp
c3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCmluZGV4
IDYyY2FmYzdiMDlhZGFkM2JiZTQyMzZkMzE0MmUzOGRmNWVhOGZiOTAuLjJkNDEzYjYxMDRkMzk1
OTNkN2ZlMDhiMDZlODdmYWIxYTY3ZjM5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZyYW1lU2V0LmNwcApAQCAtMTM5LDkgKzEzOSw5IEBAIHZvaWQgUmVuZGVyRnJhbWVT
ZXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQpCiAgICAgc2l6ZV90IGNvbHMgPSBtX2NvbHMubV9zaXplcy5zaXplKCk7CiAgICAgTGF5
b3V0VW5pdCBib3JkZXJUaGlja25lc3MgPSBmcmFtZVNldEVsZW1lbnQoKS5ib3JkZXIoKTsKICAg
ICAKLSAgICBMYXlvdXRVbml0IHlQb3MgPSAwOworICAgIExheW91dFVuaXQgeVBvczsKICAgICBm
b3IgKHNpemVfdCByID0gMDsgciA8IHJvd3M7IHIrKykgewotICAgICAgICBMYXlvdXRVbml0IHhQ
b3MgPSAwOworICAgICAgICBMYXlvdXRVbml0IHhQb3M7CiAgICAgICAgIGZvciAoc2l6ZV90IGMg
PSAwOyBjIDwgY29sczsgYysrKSB7CiAgICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJFbGVtZW50
PigqY2hpbGQpLnBhaW50KHBhaW50SW5mbywgYWRqdXN0ZWRQYWludE9mZnNldCk7CiAgICAgICAg
ICAgICB4UG9zICs9IG1fY29scy5tX3NpemVzW2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0SXRlbS5jcHAKaW5kZXggZTJiMGY5M2IwYzU2ZGNkNzc3NTIyOTAzMmJjYjQw
MDBlMGI4ZTU4My4uNjUzYzFhNjRiNjlkZTNlOTA2NTQ5Njg3YjY3ZTM3ZDRkZDJjMjIwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCkBAIC0yNzAsOCAr
MjcwLDggQEAgdm9pZCBSZW5kZXJMaXN0SXRlbTo6cG9zaXRpb25MaXN0TWFya2VyKCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgTGF5b3V0VW5pdCBtYXJrZXJPbGRMb2dpY2FsTGVmdCA9IG1fbWFy
a2VyLT5sb2dpY2FsTGVmdCgpOwotICAgIExheW91dFVuaXQgYmxvY2tPZmZzZXQgPSAwOwotICAg
IExheW91dFVuaXQgbGluZU9mZnNldCA9IDA7CisgICAgTGF5b3V0VW5pdCBibG9ja09mZnNldDsK
KyAgICBMYXlvdXRVbml0IGxpbmVPZmZzZXQ7CiAgICAgZm9yIChhdXRvKiBhbmNlc3RvciA9IG1f
bWFya2VyLT5wYXJlbnRCb3goKTsgYW5jZXN0b3IgJiYgYW5jZXN0b3IgIT0gdGhpczsgYW5jZXN0
b3IgPSBhbmNlc3Rvci0+cGFyZW50Qm94KCkpIHsKICAgICAgICAgYmxvY2tPZmZzZXQgKz0gYW5j
ZXN0b3ItPmxvZ2ljYWxUb3AoKTsKICAgICAgICAgbGluZU9mZnNldCArPSBhbmNlc3Rvci0+bG9n
aWNhbExlZnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmNwcAppbmRleCBiNDIzNzk2YzBkODljZTk0YTE1ZWVhNGNkYWEwZjZjYTVmNjg5MWQ5Li43MWRh
NmQ3MGQ5ZTBiNTAzOWM0MzU4NmFhNDZmZTY3OGMyM2EzZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC0xNTU0LDcgKzE1NTQsNyBAQCB2
b2lkIFJlbmRlckxpc3RNYXJrZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKIAog
ICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250ID0gc3R5bGUoKS5mb250Q2FzY2FkZSgpOwogCi0g
ICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGggPSAwOworICAgIExheW91dFVuaXQgbG9naWNhbFdp
ZHRoOwogICAgIExpc3RTdHlsZVR5cGUgdHlwZSA9IHN0eWxlKCkubGlzdFN0eWxlVHlwZSgpOwog
ICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6Tm9uZToKQEAgLTE2
NjksOCArMTY2OSw4IEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6dXBkYXRlTWFyZ2lucygpCiB7
CiAgICAgY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gc3R5bGUoKS5mb250TWV0cmlj
cygpOwogCi0gICAgTGF5b3V0VW5pdCBtYXJnaW5TdGFydCA9IDA7Ci0gICAgTGF5b3V0VW5pdCBt
YXJnaW5FbmQgPSAwOworICAgIExheW91dFVuaXQgbWFyZ2luU3RhcnQ7CisgICAgTGF5b3V0VW5p
dCBtYXJnaW5FbmQ7CiAKICAgICBpZiAoaXNJbnNpZGUoKSkgewogICAgICAgICBpZiAoaXNJbWFn
ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNl
dC5jcHAKaW5kZXggNzUxZTgxMDYxNWEwZTRmZDU5OTJkNDc3ZTY0YzIzMDhhMzE1OTE4MS4uYmUx
MWJlMTlmNjhlMGY5Zjk4M2Q0ZWQzODYwYzAwMTZjODdkYzZiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCkBAIC03MDMsNyArNzAz
LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJNdWx0aUNvbHVtblNldDo6aW5pdGlhbEJsb2NrT2Zmc2V0
Rm9yUGFpbnRpbmcoKSBjb25zdAogICAgIGJvb2wgcHJvZ3Jlc3Npb25SZXZlcnNlZCA9IG11bHRp
Q29sdW1uRmxvdygpLT5wcm9ncmVzc2lvbklzUmV2ZXJzZWQoKTsKICAgICBib29sIHByb2dyZXNz
aW9uSXNJbmxpbmUgPSBtdWx0aUNvbHVtbkZsb3coKS0+cHJvZ3Jlc3Npb25Jc0lubGluZSgpOwog
ICAgIAotICAgIExheW91dFVuaXQgcmVzdWx0ID0gMDsKKyAgICBMYXlvdXRVbml0IHJlc3VsdDsK
ICAgICBpZiAoIXByb2dyZXNzaW9uSXNJbmxpbmUgJiYgcHJvZ3Jlc3Npb25SZXZlcnNlZCkgewog
ICAgICAgICBMYXlvdXRSZWN0IGNvbFJlY3QgPSBjb2x1bW5SZWN0QXQoMCk7CiAgICAgICAgIHJl
c3VsdCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjb2xSZWN0LnkoKSA6IGNvbFJlY3Qu
eCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCmluZGV4IDE2
MWU5NGE1MThmODk5ZjRjNzIwMjEwZjEyN2YzNmU1ODBhMDM5NjguLmIxMjc2NjA4ZjMxMzA1ZTA4
NzBiM2E0YjdhMjQ1NzM0NzlkZDZmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSdWJ5UnVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUnVieVJ1bi5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIFJlbmRlclJ1YnlSdW46Omxh
eW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlSGVpZ2h0KQog
CiAgICAgLy8gUGxhY2UgdGhlIFJlbmRlclJ1YnlUZXh0IHN1Y2ggdGhhdCBpdHMgYm90dG9tIGlz
IGZsdXNoIHdpdGggdGhlIGxpbmVUb3Agb2YgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIFJlbmRlclJ1
YnlCYXNlLgogICAgIExheW91dFVuaXQgbGFzdExpbmVSdWJ5VGV4dEJvdHRvbSA9IHJ0LT5sb2dp
Y2FsSGVpZ2h0KCk7Ci0gICAgTGF5b3V0VW5pdCBmaXJzdExpbmVSdWJ5VGV4dFRvcCA9IDA7Cisg
ICAgTGF5b3V0VW5pdCBmaXJzdExpbmVSdWJ5VGV4dFRvcDsKICAgICBSb290SW5saW5lQm94KiBy
b290Qm94ID0gcnQtPmxhc3RSb290Qm94KCk7CiAgICAgaWYgKHJvb3RCb3gpIHsKICAgICAgICAg
Ly8gSW4gb3JkZXIgdG8gYWxpZ24sIHdlIGhhdmUgdG8gaWdub3JlIG5lZ2F0aXZlIGxlYWRpbmcu
CkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBSZW5kZXJSdWJ5UnVuOjpsYXlvdXRCbG9jayhib29s
IHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUhlaWdodCkKICAgICAgICAgZmxvYXQg
ZGlzdGFuY2VCZXR3ZWVuQmFzZSA9IG1heChmb250LmxldHRlclNwYWNpbmcoKSwgMi4wZiAqIHJ0
LT5zdHlsZSgpLmZvbnRDYXNjYWRlKCkuZm9udE1ldHJpY3MoKS5oZWlnaHQoKSk7CiAgICAgICAg
IHNldFdpZHRoKHdpZHRoKCkgKyBkaXN0YW5jZUJldHdlZW5CYXNlIC0gZm9udC5sZXR0ZXJTcGFj
aW5nKCkpOwogICAgICAgICBpZiAoUmVuZGVyUnVieUJhc2UqIHJiID0gcnVieUJhc2UoKSkgewot
ICAgICAgICAgICAgTGF5b3V0VW5pdCBmaXJzdExpbmVUb3AgPSAwOworICAgICAgICAgICAgTGF5
b3V0VW5pdCBmaXJzdExpbmVUb3A7CiAgICAgICAgICAgICBMYXlvdXRVbml0IGxhc3RMaW5lQm90
dG9tID0gbG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgUm9vdElubGluZUJveCogcm9vdEJv
eCA9IHJiLT5maXJzdFJvb3RCb3goKTsKICAgICAgICAgICAgIGlmIChyb290Qm94KQpAQCAtMTg0
LDcgKzE4NCw3IEBAIHZvaWQgUmVuZGVyUnVieVJ1bjo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91
dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VIZWlnaHQpCiAgICAgICAgICAgICBydC0+c2V0WShm
aXJzdExpbmVUb3AgKyAoZXh0ZW50IC0gcnQtPmhlaWdodCgpKSAvIDIpOwogICAgICAgICB9CiAg
ICAgfSBlbHNlIGlmIChzdHlsZSgpLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA9PSAoc3R5
bGUoKS5ydWJ5UG9zaXRpb24oKSA9PSBSdWJ5UG9zaXRpb246OkFmdGVyKSkgewotICAgICAgICBM
YXlvdXRVbml0IGZpcnN0TGluZVRvcCA9IDA7CisgICAgICAgIExheW91dFVuaXQgZmlyc3RMaW5l
VG9wOwogICAgICAgICBpZiAoUmVuZGVyUnVieUJhc2UqIHJiID0gcnVieUJhc2UoKSkgewogICAg
ICAgICAgICAgUm9vdElubGluZUJveCogcm9vdEJveCA9IHJiLT5maXJzdFJvb3RCb3goKTsKICAg
ICAgICAgICAgIGlmIChyb290Qm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZS5jcHAKaW5kZXggNGUzODY2ZDU5ZjIyMjUxNzhmOWNhZWVmNDVhYjk3Yjk0OTQxMDQzNi4uYTI0
MDQwM2MzYmI3MGU3OThjMGU0YTY4MDkzMTFhOWY5OTBkMzE2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBAIC0zMDAsNyArMzAwLDcgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJUYWJsZTo6Y29udmVydFN0eWxlTG9naWNhbFdpZHRoVG9Db21wdXRlZFdpZHRoKGNvbnN0
IExlbmd0aCYgc3QKICAgICAgICAgcmV0dXJuIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhV
c2luZyhzdHlsZUxvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlV2lkdGgsIGJvcmRlcnNQYWRkaW5nQW5k
U3BhY2luZ0luUm93RGlyZWN0aW9uKCkpOwogCiAgICAgLy8gSFRNTCB0YWJsZXMnIHdpZHRoIHN0
eWxlcyBhbHJlYWR5IGluY2x1ZGUgYm9yZGVycyBhbmQgcGFkZGluZ3MsIGJ1dCBDU1MgdGFibGVz
JyB3aWR0aCBzdHlsZXMgZG8gbm90LgotICAgIExheW91dFVuaXQgYm9yZGVycyA9IDA7CisgICAg
TGF5b3V0VW5pdCBib3JkZXJzOwogICAgIGJvb2wgaXNDU1NUYWJsZSA9ICFpczxIVE1MVGFibGVF
bGVtZW50PihlbGVtZW50KCkpOwogICAgIGlmIChpc0NTU1RhYmxlICYmIHN0eWxlTG9naWNhbFdp
ZHRoLmlzU3BlY2lmaWVkKCkgJiYgc3R5bGVMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmIHN0
eWxlKCkuYm94U2l6aW5nKCkgPT0gQm94U2l6aW5nOjpDb250ZW50Qm94KQogICAgICAgICBib3Jk
ZXJzID0gYm9yZGVyU3RhcnQoKSArIGJvcmRlckVuZCgpICsgKGNvbGxhcHNlQm9yZGVycygpID8g
TGF5b3V0VW5pdCgpIDogcGFkZGluZ1N0YXJ0KCkgKyBwYWRkaW5nRW5kKCkpOwpAQCAtNDAwLDcg
KzQwMCw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OmxheW91dCgpCiAgICAgLy8gdG8gY2FsbCB0aGlz
IGJlZm9yZSB3ZSBjYWxsIGJvcmRlclN0YXJ0L2JvcmRlckVuZCB0byBhdm9pZCBnZXR0aW5nIGEg
c3RhbGUgdmFsdWUuCiAgICAgcmVjYWxjQm9yZGVyc0luUm93RGlyZWN0aW9uKCk7CiAgICAgYm9v
bCBzZWN0aW9uTW92ZWQgPSBmYWxzZTsKLSAgICBMYXlvdXRVbml0IG1vdmVkU2VjdGlvbkxvZ2lj
YWxUb3AgPSAwOworICAgIExheW91dFVuaXQgbW92ZWRTZWN0aW9uTG9naWNhbFRvcDsKIAogICAg
IExheW91dFJlcGFpbnRlciByZXBhaW50ZXIoKnRoaXMsIGNoZWNrRm9yUmVwYWludER1cmluZ0xh
eW91dCgpKTsKICAgICB7CkBAIC00MjIsOCArNDIyLDggQEAgdm9pZCBSZW5kZXJUYWJsZTo6bGF5
b3V0KCkKICAgICAgICAgLy8gICAgIGlmICggb2xkV2lkdGggIT0gd2lkdGgoKSB8fCBjb2x1bW5z
LnNpemUoKSArIDEgIT0gY29sdW1uUG9zLnNpemUoKSApCiAgICAgICAgIG1fdGFibGVMYXlvdXQt
PmxheW91dCgpOwogCi0gICAgICAgIExheW91dFVuaXQgdG90YWxTZWN0aW9uTG9naWNhbEhlaWdo
dCA9IDA7Ci0gICAgICAgIExheW91dFVuaXQgb2xkVGFibGVMb2dpY2FsVG9wID0gMDsKKyAgICAg
ICAgTGF5b3V0VW5pdCB0b3RhbFNlY3Rpb25Mb2dpY2FsSGVpZ2h0OworICAgICAgICBMYXlvdXRV
bml0IG9sZFRhYmxlTG9naWNhbFRvcDsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1fY2FwdGlvbnMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgICAgIGlmIChtX2NhcHRpb25zW2ld
LT5zdHlsZSgpLmNhcHRpb25TaWRlKCkgPT0gQ2FwdGlvblNpZGU6OkJvdHRvbSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKQEAgLTQ2NSw3ICs0NjUsNyBAQCB2b2lkIFJlbmRlclRhYmxlOjps
YXlvdXQoKQogICAgICAgICBpZiAoIWlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICAg
ICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogCi0gICAgICAgIExheW91dFVuaXQgY29tcHV0ZWRM
b2dpY2FsSGVpZ2h0ID0gMDsKKyAgICAgICAgTGF5b3V0VW5pdCBjb21wdXRlZExvZ2ljYWxIZWln
aHQ7CiAgICAgCiAgICAgICAgIExlbmd0aCBsb2dpY2FsSGVpZ2h0TGVuZ3RoID0gc3R5bGUoKS5s
b2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIGlmIChsb2dpY2FsSGVpZ2h0TGVuZ3RoLmlzSW50cmlu
c2ljKCkgfHwgKGxvZ2ljYWxIZWlnaHRMZW5ndGguaXNTcGVjaWZpZWQoKSAmJiBsb2dpY2FsSGVp
Z2h0TGVuZ3RoLmlzUG9zaXRpdmUoKSkpCkBAIC05MzQsNyArOTM0LDcgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJUYWJsZTo6b2Zmc2V0V2lkdGhGb3JDb2x1bW4oY29uc3QgUmVuZGVyVGFibGVDb2wmIGNv
bHVtbikgY29uc3QKICAgICAgICAgY3VycmVudENvbHVtbiA9IGN1cnJlbnRDb2x1bW4tPm5leHRD
b2x1bW4oKTsgLy8gRmlyc3QgY29sdW1uIGluIGNvbHVtbi1ncm91cAogICAgIHVuc2lnbmVkIG51
bWJlck9mRWZmZWN0aXZlQ29sdW1ucyA9IG51bUVmZkNvbHMoKTsKICAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTihtX2NvbHVtblBvcy5zaXplKCkgPj0gbnVtYmVyT2ZFZmZlY3Rp
dmVDb2x1bW5zICsgMSk7Ci0gICAgTGF5b3V0VW5pdCB3aWR0aCA9IDA7CisgICAgTGF5b3V0VW5p
dCB3aWR0aDsKICAgICBMYXlvdXRVbml0IHNwYWNpbmcgPSBtX2hTcGFjaW5nOwogICAgIHdoaWxl
IChjdXJyZW50Q29sdW1uKSB7CiAgICAgICAgIHVuc2lnbmVkIGNvbHVtbkluZGV4ID0gZWZmZWN0
aXZlSW5kZXhPZkNvbHVtbigqY3VycmVudENvbHVtbik7CkBAIC05NjQsNyArOTY0LDcgQEAgTGF5
b3V0VW5pdCBSZW5kZXJUYWJsZTo6b2Zmc2V0SGVpZ2h0Rm9yQ29sdW1uKGNvbnN0IFJlbmRlclRh
YmxlQ29sJiBjb2x1bW4pIGNvbnMKICAgICAgICAgQVNTRVJUKCFuZWVkc0xheW91dCgpKTsKICAg
ICAgICAgcmV0dXJuIG1fY29sdW1uT2Zmc2V0SGVpZ2h0OwogICAgIH0KLSAgICBMYXlvdXRVbml0
IGhlaWdodCA9IDA7CisgICAgTGF5b3V0VW5pdCBoZWlnaHQ7CiAgICAgZm9yIChSZW5kZXJUYWJs
ZVNlY3Rpb24qIHNlY3Rpb24gPSB0b3BTZWN0aW9uKCk7IHNlY3Rpb247IHNlY3Rpb24gPSBzZWN0
aW9uQmVsb3coc2VjdGlvbikpCiAgICAgICAgIGhlaWdodCArPSBzZWN0aW9uLT5vZmZzZXRIZWln
aHQoKTsKICAgICBtX2NvbHVtbk9mZnNldEhlaWdodCA9IGhlaWdodDsKQEAgLTEyMDgsNyArMTIw
OCw3IEBAIExheW91dFVuaXQgUmVuZGVyVGFibGU6Om91dGVyQm9yZGVyQmVmb3JlKCkgY29uc3QK
IHsKICAgICBpZiAoIWNvbGxhcHNlQm9yZGVycygpKQogICAgICAgICByZXR1cm4gMDsKLSAgICBM
YXlvdXRVbml0IGJvcmRlcldpZHRoID0gMDsKKyAgICBMYXlvdXRVbml0IGJvcmRlcldpZHRoOwog
ICAgIGlmIChSZW5kZXJUYWJsZVNlY3Rpb24qIHRvcFNlY3Rpb24gPSB0aGlzLT50b3BTZWN0aW9u
KCkpIHsKICAgICAgICAgYm9yZGVyV2lkdGggPSB0b3BTZWN0aW9uLT5vdXRlckJvcmRlckJlZm9y
ZSgpOwogICAgICAgICBpZiAoYm9yZGVyV2lkdGggPCAwKQpAQCAtMTIyOCw3ICsxMjI4LDcgQEAg
TGF5b3V0VW5pdCBSZW5kZXJUYWJsZTo6b3V0ZXJCb3JkZXJBZnRlcigpIGNvbnN0CiB7CiAgICAg
aWYgKCFjb2xsYXBzZUJvcmRlcnMoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgTGF5b3V0VW5p
dCBib3JkZXJXaWR0aCA9IDA7CisgICAgTGF5b3V0VW5pdCBib3JkZXJXaWR0aDsKIAogICAgIGlm
IChSZW5kZXJUYWJsZVNlY3Rpb24qIHNlY3Rpb24gPSBib3R0b21TZWN0aW9uKCkpIHsKICAgICAg
ICAgYm9yZGVyV2lkdGggPSBzZWN0aW9uLT5vdXRlckJvcmRlckFmdGVyKCk7CkBAIC0xMjUxLDcg
KzEyNTEsNyBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlOjpvdXRlckJvcmRlclN0YXJ0KCkgY29u
c3QKICAgICBpZiAoIWNvbGxhcHNlQm9yZGVycygpKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IExheW91dFVuaXQgYm9yZGVyV2lkdGggPSAwOworICAgIExheW91dFVuaXQgYm9yZGVyV2lkdGg7
CiAKICAgICBjb25zdCBCb3JkZXJWYWx1ZSYgdGIgPSBzdHlsZSgpLmJvcmRlclN0YXJ0KCk7CiAg
ICAgaWYgKHRiLnN0eWxlKCkgPT0gQm9yZGVyU3R5bGU6OkhpZGRlbikKQEAgLTEyNzgsNyArMTI3
OCw3IEBAIExheW91dFVuaXQgUmVuZGVyVGFibGU6Om91dGVyQm9yZGVyRW5kKCkgY29uc3QKICAg
ICBpZiAoIWNvbGxhcHNlQm9yZGVycygpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIExheW91
dFVuaXQgYm9yZGVyV2lkdGggPSAwOworICAgIExheW91dFVuaXQgYm9yZGVyV2lkdGg7CiAKICAg
ICBjb25zdCBCb3JkZXJWYWx1ZSYgdGIgPSBzdHlsZSgpLmJvcmRlckVuZCgpOwogICAgIGlmICh0
Yi5zdHlsZSgpID09IEJvcmRlclN0eWxlOjpIaWRkZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IDc1NDE5Nzg3YzdiNmY3YTkxZjM2MWM4Njg5
M2M4MWY5YmFlYTcwYjUuLjU4YjIyNzBmY2M1NDFjMzczMDI0NzcwN2IxODVhZTQ3ZWFlOTFjNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC0x
NTQsNyArMTU0LDcgQEAgTGVuZ3RoIFJlbmRlclRhYmxlQ2VsbDo6bG9naWNhbFdpZHRoRnJvbUNv
bHVtbnMoUmVuZGVyVGFibGVDb2wqIGZpcnN0Q29sRm9yVGhpc0MKICAgICBSZW5kZXJUYWJsZUNv
bCogdGFibGVDb2wgPSBmaXJzdENvbEZvclRoaXNDZWxsOwogCiAgICAgdW5zaWduZWQgY29sU3Bh
bkNvdW50ID0gY29sU3BhbigpOwotICAgIExheW91dFVuaXQgY29sV2lkdGhTdW0gPSAwOworICAg
IExheW91dFVuaXQgY29sV2lkdGhTdW07CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8PSBj
b2xTcGFuQ291bnQ7IGkrKykgewogICAgICAgICBMZW5ndGggY29sV2lkdGggPSB0YWJsZUNvbC0+
c3R5bGUoKS5sb2dpY2FsV2lkdGgoKTsKIApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVuZGVy
VGFibGVDZWxsOjpjb21wdXRlSW50cmluc2ljUGFkZGluZyhMYXlvdXRVbml0IHJvd0hlaWdodCkK
ICAgICBMYXlvdXRVbml0IG9sZEludHJpbnNpY1BhZGRpbmdBZnRlciA9IGludHJpbnNpY1BhZGRp
bmdBZnRlcigpOwogICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodFdpdGhvdXRJbnRyaW5zaWNQ
YWRkaW5nID0gbG9naWNhbEhlaWdodCgpIC0gb2xkSW50cmluc2ljUGFkZGluZ0JlZm9yZSAtIG9s
ZEludHJpbnNpY1BhZGRpbmdBZnRlcjsKIAotICAgIExheW91dFVuaXQgaW50cmluc2ljUGFkZGlu
Z0JlZm9yZSA9IDA7CisgICAgTGF5b3V0VW5pdCBpbnRyaW5zaWNQYWRkaW5nQmVmb3JlOwogICAg
IHN3aXRjaCAoc3R5bGUoKS52ZXJ0aWNhbEFsaWduKCkpIHsKICAgICBjYXNlIFZlcnRpY2FsQWxp
Z246OlN1YjoKICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlN1cGVyOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCA2MDRmYjc0OTFiNzY0
MjI2OTIxMWNlOGZiZTEzNWFkMjg4ZjNlMDM0Li4wOWJhZGY5Y2VhODJlNGZlZjUwMzFmMWZjMWMx
MTZlY2QzYTE0MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVTZWN0aW9uLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIExheW91dFVuaXQgUmVuZGVyVGFibGVT
ZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlaWdodCgpCiAgICAgUmVuZGVyVGFibGVDZWxsKiBjZWxs
OwogCiAgICAgLy8gV2UgaWdub3JlIHRoZSBib3JkZXItc3BhY2luZyBvbiBhbnkgbm9uLXRvcCBz
ZWN0aW9uIGFzIGl0IGlzIGFscmVhZHkgaW5jbHVkZWQgaW4gdGhlIHByZXZpb3VzIHNlY3Rpb24n
cyBsYXN0IHJvdyBwb3NpdGlvbi4KLSAgICBMYXlvdXRVbml0IHNwYWNpbmcgPSAwOworICAgIExh
eW91dFVuaXQgc3BhY2luZzsKICAgICBpZiAodGhpcyA9PSB0YWJsZSgpLT50b3BTZWN0aW9uKCkp
CiAgICAgICAgIHNwYWNpbmcgPSB0YWJsZSgpLT52Qm9yZGVyU3BhY2luZygpOwogCkBAIC0yNDQs
NyArMjQ0LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJUYWJsZVNlY3Rpb246OmNhbGNSb3dMb2dpY2Fs
SGVpZ2h0KCkKIAogICAgIGZvciAodW5zaWduZWQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykg
ewogICAgICAgICBtX2dyaWRbcl0uYmFzZWxpbmUgPSAwOwotICAgICAgICBMYXlvdXRVbml0IGJh
c2VsaW5lRGVzY2VudCA9IDA7CisgICAgICAgIExheW91dFVuaXQgYmFzZWxpbmVEZXNjZW50Owog
CiAgICAgICAgIC8vIE91ciBiYXNlIHNpemUgaXMgdGhlIGJpZ2dlc3QgbG9naWNhbCBoZWlnaHQg
ZnJvbSBvdXIgY2VsbHMnIHN0eWxlcyAoZXhjbHVkaW5nIHJvdyBzcGFubmluZyBjZWxscykuCiAg
ICAgICAgIG1fcm93UG9zW3IgKyAxXSA9IHN0ZDo6bWF4KG1fcm93UG9zW3JdICsgcmVzb2x2ZUxv
Z2ljYWxIZWlnaHRGb3JSb3cobV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQpLCBMYXlvdXRVbml0Ojpm
cm9tUGl4ZWwoMCkpOwpAQCAtMzA0LDcgKzMwNCw3IEBAIExheW91dFVuaXQgUmVuZGVyVGFibGVT
ZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlaWdodCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBUaGUgZGVzY2VudCBvZiBhIGNlbGwgdGhhdCBzcGFucyBtdWx0aXBsZSByb3dzIGRvZXMgbm90
IGFmZmVjdCB0aGUgaGVpZ2h0IG9mIHRoZSBmaXJzdCByb3cgaXQgc3BhbnMsIHNvIGRvbid0IGxl
dCBpdAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVjb21lIHRoZSBiYXNlbGluZSBkZXNj
ZW50IGFwcGxpZWQgdG8gdGhlIHJlc3Qgb2YgdGhlIHJvdy4gQWxzbyB3ZSBkb24ndCBhY2NvdW50
IGZvciB0aGUgYmFzZWxpbmUgZGVzY2VudCBvZgogICAgICAgICAgICAgICAgICAgICAgICAgLy8g
bm9uLXNwYW5uaW5nIGNlbGxzIHdoZW4gY29tcHV0aW5nIGEgc3Bhbm5pbmcgY2VsbCdzIGV4dGVu
dC4KLSAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFVuaXQgY2VsbFN0YXJ0Um93QmFzZWxp
bmVEZXNjZW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFVuaXQgY2VsbFN0
YXJ0Um93QmFzZWxpbmVEZXNjZW50OwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGwt
PnJvd1NwYW4oKSA9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmVE
ZXNjZW50ID0gc3RkOjptYXgoYmFzZWxpbmVEZXNjZW50LCBjZWxsTG9naWNhbEhlaWdodCAtIGJh
c2VsaW5lUG9zaXRpb24pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxTdGFydFJv
d0Jhc2VsaW5lRGVzY2VudCA9IGJhc2VsaW5lRGVzY2VudDsKQEAgLTM4Myw3ICszODMsNyBAQCB2
b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6ZGlzdHJpYnV0ZUV4dHJhTG9naWNhbEhlaWdodFRvUGVy
Y2VudFJvd3MoTGF5b3V0VW5pdCYgZQogCiAgICAgdW5zaWduZWQgdG90YWxSb3dzID0gbV9ncmlk
LnNpemUoKTsKICAgICBMYXlvdXRVbml0IHRvdGFsSGVpZ2h0ID0gbV9yb3dQb3NbdG90YWxSb3dz
XSArIGV4dHJhTG9naWNhbEhlaWdodDsKLSAgICBMYXlvdXRVbml0IHRvdGFsTG9naWNhbEhlaWdo
dEFkZGVkID0gMDsKKyAgICBMYXlvdXRVbml0IHRvdGFsTG9naWNhbEhlaWdodEFkZGVkOwogICAg
IHRvdGFsUGVyY2VudCA9IHN0ZDo6bWluKHRvdGFsUGVyY2VudCwgMTAwKTsKICAgICBMYXlvdXRV
bml0IHJvd0hlaWdodCA9IG1fcm93UG9zWzFdIC0gbV9yb3dQb3NbMF07CiAgICAgZm9yICh1bnNp
Z25lZCByID0gMDsgciA8IHRvdGFsUm93czsgKytyKSB7CkBAIC00MDgsNyArNDA4LDcgQEAgdm9p
ZCBSZW5kZXJUYWJsZVNlY3Rpb246OmRpc3RyaWJ1dGVFeHRyYUxvZ2ljYWxIZWlnaHRUb0F1dG9S
b3dzKExheW91dFVuaXQmIGV4dHIKICAgICBpZiAoIWF1dG9Sb3dzQ291bnQpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIExheW91dFVuaXQgdG90YWxMb2dpY2FsSGVpZ2h0QWRkZWQgPSAwOworICAg
IExheW91dFVuaXQgdG90YWxMb2dpY2FsSGVpZ2h0QWRkZWQ7CiAgICAgZm9yICh1bnNpZ25lZCBy
ID0gMDsgciA8IG1fZ3JpZC5zaXplKCk7ICsrcikgewogICAgICAgICBpZiAoYXV0b1Jvd3NDb3Vu
dCA+IDAgJiYgbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQuaXNBdXRvKCkpIHsKICAgICAgICAgICAg
IC8vIFJlY29tcHV0aW5nIHxleHRyYUxvZ2ljYWxIZWlnaHRGb3JSb3d8IGd1YXJhbnRlZXMgdGhh
dCB3ZSBwcm9wZXJseSBkaXRyaWJ1dGUgcm91bmQgfGV4dHJhTG9naWNhbEhlaWdodHwuCkBAIC00
MzAsNyArNDMwLDcgQEAgdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OmRpc3RyaWJ1dGVSZW1haW5p
bmdFeHRyYUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCYgZXh0cmEKIAogICAgIC8vIEZJWE1FOiBt
X3Jvd1Bvc1t0b3RhbFJvd3NdIC0gbV9yb3dQb3NbMF0gaXMgdGhlIHRvdGFsIHJvd3MnIHNpemUu
CiAgICAgTGF5b3V0VW5pdCB0b3RhbFJvd1NpemUgPSBtX3Jvd1Bvc1t0b3RhbFJvd3NdOwotICAg
IExheW91dFVuaXQgdG90YWxMb2dpY2FsSGVpZ2h0QWRkZWQgPSAwOworICAgIExheW91dFVuaXQg
dG90YWxMb2dpY2FsSGVpZ2h0QWRkZWQ7CiAgICAgTGF5b3V0VW5pdCBwcmV2aW91c1Jvd1Bvc2l0
aW9uID0gbV9yb3dQb3NbMF07CiAgICAgZm9yICh1bnNpZ25lZCByID0gMDsgciA8IHRvdGFsUm93
czsgcisrKSB7CiAgICAgICAgIC8vIHdlaWdodCB3aXRoIHRoZSBvcmlnaW5hbCBoZWlnaHQKQEAg
LTU2OCw3ICs1NjgsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0Um93cygpCiAg
ICAgICAgICAgICByb3dSZW5kZXJlci0+YWRkVmlzdWFsRWZmZWN0T3ZlcmZsb3coKTsKICAgICAg
ICAgfQogCi0gICAgICAgIExheW91dFVuaXQgcm93SGVpZ2h0SW5jcmVhc2VGb3JQYWdpbmF0aW9u
ID0gMDsKKyAgICAgICAgTGF5b3V0VW5pdCByb3dIZWlnaHRJbmNyZWFzZUZvclBhZ2luYXRpb247
CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBjID0gMDsgYyA8IG5FZmZDb2xzOyBjKyspIHsKICAg
ICAgICAgICAgIENlbGxTdHJ1Y3QmIGNzID0gY2VsbEF0KHIsIGMpOwpAQCAtNjgzLDcgKzY4Myw3
IEBAIExheW91dFVuaXQgUmVuZGVyVGFibGVTZWN0aW9uOjpjYWxjT3V0ZXJCb3JkZXJCZWZvcmUo
KSBjb25zdAogICAgIGlmICghbV9ncmlkLnNpemUoKSB8fCAhdG90YWxDb2xzKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIExheW91dFVuaXQgYm9yZGVyV2lkdGggPSAwOworICAgIExheW91dFVu
aXQgYm9yZGVyV2lkdGg7CiAKICAgICBjb25zdCBCb3JkZXJWYWx1ZSYgc2IgPSBzdHlsZSgpLmJv
cmRlckJlZm9yZSgpOwogICAgIGlmIChzYi5zdHlsZSgpID09IEJvcmRlclN0eWxlOjpIaWRkZW4p
CkBAIC03MzMsNyArNzMzLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJUYWJsZVNlY3Rpb246OmNhbGNP
dXRlckJvcmRlckFmdGVyKCkgY29uc3QKICAgICBpZiAoIW1fZ3JpZC5zaXplKCkgfHwgIXRvdGFs
Q29scykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBMYXlvdXRVbml0IGJvcmRlcldpZHRoID0g
MDsKKyAgICBMYXlvdXRVbml0IGJvcmRlcldpZHRoOwogCiAgICAgY29uc3QgQm9yZGVyVmFsdWUm
IHNiID0gc3R5bGUoKS5ib3JkZXJBZnRlcigpOwogICAgIGlmIChzYi5zdHlsZSgpID09IEJvcmRl
clN0eWxlOjpIaWRkZW4pCkBAIC03ODMsNyArNzgzLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJUYWJs
ZVNlY3Rpb246OmNhbGNPdXRlckJvcmRlclN0YXJ0KCkgY29uc3QKICAgICBpZiAoIW1fZ3JpZC5z
aXplKCkgfHwgIXRvdGFsQ29scykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBMYXlvdXRVbml0
IGJvcmRlcldpZHRoID0gMDsKKyAgICBMYXlvdXRVbml0IGJvcmRlcldpZHRoOwogCiAgICAgY29u
c3QgQm9yZGVyVmFsdWUmIHNiID0gc3R5bGUoKS5ib3JkZXJTdGFydCgpOwogICAgIGlmIChzYi5z
dHlsZSgpID09IEJvcmRlclN0eWxlOjpIaWRkZW4pCkBAIC04MjYsNyArODI2LDcgQEAgTGF5b3V0
VW5pdCBSZW5kZXJUYWJsZVNlY3Rpb246OmNhbGNPdXRlckJvcmRlckVuZCgpIGNvbnN0CiAgICAg
aWYgKCFtX2dyaWQuc2l6ZSgpIHx8ICF0b3RhbENvbHMpCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgTGF5b3V0VW5pdCBib3JkZXJXaWR0aCA9IDA7CisgICAgTGF5b3V0VW5pdCBib3JkZXJXaWR0
aDsKIAogICAgIGNvbnN0IEJvcmRlclZhbHVlJiBzYiA9IHN0eWxlKCkuYm9yZGVyRW5kKCk7CiAg
ICAgaWYgKHNiLnN0eWxlKCkgPT0gQm9yZGVyU3R5bGU6OkhpZGRlbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAppbmRleCA0ZDg2ZDdhN2VkYmE4Yzk3ZjBhYzc5
MjdjOGI2YzgyMjM5OGJhZDA1Li4zZjgwOWViYzlmNTEwZjBhMzhkZjgzMzc5ZmZiNTZkNGNjNzY4
YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCkBAIC0y
NDMsOCArMjQzLDggQEAgTGF5b3V0VW5pdCBSb290SW5saW5lQm94OjphbGlnbkJveGVzSW5CbG9j
a0RpcmVjdGlvbihMYXlvdXRVbml0IGhlaWdodE9mQmxvY2ssIEcKICAgICBpZiAoaXNTVkdSb290
SW5saW5lQm94KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTGF5b3V0VW5pdCBtYXhQb3Np
dGlvblRvcCA9IDA7Ci0gICAgTGF5b3V0VW5pdCBtYXhQb3NpdGlvbkJvdHRvbSA9IDA7CisgICAg
TGF5b3V0VW5pdCBtYXhQb3NpdGlvblRvcDsKKyAgICBMYXlvdXRVbml0IG1heFBvc2l0aW9uQm90
dG9tOwogICAgIGludCBtYXhBc2NlbnQgPSAwOwogICAgIGludCBtYXhEZXNjZW50ID0gMDsKICAg
ICBib29sIHNldE1heEFzY2VudCA9IGZhbHNlOwpAQCAtMzAwLDcgKzMwMCw3IEBAIExheW91dFVu
aXQgUm9vdElubGluZUJveDo6YWxpZ25Cb3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0VW5pdCBo
ZWlnaHRPZkJsb2NrLCBHCiAKIExheW91dFVuaXQgUm9vdElubGluZUJveDo6YmVmb3JlQW5ub3Rh
dGlvbnNBZGp1c3RtZW50KCkgY29uc3QKIHsKLSAgICBMYXlvdXRVbml0IHJlc3VsdCA9IDA7Cisg
ICAgTGF5b3V0VW5pdCByZXN1bHQ7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkuc3R5bGUoKS5pc0Zs
aXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkpIHsKICAgICAgICAgLy8gQW5ub3RhdGlvbnMgdW5kZXIg
dGhlIHByZXZpb3VzIGxpbmUgbWF5IHB1c2ggdXMgZG93bi4KQEAgLTM3Myw3ICszNzMsNyBAQCBM
YXlvdXRVbml0IFJvb3RJbmxpbmVCb3g6OmxpbmVTbmFwQWRqdXN0bWVudChMYXlvdXRVbml0IGRl
bHRhKSBjb25zdAogCiAgICAgLy8gSWYgd2UncmUgcGFnaW5hdGVkLCBzZWUgaWYgd2UncmUgb24g
YSBwYWdlIGFmdGVyIHRoZSBmaXJzdCBvbmUuIElmIHNvLCB0aGUgZ3JpZCByZXNldHMgb24gc3Vi
c2VxdWVudCBwYWdlcy4KICAgICAvLyBGSVhNRTogSWYgdGhlIGdyaWQgaXMgYW4gYW5jZXN0b3Ig
b2YgdGhlIHBhZ2luYXRpb24gZXN0YWJsaXNoZXIsIHRoZW4gdGhpcyBpcyBpbmNvcnJlY3QuCi0g
ICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbFRvcCA9IDA7CisgICAgTGF5b3V0VW5pdCBwYWdlTG9n
aWNhbFRvcDsKICAgICBpZiAobGF5b3V0U3RhdGUtPmlzUGFnaW5hdGVkKCkgJiYgbGF5b3V0U3Rh
dGUtPnBhZ2VMb2dpY2FsSGVpZ2h0KCkpIHsKICAgICAgICAgcGFnZUxvZ2ljYWxUb3AgPSBibG9j
a0Zsb3coKS5wYWdlTG9naWNhbFRvcEZvck9mZnNldChsaW5lVG9wV2l0aExlYWRpbmcoKSArIGRl
bHRhKTsKICAgICAgICAgaWYgKHBhZ2VMb2dpY2FsVG9wID4gZmlyc3RMaW5lVG9wV2l0aExlYWRp
bmcpCkBAIC0xMDEzLDcgKzEwMTMsNyBAQCBMYXlvdXRVbml0IFJvb3RJbmxpbmVCb3g6OnZlcnRp
Y2FsUG9zaXRpb25Gb3JCb3goSW5saW5lQm94KiBib3gsIFZlcnRpY2FsUG9zaXRpbwogICAgICAg
ICAgICAgcmV0dXJuIGNhY2hlZFBvc2l0aW9uOwogICAgIH0KIAotICAgIExheW91dFVuaXQgdmVy
dGljYWxQb3NpdGlvbiA9IDA7CisgICAgTGF5b3V0VW5pdCB2ZXJ0aWNhbFBvc2l0aW9uOwogICAg
IFZlcnRpY2FsQWxpZ24gdmVydGljYWxBbGlnbiA9IHJlbmRlcmVyLT5zdHlsZSgpLnZlcnRpY2Fs
QWxpZ24oKTsKICAgICBpZiAodmVydGljYWxBbGlnbiA9PSBWZXJ0aWNhbEFsaWduOjpUb3AgfHwg
dmVydGljYWxBbGlnbiA9PSBWZXJ0aWNhbEFsaWduOjpCb3R0b20pCiAgICAgICAgIHJldHVybiAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvQnJlYWtpbmdDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaApp
bmRleCBmZDkxOWNmNTQxZTgxMmMyOWJlNThmOGZlMDUyMTBiN2I4NjdhNzU1Li42MmYzOTc3MTY0
NzYwMjNmYWYwYTBhZThhN2ZkMTkyYTM1ZTg5ZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaApAQCAtNDA5LDcgKzQwOSw3IEBAIGlubGlu
ZSBSZW5kZXJPYmplY3QqIHByZXZpb3VzSW5GbG93U2libGluZyhSZW5kZXJPYmplY3QqIGNoaWxk
KQogaW5saW5lIExheW91dFVuaXQgaW5saW5lTG9naWNhbFdpZHRoKFJlbmRlck9iamVjdCogY2hp
bGQsIGJvb2wgY2hlY2tTdGFydEVkZ2UgPSB0cnVlLCBib29sIGNoZWNrRW5kRWRnZSA9IHRydWUp
CiB7CiAgICAgdW5zaWduZWQgbGluZURlcHRoID0gMTsKLSAgICBMYXlvdXRVbml0IGV4dHJhV2lk
dGggPSAwOworICAgIExheW91dFVuaXQgZXh0cmFXaWR0aDsKICAgICBSZW5kZXJFbGVtZW50KiBw
YXJlbnQgPSBjaGlsZC0+cGFyZW50KCk7CiAgICAgd2hpbGUgKGlzPFJlbmRlcklubGluZT4oKnBh
cmVudCkgJiYgbGluZURlcHRoKysgPCBjTWF4TGluZURlcHRoKSB7CiAgICAgICAgIGNvbnN0IGF1
dG8mIHBhcmVudEFzUmVuZGVySW5saW5lID0gZG93bmNhc3Q8UmVuZGVySW5saW5lPigqcGFyZW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxCbG9jay5jcHAKaW5kZXggM2NmNTMwNDcyMTIzNjNkNzBjYTZjYjUyYzQ0NDBiNTllMWJjMTBh
Yi4uMDBiZGU2ZDY2OTRkOGFjODQzMTNiZjcxNThkMDMxOWYxMGY4MzM3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAK
QEAgLTE5MCw3ICsxOTAsNyBAQCB2b2lkIFJlbmRlck1hdGhNTEJsb2NrOjpsYXlvdXRJdGVtcyhi
b29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgTGF5b3V0VW5pdCB2ZXJ0aWNhbE9mZnNldCA9IGJv
cmRlckJlZm9yZSgpICsgcGFkZGluZ0JlZm9yZSgpOwogICAgIExheW91dFVuaXQgaG9yaXpvbnRh
bE9mZnNldCA9IGJvcmRlclN0YXJ0KCkgKyBwYWRkaW5nU3RhcnQoKTsKIAotICAgIExheW91dFVu
aXQgcHJlZmVycmVkSG9yaXpvbnRhbEV4dGVudCA9IDA7CisgICAgTGF5b3V0VW5pdCBwcmVmZXJy
ZWRIb3Jpem9udGFsRXh0ZW50OwogICAgIGZvciAoYXV0byogY2hpbGQgPSBmaXJzdENoaWxkQm94
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7CiAgICAgICAgIExh
eW91dFVuaXQgY2hpbGRIb3Jpem9udGFsRXh0ZW50ID0gY2hpbGQtPm1heFByZWZlcnJlZExvZ2lj
YWxXaWR0aCgpIC0gY2hpbGQtPmhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCk7CiAg
ICAgICAgIExheW91dFVuaXQgY2hpbGRIb3Jpem9udGFsTWFyZ2luQm94RXh0ZW50ID0gY2hpbGQt
Pmhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCkgKyBjaGlsZEhvcml6b250YWxFeHRl
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTEZyYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MRnJhY3Rpb24uY3BwCmluZGV4IGQ5MzBhNGFjMWQyMTUzN2ZmYTYwYjFjMWNkYTI5NmUx
YmI4ZDhmNGQuLjBhODdlNDU5ZjdlYWM4OWEyOWU3NzVjZmM1Y2YzNDUwNzU0ZjI5MzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
RnJhY3Rpb24uY3BwCkBAIC0yMjQsNyArMjI0LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxGcmFjdGlv
bjo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAg
c2V0TG9naWNhbFdpZHRoKHN0ZDo6bWF4KG51bWVyYXRvcigpLmxvZ2ljYWxXaWR0aCgpLCBkZW5v
bWluYXRvcigpLmxvZ2ljYWxXaWR0aCgpKSk7CiAKLSAgICBMYXlvdXRVbml0IHZlcnRpY2FsT2Zm
c2V0ID0gMDsgLy8gVGhpcyBpcyB0aGUgdG9wIG9mIHRoZSByZW5kZXJlci4KKyAgICBMYXlvdXRV
bml0IHZlcnRpY2FsT2Zmc2V0OyAvLyBUaGlzIGlzIHRoZSB0b3Agb2YgdGhlIHJlbmRlcmVyLgog
ICAgIExheW91dFBvaW50IG51bWVyYXRvckxvY2F0aW9uKGhvcml6b250YWxPZmZzZXQobnVtZXJh
dG9yKCksIGVsZW1lbnQoKS5udW1lcmF0b3JBbGlnbm1lbnQoKSksIHZlcnRpY2FsT2Zmc2V0KTsK
ICAgICBudW1lcmF0b3IoKS5zZXRMb2NhdGlvbihudW1lcmF0b3JMb2NhdGlvbik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVy
YXRvci5jcHAKaW5kZXggOThmMzhmOWYwZGYzZThmYjI1ZmFjYzg2YjdmMDJlMGIxZGM1ZTk1MS4u
Nzc3N2JkYjAwMjdjYjM2NjdiYTk4MDMyODNlYjMxOGFkOWU3OWVhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5j
cHAKQEAgLTE5MCw3ICsxOTAsNyBAQCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocygpCiB7CiAgICAgQVNTRVJUKHByZWZlcnJlZExvZ2ljYWxX
aWR0aHNEaXJ0eSgpKTsKIAotICAgIExheW91dFVuaXQgcHJlZmVycmVkV2lkdGggPSAwOworICAg
IExheW91dFVuaXQgcHJlZmVycmVkV2lkdGg7CiAKICAgICBpZiAoIXVzZU1hdGhPcGVyYXRvcigp
KSB7CiAgICAgICAgIFJlbmRlck1hdGhNTFRva2VuOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdp
ZHRocygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MUm9vdC5jcHAKaW5kZXggOGRlNzAwMTk5Nzg1ZWE3MmIxODZlODU0M2RjNzMwZWU2Y2Fl
ZDAwNy4uODQwMzk1Njk1ODAyYWExYjhkYWUxZWZhMDYwNjZkNDAyOTM4MTE4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb290LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3QuY3Bw
CkBAIC0xNjEsNyArMTYxLDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxSb290Ojpjb21wdXRlUHJlZmVy
cmVkTG9naWNhbFdpZHRocygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBMYXlvdXRV
bml0IHByZWZlcnJlZFdpZHRoID0gMDsKKyAgICBMYXlvdXRVbml0IHByZWZlcnJlZFdpZHRoOwog
ICAgIGlmIChyb290VHlwZSgpID09IFJvb3RUeXBlOjpTcXVhcmVSb290KSB7CiAgICAgICAgIHBy
ZWZlcnJlZFdpZHRoICs9IG1fcmFkaWNhbE9wZXJhdG9yLm1heFByZWZlcnJlZFdpZHRoKCk7CiAg
ICAgICAgIHNldFByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSh0cnVlKTsKQEAgLTI3Myw3ICsy
NzMsNyBAQCB2b2lkIFJlbmRlck1hdGhNTFJvb3Q6OnBhaW50KFBhaW50SW5mbyYgaW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogCiAgICAgLy8gV2UgZHJhdyB0aGUgcmFkaWNh
bCBvcGVyYXRvci4KICAgICBMYXlvdXRQb2ludCByYWRpY2FsT3BlcmF0b3JUb3BMZWZ0ID0gcGFp
bnRPZmZzZXQgKyBsb2NhdGlvbigpOwotICAgIExheW91dFVuaXQgaG9yaXpvbnRhbE9mZnNldCA9
IDA7CisgICAgTGF5b3V0VW5pdCBob3Jpem9udGFsT2Zmc2V0OwogICAgIGlmIChyb290VHlwZSgp
ID09IFJvb3RUeXBlOjpSb290V2l0aEluZGV4KSB7CiAgICAgICAgIGF1dG8gaG9yaXpvbnRhbCA9
IGhvcml6b250YWxQYXJhbWV0ZXJzKCk7CiAgICAgICAgIGhvcml6b250YWxPZmZzZXQgPSBob3Jp
em9udGFsLmtlcm5CZWZvcmVEZWdyZWUgKyBnZXRJbmRleCgpLmxvZ2ljYWxXaWR0aCgpICsgaG9y
aXpvbnRhbC5rZXJuQWZ0ZXJEZWdyZWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5jcHAKaW5kZXggMDUwNWVmMGFlZTJkNzE0M2Q2ZmU0
YWRjMjI5NjYzYjM5YWQyZTVkNC4uMWM1MjdhOGFjNDA5NjJkZjU2Y2VlMGMwM2QxYmU4YTBjMjE2
NThlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxSb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MUm93LmNwcApAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MUm93Ojpj
b21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAKICAgICBtX21pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCA9IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gMDsKIAotICAgIExheW91dFVu
aXQgcHJlZmVycmVkV2lkdGggPSAwOworICAgIExheW91dFVuaXQgcHJlZmVycmVkV2lkdGg7CiAg
ICAgZm9yIChhdXRvKiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQtPm5leHRTaWJsaW5nQm94KCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5pc091dE9mRmxvd1Bv
c2l0aW9uZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5jcHAKaW5kZXggMDI1
MTQyMzcyMWRiNzA5MzZlOGMwOGZjMTZiYTNiOGU1OWE1OGRjMi4uZWM5ZmViZDMyMDZjZjk3NTQw
ZWE0MzBjZWQxMzZkOGNiZDIxYmY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMuY3BwCkBAIC0zNzEsNyArMzcxLDcg
QEAgdm9pZCBSZW5kZXJNYXRoTUxTY3JpcHRzOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQpCiAgICAgTGF5b3V0VW5pdCBiYXNlQXNjZW50ID0gYXNjZW50Rm9y
Q2hpbGQoKnJlZmVyZW5jZS5iYXNlKTsKICAgICBMYXlvdXRVbml0IGJhc2VEZXNjZW50ID0gcmVm
ZXJlbmNlLmJhc2UtPmxvZ2ljYWxIZWlnaHQoKSAtIGJhc2VBc2NlbnQ7CiAgICAgTGF5b3V0VW5p
dCBiYXNlSXRhbGljQ29ycmVjdGlvbiA9IHN0ZDo6bWluKHJlZmVyZW5jZS5iYXNlLT5sb2dpY2Fs
V2lkdGgoKSwgaXRhbGljQ29ycmVjdGlvbihyZWZlcmVuY2UpKTsKLSAgICBMYXlvdXRVbml0IGhv
cml6b250YWxPZmZzZXQgPSAwOworICAgIExheW91dFVuaXQgaG9yaXpvbnRhbE9mZnNldDsKIAog
ICAgIExheW91dFVuaXQgYXNjZW50ID0gc3RkOjptYXgoYmFzZUFzY2VudCwgbWV0cmljcy5hc2Nl
bnQgKyBtZXRyaWNzLnN1cFNoaWZ0KTsKICAgICBMYXlvdXRVbml0IGRlc2NlbnQgPSBzdGQ6Om1h
eChiYXNlRGVzY2VudCwgbWV0cmljcy5kZXNjZW50ICsgbWV0cmljcy5zdWJTaGlmdCk7CkBAIC00
MDQsNyArNDA0LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxTY3JpcHRzOjpsYXlvdXRCbG9jayhib29s
IHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgY2FzZSBTY3JpcHRUeXBlOjpVbmRl
ck92ZXI6CiAgICAgY2FzZSBTY3JpcHRUeXBlOjpNdWx0aXNjcmlwdHM6IHsKICAgICAgICAgLy8g
Q2FsY3VsYXRlIHRoZSBsb2dpY2FsIHdpZHRoLgotICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxX
aWR0aCA9IDA7CisgICAgICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRoOwogICAgICAgICBhdXRv
IHN1YlNjcmlwdCA9IHJlZmVyZW5jZS5maXJzdFByZVNjcmlwdDsKICAgICAgICAgd2hpbGUgKHN1
YlNjcmlwdCkgewogICAgICAgICAgICAgYXV0byBzdXBTY3JpcHQgPSBzdWJTY3JpcHQtPm5leHRT
aWJsaW5nQm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTFVuZGVyT3Zlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5jcHAKaW5kZXggNGE3OTY5YTJjOTg1MDczZWZlM2Ez
YTc2MmJiNzFiMGViZTgwNmY3Ny4uODhhOGQyMDZjYjU4YzJmOGFlZmMzMWI5NGU1NzA3NjI2M2Mx
ZjZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxVbmRlck92ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcApAQCAtOTQsNyArOTQsNyBAQCB2b2lkIFJlbmRlck1h
dGhNTFVuZGVyT3Zlcjo6c3RyZXRjaEhvcml6b250YWxPcGVyYXRvcnNBbmRMYXlvdXRDaGlsZHJl
bigpCiAgICAgVmVjdG9yPFJlbmRlckJveCosIDM+IGVtYmVsbGlzaGVkT3BlcmF0b3JzOwogICAg
IFZlY3RvcjxSZW5kZXJNYXRoTUxPcGVyYXRvciosIDM+IHN0cmV0Y2h5T3BlcmF0b3JzOwogICAg
IGJvb2wgaXNBbGxTdHJldGNoeU9wZXJhdG9ycyA9IHRydWU7Ci0gICAgTGF5b3V0VW5pdCBzdHJl
dGNoV2lkdGggPSAwOworICAgIExheW91dFVuaXQgc3RyZXRjaFdpZHRoOwogCiAgICAgZm9yIChh
dXRvKiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRT
aWJsaW5nQm94KCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHN0cmV0Y2h5T3BlcmF0b3IgPSBob3Jp
em9udGFsU3RyZXRjaHlPcGVyYXRvcigqY2hpbGQpKSB7CkBAIC0zMTcsNyArMzE3LDcgQEAgdm9p
ZCBSZW5kZXJNYXRoTUxVbmRlck92ZXI6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJl
biwgTGF5b3V0VW5pdCBwYWdlTG8KICAgICBzZXRMb2dpY2FsV2lkdGgobG9naWNhbFdpZHRoKTsK
IAogICAgIFZlcnRpY2FsUGFyYW1ldGVycyBwYXJhbWV0ZXJzID0gdmVydGljYWxQYXJhbWV0ZXJz
KCk7Ci0gICAgTGF5b3V0VW5pdCB2ZXJ0aWNhbE9mZnNldCA9IDA7CisgICAgTGF5b3V0VW5pdCB2
ZXJ0aWNhbE9mZnNldDsKICAgICBpZiAoc2NyaXB0VHlwZSgpID09IFNjcmlwdFR5cGU6Ok92ZXIg
fHwgc2NyaXB0VHlwZSgpID09IFNjcmlwdFR5cGU6OlVuZGVyT3ZlcikgewogICAgICAgICB2ZXJ0
aWNhbE9mZnNldCArPSBwYXJhbWV0ZXJzLm92ZXJFeHRyYUFzY2VuZGVyOwogICAgICAgICBvdmVy
KCkuc2V0TG9jYXRpb24oTGF5b3V0UG9pbnQoaG9yaXpvbnRhbE9mZnNldChvdmVyKCkpLCB2ZXJ0
aWNhbE9mZnNldCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKaW5kZXggN2JhMTA5MTU1Mjk5ZDc2M2QxOTkxNWZiZGJiNmQwMzViYjhhZDdmYS4u
YTU3ZDFjNThjOWU3NjQwMzA1MmUxMzllNDdiZDZkODk0ZTRjOTg4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xNzY3LDEwICsxNzY3
LDEwIEBAIHZvaWQgUmVuZGVyU3R5bGU6OmdldFNoYWRvd0V4dGVudChjb25zdCBTaGFkb3dEYXRh
KiBzaGFkb3csIExheW91dFVuaXQmIHRvcCwgTGF5CiAKIExheW91dEJveEV4dGVudCBSZW5kZXJT
dHlsZTo6Z2V0U2hhZG93SW5zZXRFeHRlbnQoY29uc3QgU2hhZG93RGF0YSogc2hhZG93KSBjb25z
dAogewotICAgIExheW91dFVuaXQgdG9wID0gMDsKLSAgICBMYXlvdXRVbml0IHJpZ2h0ID0gMDsK
LSAgICBMYXlvdXRVbml0IGJvdHRvbSA9IDA7Ci0gICAgTGF5b3V0VW5pdCBsZWZ0ID0gMDsKKyAg
ICBMYXlvdXRVbml0IHRvcDsKKyAgICBMYXlvdXRVbml0IHJpZ2h0OworICAgIExheW91dFVuaXQg
Ym90dG9tOworICAgIExheW91dFVuaXQgbGVmdDsKIAogICAgIGZvciAoIDsgc2hhZG93OyBzaGFk
b3cgPSBzaGFkb3ctPm5leHQoKSkgewogICAgICAgICBpZiAoc2hhZG93LT5zdHlsZSgpID09IE5v
cm1hbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3Bw
CmluZGV4IDQxMjFhODM0YjFmZDQ5MzczOTk0ZjlkZjdiMjcxNGQyZDgzNWU4YWMuLjhiMzU1ZmFm
MzZmYzQ5MmZlYTllY2Y3OGEyYjU2NTFhN2JjZjk2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcApAQCAtNDAyLDggKzQwMiw4IEBAIHZvaWQg
UmVuZGVyU1ZHVGV4dDo6bGF5b3V0KCkKICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBmaW5kIGEg
d2F5IHRvIG9ubHkgbGF5b3V0IHRoZSBjaGlsZCBib3hlcywgaWYgbmVlZGVkLgogICAgIEZsb2F0
UmVjdCBvbGRCb3VuZGFyaWVzID0gb2JqZWN0Qm91bmRpbmdCb3goKTsKICAgICBBU1NFUlQoY2hp
bGRyZW5JbmxpbmUoKSk7Ci0gICAgTGF5b3V0VW5pdCByZXBhaW50TG9naWNhbFRvcCA9IDA7Ci0g
ICAgTGF5b3V0VW5pdCByZXBhaW50TG9naWNhbEJvdHRvbSA9IDA7CisgICAgTGF5b3V0VW5pdCBy
ZXBhaW50TG9naWNhbFRvcDsKKyAgICBMYXlvdXRVbml0IHJlcGFpbnRMb2dpY2FsQm90dG9tOwog
ICAgIHJlYnVpbGRGbG9hdGluZ09iamVjdFNldEZyb21JbnRydWRpbmdGbG9hdHMoKTsKICAgICBs
YXlvdXRJbmxpbmVDaGlsZHJlbih0cnVlLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWludExvZ2lj
YWxCb3R0b20pOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>