<?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>233351</bug_id>
          
          <creation_ts>2021-11-18 21:14:58 -0800</creation_ts>
          <short_desc>Implement extension-path variant of redirect action in WKContentRuleList</short_desc>
          <delta_ts>2021-12-07 17:38:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1816739</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-18 21:14:58 -0800</bug_when>
    <thetext>Implement extension-path variant of redirect action in WKContentRuleList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816740</commentid>
    <comment_count>1</comment_count>
      <attachid>444779</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-18 21:17:57 -0800</bug_when>
    <thetext>Created attachment 444779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816754</commentid>
    <comment_count>2</comment_count>
      <attachid>444782</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-18 22:56:15 -0800</bug_when>
    <thetext>Created attachment 444782
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817032</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-19 15:52:48 -0800</bug_when>
    <thetext>r286084</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821315</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-07 17:38:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/86185222&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444779</attachid>
            <date>2021-11-18 21:17:57 -0800</date>
            <delta_ts>2021-11-18 22:56:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233351-20211118211755.patch</filename>
            <type>text/plain</type>
            <size>47855</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmIzOWYzOGM1OTI2ODc1
YjMyOTEzN2VjMzgxY2FjZGM1ZDBiY2FlYy4uMTliNGRkYmE4ZDA0ZTVlNDM2YzhhOTMzNmU4MjMz
MDViZGQ2YmNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTExLTE4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50IGV4dGVuc2lvbi1wYXRoIHZhcmlhbnQgb2YgcmVkaXJlY3QgYWN0aW9uIGluIFdLQ29udGVu
dFJ1bGVMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzMzNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCZWNhdXNlIHRoZSBleHRlbnNpb24gcGF0aCBjaGFuZ2VzIGVhY2ggdGltZSB5b3UgcmVsYXVu
Y2ggU2FmYXJpIGJ1dCB0aGUgY29tcGlsZWQgYnl0ZWNvZGUgZG9lcyBub3QsCisgICAgICAgIHdl
IG5lZWQgYSB3YXkgdG8gcGFzcyBpbiB0aGUgZXh0ZW5zaW9uIGJhc2UgVVJMIHdoZW4gYWRkaW5n
IHRoZSBsb29rZWQtdXAgb3IgY29tcGlsZWQgV0tDb250ZW50UnVsZUxpc3QKKyAgICAgICAgdG8g
dGhlIFdLVXNlckNvbnRlbnRDb250cm9sbGVyLgorCisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uOjpDb250ZW50RXh0ZW5zaW9uKToKKyAgICAg
ICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbjo6ZXh0ZW5zaW9uQmFzZVVS
TCBjb25zdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFj
dGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0
QWN0aW9uOjphcHBseVRvUmVxdWVzdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29u
dGVudEV4dGVuc2lvbkFjdGlvbnMuaDoKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6YWRkQ29udGVudEV4dGVuc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNr
ZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OmFwcGx5UmVzdWx0c1RvUmVxdWVzdCk6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmg6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oOgorCiAyMDIxLTExLTE4ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWxs
b3cgYWxsIHJlZGlyZWN0IHNjaGVtZXMgd2hlbiBjb21waWxpbmcgYSBjb250ZW50IHJ1bGUgbGlz
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBjYTdkYmMzYWJiZmUxZTg4Njg4ZGMxZWU1Y2M3NTllMDU5NTRlZTY5Li4w
M2YxZWQ3YWIzNmIxNWQ2MzQ4N2Q4NzE4N2NjNDY5YzZhNDEzMjA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ5IEBACisyMDIxLTExLTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IGV4dGVuc2lvbi1wYXRoIHZhcmlhbnQgb2Yg
cmVkaXJlY3QgYWN0aW9uIGluIFdLQ29udGVudFJ1bGVMaXN0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMzNTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NvbnRlbnRS
dWxlTGlzdE1hbmFnZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW46CisgICAg
ICAgICogU2hhcmVkL1NlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9TZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmg6CisgICAgICAg
ICogU2hhcmVkL1VzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9Vc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmg6CisgICAgICAgICog
U2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjpXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVM
aXN0LmNwcDoKKyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0OjpDb250ZW50UnVsZUxpc3Qp
OgorICAgICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3Q6Om5hbWUgY29uc3QpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHA6CisgICAgICAgIChBUEk6OmNyZWF0ZUV4
dGVuc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX2FkZENvbnRl
bnRSdWxlTGlzdDpleHRlbnNpb25CYXNlVVJMOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OmNvbnRlbnRFeHRlbnNpb25SdWxlcyk6CisgICAgICAgICogVUlQ
cm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmNvbnRlbnRSdWxl
TGlzdERhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eTo6YWRkQ29udGVudFJ1bGVMaXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZENvbnRlbnRSdWxlTGlzdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Ojpjb250ZW50RXh0ZW5z
aW9uUnVsZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0Ojpjb250ZW50UnVsZUxpc3RzRnJvbUlkZW50aWZpZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRDb250ZW50UnVsZUxp
c3RzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLm1lc3NhZ2VzLmluOgorCiAyMDIxLTExLTE4ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWxsb3cgYWxsIHJlZGlyZWN0
IHNjaGVtZXMgd2hlbiBjb21waWxpbmcgYSBjb250ZW50IHJ1bGUgbGlzdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAppbmRl
eCA4OWQ0YzJjZmZmOGFmMGJiYzk0MGE4ZWNhYmZmMWQ5NWU0YmZjNjRlLi43ZTRjMTI4NzU3NGZl
MGQ5Nzc3MWY4NGI5NWE5NDdkMjY3N2NkMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcApAQCAtMzYsMTQgKzM2LDE1
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewog
Ci1SZWY8Q29udGVudEV4dGVuc2lvbj4gQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4mJiBjb21waWxl
ZEV4dGVuc2lvbiwgU2hvdWxkQ29tcGlsZUNTUyBzaG91bGRDb21waWxlQ1NTKQorUmVmPENvbnRl
bnRFeHRlbnNpb24+IENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZShjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIFJlZjxDb21waWxlZENvbnRlbnRFeHRlbnNpb24+JiYgY29tcGlsZWRFeHRlbnNpb24s
IFVSTCYmIGV4dGVuc2lvbkJhc2VVUkwsIFNob3VsZENvbXBpbGVDU1Mgc2hvdWxkQ29tcGlsZUNT
UykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50RXh0ZW5zaW9uKGlkZW50aWZp
ZXIsIFdURk1vdmUoY29tcGlsZWRFeHRlbnNpb24pLCBzaG91bGRDb21waWxlQ1NTKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29udGVudEV4dGVuc2lvbihpZGVudGlmaWVyLCBXVEZNb3Zl
KGNvbXBpbGVkRXh0ZW5zaW9uKSwgV1RGTW92ZShleHRlbnNpb25CYXNlVVJMKSwgc2hvdWxkQ29t
cGlsZUNTUykpOwogfQogCi1Db250ZW50RXh0ZW5zaW9uOjpDb250ZW50RXh0ZW5zaW9uKGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4mJiBjb21w
aWxlZEV4dGVuc2lvbiwgU2hvdWxkQ29tcGlsZUNTUyBzaG91bGRDb21waWxlQ1NTKQorQ29udGVu
dEV4dGVuc2lvbjo6Q29udGVudEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFJl
ZjxDb21waWxlZENvbnRlbnRFeHRlbnNpb24+JiYgY29tcGlsZWRFeHRlbnNpb24sIFVSTCYmIGV4
dGVuc2lvbkJhc2VVUkwsIFNob3VsZENvbXBpbGVDU1Mgc2hvdWxkQ29tcGlsZUNTUykKICAgICA6
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9jb21waWxlZEV4dGVuc2lvbihXVEZN
b3ZlKGNvbXBpbGVkRXh0ZW5zaW9uKSkKKyAgICAsIG1fZXh0ZW5zaW9uQmFzZVVSTChXVEZNb3Zl
KGV4dGVuc2lvbkJhc2VVUkwpKQogewogICAgIERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIgd2l0aG91
dENvbmRpdGlvbnMobV9jb21waWxlZEV4dGVuc2lvbi0+ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGUoKSwgbV9jb21waWxlZEV4dGVuc2lvbi0+ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGVMZW5ndGgoKSk7CiAgICAgREZBQnl0ZWNvZGVJbnRlcnByZXRlciB3aXRoQ29uZGl0
aW9ucyhtX2NvbXBpbGVkRXh0ZW5zaW9uLT5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSgp
LCBtX2NvbXBpbGVkRXh0ZW5zaW9uLT5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZUxlbmd0
aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb24uaAppbmRleCA1YWYxYWRhOTM2MDI2NjhkYzJmZWU3OTQ1MjQ5ZmVjZDI4OThjMDk3
Li5hNWIzMWVlM2QxZmY1MGU1NDUxYjczNWIzMzdmMzNiOTQyYTZiN2IwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5oCkBAIC00
Miw5ICs0MiwxMCBAQCBjbGFzcyBDb21waWxlZENvbnRlbnRFeHRlbnNpb247CiBjbGFzcyBDb250
ZW50RXh0ZW5zaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Q29udGVudEV4dGVuc2lvbj4gewogcHVi
bGljOgogICAgIGVudW0gY2xhc3MgU2hvdWxkQ29tcGlsZUNTUyB7IE5vLCBZZXMgfTsKLSAgICBz
dGF0aWMgUmVmPENvbnRlbnRFeHRlbnNpb24+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIsIFJlZjxDb21waWxlZENvbnRlbnRFeHRlbnNpb24+JiYsIFNob3VsZENvbXBpbGVDU1MgPSBT
aG91bGRDb21waWxlQ1NTOjpZZXMpOworICAgIHN0YXRpYyBSZWY8Q29udGVudEV4dGVuc2lvbj4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVu
c2lvbj4mJiwgVVJMJiYsIFNob3VsZENvbXBpbGVDU1MpOwogCiAgICAgY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgY29uc3QgVVJM
JiBleHRlbnNpb25CYXNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9leHRlbnNpb25CYXNlVVJMOyB9
CiAgICAgY29uc3QgQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uJiBjb21waWxlZEV4dGVuc2lvbigp
IGNvbnN0IHsgcmV0dXJuIG1fY29tcGlsZWRFeHRlbnNpb24uZ2V0KCk7IH0KICAgICBTdHlsZVNo
ZWV0Q29udGVudHMqIGdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCgpOwogICAgIGNvbnN0IERG
QUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OkFjdGlvbnMmIHRvcFVSTEFjdGlvbnMoY29uc3QgVVJMJiB0
b3BVUkwpOwpAQCAtNTIsMTEgKzUzLDEyIEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8dWlu
dDMyX3Q+JiB1bml2ZXJzYWxBY3Rpb25zV2l0aENvbmRpdGlvbnMoY29uc3QgVVJMJiB0b3BVUkwp
OwogCiBwcml2YXRlOgotICAgIENvbnRlbnRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyLCBSZWY8Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uPiYmLCBTaG91bGRDb21waWxlQ1NTKTsK
KyAgICBDb250ZW50RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBp
bGVkQ29udGVudEV4dGVuc2lvbj4mJiwgVVJMJiYsIFNob3VsZENvbXBpbGVDU1MpOwogICAgIHVp
bnQzMl90IGZpbmRGaXJzdElnbm9yZVByZXZpb3VzUnVsZXMoKSBjb25zdDsKICAgICAKICAgICBT
dHJpbmcgbV9pZGVudGlmaWVyOwogICAgIFJlZjxDb21waWxlZENvbnRlbnRFeHRlbnNpb24+IG1f
Y29tcGlsZWRFeHRlbnNpb247CisgICAgVVJMIG1fZXh0ZW5zaW9uQmFzZVVSTDsKIAogICAgIFJl
ZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IG1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0Owog
ICAgIHZvaWQgY29tcGlsZUdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlv
bnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
bkFjdGlvbnMuY3BwCmluZGV4IGYzOWY2ZDQ4ZWRlNTNjYTYzOWUwN2U4NGE3MGQ3OGY1NzZkYzQx
MjYuLjJmNjU3YTMxNDBiMmQ3MGUwMzkzZDVkNTMxMjNkZDU4YTU2NmMxMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25z
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uQWN0aW9ucy5jcHAKQEAgLTM2OCwxMCArMzY4LDEyIEBAIHNpemVfdCBSZWRpcmVjdEFjdGlv
bjo6c2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4X3Q+IHNwYW4pCiAgICAgcmV0dXJu
IGRlc2VyaWFsaXplTGVuZ3RoKHNwYW4sIDApOwogfQogCi12b2lkIFJlZGlyZWN0QWN0aW9uOjph
cHBseVRvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIFJlZGlyZWN0QWN0
aW9uOjphcHBseVRvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFVSTCYg
ZXh0ZW5zaW9uQmFzZVVSTCkKIHsKLSAgICBzdGQ6OnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoW10o
Y29uc3QgRXh0ZW5zaW9uUGF0aEFjdGlvbiYpIHsKLSAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dC4gV2UgbmVlZCB0byBrbm93IHRoZSBiYXNlIFVSTCBvZiB0aGUgZXh0ZW5zaW9uIGhlcmUgZnJv
bSBuZXcgU1BJLgorICAgIHN0ZDo6dmlzaXQoV1RGOjptYWtlVmlzaXRvcihbJl0oY29uc3QgRXh0
ZW5zaW9uUGF0aEFjdGlvbiYgYWN0aW9uKSB7CisgICAgICAgIGF1dG8gdXJsID0gZXh0ZW5zaW9u
QmFzZVVSTDsKKyAgICAgICAgdXJsLnNldFBhdGgoYWN0aW9uLmV4dGVuc2lvblBhdGgpOworICAg
ICAgICByZXF1ZXN0LnNldFVSTChXVEZNb3ZlKHVybCkpOwogICAgIH0sIFsmXSAoY29uc3QgUmVn
ZXhTdWJzdGl0dXRpb25BY3Rpb24mKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQsIGlk
ZWFsbHkgaW4gYSB3YXkgdGhhdCBkb2Vzbid0IHJlcXVpcmUgbWFraW5nIGEgbmV3IFZNIGFuZCBn
bG9iYWwgb2JqZWN0IGZvciBlYWNoIHJlZGlyZWN0IG9wZXJhdGlvbi4KICAgICB9LCBbJl0gKGNv
bnN0IFVSTFRyYW5zZm9ybUFjdGlvbiYgYWN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaAppbmRl
eCAxNTY0MjkzYjQwMDZiYzhmMjVlOGYxOTg4ZWE5ZWU2MDUzOTc1NDVkLi4wMTk4ODk2N2M0Mjdi
NDVmNjljMjcyNGY2MGI2ZDYxM2ZmOTUxODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKQEAgLTI0
NCw3ICsyNDQsNyBAQCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgUmVkaXJlY3RBY3Rpb24gewogICAg
IHZvaWQgc2VyaWFsaXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0OwogICAgIHN0YXRpYyBSZWRp
cmVjdEFjdGlvbiBkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKICAgICBzdGF0aWMg
c2l6ZV90IHNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90Pik7Ci0gICAgdm9pZCBh
cHBseVRvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIGFwcGx5VG9SZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFVSTCYpOwogfTsKIAogdXNpbmcgQWN0aW9uRGF0YSA9
IHN0ZDo6dmFyaWFudDwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCmluZGV4IGZjODJmMmJiYzlj
YTBjMTE0ZjJjYzc5NDFmZTYxYjZkODY5MjVjMGUuLmMwM2EyNGI1N2IwNTM5OTQ1YzQyN2M3Zjc2
MWRlZTQ2NDAxNDEyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcApAQCAtNzgsMTMgKzc4
LDEzIEBAIGJvb2wgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpzaG91bGRCZU1hZGVTZWN1cmUo
Y29uc3QgVVJMJiB1cmwpCiAgICAgcmV0dXJuIHJlc3VsdHMuc3VtbWFyeS5tYWRlSFRUUFM7CiB9
CiAKLXZvaWQgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjphZGRDb250ZW50RXh0ZW5zaW9uKGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4gY29t
cGlsZWRDb250ZW50RXh0ZW5zaW9uLCBDb250ZW50RXh0ZW5zaW9uOjpTaG91bGRDb21waWxlQ1NT
IHNob3VsZENvbXBpbGVDU1MpCit2b2lkIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6YWRkQ29u
dGVudEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFJlZjxDb21waWxlZENvbnRl
bnRFeHRlbnNpb24+IGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbiwgVVJMJiYgZXh0ZW5zaW9uQmFz
ZVVSTCwgQ29udGVudEV4dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNTUyBzaG91bGRDb21waWxlQ1NT
KQogewogICAgIEFTU0VSVCghaWRlbnRpZmllci5pc0VtcHR5KCkpOwogICAgIGlmIChpZGVudGlm
aWVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGF1dG8gY29udGVudEV4
dGVuc2lvbiA9IENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZShpZGVudGlmaWVyLCBXVEZNb3ZlKGNv
bXBpbGVkQ29udGVudEV4dGVuc2lvbiksIHNob3VsZENvbXBpbGVDU1MpOworICAgIGF1dG8gY29u
dGVudEV4dGVuc2lvbiA9IENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZShpZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbiksIFdURk1vdmUoZXh0ZW5zaW9uQmFzZVVSTCks
IHNob3VsZENvbXBpbGVDU1MpOwogICAgIG1fY29udGVudEV4dGVuc2lvbnMuc2V0KGlkZW50aWZp
ZXIsIFdURk1vdmUoY29udGVudEV4dGVuc2lvbikpOwogfQogCkBAIC0yMzEsOSArMjMxLDkgQEAg
Q29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3ND
b250ZW50UnVsZUxpc3RzRm9yTG9hZCgKICAgICAgICAgICAgIH0sIFsmXSAoY29uc3QgTW9kaWZ5
SGVhZGVyc0FjdGlvbiYgYWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgaWYgKGluaXRpYXRpbmdE
b2N1bWVudExvYWRlci5hbGxvd3NBY3RpdmVDb250ZW50UnVsZUxpc3RBY3Rpb25zRm9yVVJMKHVy
bCkpCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMuc3VtbWFyeS5tb2RpZnlIZWFkZXJzQWN0
aW9ucy5hcHBlbmQoYWN0aW9uKTsKLSAgICAgICAgICAgIH0sIFsmXSAoY29uc3QgUmVkaXJlY3RB
Y3Rpb24mIGFjdGlvbikgeworICAgICAgICAgICAgfSwgWyZdIChjb25zdCBSZWRpcmVjdEFjdGlv
biYgcmVkaXJlY3RBY3Rpb24pIHsKICAgICAgICAgICAgICAgICBpZiAoaW5pdGlhdGluZ0RvY3Vt
ZW50TG9hZGVyLmFsbG93c0FjdGl2ZUNvbnRlbnRSdWxlTGlzdEFjdGlvbnNGb3JVUkwodXJsKSkK
LSAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5zdW1tYXJ5LnJlZGlyZWN0QWN0aW9ucy5hcHBl
bmQoYWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5zdW1tYXJ5LnJlZGlyZWN0
QWN0aW9ucy5hcHBlbmQoeyByZWRpcmVjdEFjdGlvbiwgbV9jb250ZW50RXh0ZW5zaW9ucy5nZXQo
YWN0aW9uc0Zyb21Db250ZW50UnVsZUxpc3QuY29udGVudFJ1bGVMaXN0SWRlbnRpZmllciktPmV4
dGVuc2lvbkJhc2VVUkwoKSB9KTsKICAgICAgICAgICAgIH0pLCBhY3Rpb24uZGF0YSgpKTsKICAg
ICAgICAgfQogCkBAIC0zMzAsOCArMzMwLDggQEAgdm9pZCBhcHBseVJlc3VsdHNUb1JlcXVlc3Qo
Q29udGVudFJ1bGVMaXN0UmVzdWx0cyYmIHJlc3VsdHMsIFBhZ2UqIHBhZ2UsIFJlc291cmMKICAg
ICBmb3IgKGF1dG8mIGFjdGlvbiA6IHJlc3VsdHMuc3VtbWFyeS5tb2RpZnlIZWFkZXJzQWN0aW9u
cykKICAgICAgICAgYWN0aW9uLmFwcGx5VG9SZXF1ZXN0KHJlcXVlc3QpOwogCi0gICAgZm9yIChh
dXRvJiBhY3Rpb24gOiByZXN1bHRzLnN1bW1hcnkucmVkaXJlY3RBY3Rpb25zKQotICAgICAgICBh
Y3Rpb24uYXBwbHlUb1JlcXVlc3QocmVxdWVzdCk7CisgICAgZm9yIChhdXRvJiBwYWlyIDogcmVz
dWx0cy5zdW1tYXJ5LnJlZGlyZWN0QWN0aW9ucykKKyAgICAgICAgcGFpci5maXJzdC5hcHBseVRv
UmVxdWVzdChyZXF1ZXN0LCBwYWlyLnNlY29uZCk7CiAKICAgICBpZiAocGFnZSAmJiByZXN1bHRz
LnNob3VsZE5vdGlmeUFwcGxpY2F0aW9uKCkpIHsKICAgICAgICAgcmVzdWx0cy5yZXN1bHRzLnJl
bW92ZUFsbE1hdGNoaW5nKFtdKGNvbnN0IGF1dG8mIHBhaXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5k
LmgKaW5kZXggOTE3MGFhYWFkZTkwOTljYjc3N2Y5NjQzNmZkZDM5NWE0MTI5NDM5NS4uZjg1OWFl
YzhiYzRkNjc5NWMyNzZhM2JmMzFjYjEwY2MyMjZkOGVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5k
LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgLy8gU2V0IGEgbGlzdCBvZiBydWxl
cyBmb3IgYSBnaXZlbiBuYW1lLiBJZiB0aGVyZSB3ZXJlIGV4aXN0aW5nIHJ1bGVzIGZvciB0aGUg
bmFtZSwgdGhleSBhcmUgb3ZlcnJpZGRlbi4KICAgICAvLyBUaGUgaWRlbnRpZmllciBjYW5ub3Qg
YmUgZW1wdHkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRDb250ZW50RXh0ZW5zaW9uKGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4sIENv
bnRlbnRFeHRlbnNpb246OlNob3VsZENvbXBpbGVDU1MgPSBDb250ZW50RXh0ZW5zaW9uOjpTaG91
bGRDb21waWxlQ1NTOjpZZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQ29udGVudEV4
dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFJlZjxDb21waWxlZENvbnRlbnRFeHRl
bnNpb24+LCBVUkwmJiBleHRlbnNpb25CYXNlVVJMLCBDb250ZW50RXh0ZW5zaW9uOjpTaG91bGRD
b21waWxlQ1NTID0gQ29udGVudEV4dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNTUzo6WWVzKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUNvbnRlbnRFeHRlbnNpb24oY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbENvbnRlbnRF
eHRlbnNpb25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaAppbmRleCBlMDdiMzMzZGZkNmI1OWIxYjQ4
NmRhZTg4NTYzZGQ3NmE0NDEyN2Q3Li40YjkyOTI1ODUwM2Y2ZjAxOTM4Y2JkMTI3ZjU4YTVkMjk2
ZDQyODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50UnVsZUxpc3RSZXN1bHRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oCkBAIC01OCw3ICs1OCw3IEBAIHN0cnVjdCBDb250
ZW50UnVsZUxpc3RSZXN1bHRzIHsKICAgICAgICAgYm9vbCBibG9ja2VkQ29va2llcyB7IGZhbHNl
IH07CiAgICAgICAgIGJvb2wgaGFzTm90aWZpY2F0aW9ucyB7IGZhbHNlIH07CiAgICAgICAgIFZl
Y3RvcjxDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbj4gbW9kaWZ5SGVhZGVy
c0FjdGlvbnM7Ci0gICAgICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rp
b24+IHJlZGlyZWN0QWN0aW9uczsKKyAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxDb250ZW50RXh0
ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb24sIFVSTD4+IHJlZGlyZWN0QWN0aW9uczsKIAogICAgICAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAg
ICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN1bW1h
cnk+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCmluZGV4IDU0
MzUyODI4ZTY4NzIxYWYwYmFkZTBjMDI3NWJlMmYwOTVhMTY2MGQuLjYxMWJhYjE2OWEwMGUxMGE1
MzU3MjViM2UxNGFmNDQwN2ZlMjdlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCkBA
IC02NiwxNSArNjYsMTcgQEAgdm9pZCBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6Y29u
dGVudEV4dGVuc2lvbnNCYWNrZW5kKFVzZXJDb250ZW50Q29udHJvbGwKICAgICBtX25ldHdvcmtQ
cm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OkNvbnRlbnRFeHRlbnNpb25SdWxlcyB7IGlkZW50aWZpZXIgfSwgMCk7CiB9
CiAKLXZvaWQgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OmFkZENvbnRlbnRSdWxlTGlz
dHMoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mJiBjb250ZW50
UnVsZUxpc3RzKQordm9pZCBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6YWRkQ29udGVu
dFJ1bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZl
Y3RvcjxzdGQ6OnBhaXI8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLCBVUkw+PiYmIGNv
bnRlbnRSdWxlTGlzdHMpCiB7CiAgICAgYXV0byYgYmFja2VuZCA9ICptX2NvbnRlbnRFeHRlbnNp
b25CYWNrZW5kcy5lbnN1cmUoaWRlbnRpZmllciwgW10gewogICAgICAgICByZXR1cm4gbWFrZVVu
aXF1ZTxXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5k
PigpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIGZvciAoYXV0byYmIGNvbnRlbnRS
dWxlTGlzdCA6IGNvbnRlbnRSdWxlTGlzdHMpIHsKLSAgICAgICAgYXV0byBjb21waWxlZENvbnRl
bnRSdWxlTGlzdCA9IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShj
b250ZW50UnVsZUxpc3Quc2Vjb25kKSk7Ci0gICAgICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVu
c2lvbihjb250ZW50UnVsZUxpc3QuZmlyc3QsIFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxp
c3QpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNT
Uzo6Tm8pOworICAgIGZvciAoYXV0byYmIHBhaXIgOiBjb250ZW50UnVsZUxpc3RzKSB7CisgICAg
ICAgIGF1dG8mJiBjb250ZW50UnVsZUxpc3QgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOworICAgICAg
ICBTdHJpbmcgaWRlbnRpZmllciA9IGNvbnRlbnRSdWxlTGlzdC5pZGVudGlmaWVyOworICAgICAg
ICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0ID0gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbnRlbnRSdWxlTGlzdCkpOworICAgICAgICBiYWNrZW5kLmFk
ZENvbnRlbnRFeHRlbnNpb24oaWRlbnRpZmllciwgV1RGTW92ZShjb21waWxlZENvbnRlbnRSdWxl
TGlzdCksIFdURk1vdmUocGFpci5zZWNvbmQpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4
dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNTUzo6Tm8pOwogICAgIH0KIAogICAgIGF1dG8gcGVuZGlu
Z0NhbGxiYWNrcyA9IG1fcGVuZGluZ0NhbGxiYWNrcy50YWtlKGlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlci5oCmluZGV4IDFiY2QzMzQwMGY1YzYxN2NkZGU4MDRlYWI1OTcwNjE5NTA5
ZTE0MmQuLjQ2N2Q1ODM4MzU5MjcxMzM3YTYwMjMxNDZiZjMzZGZiODYzY2ViZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY29u
dGVudEV4dGVuc2lvbnNCYWNrZW5kKFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIEJh
Y2tlbmRDYWxsYmFjayYmKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkZENvbnRlbnRSdWxlTGlz
dHMoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJp
bmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+JiYpOworICAgIHZvaWQgYWRkQ29u
dGVudFJ1bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBWZWN0b3I8c3Rk
OjpwYWlyPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSwgVVJMPj4mJik7CiAgICAgdm9p
ZCByZW1vdmVDb250ZW50UnVsZUxpc3QoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZUFsbENvbnRlbnRSdWxlTGlzdHMo
VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmUoVXNlckNv
bnRlbnRDb250cm9sbGVySWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ci5tZXNzYWdlcy5pbgppbmRleCAzNmUyMGYzYTQ1OGEyNTE5N2M2NjAyMzg1ZTQ2NWRlY2UwM2I0
N2Q5Li5kZDQ5NzlhNjc0OGIyZWNkMmZlYzFiY2Q2NWE2ZTgzY2M4OWM3NDRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5h
Z2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKIAog
bWVzc2FnZXMgLT4gTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgTm90UmVmQ291bnRlZCB7
CiAgICAgUmVtb3ZlKFdlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciBpZGVu
dGlmaWVyKQotICAgIEFkZENvbnRlbnRSdWxlTGlzdHMoV2ViS2l0OjpVc2VyQ29udGVudENvbnRy
b2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJL
aXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+IGNvbnRlbnRGaWx0ZXJzKQorICAg
IEFkZENvbnRlbnRSdWxlTGlzdHMoV2ViS2l0OjpVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFZlY3RvcjxzdGQ6OnBhaXI8V2ViS2l0OjpXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGEsIFVSTD4+IGNvbnRlbnRGaWx0ZXJzKQogICAgIFJlbW92ZUNvbnRlbnRS
dWxlTGlzdChXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmll
ciwgU3RyaW5nIG5hbWUpCiAgICAgUmVtb3ZlQWxsQ29udGVudFJ1bGVMaXN0cyhXZWJLaXQ6OlVz
ZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5j
cHAKaW5kZXggNzczMjE5ZjdlZTAwYjY3YjNiNWQxNWI3OTRhMjUxZGIzOTVmMzI1NC4uYTU5YzU4
YjkzYjEzYTljYjY3OTkyNDZjNzNiMjk0NjJkODA1ODliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25E
YXRhPiBTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhOjoKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1
bGVMaXN0RGF0YT4+PiBjb250ZW50UnVsZUxpc3RzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PHN0ZDo6cGFpcjxXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEsIFVSTD4+PiBjb250ZW50
UnVsZUxpc3RzOwogICAgIGRlY29kZXIgPj4gY29udGVudFJ1bGVMaXN0czsKICAgICBpZiAoIWNv
bnRlbnRSdWxlTGlzdHMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgK
aW5kZXggNDE3M2IzYmUzMWEwZmEzYmUzOTQyY2RhNWU2YTQ5ZGQ5NTA3YTYzZC4uZmZkMzE1MWRh
MGI4N2FlMWRiZTVkOWE3YjZiMjQyMzY1YzAxMDZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1NlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuaApAQCAtNDQsNyAr
NDQsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YSB7CiAKICAgICBV
c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIHVzZXJDb250ZW50Q29udHJvbGxlcklkZW50
aWZpZXI7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBWZWN0b3I8c3RkOjpw
YWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4gY29udGVudFJ1bGVM
aXN0czsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YSwgVVJMPj4gY29udGVudFJ1bGVMaXN0czsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvVXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmNwcApp
bmRleCBmMDcwYTY0OWRjMjZhNmViOWMxZjc1NDE1YjM4NWRjM2M3ZjdkMmYxLi5lMGNjNzYzNDMw
MTg0Nzg2NWM2MjJlN2Y5NDZkYjVmZDEyMTlhZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Vc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Vc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmNwcApAQCAtNzIs
NyArNzIsNyBAQCBzdGQ6Om9wdGlvbmFsPFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnM+
IFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnM6OgogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3REYXRhPj4+IGNvbnRlbnRSdWxlTGlzdHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8c3Rk
OjpwYWlyPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSwgVVJMPj4+IGNvbnRlbnRSdWxl
TGlzdHM7CiAgICAgZGVjb2RlciA+PiBjb250ZW50UnVsZUxpc3RzOwogICAgIGlmICghY29udGVu
dFJ1bGVMaXN0cykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuaAppbmRl
eCAwMzBmZGRkN2JhNjE1M2FkNjQ3OGE1OWUzNjQ1ZWJmYWNmODVhZTM1Li41MzBlOTdiY2I5ZTI5
YTRhMDc5ZmQwM2IxM2FjNzZiYmIwNTA5YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Vc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvVXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5oCkBAIC00NCw3ICs0NCw3
IEBAIHN0cnVjdCBVc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzIHsKICAgICBWZWN0b3I8
V2ViVXNlclN0eWxlU2hlZXREYXRhPiB1c2VyU3R5bGVTaGVldHM7CiAgICAgVmVjdG9yPFdlYlNj
cmlwdE1lc3NhZ2VIYW5kbGVyRGF0YT4gbWVzc2FnZUhhbmRsZXJzOwogI2lmIEVOQUJMRShDT05U
RU5UX0VYVEVOU0lPTlMpCi0gICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YT4+IGNvbnRlbnRSdWxlTGlzdHM7CisgICAgVmVjdG9yPHN0ZDo6
cGFpcjxXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEsIFVSTD4+IGNvbnRlbnRSdWxlTGlz
dHM7CiAjZW5kaWYKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YS5jcHAKaW5kZXggYWMwMmQ2ZDRhY2YyMmE3NThhM2M2ODI4YmM2YzAxYTY5YWY5ZDIzOC4u
ODNmYTAyZmZhYjE1NDI5YjhjNWM4ZTM1ODFkMGNiODJiNmJiZTcxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuY3Bw
CkBAIC0zNiw2ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRs
ZSBoYW5kbGU7CiAgICAgZGF0YS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQ
cm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgCkBAIC02MCwxMCArNjIsMTcgQEAgdm9pZCBXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAKIHN0ZDo6b3B0aW9uYWw8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPiBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIpCiB7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGlkZW50aWZpZXI7CisgICAgZGVjb2Rl
ciA+PiBpZGVudGlmaWVyOworICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKwogICAgIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGlwY0hhbmRsZTsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGlwY0hhbmRsZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gZGF0YSA9IFNoYXJlZE1lbW9yeTo6bWFw
KGlwY0hhbmRsZS5oYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwor
ICAgIGF1dG8gZGF0YSA9IFNoYXJlZE1lbW9yeTo6bWFwKGlwY0hhbmRsZS5oYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIGlmICghZGF0YSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGNvbmRp
dGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldDsKICAgICBkZWNvZGVyID4+IGNvbmRpdGlvbnNB
cHBseU9ubHlUb0RvbWFpbk9mZnNldDsKQEAgLTExMSw3ICsxMjAsOCBAQCBzdGQ6Om9wdGlvbmFs
PFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3REYXRhOjpkZQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgcmV0dXJuIHt7
Ci0gICAgICAgIFdURk1vdmUoZGF0YSksCisgICAgICAgIFdURk1vdmUoKmlkZW50aWZpZXIpLAor
ICAgICAgICBkYXRhLnJlbGVhc2VOb25OdWxsKCksCiAgICAgICAgIFdURk1vdmUoKmNvbmRpdGlv
bnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCksCiAgICAgICAgIFdURk1vdmUoKmFjdGlvbnNPZmZz
ZXQpLAogICAgICAgICBXVEZNb3ZlKCphY3Rpb25zU2l6ZSksCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCmluZGV4IDJkODZm
ODI2OGU4M2JkZTc4OTFiYzIyYmNhOGUyMTU0ZGIxYTYyYzguLmE0ODAzNWJmYWQ4NmNhNTgyOGUy
MTRhMmU0YzNmY2U1Y2FmYzk2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCkBAIC00MSw4ICs0MSw5IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEgewog
cHVibGljOgotICAgIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YShSZWZQdHI8U2hhcmVk
TWVtb3J5PiYmIGRhdGEsIHVuc2lnbmVkIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNl
dCwgdW5zaWduZWQgYWN0aW9uc09mZnNldCwgdW5zaWduZWQgYWN0aW9uc1NpemUsIHVuc2lnbmVk
IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCBmaWx0ZXJz
V2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0
aW9uc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29k
ZVNpemUsIHVuc2lnbmVkIHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgdW5zaWduZWQgdG9w
VVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSkKLSAgICAgICAgOiBkYXRhKFdURk1vdmUoZGF0YSkpCisg
ICAgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKFN0cmluZyYmIGlkZW50aWZpZXIsIFJl
ZjxTaGFyZWRNZW1vcnk+JiYgZGF0YSwgdW5zaWduZWQgY29uZGl0aW9uc0FwcGx5T25seVRvRG9t
YWluT2Zmc2V0LCB1bnNpZ25lZCBhY3Rpb25zT2Zmc2V0LCB1bnNpZ25lZCBhY3Rpb25zU2l6ZSwg
dW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVk
IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwgdW5zaWduZWQgZmlsdGVyc1dp
dGhDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9u
c0J5dGVjb2RlU2l6ZSwgdW5zaWduZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCB1bnNp
Z25lZCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQorICAgICAgICA6IGlkZW50aWZpZXIoV1RG
TW92ZShpZGVudGlmaWVyKSkKKyAgICAgICAgLCBkYXRhKFdURk1vdmUoZGF0YSkpCiAgICAgICAg
ICwgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KGNvbmRpdGlvbnNBcHBseU9ubHlU
b0RvbWFpbk9mZnNldCkKICAgICAgICAgLCBhY3Rpb25zT2Zmc2V0KGFjdGlvbnNPZmZzZXQpCiAg
ICAgICAgICwgYWN0aW9uc1NpemUoYWN0aW9uc1NpemUpCkBAIC01OCw3ICs1OSw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+IGRlY29kZShJUEM6OkRl
Y29kZXImKTsKIAotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IGRhdGE7CisgICAgU3RyaW5nIGlk
ZW50aWZpZXI7CisgICAgUmVmPFNoYXJlZE1lbW9yeT4gZGF0YTsKICAgICB1bnNpZ25lZCBjb25k
aXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQgeyAwIH07CiAgICAgdW5zaWduZWQgYWN0aW9u
c09mZnNldCB7IDAgfTsKICAgICB1bnNpZ25lZCBhY3Rpb25zU2l6ZSB7IDAgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAKaW5kZXgg
YzBlZmRiMjNiNDcwY2VlM2ZkMjI4ZTUzMDJhNGM4NWFmOTdiODMxYi4uODcxMjg4ZTNjOWVlNzNi
MGJjODdjZWFmZWEwOWM0NmI2MmMwOGFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAKQEAgLTM0LDkgKzM0LDggQEAKIAogbmFt
ZXNwYWNlIEFQSSB7CiAKLUNvbnRlbnRSdWxlTGlzdDo6Q29udGVudFJ1bGVMaXN0KGNvbnN0IFdU
Rjo6U3RyaW5nJiBuYW1lLCBSZWY8V2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdD4m
JiBjb250ZW50UnVsZUxpc3QsIFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhJiYgbWFwcGVkRmls
ZSkKLSAgICA6IG1fbmFtZShuYW1lKQotICAgICwgbV9jb21waWxlZFJ1bGVMaXN0KFdURk1vdmUo
Y29udGVudFJ1bGVMaXN0KSkKK0NvbnRlbnRSdWxlTGlzdDo6Q29udGVudFJ1bGVMaXN0KFJlZjxX
ZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0PiYmIGNvbnRlbnRSdWxlTGlzdCwgV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEmJiBtYXBwZWRGaWxlKQorICAgIDogbV9jb21waWxlZFJ1
bGVMaXN0KFdURk1vdmUoY29udGVudFJ1bGVMaXN0KSkKICAgICAsIG1fbWFwcGVkRmlsZShXVEZN
b3ZlKG1hcHBlZEZpbGUpKQogewogfQpAQCAtNDUsNiArNDQsMTEgQEAgQ29udGVudFJ1bGVMaXN0
Ojp+Q29udGVudFJ1bGVMaXN0KCkKIHsKIH0KIAorY29uc3QgV1RGOjpTdHJpbmcmIENvbnRlbnRS
dWxlTGlzdDo6bmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29tcGlsZWRSdWxlTGlzdC0+
ZGF0YSgpLmlkZW50aWZpZXI7Cit9CisKIGJvb2wgQ29udGVudFJ1bGVMaXN0OjpzdXBwb3J0c1Jl
Z3VsYXJFeHByZXNzaW9uKGNvbnN0IFdURjo6U3RyaW5nJiByZWdleCkKIHsKICAgICB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0LmgKaW5kZXggOGZlNGYxOWYyMWVkYThl
M2ZiYzAxZjI5NTUzZGFjMTQ0MzY0ZGZjOS4uMDQyYmVmN2RhMDdjNDUzYmIyNjU2NjUxYjZlNzMx
ZDI3NDg3NWZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNv
bnRlbnRSdWxlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250
ZW50UnVsZUxpc3QuaApAQCAtMzgsMjEgKzM4LDIwIEBAIG5hbWVzcGFjZSBBUEkgewogY2xhc3Mg
Q29udGVudFJ1bGVMaXN0IGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpD
b250ZW50UnVsZUxpc3Q+IHsKIHB1YmxpYzoKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQotICAgIHN0YXRpYyBSZWY8Q29udGVudFJ1bGVMaXN0PiBjcmVhdGUoY29uc3QgV1RGOjpTdHJp
bmcmIG5hbWUsIFJlZjxXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0PiYmIGNvbnRl
bnRSdWxlTGlzdCwgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEmJiBtYXBwZWRGaWxlKQorICAg
IHN0YXRpYyBSZWY8Q29udGVudFJ1bGVMaXN0PiBjcmVhdGUoUmVmPFdlYktpdDo6V2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3Q+JiYgY29udGVudFJ1bGVMaXN0LCBXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6RGF0YSYmIG1hcHBlZEZpbGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDb250ZW50UnVsZUxpc3QobmFtZSwgV1RGTW92ZShjb250ZW50UnVsZUxpc3QpLCBXVEZNb3Zl
KG1hcHBlZEZpbGUpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbnRlbnRSdWxl
TGlzdChXVEZNb3ZlKGNvbnRlbnRSdWxlTGlzdCksIFdURk1vdmUobWFwcGVkRmlsZSkpKTsKICAg
ICB9CiAKLSAgICBDb250ZW50UnVsZUxpc3QoY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFJlZjxX
ZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0PiYmLCBXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6RGF0YSYmKTsKKyAgICBDb250ZW50UnVsZUxpc3QoUmVmPFdlYktpdDo6V2ViQ29tcGlsZWRD
b250ZW50UnVsZUxpc3Q+JiYsIFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhJiYpOwogICAgIHZp
cnR1YWwgfkNvbnRlbnRSdWxlTGlzdCgpOwogCi0gICAgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUo
KSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSgp
IGNvbnN0OwogICAgIGNvbnN0IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QmIGNv
bXBpbGVkUnVsZUxpc3QoKSBjb25zdCB7IHJldHVybiBtX2NvbXBpbGVkUnVsZUxpc3QuZ2V0KCk7
IH0KICAgICAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JlZ3VsYXJFeHByZXNzaW9uKGNvbnN0
IFdURjo6U3RyaW5nJik7CiAKIHByaXZhdGU6Ci0gICAgV1RGOjpTdHJpbmcgbV9uYW1lOwogICAg
IFJlZjxXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0PiBtX2NvbXBpbGVkUnVsZUxp
c3Q7CiAgICAgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEgbV9tYXBwZWRGaWxlOwogI2VuZGlm
IC8vIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcAppbmRleCBlZjljNDE5
NDhkMTA1OWI2NDFmNmFlYjU2YzUwOWIzMWZkNzdiNGFjLi4zYzc5YjQxOTJmMTlhYTFjMWMwYzZj
NDFlMTE3YTY3ZDNkZWU5M2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAKQEAgLTQwOCwxMSArNDA4LDEyIEBA
IHN0YXRpYyBSZWY8QVBJOjpDb250ZW50UnVsZUxpc3Q+IGNyZWF0ZUV4dGVuc2lvbihjb25zdCBX
VEY6OlN0cmluZyYgaWRlbnRpZmllciwKIAogICAgIC8vIENvbnRlbnQgZXh0ZW5zaW9ucyBhcmUg
YWx3YXlzIGNvbXBpbGVkIHRvIGZpbGVzLCBhbmQgYXQgdGhpcyBwb2ludCB0aGUgZmlsZQogICAg
IC8vIGhhcyBiZWVuIGFscmVhZHkgbWFwcGVkLCB0aGVyZWZvcmUgdHJ5Q3JlYXRlU2hhcmVkTWVt
b3J5KCkgY2Fubm90IGZhaWwuCi0gICAgQVNTRVJUKHNoYXJlZE1lbW9yeSk7CisgICAgUkVMRUFT
RV9BU1NFUlQoc2hhcmVkTWVtb3J5KTsKIAogICAgIGNvbnN0IHNpemVfdCBoZWFkZXJBbmRTb3Vy
Y2VTaXplID0gQ29udGVudFJ1bGVMaXN0RmlsZUhlYWRlclNpemUgKyBkYXRhLm1ldGFEYXRhLnNv
dXJjZVNpemU7CiAgICAgYXV0byBjb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEgPSBXZWJLaXQ6
OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSgKLSAgICAgICAgV1RGTW92ZShzaGFyZWRN
ZW1vcnkpLAorICAgICAgICBXVEY6OlN0cmluZyhpZGVudGlmaWVyKSwKKyAgICAgICAgc2hhcmVk
TWVtb3J5LnJlbGVhc2VOb25OdWxsKCksCiAgICAgICAgIENvbmRpdGlvbnNBcHBseU9ubHlUb0Rv
bWFpbk9mZnNldCwKICAgICAgICAgaGVhZGVyQW5kU291cmNlU2l6ZSwKICAgICAgICAgZGF0YS5t
ZXRhRGF0YS5hY3Rpb25zU2l6ZSwKQEAgLTQzMCw3ICs0MzEsNyBAQCBzdGF0aWMgUmVmPEFQSTo6
Q29udGVudFJ1bGVMaXN0PiBjcmVhdGVFeHRlbnNpb24oY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50
aWZpZXIsCiAgICAgICAgIGRhdGEubWV0YURhdGEuY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVT
aXplCiAgICAgKTsKICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0ID0gV2ViS2l0OjpX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29tcGlsZWRDb250ZW50
UnVsZUxpc3REYXRhKSk7Ci0gICAgcmV0dXJuIEFQSTo6Q29udGVudFJ1bGVMaXN0OjpjcmVhdGUo
aWRlbnRpZmllciwgV1RGTW92ZShjb21waWxlZENvbnRlbnRSdWxlTGlzdCksIFdURk1vdmUoZGF0
YS5kYXRhKSk7CisgICAgcmV0dXJuIEFQSTo6Q29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92
ZShjb21waWxlZENvbnRlbnRSdWxlTGlzdCksIFdURk1vdmUoZGF0YS5kYXRhKSk7CiB9CiAKIHN0
YXRpYyBXVEY6OlN0cmluZyBnZXRDb250ZW50UnVsZUxpc3RTb3VyY2VGcm9tTWFwcGVkRmlsZShj
b25zdCBNYXBwZWREYXRhJiBtYXBwZWREYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLm1tCmluZGV4
IGY3NDUyYzc0NjcwNDIzMzJlZDE4OGQ3MjM1MmRkODg5NmY4NDhiNmIuLmEwMDQwZjY0YzdjOTcy
NWM3YWJiMzQ4OGMzNjNkM2FlZjg4NDIyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIubW0KQEAg
LTI4NSw2ICsyODUsMTMgQEAgcHJpdmF0ZToKICNlbmRpZgogfQogCistICh2b2lkKV9hZGRDb250
ZW50UnVsZUxpc3Q6KFdLQ29udGVudFJ1bGVMaXN0ICopY29udGVudFJ1bGVMaXN0IGV4dGVuc2lv
bkJhc2VVUkw6KE5TVVJMICopZXh0ZW5zaW9uQmFzZVVSTAoreworI2lmIEVOQUJMRShDT05URU5U
X0VYVEVOU0lPTlMpCisgICAgX3VzZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5hZGRDb250ZW50
UnVsZUxpc3QoKmNvbnRlbnRSdWxlTGlzdC0+X2NvbnRlbnRSdWxlTGlzdCwgZXh0ZW5zaW9uQmFz
ZVVSTCk7CisjZW5kaWYKK30KKwogLSAodm9pZClfcmVtb3ZlVXNlckNvbnRlbnRGaWx0ZXI6KE5T
U3RyaW5nICopdXNlckNvbnRlbnRGaWx0ZXJOYW1lCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhU
RU5TSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaAppbmRleCBhMjUyZDA0
MTY2NzRjNDgwNDYyYjFhOTExOTgwZjYyZjU5YjcwMmExLi42NzBiN2MwNDE0NzNmOWJjMDMwMzc3
YzhhY2MyMzQyZWUxOWZiMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5o
CkBAIC00MSw2ICs0MSw3IEBACiAtICh2b2lkKV9hZGRVc2VyQ29udGVudEZpbHRlcjooX1dLVXNl
ckNvbnRlbnRGaWx0ZXIgKil1c2VyQ29udGVudEZpbHRlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjExKSwgaW9zKDkuMCkpOwogLSAodm9pZClfcmVtb3ZlVXNlckNvbnRlbnRGaWx0ZXI6KE5T
U3RyaW5nICopdXNlckNvbnRlbnRGaWx0ZXJOYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTEpLCBpb3MoOS4wKSk7CiAtICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29udGVudEZpbHRlcnMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKKy0gKHZvaWQpX2FkZENvbnRl
bnRSdWxlTGlzdDooV0tDb250ZW50UnVsZUxpc3QgKiljb250ZW50UnVsZUxpc3QgZXh0ZW5zaW9u
QmFzZVVSTDooTlNVUkwgKilleHRlbnNpb25CYXNlVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgY29weSkgTlNBcnJheTxfV0tVc2VyU3R5bGVTaGVldCAqPiAqX3VzZXJTdHlsZVNo
ZWV0cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIC0gKHZvaWQp
X2FkZFVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5k
ZXggYjIyYmFhMmE0Nzk4ODU5ZmMyODMyODZiYWM4MjU5MTE0ZjNmZThlMS4uNGEyMzJiMmE2MTdm
ZmEyZTM0ZjI3MDIwYmIwMjAxODY0Mjk2ZmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMzg4LDgg
KzEzODgsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNvbnRlbnRFeHRlbnNpb25SdWxl
cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyCiAgICAgICAgIG1fd2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveGllcy5hZGQod2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkpOwog
ICAgICAgICB3ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS0+YWRkTmV0d29ya1Byb2Nlc3Mo
KnRoaXMpOwogCi0gICAgICAgIGF1dG8gcnVsZXMgPSBXVEY6Om1hcCh3ZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS0+Y29udGVudEV4dGVuc2lvblJ1bGVzKCksIFtdKGF1dG8mJiBrZXlWYWx1
ZSkgLT4gc3RkOjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPiB7
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoa2V5VmFsdWUudmFsdWUtPm5hbWUo
KSwga2V5VmFsdWUudmFsdWUtPmNvbXBpbGVkUnVsZUxpc3QoKS5kYXRhKCkpOworICAgICAgICBh
dXRvIHJ1bGVzID0gV1RGOjptYXAod2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHktPmNvbnRl
bnRFeHRlbnNpb25SdWxlcygpLCBbXShhdXRvJiYga2V5VmFsdWUpIC0+IHN0ZDo6cGFpcjxXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEsIFVSTD4geworICAgICAgICAgICAgcmV0dXJuIHsg
a2V5VmFsdWUudmFsdWUuZmlyc3QtPmNvbXBpbGVkUnVsZUxpc3QoKS5kYXRhKCksIGtleVZhbHVl
LnZhbHVlLnNlY29uZCB9OwogICAgICAgICB9KTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0
d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OkFkZENvbnRlbnRSdWxlTGlzdHMgeyBpZGVudGlm
aWVyLCBydWxlcyB9LCAwKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyUHJveHkuY3BwCmluZGV4IDNkMjE3YTMyNTJlYTdmZDc2OTM5MmFhYzk3ZWFkOTFj
NGI2Zjc3NTQuLmVmMzI2NzhmODk1Y2FjNGVhNzIxNDA0N2Q1OTE0MTA3MTVjYjJmZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTE0MCwxMyArMTQwLDEx
IEBAIFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHk6OnBhcmFtZXRlcnMoKSBjb25zCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRF
TlNJT05TKQotVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YT4+IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Ojpjb250ZW50UnVsZUxpc3RE
YXRhKCkgY29uc3QKK1ZlY3RvcjxzdGQ6OnBhaXI8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhLCBVUkw+PiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6Y29udGVudFJ1bGVMaXN0
RGF0YSgpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YT4+IGRhdGE7Ci0gICAgZGF0YS5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KG1fY29udGVudFJ1bGVMaXN0cy5zaXplKCkpOwotICAgIGZvciAoY29uc3QgYXV0byYgY29u
dGVudFJ1bGVMaXN0IDogbV9jb250ZW50UnVsZUxpc3RzLnZhbHVlcygpKQotICAgICAgICBkYXRh
LnVuY2hlY2tlZEFwcGVuZChzdGQ6Om1ha2VfcGFpcihjb250ZW50UnVsZUxpc3QtPm5hbWUoKSwg
Y29udGVudFJ1bGVMaXN0LT5jb21waWxlZFJ1bGVMaXN0KCkuZGF0YSgpKSk7Ci0gICAgcmV0dXJu
IGRhdGE7CisgICAgcmV0dXJuIFdURjo6bWFwKG1fY29udGVudFJ1bGVMaXN0cywgW10oY29uc3Qg
YXV0byYga2V5VmFsdWUpIC0+IHN0ZDo6cGFpcjxXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGEsIFVSTD4geworICAgICAgICByZXR1cm4geyBrZXlWYWx1ZS52YWx1ZS5maXJzdC0+Y29tcGls
ZWRSdWxlTGlzdCgpLmRhdGEoKSwga2V5VmFsdWUudmFsdWUuc2Vjb25kIH07CisgICAgfSk7CiB9
CiAjZW5kaWYKIApAQCAtMzYyLDE3ICszNjAsMTcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eTo6ZGlkUG9zdE1lc3NhZ2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHIK
IH0KIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi12b2lkIFdlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5OjphZGRDb250ZW50UnVsZUxpc3QoQVBJOjpDb250ZW50UnVsZUxpc3Qm
IGNvbnRlbnRSdWxlTGlzdCkKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFk
ZENvbnRlbnRSdWxlTGlzdChBUEk6OkNvbnRlbnRSdWxlTGlzdCYgY29udGVudFJ1bGVMaXN0LCBj
b25zdCBXVEY6OlVSTCYgZXh0ZW5zaW9uQmFzZVVSTCkKIHsKLSAgICBtX2NvbnRlbnRSdWxlTGlz
dHMuc2V0KGNvbnRlbnRSdWxlTGlzdC5uYW1lKCksICZjb250ZW50UnVsZUxpc3QpOworICAgIG1f
Y29udGVudFJ1bGVMaXN0cy5zZXQoY29udGVudFJ1bGVMaXN0Lm5hbWUoKSwgc3RkOjptYWtlX3Bh
aXIoUmVmIHsgY29udGVudFJ1bGVMaXN0IH0sIGV4dGVuc2lvbkJhc2VVUkwpKTsKIAotICAgIGF1
dG8gcGFpciA9IHN0ZDo6bWFrZV9wYWlyKGNvbnRlbnRSdWxlTGlzdC5uYW1lKCksIGNvbnRlbnRS
dWxlTGlzdC5jb21waWxlZFJ1bGVMaXN0KCkuZGF0YSgpKTsKKyAgICBhdXRvJiBkYXRhID0gY29u
dGVudFJ1bGVMaXN0LmNvbXBpbGVkUnVsZUxpc3QoKS5kYXRhKCk7CiAKICAgICBmb3IgKGF1dG8m
IHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OkFkZENvbnRlbnRSdWxlTGlzdHMoeyBwYWlyIH0pLCBp
ZGVudGlmaWVyKCkpOworICAgICAgICBwcm9jZXNzLnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250
ZW50Q29udHJvbGxlcjo6QWRkQ29udGVudFJ1bGVMaXN0cyh7IHsgZGF0YSwgZXh0ZW5zaW9uQmFz
ZVVSTCB9IH0pLCBpZGVudGlmaWVyKCkpOwogCiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogbV9u
ZXR3b3JrUHJvY2Vzc2VzKQotICAgICAgICBwcm9jZXNzLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b250ZW50UnVsZUxpc3RNYW5hZ2VyOjpBZGRDb250ZW50UnVsZUxpc3RzIHsgaWRlbnRpZmllcigp
LCB7IHBhaXIgfSB9LCAwKTsKKyAgICAgICAgcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlcjo6QWRkQ29udGVudFJ1bGVMaXN0cyB7IGlkZW50aWZpZXIo
KSwgeyB7IGRhdGEsIGV4dGVuc2lvbkJhc2VVUkwgfSB9IH0sIDApOwogfQogCiB2b2lkIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVDb250ZW50UnVsZUxpc3QoY29uc3QgU3Ry
aW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKaW5kZXggYTRk
OGQ3Y2Q4MDRlNjU2MGRhYmZkZTYxMTRmZjA2MjExYmFkNDdjMC4uZmVhOGQ1NzhjZmVmOTY1NTc0
NzY0YWM2MjU0MDdmYzc2NWI2NzVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eS5oCkBAIC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL1VSTEhhc2guaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTEwMiwxMSAr
MTA0LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZE5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9j
ZXNzUHJveHkmKTsKICAgICB2b2lkIHJlbW92ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNz
UHJveHkmKTsKIAotICAgIHZvaWQgYWRkQ29udGVudFJ1bGVMaXN0KEFQSTo6Q29udGVudFJ1bGVM
aXN0Jik7CisgICAgdm9pZCBhZGRDb250ZW50UnVsZUxpc3QoQVBJOjpDb250ZW50UnVsZUxpc3Qm
LCBjb25zdCBXVEY6OlVSTCYgZXh0ZW5zaW9uQmFzZVVSTCA9IHsgfSk7CiAgICAgdm9pZCByZW1v
dmVDb250ZW50UnVsZUxpc3QoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZW1vdmVBbGxDb250
ZW50UnVsZUxpc3RzKCk7Ci0gICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6OkNv
bnRlbnRSdWxlTGlzdD4+JiBjb250ZW50RXh0ZW5zaW9uUnVsZXMoKSB7IHJldHVybiBtX2NvbnRl
bnRSdWxlTGlzdHM7IH0KLSAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRD
b250ZW50UnVsZUxpc3REYXRhPj4gY29udGVudFJ1bGVMaXN0RGF0YSgpIGNvbnN0OworICAgIGNv
bnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8UmVmPEFQSTo6Q29udGVudFJ1bGVMaXN0Piwg
VVJMPj4mIGNvbnRlbnRFeHRlbnNpb25SdWxlcygpIHsgcmV0dXJuIG1fY29udGVudFJ1bGVMaXN0
czsgfQorICAgIFZlY3RvcjxzdGQ6OnBhaXI8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRh
LCBVUkw+PiBjb250ZW50UnVsZUxpc3REYXRhKCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIFVzZXJD
b250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllcjsgfQpAQCAtMTMwLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUo
Q09OVEVOVF9FWFRFTlNJT05TKQogICAgIFdlYWtIYXNoU2V0PE5ldHdvcmtQcm9jZXNzUHJveHk+
IG1fbmV0d29ya1Byb2Nlc3NlczsKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQSTo6Q29u
dGVudFJ1bGVMaXN0Pj4gbV9jb250ZW50UnVsZUxpc3RzOworICAgIEhhc2hNYXA8U3RyaW5nLCBz
dGQ6OnBhaXI8UmVmPEFQSTo6Q29udGVudFJ1bGVMaXN0PiwgVVJMPj4gbV9jb250ZW50UnVsZUxp
c3RzOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAxMTgxY2E3ZDY1OGI0OTQ2NTNmZjgwYTYyMjA5NTUxNDlhMzM3ODg4Li4w
MjhjOGQ4ZWYwNzE0YzgyZWI5MDRjOTRlN2UyOTcxZDg1YmFlYjEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE5ODMsNyArMTk4Myw3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkaXNhYmxlU2VydmljZVdvcmtlcnMoKQogfQogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRVhURU5TSU9OUykKLXN0YXRpYyBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywg
V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4gY29udGVudFJ1bGVMaXN0c0Zyb21JZGVu
dGlmaWVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmll
cj4mIHVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIpCitzdGF0aWMgVmVjdG9yPHN0ZDo6
cGFpcjxXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEsIFVSTD4+IGNvbnRlbnRSdWxlTGlz
dHNGcm9tSWRlbnRpZmllcihjb25zdCBzdGQ6Om9wdGlvbmFsPFVzZXJDb250ZW50Q29udHJvbGxl
cklkZW50aWZpZXI+JiB1c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyKQogewogICAgIGlm
ICghdXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcikgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKaW5kZXggODJiMjkz
NTdjZTA4Y2M0MDY0YzU2OTNjMGViN2UwMTgyZmFiMjg3Yi4uNWMwYTFmYTM1MjdiZmMwZWMyNmY0
NWJkZDQ5ZDkwZGQwMjdlNDQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAK
QEAgLTM4NSwxMiArMzg1LDE0IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1v
dmVVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJJbnRlcm5hbChJbmplY3RlZEJ1CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJv
bGxlcjo6YWRkQ29udGVudFJ1bGVMaXN0cyhWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mJiBjb250ZW50UnVsZUxpc3RzKQordm9pZCBXZWJV
c2VyQ29udGVudENvbnRyb2xsZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMoVmVjdG9yPHN0ZDo6cGFp
cjxXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEsIFVSTD4+JiYgY29udGVudFJ1bGVMaXN0
cykKIHsKLSAgICBmb3IgKGF1dG8mJiBjb250ZW50UnVsZUxpc3QgOiBjb250ZW50UnVsZUxpc3Rz
KSB7Ci0gICAgICAgIGF1dG8gY29tcGlsZWRDb250ZW50UnVsZUxpc3QgPSBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29udGVudFJ1bGVMaXN0LnNlY29uZCkpOwor
ICAgIGZvciAoYXV0byYmIHBhaXIgOiBjb250ZW50UnVsZUxpc3RzKSB7CisgICAgICAgIGF1dG8m
JiBjb250ZW50UnVsZUxpc3QgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOworICAgICAgICBTdHJpbmcg
aWRlbnRpZmllciA9IGNvbnRlbnRSdWxlTGlzdC5pZGVudGlmaWVyOworICAgICAgICBhdXRvIGNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0ID0gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNyZWF0
ZShXVEZNb3ZlKGNvbnRlbnRSdWxlTGlzdCkpOwogCi0gICAgICAgIG1fY29udGVudEV4dGVuc2lv
bkJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbihjb250ZW50UnVsZUxpc3QuZmlyc3QsIFdURk1v
dmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3QpKTsKKyAgICAgICAgbV9jb250ZW50RXh0ZW5zaW9u
QmFja2VuZC5hZGRDb250ZW50RXh0ZW5zaW9uKGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGlsZWRD
b250ZW50UnVsZUxpc3QpLCBXVEZNb3ZlKHBhaXIuc2Vjb25kKSk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyLmgKaW5kZXggMjBmZjg1MTViMTJiMTliMWZkZGI5MGFiNzg3
ZjBhODExYzY0Yjc3Ni4uODQ2MWJmYzUzZjhlZTgyMTY2NjA4NThiNDcyNGYyNzA2ZmE5MGM4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFdlYlVzZXJTdHlsZVNo
ZWV0RGF0YT4mKTsKICAgICB2b2lkIGFkZFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3Qg
VmVjdG9yPFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyRGF0YT4mKTsKICNpZiBFTkFCTEUoQ09OVEVO
VF9FWFRFTlNJT05TKQotICAgIHZvaWQgYWRkQ29udGVudFJ1bGVMaXN0cyhWZWN0b3I8c3RkOjpw
YWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mJik7CisgICAgdm9p
ZCBhZGRDb250ZW50UnVsZUxpc3RzKFZlY3RvcjxzdGQ6OnBhaXI8V2ViQ29tcGlsZWRDb250ZW50
UnVsZUxpc3REYXRhLCBVUkw+PiYmKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KaW5kZXggMmFiMjMyNGJiNDg1Nzg0
MTEzMzI0YjIxMWFjZmU2MmM2YjYyYzIxZS4uZWQ2Y2ZlNjhiODFlMDhkNzhmOWU2MzRkNmI0MTZk
MTcxZDJkMjllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250
ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3Nh
Z2VzLmluCkBAIC00MSw3ICs0MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlVzZXJDb250ZW50Q29udHJv
bGxlciB7CiAgICAgUmVtb3ZlQWxsVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycygpOwogCiAjaWYg
RU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBBZGRDb250ZW50UnVsZUxpc3RzKFZlY3Rv
cjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YT4+IGNvbnRlbnRGaWx0ZXJzKTsKKyAgICBBZGRDb250ZW50UnVsZUxpc3RzKFZlY3RvcjxzdGQ6
OnBhaXI8V2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEsIFVSTD4+IGNvbnRl
bnRGaWx0ZXJzKTsKICAgICBSZW1vdmVDb250ZW50UnVsZUxpc3QoU3RyaW5nIG5hbWUpOwogICAg
IFJlbW92ZUFsbENvbnRlbnRSdWxlTGlzdHMoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUzZjRjZjMwNTk0ZjY3OWJhMjc1NWYy
ODUwODU3OTg0OWJhNmM1MjQuLjE1YTQ1ZjljYWUyMjVlZjNmMjk5MmNlZGI1Nzc4MmE2OTE3NzZi
OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0xMS0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBleHRlbnNpb24tcGF0aCB2YXJpYW50
IG9mIHJlZGlyZWN0IGFjdGlvbiBpbiBXS0NvbnRlbnRSdWxlTGlzdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzUxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6bWFr
ZUJhY2tlbmQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1t
OgorICAgICAgICAoVEVTVF9GKToKKwogMjAyMS0xMS0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFsbG93IGFsbCByZWRpcmVjdCBzY2hl
bWVzIHdoZW4gY29tcGlsaW5nIGEgY29udGVudCBydWxlIGxpc3QKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4
IDEzMTA2ZGUzMTJlOGYzM2E1YTllNzNjNjkzMzZiMjYxZTVmYjVmMGMuLmJjNTQ4NGYzZjA2YzVh
OGIxODYyMmFiZmVhNzgwMDViY2I5ZjhmN2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMjAxLDcgKzIw
MSw3IEBAIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgbWFrZUJh
Y2tlbmQoY29uc3QgY2hhcioganNvbikKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAgICAgYXV0
byBleHRlbnNpb24gPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKGpz
b24pOwogICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgYmFj
a2VuZDsKLSAgICBiYWNrZW5kLmFkZENvbnRlbnRFeHRlbnNpb24oInRlc3RGaWx0ZXIiLCBXVEZN
b3ZlKGV4dGVuc2lvbikpOworICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbigidGVzdEZp
bHRlciIsIFdURk1vdmUoZXh0ZW5zaW9uKSwgeyB9KTsKICAgICByZXR1cm4gYmFja2VuZDsKIH0K
IApAQCAtODQ4LDggKzg0OCw4IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgTXVsdGlw
bGVFeHRlbnNpb25zKQogICAgIGF1dG8gZXh0ZW5zaW9uMSA9IEluTWVtb3J5Q29tcGlsZWRDb250
ZW50RXh0ZW5zaW9uOjpjcmVhdGUoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJibG9ja19sb2FkXCJ9fV0iKTsKICAgICBhdXRv
IGV4dGVuc2lvbjIgPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKCJb
e1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2stY29va2llc1wifSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJibG9ja19jb29raWVzXCJ9fV0iKTsKICAgICBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tlbmQ7Ci0gICAgYmFja2VuZC5hZGRDb250
ZW50RXh0ZW5zaW9uKCJ0ZXN0RmlsdGVyMSIsIFdURk1vdmUoZXh0ZW5zaW9uMSkpOwotICAgIGJh
Y2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbigidGVzdEZpbHRlcjIiLCBXVEZNb3ZlKGV4dGVuc2lv
bjIpKTsKKyAgICBiYWNrZW5kLmFkZENvbnRlbnRFeHRlbnNpb24oInRlc3RGaWx0ZXIxIiwgV1RG
TW92ZShleHRlbnNpb24xKSwgeyB9KTsKKyAgICBiYWNrZW5kLmFkZENvbnRlbnRFeHRlbnNpb24o
InRlc3RGaWx0ZXIyIiwgV1RGTW92ZShleHRlbnNpb24yKSwgeyB9KTsKICAgICAKICAgICB0ZXN0
UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZyIp
LCB7IH0sIDIpOwogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3Qo
Imh0dHA6Ly93ZWJraXQub3JnL2Jsb2NrX2xvYWQuaHRtbCIpLCB7IHZhcmlhbnRJbmRleDxDb250
ZW50RXh0ZW5zaW9uczo6QmxvY2tMb2FkQWN0aW9uPiB9LCAyKTsKQEAgLTg2Miw4ICs4NjIsOCBA
QCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIE11bHRpcGxlRXh0ZW5zaW9ucykKICAgICBh
dXRvIGlnbm9yZUV4dGVuc2lvbjIgPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6
Y3JlYXRlKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2stY29va2llc1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJibG9ja19jb29raWVzXCJ9fSwiCiAgICAgICAgICJ7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJpZ25vcmUtcHJldmlvdXMtcnVsZXNcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwiaWdub3JlMlwifX1dIik7CiAgICAgQ29udGVudEV4dGVuc2lvbnM6
OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCBiYWNrZW5kV2l0aElnbm9yZTsKLSAgICBiYWNrZW5k
V2l0aElnbm9yZS5hZGRDb250ZW50RXh0ZW5zaW9uKCJ0ZXN0RmlsdGVyMSIsIFdURk1vdmUoaWdu
b3JlRXh0ZW5zaW9uMSkpOwotICAgIGJhY2tlbmRXaXRoSWdub3JlLmFkZENvbnRlbnRFeHRlbnNp
b24oInRlc3RGaWx0ZXIyIiwgV1RGTW92ZShpZ25vcmVFeHRlbnNpb24yKSk7CisgICAgYmFja2Vu
ZFdpdGhJZ25vcmUuYWRkQ29udGVudEV4dGVuc2lvbigidGVzdEZpbHRlcjEiLCBXVEZNb3ZlKGln
bm9yZUV4dGVuc2lvbjEpLCB7IH0pOworICAgIGJhY2tlbmRXaXRoSWdub3JlLmFkZENvbnRlbnRF
eHRlbnNpb24oInRlc3RGaWx0ZXIyIiwgV1RGTW92ZShpZ25vcmVFeHRlbnNpb24yKSwgeyB9KTsK
IAogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmRXaXRoSWdub3JlLCBtYWluRG9jdW1lbnRSZXF1ZXN0
KCJodHRwOi8vd2Via2l0Lm9yZyIpLCB7IH0sIDIpOwogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmRX
aXRoSWdub3JlLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9ibG9ja19s
b2FkL2lnbm9yZTEuaHRtbCIpLCB7IH0sIDEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUu
bW0KaW5kZXggYThlMmI5NGMzODExNGQyZDAyY2JlM2UxMmI0ZWYxNDExNzgzOTRmYy4uMGI4NWNl
Y2MxZTNkZDZjYTRiNmM4YWExZmIyNTMxZmM3Njk3YTc5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVu
c2lvblN0b3JlLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJUZXN0VVJMU2NoZW1lSGFu
ZGxlci5oIgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFJ1bGVMaXN0Lmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnBh
Z2VQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaD4K
QEAgLTc1MSwzICs3NTIsNDAgQEAgVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBO
dWxsUGF0dGVyblNldCkKICAgICBFWFBFQ1RfRkFMU0UoZ2V0UmVkaXJlY3RSZXN1bHQoRGVsZWdh
dGVBY3Rpb246OkFsbG93Tm9uZSkpOwogICAgIEVYUEVDVF9UUlVFKGdldFJlZGlyZWN0UmVzdWx0
KERlbGVnYXRlQWN0aW9uOjpBbGxvd1Rlc3RIb3N0KSk7CiB9CisKK1RFU1RfRihXS0NvbnRlbnRS
dWxlTGlzdFN0b3JlVGVzdCwgRXh0ZW5zaW9uUGF0aCkKK3sKKyAgICBhdXRvIGxpc3QgPSBjb21w
aWxlQ29udGVudFJ1bGVMaXN0KFIiSlNPTigKKyAgICAgICAgWyB7CisgICAgICAgICAgICAiYWN0
aW9uIjogeyAidHlwZSI6ICJyZWRpcmVjdCIsICJyZWRpcmVjdCI6IHsKKyAgICAgICAgICAgICAg
ICAiZXh0ZW5zaW9uLXBhdGgiOiAiL3JlZGlyZWN0ZWQtdG8tZXh0ZW5zaW9uP25vLXF1ZXJ5I25v
LWZyYWdtZW50IgorICAgICAgICAgICAgfSB9LAorICAgICAgICAgICAgInRyaWdnZXIiOiB7ICJ1
cmwtZmlsdGVyIjogIm1haW4uaHRtbCIgfQorICAgICAgICB9IF0KKyAgICApSlNPTiIpOworCisg
ICAgX19ibG9jayBSZXRhaW5QdHI8TlNVUkw+IHJlZGlyZWN0ZWRVUkw7CisgICAgYXV0byBoYW5k
bGVyID0gYWRvcHROUyhbVGVzdFVSTFNjaGVtZUhhbmRsZXIgbmV3XSk7CisgICAgaGFuZGxlci5n
ZXQoKS5zdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyID0gXihXS1dlYlZpZXcgKiwgaWQgPFdLVVJM
U2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICByZWRpcmVjdGVkVVJMID0gdGFzay5yZXF1ZXN0
LlVSTDsKKyAgICAgICAgcmVzcG9uZCh0YXNrLCAiIik7CisgICAgfTsKKworICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIGRlbGVn
YXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMg
PSBeKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqcHJlZmVyZW5j
ZXMsIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tX
ZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMuX2FjdGl2ZUNvbnRl
bnRSdWxlTGlzdEFjdGlvblBhdHRlcm5zID0gbmlsOworICAgICAgICBkZWNpc2lvbkhhbmRsZXIo
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIHByZWZlcmVuY2VzKTsKKyAgICB9OworCisg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBu
ZXddKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBfYWRkQ29u
dGVudFJ1bGVMaXN0Omxpc3QuZ2V0KCkgZXh0ZW5zaW9uQmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImV4dGVuc2lvbi1zY2hlbWU6Ly9leHRlbnNpb24taG9zdC8iXV07CisgICAgW2NvbmZp
Z3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpA
InRlc3RzY2hlbWUiXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhh
bmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiZXh0ZW5zaW9uLXNjaGVtZSJdOworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJv
UmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICB3ZWJWaWV3Lmdl
dCgpLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOworCisgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInRlc3RzY2hlbWU6Ly90ZXN0aG9zdC9tYWluLmh0bWwiXV1dOworICAgIHdoaWxlICgh
cmVkaXJlY3RlZFVSTCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3Ao
KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW3JlZGlyZWN0ZWRVUkwgYWJzb2x1dGVTdHJpbmddLCAi
ZXh0ZW5zaW9uLXNjaGVtZTovL2V4dGVuc2lvbi1ob3N0L3JlZGlyZWN0ZWQtdG8tZXh0ZW5zaW9u
JTNGbm8tcXVlcnklMjNuby1mcmFnbWVudCIpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444782</attachid>
            <date>2021-11-18 22:56:15 -0800</date>
            <delta_ts>2021-11-19 15:52:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233351-20211118225614.patch</filename>
            <type>text/plain</type>
            <size>48008</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmIzOWYzOGM1OTI2ODc1
