<?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>218257</bug_id>
          
          <creation_ts>2020-10-27 13:32:04 -0700</creation_ts>
          <short_desc>[webkitflaskpy] Create shared library for WebKit&apos;s flask tooling</short_desc>
          <delta_ts>2020-10-28 12:08:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1702049</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-27 13:32:04 -0700</bug_when>
    <thetext>resultsdbpy has some generic flask tooling that I would like to share between some future services.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702050</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-27 13:32:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/70736269&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702056</commentid>
    <comment_count>2</comment_count>
      <attachid>412459</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-27 13:38:08 -0700</bug_when>
    <thetext>Created attachment 412459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702384</commentid>
    <comment_count>3</comment_count>
      <attachid>412459</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-10-28 10:57:51 -0700</bug_when>
    <thetext>Comment on attachment 412459
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702414</commentid>
    <comment_count>4</comment_count>
      <attachid>412551</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-28 11:32:51 -0700</bug_when>
    <thetext>Created attachment 412551
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702435</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-28 12:08:31 -0700</bug_when>
    <thetext>Committed r269114: &lt;https://trac.webkit.org/changeset/269114&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412551.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412459</attachid>
            <date>2020-10-27 13:38:08 -0700</date>
            <delta_ts>2020-10-28 11:32:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218257-20201027133807.patch</filename>
            <type>text/plain</type>
            <size>39955</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTA2NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI3IEBACisyMDIwLTEwLTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Zmxhc2tweV0gQ3JlYXRlIHNoYXJlZCBsaWJyYXJ5IGZvciBX
