<?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>107176</bug_id>
          
          <creation_ts>2013-01-17 13:57:30 -0800</creation_ts>
          <short_desc>REGRESSION(r140023): Broke some tests (Requested by anttik on #webkit).</short_desc>
          <delta_ts>2013-01-17 14:07:45 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>107138</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>hyatt</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>809747</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 13:57:30 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/140023 broke the build:
Broke some tests (Requested by anttik on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809750</commentid>
    <comment_count>1</comment_count>
      <attachid>183271</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 13:58:05 -0800</bug_when>
    <thetext>Created attachment 183271
ROLLOUT of r140023

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809757</commentid>
    <comment_count>2</comment_count>
      <attachid>183271</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 14:07:41 -0800</bug_when>
    <thetext>Comment on attachment 183271
ROLLOUT of r140023

Clearing flags on attachment: 183271

Committed r140039: &lt;http://trac.webkit.org/changeset/140039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809758</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 14:07:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183271</attachid>
            <date>2013-01-17 13:58:05 -0800</date>
            <delta_ts>2013-01-17 14:07:40 -0800</delta_ts>
            <desc>ROLLOUT of r140023</desc>
            <filename>bug-107176-20130117215505.patch</filename>
            <type>text/plain</type>
            <size>101741</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJhNDRkN2ViMjNjYTJh
MTFjZjE2MjkxZjE3MDkwZGYwZDA2NjFhNy4uOTUyN2Y5NDNkNmI1NTY1NTYxNGIzODk4MWRkZDdj
YmVlZDU0ZWE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOCBAQAorMjAxMy0wMS0xNyAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjE0MDAyMy4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTQwMDIzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDcxNzYKKworICAgICAgICBCcm9rZSBzb21lIHRlc3RzIChSZXF1ZXN0ZWQg
YnkgYW50dGlrIG9uICN3ZWJraXQpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVTY3JvbGxDb3JuZXIpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6Y3JlYXRlUmVwbGFjZW1lbnRSdW5Jbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6dXBkYXRlRmlyc3RMZXR0ZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6Y3JlYXRlRmlyc3RMZXR0ZXJSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQ
YXJlbnRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5v
bnltb3VzQ29sdW1uU3BhbldpdGhQYXJlbnRSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmg6CisgICAgICAgIChSZW5kZXJCbG9jayk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oOgorICAg
ICAgICAoUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRGV0YWlsc01hcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXRhaWxz
TWFya2VyOjpSZW5kZXJEZXRhaWxzTWFya2VyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RGV0YWlsc01hcmtlci5oOgorICAgICAgICAoUmVuZGVyRGV0YWlsc01hcmtlcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckRpYWxvZy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGlh
bG9nOjpSZW5kZXJEaWFsb2cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWVsZHNldDo6UmVuZGVyRmllbGRzZXQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oOgorICAgICAgICAoUmVuZGVyRmll
bGRzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6UmVuZGVyRmxleGlibGVCb3gpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oOgorICAgICAgICAoUmVuZGVyRmxl
eGlibGVCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAoUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9s
ZGVyOjpSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIpOgorICAgICAgICAoUmVuZGVyRnVsbFNj
cmVlbjo6UmVuZGVyRnVsbFNjcmVlbik6CisgICAgICAgIChSZW5kZXJGdWxsU2NyZWVuOjp3cmFw
UmVuZGVyZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmg6CisgICAg
ICAgIChSZW5kZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpSZW5kZXJHcmlkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyR3JpZC5oOgorICAgICAgICAoUmVuZGVyR3JpZCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklt
YWdlOjpSZW5kZXJJbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6Cisg
ICAgICAgIChSZW5kZXJJbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OlJlbmRlcklubGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmFkZENoaWxkSWdub3JpbmdDb250aW51YXRpb24p
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlcklu
bGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxDb3JuZXJTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlUmVzaXplclN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpjcmVhdGVSZWZsZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OlJl
bmRlckxpc3RJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjpzdHlsZURp
ZENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmg6CisgICAgICAg
IChSZW5kZXJMaXN0SXRlbSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6UmVuZGVyTGlzdE1hcmtl
cik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaDoKKyAgICAgICAgKFJl
bmRlckxpc3RNYXJrZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xF
bGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNv
bnRhaW5lcjo6UmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWVkaWFDb250cm9sVGltZURpc3BsYXk6OlJlbmRlck1lZGlhQ29udHJvbFRp
bWVEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQ6OlJlbmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAoUmVuZGVyTWVkaWFW
b2x1bWVTbGlkZXJDb250YWluZXIpOgorICAgICAgICAoUmVuZGVyTWVkaWFDb250cm9sVGltZURp
c3BsYXkpOgorICAgICAgICAoUmVuZGVyVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6UmVuZGVyTXVsdGlDb2x1bW5CbG9jayk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjplbnN1cmVDb2x1bW5TZXRz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oOgorICAgICAg
ICAoUmVuZGVyTXVsdGlDb2x1bW5CbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNv
bHVtbkZsb3dUaHJlYWQ6OlJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oOgorICAgICAgICAoUmVuZGVy
TXVsdGlDb2x1bW5GbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlD
b2x1bW5TZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5TZXQ6OlJl
bmRlck11bHRpQ29sdW1uU2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1
bW5TZXQuaDoKKyAgICAgICAgKFJlbmRlck11bHRpQ29sdW1uU2V0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck5hbWVkRmxvd1RocmVhZDo6UmVuZGVyTmFtZWRGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6CisgICAgICAgIChSZW5kZXJOYW1lZEZsb3dU
aHJlYWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2V0SXNB
bm9ueW1vdXMpOgorICAgICAgICAoUmVuZGVyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6UmVuZGVyT2JqZWN0Qml0ZmllbGRzOjpSZW5kZXJPYmplY3RCaXRmaWVsZHMp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJSZWdpb24uaDoKKyAgICAgICAgKFJlbmRlclJlZ2lvbik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclJlZ2lvblNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb25TZXQ6
OlJlbmRlclJlZ2lvblNldCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5o
OgorICAgICAgICAoUmVuZGVyUmVnaW9uU2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OlJlbmRlclJl
cGxhY2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaDoKKyAgICAgICAg
KFJlbmRlclJlcGxhY2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsaWNhOjpSZW5kZXJSZXBsaWNhKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oOgorICAgICAgICAoUmVuZGVyUmVwbGljYSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQW5vbnltb3VzUnVieUlubGluZUJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clJ1YnlBc0lubGluZTo6UmVuZGVyUnVieUFzSW5saW5lKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVieUFzQmxvY2s6OlJlbmRlclJ1YnlBc0Jsb2NrKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieS5oOgorICAgICAgICAoUmVuZGVyUnVieUFz
SW5saW5lKToKKyAgICAgICAgKFJlbmRlclJ1YnlBc0Jsb2NrKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyUnVieUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVieUJhc2U6
OlJlbmRlclJ1YnlCYXNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaDoK
KyAgICAgICAgKFJlbmRlclJ1YnlCYXNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVi
eVJ1bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSdWJ5UnVuOjpSZW5kZXJSdWJ5UnVu
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlSdW46OmNyZWF0ZVJ1YnlCYXNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlSdW46OnN0YXRpY0NyZWF0ZVJ1YnlSdW4pOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmg6CisgICAgICAgIChSZW5kZXJSdWJ5UnVu
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyUnVieVRleHQ6OlJlbmRlclJ1YnlUZXh0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyUnVieVRleHQuaDoKKyAgICAgICAgKFJlbmRlclJ1YnlUZXh0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNjcm9sbGJhcjo6dXBkYXRlU2Nyb2xsYmFyUGFydCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNjcm9sbGJhclBhcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Nyb2xsYmFy
UGFydDo6UmVuZGVyU2Nyb2xsYmFyUGFydCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNj
cm9sbGJhclBhcnQuaDoKKyAgICAgICAgKFJlbmRlclNjcm9sbGJhclBhcnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTZWFyY2hGaWVsZDo6UmVuZGVyU2VhcmNoRmllbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJTZWFyY2hGaWVsZC5oOgorICAgICAgICAoUmVuZGVyU2VhcmNoRmllbGQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZTo6UmVuZGVyVGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmNyZWF0
ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmg6CisgICAgICAgIChSZW5kZXJUYWJsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2FwdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNhcHRp
b246OlJlbmRlclRhYmxlQ2FwdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2FwdGlvbi5oOgorICAgICAgICAoUmVuZGVyVGFibGVDYXB0aW9uKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxl
Q2VsbDo6UmVuZGVyVGFibGVDZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2Vs
bDo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGFibGVDZWxsLmg6CisgICAgICAgIChSZW5kZXJUYWJsZUNlbGwpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZUNvbDo6UmVuZGVyVGFibGVDb2wpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
YWJsZUNvbC5oOgorICAgICAgICAoUmVuZGVyVGFibGVDb2wpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUYWJsZVJvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6
UmVuZGVyVGFibGVSb3cpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVSb3c6OmNyZWF0
ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlUm93Lmg6CisgICAgICAgIChSZW5kZXJUYWJsZVJvdyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJs
ZVNlY3Rpb246OlJlbmRlclRhYmxlU2VjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZVNlY3Rpb246OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oOgorICAgICAgICAoUmVuZGVyVGFibGVT
ZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OlJlbmRlclRleHRDb250cm9sKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKKyAgICAgICAgKFJlbmRlclRl
eHRDb250cm9sKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxp
bmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OlJl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaDoKKyAgICAgICAgKFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5l
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmg6CisgICAgICAgIChSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrOjpSZW5kZXJUZXh0
Q29udHJvbElubmVyQmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tD
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dFRyYWNrQ3VlOjpSZW5kZXJUZXh0
VHJhY2tDdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZXc6OlJlbmRlclZpZXcpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpSZW5kZXJX
aWRnZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKyAgICAgICAgKFJl
bmRlcldpZGdldCk6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9j
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxCbG9jazo6UmVuZGVyTWF0aE1M
QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MQmxvY2s6OmNyZWF0ZUFub255
bW91c01hdGhNTEJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TEJsb2NrLmg6CisgICAgICAgIChSZW5kZXJNYXRoTUxCbG9jayk6CisgICAgICAgICogcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTWF0aE1MRmVuY2VkOjpjcmVhdGVNYXRoTUxPcGVyYXRvcik6CisgICAgICAgICogcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNYXRoTUxPcGVyYXRvcjo6UmVuZGVyTWF0aE1MT3BlcmF0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpjcmVhdGVHbHlwaCk6CisgICAgICAgICog
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oOgorICAgICAgICAoUmVuZGVy
TWF0aE1MT3BlcmF0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
Um93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTFJvdzo6UmVuZGVyTWF0aE1M
Um93KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTFJvdzo6Y3JlYXRlQW5vbnltb3Vz
V2l0aFBhcmVudFJlbmRlcmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTFJvdy5oOgorICAgICAgICAoUmVuZGVyTWF0aE1MUm93KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvQ29udGVudERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250ZW50
RGF0YTo6Y3JlYXRlUmVuZGVyZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
QmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHQmxvY2s6OlJlbmRlclNWR0Js
b2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbmxpbmU6OlJlbmRlclNWR0lubGluZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlclNWR0lu
bGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUU3Bhbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUU3Bhbjo6UmVuZGVyU1ZHVFNwYW4pOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVFNwYW4uaDoKKyAgICAgICAgKFJlbmRlclNWR1RTcGFu
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHRQYXRoOjpSZW5kZXJTVkdUZXh0UGF0aCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5oOgorICAgICAgICAoUmVuZGVy
U1ZHVGV4dFBhdGgpOgorCiAyMDEzLTAxLTE3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCBhIGxvZ2ljIGVycm9yIGluIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM2ZTA0OGYyMDFiMTRmYzE0
ZjczYzNiY2E0ZTc1MDQ0OTUyOTQzZTguLjMyODc1ODRlNDM4YTYxMTBlYjQzNWUwYjhjMzkxNWMy
YzIwZjc0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTMtMDEtMTcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDAwMjMuCisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0MDAyMworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3MTc2CisKKyAgICAgICAgQnJva2Ugc29tZSB0ZXN0
cyAoUmVxdWVzdGVkIGJ5IGFudHRpayBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHRlc3RzL1Jl
bmRlclRhYmxlQ2VsbFRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL1JlbmRlclRhYmxlUm93VGVz
dC5jcHA6CisKIDIwMTMtMDEtMTcgIEpvaG4gTWVsbG9yICA8am9obm1lQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIERvdWJsZS10YXAgem9vbSBzaG91bGQgdGFrZSBpbnRvIGFj
Y291bnQgYWNjZXNzaWJpbGl0eSBmb250U2NhbGVGYWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAppbmRleCA0YTYyMTBjZTc2ZmFmNzVkYjFmNjk3YWE2YzViODg1N2M2MDAwMTlmLi5jMjBi
MDM4NzAzN2Y4Mzg0ZDc4YzZjYzA0YmNmMzIzOWNjYzJhOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCkBAIC0zMDE1LDcgKzMwMTUsNyBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlU2Ny
b2xsQ29ybmVyKCkKIAogICAgIGlmIChjb3JuZXJTdHlsZSkgewogICAgICAgICBpZiAoIW1fc2Ny
b2xsQ29ybmVyKQotICAgICAgICAgICAgbV9zY3JvbGxDb3JuZXIgPSBSZW5kZXJTY3JvbGxiYXJQ
YXJ0OjpjcmVhdGVBbm9ueW1vdXMocmVuZGVyZXItPmRvY3VtZW50KCkpOworICAgICAgICAgICAg
bV9zY3JvbGxDb3JuZXIgPSBuZXcgKHJlbmRlcmVyLT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJTY3Jv
bGxiYXJQYXJ0KHJlbmRlcmVyLT5kb2N1bWVudCgpKTsKICAgICAgICAgbV9zY3JvbGxDb3JuZXIt
PnNldFN0eWxlKGNvcm5lclN0eWxlLnJlbGVhc2UoKSk7CiAgICAgICAgIGludmFsaWRhdGVTY3Jv
bGxDb3JuZXIoY29ybmVyUmVjdCk7CiAgICAgfSBlbHNlIGlmIChtX3Njcm9sbENvcm5lcikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDE0ZjgxMjdlN2Fh
NWIzMTI4ZjhjNDQ4MjE2ODllYmQ4MGViMDM4OS4uYzY4ZWY3YTdkMDk2ZWZjYWRhNTVlODVmZWFm
ZmEwZWI3NjllZTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CkBAIC0yMzgsMTMgKzIzOCw2IEBAIFJlbmRlckJsb2NrOjp+UmVuZGVyQmxvY2soKQogICAgICAg
ICByZW1vdmVCbG9ja0Zyb21EZXNjZW5kYW50QW5kQ29udGFpbmVyTWFwcyh0aGlzLCBnUG9zaXRp
b25lZERlc2NlbmRhbnRzTWFwLCBnUG9zaXRpb25lZENvbnRhaW5lck1hcCk7CiB9CiAKLVJlbmRl
ckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKERvY3VtZW50KiBkb2N1bWVudCkK
LXsKLSAgICBSZW5kZXJCbG9jayogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJCbG9jaygwKTsKLSAgICByZW5kZXJlci0+c2V0RG9jdW1lbnRGb3JBbm9ueW1v
dXMoZG9jdW1lbnQpOwotICAgIHJldHVybiByZW5kZXJlcjsKLX0KLQogdm9pZCBSZW5kZXJCbG9j
azo6d2lsbEJlRGVzdHJveWVkKCkKIHsKICAgICAvLyBNYXJrIGFzIGJlaW5nIGRlc3Ryb3llZCB0
byBhdm9pZCB0cm91YmxlIHdpdGggbWVyZ2VzIGluIHJlbW92ZUNoaWxkKCkuCkBAIC0xODU0LDcg
KzE4NDcsNyBAQCBSZW5kZXJCb3hNb2RlbE9iamVjdCogUmVuZGVyQmxvY2s6OmNyZWF0ZVJlcGxh
Y2VtZW50UnVuSW4oUmVuZGVyQm94TW9kZWxPYmplY3QqCiAgICAgaWYgKCFydW5Jbi0+aXNSZW5k
ZXJCbG9jaygpKQogICAgICAgICBuZXdSdW5JbiA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVy
QmxvY2socnVuSW4tPm5vZGUoKSk7CiAgICAgZWxzZQotICAgICAgICBuZXdSdW5JbiA9IG5ldyAo
cmVuZGVyQXJlbmEoKSkgUmVuZGVySW5saW5lKHRvRWxlbWVudChydW5Jbi0+bm9kZSgpKSk7Cisg
ICAgICAgIG5ld1J1bkluID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJJbmxpbmUocnVuSW4t
Pm5vZGUoKSk7CiAKICAgICBydW5Jbi0+bm9kZSgpLT5zZXRSZW5kZXJlcihuZXdSdW5Jbik7CiAg
ICAgbmV3UnVuSW4tPnNldFN0eWxlKHJ1bkluLT5zdHlsZSgpKTsKQEAgLTY0MzYsOSArNjQyOSw5
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUZpcnN0TGV0dGVyU3R5bGUoUmVuZGVyT2JqZWN0
KiBmaXJzdExldHRlckJsb2NrLCBSZW5kZXJPCiAgICAgICAgIC8vIFRoZSBmaXJzdC1sZXR0ZXIg
cmVuZGVyZXIgbmVlZHMgdG8gYmUgcmVwbGFjZWQuIENyZWF0ZSBhIG5ldyByZW5kZXJlciBvZiB0
aGUgcmlnaHQgdHlwZS4KICAgICAgICAgUmVuZGVyT2JqZWN0KiBuZXdGaXJzdExldHRlcjsKICAg
ICAgICAgaWYgKHBzZXVkb1N0eWxlLT5kaXNwbGF5KCkgPT0gSU5MSU5FKQotICAgICAgICAgICAg
bmV3Rmlyc3RMZXR0ZXIgPSBSZW5kZXJJbmxpbmU6OmNyZWF0ZUFub255bW91cyhkb2N1bWVudCgp
KTsKKyAgICAgICAgICAgIG5ld0ZpcnN0TGV0dGVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5k
ZXJJbmxpbmUoZG9jdW1lbnQoKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ld0ZpcnN0
TGV0dGVyID0gUmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91cyhkb2N1bWVudCgpKTsKKyAgICAg
ICAgICAgIG5ld0ZpcnN0TGV0dGVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhk
b2N1bWVudCgpKTsKICAgICAgICAgbmV3Rmlyc3RMZXR0ZXItPnNldFN0eWxlKHBzZXVkb1N0eWxl
KTsKIAogICAgICAgICAvLyBNb3ZlIHRoZSBmaXJzdCBsZXR0ZXIgaW50byB0aGUgbmV3IHJlbmRl
cmVyLgpAQCAtNjQ4Miw5ICs2NDc1LDkgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y3JlYXRlRmlyc3RM
ZXR0ZXJSZW5kZXJlcihSZW5kZXJPYmplY3QqIGZpcnN0TGV0dGVyQmxvY2ssIFJlbmQKICAgICBS
ZW5kZXJTdHlsZSogcHNldWRvU3R5bGUgPSBzdHlsZUZvckZpcnN0TGV0dGVyKGZpcnN0TGV0dGVy
QmxvY2ssIGZpcnN0TGV0dGVyQ29udGFpbmVyKTsKICAgICBSZW5kZXJPYmplY3QqIGZpcnN0TGV0
dGVyID0gMDsKICAgICBpZiAocHNldWRvU3R5bGUtPmRpc3BsYXkoKSA9PSBJTkxJTkUpCi0gICAg
ICAgIGZpcnN0TGV0dGVyID0gUmVuZGVySW5saW5lOjpjcmVhdGVBbm9ueW1vdXMoZG9jdW1lbnQo
KSk7CisgICAgICAgIGZpcnN0TGV0dGVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJJbmxp
bmUoZG9jdW1lbnQoKSk7CiAgICAgZWxzZQotICAgICAgICBmaXJzdExldHRlciA9IFJlbmRlckJs
b2NrOjpjcmVhdGVBbm9ueW1vdXMoZG9jdW1lbnQoKSk7CisgICAgICAgIGZpcnN0TGV0dGVyID0g
bmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhkb2N1bWVudCgpKTsKICAgICBmaXJzdExl
dHRlci0+c2V0U3R5bGUocHNldWRvU3R5bGUpOwogICAgIGZpcnN0TGV0dGVyQ29udGFpbmVyLT5h
ZGRDaGlsZChmaXJzdExldHRlciwgY3VycmVudENoaWxkKTsKIApAQCAtNzczMSwxMCArNzcyNCwx
MCBAQCBSZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRS
ZW5kZXJlckFuZERpc3BsYXkoY29uc3QgUmVuZAogICAgIEVEaXNwbGF5IG5ld0Rpc3BsYXk7CiAg
ICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IDA7CiAgICAgaWYgKGRpc3BsYXkgPT0gQk9YIHx8IGRp
c3BsYXkgPT0gSU5MSU5FX0JPWCkgewotICAgICAgICBuZXdCb3ggPSBSZW5kZXJEZXByZWNhdGVk
RmxleGlibGVCb3g6OmNyZWF0ZUFub255bW91cyhwYXJlbnQtPmRvY3VtZW50KCkpOworICAgICAg
ICBuZXdCb3ggPSBuZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94KHBhcmVudC0+ZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgYm94ICovKTsKICAgICAg
ICAgbmV3RGlzcGxheSA9IEJPWDsKICAgICB9IGVsc2UgewotICAgICAgICBuZXdCb3ggPSBSZW5k
ZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKHBhcmVudC0+ZG9jdW1lbnQoKSk7CisgICAgICAgIG5l
d0JveCA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhwYXJlbnQtPmRv
Y3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7CiAgICAgICAgIG5ld0Rpc3BsYXkgPSBCTE9D
SzsKICAgICB9CiAKQEAgLTc3NDgsNyArNzc0MSw3IEBAIFJlbmRlckJsb2NrKiBSZW5kZXJCbG9j
azo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQYXJlbnRSZW5kZXJlcihjb25zdCBSZW5kZXJP
CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVB
bm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBhcmVudC0+c3R5bGUoKSwgQkxPQ0spOwogICAgIG5l
d1N0eWxlLT5pbmhlcml0Q29sdW1uUHJvcGVydGllc0Zyb20ocGFyZW50LT5zdHlsZSgpKTsKIAot
ICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKHBh
cmVudC0+ZG9jdW1lbnQoKSk7CisgICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IG5ldyAocGFyZW50
LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhwYXJlbnQtPmRvY3VtZW50KCkgLyogYW5vbnlt
b3VzIGJveCAqLyk7CiAgICAgbmV3Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOwog
ICAgIHJldHVybiBuZXdCb3g7CiB9CkBAIC03NzU4LDcgKzc3NTEsNyBAQCBSZW5kZXJCbG9jayog
UmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0NvbHVtblNwYW5XaXRoUGFyZW50UmVuZGVyZXIo
Y29uc3QgUmVuZAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHls
ZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShwYXJlbnQtPnN0eWxlKCksIEJMT0NL
KTsKICAgICBuZXdTdHlsZS0+c2V0Q29sdW1uU3BhbihDb2x1bW5TcGFuQWxsKTsKIAotICAgIFJl
bmRlckJsb2NrKiBuZXdCb3ggPSBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKHBhcmVudC0+
ZG9jdW1lbnQoKSk7CisgICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IG5ldyAocGFyZW50LT5yZW5k
ZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhwYXJlbnQtPmRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJv
eCAqLyk7CiAgICAgbmV3Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOwogICAgIHJl
dHVybiBuZXdCb3g7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4
IDI0MGU5MzQ5MDkzMzYxMWI1MjRiOGRkZjBiY2Q5MjlmOTJhYmNkMDguLjAwYTRiY2Y2NzIyNDNk
N2Q3OWJiOTJhNWUxNTMwNTk4MjM5Mzg1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCkBAIC05MSw4ICs5MSw2IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayhDb250
YWluZXJOb2RlKik7CiAgICAgdmlydHVhbCB+UmVuZGVyQmxvY2soKTsKIAotICAgIHN0YXRpYyBS
ZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3VzKERvY3VtZW50Kik7Ci0KICAgICBSZW5kZXJPYmpl
Y3QqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IEFTU0VSVChjaGlsZHJlbigpID09IHZpcnR1YWxDaGls
ZHJlbigpKTsgcmV0dXJuIGNoaWxkcmVuKCktPmZpcnN0Q2hpbGQoKTsgfQogICAgIFJlbmRlck9i
amVjdCogbGFzdENoaWxkKCkgY29uc3QgeyBBU1NFUlQoY2hpbGRyZW4oKSA9PSB2aXJ0dWFsQ2hp
bGRyZW4oKSk7IHJldHVybiBjaGlsZHJlbigpLT5sYXN0Q2hpbGQoKTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
Y3BwCmluZGV4IGJhN2QzYzhiZjMyNjAyNmU0NDg3ODA4NGYzZmZjNjUyNTIzOTgwYmIuLjhmMGVi
NTRhMDFiODRkOGY3M2IyYjFjNTE0OWNhMzgwNjVjZTY2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBA
IC0xMTksOCArMTE5LDggQEAgcHJpdmF0ZToKICAgICBpbnQgbV9vcmRpbmFsSXRlcmF0aW9uOwog
fTsKIAotUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3goRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQpCitSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveChDb250
YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVyQmxvY2sobm9kZSkKIHsKICAgICBzZXRDaGls
ZHJlbklubGluZShmYWxzZSk7IC8vIEFsbCBvZiBvdXIgY2hpbGRyZW4gbXVzdCBiZSBibG9jay1s
ZXZlbAogICAgIG1fc3RyZXRjaGluZ0NoaWxkcmVuID0gZmFsc2U7CkBAIC0xMzAsMTMgKzEzMCw2
IEBAIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6flJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveCgpCiB7CiB9CiAKLVJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCogUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94OjpjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqIGRvY3VtZW50KQotewot
ICAgIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50
LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3goMCk7Ci0gICAgcmVu
ZGVyZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKLSAgICByZXR1cm4gcmVu
ZGVyZXI7Ci19Ci0KIHN0YXRpYyBMYXlvdXRVbml0IG1hcmdpbldpZHRoRm9yQ2hpbGQoUmVuZGVy
Qm94KiBjaGlsZCkKIHsKICAgICAvLyBBIG1hcmdpbiBiYXNpY2FsbHkgaGFzIHRocmVlIHR5cGVz
OiBmaXhlZCwgcGVyY2VudGFnZSwgYW5kIGF1dG8gKHZhcmlhYmxlKS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaAppbmRl
eCBlMGQ0YWIzYTU2NTY3NDM0OGM1ZTFmOGY2NjExOWUyNDhhNjkzMDQzLi4yYWRhMDU5ZmJmYWRi
NDUyNWJjY2RlNmI5NzhiYmQ5NDRkOTBlZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oCkBAIC0zMSwxMSArMzEs
OSBAQCBjbGFzcyBGbGV4Qm94SXRlcmF0b3I7CiAKIGNsYXNzIFJlbmRlckRlcHJlY2F0ZWRGbGV4
aWJsZUJveCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6Ci0gICAgUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94KEVsZW1lbnQqKTsKKyAgICBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3goQ29udGFpbmVyTm9kZSopOwogICAgIHZpcnR1YWwgflJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveCgpOwogCi0gICAgc3RhdGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCogY3JlYXRl
QW5vbnltb3VzKERvY3VtZW50Kik7Ci0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpIE9WRVJSSURFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwCmluZGV4IGJiMWM3
OTlmMGNmMWUzYWJhNGNlMjk5YjA5OWM5MmUwYWM5MThhMTguLjVkMTEwYjQyNTU0ZDI1Y2NjOGVm
NjNhZmE2NmY2YmMxNTliYzMxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJEZXRhaWxzTWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGV0YWlsc01hcmtlci5jcHAKQEAgLTMxLDggKzMxLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1SZW5kZXJEZXRhaWxzTWFya2Vy
OjpSZW5kZXJEZXRhaWxzTWFya2VyKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9j
ayhlbGVtZW50KQorUmVuZGVyRGV0YWlsc01hcmtlcjo6UmVuZGVyRGV0YWlsc01hcmtlcihDb250
YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVyQmxvY2sobm9kZSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmgKaW5kZXggYjYzYjE0
NTJmMjY4NGRhYWQyYTdjNDk1MzZkNmQ5MWMxNGFiMjYzOS4uN2I0NGUwMGZjNGExMzBiNmVkZGJi
ZmIxNzgzNDllM2Y0ZDc3NjEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRldGFpbHNNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRGV0YWlsc01hcmtlci5oCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgUmVuZGVyRGV0YWlsc01hcmtlciA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJs
aWM6Ci0gICAgUmVuZGVyRGV0YWlsc01hcmtlcihFbGVtZW50Kik7CisgICAgUmVuZGVyRGV0YWls
c01hcmtlcihDb250YWluZXJOb2RlKik7CiAKICAgICBlbnVtIE9yaWVudGF0aW9uIHsgVXAsIERv
d24sIExlZnQsIFJpZ2h0IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJEaWFsb2cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEaWFsb2cu
aAppbmRleCBhNjcyYzA2Yjg3NTJjZDA0MWIzZDc0N2Y4MmQwMjhlZGY0ZWEwNTY4Li40ZjM1N2Y5
NzQ0MWJjYzhjZjlmYTQxYTc0ZTA2MmZhYmIxZDQ2ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRGlhbG9nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckRpYWxvZy5oCkBAIC0zNiw4ICszNiw4IEBAIGNsYXNzIEhUTUxEaWFsb2dFbGVt
ZW50OwogCiBjbGFzcyBSZW5kZXJEaWFsb2cgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGlj
OgotICAgIGV4cGxpY2l0IFJlbmRlckRpYWxvZyhFbGVtZW50KiBlbGVtZW50KQotICAgICAgICA6
IFJlbmRlckJsb2NrKGVsZW1lbnQpCisgICAgZXhwbGljaXQgUmVuZGVyRGlhbG9nKENvbnRhaW5l
ck5vZGUqIG5vZGUpCisgICAgICAgIDogUmVuZGVyQmxvY2sobm9kZSkKICAgICB7IH0KIAogICAg
IHZpcnR1YWwgflJlbmRlckRpYWxvZygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGaWVsZHNldC5jcHAKaW5kZXggNWNkYTE1OTUwZDU2NmI0Y2Y0ZmE5NGJmOTI0YzFkMzMy
MjEyZGUxOC4uYmM0YjIyNzdhOTBiNmQ5ODdjODFmMzVkNDFjYTA4Y2I0ODk3YmU5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCkBAIC0zNiw3ICszNiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAot
UmVuZGVyRmllbGRzZXQ6OlJlbmRlckZpZWxkc2V0KEVsZW1lbnQqIGVsZW1lbnQpCitSZW5kZXJG
aWVsZHNldDo6UmVuZGVyRmllbGRzZXQoQ29udGFpbmVyTm9kZSogZWxlbWVudCkKICAgICA6IFJl
bmRlckJsb2NrKGVsZW1lbnQpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmllbGRzZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
aWVsZHNldC5oCmluZGV4IGQ3MDNmNzYwZTcwMzk4ZjM2ODRmZDg0MjllNThmNTMxOWZkNWNkY2Mu
LmFkMWUzZTE3MTUwNGVlY2E4YTBkYWY0Y2MwYzAxMGE2NDQxOTIyN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyRmllbGRzZXQgOiBwdWJsaWMgUmVuZGVyQmxvY2sg
ewogcHVibGljOgotICAgIGV4cGxpY2l0IFJlbmRlckZpZWxkc2V0KEVsZW1lbnQqKTsKKyAgICBl
eHBsaWNpdCBSZW5kZXJGaWVsZHNldChDb250YWluZXJOb2RlKik7CiAKICAgICBlbnVtIEZpbmRM
ZWdlbmRPcHRpb24geyBJZ25vcmVGbG9hdGluZ09yT3V0T2ZGbG93LCBJbmNsdWRlRmxvYXRpbmdP
ck91dE9mRmxvdyB9OwogICAgIFJlbmRlckJveCogZmluZExlZ2VuZChGaW5kTGVnZW5kT3B0aW9u
ID0gSWdub3JlRmxvYXRpbmdPck91dE9mRmxvdykgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCA2MmIzM2U0YTYwNzIzNWEyOGNm
MThjZDlkZTRiNjI0NzA2ODY5ZDBhLi5mMTg4ZWIwODZlMGYzYWZmODZkMjRhNDc4YjliNjM5ZmQ5
NmM4ODZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKQEAgLTEyMyw4ICsxMjMsOCBAQCBzdHJ1Y3QgUmVuZGVyRmxleGlibGVCb3g6OlZpb2xh
dGlvbiB7CiB9OwogCiAKLVJlbmRlckZsZXhpYmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveChFbGVt
ZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKK1JlbmRlckZsZXhpYmxl
Qm94OjpSZW5kZXJGbGV4aWJsZUJveChDb250YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVy
QmxvY2sobm9kZSkKICAgICAsIG1fb3JkZXJJdGVyYXRvcih0aGlzKQogICAgICwgbV9udW1iZXJP
ZkluRmxvd0NoaWxkcmVuT25GaXJzdExpbmUoLTEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCmluZGV4IGUzOTBmNzdiMDUxYzEzZGUzZTM5YzM0MmRi
MjU1N2FmZTA4ZTI5NmMuLjY1YjllMDBjZmNlYWI2MWEyNmNhYjQ0OTdmNThkNWZiNjkwMzM2MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC0z
Nyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyRmxleGlibGVC
b3ggOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgotICAgIFJlbmRlckZsZXhpYmxlQm94
KEVsZW1lbnQqKTsKKyAgICBSZW5kZXJGbGV4aWJsZUJveChDb250YWluZXJOb2RlKik7CiAgICAg
dmlydHVhbCB+UmVuZGVyRmxleGlibGVCb3goKTsKIAogICAgIHZpcnR1YWwgY29uc3QgY2hhciog
cmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IGJhOTNiMWQ3MGI0NzE4ZmUyMTM4ZWFjNmQ4NWJl
YmU1ODFmZmE0ZjYuLjZjNTczYzIyMjFjNzkwMzY3NWYwN2RkMTlkODljNTg3ZDlkMzhjOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTQ1
LDEwICs0NSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IFJlbmRlckZs
b3dUaHJlYWQgc2hvdWxkIGVpdGhlciBiZSBhbm9ueW1vdXMgb3IgYmUgYXNzb2NpYXRlZCB3aXRo
IHNvbWUgRWxlbWVudC4KLS8vIEl0IHNob3VsZCBub3QgYmUgY29uc3RydWN0ZWQgYXMgYSByZW5k
ZXJlciBmb3IgdGhlIERvY3VtZW50LgotUmVuZGVyRmxvd1RocmVhZDo6UmVuZGVyRmxvd1RocmVh
ZChEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhkb2N1bWVudCkKK1JlbmRl
ckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoQ29udGFpbmVyTm9kZSogbm9kZSkKKyAgICA6
IFJlbmRlckJsb2NrKG5vZGUpCiAgICAgLCBtX3JlZ2lvbnNJbnZhbGlkYXRlZChmYWxzZSkKICAg
ICAsIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbFdpZHRoKHRydWUpCiAgICAgLCBtX3JlZ2lv
bnNIYXZlVW5pZm9ybUxvZ2ljYWxIZWlnaHQodHJ1ZSkKQEAgLTU3LDcgKzU1LDggQEAgUmVuZGVy
Rmxvd1RocmVhZDo6UmVuZGVyRmxvd1RocmVhZChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBt
X2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoZmFsc2UpCiAgICAgLCBtX3BhZ2VMb2dp
Y2FsSGVpZ2h0Q2hhbmdlZChmYWxzZSkKIHsKLSAgICBBU1NFUlQoZG9jdW1lbnQtPmNzc1JlZ2lv
bnNFbmFibGVkKCkpOworICAgIEFTU0VSVChub2RlLT5kb2N1bWVudCgpLT5jc3NSZWdpb25zRW5h
YmxlZCgpKTsKKyAgICBzZXRJc0Fub255bW91cyhmYWxzZSk7CiAgICAgc2V0SW5SZW5kZXJGbG93
VGhyZWFkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5oCmluZGV4IDZhZDBlYTg5NmNkMzc1NDBjNTE0ODRkNTZiMThmY2MxMDhhMzQxOGUuLjBhZTJk
YTViMTZmZTI5M2NjMDA3NDRlZmRlODlhMmUwOTdkNjBiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtNTMsNyArNTMsNyBAQCB0eXBlZGVmIExp
c3RIYXNoU2V0PFJlbmRlclJlZ2lvbio+IFJlbmRlclJlZ2lvbkxpc3Q7CiAKIGNsYXNzIFJlbmRl
ckZsb3dUaHJlYWQ6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6Ci0gICAgUmVuZGVyRmxv
d1RocmVhZChEb2N1bWVudCopOworICAgIFJlbmRlckZsb3dUaHJlYWQoQ29udGFpbmVyTm9kZSop
OwogICAgIHZpcnR1YWwgflJlbmRlckZsb3dUaHJlYWQoKSB7IH07CiAgICAgCiAgICAgdmlydHVh
bCBib29sIGlzUmVuZGVyRmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAppbmRleCBmMTNjMzAy
NzM0MzRmMmIyYzNkM2JmMjg2Y2Q3YjYzYmE3MGVjYTA4Li4yN2JlOTgwYjBiYjNlY2ViNmJiMDEz
YTYzMTU1MjE3Njc5MmM2NzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRnVsbFNjcmVlbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZ1bGxTY3JlZW4uY3BwCkBAIC0zOSwxMCArMzksOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIGNsYXNzIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlciA6IHB1YmxpYyBSZW5kZXJCbG9j
ayB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9sZGVyKFJlbmRlckZ1bGxT
Y3JlZW4qIG93bmVyKSAKLSAgICAgICAgOiBSZW5kZXJCbG9jaygwKQorICAgICAgICA6IFJlbmRl
ckJsb2NrKG93bmVyLT5kb2N1bWVudCgpKQogICAgICAgICAsIG1fb3duZXIob3duZXIpIAotICAg
IHsKLSAgICAgICAgc2V0RG9jdW1lbnRGb3JBbm9ueW1vdXMob3duZXItPmRvY3VtZW50KCkpOwor
ICAgIHsgCiAgICAgfQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJGdWxsU2Ny
ZWVuUGxhY2Vob2xkZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC01NiwyMCArNTUsMTMg
QEAgdm9pZCBSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXI6OndpbGxCZURlc3Ryb3llZCgpCiAg
ICAgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCi1SZW5kZXJGdWxsU2NyZWVu
OjpSZW5kZXJGdWxsU2NyZWVuKCkKLSAgICA6IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCgw
KQorUmVuZGVyRnVsbFNjcmVlbjo6UmVuZGVyRnVsbFNjcmVlbihEb2N1bWVudCogZG9jdW1lbnQp
CisgICAgOiBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3goZG9jdW1lbnQpCiAgICAgLCBtX3Bs
YWNlaG9sZGVyKDApCi17Cit7IAogICAgIHNldFJlcGxhY2VkKGZhbHNlKTsgCiB9CiAKLVJlbmRl
ckZ1bGxTY3JlZW4qIFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCog
ZG9jdW1lbnQpCi17Ci0gICAgUmVuZGVyRnVsbFNjcmVlbiogcmVuZGVyZXIgPSBuZXcgKGRvY3Vt
ZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJGdWxsU2NyZWVuKCk7Ci0gICAgcmVuZGVyZXItPnNl
dERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKLSAgICByZXR1cm4gcmVuZGVyZXI7Ci19
Ci0KIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6d2lsbEJlRGVzdHJveWVkKCkKIHsKICAgICBpZiAo
bV9wbGFjZWhvbGRlcikgewpAQCAtMTE1LDcgKzEwNyw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBjcmVhdGVGdWxsU2NyZWVuU3R5bGUoKQogCiBSZW5kZXJPYmplY3QqIFJlbmRl
ckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyT2Jq
ZWN0KiBwYXJlbnQsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBSZW5kZXJGdWxsU2NyZWVu
KiBmdWxsc2NyZWVuUmVuZGVyZXIgPSBSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVBbm9ueW1vdXMo
ZG9jdW1lbnQpOworICAgIFJlbmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5SZW5kZXJlciA9IG5l
dyAoZG9jdW1lbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlckZ1bGxTY3JlZW4oZG9jdW1lbnQpOwog
ICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+c2V0U3R5bGUoY3JlYXRlRnVsbFNjcmVlblN0eWxlKCkp
OwogICAgIGlmIChwYXJlbnQgJiYgIXBhcmVudC0+aXNDaGlsZEFsbG93ZWQoZnVsbHNjcmVlblJl
bmRlcmVyLCBmdWxsc2NyZWVuUmVuZGVyZXItPnN0eWxlKCkpKSB7CiAgICAgICAgIGZ1bGxzY3Jl
ZW5SZW5kZXJlci0+ZGVzdHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
dWxsU2NyZWVuLmgKaW5kZXggNTA4M2ZlZDQ0ZTVmYTJhM2JlNjc1NzgwNGFmOTA2OWYxOTllYmVl
My4uOTkxN2FhOTY0MTI0NDZmMjY0Y2RkZTg5NWZkYTdhNTdkOGE2YTE0NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCkBAIC0zNCw4ICszNCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyRnVsbFNjcmVlbiA6IHB1YmxpYyBSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3ggewogcHVibGljOgotICAgIHN0YXRpYyBSZW5kZXJGdWxs
U2NyZWVuKiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqKTsKLQorICAgIFJlbmRlckZ1bGxTY3Jl
ZW4oRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJGdWxsU2NyZWVuKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgp
IGNvbnN0IHsgcmV0dXJuICJSZW5kZXJGdWxsU2NyZWVuIjsgfQogCkBAIC00OCw5ICs0Nyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVud3JhcFJlbmRlcmVyKCk7CiAKIHByaXZhdGU6Ci0gICAgUmVu
ZGVyRnVsbFNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKLQor
ICAgIAogcHJvdGVjdGVkOgogICAgIFJlbmRlckJsb2NrKiBtX3BsYWNlaG9sZGVyOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCA3OWQ0ZjJjM2M0OTcyOGU4
ZWI4YmE3YWYwOTg5NjJkZDZmMzFmODU5Li42NmFlOTJmOGIyOGYwYTEyNTAyN2RkM2MxNTQ2NTg0
ZmI2NTM0MDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC00
NSw4ICs0NSw4IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IG1fbWF4QnJlYWR0aDsKIH07CiAK
LVJlbmRlckdyaWQ6OlJlbmRlckdyaWQoRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJs
b2NrKGVsZW1lbnQpCitSZW5kZXJHcmlkOjpSZW5kZXJHcmlkKENvbnRhaW5lck5vZGUqIG5vZGUp
CisgICAgOiBSZW5kZXJCbG9jayhub2RlKQogewogICAgIC8vIEFsbCBvZiBvdXIgY2hpbGRyZW4g
bXVzdCBiZSBibG9jayBsZXZlbC4KICAgICBzZXRDaGlsZHJlbklubGluZShmYWxzZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCAzM2U5YjM0NDU5Mjc0MmVjZmRkYWMz
ZjZhMGFjMWY0ZmQ5ZDc3OGQxLi5hNTczOGE4OGJiZTg2N2YyMzNlOTgyMmM1MDVjOTAyZDdjYzFj
Mjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTM0LDcgKzM0LDcg
QEAgY2xhc3MgR3JpZFRyYWNrOwogCiBjbGFzcyBSZW5kZXJHcmlkIDogcHVibGljIFJlbmRlckJs
b2NrIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJHcmlkKEVsZW1lbnQqKTsKKyAgICBSZW5kZXJHcmlk
KENvbnRhaW5lck5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJHcmlkKCk7CiAKICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDFmMzk3ZDYwNjAwZWM3NjlhMzM3MmZj
YjllZTdiMTcwY2ZhYmY5ZGYuLmI5ODcyMzY0MTY3ZTIyNmZkOTBjNTFiNmZhYWRlOTU2NzhkOTA1
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtNTIsOCAr
NTIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CiAKLVJlbmRlckltYWdlOjpSZW5kZXJJbWFnZShFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVu
ZGVyUmVwbGFjZWQoZWxlbWVudCwgSW50U2l6ZSgpKQorUmVuZGVySW1hZ2U6OlJlbmRlckltYWdl
KENvbnRhaW5lck5vZGUqIG5vZGUpCisgICAgOiBSZW5kZXJSZXBsYWNlZChub2RlLCBJbnRTaXpl
KCkpCiAgICAgLCBtX25lZWRzVG9TZXRTaXplRm9yQWx0VGV4dChmYWxzZSkKICAgICAsIG1fZGlk
SW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoZmFsc2UpCiAgICAgLCBtX2lzR2Vu
ZXJhdGVkQ29udGVudChmYWxzZSkKQEAgLTYxLDEzICs2MSw2IEBAIFJlbmRlckltYWdlOjpSZW5k
ZXJJbWFnZShFbGVtZW50KiBlbGVtZW50KQogICAgIHVwZGF0ZUFsdFRleHQoKTsKIH0KIAotUmVu
ZGVySW1hZ2UqIFJlbmRlckltYWdlOjpjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqIGRvY3VtZW50
KQotewotICAgIFJlbmRlckltYWdlKiBpbWFnZSA9IG5ldyAoZG9jdW1lbnQtPnJlbmRlckFyZW5h
KCkpIFJlbmRlckltYWdlKDApOwotICAgIGltYWdlLT5zZXREb2N1bWVudEZvckFub255bW91cyhk
b2N1bWVudCk7Ci0gICAgcmV0dXJuIGltYWdlOwotfQotCiBSZW5kZXJJbWFnZTo6flJlbmRlcklt
YWdlKCkKIHsKICAgICBBU1NFUlQobV9pbWFnZVJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmgKaW5kZXggMGRlYjFkNWJiZmRhNzMwYjljMzM3NWExZDAyN2M5Nzdm
NDkyNjcwZi4uM2M3YmY4YmRlMjg3YjRlYjhkM2Y4YjU2NTkxMWQ0YTg0ZTVhY2MzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTM2LDExICszNiw5IEBAIGNsYXNz
IEhUTUxNYXBFbGVtZW50OwogCiBjbGFzcyBSZW5kZXJJbWFnZSA6IHB1YmxpYyBSZW5kZXJSZXBs
YWNlZCB7CiBwdWJsaWM6Ci0gICAgUmVuZGVySW1hZ2UoRWxlbWVudCopOworICAgIFJlbmRlcklt
YWdlKENvbnRhaW5lck5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJJbWFnZSgpOwogCi0gICAg
c3RhdGljIFJlbmRlckltYWdlKiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqKTsKLQogICAgIHZv
aWQgc2V0SW1hZ2VSZXNvdXJjZShQYXNzT3duUHRyPFJlbmRlckltYWdlUmVzb3VyY2U+KTsKIAog
ICAgIFJlbmRlckltYWdlUmVzb3VyY2UqIGltYWdlUmVzb3VyY2UoKSB7IHJldHVybiBtX2ltYWdl
UmVzb3VyY2UuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKaW5kZXggYjI1MGY3ZDI4N2I4MDBlZTNmM2RhMDU3NWJjYjJlMjUzYzU1YWM5OS4uMTkzMDU1
NjliYjdjYzM0MzVhOWRiNGZkMTFmNWYwODFiMzJmMmUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTQ5LDIwICs0OSwxMyBAQCB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbmRlcklubGluZTo6UmVuZGVySW5s
aW5lKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCb3hNb2RlbE9iamVjdChlbGVtZW50
KQorUmVuZGVySW5saW5lOjpSZW5kZXJJbmxpbmUoQ29udGFpbmVyTm9kZSogbm9kZSkKKyAgICA6
IFJlbmRlckJveE1vZGVsT2JqZWN0KG5vZGUpCiAgICAgLCBtX2Fsd2F5c0NyZWF0ZUxpbmVCb3hl
cyhmYWxzZSkKIHsKICAgICBzZXRDaGlsZHJlbklubGluZSh0cnVlKTsKIH0KIAotUmVuZGVySW5s
aW5lKiBSZW5kZXJJbmxpbmU6OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCogZG9jdW1lbnQpCi17
Ci0gICAgUmVuZGVySW5saW5lKiByZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQtPnJlbmRlckFyZW5h
KCkpIFJlbmRlcklubGluZSgwKTsKLSAgICByZW5kZXJlci0+c2V0RG9jdW1lbnRGb3JBbm9ueW1v
dXMoZG9jdW1lbnQpOwotICAgIHJldHVybiByZW5kZXJlcjsKLX0KLQogdm9pZCBSZW5kZXJJbmxp
bmU6OndpbGxCZURlc3Ryb3llZCgpCiB7CiAjaWYgIUFTU0VSVF9ESVNBQkxFRApAQCAtMzE3LDcg
KzMxMCw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjphZGRDaGlsZElnbm9yaW5nQ29udGludWF0aW9u
KFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iCiAgICAgICAgIGlmIChSZW5kZXJPYmpl
Y3QqIHBvc2l0aW9uZWRBbmNlc3RvciA9IGluRmxvd1Bvc2l0aW9uZWRJbmxpbmVBbmNlc3Rvcih0
aGlzKSkKICAgICAgICAgICAgIG5ld1N0eWxlLT5zZXRQb3NpdGlvbihwb3NpdGlvbmVkQW5jZXN0
b3ItPnN0eWxlKCktPnBvc2l0aW9uKCkpOwogCi0gICAgICAgIFJlbmRlckJsb2NrKiBuZXdCb3gg
PSBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKGRvY3VtZW50KCkpOworICAgICAgICBSZW5k
ZXJCbG9jayogbmV3Qm94ID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhkb2N1bWVu
dCgpIC8qIGFub255bW91cyBib3ggKi8pOwogICAgICAgICBuZXdCb3gtPnNldFN0eWxlKG5ld1N0
eWxlLnJlbGVhc2UoKSk7CiAgICAgICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBvbGRDb250aW51
YXRpb24gPSBjb250aW51YXRpb24oKTsKICAgICAgICAgc2V0Q29udGludWF0aW9uKG5ld0JveCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKaW5kZXggYTAxZjVkYmNhOTNl
MmZlMDAxZDM5MmFkOWFiNjZmZWQ2OGIzODk2OS4uMTc2MDhhYTdlNzNiYTFhZTQxM2QwYjkxNGJk
M2MxMzUxZjhkZGEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApA
QCAtMzMsMTcgKzMzLDEzIEBAIGNsYXNzIFBvc2l0aW9uOwogCiBjbGFzcyBSZW5kZXJJbmxpbmUg
OiBwdWJsaWMgUmVuZGVyQm94TW9kZWxPYmplY3QgewogcHVibGljOgotICAgIGV4cGxpY2l0IFJl
bmRlcklubGluZShFbGVtZW50Kik7Ci0KLSAgICBzdGF0aWMgUmVuZGVySW5saW5lKiBjcmVhdGVB
bm9ueW1vdXMoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBSZW5kZXJJbmxpbmUoQ29udGFpbmVy
Tm9kZSopOwogCiAgICAgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3QgeyBBU1NFUlQo
Y2hpbGRyZW4oKSA9PSB2aXJ0dWFsQ2hpbGRyZW4oKSk7IHJldHVybiBjaGlsZHJlbigpLT5maXJz
dENoaWxkKCk7IH0KICAgICBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZCgpIGNvbnN0IHsgQVNTRVJU
KGNoaWxkcmVuKCkgPT0gdmlydHVhbENoaWxkcmVuKCkpOyByZXR1cm4gY2hpbGRyZW4oKS0+bGFz
dENoaWxkKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIG5l
d0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAKLSAgICBFbGVtZW50KiBu
b2RlKCkgY29uc3QgeyByZXR1cm4gdG9FbGVtZW50KFJlbmRlckJveE1vZGVsT2JqZWN0Ojpub2Rl
KCkpOyB9Ci0KICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luTGVmdCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IDc0N2RkMjhkYzkyMjRmYjM5NjAwZmI1MjZkNWY5Zjk4MzRkMzM0NGQu
LjRlNjhlOGVhODlmYTVmYmMxZTAwOWM3NTdlN2UyMTQyYTQwOTdmNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNTU1Nyw3ICs1NTU3LDcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsQ29ybmVyU3R5bGUoKQogICAgIFJlZlB0cjxSZW5kZXJT
dHlsZT4gY29ybmVyID0gcmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkgPyBhY3R1YWxSZW5k
ZXJlci0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShTQ1JPTExCQVJfQ09STkVSLCBhY3R1YWxSZW5k
ZXJlci0+c3R5bGUoKSkgOiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPigwKTsKICAgICBpZiAoY29y
bmVyKSB7CiAgICAgICAgIGlmICghbV9zY3JvbGxDb3JuZXIpIHsKLSAgICAgICAgICAgIG1fc2Ny
b2xsQ29ybmVyID0gUmVuZGVyU2Nyb2xsYmFyUGFydDo6Y3JlYXRlQW5vbnltb3VzKHJlbmRlcmVy
KCktPmRvY3VtZW50KCkpOworICAgICAgICAgICAgbV9zY3JvbGxDb3JuZXIgPSBuZXcgKHJlbmRl
cmVyKCktPnJlbmRlckFyZW5hKCkpIFJlbmRlclNjcm9sbGJhclBhcnQocmVuZGVyZXIoKS0+ZG9j
dW1lbnQoKSk7CiAgICAgICAgICAgICBtX3Njcm9sbENvcm5lci0+c2V0UGFyZW50KHJlbmRlcmVy
KCkpOwogICAgICAgICB9CiAgICAgICAgIG1fc2Nyb2xsQ29ybmVyLT5zZXRTdHlsZShjb3JuZXIu
cmVsZWFzZSgpKTsKQEAgLTU1NzMsNyArNTU3Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZVJlc2l6ZXJTdHlsZSgpCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiByZXNpemVyID0gcmVuZGVy
ZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkgPyBhY3R1YWxSZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1
ZG9TdHlsZShSRVNJWkVSLCBhY3R1YWxSZW5kZXJlci0+c3R5bGUoKSkgOiBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPigwKTsKICAgICBpZiAocmVzaXplcikgewogICAgICAgICBpZiAoIW1fcmVzaXpl
cikgewotICAgICAgICAgICAgbV9yZXNpemVyID0gUmVuZGVyU2Nyb2xsYmFyUGFydDo6Y3JlYXRl
QW5vbnltb3VzKHJlbmRlcmVyKCktPmRvY3VtZW50KCkpOworICAgICAgICAgICAgbV9yZXNpemVy
ID0gbmV3IChyZW5kZXJlcigpLT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJTY3JvbGxiYXJQYXJ0KHJl
bmRlcmVyKCktPmRvY3VtZW50KCkpOwogICAgICAgICAgICAgbV9yZXNpemVyLT5zZXRQYXJlbnQo
cmVuZGVyZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAgbV9yZXNpemVyLT5zZXRTdHlsZShyZXNp
emVyLnJlbGVhc2UoKSk7CkBAIC01NTkxLDcgKzU1OTEsNyBAQCBSZW5kZXJMYXllciogUmVuZGVy
TGF5ZXI6OnJlZmxlY3Rpb25MYXllcigpIGNvbnN0CiB2b2lkIFJlbmRlckxheWVyOjpjcmVhdGVS
ZWZsZWN0aW9uKCkKIHsKICAgICBBU1NFUlQoIW1fcmVmbGVjdGlvbik7Ci0gICAgbV9yZWZsZWN0
aW9uID0gUmVuZGVyUmVwbGljYTo6Y3JlYXRlQW5vbnltb3VzKHJlbmRlcmVyKCktPmRvY3VtZW50
KCkpOworICAgIG1fcmVmbGVjdGlvbiA9IG5ldyAocmVuZGVyZXIoKS0+cmVuZGVyQXJlbmEoKSkg
UmVuZGVyUmVwbGljYShyZW5kZXJlcigpLT5kb2N1bWVudCgpKTsKICAgICBtX3JlZmxlY3Rpb24t
PnNldFBhcmVudChyZW5kZXJlcigpKTsgLy8gV2UgY3JlYXRlIGEgMS13YXkgY29ubmVjdGlvbi4K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAKaW5kZXgg
YmZjNjJiMWM5YTllZGMwZmZmOWI1YjkzODY1NzdhMmQ2OTgyNDgzYy4uOTFiZTgzNGNkNWI4N2Ji
NGFkNjY5ZDc3NmQxN2NjMDZjZjZjZWYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEl0ZW0uY3BwCkBAIC0zOSw4ICszOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotUmVuZGVyTGlzdEl0ZW06OlJlbmRlckxp
c3RJdGVtKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorUmVu
ZGVyTGlzdEl0ZW06OlJlbmRlckxpc3RJdGVtKENvbnRhaW5lck5vZGUqIG5vZGUpCisgICAgOiBS
ZW5kZXJCbG9jayhub2RlKQogICAgICwgbV9tYXJrZXIoMCkKICAgICAsIG1faGFzRXhwbGljaXRW
YWx1ZShmYWxzZSkKICAgICAsIG1faXNWYWx1ZVVwVG9EYXRlKGZhbHNlKQpAQCAtNjAsNyArNjAs
NyBAQCB2b2lkIFJlbmRlckxpc3RJdGVtOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2Ug
ZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZAogICAgICAgICAvLyB1cCAoZS5nLiwgaW4gc29t
ZSBkZWVwbHkgbmVzdGVkIGxpbmUgYm94KS4gU2VlIENTUzMgc3BlYy4KICAgICAgICAgbmV3U3R5
bGUtPmluaGVyaXRGcm9tKHN0eWxlKCkpOyAKICAgICAgICAgaWYgKCFtX21hcmtlcikKLSAgICAg
ICAgICAgIG1fbWFya2VyID0gUmVuZGVyTGlzdE1hcmtlcjo6Y3JlYXRlQW5vbnltb3VzKHRoaXMp
OworICAgICAgICAgICAgbV9tYXJrZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckxpc3RN
YXJrZXIodGhpcyk7CiAgICAgICAgIG1fbWFya2VyLT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNl
KCkpOwogICAgIH0gZWxzZSBpZiAobV9tYXJrZXIpIHsKICAgICAgICAgbV9tYXJrZXItPmRlc3Ry
b3koKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRl
bS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKaW5kZXggYjhh
OGMzMTcwOTNmNDkzYzA4YzdmMDg4ZjJiOWRmNWUwNmQ0NWVhNS4uYTE1NTQ5ZTRkNDFjYTUzOGIy
YTFlZjIyNjM1YmQyYjUzNjVmYTI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RJdGVtLmgKQEAgLTMxLDcgKzMxLDcgQEAgY2xhc3MgUmVuZGVyTGlzdE1hcmtlcjsKIAog
Y2xhc3MgUmVuZGVyTGlzdEl0ZW0gOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgotICAg
IGV4cGxpY2l0IFJlbmRlckxpc3RJdGVtKEVsZW1lbnQqKTsKKyAgICBleHBsaWNpdCBSZW5kZXJM
aXN0SXRlbShDb250YWluZXJOb2RlKik7CiAKICAgICBpbnQgdmFsdWUoKSBjb25zdCB7IGlmICgh
bV9pc1ZhbHVlVXBUb0RhdGUpIHVwZGF0ZVZhbHVlTm93KCk7IHJldHVybiBtX3ZhbHVlOyB9CiAg
ICAgdm9pZCB1cGRhdGVWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RNYXJrZXIuY3BwCmluZGV4IDljYzY4MjI0NmE5MzQxNmI0YzUxZjFiN2RlNDM4MmU4Mjlm
MWExM2QuLjJjZDg4MmJhMjZiNWQ1MzRkZWVmNWQ5NWQ0NTUzZmEwOTE5MzRkZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKQEAgLTEwNTUsNyAr
MTA1NSw3IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0eWxlVHlwZSB0eXBlLCBpbnQg
dmFsdWUpCiB9CiAKIFJlbmRlckxpc3RNYXJrZXI6OlJlbmRlckxpc3RNYXJrZXIoUmVuZGVyTGlz
dEl0ZW0qIGl0ZW0pCi0gICAgOiBSZW5kZXJCb3goMCkKKyAgICA6IFJlbmRlckJveChpdGVtLT5k
b2N1bWVudCgpKQogICAgICwgbV9saXN0SXRlbShpdGVtKQogewogICAgIC8vIGluaXQgUmVuZGVy
T2JqZWN0IGF0dHJpYnV0ZXMKQEAgLTEwNjksMTQgKzEwNjksNiBAQCBSZW5kZXJMaXN0TWFya2Vy
Ojp+UmVuZGVyTGlzdE1hcmtlcigpCiAgICAgICAgIG1faW1hZ2UtPnJlbW92ZUNsaWVudCh0aGlz
KTsKIH0KIAotUmVuZGVyTGlzdE1hcmtlciogUmVuZGVyTGlzdE1hcmtlcjo6Y3JlYXRlQW5vbnlt
b3VzKFJlbmRlckxpc3RJdGVtKiBpdGVtKQotewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGl0
ZW0tPmRvY3VtZW50KCk7Ci0gICAgUmVuZGVyTGlzdE1hcmtlciogcmVuZGVyZXIgPSBuZXcgKGRv
Y3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJMaXN0TWFya2VyKGl0ZW0pOwotICAgIHJlbmRl
cmVyLT5zZXREb2N1bWVudEZvckFub255bW91cyhkb2N1bWVudCk7Ci0gICAgcmV0dXJuIHJlbmRl
cmVyOwotfQotCiB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnN0eWxlV2lsbENoYW5nZShTdHlsZURp
ZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQogewogICAgIGlmIChz
dHlsZSgpICYmIChuZXdTdHlsZS0+bGlzdFN0eWxlUG9zaXRpb24oKSAhPSBzdHlsZSgpLT5saXN0
U3R5bGVQb3NpdGlvbigpIHx8IG5ld1N0eWxlLT5saXN0U3R5bGVUeXBlKCkgIT0gc3R5bGUoKS0+
bGlzdFN0eWxlVHlwZSgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5oCmluZGV4IGYxM2IyMWVhYzk5YTNhNzY0M2UxYTJhMDhiOGUxMWZjMDMxZjU4ZjkuLmZk
ZTI4MDc0ZTkzZmU3MzJiOTZjMzY5ODhiM2U5OTI5NGY0NDY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaApAQCAtMzUsOCArMzUsNyBAQCBTdHJpbmcg
bGlzdE1hcmtlclRleHQoRUxpc3RTdHlsZVR5cGUsIGludCB2YWx1ZSk7CiAvLyBUaGUgUmVuZGVy
TGlzdE1hcmtlciBhbHdheXMgaGFzIHRvIGJlIGEgY2hpbGQgb2YgYSBSZW5kZXJMaXN0SXRlbS4K
IGNsYXNzIFJlbmRlckxpc3RNYXJrZXIgOiBwdWJsaWMgUmVuZGVyQm94IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVuZGVyTGlzdE1hcmtlciogY3JlYXRlQW5vbnltb3VzKFJlbmRlckxpc3RJdGVt
Kik7Ci0KKyAgICBSZW5kZXJMaXN0TWFya2VyKFJlbmRlckxpc3RJdGVtKik7CiAgICAgdmlydHVh
bCB+UmVuZGVyTGlzdE1hcmtlcigpOwogCiAgICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3Qg
eyByZXR1cm4gbV90ZXh0OyB9CkBAIC00OSw4ICs0OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZU1hcmdpbnNBbmRDb250ZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgUmVuZGVyTGlzdE1hcmtl
cihSZW5kZXJMaXN0SXRlbSopOwotCiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1l
KCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckxpc3RNYXJrZXIiOyB9CiAgICAgdmlydHVhbCB2b2lk
IGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CmluZGV4IDY0YzQyMjQ0MmJhYTc4ZTViZTllOWFmNDRmNjk5NTU2N2E5ZjM3NTAuLmI5ZDc1MzUx
MWYxYjQ3YTg2NjQ0NTQ5YzA1NzM2ZGQ1OTBhZDIxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMzUs
OCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbmRlck1lZGlhVm9sdW1lU2xp
ZGVyQ29udGFpbmVyOjpSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcihFbGVtZW50KiBl
bGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKK1JlbmRlck1lZGlhVm9sdW1lU2xp
ZGVyQ29udGFpbmVyOjpSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcihDb250YWluZXJO
b2RlKiBub2RlKQorICAgIDogUmVuZGVyQmxvY2sobm9kZSkKIHsKIH0KIApAQCAtNTksOCArNTks
OCBAQCB2b2lkIFJlbmRlck1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOjpsYXlvdXQoKQogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVJlbmRlck1lZGlhQ29udHJvbFRpbWVE
aXNwbGF5OjpSZW5kZXJNZWRpYUNvbnRyb2xUaW1lRGlzcGxheShFbGVtZW50KiBlbGVtZW50KQot
ICAgIDogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94KGVsZW1lbnQpCitSZW5kZXJNZWRpYUNv
bnRyb2xUaW1lRGlzcGxheTo6UmVuZGVyTWVkaWFDb250cm9sVGltZURpc3BsYXkoQ29udGFpbmVy
Tm9kZSogbm9kZSkKKyAgICA6IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveChub2RlKQogewog
fQogCkBAIC04Myw4ICs4Myw4IEBAIHZvaWQgUmVuZGVyTWVkaWFDb250cm9sVGltZURpc3BsYXk6
OmxheW91dCgpCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLVJlbmRlclRleHRUcmFja0Nv
bnRhaW5lckVsZW1lbnQ6OlJlbmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRWxlbWVudCog
ZWxlbWVudCkKLSAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQpCitSZW5kZXJUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50OjpSZW5kZXJUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KENvbnRhaW5lck5v
ZGUqIG5vZGUpCisgICAgOiBSZW5kZXJCbG9jayhub2RlKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5oCmluZGV4
IDFjYjcwYjJkZmMzN2I4N2Q2M2ViNDgyZDhmYzFiNTVhNGY2ZTAxNjcuLjJkYzIwYjM0MGUzNTFh
YzE4Y2VlZjRmZjZiNDcwM2QyZDM2NzQ3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC0zOCw3ICszOCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250
YWluZXIgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgotICAgIFJlbmRlck1lZGlhVm9s
dW1lU2xpZGVyQ29udGFpbmVyKEVsZW1lbnQqKTsKKyAgICBSZW5kZXJNZWRpYVZvbHVtZVNsaWRl
ckNvbnRhaW5lcihDb250YWluZXJOb2RlKik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGxheW91dCgpOwpAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBSZW5kZXJNZWRp
YUNvbnRyb2xUaW1lRGlzcGxheSA6IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gg
ewogcHVibGljOgotICAgIFJlbmRlck1lZGlhQ29udHJvbFRpbWVEaXNwbGF5KEVsZW1lbnQqKTsK
KyAgICBSZW5kZXJNZWRpYUNvbnRyb2xUaW1lRGlzcGxheShDb250YWluZXJOb2RlKik7CiAKIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwpAQCAtNjAsNyArNjAsNyBAQCBwcml2
YXRlOgogCiBjbGFzcyBSZW5kZXJUZXh0VHJhY2tDb250YWluZXJFbGVtZW50IDogcHVibGljIFJl
bmRlckJsb2NrIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
KEVsZW1lbnQqKTsKKyAgICBSZW5kZXJUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KENvbnRhaW5l
ck5vZGUqKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAKaW5k
ZXggODE5ODM4M2Q3NDRlNGViYzExNDFkYzMyMTY2MzQ4MjUyNDZhYjIwMi4uZDMxYTZkMWEwNzZj
ZWExOGI3NWZiMjdjZTMzZWViMWJjYmEyODE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcApAQCAtMzMsOCArMzMsOCBAQCB1
c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbmRlck11bHRp
Q29sdW1uQmxvY2s6OlJlbmRlck11bHRpQ29sdW1uQmxvY2soRWxlbWVudCogZWxlbWVudCkKLSAg
ICA6IFJlbmRlckJsb2NrKGVsZW1lbnQpCitSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpSZW5kZXJN
dWx0aUNvbHVtbkJsb2NrKENvbnRhaW5lck5vZGUqIG5vZGUpCisgICAgOiBSZW5kZXJCbG9jayhu
b2RlKQogICAgICwgbV9mbG93VGhyZWFkKDApCiAgICAgLCBtX2NvbHVtbkNvdW50KDEpCiAgICAg
LCBtX2NvbHVtbldpZHRoKDApCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBSZW5kZXJNdWx0aUNv
bHVtbkJsb2NrOjplbnN1cmVDb2x1bW5TZXRzKCkKIAogICAgIFJlbmRlck11bHRpQ29sdW1uU2V0
KiBjb2x1bW5TZXQgPSBmaXJzdENoaWxkKCktPmlzUmVuZGVyTXVsdGlDb2x1bW5TZXQoKSA/IHRv
UmVuZGVyTXVsdGlDb2x1bW5TZXQoZmlyc3RDaGlsZCgpKSA6IDA7CiAgICAgaWYgKCFjb2x1bW5T
ZXQpIHsKLSAgICAgICAgY29sdW1uU2V0ID0gUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmNyZWF0ZUFu
b255bW91cyhmbG93VGhyZWFkKCkpOworICAgICAgICBjb2x1bW5TZXQgPSBuZXcgKHJlbmRlckFy
ZW5hKCkpIFJlbmRlck11bHRpQ29sdW1uU2V0KGRvY3VtZW50KCksIGZsb3dUaHJlYWQoKSk7CiAg
ICAgICAgIGNvbHVtblNldC0+c2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0
eWxlV2l0aERpc3BsYXkoc3R5bGUoKSwgQkxPQ0spKTsKICAgICAgICAgUmVuZGVyQmxvY2s6OmFk
ZENoaWxkKGNvbHVtblNldCwgZmlyc3RDaGlsZCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaAppbmRleCBkODI4M2ZkYzUw
NmNmYzRhOWYyZDM2YTc2YmU5OWNjNGE5MTkxZWNhLi45NzUzY2YwMDFjODMxOTA2Mzk2NzUyZTMz
N2E1MmRlZmJmMmI4MzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTXVsdGlDb2x1bW5CbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNdWx0aUNvbHVtbkJsb2NrLmgKQEAgLTM1LDggKzM1LDggQEAgY2xhc3MgUmVuZGVyTXVsdGlD
b2x1bW5GbG93VGhyZWFkOwogCiBjbGFzcyBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrIDogcHVibGlj
IFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKEVsZW1l
bnQqKTsKLQorICAgIFJlbmRlck11bHRpQ29sdW1uQmxvY2soQ29udGFpbmVyTm9kZSopOworICAg
IAogICAgIExheW91dFVuaXQgY29sdW1uSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5I
ZWlnaHQ7IH0KICAgICB2b2lkIHNldENvbHVtbkhlaWdodChMYXlvdXRVbml0IGNvbHVtbkhlaWdo
dCkgeyBtX2NvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodDsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCmlu
ZGV4IDE1ODYxOWI2MjBjYjQwYjBmZDQzMDk4ZjkyN2Y4OWQzYjY3YzhkMWQuLjMzOWRhZjA5MWE0
YTE0NDk3NDI3MzExNzFhM2FmMmMzZTAwYmZmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCkBAIC0yOCw4
ICsyOCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVuZGVyTXVsdGlDb2x1bW5GbG93
VGhyZWFkOjpSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQoRG9jdW1lbnQqIGRvY3VtZW50KQot
ICAgIDogUmVuZGVyRmxvd1RocmVhZChkb2N1bWVudCkKK1JlbmRlck11bHRpQ29sdW1uRmxvd1Ro
cmVhZDo6UmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKENvbnRhaW5lck5vZGUqIG5vZGUpCisg
ICAgOiBSZW5kZXJGbG93VGhyZWFkKG5vZGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaAppbmRleCBkOWMz
MGM3NjY4ZjJkMmRkNmQxNmNjYWUzMDU0YzRkZmVkNjI1YTA0Li41NGFmN2EyNTU2YmU1NzdlZDhk
MWY4MjA1YjAyNGE2ODE2MDA3MTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkIDog
cHVibGljIFJlbmRlckZsb3dUaHJlYWQgewogcHVibGljOgotICAgIFJlbmRlck11bHRpQ29sdW1u
Rmxvd1RocmVhZChEb2N1bWVudCopOworICAgIFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZChD
b250YWluZXJOb2RlKik7CiAgICAgflJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZCgpOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVt
blNldC5jcHAKaW5kZXggMWQ5MDVjNDYwMjEwOWY2YWI0NjA2ZjU1NmIzNmVkZWYwOWFiMjMxMy4u
OTBiM2I5ZGUyOGQyMTZmMTM4ZTgzZDNiNjJjM2M4ODM2MDIzYjYzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCkBAIC0zNiw4ICsz
Niw4IEBAIHVzaW5nIHN0ZDo6bWF4OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbmRlck11
bHRpQ29sdW1uU2V0OjpSZW5kZXJNdWx0aUNvbHVtblNldChSZW5kZXJGbG93VGhyZWFkKiBmbG93
VGhyZWFkKQotICAgIDogUmVuZGVyUmVnaW9uU2V0KDAsIGZsb3dUaHJlYWQpCitSZW5kZXJNdWx0
aUNvbHVtblNldDo6UmVuZGVyTXVsdGlDb2x1bW5TZXQoQ29udGFpbmVyTm9kZSogbm9kZSwgUmVu
ZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKKyAgICA6IFJlbmRlclJlZ2lvblNldChub2RlLCBm
bG93VGhyZWFkKQogICAgICwgbV9jb21wdXRlZENvbHVtbkNvdW50KDEpCiAgICAgLCBtX2NvbXB1
dGVkQ29sdW1uV2lkdGgoMCkKICAgICAsIG1fY29tcHV0ZWRDb2x1bW5IZWlnaHQoMCkKQEAgLTQ5
LDE0ICs0OSw2IEBAIFJlbmRlck11bHRpQ29sdW1uU2V0OjpSZW5kZXJNdWx0aUNvbHVtblNldChS
ZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkKQogewogfQogCi1SZW5kZXJNdWx0aUNvbHVtblNl
dCogUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmNyZWF0ZUFub255bW91cyhSZW5kZXJGbG93VGhyZWFk
KiBmbG93VGhyZWFkKQotewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZsb3dUaHJlYWQtPmRv
Y3VtZW50KCk7Ci0gICAgUmVuZGVyTXVsdGlDb2x1bW5TZXQqIHJlbmRlcmVyID0gbmV3IChkb2N1
bWVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyTXVsdGlDb2x1bW5TZXQoZmxvd1RocmVhZCk7Ci0g
ICAgcmVuZGVyZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKLSAgICByZXR1
cm4gcmVuZGVyZXI7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnBhZ2VM
b2dpY2FsVG9wRm9yT2Zmc2V0KExheW91dFVuaXQgb2Zmc2V0KSBjb25zdAogewogICAgIExheW91
dFVuaXQgcG9ydGlvbkxvZ2ljYWxUb3AgPSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGZs
b3dUaHJlYWRQb3J0aW9uUmVjdCgpLnkoKSA6IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLngoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5T
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCmlu
ZGV4IGJmNzUwMTVlMWMyNDJkYjliNzUzY2FiMjcwODhhZDc1NjU2MDJkOTEuLjBkNWM0MzE4NmUx
M2MzNjE3ZDIyNmNlNGIwYTUxYzBhYmIwODlhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCkBAIC00Myw4ICs0Myw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vIGNvbWUgYmVmb3JlIGFuZCBhZnRlciB0aGUgc3Bhbi4KIGNsYXNzIFJl
bmRlck11bHRpQ29sdW1uU2V0IDogcHVibGljIFJlbmRlclJlZ2lvblNldCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlbmRlck11bHRpQ29sdW1uU2V0KiBjcmVhdGVBbm9ueW1vdXMoUmVuZGVyRmxv
d1RocmVhZCopOwotCisgICAgUmVuZGVyTXVsdGlDb2x1bW5TZXQoQ29udGFpbmVyTm9kZSosIFJl
bmRlckZsb3dUaHJlYWQqKTsKKyAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNdWx0aUNv
bHVtblNldCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHVuc2lnbmVk
IGNvbXB1dGVkQ29sdW1uQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVkQ29sdW1uQ291
bnQ7IH0KQEAgLTg4LDggKzg4LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVxdWlyZXNCYWxh
bmNpbmcoYm9vbCBiYWxhbmNpbmcpIHsgbV9yZXF1aXJlc0JhbGFuY2luZyA9IGJhbGFuY2luZzsg
fQogCiBwcml2YXRlOgotICAgIFJlbmRlck11bHRpQ29sdW1uU2V0KFJlbmRlckZsb3dUaHJlYWQq
KTsKLQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExh
eW91dFVuaXQgbG9naWNhbFRvcCwgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJikgY29uc3Qg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFt
ZWRGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZs
b3dUaHJlYWQuY3BwCmluZGV4IDFlNGM0ZjBjNWNhOTc0OWZlYWFiYWJjMmRkNDM2NTE0MDM2MTAx
YjYuLmM5MzNjYTY0NDg5MjRhNGUzNDhhMjQ5MDYzNmFkZjdmMzczNGRiYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCkBAIC00
MCw4ICs0MCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVuZGVyTmFtZWRGbG93VGhy
ZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQoRG9jdW1lbnQqIGRvY3VtZW50LCBQYXNzUmVmUHRy
PFdlYktpdE5hbWVkRmxvdz4gbmFtZWRGbG93KQotICAgIDogUmVuZGVyRmxvd1RocmVhZChkb2N1
bWVudCkKK1JlbmRlck5hbWVkRmxvd1RocmVhZDo6UmVuZGVyTmFtZWRGbG93VGhyZWFkKENvbnRh
aW5lck5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBuYW1lZEZsb3cpCisg
ICAgOiBSZW5kZXJGbG93VGhyZWFkKG5vZGUpCiAgICAgLCBtX25hbWVkRmxvdyhuYW1lZEZsb3cp
CiAgICAgLCBtX3JlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXIodGhpcywgJlJlbmRlck5hbWVk
Rmxvd1RocmVhZDo6cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVkKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCmluZGV4IDdi
M2RjYzJlMDllNzg2MWU5NTUwYTFlNzIxNjEyZTI1NTVlNzg2NmUuLjFiNDAxZjY4YzAzODBjYWNh
ZTRlYzBkNmY5ZDQzYmZhZjQ5N2JhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBMaXN0
SGFzaFNldDxOb2RlKj4gTmFtZWRGbG93Q29udGVudE5vZGVzOwogCiBjbGFzcyBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQgOiBwdWJsaWMgUmVuZGVyRmxvd1RocmVhZCB7CiBwdWJsaWM6Ci0gICAgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkKERvY3VtZW50KiwgUGFzc1JlZlB0cjxXZWJLaXROYW1lZEZsb3c+
KTsKKyAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQoQ29udGFpbmVyTm9kZSosIFBhc3NSZWZQdHI8
V2ViS2l0TmFtZWRGbG93Pik7CiAgICAgdmlydHVhbCB+UmVuZGVyTmFtZWRGbG93VGhyZWFkKCk7
CiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dUaHJlYWROYW1lKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGE1ZTc2MjhjMzE1NDY2
YmFhMGJlMmQ0YTk4YjdjZmEwNDRmOGYwN2UuLjk0NTRjOTk5YWMzYWY4OGIxNmMwM2U1Y2UzYzNl
YzE3YjViOTdmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CkBAIC0yMzIsNiArMjMyLDcgQEAgUmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3QoTm9kZSogbm9k
ZSkKICNpZm5kZWYgTkRFQlVHCiAgICAgcmVuZGVyT2JqZWN0Q291bnRlci5pbmNyZW1lbnQoKTsK
ICNlbmRpZgorICAgIEFTU0VSVChub2RlKTsKIH0KIAogUmVuZGVyT2JqZWN0Ojp+UmVuZGVyT2Jq
ZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCBmOWUwNjVk
ODM2NWZiNWRhZDdiYzEzMGVmY2ExYjUyNDE2NDljOTY5Li5hZjM1NWE0MWUxNjc1YzhlYTIxZGM3
YTU0YjZjMDNlNDhjOTQ0MGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCkBAIC00OTgsNiArNDk4LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBib29sIGlzQW5v
bnltb3VzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNBbm9ueW1vdXMoKTsgfQorICAg
IHZvaWQgc2V0SXNBbm9ueW1vdXMoYm9vbCBiKSB7IG1fYml0ZmllbGRzLnNldElzQW5vbnltb3Vz
KGIpOyB9CiAgICAgYm9vbCBpc0Fub255bW91c0Jsb2NrKCkgY29uc3QKICAgICB7CiAgICAgICAg
IC8vIFRoaXMgZnVuY3Rpb24gaXMga2VwdCBpbiBzeW5jIHdpdGggYW5vbnltb3VzIGJsb2NrIGNy
ZWF0aW9uIGNvbmRpdGlvbnMgaW4KQEAgLTk4Nyw4ICs5ODgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJl
UmVtb3ZlZEZyb21UcmVlKCk7CiAKLSAgICB2b2lkIHNldERvY3VtZW50Rm9yQW5vbnltb3VzKERv
Y3VtZW50KiBkb2N1bWVudCkgeyBBU1NFUlQoaXNBbm9ueW1vdXMoKSk7IG1fbm9kZSA9IGRvY3Vt
ZW50OyB9Ci0KIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVGcm9tUmVuZGVyRmxvd1RocmVhZCgp
OwogICAgIHZvaWQgcmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWRSZWN1cnNpdmUoUmVuZGVyRmxv
d1RocmVhZCopOwpAQCAtMTA0MSw3ICsxMDQwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICwg
bV9wcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoZmFsc2UpCiAgICAgICAgICAgICAsIG1fZmxv
YXRpbmcoZmFsc2UpCiAgICAgICAgICAgICAsIG1fcGFpbnRCYWNrZ3JvdW5kKGZhbHNlKQotICAg
ICAgICAgICAgLCBtX2lzQW5vbnltb3VzKCFub2RlKQorICAgICAgICAgICAgLCBtX2lzQW5vbnlt
b3VzKG5vZGUgPT0gbm9kZS0+ZG9jdW1lbnQoKSkKICAgICAgICAgICAgICwgbV9pc1RleHQoZmFs
c2UpCiAgICAgICAgICAgICAsIG1faXNCb3goZmFsc2UpCiAgICAgICAgICAgICAsIG1faXNJbmxp
bmUodHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXgg
NDBhNzM3OGEyY2M3Zjg3MzlhMzM0MzFjNjI4ZTFhZmFjYmMxOThjYS4uYjA3MDQwYmVlNWQ3ZmQ1
Y2QxMzU4ODQzOWJhM2EzYzY4YzdjZjZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlZ2lvbi5jcHAKQEAgLTQzLDggKzQzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1SZW5kZXJSZWdpb246OlJlbmRlclJlZ2lvbihFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJGbG93
VGhyZWFkKiBmbG93VGhyZWFkKQotICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgSW50U2l6
ZSgpKQorUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24oQ29udGFpbmVyTm9kZSogbm9kZSwgUmVu
ZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKKyAgICA6IFJlbmRlclJlcGxhY2VkKG5vZGUsIElu
dFNpemUoKSkKICAgICAsIG1fZmxvd1RocmVhZChmbG93VGhyZWFkKQogICAgICwgbV9wYXJlbnRO
YW1lZEZsb3dUaHJlYWQoMCkKICAgICAsIG1faXNWYWxpZChmYWxzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCBhMWZlODdjOGUwZjY0MTQ1ODgzNjhmNTZmODNi
MGEzZjg5NjBmY2E2Li5hZjg2YmU1ZWE5ZjlhNTAwYWVhMDI0ZjJmYzgwYmEwMTdmYjExZjUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC00Miw3ICs0Miw3IEBA
IGNsYXNzIFJlbmRlck5hbWVkRmxvd1RocmVhZDsKIAogY2xhc3MgUmVuZGVyUmVnaW9uIDogcHVi
bGljIFJlbmRlclJlcGxhY2VkIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSZW5kZXJSZWdpb24o
RWxlbWVudCosIFJlbmRlckZsb3dUaHJlYWQqKTsKKyAgICBleHBsaWNpdCBSZW5kZXJSZWdpb24o
Q29udGFpbmVyTm9kZSosIFJlbmRlckZsb3dUaHJlYWQqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c1JlbmRlclJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmNwcAppbmRleCBlMjA1YmNiMWVhOTk4NWZlMDM3
M2QyNWFhZTllNDRhODQ2NDY0OTJkLi41NzViZDQ1YWQwNTRiYzJlNDU4NjM2YzQ4YzA1NTE5ODQz
ZTBjNjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmNw
cApAQCAtMzAsOCArMzAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbmRlclJlZ2lv
blNldDo6UmVuZGVyUmVnaW9uU2V0KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckZsb3dUaHJlYWQq
IGZsb3dUaHJlYWQpCi0gICAgOiBSZW5kZXJSZWdpb24oZWxlbWVudCwgZmxvd1RocmVhZCkKK1Jl
bmRlclJlZ2lvblNldDo6UmVuZGVyUmVnaW9uU2V0KENvbnRhaW5lck5vZGUqIG5vZGUsIFJlbmRl
ckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCisgICAgOiBSZW5kZXJSZWdpb24obm9kZSwgZmxvd1Ro
cmVhZCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlZ2lvblNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5o
CmluZGV4IGE3MGNjNGNmNzQ0MTRlNDg4NDFkNzU5ODVlYWUzZGMwMTI1NjRhMjYuLjkzYzU3ZTNi
YTVkMGNiNjc3YmFjMWY3OThmNTAxOGM3ZDY3ODE0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb25TZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgUmVuZGVyRmxv
d1RocmVhZDsKIAogY2xhc3MgUmVuZGVyUmVnaW9uU2V0IDogcHVibGljIFJlbmRlclJlZ2lvbiB7
CiBwdWJsaWM6Ci0gICAgUmVuZGVyUmVnaW9uU2V0KEVsZW1lbnQqLCBSZW5kZXJGbG93VGhyZWFk
Kik7CisgICAgUmVuZGVyUmVnaW9uU2V0KENvbnRhaW5lck5vZGUqLCBSZW5kZXJGbG93VGhyZWFk
Kik7CiAgICAgCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsRmxvd1RocmVhZCgp
IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAK
aW5kZXggMTM4NmUwMGI1NjQ1ZjEwZWVjYmVkZmQ4YWEzNzAzZGMwYzhmYWMwMi4uYWYzOWI4NDFl
NjllNzhlNjhjNGMwNWRjMjQwYTZhZjc5MGZmNjI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC00MiwxNSArNDIsMTUgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY29uc3QgaW50IGNEZWZhdWx0V2lkdGggPSAzMDA7CiBjb25zdCBpbnQgY0RlZmF1
bHRIZWlnaHQgPSAxNTA7CiAKLVJlbmRlclJlcGxhY2VkOjpSZW5kZXJSZXBsYWNlZChFbGVtZW50
KiBlbGVtZW50KQotICAgIDogUmVuZGVyQm94KGVsZW1lbnQpCitSZW5kZXJSZXBsYWNlZDo6UmVu
ZGVyUmVwbGFjZWQoQ29udGFpbmVyTm9kZSogbm9kZSkKKyAgICA6IFJlbmRlckJveChub2RlKQog
ICAgICwgbV9pbnRyaW5zaWNTaXplKGNEZWZhdWx0V2lkdGgsIGNEZWZhdWx0SGVpZ2h0KQogewog
ICAgIHNldFJlcGxhY2VkKHRydWUpOwogfQogCi1SZW5kZXJSZXBsYWNlZDo6UmVuZGVyUmVwbGFj
ZWQoRWxlbWVudCogZWxlbWVudCwgY29uc3QgTGF5b3V0U2l6ZSYgaW50cmluc2ljU2l6ZSkKLSAg
ICA6IFJlbmRlckJveChlbGVtZW50KQorUmVuZGVyUmVwbGFjZWQ6OlJlbmRlclJlcGxhY2VkKENv
bnRhaW5lck5vZGUqIG5vZGUsIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUpCisgICAg
OiBSZW5kZXJCb3gobm9kZSkKICAgICAsIG1faW50cmluc2ljU2l6ZShpbnRyaW5zaWNTaXplKQog
ewogICAgIHNldFJlcGxhY2VkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuaAppbmRleCBlMTRkNjVkZDhjODBjMjM0N2JkMzViZjE4OGIxYmE0YjVjMGUyYTUz
Li4xZTlkN2UyODMyZDUzNDlmOGUyNmI0MGQwMmI5ODk4ZGU1ZTU0YmM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtMjgsOCArMjgsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclJlcGxhY2VkIDogcHVibGljIFJlbmRlckJveCB7
CiBwdWJsaWM6Ci0gICAgUmVuZGVyUmVwbGFjZWQoRWxlbWVudCopOwotICAgIFJlbmRlclJlcGxh
Y2VkKEVsZW1lbnQqLCBjb25zdCBMYXlvdXRTaXplJiBpbnRyaW5zaWNTaXplKTsKKyAgICBSZW5k
ZXJSZXBsYWNlZChDb250YWluZXJOb2RlKik7CisgICAgUmVuZGVyUmVwbGFjZWQoQ29udGFpbmVy
Tm9kZSosIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUpOwogICAgIHZpcnR1YWwgflJl
bmRlclJlcGxhY2VkKCk7CiAKICAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgID0gQ29tcHV0ZUFjdHVhbCkgY29u
c3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGljYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAK
aW5kZXggYzMxMWQ3NzI4MDM5YzU1ZjQxNDMzYTg0MDA2ODY0MGVjNWY5ZTU3YS4uYjhhNGYzMDcx
OGEyZWM1YTM4MjkxMDUzZjVhNDQzYWE0ZTcwMjEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsaWNhLmNwcApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlbmRlclJlcGxpY2E6OlJlbmRlclJlcGxpY2EoKQotICAgIDogUmVuZGVyQm94
KDApCitSZW5kZXJSZXBsaWNhOjpSZW5kZXJSZXBsaWNhKENvbnRhaW5lck5vZGUqIG5vZGUpCisg
ICAgOiBSZW5kZXJCb3gobm9kZSkKIHsKICAgICAvLyBUaGlzIGlzIGEgaGFjay4gUmVwbGljYXMg
YXJlIHN5bnRoZXRpYywgYW5kIGRvbid0IHBpY2sgdXAgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlCiAg
ICAgLy8gcmVuZGVyZXJzIGJlaW5nIHJlcGxpY2F0ZWQsIHNvIHRoZXkgYWx3YXlzIHJlcG9ydCB0
aGF0IHRoZXkgYXJlIGlubGluZSwgbm9uLXJlcGxhY2VkLgpAQCAtNDMsMTMgKzQzLDYgQEAgUmVu
ZGVyUmVwbGljYTo6UmVuZGVyUmVwbGljYSgpCiAgICAgc2V0UmVwbGFjZWQodHJ1ZSk7CiB9CiAK
LVJlbmRlclJlcGxpY2EqIFJlbmRlclJlcGxpY2E6OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCog
ZG9jdW1lbnQpCi17Ci0gICAgUmVuZGVyUmVwbGljYSogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50
LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJSZXBsaWNhKCk7Ci0gICAgcmVuZGVyZXItPnNldERvY3Vt
ZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKLSAgICByZXR1cm4gcmVuZGVyZXI7Ci19Ci0KIFJl
bmRlclJlcGxpY2E6On5SZW5kZXJSZXBsaWNhKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGljYS5oCmluZGV4IDQ2NjVlMTNmMTg4MTRlMWE5MGFiYThkM2QwNDM1MjRi
NmEzNGY5OGQuLmNjMGU4MmRlNmFmNjQ1M2NmN2Q4MGMyZjRmNDdlNTgzNWMwYmY4MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuaApAQCAtMzUsOCArMzUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclJlcGxpY2EgOiBwdWJsaWMgUmVuZGVy
Qm94IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVuZGVyUmVwbGljYSogY3JlYXRlQW5vbnltb3Vz
KERvY3VtZW50Kik7Ci0KKyAgICBSZW5kZXJSZXBsaWNhKENvbnRhaW5lck5vZGUqKTsKICAgICB2
aXJ0dWFsIH5SZW5kZXJSZXBsaWNhKCk7CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUmVwbGljYSI7IH0KQEAgLTQ4LDggKzQ3LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlv
dXRQb2ludCYpOwogCiBwcml2YXRlOgotICAgIFJlbmRlclJlcGxpY2EoKTsKLQogICAgIHZpcnR1
YWwgYm9vbCBpc1JlcGxpY2EoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSdWJ5LmNwcAppbmRleCAxNGFmMjU1NGNjZmZiYzc0ZTY3NjY0ZmQwYjkzYmY5
ZDQxNGRjYjMyLi44YTUwYzE5NmE1MzI2NDA1M2U3MmY1NDBhZjljYTg1MjQwOTgxODAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHN0
YXRpYyBpbmxpbmUgUmVuZGVyQmxvY2sqIHJ1YnlBZnRlckJsb2NrKGNvbnN0IFJlbmRlck9iamVj
dCogcnVieSkKIHN0YXRpYyBSZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3VzUnVieUlubGluZUJs
b2NrKFJlbmRlck9iamVjdCogcnVieSkKIHsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0
eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkocnVieS0+
c3R5bGUoKSwgSU5MSU5FX0JMT0NLKTsKLSAgICBSZW5kZXJCbG9jayogbmV3QmxvY2sgPSBSZW5k
ZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKHJ1YnktPmRvY3VtZW50KCkpOworICAgIFJlbmRlckJs
b2NrKiBuZXdCbG9jayA9IG5ldyAocnVieS0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQmxvY2socnVi
eS0+ZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgYm94ICovKTsKICAgICBuZXdCbG9jay0+c2V0U3R5
bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbmV3QmxvY2s7CiB9CkBAIC0xMDks
OCArMTA5LDggQEAgc3RhdGljIGlubGluZSBSZW5kZXJSdWJ5UnVuKiBmaW5kUnVieVJ1blBhcmVu
dChSZW5kZXJPYmplY3QqIGNoaWxkKQogCiAvLz09PSBydWJ5IGFzIGlubGluZSBvYmplY3QgPT09
CiAKLVJlbmRlclJ1YnlBc0lubGluZTo6UmVuZGVyUnVieUFzSW5saW5lKEVsZW1lbnQqIGVsZW1l
bnQpCi0gICAgOiBSZW5kZXJJbmxpbmUoZWxlbWVudCkKK1JlbmRlclJ1YnlBc0lubGluZTo6UmVu
ZGVyUnVieUFzSW5saW5lKENvbnRhaW5lck5vZGUqIG5vZGUpCisgICAgOiBSZW5kZXJJbmxpbmUo
bm9kZSkKIHsKIH0KIApAQCAtMjEzLDEwICsyMTMsMTEgQEAgdm9pZCBSZW5kZXJSdWJ5QXNJbmxp
bmU6OnJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCogY2hpbGQpCiAgICAgcnVuLT5yZW1vdmVDaGls
ZChjaGlsZCk7CiB9CiAKKwogLy89PT0gcnVieSBhcyBibG9jayBvYmplY3QgPT09CiAKLVJlbmRl
clJ1YnlBc0Jsb2NrOjpSZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50KiBlbGVtZW50KQotICAgIDog
UmVuZGVyQmxvY2soZWxlbWVudCkKK1JlbmRlclJ1YnlBc0Jsb2NrOjpSZW5kZXJSdWJ5QXNCbG9j
ayhDb250YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVyQmxvY2sobm9kZSkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgKaW5kZXggMjQ5NDYzOWY5YTU0YjY5NmIz
MjNkNzc1Y2EzMjVhODExNTU2ZGU0NC4uZWI3ZTFjMDZmNjk2OTY3YTM5NDE2ZWQ1Yjk3M2U1NGI0
ZjAyOWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1Ynku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5oCkBAIC01Myw3ICs1
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIDxydWJ5PiB3aGVuIHVzZWQgYXMgJ2Rpc3Bs
YXk6aW5saW5lJwogY2xhc3MgUmVuZGVyUnVieUFzSW5saW5lIDogcHVibGljIFJlbmRlcklubGlu
ZSB7CiBwdWJsaWM6Ci0gICAgUmVuZGVyUnVieUFzSW5saW5lKEVsZW1lbnQqKTsKKyAgICBSZW5k
ZXJSdWJ5QXNJbmxpbmUoQ29udGFpbmVyTm9kZSopOwogICAgIHZpcnR1YWwgflJlbmRlclJ1YnlB
c0lubGluZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hp
bGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKQEAgLTcyLDcgKzcyLDcgQEAgcHJp
dmF0ZToKIC8vIDxydWJ5PiB3aGVuIHVzZWQgYXMgJ2Rpc3BsYXk6YmxvY2snIG9yICdkaXNwbGF5
OmlubGluZS1ibG9jaycKIGNsYXNzIFJlbmRlclJ1YnlBc0Jsb2NrIDogcHVibGljIFJlbmRlckJs
b2NrIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50Kik7CisgICAgUmVu
ZGVyUnVieUFzQmxvY2soQ29udGFpbmVyTm9kZSopOwogICAgIHZpcnR1YWwgflJlbmRlclJ1YnlB
c0Jsb2NrKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKaW5kZXggYWRjMmYwZDQ0ZjhjZmRiMmYzNTE2ZTE2YTEz
MTNiN2Q2ZWU3NmYwYi4uMzQ5OGY3MmJiZDQzNjlmNmMxMjM3MjlhMTMwNThmNzFkNDRkYzMyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwCkBAIC0zOCw4
ICszOCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVuZGVyUnVieUJhc2U6OlJlbmRlclJ1YnlCYXNlKCkKLSAgICA6IFJlbmRlckJsb2NrKDApCitS
ZW5kZXJSdWJ5QmFzZTo6UmVuZGVyUnVieUJhc2UoQ29udGFpbmVyTm9kZSogbm9kZSkKKyAgICA6
IFJlbmRlckJsb2NrKG5vZGUpCiB7CiAgICAgc2V0SW5saW5lKGZhbHNlKTsKIH0KQEAgLTQ4LDEz
ICs0OCw2IEBAIFJlbmRlclJ1YnlCYXNlOjp+UmVuZGVyUnVieUJhc2UoKQogewogfQogCi1SZW5k
ZXJSdWJ5QmFzZSogUmVuZGVyUnVieUJhc2U6OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCogZG9j
dW1lbnQpCi17Ci0gICAgUmVuZGVyUnVieUJhc2UqIHJlbmRlcmVyID0gbmV3IChkb2N1bWVudC0+
cmVuZGVyQXJlbmEoKSkgUmVuZGVyUnVieUJhc2UoKTsKLSAgICByZW5kZXJlci0+c2V0RG9jdW1l
bnRGb3JBbm9ueW1vdXMoZG9jdW1lbnQpOwotICAgIHJldHVybiByZW5kZXJlcjsKLX0KLQogYm9v
bCBSZW5kZXJSdWJ5QmFzZTo6aXNDaGlsZEFsbG93ZWQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVu
ZGVyU3R5bGUqKSBjb25zdAogewogICAgIHJldHVybiBjaGlsZC0+aXNJbmxpbmUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmgKaW5kZXggMzg4ODYwNmI0MTBmZGZh
NmQ4NjIzYTNlMDhkZTRjMWI0MGEwZThjZC4uZGRmZTRlZTY3NWQwZmZjYTc5NDdhMDM2ODIzODc2
MzU3OWRhZWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmgK
QEAgLTM5LDkgKzM5LDggQEAgY2xhc3MgUmVuZGVyUnVieVJ1bjsKIAogY2xhc3MgUmVuZGVyUnVi
eUJhc2UgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgorICAgIFJlbmRlclJ1YnlCYXNl
KENvbnRhaW5lck5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSdWJ5QmFzZSgpOwotICAgIAot
ICAgIHN0YXRpYyBSZW5kZXJSdWJ5QmFzZSogY3JlYXRlQW5vbnltb3VzKERvY3VtZW50Kik7CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVu
ZGVyUnVieUJhc2UgKGFub255bW91cykiOyB9CiAKQEAgLTUwLDggKzQ5LDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc0NoaWxkQWxsb3dlZChSZW5kZXJPYmplY3QqLCBSZW5kZXJTdHls
ZSopIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFJlbmRlclJ1YnlCYXNlKCk7Ci0KICAgICB2aXJ0
dWFsIEVUZXh0QWxpZ24gdGV4dEFsaWdubWVudEZvckxpbmUoYm9vbCBlbmRzV2l0aFNvZnRCcmVh
aykgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdElubGluZURpcmVjdGlvbkxpbmVCb3Vu
ZHMoaW50IGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQsIGZsb2F0JiBsb2dpY2FsTGVmdCwgZmxv
YXQmIGxvZ2ljYWxXaWR0aCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSdWJ5UnVuLmNwcAppbmRleCBjM2QyNjY1MzgwZWE5YmIzZWIzZDQ1M2Y1NWRhNjFlOWVkMDM0
NDgzLi40NzMxNjE4Nzg1ZDQ1NTMwYzgyNjhhOGQ1YTc3NzQ4YjZhZTlhMDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCkBAIC00Miw4ICs0Miw4IEBAIHVz
aW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVuZGVyUnVieVJ1
bjo6UmVuZGVyUnVieVJ1bigpCi0gICAgOiBSZW5kZXJCbG9jaygwKQorUmVuZGVyUnVieVJ1bjo6
UmVuZGVyUnVieVJ1bihDb250YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVyQmxvY2sobm9k
ZSkKIHsKICAgICBzZXRSZXBsYWNlZCh0cnVlKTsKICAgICBzZXRJbmxpbmUodHJ1ZSk7CkBAIC0x
OTksMTggKzE5OSwxNyBAQCB2b2lkIFJlbmRlclJ1YnlSdW46OnJlbW92ZUNoaWxkKFJlbmRlck9i
amVjdCogY2hpbGQpCiAKIFJlbmRlclJ1YnlCYXNlKiBSZW5kZXJSdWJ5UnVuOjpjcmVhdGVSdWJ5
QmFzZSgpIGNvbnN0CiB7Ci0gICAgUmVuZGVyUnVieUJhc2UqIHJlbmRlcmVyID0gUmVuZGVyUnVi
eUJhc2U6OmNyZWF0ZUFub255bW91cyhkb2N1bWVudCgpKTsKKyAgICBSZW5kZXJSdWJ5QmFzZSog
cmIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlclJ1YnlCYXNlKGRvY3VtZW50KCkgLyogYW5v
bnltb3VzICovKTsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5
bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoc3R5bGUoKSwgQkxPQ0spOwogICAg
IG5ld1N0eWxlLT5zZXRUZXh0QWxpZ24oQ0VOVEVSKTsgLy8gRklYTUU6IHVzZSBXRUJLSVRfQ0VO
VEVSPwotICAgIHJlbmRlcmVyLT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOwotICAgIHJl
dHVybiByZW5kZXJlcjsKKyAgICByYi0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKKyAg
ICByZXR1cm4gcmI7CiB9CiAKIFJlbmRlclJ1YnlSdW4qIFJlbmRlclJ1YnlSdW46OnN0YXRpY0Ny
ZWF0ZVJ1YnlSdW4oY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnRSdWJ5KQogewogICAgIEFTU0VS
VChwYXJlbnRSdWJ5ICYmIHBhcmVudFJ1YnktPmlzUnVieSgpKTsKLSAgICBSZW5kZXJSdWJ5UnVu
KiByciA9IG5ldyAocGFyZW50UnVieS0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyUnVieVJ1bigpOwot
ICAgIHJyLT5zZXREb2N1bWVudEZvckFub255bW91cyhwYXJlbnRSdWJ5LT5kb2N1bWVudCgpKTsK
KyAgICBSZW5kZXJSdWJ5UnVuKiByciA9IG5ldyAocGFyZW50UnVieS0+cmVuZGVyQXJlbmEoKSkg
UmVuZGVyUnVieVJ1bihwYXJlbnRSdWJ5LT5kb2N1bWVudCgpIC8qIGFub255bW91cyAqLyk7CiAg
ICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9u
eW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBhcmVudFJ1YnktPnN0eWxlKCksIElOTElORV9CTE9DSyk7
CiAgICAgcnItPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIHJyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmgKaW5kZXggYzdiNzUzMzUyOGU5
ZTM2NWEzMThmOTY5MzVjNGUzMTFmMWZhZGM5YS4uMzNmYjBkNzliYzIyOWQ3NjIyMDczY2YxNWRh
Y2M3YjcwYTQzZjcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJ1YnlSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5o
CkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIFJlbmRlclJ1YnlUZXh0OwogCiBjbGFzcyBSZW5kZXJS
dWJ5UnVuIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKKyAgICBSZW5kZXJSdWJ5UnVu
KENvbnRhaW5lck5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSdWJ5UnVuKCk7CiAKICAgICBi
b29sIGhhc1J1YnlUZXh0KCkgY29uc3Q7CkBAIC03MCw4ICs3MSw2IEBAIHByb3RlY3RlZDoKICAg
ICBSZW5kZXJSdWJ5QmFzZSogY3JlYXRlUnVieUJhc2UoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAg
ICBSZW5kZXJSdWJ5UnVuKCk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgaXNSdWJ5UnVuKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNv
bnN0IHsgcmV0dXJuICJSZW5kZXJSdWJ5UnVuIChhbm9ueW1vdXMpIjsgfQogICAgIHZpcnR1YWwg
Ym9vbCBjcmVhdGVzQW5vbnltb3VzV3JhcHBlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3BwCmluZGV4IDQ5N2M4Yjcx
ZDM1MTBiZWY4YmVhMThlODhmY2ViYzg2YzcyYTkzN2YuLmY0MTIyZDJlMjRkMWVlZTc3ZmY3ODgw
ZDNmZmE3MjdkZGVlNTg5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSdWJ5VGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlUZXh0LmNwcApAQCAtMzcsOCArMzcsOCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVJlbmRlclJ1YnlUZXh0OjpSZW5kZXJSdWJ5VGV4dChFbGVtZW50
KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKK1JlbmRlclJ1YnlUZXh0OjpS
ZW5kZXJSdWJ5VGV4dChDb250YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVyQmxvY2sobm9k
ZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuaAppbmRl
eCAwYjBiYWU1ODIzYzcxZjRjYmE5M2JlMDYxZDEyNTZiNDBjOWI2NzU4Li5jMzdlMmU4YWMwYThh
MzdiNjY0NDFjM2VlMTI3NGZiMTQ4NTA0ZWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUnVieVRleHQuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFJlbmRlclJ1YnlUZXh0IDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKLSAg
ICBSZW5kZXJSdWJ5VGV4dChFbGVtZW50Kik7CisgICAgUmVuZGVyUnVieVRleHQoQ29udGFpbmVy
Tm9kZSopOwogICAgIHZpcnR1YWwgflJlbmRlclJ1YnlUZXh0KCk7CiAKICAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUnVieVRleHQiOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwCmluZGV4IGU2
YWE3ZDc2NGU2ZjE2ZWU2ZmUwZTliYzIzYzA4NzViNzk0NWE0YmEuLjIxNmM1ZjhkODk2OTliMzVk
NzczNjBmYzdkMDlkYTM0NTk1MjJmNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTY3JvbGxiYXIuY3BwCkBAIC0yNzAsNyArMjcwLDcgQEAgdm9pZCBSZW5kZXJTY3JvbGxi
YXI6OnVwZGF0ZVNjcm9sbGJhclBhcnQoU2Nyb2xsYmFyUGFydCBwYXJ0VHlwZSwgYm9vbCBkZXN0
cm95KQogICAgIAogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHBhcnRSZW5kZXJlciA9IG1fcGFy
dHMuZ2V0KHBhcnRUeXBlKTsKICAgICBpZiAoIXBhcnRSZW5kZXJlciAmJiBuZWVkUmVuZGVyZXIp
IHsKLSAgICAgICAgcGFydFJlbmRlcmVyID0gUmVuZGVyU2Nyb2xsYmFyUGFydDo6Y3JlYXRlQW5v
bnltb3VzKG93bmluZ1JlbmRlcmVyKCktPmRvY3VtZW50KCksIHRoaXMsIHBhcnRUeXBlKTsKKyAg
ICAgICAgcGFydFJlbmRlcmVyID0gbmV3IChvd25pbmdSZW5kZXJlcigpLT5yZW5kZXJBcmVuYSgp
KSBSZW5kZXJTY3JvbGxiYXJQYXJ0KG93bmluZ1JlbmRlcmVyKCktPmRvY3VtZW50KCksIHRoaXMs
IHBhcnRUeXBlKTsKICAgICAgICAgbV9wYXJ0cy5zZXQocGFydFR5cGUsIHBhcnRSZW5kZXJlcik7
CiAgICAgfSBlbHNlIGlmIChwYXJ0UmVuZGVyZXIgJiYgIW5lZWRSZW5kZXJlcikgewogICAgICAg
ICBtX3BhcnRzLnJlbW92ZShwYXJ0VHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAKaW5kZXggZGMwZDU4NzM0Yjg0YjEzOGI1MzdkNDI3
ZTQ3OGQ1MzE0ZGFmMzljMC4uNjQ5ODJmMGY3MGYyZWNlZmQyMmY1OGRjZGNjMmE5NGJiMmNlYTM3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBh
cnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0
LmNwcApAQCAtMzUsOCArMzUsOCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlbmRlclNjcm9sbGJhclBhcnQ6OlJlbmRlclNjcm9sbGJhclBhcnQoUmVu
ZGVyU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQgcGFydCkKLSAgICA6IFJlbmRl
ckJsb2NrKDApCitSZW5kZXJTY3JvbGxiYXJQYXJ0OjpSZW5kZXJTY3JvbGxiYXJQYXJ0KENvbnRh
aW5lck5vZGUqIG5vZGUsIFJlbmRlclNjcm9sbGJhciogc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0
IHBhcnQpCisgICAgOiBSZW5kZXJCbG9jayhub2RlKQogICAgICwgbV9zY3JvbGxiYXIoc2Nyb2xs
YmFyKQogICAgICwgbV9wYXJ0KHBhcnQpCiB7CkBAIC00NiwxMyArNDYsNiBAQCBSZW5kZXJTY3Jv
bGxiYXJQYXJ0Ojp+UmVuZGVyU2Nyb2xsYmFyUGFydCgpCiB7CiB9CiAKLVJlbmRlclNjcm9sbGJh
clBhcnQqIFJlbmRlclNjcm9sbGJhclBhcnQ6OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCogZG9j
dW1lbnQsIFJlbmRlclNjcm9sbGJhciogc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0IHBhcnQpCi17
Ci0gICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5k
ZXJBcmVuYSgpKSBSZW5kZXJTY3JvbGxiYXJQYXJ0KHNjcm9sbGJhciwgcGFydCk7Ci0gICAgcmVu
ZGVyZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKLSAgICByZXR1cm4gcmVu
ZGVyZXI7Ci19Ci0KIHZvaWQgUmVuZGVyU2Nyb2xsYmFyUGFydDo6bGF5b3V0KCkKIHsKICAgICBT
dGFja1N0YXRzOjpMYXlvdXRDaGVja1BvaW50IGxheW91dENoZWNrUG9pbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuaAppbmRleCAxY2ZmMTE4NDM4
NTJiMzZkYzIzNGRjZmRjZmNhMmZiZjA2ZTE4YjIyLi5hMmY5NmIwMmVjNWIyNGY4YzZiOGNjN2Ex
N2Y5NGQ0NmZkYzZmNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2Nyb2xsYmFyUGFydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
Y3JvbGxiYXJQYXJ0LmgKQEAgLTM1LDggKzM1LDcgQEAgY2xhc3MgUmVuZGVyU2Nyb2xsYmFyOwog
CiBjbGFzcyBSZW5kZXJTY3JvbGxiYXJQYXJ0IDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVuZGVyU2Nyb2xsYmFyUGFydCogY3JlYXRlQW5vbnltb3VzKERvY3Vt
ZW50KiwgUmVuZGVyU2Nyb2xsYmFyKiA9IDAsIFNjcm9sbGJhclBhcnQgPSBOb1BhcnQpOwotICAg
IAorICAgIFJlbmRlclNjcm9sbGJhclBhcnQoQ29udGFpbmVyTm9kZSosIFJlbmRlclNjcm9sbGJh
ciogPSAwLCBTY3JvbGxiYXJQYXJ0ID0gTm9QYXJ0KTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTY3Jv
bGxiYXJQYXJ0KCk7CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25z
dCB7IHJldHVybiAiUmVuZGVyU2Nyb2xsYmFyUGFydCI7IH0KQEAgLTYyLDggKzYxLDYgQEAgcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBj
b25zdCBJbnRSZWN0KiA9IDApOwogCiBwcml2YXRlOgotICAgIFJlbmRlclNjcm9sbGJhclBhcnQo
UmVuZGVyU2Nyb2xsYmFyKiwgU2Nyb2xsYmFyUGFydCk7Ci0KICAgICB2aXJ0dWFsIHZvaWQgY29t
cHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKTsKIAogICAgIHZvaWQgbGF5b3V0SG9yaXpvbnRh
bFBhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFy
Y2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQu
Y3BwCmluZGV4IDdhYWIyZDBhNzYxMWU0MTc5ZGMzNmFhYmM3NTBjOWNhMjhhYmY3YTAuLjdhNjBi
YzVmYjYzNjQzOTUyMGE5YjFlZjFlNTQzZDcyNThlM2RhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcApAQCAtNTMsMTQgKzUzLDE0IEBAIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAotUmVuZGVyU2VhcmNoRmllbGQ6OlJlbmRlclNlYXJjaEZpZWxkKEVsZW1lbnQqIGVsZW1l
bnQpCi0gICAgOiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoZWxlbWVudCkKK1JlbmRlclNl
YXJjaEZpZWxkOjpSZW5kZXJTZWFyY2hGaWVsZChDb250YWluZXJOb2RlKiBub2RlKQorICAgIDog
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKG5vZGUpCiAgICAgLCBtX3NlYXJjaFBvcHVwSXNW
aXNpYmxlKGZhbHNlKQogICAgICwgbV9zZWFyY2hQb3B1cCgwKQogewotICAgIEFTU0VSVChlbGVt
ZW50LT5pc0hUTUxFbGVtZW50KCkpOwotICAgIEFTU0VSVChlbGVtZW50LT50b0lucHV0RWxlbWVu
dCgpKTsKLSAgICBBU1NFUlQoZWxlbWVudC0+dG9JbnB1dEVsZW1lbnQoKS0+aXNTZWFyY2hGaWVs
ZCgpKTsKKyAgICBBU1NFUlQobm9kZS0+aXNIVE1MRWxlbWVudCgpKTsKKyAgICBBU1NFUlQobm9k
ZS0+dG9JbnB1dEVsZW1lbnQoKSk7CisgICAgQVNTRVJUKG5vZGUtPnRvSW5wdXRFbGVtZW50KCkt
PmlzU2VhcmNoRmllbGQoKSk7CiB9CiAKIFJlbmRlclNlYXJjaEZpZWxkOjp+UmVuZGVyU2VhcmNo
RmllbGQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJj
aEZpZWxkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaApp
bmRleCAwZGE5YzMyZDJiMTg0Yzc3Mjc1Mjk1NDYxOTYxODI4ZTQ0YWE2ODM4Li4zNmQ0OWNmZjYx
NmM4ODFkNzBhMTc5ZWIwMWYxMjU2NTZlNDc5MGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaApAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTZWFyY2hQ
b3B1cE1lbnU7CiAKIGNsYXNzIFJlbmRlclNlYXJjaEZpZWxkIDogcHVibGljIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZSwgcHJpdmF0ZSBQb3B1cE1lbnVDbGllbnQgewogcHVibGljOgotICAg
IFJlbmRlclNlYXJjaEZpZWxkKEVsZW1lbnQqKTsKKyAgICBSZW5kZXJTZWFyY2hGaWVsZChDb250
YWluZXJOb2RlKik7CiAgICAgdmlydHVhbCB+UmVuZGVyU2VhcmNoRmllbGQoKTsKIAogICAgIHZv
aWQgdXBkYXRlQ2FuY2VsQnV0dG9uVmlzaWJpbGl0eSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggYmFlNmMyNWMyNmQzMmFmMzAzNjc3ODgzOGE2
NzI3MGY4OTJkZjMzYy4uZTQ0N2ExYTMyYjBhN2NiZWQxMGVjNmE0MDEwZGZlZjRkODllMzBmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBAIC00OSw4ICs0OSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAot
UmVuZGVyVGFibGU6OlJlbmRlclRhYmxlKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJC
bG9jayhlbGVtZW50KQorUmVuZGVyVGFibGU6OlJlbmRlclRhYmxlKENvbnRhaW5lck5vZGUqIG5v
ZGUpCisgICAgOiBSZW5kZXJCbG9jayhub2RlKQogICAgICwgbV9oZWFkKDApCiAgICAgLCBtX2Zv
b3QoMCkKICAgICAsIG1fZmlyc3RCb2R5KDApCkBAIC0xMzYyLDggKzEzNjIsNyBAQCBib29sIFJl
bmRlclRhYmxlOjpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0
VGVzdFJlc3VsdCYgcmVzdQogUmVuZGVyVGFibGUqIFJlbmRlclRhYmxlOjpjcmVhdGVBbm9ueW1v
dXNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpCiB7CiAgICAg
UmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1v
dXNTdHlsZVdpdGhEaXNwbGF5KHBhcmVudC0+c3R5bGUoKSwgVEFCTEUpOwotICAgIFJlbmRlclRh
YmxlKiBuZXdUYWJsZSA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJUYWJsZSgw
KTsKLSAgICBuZXdUYWJsZS0+c2V0RG9jdW1lbnRGb3JBbm9ueW1vdXMocGFyZW50LT5kb2N1bWVu
dCgpKTsKKyAgICBSZW5kZXJUYWJsZSogbmV3VGFibGUgPSBuZXcgKHBhcmVudC0+cmVuZGVyQXJl
bmEoKSkgUmVuZGVyVGFibGUocGFyZW50LT5kb2N1bWVudCgpIC8qIGlzIGFub255bW91cyAqLyk7
CiAgICAgbmV3VGFibGUtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJu
IG5ld1RhYmxlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAppbmRleCA3
MDZlMTNhZWNiZGEwN2NiOTZjZGQ3YjU4NDY4ZmU3MzNhNDRjODIzLi43ZWVkMmI4MzVhMmQ0MzM2
MmI1ZDA2NmY4YjE2OTcyYjU2YjMzNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGUuaApAQCAtNDIsNyArNDIsNyBAQCBlbnVtIFNraXBFbXB0eVNlY3Rpb25zVmFsdWUgeyBE
b05vdFNraXBFbXB0eVNlY3Rpb25zLCBTa2lwRW1wdHlTZWN0aW9ucyB9OwogCiBjbGFzcyBSZW5k
ZXJUYWJsZSA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUmVu
ZGVyVGFibGUoRWxlbWVudCopOworICAgIGV4cGxpY2l0IFJlbmRlclRhYmxlKENvbnRhaW5lck5v
ZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUYWJsZSgpOwogCiAgICAgLy8gUGVyIENTUyAzIHdy
aXRpbmctbW9kZTogIlRoZSBmaXJzdCBhbmQgc2Vjb25kIHZhbHVlcyBvZiB0aGUgJ2JvcmRlci1z
cGFjaW5nJyBwcm9wZXJ0eSByZXByZXNlbnQgc3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHAKaW5kZXggNzY0
ODZmOTc1OGYyZWRmNzI4Y2QzOWVhZTZjNjIxODkzMzAzMDgyMy4uZWMyZDVkOTZjYmY0MTk2ZGVk
NTRjMGQ1OGEzMzUxMGQxZGRmN2Q0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2FwdGlvbi5jcHAKQEAgLTI0LDggKzI0LDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1SZW5kZXJUYWJsZUNhcHRpb246OlJlbmRlclRhYmxlQ2FwdGlvbihFbGVtZW50
KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKK1JlbmRlclRhYmxlQ2FwdGlv
bjo6UmVuZGVyVGFibGVDYXB0aW9uKENvbnRhaW5lck5vZGUqIG5vZGUpCisgICAgOiBSZW5kZXJC
bG9jayhub2RlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDYXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVDYXB0aW9uLmgKaW5kZXggNzAwNjEwZTI2NzUwZGM3YjgyZTgyYTgwYzlhODcwYmYzN2RhYWZl
MC4uOTE3MmJmNGQ0ZWI1NmEzZDI0YWVlMzZiNjczZDIxNmFjMDljZDliYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaApAQCAtMjgsNyArMjgsNyBA
QCBjbGFzcyBSZW5kZXJUYWJsZTsKIAogY2xhc3MgUmVuZGVyVGFibGVDYXB0aW9uIDogcHVibGlj
IFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSZW5kZXJUYWJsZUNhcHRpb24o
RWxlbWVudCopOworICAgIGV4cGxpY2l0IFJlbmRlclRhYmxlQ2FwdGlvbihDb250YWluZXJOb2Rl
Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyVGFibGVDYXB0aW9uKCk7CiAgICAgdmlydHVhbCBMYXlv
dXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnQoKSBjb25zdCBPVkVS
UklERTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5j
cHAKaW5kZXggNWIyOTYxMGU3NWY4YjUwNWJjMWIyMzI5ZjRmMmVhOGU0OTAzMzNiNC4uZjJhMTIz
NTdiYTgzMjkxOGU3NjZjOGE4MTUzMjkwM2RlODc1OThjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTU1LDggKzU1LDggQEAgc3RydWN0IFNh
bWVTaXplQXNSZW5kZXJUYWJsZUNlbGwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogQ09NUElMRV9B
U1NFUlQoc2l6ZW9mKFJlbmRlclRhYmxlQ2VsbCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNSZW5kZXJU
YWJsZUNlbGwpLCBSZW5kZXJUYWJsZUNlbGxfc2hvdWxkX3N0YXlfc21hbGwpOwogQ09NUElMRV9B
U1NFUlQoc2l6ZW9mKENvbGxhcHNlZEJvcmRlclZhbHVlKSA9PSA4LCBDb2xsYXBzZWRCb3JkZXJW
YWx1ZV9zaG91bGRfc3RheV9zbWFsbCk7CiAKLVJlbmRlclRhYmxlQ2VsbDo6UmVuZGVyVGFibGVD
ZWxsKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorUmVuZGVy
VGFibGVDZWxsOjpSZW5kZXJUYWJsZUNlbGwoQ29udGFpbmVyTm9kZSogbm9kZSkKKyAgICA6IFJl
bmRlckJsb2NrKG5vZGUpCiAgICAgLCBtX2NvbHVtbih1bnNldENvbHVtbkluZGV4KQogICAgICwg
bV9jZWxsV2lkdGhDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9pbnRyaW5zaWNQYWRkaW5nQmVmb3Jl
KDApCkBAIC0xMjQ2LDE3ICsxMjQ2LDEwIEBAIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpzY3JvbGxi
YXJzQ2hhbmdlZChib29sIGhvcml6b250YWxTY3JvbGxiYXJDaGFuZ2VkLCBib29sIHZlCiAgICAg
ICAgIHNldEludHJpbnNpY1BhZGRpbmdBZnRlcihpbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoKSAtIHNj
cm9sbGJhckhlaWdodCk7CiB9CiAKLVJlbmRlclRhYmxlQ2VsbCogUmVuZGVyVGFibGVDZWxsOjpj
cmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIFJlbmRlclRhYmxlQ2Vs
bCogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJUYWJsZUNl
bGwoMCk7Ci0gICAgcmVuZGVyZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsK
LSAgICByZXR1cm4gcmVuZGVyZXI7Ci19Ci0KIFJlbmRlclRhYmxlQ2VsbCogUmVuZGVyVGFibGVD
ZWxsOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0
KiBwYXJlbnQpCiB7Ci0gICAgUmVuZGVyVGFibGVDZWxsKiBuZXdDZWxsID0gUmVuZGVyVGFibGVD
ZWxsOjpjcmVhdGVBbm9ueW1vdXMocGFyZW50LT5kb2N1bWVudCgpKTsKICAgICBSZWZQdHI8UmVu
ZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0
aERpc3BsYXkocGFyZW50LT5zdHlsZSgpLCBUQUJMRV9DRUxMKTsKKyAgICBSZW5kZXJUYWJsZUNl
bGwqIG5ld0NlbGwgPSBuZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyVGFibGVDZWxs
KHBhcmVudC0+ZG9jdW1lbnQoKSAvKiBpcyBhbm9ueW1vdXMgKi8pOwogICAgIG5ld0NlbGwtPnNl
dFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIG5ld0NlbGw7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKaW5kZXggM2QyN2YzNmQ3ZWZh
YTI1NzgzMjRlZTRlZWI1NGMyMmNkNTk4YjBmZi4uMThjZmVkYTAwODIxZDZlMTQ5ODM0ODZmNjM3
YmU3ZTAxNDBiYjAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuaApAQCAtMzcsOCArMzcsOCBAQCBlbnVtIEluY2x1ZGVCb3JkZXJDb2xvck9yTm90IHsgRG9O
b3RJbmNsdWRlQm9yZGVyQ29sb3IsIEluY2x1ZGVCb3JkZXJDb2xvciB9OwogCiBjbGFzcyBSZW5k
ZXJUYWJsZUNlbGwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgotICAgIGV4cGxpY2l0
IFJlbmRlclRhYmxlQ2VsbChFbGVtZW50Kik7Ci0KKyAgICBleHBsaWNpdCBSZW5kZXJUYWJsZUNl
bGwoQ29udGFpbmVyTm9kZSopOworICAgIAogICAgIHVuc2lnbmVkIGNvbFNwYW4oKSBjb25zdAog
ICAgIHsKICAgICAgICAgaWYgKCFtX2hhc0NvbFNwYW4pCkBAIC0xNTEsNyArMTUxLDYgQEAgcHVi
bGljOgogICAgIGJvb2wgY2VsbFdpZHRoQ2hhbmdlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2VsbFdp
ZHRoQ2hhbmdlZDsgfQogICAgIHZvaWQgc2V0Q2VsbFdpZHRoQ2hhbmdlZChib29sIGIgPSB0cnVl
KSB7IG1fY2VsbFdpZHRoQ2hhbmdlZCA9IGI7IH0KIAotICAgIHN0YXRpYyBSZW5kZXJUYWJsZUNl
bGwqIGNyZWF0ZUFub255bW91cyhEb2N1bWVudCopOwogICAgIHN0YXRpYyBSZW5kZXJUYWJsZUNl
bGwqIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3Qq
KTsKICAgICB2aXJ0dWFsIFJlbmRlckJveCogY3JlYXRlQW5vbnltb3VzQm94V2l0aFNhbWVUeXBl
QXMoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpIGNvbnN0IE9WRVJSSURFCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAKaW5kZXggZjIwYWE4ODA3
ZThmNzRhNDk1ZmM2ODE0NTk1YmE3NjgyNDM0OTFmMC4uZTZlZGJmNGM4NjgyOTM1OWQzMTYzNzdl
OTZiYWEzMmQ2NjU1MzU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVDb2wuY3BwCkBAIC0zNyw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAotUmVuZGVyVGFibGVDb2w6OlJlbmRlclRhYmxlQ29sKEVs
ZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCb3goZWxlbWVudCkKK1JlbmRlclRhYmxlQ29s
OjpSZW5kZXJUYWJsZUNvbChDb250YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVyQm94KG5v
ZGUpCiAgICAgLCBtX3NwYW4oMSkKIHsKICAgICAvLyBpbml0IFJlbmRlck9iamVjdCBhdHRyaWJ1
dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCmluZGV4IDlkZTNl
YzM4MGZlODlkMTQzNDhiMmQwYWMzYzRkOTkzMDFlMGEzZTQuLmE0MmU2YjgwOTAwYTZkZWMxYjdj
MTJkNTI4MjVjYTEzZmNlZWZiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNvbC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFJlbmRlclRhYmxlQ2VsbDsKIAogY2xh
c3MgUmVuZGVyVGFibGVDb2wgOiBwdWJsaWMgUmVuZGVyQm94IHsKIHB1YmxpYzoKLSAgICBleHBs
aWNpdCBSZW5kZXJUYWJsZUNvbChFbGVtZW50Kik7CisgICAgZXhwbGljaXQgUmVuZGVyVGFibGVD
b2woQ29udGFpbmVyTm9kZSopOwogCiAgICAgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkKCkgY29u
c3QgeyBBU1NFUlQoY2hpbGRyZW4oKSA9PSB2aXJ0dWFsQ2hpbGRyZW4oKSk7IHJldHVybiBjaGls
ZHJlbigpLT5maXJzdENoaWxkKCk7IH0KICAgICBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZCgpIGNv
bnN0IHsgQVNTRVJUKGNoaWxkcmVuKCkgPT0gdmlydHVhbENoaWxkcmVuKCkpOyByZXR1cm4gY2hp
bGRyZW4oKS0+bGFzdENoaWxkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZVJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVSb3cuY3BwCmluZGV4IDNiMTQwMTBmMjQ4NjBjMDI0ZGEyMzdlOGQ4MGIyY2ZhYmFjN2Y5
YzkuLjMwOGNjMGFiNzRkYzlmMjI5ZjNiZDFlMjVlNzAyZDllNTQxNWU3MDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcApAQCAtMzksOCArMzksOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLVJlbmRl
clRhYmxlUm93OjpSZW5kZXJUYWJsZVJvdyhFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVy
Qm94KGVsZW1lbnQpCitSZW5kZXJUYWJsZVJvdzo6UmVuZGVyVGFibGVSb3coQ29udGFpbmVyTm9k
ZSogbm9kZSkKKyAgICA6IFJlbmRlckJveChub2RlKQogICAgICwgbV9yb3dJbmRleCh1bnNldFJv
d0luZGV4KQogewogICAgIC8vIGluaXQgUmVuZGVyT2JqZWN0IGF0dHJpYnV0ZXMKQEAgLTI0Niwx
NyArMjQ2LDEwIEBAIHZvaWQgUmVuZGVyVGFibGVSb3c6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW1h
Z2VQdHIsIGNvbnN0IEludFJlY3QqKQogICAgIHJlcGFpbnQoKTsKIH0KIAotUmVuZGVyVGFibGVS
b3cqIFJlbmRlclRhYmxlUm93OjpjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqIGRvY3VtZW50KQot
ewotICAgIFJlbmRlclRhYmxlUm93KiByZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQtPnJlbmRlckFy
ZW5hKCkpIFJlbmRlclRhYmxlUm93KDApOwotICAgIHJlbmRlcmVyLT5zZXREb2N1bWVudEZvckFu
b255bW91cyhkb2N1bWVudCk7Ci0gICAgcmV0dXJuIHJlbmRlcmVyOwotfQotCiBSZW5kZXJUYWJs
ZVJvdyogUmVuZGVyVGFibGVSb3c6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcihj
b25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkKIHsKLSAgICBSZW5kZXJUYWJsZVJvdyogbmV3Um93
ID0gUmVuZGVyVGFibGVSb3c6OmNyZWF0ZUFub255bW91cyhwYXJlbnQtPmRvY3VtZW50KCkpOwog
ICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5v
bnltb3VzU3R5bGVXaXRoRGlzcGxheShwYXJlbnQtPnN0eWxlKCksIFRBQkxFX1JPVyk7CisgICAg
UmVuZGVyVGFibGVSb3cqIG5ld1JvdyA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5k
ZXJUYWJsZVJvdyhwYXJlbnQtPmRvY3VtZW50KCkgLyogaXMgYW5vbnltb3VzICovKTsKICAgICBu
ZXdSb3ctPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIG5ld1JvdzsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKaW5kZXggOWIyNjBi
OGM3NjhlZDg3ZDk4ODM0MDI0MjdiNGRjOGMwMGUzNmMxNi4uM2MxNjBjZDEzODEwYmVlNmJmYTI4
ZDlkNjIxNjkyZjVjMWYyMTRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlUm93LmgKQEAgLTM0LDcgKzM0LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFJvd0lu
ZGV4ID0gMHg3RkZGRkZGRTsgLy8gMiwxNDcsNDgzLDY0NgogCiBjbGFzcyBSZW5kZXJUYWJsZVJv
dyA6IHB1YmxpYyBSZW5kZXJCb3ggewogcHVibGljOgotICAgIGV4cGxpY2l0IFJlbmRlclRhYmxl
Um93KEVsZW1lbnQqKTsKKyAgICBleHBsaWNpdCBSZW5kZXJUYWJsZVJvdyhDb250YWluZXJOb2Rl
Kik7CiAKICAgICBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IEFTU0VSVChjaGls
ZHJlbigpID09IHZpcnR1YWxDaGlsZHJlbigpKTsgcmV0dXJuIGNoaWxkcmVuKCktPmZpcnN0Q2hp
bGQoKTsgfQogICAgIFJlbmRlck9iamVjdCogbGFzdENoaWxkKCkgY29uc3QgeyBBU1NFUlQoY2hp
bGRyZW4oKSA9PSB2aXJ0dWFsQ2hpbGRyZW4oKSk7IHJldHVybiBjaGlsZHJlbigpLT5sYXN0Q2hp
bGQoKTsgfQpAQCAtNDcsNyArNDcsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhaW50T3V0bGlu
ZUZvclJvd0lmTmVlZGVkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAKLSAgICBz
dGF0aWMgUmVuZGVyVGFibGVSb3cqIGNyZWF0ZUFub255bW91cyhEb2N1bWVudCopOwogICAgIHN0
YXRpYyBSZW5kZXJUYWJsZVJvdyogY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKGNv
bnN0IFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgUmVuZGVyQm94KiBjcmVhdGVBbm9ueW1v
dXNCb3hXaXRoU2FtZVR5cGVBcyhjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkgY29uc3QgT1ZF
UlJJREUKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNl
Y3Rpb24uY3BwCmluZGV4IDM5YTJmMzI0ZWM5ZWMxZDA4MDkxZjBmOGE4YzUxM2M3ZTU0NzY3NjEu
LmYzNGM3MGQxNTkwZmJmYzE1N2NlOGEyZmZiOTFlNzdkZWVkYWU3NTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCkBAIC04OSw4ICs4OSw4
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVMb2dpY2FsSGVpZ2h0Rm9yQ2VsbChSZW5kZXJU
YWJsZVNlY3Rpb246OlJvd1N0cnVjdCYgcm93CiB9CiAKIAotUmVuZGVyVGFibGVTZWN0aW9uOjpS
ZW5kZXJUYWJsZVNlY3Rpb24oRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJveChlbGVt
ZW50KQorUmVuZGVyVGFibGVTZWN0aW9uOjpSZW5kZXJUYWJsZVNlY3Rpb24oQ29udGFpbmVyTm9k
ZSogbm9kZSkKKyAgICA6IFJlbmRlckJveChub2RlKQogICAgICwgbV9jQ29sKDApCiAgICAgLCBt
X2NSb3coMCkKICAgICAsIG1fb3V0ZXJCb3JkZXJTdGFydCgwKQpAQCAtMTQxNSw4ICsxNDE1LDcg
QEAgQ29sbGFwc2VkQm9yZGVyVmFsdWUmIFJlbmRlclRhYmxlU2VjdGlvbjo6Y2FjaGVkQ29sbGFw
c2VkQm9yZGVyKGNvbnN0IFJlbmRlclRhYmwKIFJlbmRlclRhYmxlU2VjdGlvbiogUmVuZGVyVGFi
bGVTZWN0aW9uOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVy
T2JqZWN0KiBwYXJlbnQpCiB7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJl
bmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBhcmVudC0+c3R5bGUo
KSwgVEFCTEVfUk9XX0dST1VQKTsKLSAgICBSZW5kZXJUYWJsZVNlY3Rpb24qIG5ld1NlY3Rpb24g
PSBuZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyVGFibGVTZWN0aW9uKDApOwotICAg
IG5ld1NlY3Rpb24tPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKHBhcmVudC0+ZG9jdW1lbnQoKSk7
CisgICAgUmVuZGVyVGFibGVTZWN0aW9uKiBuZXdTZWN0aW9uID0gbmV3IChwYXJlbnQtPnJlbmRl
ckFyZW5hKCkpIFJlbmRlclRhYmxlU2VjdGlvbihwYXJlbnQtPmRvY3VtZW50KCkgLyogaXMgYW5v
bnltb3VzICovKTsKICAgICBuZXdTZWN0aW9uLT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkp
OwogICAgIHJldHVybiBuZXdTZWN0aW9uOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlU2VjdGlvbi5oCmluZGV4IGQ1ZTlmNDUyMTU3YzhlMTNmMTMxYTA0N2Y3ODY5
ZGNkMTE1MTY1NTYuLmU3NzdlNDFkZWIzOGMyMTQyM2I1N2M2YjE1YTU0YWZhNDVmZjI4MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKQEAgLTYy
LDcgKzYyLDcgQEAgY2xhc3MgUmVuZGVyVGFibGVSb3c7CiAKIGNsYXNzIFJlbmRlclRhYmxlU2Vj
dGlvbiA6IHB1YmxpYyBSZW5kZXJCb3ggewogcHVibGljOgotICAgIFJlbmRlclRhYmxlU2VjdGlv
bihFbGVtZW50Kik7CisgICAgUmVuZGVyVGFibGVTZWN0aW9uKENvbnRhaW5lck5vZGUqKTsKICAg
ICB2aXJ0dWFsIH5SZW5kZXJUYWJsZVNlY3Rpb24oKTsKIAogICAgIFJlbmRlck9iamVjdCogZmly
c3RDaGlsZCgpIGNvbnN0IHsgQVNTRVJUKGNoaWxkcmVuKCkgPT0gdmlydHVhbENoaWxkcmVuKCkp
OyByZXR1cm4gY2hpbGRyZW4oKS0+Zmlyc3RDaGlsZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAppbmRleCBhNWE0ZjgwNDQzNDI0NGExNDg3
ZjI2MjRkY2FjYzY1NTRlN2Y0ZWQyLi5mMGM2NGU3MmEwMGNkMDUzNGMxNmM5NzhlY2FiOTVjODhl
MTJjMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bC5jcHAKQEAgLTM2LDEwICszNiwxMCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVJlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJvbChFbGVt
ZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKK1JlbmRlclRleHRDb250
cm9sOjpSZW5kZXJUZXh0Q29udHJvbChDb250YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVy
QmxvY2sobm9kZSkKIHsKLSAgICBBU1NFUlQodG9UZXh0Rm9ybUNvbnRyb2woZWxlbWVudCkpOwor
ICAgIEFTU0VSVCh0b1RleHRGb3JtQ29udHJvbChub2RlKSk7CiB9CiAKIFJlbmRlclRleHRDb250
cm9sOjp+UmVuZGVyVGV4dENvbnRyb2woKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2wuaAppbmRleCA5NzA3YmI3NDE1OThiZTM5MThkOTE5MDlkZmJhNjZiMDQz
MGQ5MTljLi5iNzE2YmQzMWIzNzdjNzk4M2QxNGMwZTAyZTM5Mzc3Njk0YmRlOTBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaApAQCAtMzgsNyArMzgs
NyBAQCBwdWJsaWM6CiAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4
KGludCBpbmRleCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBSZW5kZXJUZXh0Q29udHJvbChF
bGVtZW50Kik7CisgICAgUmVuZGVyVGV4dENvbnRyb2woQ29udGFpbmVyTm9kZSopOwogCiAgICAg
Ly8gVGhpcyBjb252ZW5pZW5jZSBmdW5jdGlvbiBzaG91bGQgbm90IGJlIG1hZGUgcHVibGljIGJl
Y2F1c2UgaW5uZXJUZXh0RWxlbWVudCBtYXkgb3V0bGl2ZSB0aGUgcmVuZGVyIHRyZWUuCiAgICAg
SFRNTEVsZW1lbnQqIGlubmVyVGV4dEVsZW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCmluZGV4
IDRhM2FmNjFiOGRlOTA4M2U1OWQ2NzgwYWYxOGY2MTgyNGEzOTIzMTYuLjQ2ODJjYzk3YzUzMDcw
ODAwYjM3MDMzZTgzOTQ3NTE0ZTU4OWZkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcApAQCAtMzIsOCArMzIs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbmRlclRleHRDb250cm9sTXVsdGlMaW5l
OjpSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZShFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVu
ZGVyVGV4dENvbnRyb2woZWxlbWVudCkKK1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpSZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZShDb250YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVy
VGV4dENvbnRyb2wobm9kZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAppbmRleCAxZjkwMTcyOThhZWRjYzE3
MGJiYWM5ZTZlMWViZjY2NzhkMWMxMGY3Li5mNWIxYmJiN2EyNDA3N2JiZmI4NmMyM2YyYjFjYmUz
ZDE2YmNhODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xNdWx0aUxpbmUuaApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lIDogcHVibGljIFJlbmRlclRl
eHRDb250cm9sIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZShFbGVt
ZW50Kik7CisgICAgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUoQ29udGFpbmVyTm9kZSopOwog
ICAgIHZpcnR1YWwgflJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lKCk7CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuY3BwCmluZGV4IDEyMDZmMWQxNTFkMzA4YTZlZTE5N2RmODhiNjZjMWMwMjc4MmZi
ZjAuLmYxNDI3MjdjNTFkMjIwZDAxOTI4MWI3MjY3ZDYxMTk4ZmVjMWZlMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuY3BwCkBAIC00OSwxMyArNDksMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCi1SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZShFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyVGV4
dENvbnRyb2woZWxlbWVudCkKK1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lKENvbnRhaW5lck5vZGUqIG5vZGUpCisgICAgOiBSZW5kZXJUZXh0
Q29udHJvbChub2RlKQogICAgICwgbV9zaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IoZmFsc2Up
CiAgICAgLCBtX2Rlc2lyZWRJbm5lclRleHRIZWlnaHQoLTEpCiB7Ci0gICAgQVNTRVJUKGVsZW1l
bnQtPmlzSFRNTEVsZW1lbnQoKSk7Ci0gICAgQVNTRVJUKGVsZW1lbnQtPnRvSW5wdXRFbGVtZW50
KCkpOworICAgIEFTU0VSVChub2RlLT5pc0hUTUxFbGVtZW50KCkpOworICAgIEFTU0VSVChub2Rl
LT50b0lucHV0RWxlbWVudCgpKTsKIH0KIAogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCBmNDcyMWM4NTFk
MmFkNjI4Nzk2OTRkNmVlMjE4OWVlM2JkZWFmYjBlLi5mNzQ2MWNiOTcwNjM4ODJmZjYzODkyNWIz
Y2IxNmE0MTQ1YTA0MjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIEhU
TUxJbnB1dEVsZW1lbnQ7CiAKIGNsYXNzIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSA6IHB1
YmxpYyBSZW5kZXJUZXh0Q29udHJvbCB7CiBwdWJsaWM6Ci0gICAgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lKEVsZW1lbnQqKTsKKyAgICBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoQ29u
dGFpbmVyTm9kZSopOwogICAgIHZpcnR1YWwgflJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSgp
OwogICAgIC8vIEZJWE1FOiBNb3ZlIGNyZWF0ZSpTdHlsZSgpIHRvIHRoZWlyIGNsYXNzZXMuCiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjcmVhdGVJbm5lclRleHRTdHlsZShj
b25zdCBSZW5kZXJTdHlsZSogc3RhcnRTdHlsZSkgY29uc3Q7CkBAIC0xMTAsNyArMTEwLDcgQEAg
dm9pZCB0b1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShjb25zdCBSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUqKTsKIAogY2xhc3MgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrIDogcHVi
bGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxv
Y2soRWxlbWVudCogZWxlbWVudCkgOiBSZW5kZXJCbG9jayhlbGVtZW50KSB7IH0KKyAgICBSZW5k
ZXJUZXh0Q29udHJvbElubmVyQmxvY2soQ29udGFpbmVyTm9kZSogbm9kZSkgOiBSZW5kZXJCbG9j
ayhub2RlKSB7IH0KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaGFzTGluZUlmRW1wdHko
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0VHJhY2tDdWUuY3BwCmluZGV4IDAwMzNlMWI0MmMwYzZjMjY0Mjk0YTZhZmQ1M2U4
MGZjNmRhZGZhYTAuLjUxNjEzZTBmNTVlM2Q3MGYzODFmNDFhNWEwYjhjNDhhZTVjMzIyM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuY3BwCkBA
IC0zMyw5ICszMyw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVuZGVyVGV4dFRyYWNr
Q3VlOjpSZW5kZXJUZXh0VHJhY2tDdWUoVGV4dFRyYWNrQ3VlQm94KiBlbGVtZW50KQotICAgIDog
UmVuZGVyQmxvY2soZWxlbWVudCkKLSAgICAsIG1fY3VlKGVsZW1lbnQtPmdldEN1ZSgpKQorUmVu
ZGVyVGV4dFRyYWNrQ3VlOjpSZW5kZXJUZXh0VHJhY2tDdWUoVGV4dFRyYWNrQ3VlQm94KiBub2Rl
KQorICAgIDogUmVuZGVyQmxvY2sobm9kZSkKKyAgICAsIG1fY3VlKG5vZGUtPmdldEN1ZSgpKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggNmIwYWIy
ZmU1YTdiZTVlNmY3NTNjOWU5NzI5MzRjMzYxZTFiOTg3MS4uMDlhMzgyMDFiYTZhNWY4NzA0YjRj
ZGQ0ZTU0ZDc3MmFiNTM2YmM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcApAQCAtNjksNiArNjksMTAgQEAgUmVuZGVyVmlldzo6UmVuZGVyVmlldyhEb2N1bWVudCog
ZG9jdW1lbnQpCiAgICAgLCBtX3JlbmRlckNvdW50ZXJDb3VudCgwKQogICAgICwgbV9sYXlvdXRQ
aGFzZShSZW5kZXJWaWV3Tm9ybWFsTGF5b3V0KQogeworICAgIC8vIENsZWFyIG91ciBhbm9ueW1v
dXMgYml0LCBzZXQgYmVjYXVzZSBSZW5kZXJPYmplY3QgYXNzdW1lcworICAgIC8vIGFueSByZW5k
ZXJlciB3aXRoIGRvY3VtZW50IGFzIHRoZSBub2RlIGlzIGFub255bW91cy4KKyAgICBzZXRJc0Fu
b255bW91cyhmYWxzZSk7CisKICAgICAvLyBpbml0IFJlbmRlck9iamVjdCBhdHRyaWJ1dGVzCiAg
ICAgc2V0SW5saW5lKGZhbHNlKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cldpZGdldC5jcHAKaW5kZXggNzdmYTVmNTZhZmNmMDI4MGRiODZjODUyYTFhZGRhN2UzMmUzNTY2
Yi4uMjA3OWUyZDg3OWM4MDFjZmQxNTFiMTk4MTQ3MTFkN2U4ZTZiYzJkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTg1LDEwICs4NSwxMCBAQCBzdGF0
aWMgdm9pZCBtb3ZlV2lkZ2V0VG9QYXJlbnRTb29uKFdpZGdldCogY2hpbGQsIEZyYW1lVmlldyog
cGFyZW50KQogICAgIFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNTdXNwZW5zaW9uU2NvcGU6OnNjaGVk
dWxlV2lkZ2V0VG9Nb3ZlKGNoaWxkLCBwYXJlbnQpOwogfQogCi1SZW5kZXJXaWRnZXQ6OlJlbmRl
cldpZGdldChFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCkK
K1JlbmRlcldpZGdldDo6UmVuZGVyV2lkZ2V0KENvbnRhaW5lck5vZGUqIG5vZGUpCisgICAgOiBS
ZW5kZXJSZXBsYWNlZChub2RlKQogICAgICwgbV93aWRnZXQoMCkKLSAgICAsIG1fZnJhbWVWaWV3
KGVsZW1lbnQtPmRvY3VtZW50KCktPnZpZXcoKSkKKyAgICAsIG1fZnJhbWVWaWV3KG5vZGUtPmRv
Y3VtZW50KCktPnZpZXcoKSkKICAgICAvLyBSZWZlcmVuY2UgY291bnRpbmcgaXMgdXNlZCB0byBw
cmV2ZW50IHRoZSB3aWRnZXQgZnJvbSBiZWluZwogICAgIC8vIGRlc3Ryb3llZCB3aGlsZSBpbnNp
ZGUgdGhlIFdpZGdldCBjb2RlLCB3aGljaCBtaWdodCBub3QgYmUKICAgICAvLyBhYmxlIHRvIGhh
bmRsZSB0aGF0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCmluZGV4IDJk
ZDYxYTE2ZjI0OTk4MDdlM2U5NTEzYTI4OThjODY1MzI0YmI5NWYuLmQwZTEwYWYzZGYxMDQyZTU1
MzBiNjdkMTdmNjYyYTVlMmEzNGI5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVyZWYoUmVuZGVy
QXJlbmEqKTsKIAogcHJvdGVjdGVkOgotICAgIFJlbmRlcldpZGdldChFbGVtZW50Kik7CisgICAg
UmVuZGVyV2lkZ2V0KENvbnRhaW5lck5vZGUqKTsKIAogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZVZpZXc7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAppbmRleCAyZDViMWNj
YmEwMzEyZmQ4NTUxNDNjZDBhMWQxNzdkYzk3Yzk4YjhhLi4yYjE4ZWRjM2U3Mzg3MmUwNjgwYmUw
YWU4OGQxNDkzMTNhYjA0NmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFtZXM7CiAgICAgCi1S
ZW5kZXJNYXRoTUxCbG9jazo6UmVuZGVyTWF0aE1MQmxvY2soRWxlbWVudCogY29udGFpbmVyKQor
UmVuZGVyTWF0aE1MQmxvY2s6OlJlbmRlck1hdGhNTEJsb2NrKENvbnRhaW5lck5vZGUqIGNvbnRh
aW5lcikKICAgICA6IFJlbmRlckZsZXhpYmxlQm94KGNvbnRhaW5lcikKICAgICAsIG1faWdub3Jl
SW5BY2Nlc3NpYmlsaXR5VHJlZShmYWxzZSkKICAgICAsIG1fcHJlZmVycmVkTG9naWNhbEhlaWdo
dChwcmVmZXJyZWRMb2dpY2FsSGVpZ2h0VW5zZXQpCkBAIC02NCw4ICs2NCw3IEBAIHZvaWQgUmVu
ZGVyTWF0aE1MQmxvY2s6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKIFJlbmRlck1h
dGhNTEJsb2NrKiBSZW5kZXJNYXRoTUxCbG9jazo6Y3JlYXRlQW5vbnltb3VzTWF0aE1MQmxvY2so
RURpc3BsYXkgZGlzcGxheSkKIHsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0g
UmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoc3R5bGUoKSwgZGlz
cGxheSk7Ci0gICAgUmVuZGVyTWF0aE1MQmxvY2sqIG5ld0Jsb2NrID0gbmV3IChyZW5kZXJBcmVu
YSgpKSBSZW5kZXJNYXRoTUxCbG9jaygwKTsKLSAgICBuZXdCbG9jay0+c2V0RG9jdW1lbnRGb3JB
bm9ueW1vdXMoZG9jdW1lbnQoKSk7CisgICAgUmVuZGVyTWF0aE1MQmxvY2sqIG5ld0Jsb2NrID0g
bmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJNYXRoTUxCbG9jayhkb2N1bWVudCgpIC8qIGlzIGFu
b255bW91cyAqLyk7CiAgICAgbmV3QmxvY2stPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7
CiAgICAgcmV0dXJuIG5ld0Jsb2NrOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCmluZGV4IGUyZDhkYTRhOTI0NzJkOWE5YjUz
YzFkMjQ2YzJjMzMwMTkzNDZiNzAuLmQ3ZTE2NzUzNjczZWJhZDkxOTYyMDRiMTIxZjQ3NzBhMTQx
YTI0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTEJsb2NrLmgKQEAgLTQxLDggKzQxLDcgQEAgY2xhc3MgUmVuZGVyTWF0aE1MT3BlcmF0
b3I7CiAKIGNsYXNzIFJlbmRlck1hdGhNTEJsb2NrIDogcHVibGljIFJlbmRlckZsZXhpYmxlQm94
IHsKIHB1YmxpYzoKLSAgICBSZW5kZXJNYXRoTUxCbG9jayhFbGVtZW50KiBjb250YWluZXIpOwot
CisgICAgUmVuZGVyTWF0aE1MQmxvY2soQ29udGFpbmVyTm9kZSopOwogICAgIHZpcnR1YWwgYm9v
bCBpc0NoaWxkQWxsb3dlZChSZW5kZXJPYmplY3QqLCBSZW5kZXJTdHlsZSopIGNvbnN0OwogICAg
IAogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTEJsb2NrKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxGZW5jZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxGZW5jZWQuY3BwCmluZGV4IDk2NDBhZDU5YmRlY2IzMDM4NmU3OTNjMTM2ZDIxODM0
NjA1YzY4MjguLjk2ZjZjYmFiYzhlNjg5OGJlNDU1YTA5ZjRiNjAyODI4MmIxOTY2NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2Vk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZl
bmNlZC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgUmVuZGVyTWF0aE1MT3BlcmF0b3IqIFJlbmRlck1h
dGhNTEZlbmNlZDo6Y3JlYXRlTWF0aE1MT3BlcmF0b3IoVUNoYXIgdUNoYXIsIFJlbmQKICAgICBu
ZXdTdHlsZS0+c2V0TWFyZ2luRW5kKExlbmd0aCgob3BlcmF0b3JUeXBlID09IFJlbmRlck1hdGhN
TE9wZXJhdG9yOjpGZW5jZSA/IGdGZW5jZU1hcmdpbkVtcyA6IGdTZXBhcmF0b3JNYXJnaW5FbmRF
bXMpICogc3R5bGUoKS0+Zm9udFNpemUoKSwgRml4ZWQpKTsKICAgICBpZiAob3BlcmF0b3JUeXBl
ID09IFJlbmRlck1hdGhNTE9wZXJhdG9yOjpGZW5jZSkKICAgICAgICAgbmV3U3R5bGUtPnNldE1h
cmdpblN0YXJ0KExlbmd0aChnRmVuY2VNYXJnaW5FbXMgKiBzdHlsZSgpLT5mb250U2l6ZSgpLCBG
aXhlZCkpOwotICAgIFJlbmRlck1hdGhNTE9wZXJhdG9yKiBuZXdPcGVyYXRvciA9IG5ldyAocmVu
ZGVyQXJlbmEoKSkgUmVuZGVyTWF0aE1MT3BlcmF0b3IodG9FbGVtZW50KG5vZGUoKSksIHVDaGFy
KTsKKyAgICBSZW5kZXJNYXRoTUxPcGVyYXRvciogbmV3T3BlcmF0b3IgPSBuZXcgKHJlbmRlckFy
ZW5hKCkpIFJlbmRlck1hdGhNTE9wZXJhdG9yKG5vZGUoKSAvKiAiYWxtb3N0IGFub255bW91cyIg
Ki8sIHVDaGFyKTsKICAgICBuZXdPcGVyYXRvci0+c2V0T3BlcmF0b3JUeXBlKG9wZXJhdG9yVHlw
ZSk7CiAgICAgbmV3T3BlcmF0b3ItPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CiAgICAg
cmV0dXJuIG5ld09wZXJhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcAppbmRleCBiYWIzYTQ4NzIwODc5ZGJm
ZjcxNGViYzNmNzU4YmE2MjQ0NWI0ODAwLi4wYmViYjRlMGJkY2E3ZTQ5NGRjNWMxYTM2NjEwOWRk
N2FjY2I1MGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTE9wZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcApAQCAtNDcsOCArNDcsOCBAQCBSZW5kZXJNYXRo
TUxPcGVyYXRvcjo6UmVuZGVyTWF0aE1MT3BlcmF0b3IoRWxlbWVudCogZWxlbWVudCkKIHsKIH0K
IAotUmVuZGVyTWF0aE1MT3BlcmF0b3I6OlJlbmRlck1hdGhNTE9wZXJhdG9yKEVsZW1lbnQqIGVs
ZW1lbnQsIFVDaGFyIG9wZXJhdG9yQ2hhcikKLSAgICA6IFJlbmRlck1hdGhNTEJsb2NrKGVsZW1l
bnQpCitSZW5kZXJNYXRoTUxPcGVyYXRvcjo6UmVuZGVyTWF0aE1MT3BlcmF0b3IoQ29udGFpbmVy
Tm9kZSogbm9kZSwgVUNoYXIgb3BlcmF0b3JDaGFyKQorICAgIDogUmVuZGVyTWF0aE1MQmxvY2so
bm9kZSkKICAgICAsIG1fc3RyZXRjaEhlaWdodCgwKQogICAgICwgbV9vcGVyYXRvcihjb252ZXJ0
SHlwaGVuTWludXNUb01pbnVzU2lnbihvcGVyYXRvckNoYXIpKQogICAgICwgbV9vcGVyYXRvclR5
cGUoRGVmYXVsdCkKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9y
Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgYm9vbCBzdHJldGNoRGlzYWJsZWQgPSBmYWxzZTsK
ICAgICAKICAgICAvLyBXZSBtYXkgbmVlZCB0aGUgZWxlbWVudCBsYXRlciBpZiB3ZSBjYW4ndCBz
dHJldGNoLgotICAgIGlmIChub2RlKCktPmlzRWxlbWVudE5vZGUoKSkgeworICAgIGlmIChub2Rl
KCktPm5vZGVUeXBlKCkgPT0gTm9kZTo6RUxFTUVOVF9OT0RFKSB7CiAgICAgICAgIGlmIChFbGVt
ZW50KiBtbyA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKSB7CiAgICAgICAgICAgICBB
dG9taWNTdHJpbmcgc3RyZXRjaHlBdHRyID0gbW8tPmdldEF0dHJpYnV0ZShNYXRoTUxOYW1lczo6
c3RyZXRjaHlBdHRyKTsKICAgICAgICAgICAgIHN0cmV0Y2hEaXNhYmxlZCA9IGVxdWFsSWdub3Jp
bmdDYXNlKHN0cmV0Y2h5QXR0ciwgImZhbHNlIik7CkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBS
ZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIC8vIEVpdGhlciBz
dHJldGNoIGlzIGRpc2FibGVkIG9yIHdlIGRvbid0IGhhdmUgYSBzdHJldGNoYWJsZSBjaGFyYWN0
ZXIgb3ZlciB0aGUgbWluaW11bSBoZWlnaHQKICAgICBpZiAoc3RyZXRjaERpc2FibGVkIHx8ICFz
aG91bGRTdGFjaykgewogICAgICAgICBtX2lzU3RhY2tlZCA9IGZhbHNlOwotICAgICAgICBSZW5k
ZXJCbG9jayogY29udGFpbmVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJNYXRoTUxCbG9j
ayh0b0VsZW1lbnQobm9kZSgpKSk7CisgICAgICAgIFJlbmRlckJsb2NrKiBjb250YWluZXIgPSBu
ZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlck1hdGhNTEJsb2NrKG5vZGUoKSk7CiAgICAgICAgIC8v
IFRoaXMgY29udGFpbmVyIGRvZXNuJ3Qgb2ZmZXIgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbiB0byBh
Y2Nlc3NpYmlsaXR5LgogICAgICAgICB0b1JlbmRlck1hdGhNTEJsb2NrKGNvbnRhaW5lciktPnNl
dElnbm9yZUluQWNjZXNzaWJpbGl0eVRyZWUodHJ1ZSk7CiAgICAgICAgIApAQCAtMjI3LDcgKzIy
Nyw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAg
ICAgICAgUmVuZGVyVGV4dCogdGV4dCA9IDA7CiAgICAgICAgIGlmIChtX29wZXJhdG9yKSAKICAg
ICAgICAgICAgIHRleHQgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlclRleHQobm9kZSgpLCBT
dHJpbmdJbXBsOjpjcmVhdGUoJm1fb3BlcmF0b3IsIDEpKTsKLSAgICAgICAgZWxzZSBpZiAobm9k
ZSgpLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIGVsc2UgaWYgKG5vZGUoKS0+bm9kZVR5cGUo
KSA9PSBOb2RlOjpFTEVNRU5UX05PREUpCiAgICAgICAgICAgICBpZiAoRWxlbWVudCogbW8gPSBz
dGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSkKICAgICAgICAgICAgICAgICB0ZXh0ID0gbmV3
IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJUZXh0KG5vZGUoKSwgbW8tPnRleHRDb250ZW50KCkucmVw
bGFjZShoeXBoZW5NaW51cywgbWludXNTaWduKS5pbXBsKCkpOwogICAgICAgICAvLyBJZiB3ZSBj
YW4ndCBmaWd1cmUgb3V0IHRoZSB0ZXh0LCBsZWF2ZSBpdCBibGFuay4KQEAgLTI5Niw3ICsyOTYs
NyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6Y3JlYXRl
U3RhY2thYmxlU3R5bGUoaW50IG1heEhlaWdodAogCiBSZW5kZXJCbG9jayogUmVuZGVyTWF0aE1M
T3BlcmF0b3I6OmNyZWF0ZUdseXBoKFVDaGFyIGdseXBoLCBpbnQgbWF4SGVpZ2h0Rm9yUmVuZGVy
ZXIsIGludCBjaGFyUmVsYXRpdmUpCiB7Ci0gICAgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciA9IG5l
dyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyTWF0aE1MQmxvY2sodG9FbGVtZW50KG5vZGUoKSkpOwor
ICAgIFJlbmRlckJsb2NrKiBjb250YWluZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlck1h
dGhNTEJsb2NrKG5vZGUoKSk7CiAgICAgdG9SZW5kZXJNYXRoTUxCbG9jayhjb250YWluZXIpLT5z
ZXRJZ25vcmVJbkFjY2Vzc2liaWxpdHlUcmVlKHRydWUpOwogICAgIGNvbnRhaW5lci0+c2V0U3R5
bGUoY3JlYXRlU3RhY2thYmxlU3R5bGUobWF4SGVpZ2h0Rm9yUmVuZGVyZXIpKTsKICAgICBhZGRD
aGlsZChjb250YWluZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oCmluZGV4IDE1MDA5Y2Y0ZDU3YWRiM2Y4ZGQwOTcx
YTdkMTk3NmQxZWNjNmYwMjMuLjc3N2ZmMTE4NTMxM2FlYTliOTViYjAwMmU5NzY0NjQ5ZjE1ODRk
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MT3BlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTE9wZXJhdG9yLmgKQEAgLTM2LDggKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgUmVuZGVyTWF0aE1MT3BlcmF0b3IgOiBwdWJsaWMgUmVuZGVyTWF0aE1MQmxvY2sgewog
cHVibGljOgogICAgIFJlbmRlck1hdGhNTE9wZXJhdG9yKEVsZW1lbnQqKTsKLSAgICBSZW5kZXJN
YXRoTUxPcGVyYXRvcihFbGVtZW50KiwgVUNoYXIgb3BlcmF0b3JDaGFyKTsKLQorICAgIFJlbmRl
ck1hdGhNTE9wZXJhdG9yKENvbnRhaW5lck5vZGUqLCBVQ2hhciBvcGVyYXRvckNoYXIpOwogICAg
IHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTE9wZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc0NoaWxkQWxsb3dlZChSZW5kZXJPYmplY3Qq
LCBSZW5kZXJTdHlsZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwCmluZGV4IGExNDM4YTRmYzZjOWU3NGJkNWMzNTg0
ZmY0MjA2MGI3ZWI4NmNmZTguLjY5OGZmYjgzMmQ4MWFlMjUyZmYzZGFiNWVlMDU0NGM4YzViM2Q4
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTFJvdy5jcHAKQEAgLTM2LDggKzM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgTWF0aE1MTmFtZXM7CiAKLVJlbmRlck1hdGhNTFJvdzo6UmVuZGVyTWF0aE1M
Um93KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJNYXRoTUxCbG9jayhlbGVtZW50KQor
UmVuZGVyTWF0aE1MUm93OjpSZW5kZXJNYXRoTUxSb3coQ29udGFpbmVyTm9kZSogbm9kZSkKKyAg
ICA6IFJlbmRlck1hdGhNTEJsb2NrKG5vZGUpCiB7CiB9CiAKQEAgLTQ1LDggKzQ1LDcgQEAgUmVu
ZGVyTWF0aE1MUm93OjpSZW5kZXJNYXRoTUxSb3coRWxlbWVudCogZWxlbWVudCkKIFJlbmRlck1h
dGhNTFJvdyogUmVuZGVyTWF0aE1MUm93OjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVy
ZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpCiB7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxl
PiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5
KHBhcmVudC0+c3R5bGUoKSwgRkxFWCk7Ci0gICAgUmVuZGVyTWF0aE1MUm93KiBuZXdNUm93ID0g
bmV3IChwYXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlck1hdGhNTFJvdygwKTsKLSAgICBuZXdN
Um93LT5zZXREb2N1bWVudEZvckFub255bW91cyhwYXJlbnQtPmRvY3VtZW50KCkpOworICAgIFJl
bmRlck1hdGhNTFJvdyogbmV3TVJvdyA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5k
ZXJNYXRoTUxSb3cocGFyZW50LT5kb2N1bWVudCgpIC8qIGlzIGFub255bW91cyAqLyk7CiAgICAg
bmV3TVJvdy0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbmV3TVJv
dzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TFJvdy5oCmluZGV4IDljMWExZGMzNTFiMTQzZDE5NDlmODBhODI2ZDkyNzUyMGQyNGNlNjcuLmIz
Y2U3NjVjNzczMGQyMmFlOTBmOTlmMjRkNmY3Mjg0MmU2MjQzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuaApAQCAtMzQsOCArMzQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBSZW5kZXJNYXRoTUxSb3cgOiBw
dWJsaWMgUmVuZGVyTWF0aE1MQmxvY2sgewogcHVibGljOgotICAgIFJlbmRlck1hdGhNTFJvdyhF
bGVtZW50Kik7Ci0KKyAgICBSZW5kZXJNYXRoTUxSb3coQ29udGFpbmVyTm9kZSopOwogICAgIHN0
YXRpYyBSZW5kZXJNYXRoTUxSb3cqIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcihj
b25zdCBSZW5kZXJPYmplY3QqKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRo
TUxSb3coKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAppbmRleCA3YTExNWI5MTU5MTI2NGVkZjRjNGFiMjNj
YTRkODZiZDQwMWMzNTM2Li5lMTg0YjliZjY0ZTVhMTQ3MTNjZDQwNjY2MTI0NDE2ZGE4MjJlM2Zh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAK
QEAgLTY5LDcgKzY5LDcgQEAgUGFzc093blB0cjxDb250ZW50RGF0YT4gQ29udGVudERhdGE6OmNs
b25lKCkgY29uc3QKIAogUmVuZGVyT2JqZWN0KiBJbWFnZUNvbnRlbnREYXRhOjpjcmVhdGVSZW5k
ZXJlcihEb2N1bWVudCogZG9jLCBSZW5kZXJTdHlsZSogcHNldWRvU3R5bGUpIGNvbnN0CiB7Ci0g
ICAgUmVuZGVySW1hZ2UqIGltYWdlID0gUmVuZGVySW1hZ2U6OmNyZWF0ZUFub255bW91cyhkb2Mp
OworICAgIFJlbmRlckltYWdlKiBpbWFnZSA9IG5ldyAoZG9jLT5yZW5kZXJBcmVuYSgpKSBSZW5k
ZXJJbWFnZShkb2MpOwogICAgIGltYWdlLT5zZXRQc2V1ZG9TdHlsZShwc2V1ZG9TdHlsZSk7CiAg
ICAgaWYgKG1faW1hZ2UpCiAgICAgICAgIGltYWdlLT5zZXRJbWFnZVJlc291cmNlKFJlbmRlcklt
YWdlUmVzb3VyY2VTdHlsZUltYWdlOjpjcmVhdGUobV9pbWFnZS5nZXQoKSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAppbmRleCBmMTIwYjk5
NDY2M2JlNjM3OTA4M2RmZDBkY2QwNDUxZjVmNDQ0MjViLi45ZjM5MzU3YzFiNjRmNDAwMTViODk5
Yzc4MWJhYjEwNGRkNDY5NjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0Jsb2NrLmNwcApAQCAtMzEsOCArMzEsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVJlbmRlclNWR0Jsb2NrOjpSZW5kZXJTVkdCbG9jayhTVkdFbGVtZW50KiBlbGVtZW50
KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKK1JlbmRlclNWR0Jsb2NrOjpSZW5kZXJTVkdC
bG9jayhTVkdFbGVtZW50KiBub2RlKSAKKyAgICA6IFJlbmRlckJsb2NrKG5vZGUpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcApp
bmRleCBlOGRmZTAzZTRjNThjYWI4NWRlMjc5NTliYWNjYzA2ZmZhOGI2MGZkLi41ODI3NTI4YTdi
NjAzNWJiMGEyYTVkZjc4ZGRkMjk5MDM3MmEzZThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLVJlbmRlclNWR0lubGluZTo6UmVuZGVyU1ZHSW5saW5l
KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJJbmxpbmUoZWxlbWVudCkKK1JlbmRlclNW
R0lubGluZTo6UmVuZGVyU1ZHSW5saW5lKENvbnRhaW5lck5vZGUqIG5vZGUpCisgICAgOiBSZW5k
ZXJJbmxpbmUobm9kZSkKIHsKICAgICBzZXRBbHdheXNDcmVhdGVMaW5lQm94ZXMoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCmluZGV4IGRi
ZWIwZDNlZDA1MDNmMjJjNzUxYzdmNmRiNjUxNTQ2ZjQ0NDQxZTQuLjRmNjA0ZWM3NjhiMzk1ZDI5
ZDBjYjJiZmMxZGMxZGZjYmE2M2Y3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFJlbmRlclNWR0lubGluZSA6IHB1YmxpYyBSZW5kZXJJbmxpbmUgewogcHVi
bGljOgotICAgIGV4cGxpY2l0IFJlbmRlclNWR0lubGluZShFbGVtZW50Kik7CisgICAgZXhwbGlj
aXQgUmVuZGVyU1ZHSW5saW5lKENvbnRhaW5lck5vZGUqKTsKIAogICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdJbmxpbmUiOyB9CiAg
ICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUU3Bhbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcAppbmRl
eCAwODMxYjI0MDlkZmQ0MGViOTg0Y2M4NTg1ZDdiYzZiZGQwYThiNDRiLi5kNzM1YWE4ZjVlMGQ2
OThiOGY5ZGVlZWQyMGQ5MzU1OGFiYmU0NDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcApAQCAtMjcsOCArMjcsOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVJlbmRlclNWR1RTcGFuOjpSZW5kZXJTVkdUU3BhbihFbGVtZW50KiBl
bGVtZW50KQotICAgIDogUmVuZGVyU1ZHSW5saW5lKGVsZW1lbnQpCitSZW5kZXJTVkdUU3Bhbjo6
UmVuZGVyU1ZHVFNwYW4oQ29udGFpbmVyTm9kZSogbm9kZSkKKyAgICA6IFJlbmRlclNWR0lubGlu
ZShub2RlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RTcGFuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RTcGFuLmgKaW5kZXggYmQ5Y2U5YWJlMDY5YjI2MDZmNzAxNDgxOTY3OTZhNTMzZjViNDllMC4u
NTU1Y2UyYmVhZDJkMWEzNzYyZjAzNjU3NzU4NmQ2YzI3YzZhNjhiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUU3Bhbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVFNwYW4uaApAQCAtMjgsNyArMjgsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVuZGVyU1ZHVFNwYW4gOiBwdWJsaWMgUmVuZGVy
U1ZHSW5saW5lIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSZW5kZXJTVkdUU3BhbihFbGVtZW50
Kik7CisgICAgZXhwbGljaXQgUmVuZGVyU1ZHVFNwYW4oQ29udGFpbmVyTm9kZSopOwogICAgIHZp
cnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdU
U3BhbiI7IH0KIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RleHRQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVGV4dFBhdGguY3BwCmluZGV4IDk0NzYxNmU3OTYyYjJjZDIwNjJkNDY5ZWMxYjdhZjQ0
NWRiZTlhZmEuLjk1ZDk1MDgzM2E2NTNmZjdlNjA1Mzk1OGViM2VhZDMwMzRiOTk1MjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguY3Bw
CkBAIC0zNCw4ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVuZGVyU1ZHVGV4
dFBhdGg6OlJlbmRlclNWR1RleHRQYXRoKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJT
VkdJbmxpbmUoZWxlbWVudCkKK1JlbmRlclNWR1RleHRQYXRoOjpSZW5kZXJTVkdUZXh0UGF0aChD
b250YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVyU1ZHSW5saW5lKG5vZGUpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBh
dGguaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguaApp
bmRleCA4OGQ5MzFiZWFlNTJlYmRiOTRiMzVjYzI2ODk5MDYyZGZkOTY2OWI0Li4xMmRjMTdkODAw
YmUzYzhlODE0NWYwYTM5MDg3OTU4ZThhMzE1NzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5oCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyU1ZHVGV4dFBhdGggOiBwdWJsaWMgUmVuZGVy
U1ZHSW5saW5lIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJTVkdUZXh0UGF0aChFbGVtZW50Kik7Cisg
ICAgUmVuZGVyU1ZHVGV4dFBhdGgoQ29udGFpbmVyTm9kZSopOwogCiAgICAgUGF0aCBsYXlvdXRQ
YXRoKCkgY29uc3Q7CiAgICAgZmxvYXQgc3RhcnRPZmZzZXQoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUmVuZGVyVGFibGVDZWxsVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1JlbmRlclRhYmxlQ2VsbFRlc3QuY3BwCmluZGV4
IDU2YzIwMWJiNzY1ODA1NWI2OWY1MGQ4ODJjOTZhOTY5MmViYTQ3ZjkuLmI0YzU1NGE3NjJkYTMx
YjVlNTZkZDZkZmE4OGQ1OWU2NTg1MDJiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvUmVuZGVyVGFibGVDZWxsVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9SZW5kZXJUYWJsZUNlbGxUZXN0LmNwcApAQCAtNzIsNyArNzIsNyBAQCBj
bGFzcyBSZW5kZXJUYWJsZUNlbGxEZWF0aFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQogICAgIHsKLSAgICAgICAgbV9jZWxsID0gUmVuZGVy
VGFibGVDZWxsOjpjcmVhdGVBbm9ueW1vdXMoZG9jdW1lbnQoKSk7CisgICAgICAgIG1fY2VsbCA9
IG5ldyAoYXJlbmEoKSkgUmVuZGVyVGFibGVDZWxsKGRvY3VtZW50KCkpOwogICAgIH0KIAogICAg
IHZpcnR1YWwgdm9pZCBUZWFyRG93bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1JlbmRlclRhYmxlUm93VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1JlbmRlclRhYmxlUm93VGVzdC5jcHAKaW5kZXggYWE2MWJkOWMxOTI1ZWE1NGUxZDU0
MmVhOWY2ZjM1NDIwYTM5MjIxMi4uYTVlZTJhMzQ3MjJkYjAwMjc2ODY5ZmVlMzFlMmZiZDFmMDVh
ZmMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9SZW5kZXJUYWJs
ZVJvd1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUmVuZGVyVGFi
bGVSb3dUZXN0LmNwcApAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBSZW5kZXJUYWJsZVJvd0RlYXRo
VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIAogICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgp
CiAgICAgewotICAgICAgICBtX3JvdyA9IFJlbmRlclRhYmxlUm93OjpjcmVhdGVBbm9ueW1vdXMo
ZG9jdW1lbnQoKSk7CisgICAgICAgIG1fcm93ID0gbmV3IChhcmVuYSgpKSBSZW5kZXJUYWJsZVJv
dyhkb2N1bWVudCgpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>