YjMyOTEzN2VjMzgxY2FjZGM1ZDBiY2FlYy4uMTliNGRkYmE4ZDA0ZTVlNDM2YzhhOTMzNmU4MjMz
MDViZGQ2YmNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTExLTE4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50IGV4dGVuc2lvbi1wYXRoIHZhcmlhbnQgb2YgcmVkaXJlY3QgYWN0aW9uIGluIFdLQ29udGVu
dFJ1bGVMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzMzNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCZWNhdXNlIHRoZSBleHRlbnNpb24gcGF0aCBjaGFuZ2VzIGVhY2ggdGltZSB5b3UgcmVsYXVu
Y2ggU2FmYXJpIGJ1dCB0aGUgY29tcGlsZWQgYnl0ZWNvZGUgZG9lcyBub3QsCisgICAgICAgIHdl
IG5lZWQgYSB3YXkgdG8gcGFzcyBpbiB0aGUgZXh0ZW5zaW9uIGJhc2UgVVJMIHdoZW4gYWRkaW5n
IHRoZSBsb29rZWQtdXAgb3IgY29tcGlsZWQgV0tDb250ZW50UnVsZUxpc3QKKyAgICAgICAgdG8g
dGhlIFdLVXNlckNvbnRlbnRDb250cm9sbGVyLgorCisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uOjpDb250ZW50RXh0ZW5zaW9uKToKKyAgICAg
ICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbjo6ZXh0ZW5zaW9uQmFzZVVS
TCBjb25zdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFj
dGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0
QWN0aW9uOjphcHBseVRvUmVxdWVzdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29u
dGVudEV4dGVuc2lvbkFjdGlvbnMuaDoKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6YWRkQ29udGVudEV4dGVuc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNr
ZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OmFwcGx5UmVzdWx0c1RvUmVxdWVzdCk6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmg6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oOgorCiAyMDIxLTExLTE4ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWxs
b3cgYWxsIHJlZGlyZWN0IHNjaGVtZXMgd2hlbiBjb21waWxpbmcgYSBjb250ZW50IHJ1bGUgbGlz
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBjYTdkYmMzYWJiZmUxZTg4Njg4ZGMxZWU1Y2M3NTllMDU5NTRlZTY5Li4w
M2YxZWQ3YWIzNmIxNWQ2MzQ4N2Q4NzE4N2NjNDY5YzZhNDEzMjA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ5IEBACisyMDIxLTExLTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IGV4dGVuc2lvbi1wYXRoIHZhcmlhbnQgb2Yg
cmVkaXJlY3QgYWN0aW9uIGluIFdLQ29udGVudFJ1bGVMaXN0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMzNTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NvbnRlbnRS
dWxlTGlzdE1hbmFnZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW46CisgICAg
ICAgICogU2hhcmVkL1NlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9TZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmg6CisgICAgICAg
ICogU2hhcmVkL1VzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9Vc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmg6CisgICAgICAgICog
U2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjpXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVM
aXN0LmNwcDoKKyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0OjpDb250ZW50UnVsZUxpc3Qp
OgorICAgICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3Q6Om5hbWUgY29uc3QpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHA6CisgICAgICAgIChBUEk6OmNyZWF0ZUV4
dGVuc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX2FkZENvbnRl
bnRSdWxlTGlzdDpleHRlbnNpb25CYXNlVVJMOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OmNvbnRlbnRFeHRlbnNpb25SdWxlcyk6CisgICAgICAgICogVUlQ
cm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmNvbnRlbnRSdWxl
TGlzdERhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eTo6YWRkQ29udGVudFJ1bGVMaXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZENvbnRlbnRSdWxlTGlzdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Ojpjb250ZW50RXh0ZW5z
aW9uUnVsZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0Ojpjb250ZW50UnVsZUxpc3RzRnJvbUlkZW50aWZpZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRDb250ZW50UnVsZUxp
c3RzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLm1lc3NhZ2VzLmluOgorCiAyMDIxLTExLTE4ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWxsb3cgYWxsIHJlZGlyZWN0
IHNjaGVtZXMgd2hlbiBjb21waWxpbmcgYSBjb250ZW50IHJ1bGUgbGlzdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAppbmRl
eCA4OWQ0YzJjZmZmOGFmMGJiYzk0MGE4ZWNhYmZmMWQ5NWU0YmZjNjRlLi43ZTRjMTI4NzU3NGZl
MGQ5Nzc3MWY4NGI5NWE5NDdkMjY3N2NkMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcApAQCAtMzYsMTQgKzM2LDE1
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewog
Ci1SZWY8Q29udGVudEV4dGVuc2lvbj4gQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4mJiBjb21waWxl
ZEV4dGVuc2lvbiwgU2hvdWxkQ29tcGlsZUNTUyBzaG91bGRDb21waWxlQ1NTKQorUmVmPENvbnRl
bnRFeHRlbnNpb24+IENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZShjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIFJlZjxDb21waWxlZENvbnRlbnRFeHRlbnNpb24+JiYgY29tcGlsZWRFeHRlbnNpb24s
IFVSTCYmIGV4dGVuc2lvbkJhc2VVUkwsIFNob3VsZENvbXBpbGVDU1Mgc2hvdWxkQ29tcGlsZUNT
UykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50RXh0ZW5zaW9uKGlkZW50aWZp
ZXIsIFdURk1vdmUoY29tcGlsZWRFeHRlbnNpb24pLCBzaG91bGRDb21waWxlQ1NTKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29udGVudEV4dGVuc2lvbihpZGVudGlmaWVyLCBXVEZNb3Zl
KGNvbXBpbGVkRXh0ZW5zaW9uKSwgV1RGTW92ZShleHRlbnNpb25CYXNlVVJMKSwgc2hvdWxkQ29t
cGlsZUNTUykpOwogfQogCi1Db250ZW50RXh0ZW5zaW9uOjpDb250ZW50RXh0ZW5zaW9uKGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4mJiBjb21w
aWxlZEV4dGVuc2lvbiwgU2hvdWxkQ29tcGlsZUNTUyBzaG91bGRDb21waWxlQ1NTKQorQ29udGVu
dEV4dGVuc2lvbjo6Q29udGVudEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFJl
ZjxDb21waWxlZENvbnRlbnRFeHRlbnNpb24+JiYgY29tcGlsZWRFeHRlbnNpb24sIFVSTCYmIGV4
dGVuc2lvbkJhc2VVUkwsIFNob3VsZENvbXBpbGVDU1Mgc2hvdWxkQ29tcGlsZUNTUykKICAgICA6
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9jb21waWxlZEV4dGVuc2lvbihXVEZN
b3ZlKGNvbXBpbGVkRXh0ZW5zaW9uKSkKKyAgICAsIG1fZXh0ZW5zaW9uQmFzZVVSTChXVEZNb3Zl
KGV4dGVuc2lvbkJhc2VVUkwpKQogewogICAgIERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIgd2l0aG91
dENvbmRpdGlvbnMobV9jb21waWxlZEV4dGVuc2lvbi0+ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGUoKSwgbV9jb21waWxlZEV4dGVuc2lvbi0+ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25z
Qnl0ZWNvZGVMZW5ndGgoKSk7CiAgICAgREZBQnl0ZWNvZGVJbnRlcnByZXRlciB3aXRoQ29uZGl0
aW9ucyhtX2NvbXBpbGVkRXh0ZW5zaW9uLT5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSgp
LCBtX2NvbXBpbGVkRXh0ZW5zaW9uLT5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZUxlbmd0
aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb24uaAppbmRleCA1YWYxYWRhOTM2MDI2NjhkYzJmZWU3OTQ1MjQ5ZmVjZDI4OThjMDk3
Li5hNWIzMWVlM2QxZmY1MGU1NDUxYjczNWIzMzdmMzNiOTQyYTZiN2IwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5oCkBAIC00
Miw5ICs0MiwxMCBAQCBjbGFzcyBDb21waWxlZENvbnRlbnRFeHRlbnNpb247CiBjbGFzcyBDb250
ZW50RXh0ZW5zaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Q29udGVudEV4dGVuc2lvbj4gewogcHVi
bGljOgogICAgIGVudW0gY2xhc3MgU2hvdWxkQ29tcGlsZUNTUyB7IE5vLCBZZXMgfTsKLSAgICBz
dGF0aWMgUmVmPENvbnRlbnRFeHRlbnNpb24+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIsIFJlZjxDb21waWxlZENvbnRlbnRFeHRlbnNpb24+JiYsIFNob3VsZENvbXBpbGVDU1MgPSBT
aG91bGRDb21waWxlQ1NTOjpZZXMpOworICAgIHN0YXRpYyBSZWY8Q29udGVudEV4dGVuc2lvbj4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVu
c2lvbj4mJiwgVVJMJiYsIFNob3VsZENvbXBpbGVDU1MpOwogCiAgICAgY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgY29uc3QgVVJM
JiBleHRlbnNpb25CYXNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9leHRlbnNpb25CYXNlVVJMOyB9
CiAgICAgY29uc3QgQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uJiBjb21waWxlZEV4dGVuc2lvbigp
IGNvbnN0IHsgcmV0dXJuIG1fY29tcGlsZWRFeHRlbnNpb24uZ2V0KCk7IH0KICAgICBTdHlsZVNo
ZWV0Q29udGVudHMqIGdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCgpOwogICAgIGNvbnN0IERG
QUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OkFjdGlvbnMmIHRvcFVSTEFjdGlvbnMoY29uc3QgVVJMJiB0
b3BVUkwpOwpAQCAtNTIsMTEgKzUzLDEyIEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8dWlu
dDMyX3Q+JiB1bml2ZXJzYWxBY3Rpb25zV2l0aENvbmRpdGlvbnMoY29uc3QgVVJMJiB0b3BVUkwp
OwogCiBwcml2YXRlOgotICAgIENvbnRlbnRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyLCBSZWY8Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uPiYmLCBTaG91bGRDb21waWxlQ1NTKTsK
KyAgICBDb250ZW50RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBp
bGVkQ29udGVudEV4dGVuc2lvbj4mJiwgVVJMJiYsIFNob3VsZENvbXBpbGVDU1MpOwogICAgIHVp
bnQzMl90IGZpbmRGaXJzdElnbm9yZVByZXZpb3VzUnVsZXMoKSBjb25zdDsKICAgICAKICAgICBT
dHJpbmcgbV9pZGVudGlmaWVyOwogICAgIFJlZjxDb21waWxlZENvbnRlbnRFeHRlbnNpb24+IG1f
Y29tcGlsZWRFeHRlbnNpb247CisgICAgVVJMIG1fZXh0ZW5zaW9uQmFzZVVSTDsKIAogICAgIFJl
ZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IG1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0Owog
ICAgIHZvaWQgY29tcGlsZUdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlv
bnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
bkFjdGlvbnMuY3BwCmluZGV4IGYzOWY2ZDQ4ZWRlNTNjYTYzOWUwN2U4NGE3MGQ3OGY1NzZkYzQx
MjYuLjJmNjU3YTMxNDBiMmQ3MGUwMzkzZDVkNTMxMjNkZDU4YTU2NmMxMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25z
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uQWN0aW9ucy5jcHAKQEAgLTM2OCwxMCArMzY4LDEyIEBAIHNpemVfdCBSZWRpcmVjdEFjdGlv
bjo6c2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4X3Q+IHNwYW4pCiAgICAgcmV0dXJu
IGRlc2VyaWFsaXplTGVuZ3RoKHNwYW4sIDApOwogfQogCi12b2lkIFJlZGlyZWN0QWN0aW9uOjph
cHBseVRvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIFJlZGlyZWN0QWN0
aW9uOjphcHBseVRvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFVSTCYg
ZXh0ZW5zaW9uQmFzZVVSTCkKIHsKLSAgICBzdGQ6OnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoW10o
Y29uc3QgRXh0ZW5zaW9uUGF0aEFjdGlvbiYpIHsKLSAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dC4gV2UgbmVlZCB0byBrbm93IHRoZSBiYXNlIFVSTCBvZiB0aGUgZXh0ZW5zaW9uIGhlcmUgZnJv
bSBuZXcgU1BJLgorICAgIHN0ZDo6dmlzaXQoV1RGOjptYWtlVmlzaXRvcihbJl0oY29uc3QgRXh0
ZW5zaW9uUGF0aEFjdGlvbiYgYWN0aW9uKSB7CisgICAgICAgIGF1dG8gdXJsID0gZXh0ZW5zaW9u
QmFzZVVSTDsKKyAgICAgICAgdXJsLnNldFBhdGgoYWN0aW9uLmV4dGVuc2lvblBhdGgpOworICAg
ICAgICByZXF1ZXN0LnNldFVSTChXVEZNb3ZlKHVybCkpOwogICAgIH0sIFsmXSAoY29uc3QgUmVn
ZXhTdWJzdGl0dXRpb25BY3Rpb24mKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQsIGlk
ZWFsbHkgaW4gYSB3YXkgdGhhdCBkb2Vzbid0IHJlcXVpcmUgbWFraW5nIGEgbmV3IFZNIGFuZCBn
bG9iYWwgb2JqZWN0IGZvciBlYWNoIHJlZGlyZWN0IG9wZXJhdGlvbi4KICAgICB9LCBbJl0gKGNv
bnN0IFVSTFRyYW5zZm9ybUFjdGlvbiYgYWN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaAppbmRl
eCAxNTY0MjkzYjQwMDZiYzhmMjVlOGYxOTg4ZWE5ZWU2MDUzOTc1NDVkLi4wMTk4ODk2N2M0Mjdi
NDVmNjljMjcyNGY2MGI2ZDYxM2ZmOTUxODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKQEAgLTI0
NCw3ICsyNDQsNyBAQCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgUmVkaXJlY3RBY3Rpb24gewogICAg
IHZvaWQgc2VyaWFsaXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0OwogICAgIHN0YXRpYyBSZWRp
cmVjdEFjdGlvbiBkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKICAgICBzdGF0aWMg
c2l6ZV90IHNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90Pik7Ci0gICAgdm9pZCBh
cHBseVRvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIGFwcGx5VG9SZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFVSTCYpOwogfTsKIAogdXNpbmcgQWN0aW9uRGF0YSA9
IHN0ZDo6dmFyaWFudDwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCmluZGV4IGZjODJmMmJiYzlj
YTBjMTE0ZjJjYzc5NDFmZTYxYjZkODY5MjVjMGUuLmMwM2EyNGI1N2IwNTM5OTQ1YzQyN2M3Zjc2
MWRlZTQ2NDAxNDEyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcApAQCAtNzgsMTMgKzc4
LDEzIEBAIGJvb2wgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpzaG91bGRCZU1hZGVTZWN1cmUo
Y29uc3QgVVJMJiB1cmwpCiAgICAgcmV0dXJuIHJlc3VsdHMuc3VtbWFyeS5tYWRlSFRUUFM7CiB9
CiAKLXZvaWQgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjphZGRDb250ZW50RXh0ZW5zaW9uKGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4gY29t
cGlsZWRDb250ZW50RXh0ZW5zaW9uLCBDb250ZW50RXh0ZW5zaW9uOjpTaG91bGRDb21waWxlQ1NT
IHNob3VsZENvbXBpbGVDU1MpCit2b2lkIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6YWRkQ29u
dGVudEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFJlZjxDb21waWxlZENvbnRl
bnRFeHRlbnNpb24+IGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbiwgVVJMJiYgZXh0ZW5zaW9uQmFz
ZVVSTCwgQ29udGVudEV4dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNTUyBzaG91bGRDb21waWxlQ1NT
KQogewogICAgIEFTU0VSVCghaWRlbnRpZmllci5pc0VtcHR5KCkpOwogICAgIGlmIChpZGVudGlm
aWVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGF1dG8gY29udGVudEV4
dGVuc2lvbiA9IENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZShpZGVudGlmaWVyLCBXVEZNb3ZlKGNv
bXBpbGVkQ29udGVudEV4dGVuc2lvbiksIHNob3VsZENvbXBpbGVDU1MpOworICAgIGF1dG8gY29u
dGVudEV4dGVuc2lvbiA9IENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZShpZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbiksIFdURk1vdmUoZXh0ZW5zaW9uQmFzZVVSTCks
IHNob3VsZENvbXBpbGVDU1MpOwogICAgIG1fY29udGVudEV4dGVuc2lvbnMuc2V0KGlkZW50aWZp
ZXIsIFdURk1vdmUoY29udGVudEV4dGVuc2lvbikpOwogfQogCkBAIC0yMzEsOSArMjMxLDkgQEAg
Q29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3ND
b250ZW50UnVsZUxpc3RzRm9yTG9hZCgKICAgICAgICAgICAgIH0sIFsmXSAoY29uc3QgTW9kaWZ5
SGVhZGVyc0FjdGlvbiYgYWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgaWYgKGluaXRpYXRpbmdE
b2N1bWVudExvYWRlci5hbGxvd3NBY3RpdmVDb250ZW50UnVsZUxpc3RBY3Rpb25zRm9yVVJMKHVy
bCkpCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMuc3VtbWFyeS5tb2RpZnlIZWFkZXJzQWN0
aW9ucy5hcHBlbmQoYWN0aW9uKTsKLSAgICAgICAgICAgIH0sIFsmXSAoY29uc3QgUmVkaXJlY3RB
Y3Rpb24mIGFjdGlvbikgeworICAgICAgICAgICAgfSwgWyZdIChjb25zdCBSZWRpcmVjdEFjdGlv
biYgcmVkaXJlY3RBY3Rpb24pIHsKICAgICAgICAgICAgICAgICBpZiAoaW5pdGlhdGluZ0RvY3Vt
ZW50TG9hZGVyLmFsbG93c0FjdGl2ZUNvbnRlbnRSdWxlTGlzdEFjdGlvbnNGb3JVUkwodXJsKSkK
LSAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5zdW1tYXJ5LnJlZGlyZWN0QWN0aW9ucy5hcHBl
bmQoYWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5zdW1tYXJ5LnJlZGlyZWN0
QWN0aW9ucy5hcHBlbmQoeyByZWRpcmVjdEFjdGlvbiwgbV9jb250ZW50RXh0ZW5zaW9ucy5nZXQo
YWN0aW9uc0Zyb21Db250ZW50UnVsZUxpc3QuY29udGVudFJ1bGVMaXN0SWRlbnRpZmllciktPmV4
dGVuc2lvbkJhc2VVUkwoKSB9KTsKICAgICAgICAgICAgIH0pLCBhY3Rpb24uZGF0YSgpKTsKICAg
ICAgICAgfQogCkBAIC0zMzAsOCArMzMwLDggQEAgdm9pZCBhcHBseVJlc3VsdHNUb1JlcXVlc3Qo
Q29udGVudFJ1bGVMaXN0UmVzdWx0cyYmIHJlc3VsdHMsIFBhZ2UqIHBhZ2UsIFJlc291cmMKICAg
ICBmb3IgKGF1dG8mIGFjdGlvbiA6IHJlc3VsdHMuc3VtbWFyeS5tb2RpZnlIZWFkZXJzQWN0aW9u
cykKICAgICAgICAgYWN0aW9uLmFwcGx5VG9SZXF1ZXN0KHJlcXVlc3QpOwogCi0gICAgZm9yIChh
dXRvJiBhY3Rpb24gOiByZXN1bHRzLnN1bW1hcnkucmVkaXJlY3RBY3Rpb25zKQotICAgICAgICBh
Y3Rpb24uYXBwbHlUb1JlcXVlc3QocmVxdWVzdCk7CisgICAgZm9yIChhdXRvJiBwYWlyIDogcmVz
dWx0cy5zdW1tYXJ5LnJlZGlyZWN0QWN0aW9ucykKKyAgICAgICAgcGFpci5maXJzdC5hcHBseVRv
UmVxdWVzdChyZXF1ZXN0LCBwYWlyLnNlY29uZCk7CiAKICAgICBpZiAocGFnZSAmJiByZXN1bHRz
LnNob3VsZE5vdGlmeUFwcGxpY2F0aW9uKCkpIHsKICAgICAgICAgcmVzdWx0cy5yZXN1bHRzLnJl
bW92ZUFsbE1hdGNoaW5nKFtdKGNvbnN0IGF1dG8mIHBhaXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5k
LmgKaW5kZXggOTE3MGFhYWFkZTkwOTljYjc3N2Y5NjQzNmZkZDM5NWE0MTI5NDM5NS4uZjg1OWFl
YzhiYzRkNjc5NWMyNzZhM2JmMzFjYjEwY2MyMjZkOGVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5k
LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgLy8gU2V0IGEgbGlzdCBvZiBydWxl
cyBmb3IgYSBnaXZlbiBuYW1lLiBJZiB0aGVyZSB3ZXJlIGV4aXN0aW5nIHJ1bGVzIGZvciB0aGUg
bmFtZSwgdGhleSBhcmUgb3ZlcnJpZGRlbi4KICAgICAvLyBUaGUgaWRlbnRpZmllciBjYW5ub3Qg
YmUgZW1wdHkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRDb250ZW50RXh0ZW5zaW9uKGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgUmVmPENvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4sIENv
bnRlbnRFeHRlbnNpb246OlNob3VsZENvbXBpbGVDU1MgPSBDb250ZW50RXh0ZW5zaW9uOjpTaG91
bGRDb21waWxlQ1NTOjpZZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQ29udGVudEV4
dGVuc2lvbihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFJlZjxDb21waWxlZENvbnRlbnRFeHRl
bnNpb24+LCBVUkwmJiBleHRlbnNpb25CYXNlVVJMLCBDb250ZW50RXh0ZW5zaW9uOjpTaG91bGRD
b21waWxlQ1NTID0gQ29udGVudEV4dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNTUzo6WWVzKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUNvbnRlbnRFeHRlbnNpb24oY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbENvbnRlbnRF
eHRlbnNpb25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaAppbmRleCBlMDdiMzMzZGZkNmI1OWIxYjQ4
NmRhZTg4NTYzZGQ3NmE0NDEyN2Q3Li40YjkyOTI1ODUwM2Y2ZjAxOTM4Y2JkMTI3ZjU4YTVkMjk2
ZDQyODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50UnVsZUxpc3RSZXN1bHRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oCkBAIC01OCw3ICs1OCw3IEBAIHN0cnVjdCBDb250
ZW50UnVsZUxpc3RSZXN1bHRzIHsKICAgICAgICAgYm9vbCBibG9ja2VkQ29va2llcyB7IGZhbHNl
IH07CiAgICAgICAgIGJvb2wgaGFzTm90aWZpY2F0aW9ucyB7IGZhbHNlIH07CiAgICAgICAgIFZl
Y3RvcjxDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbj4gbW9kaWZ5SGVhZGVy
c0FjdGlvbnM7Ci0gICAgICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rp
b24+IHJlZGlyZWN0QWN0aW9uczsKKyAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxDb250ZW50RXh0
ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb24sIFVSTD4+IHJlZGlyZWN0QWN0aW9uczsKIAogICAgICAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAg
ICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN1bW1h
cnk+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCmluZGV4IDU0
MzUyODI4ZTY4NzIxYWYwYmFkZTBjMDI3NWJlMmYwOTVhMTY2MGQuLjYxMWJhYjE2OWEwMGUxMGE1
MzU3MjViM2UxNGFmNDQwN2ZlMjdlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCkBA
IC02NiwxNSArNjYsMTcgQEAgdm9pZCBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6Y29u
dGVudEV4dGVuc2lvbnNCYWNrZW5kKFVzZXJDb250ZW50Q29udHJvbGwKICAgICBtX25ldHdvcmtQ
cm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OkNvbnRlbnRFeHRlbnNpb25SdWxlcyB7IGlkZW50aWZpZXIgfSwgMCk7CiB9
CiAKLXZvaWQgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OmFkZENvbnRlbnRSdWxlTGlz
dHMoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mJiBjb250ZW50
UnVsZUxpc3RzKQordm9pZCBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6YWRkQ29udGVu
dFJ1bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZl
Y3RvcjxzdGQ6OnBhaXI8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLCBVUkw+PiYmIGNv
bnRlbnRSdWxlTGlzdHMpCiB7CiAgICAgYXV0byYgYmFja2VuZCA9ICptX2NvbnRlbnRFeHRlbnNp
b25CYWNrZW5kcy5lbnN1cmUoaWRlbnRpZmllciwgW10gewogICAgICAgICByZXR1cm4gbWFrZVVu
aXF1ZTxXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5k
PigpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIGZvciAoYXV0byYmIGNvbnRlbnRS
dWxlTGlzdCA6IGNvbnRlbnRSdWxlTGlzdHMpIHsKLSAgICAgICAgYXV0byBjb21waWxlZENvbnRl
bnRSdWxlTGlzdCA9IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShj
b250ZW50UnVsZUxpc3Quc2Vjb25kKSk7Ci0gICAgICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVu
c2lvbihjb250ZW50UnVsZUxpc3QuZmlyc3QsIFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxp
c3QpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNT
Uzo6Tm8pOworICAgIGZvciAoYXV0byYmIHBhaXIgOiBjb250ZW50UnVsZUxpc3RzKSB7CisgICAg
ICAgIGF1dG8mJiBjb250ZW50UnVsZUxpc3QgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOworICAgICAg
ICBTdHJpbmcgaWRlbnRpZmllciA9IGNvbnRlbnRSdWxlTGlzdC5pZGVudGlmaWVyOworICAgICAg
ICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0ID0gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbnRlbnRSdWxlTGlzdCkpOworICAgICAgICBiYWNrZW5kLmFk
ZENvbnRlbnRFeHRlbnNpb24oaWRlbnRpZmllciwgV1RGTW92ZShjb21waWxlZENvbnRlbnRSdWxl
TGlzdCksIFdURk1vdmUocGFpci5zZWNvbmQpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4
dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNTUzo6Tm8pOwogICAgIH0KIAogICAgIGF1dG8gcGVuZGlu
Z0NhbGxiYWNrcyA9IG1fcGVuZGluZ0NhbGxiYWNrcy50YWtlKGlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlci5oCmluZGV4IDFiY2QzMzQwMGY1YzYxN2NkZGU4MDRlYWI1OTcwNjE5NTA5
ZTE0MmQuLjQ2N2Q1ODM4MzU5MjcxMzM3YTYwMjMxNDZiZjMzZGZiODYzY2ViZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY29u
dGVudEV4dGVuc2lvbnNCYWNrZW5kKFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIEJh
Y2tlbmRDYWxsYmFjayYmKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkZENvbnRlbnRSdWxlTGlz
dHMoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJp
bmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+JiYpOworICAgIHZvaWQgYWRkQ29u
dGVudFJ1bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBWZWN0b3I8c3Rk
OjpwYWlyPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSwgVVJMPj4mJik7CiAgICAgdm9p
ZCByZW1vdmVDb250ZW50UnVsZUxpc3QoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZUFsbENvbnRlbnRSdWxlTGlzdHMo
VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmUoVXNlckNv
bnRlbnRDb250cm9sbGVySWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ci5tZXNzYWdlcy5pbgppbmRleCAzNmUyMGYzYTQ1OGEyNTE5N2M2NjAyMzg1ZTQ2NWRlY2UwM2I0
N2Q5Li5kZDQ5NzlhNjc0OGIyZWNkMmZlYzFiY2Q2NWE2ZTgzY2M4OWM3NDRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5h
Z2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKIAog
bWVzc2FnZXMgLT4gTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgTm90UmVmQ291bnRlZCB7
CiAgICAgUmVtb3ZlKFdlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciBpZGVu
dGlmaWVyKQotICAgIEFkZENvbnRlbnRSdWxlTGlzdHMoV2ViS2l0OjpVc2VyQ29udGVudENvbnRy
b2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJL
aXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+IGNvbnRlbnRGaWx0ZXJzKQorICAg
IEFkZENvbnRlbnRSdWxlTGlzdHMoV2ViS2l0OjpVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFZlY3RvcjxzdGQ6OnBhaXI8V2ViS2l0OjpXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGEsIFVSTD4+IGNvbnRlbnRGaWx0ZXJzKQogICAgIFJlbW92ZUNvbnRlbnRS
dWxlTGlzdChXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmll
ciwgU3RyaW5nIG5hbWUpCiAgICAgUmVtb3ZlQWxsQ29udGVudFJ1bGVMaXN0cyhXZWJLaXQ6OlVz
ZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5j
cHAKaW5kZXggNzczMjE5ZjdlZTAwYjY3YjNiNWQxNWI3OTRhMjUxZGIzOTVmMzI1NC4uYWFhNTYy
NTBjZTMxZDgyZjJmZjk1ZDBlM2ZmY2YxY2M5MDkxZDg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5o
IgogI2luY2x1ZGUgIldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oIgorI2luY2x1ZGUg
PHd0Zi9VUkwuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ5LDcgKzUwLDcgQEAgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhPiBTZXJ2aWNlV29ya2Vy
SW5pdGlhbGl6YXRpb25EYXRhOjoKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+PiBjb250
ZW50UnVsZUxpc3RzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHN0ZDo6cGFpcjxXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGEsIFVSTD4+PiBjb250ZW50UnVsZUxpc3RzOwogICAgIGRl
Y29kZXIgPj4gY29udGVudFJ1bGVMaXN0czsKICAgICBpZiAoIWNvbnRlbnRSdWxlTGlzdHMpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgKaW5kZXggNDE3M2IzYmUzMWEw
ZmEzYmUzOTQyY2RhNWU2YTQ5ZGQ5NTA3YTYzZC4uZmZkMzE1MWRhMGI4N2FlMWRiZTVkOWE3YjZi
MjQyMzY1YzAxMDZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2VydmljZVdv
cmtlckluaXRpYWxpemF0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NlcnZp
Y2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBzdHJ1Y3QgU2Vy
dmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YSB7CiAKICAgICBVc2VyQ29udGVudENvbnRyb2xs
ZXJJZGVudGlmaWVyIHVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXI7CiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4gY29udGVudFJ1bGVMaXN0czsKKyAgICBWZWN0b3I8
c3RkOjpwYWlyPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSwgVVJMPj4gY29udGVudFJ1
bGVMaXN0czsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
VXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Vc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmNwcAppbmRleCBmMDcwYTY0OWRjMjZh
NmViOWMxZjc1NDE1YjM4NWRjM2M3ZjdkMmYxLi5lMGNjNzYzNDMwMTg0Nzg2NWM2MjJlN2Y5NDZk
YjVmZDEyMTlhZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyQ29udGVu
dENvbnRyb2xsZXJQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2Vy
Q29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmNwcApAQCAtNzIsNyArNzIsNyBAQCBzdGQ6Om9w
dGlvbmFsPFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnM+IFVzZXJDb250ZW50Q29udHJv
bGxlclBhcmFtZXRlcnM6OgogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIAogI2lm
IEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4+IGNvbnRlbnRS
dWxlTGlzdHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8c3RkOjpwYWlyPFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YSwgVVJMPj4+IGNvbnRlbnRSdWxlTGlzdHM7CiAgICAgZGVjb2Rl
ciA+PiBjb250ZW50UnVsZUxpc3RzOwogICAgIGlmICghY29udGVudFJ1bGVMaXN0cykKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1VzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1VzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuaAppbmRleCAwMzBmZGRkN2JhNjE1M2Fk
NjQ3OGE1OWUzNjQ1ZWJmYWNmODVhZTM1Li41MzBlOTdiY2I5ZTI5YTRhMDc5ZmQwM2IxM2FjNzZi
YmIwNTA5YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyQ29udGVudENv
bnRyb2xsZXJQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckNvbnRl
bnRDb250cm9sbGVyUGFyYW1ldGVycy5oCkBAIC00NCw3ICs0NCw3IEBAIHN0cnVjdCBVc2VyQ29u
dGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzIHsKICAgICBWZWN0b3I8V2ViVXNlclN0eWxlU2hlZXRE
YXRhPiB1c2VyU3R5bGVTaGVldHM7CiAgICAgVmVjdG9yPFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVy
RGF0YT4gbWVzc2FnZUhhbmRsZXJzOwogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0g
ICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YT4+IGNvbnRlbnRSdWxlTGlzdHM7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGEsIFVSTD4+IGNvbnRlbnRSdWxlTGlzdHM7CiAjZW5kaWYKIAogICAg
IHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5jcHAKaW5kZXggYWMw
MmQ2ZDRhY2YyMmE3NThhM2M2ODI4YmM2YzAxYTY5YWY5ZDIzOC4uODNmYTAyZmZhYjE1NDI5Yjhj
NWM4ZTM1ODFkMGNiODJiNmJiZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuY3BwCkBAIC0zNiw2ICszNiw4IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKKyAgICBlbmNvZGVyIDw8
IGlkZW50aWZpZXI7CisKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CiAgICAgZGF0
YS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25s
eSk7CiAgICAgCkBAIC02MCwxMCArNjIsMTcgQEAgdm9pZCBXZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKIHN0ZDo6b3B0
aW9uYWw8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPiBXZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdERhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CisgICAgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IGlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBpZGVudGlmaWVyOwor
ICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAg
IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGlwY0hhbmRsZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGlwY0hhbmRsZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgUmVmUHRy
PFNoYXJlZE1lbW9yeT4gZGF0YSA9IFNoYXJlZE1lbW9yeTo6bWFwKGlwY0hhbmRsZS5oYW5kbGUs
IFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIGF1dG8gZGF0YSA9IFNo
YXJlZE1lbW9yeTo6bWFwKGlwY0hhbmRsZS5oYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGNvbmRpdGlvbnNBcHBseU9ubHlUb0Rv
bWFpbk9mZnNldDsKICAgICBkZWNvZGVyID4+IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9m
ZnNldDsKQEAgLTExMSw3ICsxMjAsOCBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0RGF0YT4gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjpkZQogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgcmV0dXJuIHt7Ci0gICAgICAgIFdURk1vdmUo
ZGF0YSksCisgICAgICAgIFdURk1vdmUoKmlkZW50aWZpZXIpLAorICAgICAgICBkYXRhLnJlbGVh
c2VOb25OdWxsKCksCiAgICAgICAgIFdURk1vdmUoKmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFp
bk9mZnNldCksCiAgICAgICAgIFdURk1vdmUoKmFjdGlvbnNPZmZzZXQpLAogICAgICAgICBXVEZN
b3ZlKCphY3Rpb25zU2l6ZSksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCmluZGV4IDJkODZmODI2OGU4M2JkZTc4OTFiYzIy
YmNhOGUyMTU0ZGIxYTYyYzguLmE0ODAzNWJmYWQ4NmNhNTgyOGUyMTRhMmU0YzNmY2U1Y2FmYzk2
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1
bGVMaXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0RGF0YS5oCkBAIC00MSw4ICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEgewogcHVibGljOgotICAgIFdlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YShSZWZQdHI8U2hhcmVkTWVtb3J5PiYmIGRhdGEsIHVu
c2lnbmVkIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCwgdW5zaWduZWQgYWN0aW9u
c09mZnNldCwgdW5zaWduZWQgYWN0aW9uc1NpemUsIHVuc2lnbmVkIGZpbHRlcnNXaXRob3V0Q29u
ZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNC
eXRlY29kZVNpemUsIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0
LCB1bnNpZ25lZCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUsIHVuc2lnbmVkIHRv
cFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldCwgdW5zaWduZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2Rl
U2l6ZSkKLSAgICAgICAgOiBkYXRhKFdURk1vdmUoZGF0YSkpCisgICAgV2ViQ29tcGlsZWRDb250
ZW50UnVsZUxpc3REYXRhKFN0cmluZyYmIGlkZW50aWZpZXIsIFJlZjxTaGFyZWRNZW1vcnk+JiYg
ZGF0YSwgdW5zaWduZWQgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0LCB1bnNpZ25l
ZCBhY3Rpb25zT2Zmc2V0LCB1bnNpZ25lZCBhY3Rpb25zU2l6ZSwgdW5zaWduZWQgZmlsdGVyc1dp
dGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkIGZpbHRlcnNXaXRob3V0Q29u
ZGl0aW9uc0J5dGVjb2RlU2l6ZSwgdW5zaWduZWQgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNv
ZGVPZmZzZXQsIHVuc2lnbmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwgdW5z
aWduZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCB0b3BVUkxGaWx0ZXJz
Qnl0ZWNvZGVTaXplKQorICAgICAgICA6IGlkZW50aWZpZXIoV1RGTW92ZShpZGVudGlmaWVyKSkK
KyAgICAgICAgLCBkYXRhKFdURk1vdmUoZGF0YSkpCiAgICAgICAgICwgY29uZGl0aW9uc0FwcGx5
T25seVRvRG9tYWluT2Zmc2V0KGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCkKICAg
ICAgICAgLCBhY3Rpb25zT2Zmc2V0KGFjdGlvbnNPZmZzZXQpCiAgICAgICAgICwgYWN0aW9uc1Np
emUoYWN0aW9uc1NpemUpCkBAIC01OCw3ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAotICAgIFJl
ZlB0cjxTaGFyZWRNZW1vcnk+IGRhdGE7CisgICAgU3RyaW5nIGlkZW50aWZpZXI7CisgICAgUmVm
PFNoYXJlZE1lbW9yeT4gZGF0YTsKICAgICB1bnNpZ25lZCBjb25kaXRpb25zQXBwbHlPbmx5VG9E
b21haW5PZmZzZXQgeyAwIH07CiAgICAgdW5zaWduZWQgYWN0aW9uc09mZnNldCB7IDAgfTsKICAg
ICB1bnNpZ25lZCBhY3Rpb25zU2l6ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAKaW5kZXggYzBlZmRiMjNiNDcwY2VlM2Zk
MjI4ZTUzMDJhNGM4NWFmOTdiODMxYi4uODcxMjg4ZTNjOWVlNzNiMGJjODdjZWFmZWEwOWM0NmI2
MmMwOGFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRl
bnRSdWxlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRl
bnRSdWxlTGlzdC5jcHAKQEAgLTM0LDkgKzM0LDggQEAKIAogbmFtZXNwYWNlIEFQSSB7CiAKLUNv
bnRlbnRSdWxlTGlzdDo6Q29udGVudFJ1bGVMaXN0KGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lLCBS
ZWY8V2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdD4mJiBjb250ZW50UnVsZUxpc3Qs
IFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhJiYgbWFwcGVkRmlsZSkKLSAgICA6IG1fbmFtZShu
YW1lKQotICAgICwgbV9jb21waWxlZFJ1bGVMaXN0KFdURk1vdmUoY29udGVudFJ1bGVMaXN0KSkK
K0NvbnRlbnRSdWxlTGlzdDo6Q29udGVudFJ1bGVMaXN0KFJlZjxXZWJLaXQ6OldlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0PiYmIGNvbnRlbnRSdWxlTGlzdCwgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OkRhdGEmJiBtYXBwZWRGaWxlKQorICAgIDogbV9jb21waWxlZFJ1bGVMaXN0KFdURk1vdmUoY29u
dGVudFJ1bGVMaXN0KSkKICAgICAsIG1fbWFwcGVkRmlsZShXVEZNb3ZlKG1hcHBlZEZpbGUpKQog
ewogfQpAQCAtNDUsNiArNDQsMTEgQEAgQ29udGVudFJ1bGVMaXN0Ojp+Q29udGVudFJ1bGVMaXN0
KCkKIHsKIH0KIAorY29uc3QgV1RGOjpTdHJpbmcmIENvbnRlbnRSdWxlTGlzdDo6bmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fY29tcGlsZWRSdWxlTGlzdC0+ZGF0YSgpLmlkZW50aWZpZXI7
Cit9CisKIGJvb2wgQ29udGVudFJ1bGVMaXN0OjpzdXBwb3J0c1JlZ3VsYXJFeHByZXNzaW9uKGNv
bnN0IFdURjo6U3RyaW5nJiByZWdleCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJQ29udGVudFJ1bGVMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
Q29udGVudFJ1bGVMaXN0LmgKaW5kZXggOGZlNGYxOWYyMWVkYThlM2ZiYzAxZjI5NTUzZGFjMTQ0
MzY0ZGZjOS4uMDQyYmVmN2RhMDdjNDUzYmIyNjU2NjUxYjZlNzMxZDI3NDg3NWZkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuaApAQCAt
MzgsMjEgKzM4LDIwIEBAIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQ29udGVudFJ1bGVMaXN0IGZp
bmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpDb250ZW50UnVsZUxpc3Q+IHsK
IHB1YmxpYzoKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIHN0YXRpYyBSZWY8
Q29udGVudFJ1bGVMaXN0PiBjcmVhdGUoY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFJlZjxXZWJL
aXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0PiYmIGNvbnRlbnRSdWxlTGlzdCwgV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OkRhdGEmJiBtYXBwZWRGaWxlKQorICAgIHN0YXRpYyBSZWY8Q29udGVu
dFJ1bGVMaXN0PiBjcmVhdGUoUmVmPFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q+
JiYgY29udGVudFJ1bGVMaXN0LCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYmIG1hcHBlZEZp
bGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50UnVsZUxpc3Qo
bmFtZSwgV1RGTW92ZShjb250ZW50UnVsZUxpc3QpLCBXVEZNb3ZlKG1hcHBlZEZpbGUpKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbnRlbnRSdWxlTGlzdChXVEZNb3ZlKGNvbnRl
bnRSdWxlTGlzdCksIFdURk1vdmUobWFwcGVkRmlsZSkpKTsKICAgICB9CiAKLSAgICBDb250ZW50
UnVsZUxpc3QoY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFJlZjxXZWJLaXQ6OldlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0PiYmLCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYmKTsKKyAgICBD
b250ZW50UnVsZUxpc3QoUmVmPFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q+JiYs
IFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhJiYpOwogICAgIHZpcnR1YWwgfkNvbnRlbnRSdWxl
TGlzdCgpOwogCi0gICAgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBt
X25hbWU7IH0KKyAgICBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSgpIGNvbnN0OwogICAgIGNvbnN0
IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QmIGNvbXBpbGVkUnVsZUxpc3QoKSBj
b25zdCB7IHJldHVybiBtX2NvbXBpbGVkUnVsZUxpc3QuZ2V0KCk7IH0KICAgICAKICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c1JlZ3VsYXJFeHByZXNzaW9uKGNvbnN0IFdURjo6U3RyaW5nJik7CiAK
IHByaXZhdGU6Ci0gICAgV1RGOjpTdHJpbmcgbV9uYW1lOwogICAgIFJlZjxXZWJLaXQ6OldlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0PiBtX2NvbXBpbGVkUnVsZUxpc3Q7CiAgICAgV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkRhdGEgbV9tYXBwZWRGaWxlOwogI2VuZGlmIC8vIEVOQUJMRShDT05URU5U
X0VYVEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
Q29udGVudFJ1bGVMaXN0U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcAppbmRleCBlZjljNDE5NDhkMTA1OWI2NDFmNmFlYjU2
YzUwOWIzMWZkNzdiNGFjLi4zYzc5YjQxOTJmMTlhYTFjMWMwYzZjNDFlMTE3YTY3ZDNkZWU5M2I3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVM
aXN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50
UnVsZUxpc3RTdG9yZS5jcHAKQEAgLTQwOCwxMSArNDA4LDEyIEBAIHN0YXRpYyBSZWY8QVBJOjpD
b250ZW50UnVsZUxpc3Q+IGNyZWF0ZUV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRp
ZmllciwKIAogICAgIC8vIENvbnRlbnQgZXh0ZW5zaW9ucyBhcmUgYWx3YXlzIGNvbXBpbGVkIHRv
IGZpbGVzLCBhbmQgYXQgdGhpcyBwb2ludCB0aGUgZmlsZQogICAgIC8vIGhhcyBiZWVuIGFscmVh
ZHkgbWFwcGVkLCB0aGVyZWZvcmUgdHJ5Q3JlYXRlU2hhcmVkTWVtb3J5KCkgY2Fubm90IGZhaWwu
Ci0gICAgQVNTRVJUKHNoYXJlZE1lbW9yeSk7CisgICAgUkVMRUFTRV9BU1NFUlQoc2hhcmVkTWVt
b3J5KTsKIAogICAgIGNvbnN0IHNpemVfdCBoZWFkZXJBbmRTb3VyY2VTaXplID0gQ29udGVudFJ1
bGVMaXN0RmlsZUhlYWRlclNpemUgKyBkYXRhLm1ldGFEYXRhLnNvdXJjZVNpemU7CiAgICAgYXV0
byBjb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEgPSBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0RGF0YSgKLSAgICAgICAgV1RGTW92ZShzaGFyZWRNZW1vcnkpLAorICAgICAgICBX
VEY6OlN0cmluZyhpZGVudGlmaWVyKSwKKyAgICAgICAgc2hhcmVkTWVtb3J5LnJlbGVhc2VOb25O
dWxsKCksCiAgICAgICAgIENvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCwKICAgICAg
ICAgaGVhZGVyQW5kU291cmNlU2l6ZSwKICAgICAgICAgZGF0YS5tZXRhRGF0YS5hY3Rpb25zU2l6
ZSwKQEAgLTQzMCw3ICs0MzEsNyBAQCBzdGF0aWMgUmVmPEFQSTo6Q29udGVudFJ1bGVMaXN0PiBj
cmVhdGVFeHRlbnNpb24oY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsCiAgICAgICAgIGRh
dGEubWV0YURhdGEuY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplCiAgICAgKTsKICAgICBh
dXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0ID0gV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKSk7Ci0g
ICAgcmV0dXJuIEFQSTo6Q29udGVudFJ1bGVMaXN0OjpjcmVhdGUoaWRlbnRpZmllciwgV1RGTW92
ZShjb21waWxlZENvbnRlbnRSdWxlTGlzdCksIFdURk1vdmUoZGF0YS5kYXRhKSk7CisgICAgcmV0
dXJuIEFQSTo6Q29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShjb21waWxlZENvbnRlbnRS
dWxlTGlzdCksIFdURk1vdmUoZGF0YS5kYXRhKSk7CiB9CiAKIHN0YXRpYyBXVEY6OlN0cmluZyBn
ZXRDb250ZW50UnVsZUxpc3RTb3VyY2VGcm9tTWFwcGVkRmlsZShjb25zdCBNYXBwZWREYXRhJiBt
YXBwZWREYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVXNlckNvbnRlbnRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLm1tCmluZGV4IGY3NDUyYzc0NjcwNDIzMzJl
ZDE4OGQ3MjM1MmRkODg5NmY4NDhiNmIuLmEwMDQwZjY0YzdjOTcyNWM3YWJiMzQ4OGMzNjNkM2Fl
Zjg4NDIyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VzZXJDb250ZW50Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIubW0KQEAgLTI4NSw2ICsyODUsMTMgQEAg
cHJpdmF0ZToKICNlbmRpZgogfQogCistICh2b2lkKV9hZGRDb250ZW50UnVsZUxpc3Q6KFdLQ29u
dGVudFJ1bGVMaXN0ICopY29udGVudFJ1bGVMaXN0IGV4dGVuc2lvbkJhc2VVUkw6KE5TVVJMICop
ZXh0ZW5zaW9uQmFzZVVSTAoreworI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisgICAg
X3VzZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5hZGRDb250ZW50UnVsZUxpc3QoKmNvbnRlbnRS
dWxlTGlzdC0+X2NvbnRlbnRSdWxlTGlzdCwgZXh0ZW5zaW9uQmFzZVVSTCk7CisjZW5kaWYKK30K
KwogLSAodm9pZClfcmVtb3ZlVXNlckNvbnRlbnRGaWx0ZXI6KE5TU3RyaW5nICopdXNlckNvbnRl
bnRGaWx0ZXJOYW1lCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJv
bGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJD
b250ZW50Q29udHJvbGxlclByaXZhdGUuaAppbmRleCBhMjUyZDA0MTY2NzRjNDgwNDYyYjFhOTEx
OTgwZjYyZjU5YjcwMmExLi42NzBiN2MwNDE0NzNmOWJjMDMwMzc3YzhhY2MyMzQyZWUxOWZiMTE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29u
dGVudENvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oCkBAIC00MSw2ICs0MSw3IEBA
CiAtICh2b2lkKV9hZGRVc2VyQ29udGVudEZpbHRlcjooX1dLVXNlckNvbnRlbnRGaWx0ZXIgKil1
c2VyQ29udGVudEZpbHRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkp
OwogLSAodm9pZClfcmVtb3ZlVXNlckNvbnRlbnRGaWx0ZXI6KE5TU3RyaW5nICopdXNlckNvbnRl
bnRGaWx0ZXJOYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAt
ICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29udGVudEZpbHRlcnMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMSksIGlvcyg5LjApKTsKKy0gKHZvaWQpX2FkZENvbnRlbnRSdWxlTGlzdDooV0tDb250
ZW50UnVsZUxpc3QgKiljb250ZW50UnVsZUxpc3QgZXh0ZW5zaW9uQmFzZVVSTDooTlNVUkwgKill
eHRlbnNpb25CYXNlVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNB
cnJheTxfV0tVc2VyU3R5bGVTaGVldCAqPiAqX3VzZXJTdHlsZVNoZWV0cyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIC0gKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0
OihfV0tVc2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTIpLCBpb3MoMTAuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggYjIyYmFhMmE0Nzk4ODU5
ZmMyODMyODZiYWM4MjU5MTE0ZjNmZThlMS4uNGEyMzJiMmE2MTdmZmEyZTM0ZjI3MDIwYmIwMjAx
ODY0Mjk2ZmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMzg4LDggKzEzODgsOCBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmNvbnRlbnRFeHRlbnNpb25SdWxlcyhVc2VyQ29udGVudENvbnRy
b2xsZXJJZGVudGlmaWVyCiAgICAgICAgIG1fd2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveGll
cy5hZGQod2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkpOwogICAgICAgICB3ZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eS0+YWRkTmV0d29ya1Byb2Nlc3MoKnRoaXMpOwogCi0gICAgICAg
IGF1dG8gcnVsZXMgPSBXVEY6Om1hcCh3ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS0+Y29u
dGVudEV4dGVuc2lvblJ1bGVzKCksIFtdKGF1dG8mJiBrZXlWYWx1ZSkgLT4gc3RkOjpwYWlyPFN0
cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPiB7Ci0gICAgICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3BhaXIoa2V5VmFsdWUudmFsdWUtPm5hbWUoKSwga2V5VmFsdWUudmFsdWUt
PmNvbXBpbGVkUnVsZUxpc3QoKS5kYXRhKCkpOworICAgICAgICBhdXRvIHJ1bGVzID0gV1RGOjpt
YXAod2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHktPmNvbnRlbnRFeHRlbnNpb25SdWxlcygp
LCBbXShhdXRvJiYga2V5VmFsdWUpIC0+IHN0ZDo6cGFpcjxXZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGEsIFVSTD4geworICAgICAgICAgICAgcmV0dXJuIHsga2V5VmFsdWUudmFsdWUuZmly
c3QtPmNvbXBpbGVkUnVsZUxpc3QoKS5kYXRhKCksIGtleVZhbHVlLnZhbHVlLnNlY29uZCB9Owog
ICAgICAgICB9KTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya0NvbnRlbnRSdWxlTGlz
dE1hbmFnZXI6OkFkZENvbnRlbnRSdWxlTGlzdHMgeyBpZGVudGlmaWVyLCBydWxlcyB9LCAwKTsK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3Bw
CmluZGV4IDNkMjE3YTMyNTJlYTdmZDc2OTM5MmFhYzk3ZWFkOTFjNGI2Zjc3NTQuLmVmMzI2Nzhm
ODk1Y2FjNGVhNzIxNDA0N2Q1OTE0MTA3MTVjYjJmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTE0MCwxMyArMTQwLDExIEBAIFVzZXJDb250ZW50Q29u
dHJvbGxlclBhcmFtZXRlcnMgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnBhcmFtZXRl
cnMoKSBjb25zCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+IFdlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5Ojpjb250ZW50UnVsZUxpc3REYXRhKCkgY29uc3QKK1ZlY3Rv
cjxzdGQ6OnBhaXI8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLCBVUkw+PiBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eTo6Y29udGVudFJ1bGVMaXN0RGF0YSgpIGNvbnN0CiB7Ci0g
ICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YT4+IGRhdGE7Ci0gICAgZGF0YS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fY29udGVudFJ1bGVM
aXN0cy5zaXplKCkpOwotICAgIGZvciAoY29uc3QgYXV0byYgY29udGVudFJ1bGVMaXN0IDogbV9j
b250ZW50UnVsZUxpc3RzLnZhbHVlcygpKQotICAgICAgICBkYXRhLnVuY2hlY2tlZEFwcGVuZChz
dGQ6Om1ha2VfcGFpcihjb250ZW50UnVsZUxpc3QtPm5hbWUoKSwgY29udGVudFJ1bGVMaXN0LT5j
b21waWxlZFJ1bGVMaXN0KCkuZGF0YSgpKSk7Ci0gICAgcmV0dXJuIGRhdGE7CisgICAgcmV0dXJu
IFdURjo6bWFwKG1fY29udGVudFJ1bGVMaXN0cywgW10oY29uc3QgYXV0byYga2V5VmFsdWUpIC0+
IHN0ZDo6cGFpcjxXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEsIFVSTD4geworICAgICAg
ICByZXR1cm4geyBrZXlWYWx1ZS52YWx1ZS5maXJzdC0+Y29tcGlsZWRSdWxlTGlzdCgpLmRhdGEo
KSwga2V5VmFsdWUudmFsdWUuc2Vjb25kIH07CisgICAgfSk7CiB9CiAjZW5kaWYKIApAQCAtMzYy
LDE3ICszNjAsMTcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6ZGlkUG9z
dE1lc3NhZ2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHIKIH0KIAogI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Ojph
ZGRDb250ZW50UnVsZUxpc3QoQVBJOjpDb250ZW50UnVsZUxpc3QmIGNvbnRlbnRSdWxlTGlzdCkK
K3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZENvbnRlbnRSdWxlTGlzdChB
UEk6OkNvbnRlbnRSdWxlTGlzdCYgY29udGVudFJ1bGVMaXN0LCBjb25zdCBXVEY6OlVSTCYgZXh0
ZW5zaW9uQmFzZVVSTCkKIHsKLSAgICBtX2NvbnRlbnRSdWxlTGlzdHMuc2V0KGNvbnRlbnRSdWxl
TGlzdC5uYW1lKCksICZjb250ZW50UnVsZUxpc3QpOworICAgIG1fY29udGVudFJ1bGVMaXN0cy5z
ZXQoY29udGVudFJ1bGVMaXN0Lm5hbWUoKSwgc3RkOjptYWtlX3BhaXIoUmVmIHsgY29udGVudFJ1
bGVMaXN0IH0sIGV4dGVuc2lvbkJhc2VVUkwpKTsKIAotICAgIGF1dG8gcGFpciA9IHN0ZDo6bWFr
ZV9wYWlyKGNvbnRlbnRSdWxlTGlzdC5uYW1lKCksIGNvbnRlbnRSdWxlTGlzdC5jb21waWxlZFJ1
bGVMaXN0KCkuZGF0YSgpKTsKKyAgICBhdXRvJiBkYXRhID0gY29udGVudFJ1bGVMaXN0LmNvbXBp
bGVkUnVsZUxpc3QoKS5kYXRhKCk7CiAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBtX3Byb2Nl
c3NlcykKLSAgICAgICAgcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI6OkFkZENvbnRlbnRSdWxlTGlzdHMoeyBwYWlyIH0pLCBpZGVudGlmaWVyKCkpOworICAg
ICAgICBwcm9jZXNzLnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6QWRk
Q29udGVudFJ1bGVMaXN0cyh7IHsgZGF0YSwgZXh0ZW5zaW9uQmFzZVVSTCB9IH0pLCBpZGVudGlm
aWVyKCkpOwogCiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogbV9uZXR3b3JrUHJvY2Vzc2VzKQot
ICAgICAgICBwcm9jZXNzLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5h
Z2VyOjpBZGRDb250ZW50UnVsZUxpc3RzIHsgaWRlbnRpZmllcigpLCB7IHBhaXIgfSB9LCAwKTsK
KyAgICAgICAgcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFu
YWdlcjo6QWRkQ29udGVudFJ1bGVMaXN0cyB7IGlkZW50aWZpZXIoKSwgeyB7IGRhdGEsIGV4dGVu
c2lvbkJhc2VVUkwgfSB9IH0sIDApOwogfQogCiB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5OjpyZW1vdmVDb250ZW50UnVsZUxpc3QoY29uc3QgU3RyaW5nJiBuYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKaW5kZXggYTRkOGQ3Y2Q4MDRlNjU2MGRhYmZk
ZTYxMTRmZjA2MjExYmFkNDdjMC4uZmVhOGQ1NzhjZmVmOTY1NTc0NzY0YWM2MjU0MDdmYzc2NWI2
NzVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oCkBAIC0zOCw2ICsz
OCw4IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVk
ZSA8d3RmL1VSTEhhc2guaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTEwMiwxMSArMTA0LDExIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFkZE5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmKTsKICAgICB2
b2lkIHJlbW92ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmKTsKIAotICAgIHZv
aWQgYWRkQ29udGVudFJ1bGVMaXN0KEFQSTo6Q29udGVudFJ1bGVMaXN0Jik7CisgICAgdm9pZCBh
ZGRDb250ZW50UnVsZUxpc3QoQVBJOjpDb250ZW50UnVsZUxpc3QmLCBjb25zdCBXVEY6OlVSTCYg
ZXh0ZW5zaW9uQmFzZVVSTCA9IHsgfSk7CiAgICAgdm9pZCByZW1vdmVDb250ZW50UnVsZUxpc3Qo
Y29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZW1vdmVBbGxDb250ZW50UnVsZUxpc3RzKCk7Ci0g
ICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6OkNvbnRlbnRSdWxlTGlzdD4+JiBj
b250ZW50RXh0ZW5zaW9uUnVsZXMoKSB7IHJldHVybiBtX2NvbnRlbnRSdWxlTGlzdHM7IH0KLSAg
ICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRh
Pj4gY29udGVudFJ1bGVMaXN0RGF0YSgpIGNvbnN0OworICAgIGNvbnN0IEhhc2hNYXA8U3RyaW5n
LCBzdGQ6OnBhaXI8UmVmPEFQSTo6Q29udGVudFJ1bGVMaXN0PiwgVVJMPj4mIGNvbnRlbnRFeHRl
bnNpb25SdWxlcygpIHsgcmV0dXJuIG1fY29udGVudFJ1bGVMaXN0czsgfQorICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLCBVUkw+PiBjb250ZW50UnVs
ZUxpc3REYXRhKCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIFVzZXJDb250ZW50Q29udHJvbGxlcklk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpAQCAt
MTMwLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQogICAgIFdlYWtIYXNoU2V0PE5ldHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nlc3Nl
czsKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQSTo6Q29udGVudFJ1bGVMaXN0Pj4gbV9j
b250ZW50UnVsZUxpc3RzOworICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8UmVmPEFQSTo6
Q29udGVudFJ1bGVMaXN0PiwgVVJMPj4gbV9jb250ZW50UnVsZUxpc3RzOwogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxMTgx
Y2E3ZDY1OGI0OTQ2NTNmZjgwYTYyMjA5NTUxNDlhMzM3ODg4Li4wMjhjOGQ4ZWYwNzE0YzgyZWI5
MDRjOTRlN2UyOTcxZDg1YmFlYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKQEAgLTE5ODMsNyArMTk4Myw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaXNhYmxlU2VydmljZVdvcmtlcnMoKQogfQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKLXN0YXRpYyBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50
UnVsZUxpc3REYXRhPj4gY29udGVudFJ1bGVMaXN0c0Zyb21JZGVudGlmaWVyKGNvbnN0IHN0ZDo6
b3B0aW9uYWw8VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcj4mIHVzZXJDb250ZW50Q29u
dHJvbGxlcklkZW50aWZpZXIpCitzdGF0aWMgVmVjdG9yPHN0ZDo6cGFpcjxXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGEsIFVSTD4+IGNvbnRlbnRSdWxlTGlzdHNGcm9tSWRlbnRpZmllcihj
b25zdCBzdGQ6Om9wdGlvbmFsPFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXI+JiB1c2Vy
Q29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyKQogewogICAgIGlmICghdXNlckNvbnRlbnRDb250
cm9sbGVySWRlbnRpZmllcikgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKaW5kZXggODJiMjkzNTdjZTA4Y2M0MDY0YzU2OTNj
MGViN2UwMTgyZmFiMjg3Yi4uNWMwYTFmYTM1MjdiZmMwZWMyNmY0NWJkZDQ5ZDkwZGQwMjdlNDQ5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKQEAgLTM4NSwxMiArMzg1LDE0
IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0TWVzc2Fn
ZUhhbmRsZXJJbnRlcm5hbChJbmplY3RlZEJ1CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5U
X0VYVEVOU0lPTlMpCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkQ29udGVudFJ1
bGVMaXN0cyhWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3REYXRhPj4mJiBjb250ZW50UnVsZUxpc3RzKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMoVmVjdG9yPHN0ZDo6cGFpcjxXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGEsIFVSTD4+JiYgY29udGVudFJ1bGVMaXN0cykKIHsKLSAgICBmb3IgKGF1
dG8mJiBjb250ZW50UnVsZUxpc3QgOiBjb250ZW50UnVsZUxpc3RzKSB7Ci0gICAgICAgIGF1dG8g
Y29tcGlsZWRDb250ZW50UnVsZUxpc3QgPSBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6Y3Jl
YXRlKFdURk1vdmUoY29udGVudFJ1bGVMaXN0LnNlY29uZCkpOworICAgIGZvciAoYXV0byYmIHBh
aXIgOiBjb250ZW50UnVsZUxpc3RzKSB7CisgICAgICAgIGF1dG8mJiBjb250ZW50UnVsZUxpc3Qg
PSBXVEZNb3ZlKHBhaXIuZmlyc3QpOworICAgICAgICBTdHJpbmcgaWRlbnRpZmllciA9IGNvbnRl
bnRSdWxlTGlzdC5pZGVudGlmaWVyOworICAgICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0ID0gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbnRlbnRS
dWxlTGlzdCkpOwogCi0gICAgICAgIG1fY29udGVudEV4dGVuc2lvbkJhY2tlbmQuYWRkQ29udGVu
dEV4dGVuc2lvbihjb250ZW50UnVsZUxpc3QuZmlyc3QsIFdURk1vdmUoY29tcGlsZWRDb250ZW50
UnVsZUxpc3QpKTsKKyAgICAgICAgbV9jb250ZW50RXh0ZW5zaW9uQmFja2VuZC5hZGRDb250ZW50
RXh0ZW5zaW9uKGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3QpLCBX
VEZNb3ZlKHBhaXIuc2Vjb25kKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyLmgKaW5kZXggMjBmZjg1MTViMTJiMTliMWZkZGI5MGFiNzg3ZjBhODExYzY0Yjc3Ni4uODQ2
MWJmYzUzZjhlZTgyMTY2NjA4NThiNDcyNGYyNzA2ZmE5MGM4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXIuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRVc2Vy
U3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4mKTsKICAgICB2
b2lkIGFkZFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPFdlYlNjcmlwdE1l
c3NhZ2VIYW5kbGVyRGF0YT4mKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAg
IHZvaWQgYWRkQ29udGVudFJ1bGVMaXN0cyhWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mJik7CisgICAgdm9pZCBhZGRDb250ZW50UnVsZUxp
c3RzKFZlY3RvcjxzdGQ6OnBhaXI8V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLCBVUkw+
PiYmKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXIubWVzc2FnZXMuaW4KaW5kZXggMmFiMjMyNGJiNDg1Nzg0MTEzMzI0YjIxMWFjZmU2MmM2
YjYyYzIxZS4uZWQ2Y2ZlNjhiODFlMDhkNzhmOWU2MzRkNmI0MTZkMTcxZDJkMjllNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCkBAIC00MSw3ICs0
MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlVzZXJDb250ZW50Q29udHJvbGxlciB7CiAgICAgUmVtb3Zl
QWxsVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycygpOwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhU
RU5TSU9OUykKLSAgICBBZGRDb250ZW50UnVsZUxpc3RzKFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5n
LCBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+IGNvbnRlbnRGaWx0ZXJz
KTsKKyAgICBBZGRDb250ZW50UnVsZUxpc3RzKFZlY3RvcjxzdGQ6OnBhaXI8V2ViS2l0OjpXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEsIFVSTD4+IGNvbnRlbnRGaWx0ZXJzKTsKICAgICBS
ZW1vdmVDb250ZW50UnVsZUxpc3QoU3RyaW5nIG5hbWUpOwogICAgIFJlbW92ZUFsbENvbnRlbnRS
dWxlTGlzdHMoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGUzZjRjZjMwNTk0ZjY3OWJhMjc1NWYyODUwODU3OTg0OWJhNmM1MjQu
LjE1YTQ1ZjljYWUyMjVlZjNmMjk5MmNlZGI1Nzc4MmE2OTE3NzZiOWMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0xMS0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIEltcGxlbWVudCBleHRlbnNpb24tcGF0aCB2YXJpYW50IG9mIHJlZGlyZWN0IGFjdGlv
biBpbiBXS0NvbnRlbnRSdWxlTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMzMzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6bWFrZUJhY2tlbmQpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tOgorICAgICAgICAoVEVTVF9G
KToKKwogMjAyMS0xMS0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEFsbG93IGFsbCByZWRpcmVjdCBzY2hlbWVzIHdoZW4gY29tcGlsaW5n
IGEgY29udGVudCBydWxlIGxpc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IDEzMTA2ZGUzMTJlOGYzM2E1
YTllNzNjNjkzMzZiMjYxZTVmYjVmMGMuLmJjNTQ4NGYzZjA2YzVhOGIxODYyMmFiZmVhNzgwMDVi
Y2I5ZjhmN2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIENvbnRlbnRFeHRl
bnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgbWFrZUJhY2tlbmQoY29uc3QgY2hhciog
anNvbikKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAgICAgYXV0byBleHRlbnNpb24gPSBJbk1l
bW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKGpzb24pOwogICAgIENvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgYmFja2VuZDsKLSAgICBiYWNrZW5k
LmFkZENvbnRlbnRFeHRlbnNpb24oInRlc3RGaWx0ZXIiLCBXVEZNb3ZlKGV4dGVuc2lvbikpOwor
ICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbigidGVzdEZpbHRlciIsIFdURk1vdmUoZXh0
ZW5zaW9uKSwgeyB9KTsKICAgICByZXR1cm4gYmFja2VuZDsKIH0KIApAQCAtODQ4LDggKzg0OCw4
IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgTXVsdGlwbGVFeHRlbnNpb25zKQogICAg
IGF1dG8gZXh0ZW5zaW9uMSA9IEluTWVtb3J5Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uOjpjcmVh
dGUoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJibG9ja19sb2FkXCJ9fV0iKTsKICAgICBhdXRvIGV4dGVuc2lvbjIgPSBJbk1l
bW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKCJbe1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwiYmxvY2stY29va2llc1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJibG9j
a19jb29raWVzXCJ9fV0iKTsKICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lv
bnNCYWNrZW5kIGJhY2tlbmQ7Ci0gICAgYmFja2VuZC5hZGRDb250ZW50RXh0ZW5zaW9uKCJ0ZXN0
RmlsdGVyMSIsIFdURk1vdmUoZXh0ZW5zaW9uMSkpOwotICAgIGJhY2tlbmQuYWRkQ29udGVudEV4
dGVuc2lvbigidGVzdEZpbHRlcjIiLCBXVEZNb3ZlKGV4dGVuc2lvbjIpKTsKKyAgICBiYWNrZW5k
LmFkZENvbnRlbnRFeHRlbnNpb24oInRlc3RGaWx0ZXIxIiwgV1RGTW92ZShleHRlbnNpb24xKSwg
eyB9KTsKKyAgICBiYWNrZW5kLmFkZENvbnRlbnRFeHRlbnNpb24oInRlc3RGaWx0ZXIyIiwgV1RG
TW92ZShleHRlbnNpb24yKSwgeyB9KTsKICAgICAKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBt
YWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZyIpLCB7IH0sIDIpOwogICAgIHRl
c3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3Jn
L2Jsb2NrX2xvYWQuaHRtbCIpLCB7IHZhcmlhbnRJbmRleDxDb250ZW50RXh0ZW5zaW9uczo6Qmxv
Y2tMb2FkQWN0aW9uPiB9LCAyKTsKQEAgLTg2Miw4ICs4NjIsOCBAQCBURVNUX0YoQ29udGVudEV4
dGVuc2lvblRlc3QsIE11bHRpcGxlRXh0ZW5zaW9ucykKICAgICBhdXRvIGlnbm9yZUV4dGVuc2lv
bjIgPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKCJbe1wiYWN0aW9u
XCI6e1widHlwZVwiOlwiYmxvY2stY29va2llc1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVy
XCI6XCJibG9ja19jb29raWVzXCJ9fSwiCiAgICAgICAgICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6
XCJpZ25vcmUtcHJldmlvdXMtcnVsZXNcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwi
aWdub3JlMlwifX1dIik7CiAgICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25z
QmFja2VuZCBiYWNrZW5kV2l0aElnbm9yZTsKLSAgICBiYWNrZW5kV2l0aElnbm9yZS5hZGRDb250
ZW50RXh0ZW5zaW9uKCJ0ZXN0RmlsdGVyMSIsIFdURk1vdmUoaWdub3JlRXh0ZW5zaW9uMSkpOwot
ICAgIGJhY2tlbmRXaXRoSWdub3JlLmFkZENvbnRlbnRFeHRlbnNpb24oInRlc3RGaWx0ZXIyIiwg
V1RGTW92ZShpZ25vcmVFeHRlbnNpb24yKSk7CisgICAgYmFja2VuZFdpdGhJZ25vcmUuYWRkQ29u
dGVudEV4dGVuc2lvbigidGVzdEZpbHRlcjEiLCBXVEZNb3ZlKGlnbm9yZUV4dGVuc2lvbjEpLCB7
IH0pOworICAgIGJhY2tlbmRXaXRoSWdub3JlLmFkZENvbnRlbnRFeHRlbnNpb24oInRlc3RGaWx0
ZXIyIiwgV1RGTW92ZShpZ25vcmVFeHRlbnNpb24yKSwgeyB9KTsKIAogICAgIHRlc3RSZXF1ZXN0
KGJhY2tlbmRXaXRoSWdub3JlLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9y
ZyIpLCB7IH0sIDIpOwogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmRXaXRoSWdub3JlLCBtYWluRG9j
dW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9ibG9ja19sb2FkL2lnbm9yZTEuaHRtbCIp
LCB7IH0sIDEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0KaW5kZXggYThlMmI5NGMz
ODExNGQyZDAyY2JlM2UxMmI0ZWYxNDExNzgzOTRmYy4uMGI4NWNlY2MxZTNkZDZjYTRiNmM4YWEx
ZmIyNTMxZmM3Njk3YTc5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCkBAIC0z
Miw2ICszMiw3IEBACiAjaW1wb3J0ICJUZXN0VVJMU2NoZW1lSGFuZGxlci5oIgogI2ltcG9ydCA8
V2ViS2l0L1dLQ29udGVudFJ1bGVMaXN0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZW50UnVs
ZUxpc3RTdG9yZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJv
bGxlclByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaD4KQEAgLTc1MSwzICs3NTIsNDAg
QEAgVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBOdWxsUGF0dGVyblNldCkKICAg
ICBFWFBFQ1RfRkFMU0UoZ2V0UmVkaXJlY3RSZXN1bHQoRGVsZWdhdGVBY3Rpb246OkFsbG93Tm9u
ZSkpOwogICAgIEVYUEVDVF9UUlVFKGdldFJlZGlyZWN0UmVzdWx0KERlbGVnYXRlQWN0aW9uOjpB
bGxvd1Rlc3RIb3N0KSk7CiB9CisKK1RFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwg
RXh0ZW5zaW9uUGF0aCkKK3sKKyAgICBhdXRvIGxpc3QgPSBjb21waWxlQ29udGVudFJ1bGVMaXN0
KFIiSlNPTigKKyAgICAgICAgWyB7CisgICAgICAgICAgICAiYWN0aW9uIjogeyAidHlwZSI6ICJy
ZWRpcmVjdCIsICJyZWRpcmVjdCI6IHsKKyAgICAgICAgICAgICAgICAiZXh0ZW5zaW9uLXBhdGgi
OiAiL3JlZGlyZWN0ZWQtdG8tZXh0ZW5zaW9uP25vLXF1ZXJ5I25vLWZyYWdtZW50IgorICAgICAg
ICAgICAgfSB9LAorICAgICAgICAgICAgInRyaWdnZXIiOiB7ICJ1cmwtZmlsdGVyIjogIm1haW4u
aHRtbCIgfQorICAgICAgICB9IF0KKyAgICApSlNPTiIpOworCisgICAgX19ibG9jayBSZXRhaW5Q
dHI8TlNVUkw+IHJlZGlyZWN0ZWRVUkw7CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbVGVz
dFVSTFNjaGVtZUhhbmRsZXIgbmV3XSk7CisgICAgaGFuZGxlci5nZXQoKS5zdGFydFVSTFNjaGVt
ZVRhc2tIYW5kbGVyID0gXihXS1dlYlZpZXcgKiwgaWQgPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykg
eworICAgICAgICByZWRpcmVjdGVkVVJMID0gdGFzay5yZXF1ZXN0LlVSTDsKKyAgICAgICAgcmVz
cG9uZCh0YXNrLCAiIik7CisgICAgfTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtU
ZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBeKFdLTmF2aWdhdGlvbkFj
dGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMsIHZvaWQgKF5kZWNpc2lv
bkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KikpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMuX2FjdGl2ZUNvbnRlbnRSdWxlTGlzdEFjdGlvblBh
dHRlcm5zID0gbmlsOworICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9u
UG9saWN5QWxsb3csIHByZWZlcmVuY2VzKTsKKyAgICB9OworCisgICAgYXV0byBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBfYWRkQ29udGVudFJ1bGVMaXN0Omxpc3Qu
Z2V0KCkgZXh0ZW5zaW9uQmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImV4dGVuc2lvbi1z
Y2hlbWU6Ly9leHRlbnNpb24taG9zdC8iXV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2No
ZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAInRlc3RzY2hlbWUiXTsKKyAg
ICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJM
U2NoZW1lOkAiZXh0ZW5zaW9uLXNjaGVtZSJdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICB3ZWJWaWV3LmdldCgpLm5hdmlnYXRpb25EZWxl
Z2F0ZSA9IGRlbGVnYXRlLmdldCgpOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3RzY2hlbWU6
Ly90ZXN0aG9zdC9tYWluLmh0bWwiXV1dOworICAgIHdoaWxlICghcmVkaXJlY3RlZFVSTCkKKyAg
ICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAgICBFWFBFQ1RfV0tf
U1RSRVEoW3JlZGlyZWN0ZWRVUkwgYWJzb2x1dGVTdHJpbmddLCAiZXh0ZW5zaW9uLXNjaGVtZTov
L2V4dGVuc2lvbi1ob3N0L3JlZGlyZWN0ZWQtdG8tZXh0ZW5zaW9uJTNGbm8tcXVlcnklMjNuby1m
cmFnbWVudCIpOworfQo=
</data>
<flag name="review"
          id="469890"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>