ZWJLaXQncyBmbGFzayB0b29saW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyNTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzM2MjY5Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvX19pbml0X18ucHk6CisgICAgICAg
IChfbWF5YmVfYWRkX3dlYmtpdF9weXRob25fbGlicmFyeV9wYXRocyk6IEFkZCB3ZWJraXRjb3Jl
cHkgYW5kIHdlYmtpdGZsYXNrcHkuCisgICAgICAgIChfbWF5YmVfYWRkX3dlYmtpdGNvcmVweV9w
YXRoKTogUmVuYW1lZCBfbWF5YmVfYWRkX3dlYmtpdF9weXRob25fbGlicmFyeV9wYXRocy4KKyAg
ICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9mbGFza19z
dXBwb3J0L3V0aWwucHk6IE1vdmVkIHRvIHdlYmtpdGZsYXNrcHkvdXRpbC5weS4KKyAgICAgICAg
KiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9mbGFza19zdXBwb3J0
L3V0aWxfdW5pdHRlc3QucHk6IE1vdmVkIHRvIHdlYmtpdGZsYXNrcHkvdXRpbF91bml0dGVzdC5w
eS4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFza3B5OiBBZGRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFza3B5L01BTklGRVNULmluOiBBZGRl
ZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFza3B5L1JFQURNRS5tZDog
QWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS9zZXR1cC5w
eTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJr
aXRmbGFza3B5OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFz
a3B5L3dlYmtpdGZsYXNrcHkvX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvd2Via2l0Zmxhc2tweS91dGlsLnB5OiBNb3ZlZCBmcm9t
IHJlc3VsdHNkcHkvZmxhc2tfc3VwcG9ydC91dGlsLnB5LgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGZsYXNrcHkvd2Via2l0Zmxhc2tweS91dGlsX3VuaXR0ZXN0LnB5OiBNb3Zl
ZCBmcm9tIHJlc3VsdHNkcHkvZmxhc2tfc3VwcG9ydC91dGlsX3VuaXR0ZXN0LnB5LgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5OgorICAgICAgICAobWFpbik6IEFkZAor
CiAyMDIwLTEwLTI3ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVcGRhdGUgZ2VuZXJhdGVfeGNmaWxlbGlzdHMgdG8gYWNjb21tb2RhdGUgcGF0aHMgd2l0aCBz
eW1saW5rcwpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
cmVzdWx0c2RicHkvcmVzdWx0c2RicHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI2OTA1MikKKysr
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L19faW5pdF9f
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxNSArMjQsMTYgQEAgaW1wb3J0IG9zCiBpbXBvcnQg
c3lzCiAKIAotZGVmIF9tYXliZV9hZGRfd2Via2l0Y29yZXB5X3BhdGgoKToKLSAgICAjIEhvcGVm
dWxseSB3ZSdyZSBiZXNpZGUgd2Via2l0Y29yZXB5LCBvdGhlcndpc2Ugd2Via2l0Y29yZXB5IHdp
bGwgbmVlZCB0byBiZSBpbnN0YWxsZWQuCitkZWYgX21heWJlX2FkZF93ZWJraXRfcHl0aG9uX2xp
YnJhcnlfcGF0aHMoKToKKyAgICAjIEhvcGVmdWxseSB3ZSdyZSBiZXNpZGUgd2Via2l0KnB5IGxp
YnJhcmllcywgb3RoZXJ3aXNlIHdlYmtpdCpweSB3aWxsIG5lZWQgdG8gYmUgaW5zdGFsbGVkLgog
ICAgIGxpYnJhcmllc19wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5w
YXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkpKQotICAgIHdlYmtpdGNvcmVw
eV9wYXRoID0gb3MucGF0aC5qb2luKGxpYnJhcmllc19wYXRoLCAnd2Via2l0Y29yZXB5JykKLSAg
ICBpZiBvcy5wYXRoLmlzZGlyKHdlYmtpdGNvcmVweV9wYXRoKSBhbmQgb3MucGF0aC5pc2Rpcihv
cy5wYXRoLmpvaW4od2Via2l0Y29yZXB5X3BhdGgsICd3ZWJraXRjb3JlcHknKSkgYW5kIHdlYmtp
dGNvcmVweV9wYXRoIG5vdCBpbiBzeXMucGF0aDoKLSAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAs
IHdlYmtpdGNvcmVweV9wYXRoKQorICAgIGZvciBsaWJyYXJ5IGluIFsnd2Via2l0Y29yZXB5Jywg
J3dlYmtpdGZsYXNrcHknXToKKyAgICAgICAgbGlicmFyeV9wYXRoID0gb3MucGF0aC5qb2luKGxp
YnJhcmllc19wYXRoLCBsaWJyYXJ5KQorICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKGxpYnJhcnlf
cGF0aCkgYW5kIG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKGxpYnJhcnlfcGF0aCwgbGlicmFy
eSkpIGFuZCBsaWJyYXJ5X3BhdGggbm90IGluIHN5cy5wYXRoOgorICAgICAgICAgICAgc3lzLnBh
dGguaW5zZXJ0KDAsIGxpYnJhcnlfcGF0aCkKIAogCi1fbWF5YmVfYWRkX3dlYmtpdGNvcmVweV9w
YXRoKCkKK19tYXliZV9hZGRfd2Via2l0X3B5dGhvbl9saWJyYXJ5X3BhdGhzKCkKIAogdHJ5Ogog
ICAgIGZyb20gd2Via2l0Y29yZXB5LnZlcnNpb24gaW1wb3J0IFZlcnNpb24KSW5kZXg6IFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvYXJj
aGl2ZV9jb250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvYXJjaGl2ZV9jb250cm9sbGVyLnB5
CShyZXZpc2lvbiAyNjkwNTIpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2FyY2hpdmVfY29udHJvbGxlci5weQkod29ya2luZyBj
b3B5KQpAQCAtMjYsMTIgKzI2LDExIEBAIGltcG9ydCBqc29uCiBpbXBvcnQgdGltZQogCiBmcm9t
IGZsYXNrIGltcG9ydCBhYm9ydCwganNvbmlmeSwgcmVxdWVzdCwgc2VuZF9maWxlCi1mcm9tIHJl
c3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2Ri
cHkuY29udHJvbGxlci5jb21taXRfY29udHJvbGxlciBpbXBvcnQgdXVpZF9yYW5nZV9mb3JfcXVl
cnksIEhhc0NvbW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb25maWd1
cmF0aW9uIGltcG9ydCBDb25maWd1cmF0aW9uCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIu
Y29uZmlndXJhdGlvbl9jb250cm9sbGVyIGltcG9ydCBjb25maWd1cmF0aW9uX2Zvcl9xdWVyeQog
ZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLnN1aXRlX2NvbnRyb2xsZXIgaW1wb3J0IHRpbWVf
cmFuZ2VfZm9yX3F1ZXJ5Ci1mcm9tIHJlc3VsdHNkYnB5LmZsYXNrX3N1cHBvcnQudXRpbCBpbXBv
cnQgQXNzZXJ0UmVxdWVzdCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnksIGJvb2xl
YW5fcXVlcnkKK2Zyb20gd2Via2l0Zmxhc2tweS51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBx
dWVyeV9hc19rd2FyZ3MsIGJvb2xlYW5fcXVlcnkKIAogCiBjbGFzcyBBcmNoaXZlQ29udHJvbGxl
cihIYXNDb21taXRDb250ZXh0KToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY2lfY29udHJvbGxlci5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250
cm9sbGVyL2NpX2NvbnRyb2xsZXIucHkJKHJldmlzaW9uIDI2OTA1MikKKysrIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY2lfY29udHJv
bGxlci5weQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQCBmcm9tIHJlc3VsdHNkYnB5
LmNvbnRyb2xsZXIuY29tbWl0X2NvbnRyCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29u
ZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5jb250cm9s
bGVyLmNvbmZpZ3VyYXRpb25fY29udHJvbGxlciBpbXBvcnQgY29uZmlndXJhdGlvbl9mb3JfcXVl
cnkKIGZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5zdWl0ZV9jb250cm9sbGVyIGltcG9ydCB0
aW1lX3JhbmdlX2Zvcl9xdWVyeQotZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBwb3J0LnV0aWwg
aW1wb3J0IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5LCBi
b29sZWFuX3F1ZXJ5Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0UmVxdWVz
dCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnksIGJvb2xlYW5fcXVlcnkKIAogCiBj
bGFzcyBDSUNvbnRyb2xsZXIoSGFzQ29tbWl0Q29udGV4dCk6CkluZGV4OiBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdC5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9jb250cm9sbGVyL2NvbW1pdC5weQkocmV2aXNpb24gMjY5MDUyKQorKysgVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXQu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBy
ZQogCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJvbSByZXN1bHRzZGJweS5mbGFz
a19zdXBwb3J0LnV0aWwgaW1wb3J0IEZsYXNrSlNPTkVuY29kZXIKK2Zyb20gd2Via2l0Zmxhc2tw
eS51dGlsIGltcG9ydCBGbGFza0pTT05FbmNvZGVyCiAKIAogY2xhc3MgQ29tbWl0KG9iamVjdCk6
CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9j
b250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0X2Nv
bnRyb2xsZXIucHkJKHJldmlzaW9uIDI2OTA1MikKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXIucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDkgQEAgaW1wb3J0IGpzb24KIAogZnJvbSBjb2xs
ZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKIGZyb20gZmxhc2sgaW1wb3J0IGFib3J0LCBqc29u
aWZ5LCByZXF1ZXN0Ci1mcm9tIHJlc3VsdHNkYnB5LmZsYXNrX3N1cHBvcnQudXRpbCBpbXBvcnQg
QXNzZXJ0UmVxdWVzdCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnkKIGZyb20gcmVz
dWx0c2RicHkubW9kZWwucmVwb3NpdG9yeSBpbXBvcnQgU0NNRXhjZXB0aW9uCiBmcm9tIHJlc3Vs
dHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKK2Zyb20gd2Via2l0Zmxhc2tw
eS51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVyeV9hc19rd2FyZ3MsIGxpbWl0X2Zvcl9x
dWVyeQogCiAKIGRlZiBfZmluZF9jb21wYXJpc29uKGNvbW1pdF9jb250ZXh0LCByZXBvc2l0b3J5
X2lkLCBicmFuY2gsIGlkLCB1dWlkLCB0aW1lc3RhbXAsIHByaW9yaXR5PW1pbik6CkluZGV4OiBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVy
L2NvbmZpZ3VyYXRpb24ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
cmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb25maWd1cmF0aW9uLnB5CShyZXZp
c2lvbiAyNjkwNTIpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS9jb250cm9sbGVyL2NvbmZpZ3VyYXRpb24ucHkJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDcgKzIyLDcgQEAKIAogaW1wb3J0IGpzb24KIAotZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBw
b3J0LnV0aWwgaW1wb3J0IEZsYXNrSlNPTkVuY29kZXIKK2Zyb20gd2Via2l0Zmxhc2tweS51dGls
IGltcG9ydCBGbGFza0pTT05FbmNvZGVyCiAKIAogY2xhc3MgQ29uZmlndXJhdGlvbihvYmplY3Qp
OgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
Y29udHJvbGxlci9jb25maWd1cmF0aW9uX2NvbnRyb2xsZXIucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9j
b25maWd1cmF0aW9uX2NvbnRyb2xsZXIucHkJKHJldmlzaW9uIDI2OTA1MikKKysrIFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29uZmln
dXJhdGlvbl9jb250cm9sbGVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCw4IEBACiAj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWZyb20gcmVzdWx0c2RicHku
Zmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBib29sZWFuX3F1ZXJ5CiBmcm9tIHJlc3VsdHNkYnB5
LmNvbnRyb2xsZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgorZnJvbSB3ZWJr
aXRmbGFza3B5LnV0aWwgaW1wb3J0IGJvb2xlYW5fcXVlcnkKIAogCiBkZWYgY29uZmlndXJhdGlv
bl9mb3JfcXVlcnkoKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvZmFpbHVyZV9jb250cm9sbGVyLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRy
b2xsZXIvZmFpbHVyZV9jb250cm9sbGVyLnB5CShyZXZpc2lvbiAyNjkwNTIpCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2ZhaWx1
cmVfY29udHJvbGxlci5weQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQCBmcm9tIHJl
c3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0X2NvbnRyCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRy
b2xsZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJw
eS5jb250cm9sbGVyLmNvbmZpZ3VyYXRpb25fY29udHJvbGxlciBpbXBvcnQgY29uZmlndXJhdGlv
bl9mb3JfcXVlcnkKIGZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5zdWl0ZV9jb250cm9sbGVy
IGltcG9ydCB0aW1lX3JhbmdlX2Zvcl9xdWVyeQotZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBw
b3J0LnV0aWwgaW1wb3J0IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9y
X3F1ZXJ5LCBib29sZWFuX3F1ZXJ5Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNz
ZXJ0UmVxdWVzdCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnksIGJvb2xlYW5fcXVl
cnkKIAogCiBjbGFzcyBGYWlsdXJlQ29udHJvbGxlcihIYXNDb21taXRDb250ZXh0KToKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xs
ZXIvc3VpdGVfY29udHJvbGxlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL3N1aXRlX2NvbnRyb2xsZXIu
cHkJKHJldmlzaW9uIDI2OTA1MikKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvc3VpdGVfY29udHJvbGxlci5weQkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNyBAQCBmcm9tIGZsYXNrIGltcG9ydCBhYm9ydCwganNvbmlmeSwg
cmVxdWVzCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0X2NvbnRyb2xsZXIgaW1w
b3J0IHV1aWRfcmFuZ2VfZm9yX3F1ZXJ5LCBIYXNDb21taXRDb250ZXh0CiBmcm9tIHJlc3VsdHNk
YnB5LmNvbnRyb2xsZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSBy
ZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbmZpZ3VyYXRpb25fY29udHJvbGxlciBpbXBvcnQgY29u
ZmlndXJhdGlvbl9mb3JfcXVlcnkKLWZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC51dGls
IGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVyeV9hc19rd2FyZ3MsIGxpbWl0X2Zvcl9xdWVyeSwg
Ym9vbGVhbl9xdWVyeQorZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEFzc2VydFJlcXVl
c3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5LCBib29sZWFuX3F1ZXJ5CiAKIAog
ZGVmIHRpbWVfcmFuZ2VfZm9yX3F1ZXJ5KCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL3Rlc3RfY29udHJvbGxlci5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9jb250cm9sbGVyL3Rlc3RfY29udHJvbGxlci5weQkocmV2aXNpb24gMjY5MDUyKQorKysg
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxl
ci90ZXN0X2NvbnRyb2xsZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAgZnJv
bSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdF9jb250cgogZnJvbSByZXN1bHRzZGJweS5j
b250cm9sbGVyLmNvbmZpZ3VyYXRpb24gaW1wb3J0IENvbmZpZ3VyYXRpb24KIGZyb20gcmVzdWx0
c2RicHkuY29udHJvbGxlci5jb25maWd1cmF0aW9uX2NvbnRyb2xsZXIgaW1wb3J0IGNvbmZpZ3Vy
YXRpb25fZm9yX3F1ZXJ5CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuc3VpdGVfY29udHJv
bGxlciBpbXBvcnQgdGltZV9yYW5nZV9mb3JfcXVlcnkKLWZyb20gcmVzdWx0c2RicHkuZmxhc2tf
c3VwcG9ydC51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVyeV9hc19rd2FyZ3MsIGxpbWl0
X2Zvcl9xdWVyeSwgYm9vbGVhbl9xdWVyeQorZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0
IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5LCBib29sZWFu
X3F1ZXJ5CiAKIAogY2xhc3MgVGVzdENvbnRyb2xsZXIoSGFzQ29tbWl0Q29udGV4dCk6CkluZGV4
OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9s
bGVyL3VwbG9hZF9jb250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xs
ZXIucHkJKHJldmlzaW9uIDI2OTA1MikKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXIucHkJKHdvcmtp
bmcgY29weSkKQEAgLTI1LDExICsyNSwxMSBAQCBpbXBvcnQgdGltZQogCiBmcm9tIGNvbGxlY3Rp
b25zIGltcG9ydCBkZWZhdWx0ZGljdAogZnJvbSBmbGFzayBpbXBvcnQgYWJvcnQsIGpzb25pZnks
IHJlcXVlc3QKLWZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBBc3Nl
cnRSZXF1ZXN0LCBxdWVyeV9hc19rd2FyZ3MsIGxpbWl0X2Zvcl9xdWVyeSwgYm9vbGVhbl9xdWVy
eQogZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0CiBmcm9t
IHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0X2NvbnRyb2xsZXIgaW1wb3J0IHV1aWRfcmFu
Z2VfZm9yX3F1ZXJ5LCBIYXNDb21taXRDb250ZXh0CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xs
ZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5j
b250cm9sbGVyLmNvbmZpZ3VyYXRpb25fY29udHJvbGxlciBpbXBvcnQgY29uZmlndXJhdGlvbl9m
b3JfcXVlcnkKK2Zyb20gd2Via2l0Zmxhc2tweS51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBx
dWVyeV9hc19rd2FyZ3MsIGxpbWl0X2Zvcl9xdWVyeSwgYm9vbGVhbl9xdWVyeQogCiAKIGNsYXNz
IFVwbG9hZENvbnRyb2xsZXIoSGFzQ29tbWl0Q29udGV4dCk6CkluZGV4OiBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9mbGFza19zdXBwb3J0L3V0aWwucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvZmxhc2tfc3VwcG9ydC91dGlsLnB5CShyZXZpc2lvbiAyNjkwNTIpCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9mbGFza19zdXBwb3J0L3V0
aWwucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMzEgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgIkFTIElT
IiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBqc29uCi1mcm9tIGZsYXNrIGltcG9ydCBhYm9y
dCwgcmVxdWVzdAotCi0KLWNsYXNzIEZsYXNrSlNPTkVuY29kZXIoanNvbi5KU09ORW5jb2Rlcik6
Ci0gICAgIyBGbGFzaydzIGpzb25pZnkgb25seSBhY2NlcHRzIGEgZGljdGlvbmFyeSBhbmQgZG9l
cyBub3QgYWNjZXB0IGEgSlNPTiBlbmNvZGVyLiBXaGVuIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQg
SlNPTgotICAgICMgZW5jb2RlciwgZW5jb2Rlci5kZWZhdWx0KC4uLikgd2lsbCByZXR1cm4gYSBk
aWN0aW9uYXJ5IHRvIGJlIHNlcmlhbGl6ZWQuIEhvd2V2ZXIsIHRoZSBkZWZhdWx0IGVuY29kZXIg
d2lsbCByYWlzZQotICAgICMgYW4gZXhjZXB0aW9uIGlmIGRlZmF1bHQoLi4uKSBpcyBjYWxsZWQg
b24gcHJpbWF0aXZlIEpTT04gdHlwZXMuIEltcGxlbWVudCBhIHZlcnNpb24gb2YgdGhlIGRlZmF1
bHQgZW5jb2RlciB3aGljaAotICAgICMgcGFzc2VzIHByaW1hdGl2ZSBKU09OIHR5cGVzIGJhY2sg
dG8gdGhlIGNhbGxlci4KLSAgICBkZWYgZGVmYXVsdChzZWxmLCBvYmopOgotICAgICAgICBpZiBp
c2luc3RhbmNlKG9iaiwgZGljdCk6Ci0gICAgICAgICAgICByZXR1cm4ge2tleTogc2VsZi5kZWZh
dWx0KHZhbHVlKSBmb3Iga2V5LCB2YWx1ZSBpbiBvYmouaXRlbXMoKX0KLSAgICAgICAgaWYgaXNp
bnN0YW5jZShvYmosIGxpc3QpOgotICAgICAgICAgICAgcmV0dXJuIFtzZWxmLmRlZmF1bHQodmFs
dWUpIGZvciB2YWx1ZSBpbiBvYmpdCi0gICAgICAgIHJldHVybiBvYmoKLQotCi1jbGFzcyBBc3Nl
cnRSZXF1ZXN0KG9iamVjdCk6Ci0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGlzX3R5cGUoY2xz
LCBzdXBwb3J0ZWRfcmVxdWVzdHM9Tm9uZSk6Ci0gICAgICAgIGlmIHN1cHBvcnRlZF9yZXF1ZXN0
cyBpcyBOb25lOgotICAgICAgICAgICAgc3VwcG9ydGVkX3JlcXVlc3RzID0gWydHRVQnXQotICAg
ICAgICBpZiBub3Qgc3VwcG9ydGVkX3JlcXVlc3RzOgotICAgICAgICAgICAgYWJvcnQoNTAwLCBk
ZXNjcmlwdGlvbj0nRW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBhbnkgcmVxdWVzdHMnKQotICAg
ICAgICBpZiByZXF1ZXN0Lm1ldGhvZCBub3QgaW4gc3VwcG9ydGVkX3JlcXVlc3RzOgotICAgICAg
ICAgICAgYWJvcnQoNDA1LCBkZXNjcmlwdGlvbj0nRW5kcG9pbnQgb25seSBzdXBwb3J0cyB7fSBy
ZXF1ZXN0cycuZm9ybWF0KAotICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9yZXF1ZXN0c1swXSBp
ZiBsZW4oc3VwcG9ydGVkX3JlcXVlc3RzKSA9PSAxIGVsc2UgJywgJy5qb2luKHN1cHBvcnRlZF9y
ZXF1ZXN0c1s6LTFdKSArICcgYW5kICcgKyBzdXBwb3J0ZWRfcmVxdWVzdHNbLTFdLAotICAgICAg
ICAgICAgKSkKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBub19xdWVyeShjbHMpOgotICAg
ICAgICBpZiByZXF1ZXN0LnF1ZXJ5X3N0cmluZzoKLSAgICAgICAgICAgIGFib3J0KDQwMCwgZGVz
Y3JpcHRpb249J1F1ZXJpZXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGVuZHBvaW50JykKLQotICAg
IEBjbGFzc21ldGhvZAotICAgIGRlZiBxdWVyeV9rd2FyZ3NfZW1wdHkoY2xzLCAqKmt3YXJncyk6
Ci0gICAgICAgIGZvciBrZXksIHZhbHVlIGluIGt3YXJncy5pdGVtcygpOgotICAgICAgICAgICAg
aWYgdmFsdWU6Ci0gICAgICAgICAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlwdGlvbj1mIid7a2V5
fScgbm90IHN1cHBvcnRlZCBpbiBxdWVyaWVzIGJ5IHRoaXMgZW5kcG9pbnQiKQotCi0KLWRlZiBx
dWVyeV9hc19rd2FyZ3MoKToKLSAgICBkZWYgZGVjb3JhdG9yKG1ldGhvZCk6Ci0gICAgICAgIGRl
ZiByZWFsX21ldGhvZCh2YWwsIG1ldGhvZD1tZXRob2QsICoqa3dhcmdzKToKLSAgICAgICAgICAg
IGZvciBrZXksIHZhbHVlIGluIHJlcXVlc3QuYXJncy50b19kaWN0KGZsYXQ9RmFsc2UpLml0ZW1z
KCk6Ci0gICAgICAgICAgICAgICAgaWYga2V5IGluIGt3YXJnczoKLSAgICAgICAgICAgICAgICAg
ICAgYWJvcnQoNDAwLCBkZXNjcmlwdGlvbj1mJ3trZXl9IGlzIG5vdCBhIHZhbGlkIHF1ZXJ5IHBh
cmFtZXRlciBvbiB0aGlzIGVuZHBvaW50JykKLSAgICAgICAgICAgICAgICBrd2FyZ3Nba2V5XSA9
IHR1cGxlKHZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIG1ldGhvZCh2YWwsICoqa3dhcmdzKQot
Ci0gICAgICAgIHJlYWxfbWV0aG9kLl9fbmFtZV9fID0gbWV0aG9kLl9fbmFtZV9fCi0gICAgICAg
IHJldHVybiByZWFsX21ldGhvZAotICAgIHJldHVybiBkZWNvcmF0b3IKLQotCi1kZWYgcXVlcnlf
YXNfc3RyaW5nKCk6Ci0gICAgcXVlcnkgPSAnPycKLSAgICBmb3Iga2V5LCB2YWx1ZXMgaW4gcmVx
dWVzdC5hcmdzLnRvX2RpY3QoZmxhdD1GYWxzZSkuaXRlbXMoKToKLSAgICAgICAgZm9yIHZhbHVl
IGluIHZhbHVlczoKLSAgICAgICAgICAgIHF1ZXJ5ICs9IGYne2tleX09e3ZhbHVlfSYnCi0gICAg
cmV0dXJuIHF1ZXJ5WzotMV0KLQotCi1kZWYgYm9vbGVhbl9xdWVyeSgqYXJncyk6Ci0KLSAgICBk
ZWYgZnVuYyhzdHJpbmcpOgotICAgICAgICBpZiBzdHJpbmcubG93ZXIoKSBpbiBbJ3RydWUnLCAn
eWVzJ106Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICByZXR1cm4gYm9vbChpbnQoc3RyaW5nKSkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIHJldHVybiBbZnVuYyhhcmcpIGZvciBhcmcg
aW4gYXJnc10KLQotCi1kZWYgbGltaXRfZm9yX3F1ZXJ5KGRlZmF1bHRfbGltaXQ9MTAwKToKLSAg
ICBkZWYgZGVjb3JhdG9yKG1ldGhvZCk6Ci0gICAgICAgIGRlZiByZWFsX21ldGhvZChzZWxmPU5v
bmUsIG1ldGhvZD1tZXRob2QsIGxpbWl0PU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgICAgIGxp
bWl0X3RvX3VzZSA9IGRlZmF1bHRfbGltaXQKLSAgICAgICAgICAgIGlmIGxpbWl0OgotICAgICAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgbGltaXRfdG9fdXNlID0gaW50KGxp
bWl0Wy0xXSkKLSAgICAgICAgICAgICAgICAgICAgaWYgbGltaXRfdG9fdXNlIDw9IDA6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKLSAgICAgICAgICAgICAgICBl
eGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlw
dGlvbj0nTGltaXQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXInKQotICAgICAgICAgICAgaWYg
c2VsZjoKLSAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kKHNlbGY9c2VsZiwgbGltaXQ9bGlt
aXRfdG9fdXNlLCAqKmt3YXJncykKLSAgICAgICAgICAgIHJldHVybiBtZXRob2QobGltaXQ9bGlt
aXRfdG9fdXNlLCAqKmt3YXJncykKLQotICAgICAgICByZWFsX21ldGhvZC5fX25hbWVfXyA9IG1l
dGhvZC5fX25hbWVfXwotICAgICAgICByZXR1cm4gcmVhbF9tZXRob2QKLSAgICByZXR1cm4gZGVj
b3JhdG9yCi0KLQotZGVmIGNhY2hlX2Zvcihob3Vycz0xMik6Ci0gICAgZGVmIGRlY29yYXRvciht
ZXRob2QpOgotICAgICAgICBkZWYgcmVhbF9tZXRob2Qoc2VsZj1Ob25lLCBtZXRob2Q9bWV0aG9k
LCAqKmt3YXJncyk6Ci0gICAgICAgICAgICBpZiBzZWxmOgotICAgICAgICAgICAgICAgIHJlc3Bv
bnNlID0gbWV0aG9kKHNlbGY9c2VsZiwgKiprd2FyZ3MpCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIHJlc3BvbnNlID0gbWV0aG9kKCoqa3dhcmdzKQotICAgICAgICAgICAgcmVz
cG9uc2UuaGVhZGVycy5hZGQoJ0NhY2hlLUNvbnRyb2wnLCBmJ3B1YmxpYyxtYXgtYWdlPXtob3Vy
cyAqIDYwICogNjB9JykKLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgICAgIHJl
YWxfbWV0aG9kLl9fbmFtZV9fID0gbWV0aG9kLl9fbmFtZV9fCi0gICAgICAgIHJldHVybiByZWFs
X21ldGhvZAotICAgIHJldHVybiBkZWNvcmF0b3IKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2ZsYXNrX3N1cHBvcnQvdXRpbF91bml0dGVzdC5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS9mbGFza19zdXBwb3J0L3V0aWxfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI2OTA1MikK
KysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2ZsYXNr
X3N1cHBvcnQvdXRpbF91bml0dGVzdC5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDUwICswLDAgQEAK
LSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0j
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCB1bml0dGVzdAot
Ci1mcm9tIHdlcmt6ZXVnLmV4Y2VwdGlvbnMgaW1wb3J0IEJhZFJlcXVlc3QKLWZyb20gcmVzdWx0
c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBib29sZWFuX3F1ZXJ5LCBsaW1pdF9mb3Jf
cXVlcnkKLQotCi1jbGFzcyBVdGlsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYg
dGVzdF9ib29sZWFuX3F1ZXJ5KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFRydWUoYWxsKGJv
b2xlYW5fcXVlcnkoJ1RydWUnLCAndHJ1ZScpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFs
bChib29sZWFuX3F1ZXJ5KCdZZXMnLCAneWVzJykpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
YWxsKGJvb2xlYW5fcXVlcnkoJzEnLCAnMTAwJykpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoYW55KGJvb2xlYW5fcXVlcnkoJ0ZhbHNlJywgJ2ZhbHNlJykpKQotICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGFueShib29sZWFuX3F1ZXJ5KCdObycsICdubycpKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShhbnkoYm9vbGVhbl9xdWVyeSgnMCcsICdhbnkgc3RyaW5nJykpKQotCi0gICAg
ZGVmIHRlc3RfbGltaXRfZGVjb3JhdG9yKHNlbGYpOgotICAgICAgICBAbGltaXRfZm9yX3F1ZXJ5
KCkKLSAgICAgICAgZGVmIGZ1bmMobGltaXQ9Tm9uZSk6Ci0gICAgICAgICAgICByZXR1cm4gbGlt
aXQKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoKSwgMTAwKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZ1bmMobGltaXQ9WycxMCddKSwgMTApCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZnVuYyhsaW1pdD1bJzEwJywgJzEnXSksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKEJhZFJlcXVlc3QsIGZ1bmMsIGxpbWl0PVsnc3RyaW5nJ10pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKEJhZFJlcXVlc3QsIGZ1bmMsIGxpbWl0PVsnMCddKQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhCYWRSZXF1ZXN0LCBmdW5jLCBsaW1pdD1bJy0xJ10pCkluZGV4OiBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2FyY2hpdmVfdmll
dy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS92aWV3L2FyY2hpdmVfdmlldy5weQkocmV2aXNpb24gMjY5MDUyKQorKysgVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9hcmNoaXZl
X3ZpZXcucHkJKHdvcmtpbmcgY29weSkKQEAgLTIwLDE0ICsyMCwxMiBAQAogIyBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQganNvbgotCiBmcm9tIGZsYXNrIGlt
cG9ydCBhYm9ydCwganNvbmlmeSwgcmVxdWVzdCwgUmVzcG9uc2UKIGZyb20gcmVzdWx0c2RicHku
Y29udHJvbGxlci5jb21taXRfY29udHJvbGxlciBpbXBvcnQgdXVpZF9yYW5nZV9mb3JfcXVlcnks
IEhhc0NvbW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb25maWd1cmF0
aW9uX2NvbnRyb2xsZXIgaW1wb3J0IGNvbmZpZ3VyYXRpb25fZm9yX3F1ZXJ5CiBmcm9tIHJlc3Vs
dHNkYnB5LmNvbnRyb2xsZXIuc3VpdGVfY29udHJvbGxlciBpbXBvcnQgdGltZV9yYW5nZV9mb3Jf
cXVlcnkKLWZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBBc3NlcnRS
ZXF1ZXN0LCBib29sZWFuX3F1ZXJ5LCBjYWNoZV9mb3IsIGxpbWl0X2Zvcl9xdWVyeSwgcXVlcnlf
YXNfa3dhcmdzLCBxdWVyeV9hc19zdHJpbmcKIGZyb20gcmVzdWx0c2RicHkudmlldy5zaXRlX21l
bnUgaW1wb3J0IFNpdGVNZW51Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0
UmVxdWVzdCwgYm9vbGVhbl9xdWVyeSwgY2FjaGVfZm9yLCBsaW1pdF9mb3JfcXVlcnksIHF1ZXJ5
X2FzX2t3YXJncywgcXVlcnlfYXNfc3RyaW5nCiAKIAogY2xhc3MgQXJjaGl2ZVZpZXcoSGFzQ29t
bWl0Q29udGV4dCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS92aWV3L2NpX3ZpZXcucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9jaV92aWV3LnB5CShyZXZpc2lv
biAyNjkwNTIpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS92aWV3L2NpX3ZpZXcucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDkgKzIxLDcgQEAKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAogZnJvbSBmbGFzayBpbXBvcnQgYWJvcnQsIHJlZGlyZWN0LCByZXF1ZXN0
Ci1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKLWZyb20g
cmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVy
eV9hc19rd2FyZ3MKLWZyb20gcmVzdWx0c2RicHkudmlldy5zaXRlX21lbnUgaW1wb3J0IFNpdGVN
ZW51Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgcXVlcnlfYXNfa3dhcmdzCiAKIAog
Y2xhc3MgQ0lWaWV3KG9iamVjdCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2NvbW1pdF92aWV3LnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvY29tbWl0
X3ZpZXcucHkJKHJldmlzaW9uIDI2OTA1MikKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jl
c3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvY29tbWl0X3ZpZXcucHkJKHdvcmtpbmcgY29weSkK
QEAgLTIyLDggKzIyLDggQEAKIAogZnJvbSBmbGFzayBpbXBvcnQgYWJvcnQsIHJlZGlyZWN0LCBy
ZXF1ZXN0CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQK
LWZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0
LCBxdWVyeV9hc19rd2FyZ3MKIGZyb20gcmVzdWx0c2RicHkudmlldy5zaXRlX21lbnUgaW1wb3J0
IFNpdGVNZW51Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0UmVxdWVzdCwg
cXVlcnlfYXNfa3dhcmdzCiAKIAogY2xhc3MgQ29tbWl0VmlldyhvYmplY3QpOgpJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdWl0ZV92
aWV3LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L3ZpZXcvc3VpdGVfdmlldy5weQkocmV2aXNpb24gMjY5MDUyKQorKysgVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdWl0ZV92
aWV3LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4IEBAIGZyb20gZmxhc2sgaW1wb3J0
IGFib3J0CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0X2NvbnRyb2xsZXIgaW1w
b3J0IHV1aWRfcmFuZ2VfZm9yX3F1ZXJ5LCBIYXNDb21taXRDb250ZXh0CiBmcm9tIHJlc3VsdHNk
YnB5LmNvbnRyb2xsZXIuY29uZmlndXJhdGlvbl9jb250cm9sbGVyIGltcG9ydCBjb25maWd1cmF0
aW9uX2Zvcl9xdWVyeQogZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLnN1aXRlX2NvbnRyb2xs
ZXIgaW1wb3J0IHRpbWVfcmFuZ2VfZm9yX3F1ZXJ5Ci1mcm9tIHJlc3VsdHNkYnB5LmZsYXNrX3N1
cHBvcnQudXRpbCBpbXBvcnQgQXNzZXJ0UmVxdWVzdCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9m
b3JfcXVlcnksIGJvb2xlYW5fcXVlcnkKIGZyb20gcmVzdWx0c2RicHkudmlldy5zaXRlX21lbnUg
aW1wb3J0IFNpdGVNZW51Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0UmVx
dWVzdCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnksIGJvb2xlYW5fcXVlcnkKIAog
CiBjbGFzcyBTdWl0ZVZpZXcoSGFzQ29tbWl0Q29udGV4dCk6CkluZGV4OiBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3ZpZXdfcm91dGVzLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L3ZpZXcvdmlld19yb3V0ZXMucHkJKHJldmlzaW9uIDI2OTA1MikKKysrIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdmlld19yb3V0ZXMucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAgaW1wb3J0IHRpbWUKIAogZnJvbSBmbGFz
ayBpbXBvcnQgYWJvcnQsIGpzb25pZnksIHNlbmRfZnJvbV9kaXJlY3RvcnksIHJlZGlyZWN0LCBS
ZXNwb25zZQogZnJvbSBqaW5qYTIgaW1wb3J0IEVudmlyb25tZW50LCBQYWNrYWdlTG9hZGVyLCBz
ZWxlY3RfYXV0b2VzY2FwZQotZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBwb3J0LnV0aWwgaW1w
b3J0IEFzc2VydFJlcXVlc3QsIGNhY2hlX2ZvcgogZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBw
b3J0LmF1dGhlZF9ibHVlcHJpbnQgaW1wb3J0IEF1dGhlZEJsdWVwcmludAogZnJvbSByZXN1bHRz
ZGJweS52aWV3LmFyY2hpdmVfdmlldyBpbXBvcnQgQXJjaGl2ZVZpZXcKIGZyb20gcmVzdWx0c2Ri
cHkudmlldy5jaV92aWV3IGltcG9ydCBDSVZpZXcKQEAgLTM0LDYgKzMzLDcgQEAgZnJvbSByZXN1
bHRzZGJweS52aWV3LmNvbW1pdF92aWV3IGltcG9ydAogZnJvbSByZXN1bHRzZGJweS52aWV3LnNp
dGVfbWVudSBpbXBvcnQgU2l0ZU1lbnUKIGZyb20gcmVzdWx0c2RicHkudmlldy5zdWl0ZV92aWV3
IGltcG9ydCBTdWl0ZVZpZXcKIGZyb20gd2Vya3pldWcuZXhjZXB0aW9ucyBpbXBvcnQgSFRUUEV4
Y2VwdGlvbiwgSW50ZXJuYWxTZXJ2ZXJFcnJvcgorZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1w
b3J0IEFzc2VydFJlcXVlc3QsIGNhY2hlX2ZvcgogCiAKIGNsYXNzIFZpZXdSb3V0ZXMoQXV0aGVk
Qmx1ZXByaW50KToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkv
TUFOSUZFU1QuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Zmxhc2tweS9NQU5JRkVTVC5pbgkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRmbGFza3B5L01BTklGRVNULmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEg
QEAKK2luY2x1ZGUgUkVBRE1FLm1kCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRmbGFza3B5L1JFQURNRS5tZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRmbGFza3B5L1JFQURNRS5tZAkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRmbGFza3B5L1JFQURNRS5tZAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDMgQEAKKyMgd2Via2l0Zmxhc2tweQorCitQeXRob24gcGFja2FnZSB1c2VkIGJ5IHNvbWUg
b2YgV2ViS2l0J3Mgd2ViIHNlcnZpY2VzIHRvIHNoYXJlIENTUyBhbmQgSmF2YVNjcmlwdC4KSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvc2V0dXAucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS9zZXR1cC5weQko
bm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFza3B5L3Nl
dHVwLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0Zmxhc2tweSBpbXBvcnQgdmVyc2lvbgor
ZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1cAorCisKK2RlZiByZWFkbWUoKToKKyAgICB3aXRo
IG9wZW4oJ1JFQURNRS5tZCcpIGFzIGY6CisgICAgICAgIHJldHVybiBmLnJlYWQoKQorCisKK3Nl
dHVwKAorICAgIG5hbWU9J3dlYmtpdGZsYXNrcHknLAorICAgIHZlcnNpb249c3RyKHZlcnNpb24p
LAorICAgIGRlc2NyaXB0aW9uPSdMaWJyYXJ5IGZvciB2aXN1YWxpemluZywgcHJvY2Vzc2luZyBh
bmQgc3RvcmluZyB0ZXN0IHJlc3VsdHMuJywKKyAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgp
LAorICAgIGNsYXNzaWZpZXJzPVsKKyAgICAgICAgJ0RldmVsb3BtZW50IFN0YXR1cyA6OiA0IC0g
QmV0YScsCisgICAgICAgICdGcmFtZXdvcmsgOjogRmxhc2snLAorICAgICAgICAnSW50ZW5kZWQg
QXVkaWVuY2UgOjogRGV2ZWxvcGVycycsCisgICAgICAgICdMaWNlbnNlIDo6IE9TSSBBcHByb3Zl
ZCA6OiBCU0QgTGljZW5zZScsCisgICAgICAgICdPcGVyYXRpbmcgU3lzdGVtIDo6IE1hY09TJywK
KyAgICAgICAgJ05hdHVyYWwgTGFuZ3VhZ2UgOjogRW5nbGlzaCcsCisgICAgICAgICdQcm9ncmFt
bWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMyA6OiBPbmx5JywKKyAgICAgICAgJ1RvcGljIDo6
IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcyA6OiBQeXRob24gTW9kdWxlcycsCisg
ICAgICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBUZXN0aW5nJywKKyAgICBd
LAorICAgIGtleXdvcmRzPSd3ZWIgamF2YXNjcmlwdCB3ZWJraXQnLAorICAgIHVybD0naHR0cHM6
Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC90cnVuay9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRmbGFza3B5JywKKyAgICBhdXRob3I9J0pvbmF0aGFuIEJlZGFyZCcsCisg
ICAgYXV0aG9yX2VtYWlsPSdqYmVkYXJkQGFwcGxlLmNvbScsCisgICAgbGljZW5zZT0nTW9kaWZp
ZWQgQlNEJywKKyAgICBwYWNrYWdlcz1bCisgICAgICAgICd3ZWJraXRmbGFza3B5JywKKyAgICBd
LAorICAgIGluc3RhbGxfcmVxdWlyZXM9WworICAgICAgICAnRmxhc2snLAorICAgICAgICAnRmxh
c2stQ29ycycsCisgICAgICAgICdndW5pY29ybicsCisgICAgICAgICd3ZWJraXRjb3JlcHknLAor
ICAgIF0sCisgICAgaW5jbHVkZV9wYWNrYWdlX2RhdGE9VHJ1ZSwKKyAgICB6aXBfc2FmZT1GYWxz
ZSwKKykKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvd2Via2l0
Zmxhc2tweS9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRmbGFza3B5L3dlYmtpdGZsYXNrcHkvX19pbml0X18ucHkJKG5vbmV4aXN0ZW50KQor
KysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L19f
aW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCisKK2RlZiBf
bWF5YmVfYWRkX3dlYmtpdGNvcmVweV9wYXRoKCk6CisgICAgIyBIb3BlZnVsbHkgd2UncmUgYmVz
aWRlIHdlYmtpdGNvcmVweSwgb3RoZXJ3aXNlIHdlYmtpdGNvcmVweSB3aWxsIG5lZWQgdG8gYmUg
aW5zdGFsbGVkLgorICAgIGxpYnJhcmllc19wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgu
ZGlybmFtZShvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkpKQorICAg
IHdlYmtpdGNvcmVweV9wYXRoID0gb3MucGF0aC5qb2luKGxpYnJhcmllc19wYXRoLCAnd2Via2l0
Y29yZXB5JykKKyAgICBpZiBvcy5wYXRoLmlzZGlyKHdlYmtpdGNvcmVweV9wYXRoKSBhbmQgb3Mu
cGF0aC5pc2Rpcihvcy5wYXRoLmpvaW4od2Via2l0Y29yZXB5X3BhdGgsICd3ZWJraXRjb3JlcHkn
KSkgYW5kIHdlYmtpdGNvcmVweV9wYXRoIG5vdCBpbiBzeXMucGF0aDoKKyAgICAgICAgc3lzLnBh
dGguaW5zZXJ0KDAsIHdlYmtpdGNvcmVweV9wYXRoKQorCisKK19tYXliZV9hZGRfd2Via2l0Y29y
ZXB5X3BhdGgoKQorCit0cnk6CisgICAgZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IEF1dG9JbnN0
YWxsLCBQYWNrYWdlLCBWZXJzaW9uCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcmFpc2UgSW1w
b3J0RXJyb3IoCisgICAgICAgICInd2Via2l0Y29yZXB5JyBjb3VsZCBub3QgYmUgZm91bmQgb24g
eW91ciBQeXRob24gcGF0aC5cbiIgKworICAgICAgICAiWW91IGFyZSBub3QgcnVubmluZyBmcm9t
IGEgV2ViS2l0IGNoZWNrb3V0LlxuIiArCisgICAgICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRj
b3JlcHkgd2l0aCBgcGlwIGluc3RhbGwgd2Via2l0Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxw
YWNrYWdlIGluZGV4IFVSTD5gIgorICAgICkKKwordmVyc2lvbiA9IFZlcnNpb24oMCwgMSwgMCkK
KworQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnY2xpY2snKSwgVmVyc2lvbig3LCAxLCAy
KSkKK0F1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2ZsYXNrJyksIFZlcnNpb24oMSwgMSwg
MikpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdpdHNkYW5nZXJvdXMnKSwgVmVyc2lv
bigyLCAwLCAwKSkKK0F1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2ppbmphMicpLCBWZXJz
aW9uKDMsIDAsIDApKQorQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbWFya3Vwc2FmZScp
LCBWZXJzaW9uKDIsIDAsIDApKQorQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnd2Vya3pl
dWcnKSwgVmVyc2lvbigxLCAwLCAxKSkKKworbmFtZSA9ICd3ZWJraXRmbGFza3B5JwpJbmRleDog
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L3V0aWwu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93
ZWJraXRmbGFza3B5L3V0aWwucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L3V0aWwucHkJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMzEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYCJBUyBJUyIgQU5ECisjIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CitpbXBvcnQganNvbgorZnJvbSBmbGFzayBpbXBvcnQgYWJvcnQsIHJlcXVlc3QKKworCitjbGFz
cyBGbGFza0pTT05FbmNvZGVyKGpzb24uSlNPTkVuY29kZXIpOgorICAgICMgRmxhc2sncyBqc29u
aWZ5IG9ubHkgYWNjZXB0cyBhIGRpY3Rpb25hcnkgYW5kIGRvZXMgbm90IGFjY2VwdCBhIEpTT04g
ZW5jb2Rlci4gV2hlbiBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IEpTT04KKyAgICAjIGVuY29kZXIs
IGVuY29kZXIuZGVmYXVsdCguLi4pIHdpbGwgcmV0dXJuIGEgZGljdGlvbmFyeSB0byBiZSBzZXJp
YWxpemVkLiBIb3dldmVyLCB0aGUgZGVmYXVsdCBlbmNvZGVyIHdpbGwgcmFpc2UKKyAgICAjIGFu
IGV4Y2VwdGlvbiBpZiBkZWZhdWx0KC4uLikgaXMgY2FsbGVkIG9uIHByaW1hdGl2ZSBKU09OIHR5
cGVzLiBJbXBsZW1lbnQgYSB2ZXJzaW9uIG9mIHRoZSBkZWZhdWx0IGVuY29kZXIgd2hpY2gKKyAg
ICAjIHBhc3NlcyBwcmltYXRpdmUgSlNPTiB0eXBlcyBiYWNrIHRvIHRoZSBjYWxsZXIuCisgICAg
ZGVmIGRlZmF1bHQoc2VsZiwgb2JqKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIGRpY3Qp
OgorICAgICAgICAgICAgcmV0dXJuIHtrZXk6IHNlbGYuZGVmYXVsdCh2YWx1ZSkgZm9yIGtleSwg
dmFsdWUgaW4gb2JqLml0ZW1zKCl9CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBsaXN0KToK
KyAgICAgICAgICAgIHJldHVybiBbc2VsZi5kZWZhdWx0KHZhbHVlKSBmb3IgdmFsdWUgaW4gb2Jq
XQorICAgICAgICByZXR1cm4gb2JqCisKKworY2xhc3MgQXNzZXJ0UmVxdWVzdChvYmplY3QpOgor
ICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBpc190eXBlKGNscywgc3VwcG9ydGVkX3JlcXVlc3Rz
PU5vbmUpOgorICAgICAgICBpZiBzdXBwb3J0ZWRfcmVxdWVzdHMgaXMgTm9uZToKKyAgICAgICAg
ICAgIHN1cHBvcnRlZF9yZXF1ZXN0cyA9IFsnR0VUJ10KKyAgICAgICAgaWYgbm90IHN1cHBvcnRl
ZF9yZXF1ZXN0czoKKyAgICAgICAgICAgIGFib3J0KDUwMCwgZGVzY3JpcHRpb249J0VuZHBvaW50
IGRvZXMgbm90IHN1cHBvcnQgYW55IHJlcXVlc3RzJykKKyAgICAgICAgaWYgcmVxdWVzdC5tZXRo
b2Qgbm90IGluIHN1cHBvcnRlZF9yZXF1ZXN0czoKKyAgICAgICAgICAgIGFib3J0KDQwNSwgZGVz
Y3JpcHRpb249J0VuZHBvaW50IG9ubHkgc3VwcG9ydHMge30gcmVxdWVzdHMnLmZvcm1hdCgKKyAg
ICAgICAgICAgICAgICBzdXBwb3J0ZWRfcmVxdWVzdHNbMF0gaWYgbGVuKHN1cHBvcnRlZF9yZXF1
ZXN0cykgPT0gMSBlbHNlICcsICcuam9pbihzdXBwb3J0ZWRfcmVxdWVzdHNbOi0xXSkgKyAnIGFu
ZCAnICsgc3VwcG9ydGVkX3JlcXVlc3RzWy0xXSwKKyAgICAgICAgICAgICkpCisKKyAgICBAY2xh
c3NtZXRob2QKKyAgICBkZWYgbm9fcXVlcnkoY2xzKToKKyAgICAgICAgaWYgcmVxdWVzdC5xdWVy
eV9zdHJpbmc6CisgICAgICAgICAgICBhYm9ydCg0MDAsIGRlc2NyaXB0aW9uPSdRdWVyaWVzIG5v
dCBzdXBwb3J0ZWQgb24gdGhpcyBlbmRwb2ludCcpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBk
ZWYgcXVlcnlfa3dhcmdzX2VtcHR5KGNscywgKiprd2FyZ3MpOgorICAgICAgICBmb3Iga2V5LCB2
YWx1ZSBpbiBrd2FyZ3MuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIHZhbHVlOgorICAgICAgICAg
ICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249Iid7fScgbm90IHN1cHBvcnRlZCBpbiBxdWVy
aWVzIGJ5IHRoaXMgZW5kcG9pbnQiLmZvcm1hdChrZXkpKQorCisKK2RlZiBxdWVyeV9hc19rd2Fy
Z3MoKToKKyAgICBkZWYgZGVjb3JhdG9yKG1ldGhvZCk6CisgICAgICAgIGRlZiByZWFsX21ldGhv
ZCh2YWwsIG1ldGhvZD1tZXRob2QsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGZvciBrZXksIHZh
bHVlIGluIHJlcXVlc3QuYXJncy50b19kaWN0KGZsYXQ9RmFsc2UpLml0ZW1zKCk6CisgICAgICAg
ICAgICAgICAgaWYga2V5IGluIGt3YXJnczoKKyAgICAgICAgICAgICAgICAgICAgYWJvcnQoNDAw
LCBkZXNjcmlwdGlvbj0ne30gaXMgbm90IGEgdmFsaWQgcXVlcnkgcGFyYW1ldGVyIG9uIHRoaXMg
ZW5kcG9pbnQnLmZvcm1hdChrZXkpKQorICAgICAgICAgICAgICAgIGt3YXJnc1trZXldID0gdHVw
bGUodmFsdWUpCisgICAgICAgICAgICByZXR1cm4gbWV0aG9kKHZhbCwgKiprd2FyZ3MpCisKKyAg
ICAgICAgcmVhbF9tZXRob2QuX19uYW1lX18gPSBtZXRob2QuX19uYW1lX18KKyAgICAgICAgcmV0
dXJuIHJlYWxfbWV0aG9kCisgICAgcmV0dXJuIGRlY29yYXRvcgorCisKK2RlZiBxdWVyeV9hc19z
dHJpbmcoKToKKyAgICBxdWVyeSA9ICc/JworICAgIGZvciBrZXksIHZhbHVlcyBpbiByZXF1ZXN0
LmFyZ3MudG9fZGljdChmbGF0PUZhbHNlKS5pdGVtcygpOgorICAgICAgICBmb3IgdmFsdWUgaW4g
dmFsdWVzOgorICAgICAgICAgICAgcXVlcnkgKz0gJ3t9PXt9JicuZm9ybWF0KGtleSwgdmFsdWUp
CisgICAgcmV0dXJuIHF1ZXJ5WzotMV0KKworCitkZWYgYm9vbGVhbl9xdWVyeSgqYXJncyk6CisK
KyAgICBkZWYgZnVuYyhzdHJpbmcpOgorICAgICAgICBpZiBzdHJpbmcubG93ZXIoKSBpbiBbJ3Ry
dWUnLCAneWVzJ106CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICByZXR1cm4gYm9vbChpbnQoc3RyaW5nKSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJy
b3I6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIHJldHVybiBbZnVuYyhhcmcpIGZv
ciBhcmcgaW4gYXJnc10KKworCitkZWYgbGltaXRfZm9yX3F1ZXJ5KGRlZmF1bHRfbGltaXQ9MTAw
KToKKyAgICBkZWYgZGVjb3JhdG9yKG1ldGhvZCk6CisgICAgICAgIGRlZiByZWFsX21ldGhvZChz
ZWxmPU5vbmUsIG1ldGhvZD1tZXRob2QsIGxpbWl0PU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAg
ICAgIGxpbWl0X3RvX3VzZSA9IGRlZmF1bHRfbGltaXQKKyAgICAgICAgICAgIGlmIGxpbWl0Ogor
ICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgbGltaXRfdG9fdXNlID0g
aW50KGxpbWl0Wy0xXSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbGltaXRfdG9fdXNlIDw9IDA6
CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgICAg
ICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgYWJvcnQoNDAwLCBk
ZXNjcmlwdGlvbj0nTGltaXQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXInKQorICAgICAgICAg
ICAgaWYgc2VsZjoKKyAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kKHNlbGY9c2VsZiwgbGlt
aXQ9bGltaXRfdG9fdXNlLCAqKmt3YXJncykKKyAgICAgICAgICAgIHJldHVybiBtZXRob2QobGlt
aXQ9bGltaXRfdG9fdXNlLCAqKmt3YXJncykKKworICAgICAgICByZWFsX21ldGhvZC5fX25hbWVf
XyA9IG1ldGhvZC5fX25hbWVfXworICAgICAgICByZXR1cm4gcmVhbF9tZXRob2QKKyAgICByZXR1
cm4gZGVjb3JhdG9yCisKKworZGVmIGNhY2hlX2Zvcihob3Vycz0xMik6CisgICAgZGVmIGRlY29y
YXRvcihtZXRob2QpOgorICAgICAgICBkZWYgcmVhbF9tZXRob2Qoc2VsZj1Ob25lLCBtZXRob2Q9
bWV0aG9kLCAqKmt3YXJncyk6CisgICAgICAgICAgICBpZiBzZWxmOgorICAgICAgICAgICAgICAg
IHJlc3BvbnNlID0gbWV0aG9kKHNlbGY9c2VsZiwgKiprd2FyZ3MpCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gbWV0aG9kKCoqa3dhcmdzKQorICAgICAgICAg
ICAgcmVzcG9uc2UuaGVhZGVycy5hZGQoJ0NhY2hlLUNvbnRyb2wnLCAncHVibGljLG1heC1hZ2U9
e30nLmZvcm1hdChob3VycyAqIDYwICogNjApKQorICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNl
CisKKyAgICAgICAgcmVhbF9tZXRob2QuX19uYW1lX18gPSBtZXRob2QuX19uYW1lX18KKyAgICAg
ICAgcmV0dXJuIHJlYWxfbWV0aG9kCisgICAgcmV0dXJuIGRlY29yYXRvcgpJbmRleDogVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L3V0aWxfdW5pdHRl
c3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tw
eS93ZWJraXRmbGFza3B5L3V0aWxfdW5pdHRlc3QucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L3V0aWxfdW5pdHRl
c3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Vya3pldWcuZXhj
ZXB0aW9ucyBpbXBvcnQgQmFkUmVxdWVzdAorZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0
IGJvb2xlYW5fcXVlcnksIGxpbWl0X2Zvcl9xdWVyeQorCisKK2NsYXNzIFV0aWxUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2Jvb2xlYW5fcXVlcnkoc2VsZik6CisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbGwoYm9vbGVhbl9xdWVyeSgnVHJ1ZScsICd0cnVlJykpKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUoYWxsKGJvb2xlYW5fcXVlcnkoJ1llcycsICd5ZXMnKSkp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbGwoYm9vbGVhbl9xdWVyeSgnMScsICcxMDAnKSkp
CisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShhbnkoYm9vbGVhbl9xdWVyeSgnRmFsc2UnLCAn
ZmFsc2UnKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYW55KGJvb2xlYW5fcXVlcnkoJ05v
JywgJ25vJykpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGFueShib29sZWFuX3F1ZXJ5KCcw
JywgJ2FueSBzdHJpbmcnKSkpCisKKyAgICBkZWYgdGVzdF9saW1pdF9kZWNvcmF0b3Ioc2VsZik6
CisgICAgICAgIEBsaW1pdF9mb3JfcXVlcnkoKQorICAgICAgICBkZWYgZnVuYyhsaW1pdD1Ob25l
KToKKyAgICAgICAgICAgIHJldHVybiBsaW1pdAorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZnVuYygpLCAxMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYyhsaW1pdD1bJzEwJ10p
LCAxMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKGxpbWl0PVsnMTAnLCAnMSddKSwg
MSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQmFkUmVxdWVzdCwgZnVuYywgbGltaXQ9Wydz
dHJpbmcnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQmFkUmVxdWVzdCwgZnVuYywgbGlt
aXQ9WycwJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJhZFJlcXVlc3QsIGZ1bmMsIGxp
bWl0PVsnLTEnXSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5CShyZXZpc2lv
biAyNjkwNTIpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weQkod29ya2lu
ZyBjb3B5KQpAQCAtNjQsNiArNjQsNyBAQCBkZWYgbWFpbigpOgogICAgIHRlc3Rlci5hZGRfdHJl
ZShvcy5wYXRoLmpvaW4oX3dlYmtpdF9yb290LCAnVG9vbHMnLCAnU2NyaXB0cycpLCAnd2Via2l0
cHknKQogICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4oX3dlYmtpdF9yb290LCAnVG9v
bHMnLCAnU2NyaXB0cycsICdsaWJyYXJpZXMnLCAnd2Via2l0Y29yZXB5JyksICd3ZWJraXRjb3Jl
cHknKQogICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4oX3dlYmtpdF9yb290LCAnVG9v
bHMnLCAnU2NyaXB0cycsICdsaWJyYXJpZXMnLCAnd2Via2l0c2NtcHknKSwgJ3dlYmtpdHNjbXB5
JykKKyAgICB0ZXN0ZXIuYWRkX3RyZWUob3MucGF0aC5qb2luKF93ZWJraXRfcm9vdCwgJ1Rvb2xz
JywgJ1NjcmlwdHMnLCAnbGlicmFyaWVzJywgJ3dlYmtpdGZsYXNrcHknKSwgJ3dlYmtpdGZsYXNr
cHknKQogCiAgICAgIyBUaGVyZSBpcyBubyBXZWJLaXQyIG9uIFdpbmRvd3MsIHNvIHdlIGRvbid0
IG5lZWQgdG8gcnVuIFdlYktpdDIgdW5pdHRlc3RzIG9uIGl0LgogICAgIGlmIG5vdCAoc3lzLnBs
YXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpIG9yIHN5cy5wbGF0Zm9ybSA9PSAnY3lnd2luJyk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412551</attachid>
            <date>2020-10-28 11:32:51 -0700</date>
            <delta_ts>2020-10-28 12:08:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-218257-20201028113250.patch</filename>
            <type>text/plain</type>
            <size>39949</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTExMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI3IEBACisyMDIwLTEwLTI4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Zmxhc2tweV0gQ3JlYXRlIHNoYXJlZCBsaWJyYXJ5IGZvciBX
ZWJLaXQncyBmbGFzayB0b29saW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyNTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzM2MjY5Pgor
CisgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEFha2FzaCBKYWluLgorCisgICAgICAgICogU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvX19pbml0X18ucHk6CisgICAg
ICAgIChfbWF5YmVfYWRkX3dlYmtpdF9weXRob25fbGlicmFyeV9wYXRocyk6IEFkZCB3ZWJraXRj
b3JlcHkgYW5kIHdlYmtpdGZsYXNrcHkuCisgICAgICAgIChfbWF5YmVfYWRkX3dlYmtpdGNvcmVw
eV9wYXRoKTogUmVuYW1lZCBfbWF5YmVfYWRkX3dlYmtpdF9weXRob25fbGlicmFyeV9wYXRocy4K
KyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9mbGFz
a19zdXBwb3J0L3V0aWwucHk6IE1vdmVkIHRvIHdlYmtpdGZsYXNrcHkvdXRpbC5weS4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9mbGFza19zdXBw
b3J0L3V0aWxfdW5pdHRlc3QucHk6IE1vdmVkIHRvIHdlYmtpdGZsYXNrcHkvdXRpbF91bml0dGVz
dC5weS4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFza3B5OiBBZGRlZC4K
KyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFza3B5L01BTklGRVNULmluOiBB
ZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFza3B5L1JFQURNRS5t
ZDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS9zZXR1
cC5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93
ZWJraXRmbGFza3B5OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRm
bGFza3B5L3dlYmtpdGZsYXNrcHkvX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlw
dHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvd2Via2l0Zmxhc2tweS91dGlsLnB5OiBNb3ZlZCBm
cm9tIHJlc3VsdHNkcHkvZmxhc2tfc3VwcG9ydC91dGlsLnB5LgorICAgICAgICAqIFNjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvd2Via2l0Zmxhc2tweS91dGlsX3VuaXR0ZXN0LnB5OiBN
b3ZlZCBmcm9tIHJlc3VsdHNkcHkvZmxhc2tfc3VwcG9ydC91dGlsX3VuaXR0ZXN0LnB5LgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5OgorICAgICAgICAobWFpbik6IEFk
ZAorCiAyMDIwLTEwLTI4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbZXdzXSBFbnN1cmUgdGhhdCB1YXQgaW5zdGFuY2UgZG9lc24ndCBzZW5kIGVtYWls
cwpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
X19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI2OTExMCkKKysrIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L19faW5pdF9fLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC0yNCwxNSArMjQsMTYgQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAK
IAotZGVmIF9tYXliZV9hZGRfd2Via2l0Y29yZXB5X3BhdGgoKToKLSAgICAjIEhvcGVmdWxseSB3
ZSdyZSBiZXNpZGUgd2Via2l0Y29yZXB5LCBvdGhlcndpc2Ugd2Via2l0Y29yZXB5IHdpbGwgbmVl
ZCB0byBiZSBpbnN0YWxsZWQuCitkZWYgX21heWJlX2FkZF93ZWJraXRfcHl0aG9uX2xpYnJhcnlf
cGF0aHMoKToKKyAgICAjIEhvcGVmdWxseSB3ZSdyZSBiZXNpZGUgd2Via2l0KnB5IGxpYnJhcmll
cywgb3RoZXJ3aXNlIHdlYmtpdCpweSB3aWxsIG5lZWQgdG8gYmUgaW5zdGFsbGVkLgogICAgIGxp
YnJhcmllc19wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFi
c3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkpKQotICAgIHdlYmtpdGNvcmVweV9wYXRo
ID0gb3MucGF0aC5qb2luKGxpYnJhcmllc19wYXRoLCAnd2Via2l0Y29yZXB5JykKLSAgICBpZiBv
cy5wYXRoLmlzZGlyKHdlYmtpdGNvcmVweV9wYXRoKSBhbmQgb3MucGF0aC5pc2Rpcihvcy5wYXRo
LmpvaW4od2Via2l0Y29yZXB5X3BhdGgsICd3ZWJraXRjb3JlcHknKSkgYW5kIHdlYmtpdGNvcmVw
eV9wYXRoIG5vdCBpbiBzeXMucGF0aDoKLSAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHdlYmtp
dGNvcmVweV9wYXRoKQorICAgIGZvciBsaWJyYXJ5IGluIFsnd2Via2l0Y29yZXB5JywgJ3dlYmtp
dGZsYXNrcHknXToKKyAgICAgICAgbGlicmFyeV9wYXRoID0gb3MucGF0aC5qb2luKGxpYnJhcmll
c19wYXRoLCBsaWJyYXJ5KQorICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKGxpYnJhcnlfcGF0aCkg
YW5kIG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKGxpYnJhcnlfcGF0aCwgbGlicmFyeSkpIGFu
ZCBsaWJyYXJ5X3BhdGggbm90IGluIHN5cy5wYXRoOgorICAgICAgICAgICAgc3lzLnBhdGguaW5z
ZXJ0KDAsIGxpYnJhcnlfcGF0aCkKIAogCi1fbWF5YmVfYWRkX3dlYmtpdGNvcmVweV9wYXRoKCkK
K19tYXliZV9hZGRfd2Via2l0X3B5dGhvbl9saWJyYXJ5X3BhdGhzKCkKIAogdHJ5OgogICAgIGZy
b20gd2Via2l0Y29yZXB5LnZlcnNpb24gaW1wb3J0IFZlcnNpb24KSW5kZXg6IFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvYXJjaGl2ZV9j
b250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvYXJjaGl2ZV9jb250cm9sbGVyLnB5CShyZXZp
c2lvbiAyNjkxMTApCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS9jb250cm9sbGVyL2FyY2hpdmVfY29udHJvbGxlci5weQkod29ya2luZyBjb3B5KQpA
QCAtMjYsMTIgKzI2LDExIEBAIGltcG9ydCBqc29uCiBpbXBvcnQgdGltZQogCiBmcm9tIGZsYXNr
IGltcG9ydCBhYm9ydCwganNvbmlmeSwgcmVxdWVzdCwgc2VuZF9maWxlCi1mcm9tIHJlc3VsdHNk
YnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkuY29u
dHJvbGxlci5jb21taXRfY29udHJvbGxlciBpbXBvcnQgdXVpZF9yYW5nZV9mb3JfcXVlcnksIEhh
c0NvbW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb25maWd1cmF0aW9u
IGltcG9ydCBDb25maWd1cmF0aW9uCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29uZmln
dXJhdGlvbl9jb250cm9sbGVyIGltcG9ydCBjb25maWd1cmF0aW9uX2Zvcl9xdWVyeQogZnJvbSBy
ZXN1bHRzZGJweS5jb250cm9sbGVyLnN1aXRlX2NvbnRyb2xsZXIgaW1wb3J0IHRpbWVfcmFuZ2Vf
Zm9yX3F1ZXJ5Ci1mcm9tIHJlc3VsdHNkYnB5LmZsYXNrX3N1cHBvcnQudXRpbCBpbXBvcnQgQXNz
ZXJ0UmVxdWVzdCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnksIGJvb2xlYW5fcXVl
cnkKK2Zyb20gd2Via2l0Zmxhc2tweS51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVyeV9h
c19rd2FyZ3MsIGJvb2xlYW5fcXVlcnkKIAogCiBjbGFzcyBBcmNoaXZlQ29udHJvbGxlcihIYXND
b21taXRDb250ZXh0KToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY2lfY29udHJvbGxlci5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVy
L2NpX2NvbnRyb2xsZXIucHkJKHJldmlzaW9uIDI2OTExMCkKKysrIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY2lfY29udHJvbGxlci5w
eQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQCBmcm9tIHJlc3VsdHNkYnB5LmNvbnRy
b2xsZXIuY29tbWl0X2NvbnRyCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29uZmlndXJh
dGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNv
bmZpZ3VyYXRpb25fY29udHJvbGxlciBpbXBvcnQgY29uZmlndXJhdGlvbl9mb3JfcXVlcnkKIGZy
b20gcmVzdWx0c2RicHkuY29udHJvbGxlci5zdWl0ZV9jb250cm9sbGVyIGltcG9ydCB0aW1lX3Jh
bmdlX2Zvcl9xdWVyeQotZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBwb3J0LnV0aWwgaW1wb3J0
IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5LCBib29sZWFu
X3F1ZXJ5Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0UmVxdWVzdCwgcXVl
cnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnksIGJvb2xlYW5fcXVlcnkKIAogCiBjbGFzcyBD
SUNvbnRyb2xsZXIoSGFzQ29tbWl0Q29udGV4dCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdC5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9j
b250cm9sbGVyL2NvbW1pdC5weQkocmV2aXNpb24gMjY5MTEwKQorKysgVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXQucHkJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAgaW1wb3J0IGpzb24KIGltcG9ydCByZQogCiBm
cm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBw
b3J0LnV0aWwgaW1wb3J0IEZsYXNrSlNPTkVuY29kZXIKK2Zyb20gd2Via2l0Zmxhc2tweS51dGls
IGltcG9ydCBGbGFza0pTT05FbmNvZGVyCiAKIAogY2xhc3MgQ29tbWl0KG9iamVjdCk6CkluZGV4
OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9s
bGVyL2NvbW1pdF9jb250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0X2NvbnRyb2xs
ZXIucHkJKHJldmlzaW9uIDI2OTExMCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXIucHkJKHdvcmtp
bmcgY29weSkKQEAgLTI0LDkgKzI0LDkgQEAgaW1wb3J0IGpzb24KIAogZnJvbSBjb2xsZWN0aW9u
cyBpbXBvcnQgZGVmYXVsdGRpY3QKIGZyb20gZmxhc2sgaW1wb3J0IGFib3J0LCBqc29uaWZ5LCBy
ZXF1ZXN0Ci1mcm9tIHJlc3VsdHNkYnB5LmZsYXNrX3N1cHBvcnQudXRpbCBpbXBvcnQgQXNzZXJ0
UmVxdWVzdCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnkKIGZyb20gcmVzdWx0c2Ri
cHkubW9kZWwucmVwb3NpdG9yeSBpbXBvcnQgU0NNRXhjZXB0aW9uCiBmcm9tIHJlc3VsdHNkYnB5
LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKK2Zyb20gd2Via2l0Zmxhc2tweS51dGls
IGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVyeV9hc19rd2FyZ3MsIGxpbWl0X2Zvcl9xdWVyeQog
CiAKIGRlZiBfZmluZF9jb21wYXJpc29uKGNvbW1pdF9jb250ZXh0LCByZXBvc2l0b3J5X2lkLCBi
cmFuY2gsIGlkLCB1dWlkLCB0aW1lc3RhbXAsIHByaW9yaXR5PW1pbik6CkluZGV4OiBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbmZp
Z3VyYXRpb24ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb25maWd1cmF0aW9uLnB5CShyZXZpc2lvbiAy
NjkxMTApCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9jb250cm9sbGVyL2NvbmZpZ3VyYXRpb24ucHkJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIy
LDcgQEAKIAogaW1wb3J0IGpzb24KIAotZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBwb3J0LnV0
aWwgaW1wb3J0IEZsYXNrSlNPTkVuY29kZXIKK2Zyb20gd2Via2l0Zmxhc2tweS51dGlsIGltcG9y
dCBGbGFza0pTT05FbmNvZGVyCiAKIAogY2xhc3MgQ29uZmlndXJhdGlvbihvYmplY3QpOgpJbmRl
eDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJv
bGxlci9jb25maWd1cmF0aW9uX2NvbnRyb2xsZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb25maWd1
cmF0aW9uX2NvbnRyb2xsZXIucHkJKHJldmlzaW9uIDI2OTExMCkKKysrIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29uZmlndXJhdGlv
bl9jb250cm9sbGVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCw4IEBACiAjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWZyb20gcmVzdWx0c2RicHkuZmxhc2tf
c3VwcG9ydC51dGlsIGltcG9ydCBib29sZWFuX3F1ZXJ5CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRy
b2xsZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgorZnJvbSB3ZWJraXRmbGFz
a3B5LnV0aWwgaW1wb3J0IGJvb2xlYW5fcXVlcnkKIAogCiBkZWYgY29uZmlndXJhdGlvbl9mb3Jf
cXVlcnkoKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L2NvbnRyb2xsZXIvZmFpbHVyZV9jb250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIv
ZmFpbHVyZV9jb250cm9sbGVyLnB5CShyZXZpc2lvbiAyNjkxMTApCisrKyBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2ZhaWx1cmVfY29u
dHJvbGxlci5weQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQCBmcm9tIHJlc3VsdHNk
YnB5LmNvbnRyb2xsZXIuY29tbWl0X2NvbnRyCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIu
Y29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5jb250
cm9sbGVyLmNvbmZpZ3VyYXRpb25fY29udHJvbGxlciBpbXBvcnQgY29uZmlndXJhdGlvbl9mb3Jf
cXVlcnkKIGZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5zdWl0ZV9jb250cm9sbGVyIGltcG9y
dCB0aW1lX3JhbmdlX2Zvcl9xdWVyeQotZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBwb3J0LnV0
aWwgaW1wb3J0IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5
LCBib29sZWFuX3F1ZXJ5Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0UmVx
dWVzdCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnksIGJvb2xlYW5fcXVlcnkKIAog
CiBjbGFzcyBGYWlsdXJlQ29udHJvbGxlcihIYXNDb21taXRDb250ZXh0KToKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvc3Vp
dGVfY29udHJvbGxlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL3N1aXRlX2NvbnRyb2xsZXIucHkJKHJl
dmlzaW9uIDI2OTExMCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L2NvbnRyb2xsZXIvc3VpdGVfY29udHJvbGxlci5weQkod29ya2luZyBjb3B5KQpA
QCAtMjQsNyArMjQsNyBAQCBmcm9tIGZsYXNrIGltcG9ydCBhYm9ydCwganNvbmlmeSwgcmVxdWVz
CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0X2NvbnRyb2xsZXIgaW1wb3J0IHV1
aWRfcmFuZ2VfZm9yX3F1ZXJ5LCBIYXNDb21taXRDb250ZXh0CiBmcm9tIHJlc3VsdHNkYnB5LmNv
bnRyb2xsZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRz
ZGJweS5jb250cm9sbGVyLmNvbmZpZ3VyYXRpb25fY29udHJvbGxlciBpbXBvcnQgY29uZmlndXJh
dGlvbl9mb3JfcXVlcnkKLWZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9y
dCBBc3NlcnRSZXF1ZXN0LCBxdWVyeV9hc19rd2FyZ3MsIGxpbWl0X2Zvcl9xdWVyeSwgYm9vbGVh
bl9xdWVyeQorZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEFzc2VydFJlcXVlc3QsIHF1
ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5LCBib29sZWFuX3F1ZXJ5CiAKIAogZGVmIHRp
bWVfcmFuZ2VfZm9yX3F1ZXJ5KCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL3Rlc3RfY29udHJvbGxlci5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9j
b250cm9sbGVyL3Rlc3RfY29udHJvbGxlci5weQkocmV2aXNpb24gMjY5MTEwKQorKysgVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci90ZXN0
X2NvbnRyb2xsZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAgZnJvbSByZXN1
bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdF9jb250cgogZnJvbSByZXN1bHRzZGJweS5jb250cm9s
bGVyLmNvbmZpZ3VyYXRpb24gaW1wb3J0IENvbmZpZ3VyYXRpb24KIGZyb20gcmVzdWx0c2RicHku
Y29udHJvbGxlci5jb25maWd1cmF0aW9uX2NvbnRyb2xsZXIgaW1wb3J0IGNvbmZpZ3VyYXRpb25f
Zm9yX3F1ZXJ5CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuc3VpdGVfY29udHJvbGxlciBp
bXBvcnQgdGltZV9yYW5nZV9mb3JfcXVlcnkKLWZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9y
dC51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVyeV9hc19rd2FyZ3MsIGxpbWl0X2Zvcl9x
dWVyeSwgYm9vbGVhbl9xdWVyeQorZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEFzc2Vy
dFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5LCBib29sZWFuX3F1ZXJ5
CiAKIAogY2xhc3MgVGVzdENvbnRyb2xsZXIoSGFzQ29tbWl0Q29udGV4dCk6CkluZGV4OiBUb29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL3Vw
bG9hZF9jb250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXIucHkJ
KHJldmlzaW9uIDI2OTExMCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXIucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDExICsyNSwxMSBAQCBpbXBvcnQgdGltZQogCiBmcm9tIGNvbGxlY3Rpb25zIGlt
cG9ydCBkZWZhdWx0ZGljdAogZnJvbSBmbGFzayBpbXBvcnQgYWJvcnQsIGpzb25pZnksIHJlcXVl
c3QKLWZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBBc3NlcnRSZXF1
ZXN0LCBxdWVyeV9hc19rd2FyZ3MsIGxpbWl0X2Zvcl9xdWVyeSwgYm9vbGVhbl9xdWVyeQogZnJv
bSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0CiBmcm9tIHJlc3Vs
dHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0X2NvbnRyb2xsZXIgaW1wb3J0IHV1aWRfcmFuZ2VfZm9y
X3F1ZXJ5LCBIYXNDb21taXRDb250ZXh0CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29u
ZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5jb250cm9s
bGVyLmNvbmZpZ3VyYXRpb25fY29udHJvbGxlciBpbXBvcnQgY29uZmlndXJhdGlvbl9mb3JfcXVl
cnkKK2Zyb20gd2Via2l0Zmxhc2tweS51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVyeV9h
c19rd2FyZ3MsIGxpbWl0X2Zvcl9xdWVyeSwgYm9vbGVhbl9xdWVyeQogCiAKIGNsYXNzIFVwbG9h
ZENvbnRyb2xsZXIoSGFzQ29tbWl0Q29udGV4dCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9mbGFza19zdXBwb3J0L3V0aWwucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
Zmxhc2tfc3VwcG9ydC91dGlsLnB5CShyZXZpc2lvbiAyNjkxMTApCisrKyBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9mbGFza19zdXBwb3J0L3V0aWwucHkJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwxMzEgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgIkFTIElTIiBBTkQK
LSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLWltcG9ydCBqc29uCi1mcm9tIGZsYXNrIGltcG9ydCBhYm9ydCwgcmVx
dWVzdAotCi0KLWNsYXNzIEZsYXNrSlNPTkVuY29kZXIoanNvbi5KU09ORW5jb2Rlcik6Ci0gICAg
IyBGbGFzaydzIGpzb25pZnkgb25seSBhY2NlcHRzIGEgZGljdGlvbmFyeSBhbmQgZG9lcyBub3Qg
YWNjZXB0IGEgSlNPTiBlbmNvZGVyLiBXaGVuIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgSlNPTgot
ICAgICMgZW5jb2RlciwgZW5jb2Rlci5kZWZhdWx0KC4uLikgd2lsbCByZXR1cm4gYSBkaWN0aW9u
YXJ5IHRvIGJlIHNlcmlhbGl6ZWQuIEhvd2V2ZXIsIHRoZSBkZWZhdWx0IGVuY29kZXIgd2lsbCBy
YWlzZQotICAgICMgYW4gZXhjZXB0aW9uIGlmIGRlZmF1bHQoLi4uKSBpcyBjYWxsZWQgb24gcHJp
bWF0aXZlIEpTT04gdHlwZXMuIEltcGxlbWVudCBhIHZlcnNpb24gb2YgdGhlIGRlZmF1bHQgZW5j
b2RlciB3aGljaAotICAgICMgcGFzc2VzIHByaW1hdGl2ZSBKU09OIHR5cGVzIGJhY2sgdG8gdGhl
IGNhbGxlci4KLSAgICBkZWYgZGVmYXVsdChzZWxmLCBvYmopOgotICAgICAgICBpZiBpc2luc3Rh
bmNlKG9iaiwgZGljdCk6Ci0gICAgICAgICAgICByZXR1cm4ge2tleTogc2VsZi5kZWZhdWx0KHZh
bHVlKSBmb3Iga2V5LCB2YWx1ZSBpbiBvYmouaXRlbXMoKX0KLSAgICAgICAgaWYgaXNpbnN0YW5j
ZShvYmosIGxpc3QpOgotICAgICAgICAgICAgcmV0dXJuIFtzZWxmLmRlZmF1bHQodmFsdWUpIGZv
ciB2YWx1ZSBpbiBvYmpdCi0gICAgICAgIHJldHVybiBvYmoKLQotCi1jbGFzcyBBc3NlcnRSZXF1
ZXN0KG9iamVjdCk6Ci0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGlzX3R5cGUoY2xzLCBzdXBw
b3J0ZWRfcmVxdWVzdHM9Tm9uZSk6Ci0gICAgICAgIGlmIHN1cHBvcnRlZF9yZXF1ZXN0cyBpcyBO
b25lOgotICAgICAgICAgICAgc3VwcG9ydGVkX3JlcXVlc3RzID0gWydHRVQnXQotICAgICAgICBp
ZiBub3Qgc3VwcG9ydGVkX3JlcXVlc3RzOgotICAgICAgICAgICAgYWJvcnQoNTAwLCBkZXNjcmlw
dGlvbj0nRW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBhbnkgcmVxdWVzdHMnKQotICAgICAgICBp
ZiByZXF1ZXN0Lm1ldGhvZCBub3QgaW4gc3VwcG9ydGVkX3JlcXVlc3RzOgotICAgICAgICAgICAg
YWJvcnQoNDA1LCBkZXNjcmlwdGlvbj0nRW5kcG9pbnQgb25seSBzdXBwb3J0cyB7fSByZXF1ZXN0
cycuZm9ybWF0KAotICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9yZXF1ZXN0c1swXSBpZiBsZW4o
c3VwcG9ydGVkX3JlcXVlc3RzKSA9PSAxIGVsc2UgJywgJy5qb2luKHN1cHBvcnRlZF9yZXF1ZXN0
c1s6LTFdKSArICcgYW5kICcgKyBzdXBwb3J0ZWRfcmVxdWVzdHNbLTFdLAotICAgICAgICAgICAg
KSkKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBub19xdWVyeShjbHMpOgotICAgICAgICBp
ZiByZXF1ZXN0LnF1ZXJ5X3N0cmluZzoKLSAgICAgICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRp
b249J1F1ZXJpZXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGVuZHBvaW50JykKLQotICAgIEBjbGFz
c21ldGhvZAotICAgIGRlZiBxdWVyeV9rd2FyZ3NfZW1wdHkoY2xzLCAqKmt3YXJncyk6Ci0gICAg
ICAgIGZvciBrZXksIHZhbHVlIGluIGt3YXJncy5pdGVtcygpOgotICAgICAgICAgICAgaWYgdmFs
dWU6Ci0gICAgICAgICAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlwdGlvbj1mIid7a2V5fScgbm90
IHN1cHBvcnRlZCBpbiBxdWVyaWVzIGJ5IHRoaXMgZW5kcG9pbnQiKQotCi0KLWRlZiBxdWVyeV9h
c19rd2FyZ3MoKToKLSAgICBkZWYgZGVjb3JhdG9yKG1ldGhvZCk6Ci0gICAgICAgIGRlZiByZWFs
X21ldGhvZCh2YWwsIG1ldGhvZD1tZXRob2QsICoqa3dhcmdzKToKLSAgICAgICAgICAgIGZvciBr
ZXksIHZhbHVlIGluIHJlcXVlc3QuYXJncy50b19kaWN0KGZsYXQ9RmFsc2UpLml0ZW1zKCk6Ci0g
ICAgICAgICAgICAgICAgaWYga2V5IGluIGt3YXJnczoKLSAgICAgICAgICAgICAgICAgICAgYWJv
cnQoNDAwLCBkZXNjcmlwdGlvbj1mJ3trZXl9IGlzIG5vdCBhIHZhbGlkIHF1ZXJ5IHBhcmFtZXRl
ciBvbiB0aGlzIGVuZHBvaW50JykKLSAgICAgICAgICAgICAgICBrd2FyZ3Nba2V5XSA9IHR1cGxl
KHZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIG1ldGhvZCh2YWwsICoqa3dhcmdzKQotCi0gICAg
ICAgIHJlYWxfbWV0aG9kLl9fbmFtZV9fID0gbWV0aG9kLl9fbmFtZV9fCi0gICAgICAgIHJldHVy
biByZWFsX21ldGhvZAotICAgIHJldHVybiBkZWNvcmF0b3IKLQotCi1kZWYgcXVlcnlfYXNfc3Ry
aW5nKCk6Ci0gICAgcXVlcnkgPSAnPycKLSAgICBmb3Iga2V5LCB2YWx1ZXMgaW4gcmVxdWVzdC5h
cmdzLnRvX2RpY3QoZmxhdD1GYWxzZSkuaXRlbXMoKToKLSAgICAgICAgZm9yIHZhbHVlIGluIHZh
bHVlczoKLSAgICAgICAgICAgIHF1ZXJ5ICs9IGYne2tleX09e3ZhbHVlfSYnCi0gICAgcmV0dXJu
IHF1ZXJ5WzotMV0KLQotCi1kZWYgYm9vbGVhbl9xdWVyeSgqYXJncyk6Ci0KLSAgICBkZWYgZnVu
YyhzdHJpbmcpOgotICAgICAgICBpZiBzdHJpbmcubG93ZXIoKSBpbiBbJ3RydWUnLCAneWVzJ106
Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1
cm4gYm9vbChpbnQoc3RyaW5nKSkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAg
ICAgICByZXR1cm4gRmFsc2UKLQotICAgIHJldHVybiBbZnVuYyhhcmcpIGZvciBhcmcgaW4gYXJn
c10KLQotCi1kZWYgbGltaXRfZm9yX3F1ZXJ5KGRlZmF1bHRfbGltaXQ9MTAwKToKLSAgICBkZWYg
ZGVjb3JhdG9yKG1ldGhvZCk6Ci0gICAgICAgIGRlZiByZWFsX21ldGhvZChzZWxmPU5vbmUsIG1l
dGhvZD1tZXRob2QsIGxpbWl0PU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgICAgIGxpbWl0X3Rv
X3VzZSA9IGRlZmF1bHRfbGltaXQKLSAgICAgICAgICAgIGlmIGxpbWl0OgotICAgICAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgbGltaXRfdG9fdXNlID0gaW50KGxpbWl0Wy0x
XSkKLSAgICAgICAgICAgICAgICAgICAgaWYgbGltaXRfdG9fdXNlIDw9IDA6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKLSAgICAgICAgICAgICAgICBleGNlcHQg
VmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlwdGlvbj0n
TGltaXQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXInKQotICAgICAgICAgICAgaWYgc2VsZjoK
LSAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kKHNlbGY9c2VsZiwgbGltaXQ9bGltaXRfdG9f
dXNlLCAqKmt3YXJncykKLSAgICAgICAgICAgIHJldHVybiBtZXRob2QobGltaXQ9bGltaXRfdG9f
dXNlLCAqKmt3YXJncykKLQotICAgICAgICByZWFsX21ldGhvZC5fX25hbWVfXyA9IG1ldGhvZC5f
X25hbWVfXwotICAgICAgICByZXR1cm4gcmVhbF9tZXRob2QKLSAgICByZXR1cm4gZGVjb3JhdG9y
Ci0KLQotZGVmIGNhY2hlX2Zvcihob3Vycz0xMik6Ci0gICAgZGVmIGRlY29yYXRvcihtZXRob2Qp
OgotICAgICAgICBkZWYgcmVhbF9tZXRob2Qoc2VsZj1Ob25lLCBtZXRob2Q9bWV0aG9kLCAqKmt3
YXJncyk6Ci0gICAgICAgICAgICBpZiBzZWxmOgotICAgICAgICAgICAgICAgIHJlc3BvbnNlID0g
bWV0aG9kKHNlbGY9c2VsZiwgKiprd2FyZ3MpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIHJlc3BvbnNlID0gbWV0aG9kKCoqa3dhcmdzKQotICAgICAgICAgICAgcmVzcG9uc2Uu
aGVhZGVycy5hZGQoJ0NhY2hlLUNvbnRyb2wnLCBmJ3B1YmxpYyxtYXgtYWdlPXtob3VycyAqIDYw
ICogNjB9JykKLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgICAgIHJlYWxfbWV0
aG9kLl9fbmFtZV9fID0gbWV0aG9kLl9fbmFtZV9fCi0gICAgICAgIHJldHVybiByZWFsX21ldGhv
ZAotICAgIHJldHVybiBkZWNvcmF0b3IKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jl
c3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2ZsYXNrX3N1cHBvcnQvdXRpbF91bml0dGVzdC5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9mbGFza19zdXBwb3J0L3V0aWxfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI2OTExMCkKKysrIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2ZsYXNrX3N1cHBv
cnQvdXRpbF91bml0dGVzdC5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDUwICswLDAgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCB1bml0dGVzdAotCi1mcm9t
IHdlcmt6ZXVnLmV4Y2VwdGlvbnMgaW1wb3J0IEJhZFJlcXVlc3QKLWZyb20gcmVzdWx0c2RicHku
Zmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBib29sZWFuX3F1ZXJ5LCBsaW1pdF9mb3JfcXVlcnkK
LQotCi1jbGFzcyBVdGlsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9i
b29sZWFuX3F1ZXJ5KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFRydWUoYWxsKGJvb2xlYW5f
cXVlcnkoJ1RydWUnLCAndHJ1ZScpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFsbChib29s
ZWFuX3F1ZXJ5KCdZZXMnLCAneWVzJykpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYWxsKGJv
b2xlYW5fcXVlcnkoJzEnLCAnMTAwJykpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYW55
KGJvb2xlYW5fcXVlcnkoJ0ZhbHNlJywgJ2ZhbHNlJykpKQotICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKGFueShib29sZWFuX3F1ZXJ5KCdObycsICdubycpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShhbnkoYm9vbGVhbl9xdWVyeSgnMCcsICdhbnkgc3RyaW5nJykpKQotCi0gICAgZGVmIHRl
c3RfbGltaXRfZGVjb3JhdG9yKHNlbGYpOgotICAgICAgICBAbGltaXRfZm9yX3F1ZXJ5KCkKLSAg
ICAgICAgZGVmIGZ1bmMobGltaXQ9Tm9uZSk6Ci0gICAgICAgICAgICByZXR1cm4gbGltaXQKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoKSwgMTAwKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGZ1bmMobGltaXQ9WycxMCddKSwgMTApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZnVuYyhsaW1pdD1bJzEwJywgJzEnXSksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJh
ZFJlcXVlc3QsIGZ1bmMsIGxpbWl0PVsnc3RyaW5nJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKEJhZFJlcXVlc3QsIGZ1bmMsIGxpbWl0PVsnMCddKQotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhCYWRSZXF1ZXN0LCBmdW5jLCBsaW1pdD1bJy0xJ10pCkluZGV4OiBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2FyY2hpdmVfdmlldy5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS92aWV3L2FyY2hpdmVfdmlldy5weQkocmV2aXNpb24gMjY5MTEwKQorKysgVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9hcmNoaXZlX3ZpZXcu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTIwLDE0ICsyMCwxMiBAQAogIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQganNvbgotCiBmcm9tIGZsYXNrIGltcG9ydCBh
Ym9ydCwganNvbmlmeSwgcmVxdWVzdCwgUmVzcG9uc2UKIGZyb20gcmVzdWx0c2RicHkuY29udHJv
bGxlci5jb21taXRfY29udHJvbGxlciBpbXBvcnQgdXVpZF9yYW5nZV9mb3JfcXVlcnksIEhhc0Nv
bW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb25maWd1cmF0aW9uX2Nv
bnRyb2xsZXIgaW1wb3J0IGNvbmZpZ3VyYXRpb25fZm9yX3F1ZXJ5CiBmcm9tIHJlc3VsdHNkYnB5
LmNvbnRyb2xsZXIuc3VpdGVfY29udHJvbGxlciBpbXBvcnQgdGltZV9yYW5nZV9mb3JfcXVlcnkK
LWZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0
LCBib29sZWFuX3F1ZXJ5LCBjYWNoZV9mb3IsIGxpbWl0X2Zvcl9xdWVyeSwgcXVlcnlfYXNfa3dh
cmdzLCBxdWVyeV9hc19zdHJpbmcKIGZyb20gcmVzdWx0c2RicHkudmlldy5zaXRlX21lbnUgaW1w
b3J0IFNpdGVNZW51Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0UmVxdWVz
dCwgYm9vbGVhbl9xdWVyeSwgY2FjaGVfZm9yLCBsaW1pdF9mb3JfcXVlcnksIHF1ZXJ5X2FzX2t3
YXJncywgcXVlcnlfYXNfc3RyaW5nCiAKIAogY2xhc3MgQXJjaGl2ZVZpZXcoSGFzQ29tbWl0Q29u
dGV4dCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS92aWV3L2NpX3ZpZXcucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9jaV92aWV3LnB5CShyZXZpc2lvbiAyNjkx
MTApCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92
aWV3L2NpX3ZpZXcucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDkgKzIxLDcgQEAKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAogZnJvbSBmbGFzayBpbXBvcnQgYWJvcnQsIHJlZGlyZWN0LCByZXF1ZXN0Ci1mcm9t
IHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKLWZyb20gcmVzdWx0
c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVyeV9hc19r
d2FyZ3MKLWZyb20gcmVzdWx0c2RicHkudmlldy5zaXRlX21lbnUgaW1wb3J0IFNpdGVNZW51Citm
cm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgcXVlcnlfYXNfa3dhcmdzCiAKIAogY2xhc3Mg
Q0lWaWV3KG9iamVjdCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS92aWV3L2NvbW1pdF92aWV3LnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvY29tbWl0X3ZpZXcu
cHkJKHJldmlzaW9uIDI2OTExMCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L3ZpZXcvY29tbWl0X3ZpZXcucHkJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDggKzIyLDggQEAKIAogZnJvbSBmbGFzayBpbXBvcnQgYWJvcnQsIHJlZGlyZWN0LCByZXF1ZXN0
CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKLWZyb20g
cmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC51dGlsIGltcG9ydCBBc3NlcnRSZXF1ZXN0LCBxdWVy
eV9hc19rd2FyZ3MKIGZyb20gcmVzdWx0c2RicHkudmlldy5zaXRlX21lbnUgaW1wb3J0IFNpdGVN
ZW51Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0UmVxdWVzdCwgcXVlcnlf
YXNfa3dhcmdzCiAKIAogY2xhc3MgQ29tbWl0VmlldyhvYmplY3QpOgpJbmRleDogVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdWl0ZV92aWV3LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L3ZpZXcvc3VpdGVfdmlldy5weQkocmV2aXNpb24gMjY5MTEwKQorKysgVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdWl0ZV92aWV3LnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4IEBAIGZyb20gZmxhc2sgaW1wb3J0IGFib3J0
CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0X2NvbnRyb2xsZXIgaW1wb3J0IHV1
aWRfcmFuZ2VfZm9yX3F1ZXJ5LCBIYXNDb21taXRDb250ZXh0CiBmcm9tIHJlc3VsdHNkYnB5LmNv
bnRyb2xsZXIuY29uZmlndXJhdGlvbl9jb250cm9sbGVyIGltcG9ydCBjb25maWd1cmF0aW9uX2Zv
cl9xdWVyeQogZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLnN1aXRlX2NvbnRyb2xsZXIgaW1w
b3J0IHRpbWVfcmFuZ2VfZm9yX3F1ZXJ5Ci1mcm9tIHJlc3VsdHNkYnB5LmZsYXNrX3N1cHBvcnQu
dXRpbCBpbXBvcnQgQXNzZXJ0UmVxdWVzdCwgcXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVl
cnksIGJvb2xlYW5fcXVlcnkKIGZyb20gcmVzdWx0c2RicHkudmlldy5zaXRlX21lbnUgaW1wb3J0
IFNpdGVNZW51Citmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0UmVxdWVzdCwg
cXVlcnlfYXNfa3dhcmdzLCBsaW1pdF9mb3JfcXVlcnksIGJvb2xlYW5fcXVlcnkKIAogCiBjbGFz
cyBTdWl0ZVZpZXcoSGFzQ29tbWl0Q29udGV4dCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3ZpZXdfcm91dGVzLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3Zp
ZXcvdmlld19yb3V0ZXMucHkJKHJldmlzaW9uIDI2OTExMCkKKysrIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdmlld19yb3V0ZXMucHkJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAgaW1wb3J0IHRpbWUKIAogZnJvbSBmbGFzayBpbXBv
cnQgYWJvcnQsIGpzb25pZnksIHNlbmRfZnJvbV9kaXJlY3RvcnksIHJlZGlyZWN0LCBSZXNwb25z
ZQogZnJvbSBqaW5qYTIgaW1wb3J0IEVudmlyb25tZW50LCBQYWNrYWdlTG9hZGVyLCBzZWxlY3Rf
YXV0b2VzY2FwZQotZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBwb3J0LnV0aWwgaW1wb3J0IEFz
c2VydFJlcXVlc3QsIGNhY2hlX2ZvcgogZnJvbSByZXN1bHRzZGJweS5mbGFza19zdXBwb3J0LmF1
dGhlZF9ibHVlcHJpbnQgaW1wb3J0IEF1dGhlZEJsdWVwcmludAogZnJvbSByZXN1bHRzZGJweS52
aWV3LmFyY2hpdmVfdmlldyBpbXBvcnQgQXJjaGl2ZVZpZXcKIGZyb20gcmVzdWx0c2RicHkudmll
dy5jaV92aWV3IGltcG9ydCBDSVZpZXcKQEAgLTM0LDYgKzMzLDcgQEAgZnJvbSByZXN1bHRzZGJw
eS52aWV3LmNvbW1pdF92aWV3IGltcG9ydAogZnJvbSByZXN1bHRzZGJweS52aWV3LnNpdGVfbWVu
dSBpbXBvcnQgU2l0ZU1lbnUKIGZyb20gcmVzdWx0c2RicHkudmlldy5zdWl0ZV92aWV3IGltcG9y
dCBTdWl0ZVZpZXcKIGZyb20gd2Vya3pldWcuZXhjZXB0aW9ucyBpbXBvcnQgSFRUUEV4Y2VwdGlv
biwgSW50ZXJuYWxTZXJ2ZXJFcnJvcgorZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEFz
c2VydFJlcXVlc3QsIGNhY2hlX2ZvcgogCiAKIGNsYXNzIFZpZXdSb3V0ZXMoQXV0aGVkQmx1ZXBy
aW50KToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvTUFOSUZF
U1QuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tw
eS9NQU5JRkVTVC5pbgkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRmbGFza3B5L01BTklGRVNULmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEgQEAKK2lu
Y2x1ZGUgUkVBRE1FLm1kCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFz
a3B5L1JFQURNRS5tZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRmbGFza3B5L1JFQURNRS5tZAkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRmbGFza3B5L1JFQURNRS5tZAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMg
QEAKKyMgd2Via2l0Zmxhc2tweQorCitQeXRob24gcGFja2FnZSB1c2VkIGJ5IHNvbWUgb2YgV2Vi
S2l0J3Mgd2ViIHNlcnZpY2VzIHRvIHNoYXJlIENTUyBhbmQgSmF2YVNjcmlwdC4KSW5kZXg6IFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvc2V0dXAucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS9zZXR1cC5weQkobm9uZXhp
c3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFza3B5L3NldHVwLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQK
KyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0Zmxhc2tweSBpbXBvcnQgdmVyc2lvbgorZnJvbSBz
ZXR1cHRvb2xzIGltcG9ydCBzZXR1cAorCisKK2RlZiByZWFkbWUoKToKKyAgICB3aXRoIG9wZW4o
J1JFQURNRS5tZCcpIGFzIGY6CisgICAgICAgIHJldHVybiBmLnJlYWQoKQorCisKK3NldHVwKAor
ICAgIG5hbWU9J3dlYmtpdGZsYXNrcHknLAorICAgIHZlcnNpb249c3RyKHZlcnNpb24pLAorICAg
IGRlc2NyaXB0aW9uPSdMaWJyYXJ5IGZvciB2aXN1YWxpemluZywgcHJvY2Vzc2luZyBhbmQgc3Rv
cmluZyB0ZXN0IHJlc3VsdHMuJywKKyAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAorICAg
IGNsYXNzaWZpZXJzPVsKKyAgICAgICAgJ0RldmVsb3BtZW50IFN0YXR1cyA6OiA0IC0gQmV0YScs
CisgICAgICAgICdGcmFtZXdvcmsgOjogRmxhc2snLAorICAgICAgICAnSW50ZW5kZWQgQXVkaWVu
Y2UgOjogRGV2ZWxvcGVycycsCisgICAgICAgICdMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBC
U0QgTGljZW5zZScsCisgICAgICAgICdPcGVyYXRpbmcgU3lzdGVtIDo6IE1hY09TJywKKyAgICAg
ICAgJ05hdHVyYWwgTGFuZ3VhZ2UgOjogRW5nbGlzaCcsCisgICAgICAgICdQcm9ncmFtbWluZyBM
YW5ndWFnZSA6OiBQeXRob24gOjogMyA6OiBPbmx5JywKKyAgICAgICAgJ1RvcGljIDo6IFNvZnR3
YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcyA6OiBQeXRob24gTW9kdWxlcycsCisgICAgICAg
ICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBUZXN0aW5nJywKKyAgICBdLAorICAg
IGtleXdvcmRzPSd3ZWIgamF2YXNjcmlwdCB3ZWJraXQnLAorICAgIHVybD0naHR0cHM6Ly9zdm4u
d2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC90cnVuay9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRmbGFza3B5JywKKyAgICBhdXRob3I9J0pvbmF0aGFuIEJlZGFyZCcsCisgICAgYXV0
aG9yX2VtYWlsPSdqYmVkYXJkQGFwcGxlLmNvbScsCisgICAgbGljZW5zZT0nTW9kaWZpZWQgQlNE
JywKKyAgICBwYWNrYWdlcz1bCisgICAgICAgICd3ZWJraXRmbGFza3B5JywKKyAgICBdLAorICAg
IGluc3RhbGxfcmVxdWlyZXM9WworICAgICAgICAnRmxhc2snLAorICAgICAgICAnRmxhc2stQ29y
cycsCisgICAgICAgICdndW5pY29ybicsCisgICAgICAgICd3ZWJraXRjb3JlcHknLAorICAgIF0s
CisgICAgaW5jbHVkZV9wYWNrYWdlX2RhdGE9VHJ1ZSwKKyAgICB6aXBfc2FmZT1GYWxzZSwKKykK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvd2Via2l0Zmxhc2tw
eS9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRmbGFza3B5L3dlYmtpdGZsYXNrcHkvX19pbml0X18ucHkJKG5vbmV4aXN0ZW50KQorKysgVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L19faW5pdF9f
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCisKK2RlZiBfbWF5YmVf
YWRkX3dlYmtpdGNvcmVweV9wYXRoKCk6CisgICAgIyBIb3BlZnVsbHkgd2UncmUgYmVzaWRlIHdl
YmtpdGNvcmVweSwgb3RoZXJ3aXNlIHdlYmtpdGNvcmVweSB3aWxsIG5lZWQgdG8gYmUgaW5zdGFs
bGVkLgorICAgIGxpYnJhcmllc19wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFt
ZShvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkpKQorICAgIHdlYmtp
dGNvcmVweV9wYXRoID0gb3MucGF0aC5qb2luKGxpYnJhcmllc19wYXRoLCAnd2Via2l0Y29yZXB5
JykKKyAgICBpZiBvcy5wYXRoLmlzZGlyKHdlYmtpdGNvcmVweV9wYXRoKSBhbmQgb3MucGF0aC5p
c2Rpcihvcy5wYXRoLmpvaW4od2Via2l0Y29yZXB5X3BhdGgsICd3ZWJraXRjb3JlcHknKSkgYW5k
IHdlYmtpdGNvcmVweV9wYXRoIG5vdCBpbiBzeXMucGF0aDoKKyAgICAgICAgc3lzLnBhdGguaW5z
ZXJ0KDAsIHdlYmtpdGNvcmVweV9wYXRoKQorCisKK19tYXliZV9hZGRfd2Via2l0Y29yZXB5X3Bh
dGgoKQorCit0cnk6CisgICAgZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IEF1dG9JbnN0YWxsLCBQ
YWNrYWdlLCBWZXJzaW9uCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcmFpc2UgSW1wb3J0RXJy
b3IoCisgICAgICAgICInd2Via2l0Y29yZXB5JyBjb3VsZCBub3QgYmUgZm91bmQgb24geW91ciBQ
eXRob24gcGF0aC5cbiIgKworICAgICAgICAiWW91IGFyZSBub3QgcnVubmluZyBmcm9tIGEgV2Vi
S2l0IGNoZWNrb3V0LlxuIiArCisgICAgICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkg
d2l0aCBgcGlwIGluc3RhbGwgd2Via2l0Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdl
IGluZGV4IFVSTD5gIgorICAgICkKKwordmVyc2lvbiA9IFZlcnNpb24oMCwgMSwgMCkKKworQXV0
b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnY2xpY2snKSwgVmVyc2lvbig3LCAxLCAyKSkKK0F1
dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2ZsYXNrJyksIFZlcnNpb24oMSwgMSwgMikpCitB
dXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdpdHNkYW5nZXJvdXMnKSwgVmVyc2lvbigyLCAw
LCAwKSkKK0F1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2ppbmphMicpLCBWZXJzaW9uKDMs
IDAsIDApKQorQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbWFya3Vwc2FmZScpLCBWZXJz
aW9uKDIsIDAsIDApKQorQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnd2Vya3pldWcnKSwg
VmVyc2lvbigxLCAwLCAxKSkKKworbmFtZSA9ICd3ZWJraXRmbGFza3B5JwpJbmRleDogVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L3V0aWwucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRm
bGFza3B5L3V0aWwucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L3V0aWwucHkJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMzEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYCJBUyBJUyIgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQganNvbgorZnJvbSBmbGFzayBpbXBvcnQgYWJvcnQsIHJlcXVlc3QKKworCitjbGFzcyBGbGFz
a0pTT05FbmNvZGVyKGpzb24uSlNPTkVuY29kZXIpOgorICAgICMgRmxhc2sncyBqc29uaWZ5IG9u
bHkgYWNjZXB0cyBhIGRpY3Rpb25hcnkgYW5kIGRvZXMgbm90IGFjY2VwdCBhIEpTT04gZW5jb2Rl
ci4gV2hlbiBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IEpTT04KKyAgICAjIGVuY29kZXIsIGVuY29k
ZXIuZGVmYXVsdCguLi4pIHdpbGwgcmV0dXJuIGEgZGljdGlvbmFyeSB0byBiZSBzZXJpYWxpemVk
LiBIb3dldmVyLCB0aGUgZGVmYXVsdCBlbmNvZGVyIHdpbGwgcmFpc2UKKyAgICAjIGFuIGV4Y2Vw
dGlvbiBpZiBkZWZhdWx0KC4uLikgaXMgY2FsbGVkIG9uIHByaW1hdGl2ZSBKU09OIHR5cGVzLiBJ
bXBsZW1lbnQgYSB2ZXJzaW9uIG9mIHRoZSBkZWZhdWx0IGVuY29kZXIgd2hpY2gKKyAgICAjIHBh
c3NlcyBwcmltYXRpdmUgSlNPTiB0eXBlcyBiYWNrIHRvIHRoZSBjYWxsZXIuCisgICAgZGVmIGRl
ZmF1bHQoc2VsZiwgb2JqKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIGRpY3QpOgorICAg
ICAgICAgICAgcmV0dXJuIHtrZXk6IHNlbGYuZGVmYXVsdCh2YWx1ZSkgZm9yIGtleSwgdmFsdWUg
aW4gb2JqLml0ZW1zKCl9CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBsaXN0KToKKyAgICAg
ICAgICAgIHJldHVybiBbc2VsZi5kZWZhdWx0KHZhbHVlKSBmb3IgdmFsdWUgaW4gb2JqXQorICAg
ICAgICByZXR1cm4gb2JqCisKKworY2xhc3MgQXNzZXJ0UmVxdWVzdChvYmplY3QpOgorICAgIEBj
bGFzc21ldGhvZAorICAgIGRlZiBpc190eXBlKGNscywgc3VwcG9ydGVkX3JlcXVlc3RzPU5vbmUp
OgorICAgICAgICBpZiBzdXBwb3J0ZWRfcmVxdWVzdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHN1
cHBvcnRlZF9yZXF1ZXN0cyA9IFsnR0VUJ10KKyAgICAgICAgaWYgbm90IHN1cHBvcnRlZF9yZXF1
ZXN0czoKKyAgICAgICAgICAgIGFib3J0KDUwMCwgZGVzY3JpcHRpb249J0VuZHBvaW50IGRvZXMg
bm90IHN1cHBvcnQgYW55IHJlcXVlc3RzJykKKyAgICAgICAgaWYgcmVxdWVzdC5tZXRob2Qgbm90
IGluIHN1cHBvcnRlZF9yZXF1ZXN0czoKKyAgICAgICAgICAgIGFib3J0KDQwNSwgZGVzY3JpcHRp
b249J0VuZHBvaW50IG9ubHkgc3VwcG9ydHMge30gcmVxdWVzdHMnLmZvcm1hdCgKKyAgICAgICAg
ICAgICAgICBzdXBwb3J0ZWRfcmVxdWVzdHNbMF0gaWYgbGVuKHN1cHBvcnRlZF9yZXF1ZXN0cykg
PT0gMSBlbHNlICcsICcuam9pbihzdXBwb3J0ZWRfcmVxdWVzdHNbOi0xXSkgKyAnIGFuZCAnICsg
c3VwcG9ydGVkX3JlcXVlc3RzWy0xXSwKKyAgICAgICAgICAgICkpCisKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgbm9fcXVlcnkoY2xzKToKKyAgICAgICAgaWYgcmVxdWVzdC5xdWVyeV9zdHJp
bmc6CisgICAgICAgICAgICBhYm9ydCg0MDAsIGRlc2NyaXB0aW9uPSdRdWVyaWVzIG5vdCBzdXBw
b3J0ZWQgb24gdGhpcyBlbmRwb2ludCcpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcXVl
cnlfa3dhcmdzX2VtcHR5KGNscywgKiprd2FyZ3MpOgorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBp
biBrd2FyZ3MuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIHZhbHVlOgorICAgICAgICAgICAgICAg
IGFib3J0KDQwMCwgZGVzY3JpcHRpb249Iid7fScgbm90IHN1cHBvcnRlZCBpbiBxdWVyaWVzIGJ5
IHRoaXMgZW5kcG9pbnQiLmZvcm1hdChrZXkpKQorCisKK2RlZiBxdWVyeV9hc19rd2FyZ3MoKToK
KyAgICBkZWYgZGVjb3JhdG9yKG1ldGhvZCk6CisgICAgICAgIGRlZiByZWFsX21ldGhvZCh2YWws
IG1ldGhvZD1tZXRob2QsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGlu
IHJlcXVlc3QuYXJncy50b19kaWN0KGZsYXQ9RmFsc2UpLml0ZW1zKCk6CisgICAgICAgICAgICAg
ICAgaWYga2V5IGluIGt3YXJnczoKKyAgICAgICAgICAgICAgICAgICAgYWJvcnQoNDAwLCBkZXNj
cmlwdGlvbj0ne30gaXMgbm90IGEgdmFsaWQgcXVlcnkgcGFyYW1ldGVyIG9uIHRoaXMgZW5kcG9p
bnQnLmZvcm1hdChrZXkpKQorICAgICAgICAgICAgICAgIGt3YXJnc1trZXldID0gdHVwbGUodmFs
dWUpCisgICAgICAgICAgICByZXR1cm4gbWV0aG9kKHZhbCwgKiprd2FyZ3MpCisKKyAgICAgICAg
cmVhbF9tZXRob2QuX19uYW1lX18gPSBtZXRob2QuX19uYW1lX18KKyAgICAgICAgcmV0dXJuIHJl
YWxfbWV0aG9kCisgICAgcmV0dXJuIGRlY29yYXRvcgorCisKK2RlZiBxdWVyeV9hc19zdHJpbmco
KToKKyAgICBxdWVyeSA9ICc/JworICAgIGZvciBrZXksIHZhbHVlcyBpbiByZXF1ZXN0LmFyZ3Mu
dG9fZGljdChmbGF0PUZhbHNlKS5pdGVtcygpOgorICAgICAgICBmb3IgdmFsdWUgaW4gdmFsdWVz
OgorICAgICAgICAgICAgcXVlcnkgKz0gJ3t9PXt9JicuZm9ybWF0KGtleSwgdmFsdWUpCisgICAg
cmV0dXJuIHF1ZXJ5WzotMV0KKworCitkZWYgYm9vbGVhbl9xdWVyeSgqYXJncyk6CisKKyAgICBk
ZWYgZnVuYyhzdHJpbmcpOgorICAgICAgICBpZiBzdHJpbmcubG93ZXIoKSBpbiBbJ3RydWUnLCAn
eWVzJ106CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICByZXR1cm4gYm9vbChpbnQoc3RyaW5nKSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Cisg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIHJldHVybiBbZnVuYyhhcmcpIGZvciBhcmcg
aW4gYXJnc10KKworCitkZWYgbGltaXRfZm9yX3F1ZXJ5KGRlZmF1bHRfbGltaXQ9MTAwKToKKyAg
ICBkZWYgZGVjb3JhdG9yKG1ldGhvZCk6CisgICAgICAgIGRlZiByZWFsX21ldGhvZChzZWxmPU5v
bmUsIG1ldGhvZD1tZXRob2QsIGxpbWl0PU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGxp
bWl0X3RvX3VzZSA9IGRlZmF1bHRfbGltaXQKKyAgICAgICAgICAgIGlmIGxpbWl0OgorICAgICAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgbGltaXRfdG9fdXNlID0gaW50KGxp
bWl0Wy0xXSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbGltaXRfdG9fdXNlIDw9IDA6CisgICAg
ICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgICAgICAgICBl
eGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlw
dGlvbj0nTGltaXQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXInKQorICAgICAgICAgICAgaWYg
c2VsZjoKKyAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kKHNlbGY9c2VsZiwgbGltaXQ9bGlt
aXRfdG9fdXNlLCAqKmt3YXJncykKKyAgICAgICAgICAgIHJldHVybiBtZXRob2QobGltaXQ9bGlt
aXRfdG9fdXNlLCAqKmt3YXJncykKKworICAgICAgICByZWFsX21ldGhvZC5fX25hbWVfXyA9IG1l
dGhvZC5fX25hbWVfXworICAgICAgICByZXR1cm4gcmVhbF9tZXRob2QKKyAgICByZXR1cm4gZGVj
b3JhdG9yCisKKworZGVmIGNhY2hlX2Zvcihob3Vycz0xMik6CisgICAgZGVmIGRlY29yYXRvciht
ZXRob2QpOgorICAgICAgICBkZWYgcmVhbF9tZXRob2Qoc2VsZj1Ob25lLCBtZXRob2Q9bWV0aG9k
LCAqKmt3YXJncyk6CisgICAgICAgICAgICBpZiBzZWxmOgorICAgICAgICAgICAgICAgIHJlc3Bv
bnNlID0gbWV0aG9kKHNlbGY9c2VsZiwgKiprd2FyZ3MpCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIHJlc3BvbnNlID0gbWV0aG9kKCoqa3dhcmdzKQorICAgICAgICAgICAgcmVz
cG9uc2UuaGVhZGVycy5hZGQoJ0NhY2hlLUNvbnRyb2wnLCAncHVibGljLG1heC1hZ2U9e30nLmZv
cm1hdChob3VycyAqIDYwICogNjApKQorICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAg
ICAgICAgcmVhbF9tZXRob2QuX19uYW1lX18gPSBtZXRob2QuX19uYW1lX18KKyAgICAgICAgcmV0
dXJuIHJlYWxfbWV0aG9kCisgICAgcmV0dXJuIGRlY29yYXRvcgpJbmRleDogVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L3V0aWxfdW5pdHRlc3QucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJr
aXRmbGFza3B5L3V0aWxfdW5pdHRlc3QucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS93ZWJraXRmbGFza3B5L3V0aWxfdW5pdHRlc3QucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Vya3pldWcuZXhjZXB0aW9u
cyBpbXBvcnQgQmFkUmVxdWVzdAorZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IGJvb2xl
YW5fcXVlcnksIGxpbWl0X2Zvcl9xdWVyeQorCisKK2NsYXNzIFV0aWxUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2Jvb2xlYW5fcXVlcnkoc2VsZik6CisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShhbGwoYm9vbGVhbl9xdWVyeSgnVHJ1ZScsICd0cnVlJykpKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoYWxsKGJvb2xlYW5fcXVlcnkoJ1llcycsICd5ZXMnKSkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbGwoYm9vbGVhbl9xdWVyeSgnMScsICcxMDAnKSkpCisKKyAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShhbnkoYm9vbGVhbl9xdWVyeSgnRmFsc2UnLCAnZmFsc2Un
KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYW55KGJvb2xlYW5fcXVlcnkoJ05vJywgJ25v
JykpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGFueShib29sZWFuX3F1ZXJ5KCcwJywgJ2Fu
eSBzdHJpbmcnKSkpCisKKyAgICBkZWYgdGVzdF9saW1pdF9kZWNvcmF0b3Ioc2VsZik6CisgICAg
ICAgIEBsaW1pdF9mb3JfcXVlcnkoKQorICAgICAgICBkZWYgZnVuYyhsaW1pdD1Ob25lKToKKyAg
ICAgICAgICAgIHJldHVybiBsaW1pdAorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygp
LCAxMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYyhsaW1pdD1bJzEwJ10pLCAxMCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKGxpbWl0PVsnMTAnLCAnMSddKSwgMSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQmFkUmVxdWVzdCwgZnVuYywgbGltaXQ9WydzdHJpbmcn
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQmFkUmVxdWVzdCwgZnVuYywgbGltaXQ9Wycw
J10pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJhZFJlcXVlc3QsIGZ1bmMsIGxpbWl0PVsn
LTEnXSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5CShyZXZpc2lvbiAyNjkx
MTApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weQkod29ya2luZyBjb3B5
KQpAQCAtNjQsNiArNjQsNyBAQCBkZWYgbWFpbigpOgogICAgIHRlc3Rlci5hZGRfdHJlZShvcy5w
YXRoLmpvaW4oX3dlYmtpdF9yb290LCAnVG9vbHMnLCAnU2NyaXB0cycpLCAnd2Via2l0cHknKQog
ICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4oX3dlYmtpdF9yb290LCAnVG9vbHMnLCAn
U2NyaXB0cycsICdsaWJyYXJpZXMnLCAnd2Via2l0Y29yZXB5JyksICd3ZWJraXRjb3JlcHknKQog
ICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4oX3dlYmtpdF9yb290LCAnVG9vbHMnLCAn
U2NyaXB0cycsICdsaWJyYXJpZXMnLCAnd2Via2l0c2NtcHknKSwgJ3dlYmtpdHNjbXB5JykKKyAg
ICB0ZXN0ZXIuYWRkX3RyZWUob3MucGF0aC5qb2luKF93ZWJraXRfcm9vdCwgJ1Rvb2xzJywgJ1Nj
cmlwdHMnLCAnbGlicmFyaWVzJywgJ3dlYmtpdGZsYXNrcHknKSwgJ3dlYmtpdGZsYXNrcHknKQog
CiAgICAgIyBUaGVyZSBpcyBubyBXZWJLaXQyIG9uIFdpbmRvd3MsIHNvIHdlIGRvbid0IG5lZWQg
dG8gcnVuIFdlYktpdDIgdW5pdHRlc3RzIG9uIGl0LgogICAgIGlmIG5vdCAoc3lzLnBsYXRmb3Jt
LnN0YXJ0c3dpdGgoJ3dpbicpIG9yIHN5cy5wbGF0Zm9ybSA9PSAnY3lnd2luJyk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>