<?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>215290</bug_id>
          
          <creation_ts>2020-08-07 13:28:10 -0700</creation_ts>
          <short_desc>[macOS] It should be possible to override spellchecking results in WebKitTestRunner</short_desc>
          <delta_ts>2020-08-07 16:06:34 -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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1678717</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-07 13:28:10 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678726</commentid>
    <comment_count>1</comment_count>
      <attachid>406207</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-07 13:43:58 -0700</bug_when>
    <thetext>Created attachment 406207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678766</commentid>
    <comment_count>2</comment_count>
      <attachid>406207</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-08-07 15:22:17 -0700</bug_when>
    <thetext>Comment on attachment 406207
Patch

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

r=me

&gt; LayoutTests/editing/spelling/markers.html:83
&gt; +    element = e;

NIT: rather than declare the globals using `let`, I think you can use `window.element = null` and then just set `window.element = element` (changing `e` to `element`) here to avoid the naming collision/confusion :)

&gt; LayoutTests/editing/spelling/markers.html:92
&gt; +        misspellingData = misspelling;

ditto (:83)

&gt; LayoutTests/editing/spelling/markers.html:109
&gt; +    element = e;

ditto (:83)

&gt; LayoutTests/editing/spelling/markers.html:118
&gt; +        misspellingData = misspelling;

ditto (:83)

&gt; LayoutTests/editing/spelling/markers.html:123
&gt; +            oppositeMarker = &quot;spelling&quot;;

ditto (:83)

&gt; LayoutTests/editing/spelling/markers.html:125
&gt; +            oppositeMarker = &quot;grammar&quot;;

ditto (:83)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678769</commentid>
    <comment_count>3</comment_count>
      <attachid>406207</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-07 15:25:44 -0700</bug_when>
    <thetext>Comment on attachment 406207
Patch

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

&gt;&gt; LayoutTests/editing/spelling/markers.html:83
&gt;&gt; +    element = e;
&gt; 
&gt; NIT: rather than declare the globals using `let`, I think you can use `window.element = null` and then just set `window.element = element` (changing `e` to `element`) here to avoid the naming collision/confusion :)

Sounds good!

&gt;&gt; LayoutTests/editing/spelling/markers.html:92
&gt;&gt; +        misspellingData = misspelling;
&gt; 
&gt; ditto (:83)

👍🏻

&gt;&gt; LayoutTests/editing/spelling/markers.html:109
&gt;&gt; +    element = e;
&gt; 
&gt; ditto (:83)

👍🏻

&gt;&gt; LayoutTests/editing/spelling/markers.html:118
&gt;&gt; +        misspellingData = misspelling;
&gt; 
&gt; ditto (:83)

👍🏻

&gt;&gt; LayoutTests/editing/spelling/markers.html:123
&gt;&gt; +            oppositeMarker = &quot;spelling&quot;;
&gt; 
&gt; ditto (:83)

👍🏻

&gt;&gt; LayoutTests/editing/spelling/markers.html:125
&gt;&gt; +            oppositeMarker = &quot;grammar&quot;;
&gt; 
&gt; ditto (:83)

👍🏻</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678772</commentid>
    <comment_count>4</comment_count>
      <attachid>406219</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-07 15:30:58 -0700</bug_when>
    <thetext>Created attachment 406219
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678793</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-07 16:05:42 -0700</bug_when>
    <thetext>Committed r265396: &lt;https://trac.webkit.org/changeset/265396&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406219.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678797</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-07 16:06:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/66704754&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406207</attachid>
            <date>2020-08-07 13:43:58 -0700</date>
            <delta_ts>2020-08-07 15:22:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215290-20200807134357.patch</filename>
            <type>text/plain</type>
            <size>31070</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mzc2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDE4N2I4YjllYTA0NGE2NjBhMzI2YzIwN2ZlNjAzMGI2
YWVjM2UxMy4uNjI0Y2IzNmI4YTc4YzJjZDBiNjI0MmEwZmQ5ZjcxZTI3ZDcxYTU2ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDIwLTA4LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFttYWNPU10gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIG92ZXJyaWRlIHNwZWxs
Y2hlY2tpbmcgcmVzdWx0cyBpbiBXZWJLaXRUZXN0UnVubmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUyOTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBgc2V0U3BlbGxDaGVja2VyUmVz
dWx0c2Agc28gdGhhdCBpdCBpcyBvbiBgVUlTY3JpcHRDb250cm9sbGVyYCBpbnN0ZWFkIG9mIGBU
ZXN0UnVubmVyYCwgc3VjaCB0aGF0IGl0CisgICAgICAgIGNhbiBiZSB0cmlnZ2VyZWQgYXN5bmNo
cm9ub3VzbHkgZnJvbSBhIGxheW91dCB0ZXN0LiBUaGlzIGFsbG93cyB0aGUgdGVzdGluZyBob29r
IHRvIHdvcmsgaW4gV2ViS2l0Miwgd2hlcmUgdGhlCisgICAgICAgIHN3aXp6bGVkIHNwZWxsIGNo
ZWNrZXIgaXMgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6Cisg
ICAgICAgIChzZXRTcGVsbENoZWNrZXJSZXN1bHRzQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmg6CisKKyAgICAgICAgQWRkIGEgbWV0aG9kIGlt
cGxlbWVudGF0aW9uIHN0dWIgZm9yIGlPUy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21h
Yy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2Vy
UmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0
Q29udHJvbGxlck1hYy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENv
bnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlck1hYzo6c2V0
U3BlbGxDaGVja2VyUmVzdWx0cyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RS
dW5uZXJXaW4uY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyTG9nZ2lu
Z0VuYWJsZWQpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cyk6
IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmlu
ZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdUUjo6VUlT
Y3JpcHRDb250cm9sbGVyOjpzZXRTcGVsbENoZWNrZXJSZXN1bHRzKToKKyAgICAgICAgKiBUZXN0
UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIuaDoKKyAgICAgICAgKiBU
ZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIubW06CisgICAgICAg
ICgtW0xheW91dFRlc3RTcGVsbENoZWNrZXIgc2V0UmVzdWx0c0Zyb21KU1ZhbHVlOmluQ29udGV4
dDpdKToKKyAgICAgICAgKC1bTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciBzZXRSZXN1bHRzRnJvbUpT
T2JqZWN0OmluQ29udGV4dDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L21hYy9UZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisKKyAgICAgICAgTWFrZSBz
dXJlIHRoYXQgd2UgdW5pbnN0YWxsIHRoZSBzd2l6emxlZCBgTGF5b3V0VGVzdFNwZWxsQ2hlY2tl
cmAgYmV0d2VlbiB0ZXN0cy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2Ny
aXB0Q29udHJvbGxlck1hYy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2Ny
aXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyTWFj
OjpzZXRTcGVsbENoZWNrZXJSZXN1bHRzKToKKwogMjAyMC0wOC0wNyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgVUlTY3JpcHRDb250cm9s
bGVyLnJlbW92ZUFsbER5bmFtaWNEaWN0aW9uYXJpZXMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVu
bmVyLmNwcAppbmRleCA5ZmQzMDEzMGI0YTI4MzBlY2RiZmZlOGY1YzdjMDQxNGUyYjRlYzdlLi45
NDUyZTRhMGM0YmJhODU3ODBiOWFhYjM2NjUwOGE1ZWJiODM1OWRiIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmNwcApAQCAtMTc3NCwxNiArMTc3NCw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVm
IHNldFNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1z
dGF0aWMgSlNWYWx1ZVJlZiBzZXRTcGVsbENoZWNrZXJSZXN1bHRzQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgYXV0byogcnVu
bmVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2Jq
ZWN0KSk7Ci0gICAgcnVubmVyLT5zZXRTcGVsbENoZWNrZXJSZXN1bHRzKGNvbnRleHQsIEpTVmFs
dWVUb09iamVjdChjb250ZXh0LCBhcmd1bWVudHNbMF0sIG51bGxwdHIpKTsKLSAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNl
dE9wZW5QYW5lbEZpbGVzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewog
ICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpCkBAIC0yMzAxLDcgKzIyOTEsNiBAQCBKU1N0YXRp
Y0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJydW5V
SVNjcmlwdCIsIHJ1blVJU2NyaXB0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiaW1hZ2VD
b3VudEluR2VuZXJhbFBhc3RlYm9hcmQiLCBpbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVk
Iiwgc2V0U3BlbGxDaGVja2VyTG9nZ2luZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAg
ICB7ICJzZXRTcGVsbENoZWNrZXJSZXN1bHRzIiwgc2V0U3BlbGxDaGVja2VyUmVzdWx0c0NhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE9wZW5QYW5lbEZpbGVzIiwgc2V0T3BlblBhbmVs
RmlsZXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRPcGVuUGFuZWxGaWxlc01lZGlh
SWNvbiIsIFNldE9wZW5QYW5lbEZpbGVzTWVkaWFJY29uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAiZm9yY2VJbW1lZGlhdGVDb21wbGV0aW9uIiwgZm9yY2VJbW1lZGlhdGVDb21wbGV0aW9u
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCA3NTlkNWUz
ODNjYTdmOTAzYmNhN2U2MGNmN2VmMDgxMmZmY2MzMWRiLi4xM2Q5NWQ4ZjE0ZDczZGNmOTRkZDM4
ZTY5OTBmYjE5ZjNkMDgwYWViIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC0zODQs
NyArMzg0LDYgQEAgcHVibGljOgogICAgIGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkg
Y29uc3QgeyByZXR1cm4gbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnI7IH0KIAogICAgIHZvaWQg
c2V0U3BlbGxDaGVja2VyTG9nZ2luZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRTcGVsbENo
ZWNrZXJSZXN1bHRzKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgcmVzdWx0cyk7CiAKICAgICBj
b25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIG9wZW5QYW5lbEZpbGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcGVuUGFuZWxGaWxlczsgfQogICAgIHZvaWQgc2V0T3BlblBhbmVsRmlsZXMoSlND
b250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9V
SVNjcmlwdENvbnRyb2xsZXJJT1MuaAppbmRleCBkNDQyNGEwZTU4MzMxNGM1MWJjZTRmZjUyYzA1
MzgxOGJiOGEzY2MzLi4yYjg1MTFlOWM5NzU0YzQ0NTQ4MjhjYTc0ZjQ5MDYzMjUwOGVmZjUyIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5o
CkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICBkb3VibGUgbWF4aW11bVpvb21TY2FsZSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIEpTT2JqZWN0UmVmIGNvbnRlbnRWaXNpYmxlUmVjdCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29weVRleHQoSlNTdHJpbmdSZWYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc2V0U3BlbGxDaGVja2VyUmVzdWx0cyhKU1ZhbHVlUmVmKSBvdmVycmlkZSB7IH0K
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXgg
ODU5ODk2NzViZTFiYWM4MGZlYmRmYTRhYzE4NjZlMWRmYjM2MjE1My4uZWJhMDkzZWUxODdjZDMx
MGQwNTFiMjMwYWVkMmEzMDBmZTc5NDljMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rl
c3RSdW5uZXJNYWMubW0KQEAgLTIxMCwxNiArMjEwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRT
cGVsbENoZWNrZXJMb2dnaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAjZW5kaWYKIH0KIAotdm9p
ZCBUZXN0UnVubmVyOjpzZXRTcGVsbENoZWNrZXJSZXN1bHRzKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiByZXN1bHRzKQotewotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBbW0xheW91
dFRlc3RTcGVsbENoZWNrZXIgY2hlY2tlcl0gc2V0UmVzdWx0c0Zyb21KU09iamVjdDpyZXN1bHRz
IGluQ29udGV4dDpjb250ZXh0XTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHJlc3VsdHMpOwot
ICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKLSNlbmRpZgotfQotCiB2b2lkIFRlc3RSdW5uZXI6
OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCiB7CiAgICAgW1dlYlN0b3JhZ2VNYW5h
Z2VyIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlc107CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLmggYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLmgKaW5kZXggNWFhNGExZDNkZTY1OGQ4
NjFjYTQwOTI4OTYyYjdlYmQ4MzA5NWRiMC4uZWM5ZjYxOTdiMjFiODExNmQxYTJjMjlkMzYxM2I0
YzFkZDUxMTk4OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0
Q29udHJvbGxlck1hYy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENv
bnRyb2xsZXJNYWMuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgTlNVbmRvTWFuYWdl
ciAqcGxhdGZvcm1VbmRvTWFuYWdlcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29weVRl
eHQoSlNTdHJpbmdSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgYWN0aXZhdGVEYXRhTGlzdFN1Z2dl
c3Rpb24odW5zaWduZWQsIEpTVmFsdWVSZWYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U3BlbGxD
aGVja2VyUmVzdWx0cyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0gYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCmluZGV4IGM4ZWE4
MWY2MjdlNmEwZjg1MDI0NWVkMzM3YWI0N2ExN2I2MTk2ZmMuLmUxMWZhMzJjZWM2YTA4NGJhMDFk
OTdlYzgxYmQ2NjIxNTJkM2FhNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JN
KE1BQykKIAogI2ltcG9ydCAiRHVtcFJlbmRlclRyZWUuaCIKKyNpbXBvcnQgIkxheW91dFRlc3RT
cGVsbENoZWNrZXIuaCIKICNpbXBvcnQgIlVJU2NyaXB0Q29udGV4dC5oIgogI2ltcG9ydCA8SmF2
YVNjcmlwdENvcmUvSlNDb250ZXh0Lmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmlu
Z1JlZkNGLmg+CkBAIC0xNjcsNiArMTY4LDExIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyTWFj
Ojpjb3B5VGV4dChKU1N0cmluZ1JlZiB0ZXh0KQogICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzp0
ZXh0LT5zdHJpbmcoKSBmb3JUeXBlOk5TUGFzdGVib2FyZFR5cGVTdHJpbmddOwogfQogCit2b2lk
IFVJU2NyaXB0Q29udHJvbGxlck1hYzo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cyhKU1ZhbHVlUmVm
IHJlc3VsdHMpCit7CisgICAgW1tMYXlvdXRUZXN0U3BlbGxDaGVja2VyIGNoZWNrZXJdIHNldFJl
c3VsdHNGcm9tSlNWYWx1ZTpyZXN1bHRzIGluQ29udGV4dDptX2NvbnRleHQtPmpzQ29udGV4dCgp
XTsKK30KKwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCmluZGV4IGNmZmQ3ZjhjNWNkMWRmOWRiYjQ3ZmE0N2Y1
YTZjMDI4YTkyZmJmNWYuLmVjOTljYzEzMWUzMTBhZGQzZWUxZjg0YmU0NDI0MmUwYjdjODA4MDQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKQEAgLTE0MTUs
OCArMTQxNSwzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyTG9nZ2luZ0VuYWJs
ZWQoYm9vbCBlbmFibGVkKQogewogICAgIGZwcmludGYodGVzdFJlc3VsdCwgIkVSUk9SOiBUZXN0
UnVubmVyOjpzZXRTcGVsbENoZWNrZXJMb2dnaW5nRW5hYmxlZCgpIG5vdCBpbXBsZW1lbnRlZFxu
Iik7CiB9Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cyhKU0NvbnRl
eHRSZWYsIEpTT2JqZWN0UmVmKQotewotICAgIGZwcmludGYodGVzdFJlc3VsdCwgIkVSUk9SOiBU
ZXN0UnVubmVyOjpzZXRTcGVsbENoZWNrZXJSZXN1bHRzKCkgbm90IGltcGxlbWVudGVkXG4iKTsK
LX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0Jp
bmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCmluZGV4IGM5Mjlk
ZmUwNjcxMzNlMjhhNTlmMjZiZTM1MWMwYTk3NzY1MjEyM2QuLjllYzRiY2FiMDgxYTkxZWYzZjQw
NWRkNzUzYmJjNTk5N2EzZmFjMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKKysrIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250
cm9sbGVyLmlkbApAQCAtNzksNiArNzksNyBAQCBpbnRlcmZhY2UgVUlTY3JpcHRDb250cm9sbGVy
IHsKICAgICB2b2lkIGtleURvd24oRE9NU3RyaW5nIGNoYXJhY3Rlciwgb2JqZWN0IG1vZGlmaWVy
QXJyYXkpOwogICAgIHZvaWQgdG9nZ2xlQ2Fwc0xvY2sob2JqZWN0IGNhbGxiYWNrKTsKICAgICB2
b2lkIHNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwor
ICAgIHZvaWQgc2V0U3BlbGxDaGVja2VyUmVzdWx0cyhvYmplY3QgcmVzdWx0cyk7CiAKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBrZXlib2FyZElzQXV0b21hdGljYWxseVNoaWZ0ZWQ7
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggNTgzMmVhZWJlNzE5MWE1ZjA0NDhiNDQxMTY4
MWU4NGI2OTUwZWNhYi4uMmM2MzgwMjBhZWZiZjdlYjZkMTA0ODMyMGJhMzlmZjE0YjhhMjNhOSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3Jp
cHRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmgKQEAgLTE2NCw2ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGtleURvd24oSlNTdHJpbmdSZWYgY2hhcmFjdGVyLCBKU1ZhbHVlUmVmIG1v
ZGlmaWVyQXJyYXkpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCB0b2dn
bGVDYXBzTG9jayhKU1ZhbHVlUmVmIGNhbGxiYWNrKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpIHsg
bm90SW1wbGVtZW50ZWQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRTcGVsbENoZWNrZXJSZXN1
bHRzKEpTVmFsdWVSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBr
ZXlib2FyZElzQXV0b21hdGljYWxseVNoaWZ0ZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgbm90
SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2Ev
TGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9M
YXlvdXRUZXN0U3BlbGxDaGVja2VyLmgKaW5kZXggZTc0MWM1N2Y1MWUyZmQ4NGU0NTI3MTYwOThl
M2UzYTE1MWQ1NzMxYy4uNmY5YmZiYmIyOTdlNzYwY2NlNjdkNGI3MTk1OTI3OTcwZjlkMzAxZSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxD
aGVja2VyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3Bl
bGxDaGVja2VyLmgKQEAgLTQzLDcgKzQzLDcgQEAgdXNpbmcgVGV4dENoZWNraW5nUmVzdWx0c0Rp
Y3Rpb25hcnkgPSBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNBcnJheTxMYXlvdXRUZXMKICsg
KGluc3RhbmNldHlwZSljaGVja2VyOwogKyAodm9pZCl1bmluc3RhbGxBbmRSZXNldDsKIAotLSAo
dm9pZClzZXRSZXN1bHRzRnJvbUpTT2JqZWN0OihKU09iamVjdFJlZilyZXN1bHRzT2JqZWN0IGlu
Q29udGV4dDooSlNDb250ZXh0UmVmKWNvbnRleHQ7CistICh2b2lkKXNldFJlc3VsdHNGcm9tSlNW
YWx1ZTooSlNWYWx1ZVJlZilyZXN1bHRzIGluQ29udGV4dDooSlNDb250ZXh0UmVmKWNvbnRleHQ7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgVGV4dENoZWNraW5nUmVzdWx0c0RpY3Rpb25h
cnkgKnJlc3VsdHM7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzcGVsbENoZWNrZXJMb2dn
aW5nRW5hYmxlZDsKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29j
b2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbSBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29j
b2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbQppbmRleCA3YTFkM2Y3NjExNTg3NDAyYjBkMTRh
ZDc2NGZiZGRlODNlMzg3MTYxLi44ZmMwMjExNjdhYWMyMjE1MzZhMTc2NmU1MzkwMTlmZTY0NDA1
OGUxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RT
cGVsbENoZWNrZXIubW0KKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRU
ZXN0U3BlbGxDaGVja2VyLm1tCkBAIC0yMDksOCArMjA5LDkgQEAgLSAodm9pZClzZXRSZXN1bHRz
OihUZXh0Q2hlY2tpbmdSZXN1bHRzRGljdGlvbmFyeSAqKXJlc3VsdHMKICAgICBfcmVzdWx0cyA9
IGFkb3B0TlMocmVzdWx0cy5jb3B5KTsKIH0KIAotLSAodm9pZClzZXRSZXN1bHRzRnJvbUpTT2Jq
ZWN0OihKU09iamVjdFJlZilyZXN1bHRzT2JqZWN0IGluQ29udGV4dDooSlNDb250ZXh0UmVmKWNv
bnRleHQKKy0gKHZvaWQpc2V0UmVzdWx0c0Zyb21KU1ZhbHVlOihKU1ZhbHVlUmVmKXJlc3VsdHNW
YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dFJlZiljb250ZXh0CiB7CisgICAgYXV0byByZXN1bHRz
T2JqZWN0ID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIHJlc3VsdHNWYWx1ZSwgbnVsbHB0cik7
CiAgICAgYXV0byBmcm9tUHJvcGVydHlOYW1lID0gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoImZyb20iKSk7CiAgICAgYXV0byB0b1Byb3BlcnR5TmFtZSA9IGFkb3B0KEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ0byIpKTsKICAgICBhdXRvIHR5cGVQcm9wZXJ0eU5h
bWUgPSBhZG9wdChKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygidHlwZSIpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKaW5k
ZXggNmZiMTY5Y2ZkMDc1MTUzZTVjZTdjOThjZGU3ZTViMGYxM2RlNzJiNC4uMTdiYWE4ZmQxNDgz
MTZmOTNjMGU3MGY2ZjZlODYyM2UyMGEyMjQ2MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKQEAgLTE0NSw2ICsxNDUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjb3B5VGV4dChKU1N0cmluZ1JlZikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBpbnN0YWxsVGFwR2VzdHVyZU9uV2luZG93KEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIGJv
b2wgaXNTaG93aW5nQ29udGV4dE1lbnUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNw
ZWxsQ2hlY2tlclJlc3VsdHMoSlNWYWx1ZVJlZikgb3ZlcnJpZGUgeyB9CiAKICAgICBib29sIG1h
eUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0KHVuc2lnbmVkIHgsIHVuc2lnbmVkIHksIHVu
c2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IDZiNzVlNmE2YTM0
ZWJhMWMxNzQ5NzFkNjUzYjU5YTEzY2QxNDk3NzMuLjE0YjdkYzlkMGYyNGVjMTBlNzhhYzJiMGUw
MzY1YTllYTY0OWFiMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rl
c3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RD
b250cm9sbGVyTWFjLm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNp
bXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgIkxheW91dFRlc3RTcGVsbENoZWNr
ZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgogI2ltcG9ydCAiUG9zZUFzQ2xhc3Mu
aCIKICNpbXBvcnQgIlRlc3RJbnZvY2F0aW9uLmgiCkBAIC0xNjAsNiArMTYxLDggQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVz
KCkKIAogYm9vbCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50
VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogeworICAgIFtMYXlvdXRUZXN0U3Bl
bGxDaGVja2VyIHVuaW5zdGFsbEFuZFJlc2V0XTsKKwogICAgIGNvY29hUmVzZXRTdGF0ZVRvQ29u
c2lzdGVudFZhbHVlcyhvcHRpb25zKTsKIAogICAgIHdoaWxlIChbTlNBcHAgbmV4dEV2ZW50TWF0
Y2hpbmdNYXNrOk5TRXZlbnRNYXNrR2VzdHVyZSB8IE5TRXZlbnRNYXNrU2Nyb2xsV2hlZWwgdW50
aWxEYXRlOm5pbCBpbk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgZGVxdWV1ZTpZRVNdKSB7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJN
YWMuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5o
CmluZGV4IDYxMjE1OTJmMmQ3ZGYwZDgzMTE4ODY3NWRiNWFhYjIyNTJmNjc0YWEuLjE3YTM0NWI2
MjA2YjQxMjkzOGQ5ZTZhZDU0NjBmMjBjMDBjNmYwNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5oCkBAIC01NCw2ICs1NCw3IEBA
IHB1YmxpYzoKICAgICBOU1ZpZXcgKnBsYXRmb3JtQ29udGVudFZpZXcoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIGNsZWFyQWxsQ2FsbGJhY2tzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb3B5
VGV4dChKU1N0cmluZ1JlZikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTcGVsbENoZWNrZXJSZXN1
bHRzKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjaG9vc2VNZW51QWN0aW9uKEpT
U3RyaW5nUmVmLCBKU1ZhbHVlUmVmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCmluZGV4IGU5NTZlZWQ5MmEw
YTU4NzgzNjZlYzUzMDA5NzIyNDE2OTg4NTY3OWMuLjhhNmRiNjQ1NmRkYWVkOWFkNTY2NWE2MjVj
YjhhNTUxYTc2YjNmMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9V
SVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiRXZl
bnRTZW5kZXJQcm94eS5oIgogI2ltcG9ydCAiRXZlbnRTZXJpYWxpemVyTWFjLmgiCisjaW1wb3J0
ICJMYXlvdXRUZXN0U3BlbGxDaGVja2VyLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVZpZXdIZWxwZXJz
LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbXBvcnQgIlBsYXRmb3JtV2ViVmll
dy5oIgpAQCAtMjYzLDQgKzI2NCw5IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyTWFjOjpjb3B5
VGV4dChKU1N0cmluZ1JlZiB0ZXh0KQogICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzp0ZXh0LT5z
dHJpbmcoKSBmb3JUeXBlOk5TUGFzdGVib2FyZFR5cGVTdHJpbmddOwogfQogCit2b2lkIFVJU2Ny
aXB0Q29udHJvbGxlck1hYzo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cyhKU1ZhbHVlUmVmIHJlc3Vs
dHMpCit7CisgICAgW1tMYXlvdXRUZXN0U3BlbGxDaGVja2VyIGNoZWNrZXJdIHNldFJlc3VsdHNG
cm9tSlNWYWx1ZTpyZXN1bHRzIGluQ29udGV4dDptX2NvbnRleHQtPmpzQ29udGV4dCgpXTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTZkYjcwOGVjNWUxZjBkZjQ3NmI5MDA0OWU2
ZWU2ZjE4OGIyYWI2My4uOGJjZDU5MGYyYzE2Zjc4MTI3Y2Q3NGJlMzU3YjRlOTc3YTdiZDI5MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA4LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gSXQgc2hvdWxkIGJlIHBvc3NpYmxl
IHRvIG92ZXJyaWRlIHNwZWxsY2hlY2tpbmcgcmVzdWx0cyBpbiBXZWJLaXRUZXN0UnVubmVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUyOTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcv
c3BlbGxpbmcvbWFya2Vycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9zcGVsbGlu
Zy9tYXJrZXJzLmh0bWw6CisKKyAgICAgICAgUmV3cml0ZSB0aGlzIGxheW91dCB0ZXN0IHRvIHVz
ZSBhc3luYy1hd2FpdCwgaW5zdGVhZCBvZiBhc3luY2hyb25vdXNseSBjYWxsaW5nIHRoZSByZWN1
cnNpdmUgYGRvbmVgIGZ1bmN0aW9uLgorICAgICAgICBBZGRpdGlvbmFsbHksIGFkb3B0IGBVSUhl
bHBlci5zZXRTcGVsbENoZWNrZXJSZXN1bHRzYC4KKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxp
bmcvdGV4dC1yZXBsYWNlbWVudC1hZnRlci10eXBpbmctdG8td29yZC5odG1sOgorCisgICAgICAg
IEFkb3B0IGBVSUhlbHBlci5zZXRTcGVsbENoZWNrZXJSZXN1bHRzYC4gVGhpcyBhbGxvd3MgdXMg
dG8gZW5hYmxlIHRoZSB0ZXN0IG9uIG1hY09TIFdlYktpdDIsIHNpbmNlIHRoZSBvbmx5CisgICAg
ICAgIHRoaW5nIHRoYXQgcHJldmVudGVkIGl0IGZyb20gd29ya2luZyBiZWZvcmUgd2FzIHRoZSBh
YmlsaXR5IHRvIGBzZXRTcGVsbENoZWNrZXJSZXN1bHRzYCBpbiBXZWJLaXQyLgorCisgICAgICAg
ICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHJlc291cmNl
cy91aS1oZWxwZXIuanM6CisKKyAgICAgICAgQWRkIGEgYFVJSGVscGVyYCBtZXRob2QgdG8gb3Zl
cnJpZGUgdGhlIHN5c3RlbSBzcGVsbCBjaGVja2VyIHdpdGggZ2l2ZW4gcmVzdWx0cy4KKworICAg
ICAgICAod2luZG93LlVJSGVscGVyLmFzeW5jIHNldFNwZWxsQ2hlY2tlclJlc3VsdHMpOgorCiAy
MDIwLTA4LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBVSVNjcmlwdENvbnRyb2xsZXIucmVtb3ZlQWxsRHluYW1pY0RpY3Rpb25hcmll
cygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLWV4cGVjdGVk
LnR4dAppbmRleCA5MjM1NjczZmFlN2M4NzBkOGIzYTczZDhmNzE1MzY2OGRkYzU5NTczLi5lODQz
ZmQyNWVlNTQ0ZDVkNTA1MWY3OGE4YTI3N2RmZWI0ZmJjNzBjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3RlZC50eHQKQEAgLTMsNDEgKzMsNDEg
QEAgVGVzdHMgc3BlbGxpbmcgYW5kIGdyYW1tYXIgbWFya2VycyBmb3IgbWlzc3BlbGxpbmdzLgog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLUNoZWNraW5nIGZvciBpc3N1ZSBvbiAnSSBo
YXZlIGEgaXNzdWUuJwotUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQu
Zmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJl
bnQgZnJvbSBudWxsCitDaGVja2luZyBmb3IgaXNzdWUgb24gIkkgaGF2ZSBhIGlzc3VlLiIKK1BB
U1MgaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG1pc3Nw
ZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCiBQQVNTIHJh
bmdlLnRvU3RyaW5nKCkgaXMgImEiCiAKLUNoZWNraW5nIGZvciBpc3N1ZSBvbiAnSSBoYXZlIGEg
aXNzdWUuJwotUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RD
aGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJv
bSBudWxsCitDaGVja2luZyBmb3IgaXNzdWUgb24gIkkgaGF2ZSBhIGlzc3VlLiIKK1BBU1MgaW50
ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG1pc3NwZWxsaW5n
RGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCiBQQVNTIHJhbmdlLnRv
U3RyaW5nKCkgaXMgImEiCiAKLUNoZWNraW5nIGZvciBpc3N1ZSBvbiAnSSBoYXZlIGEgaXNzdWUu
JwotUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwg
bmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxs
CitDaGVja2luZyBmb3IgaXNzdWUgb24gIkkgaGF2ZSBhIGlzc3VlLiIKK1BBU1MgaW50ZXJuYWxz
Lm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG1pc3NwZWxsaW5nRGF0YS5t
YXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCiBQQVNTIHJhbmdlLnRvU3RyaW5n
KCkgaXMgImEiCiAKLUNoZWNraW5nIGZvciBpc3N1ZSBvbiAnSSBoYXZlIGEgaXNzdWUuJwotUEFT
UyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1p
c3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitDaGVj
a2luZyBmb3IgaXNzdWUgb24gIkkgaGF2ZSBhIGlzc3VlLiIKK1BBU1MgaW50ZXJuYWxzLm1hcmtl
clJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG1pc3NwZWxsaW5nRGF0YS5tYXJrZXIs
IDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCiBQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMg
ImEiCiAKLUNoZWNraW5nIGZvciBpc3N1ZSBvbiAnenouJwotUEFTUyBpbnRlcm5hbHMubWFya2Vy
UmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJr
ZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitDaGVja2luZyBmb3IgaXNzdWUgb24g
Inp6LiIKK1BBU1MgaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hp
bGQsIG1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxs
CiBQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMgInp6IgogCi1DaGVja2luZyBmb3IgaXNzdWUgb24g
J29yYW5nZSx6eixhcHBsZS4nCi1QQVNTIGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxl
bWVudC5maXJzdENoaWxkLCBuZXh0TWlzc3BlbGxpbmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRp
ZmZlcmVudCBmcm9tIG51bGwKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAib3JhbmdlLHp6LGFwcGxl
LiIKK1BBU1MgaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQs
IG1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCiBQ
QVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMgIm9yYW5nZSx6eixhcHBsZS4iCiAKLUNoZWNraW5nIGZv
ciBpc3N1ZSBvbiAnb3JhbmdlLHp6LGFwcGxlLicKLVBBU1MgaW50ZXJuYWxzLm1hcmtlclJhbmdl
Rm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG5leHRNaXNzcGVsbGluZ0RhdGEubWFya2VyLCAw
KSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorQ2hlY2tpbmcgZm9yIGlzc3VlIG9uICJvcmFu
Z2UsenosYXBwbGUuIgorUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQu
Zmlyc3RDaGlsZCwgbWlzc3BlbGxpbmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBm
cm9tIG51bGwKIFBBU1MgcmFuZ2UudG9TdHJpbmcoKSBpcyAib3JhbmdlLHp6LGFwcGxlIgogCi1D
aGVja2luZyBmb3Igbm8gb3RoZXIgaXNzdWVzIG9uICdJIGhhdmUgYSBpc3N1ZS4nCitDaGVja2lu
ZyBmb3Igbm8gb3RoZXIgaXNzdWVzIG9uICJJIGhhdmUgYSBpc3N1ZS4iCiBQQVNTIGludGVybmFs
cy5tYXJrZXJDb3VudEZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBvcHBvc2l0ZU1hcmtlcikg
YmVjYW1lIDAKIAotQ2hlY2tpbmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAnSSBoYXZlIGEgaXNz
dWUuJworQ2hlY2tpbmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAiSSBoYXZlIGEgaXNzdWUuIgog
UEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgb3Bw
b3NpdGVNYXJrZXIpIGJlY2FtZSAwCiAKLUNoZWNraW5nIGZvciBubyBvdGhlciBpc3N1ZXMgb24g
J3p6LicKK0NoZWNraW5nIGZvciBubyBvdGhlciBpc3N1ZXMgb24gInp6LiIKIFBBU1MgaW50ZXJu
YWxzLm1hcmtlckNvdW50Rm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG9wcG9zaXRlTWFya2Vy
KSBiZWNhbWUgMAogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCmluZGV4IDA2ZTM5NjVlNWE0NDEzNTMzYzhl
Nzk2MzdmNzFmZmQzODBmMDg2ZDYuLmVkMjA5NGE4YzYxZWJiZTA3MTc0YTgzZmI1OGUzY2VhYmVl
MDI3MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCkBAIC04
LDEwICs4LDExIEBACiAgICAgZm9udC1zaXplOiAyNHB4OwogfQogPC9zdHlsZT4KLTxzY3JpcHQg
c3JjPSIuLi9lZGl0aW5nLmpzIiBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZh
U2NyaXB0IiA+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KIAogPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KIApAQCAtMjYsMTAgKzI3LDEw
IEBAIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiB9CiAKIGZ1bmN0aW9uIGNyZWF0ZUVkaXRhYmxl
RWxlbWVudChwYXJlbnQsIHRleHRDb250ZW50KSB7Ci0gICAgdmFyIGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOwogICAgIGUuc2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiLCAidHJ1ZSIpOwogICAg
IGUudGV4dENvbnRlbnQgPSB0ZXh0Q29udGVudDsKLSAgICBlLmNsYXNzTmFtZSA9ICdlZGl0aW5n
JzsKKyAgICBlLmNsYXNzTmFtZSA9ICJlZGl0aW5nIjsKIAogICAgIHBhcmVudC5hcHBlbmRDaGls
ZChlKTsKICAgICByZXR1cm4gZTsKQEAgLTM5LDIyICs0MCwyMiBAQCBmdW5jdGlvbiB0eXBlVGV4
dChlbGVtLCB0ZXh0KSB7CiAgICAgZWxlbS5mb2N1cygpOwogICAgIHNlbGVjdEFsbENvbW1hbmQo
KTsKICAgICBkZWxldGVDb21tYW5kKCk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxl
bmd0aDsgKytpKQotICAgICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCh0ZXh0W2ldKTsKKyAgICBm
b3IgKGxldCBjaGFyYWN0ZXIgb2YgdGV4dCkKKyAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
Y2hhcmFjdGVyKTsKIH0KIAotY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnRhaW5lcicpOworY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnRhaW5lciIpOwogY29uc3QgZWxlbWVudFdpdGhHcmFtbWFySXNzdWUgPSBjcmVhdGVF
ZGl0YWJsZUVsZW1lbnQoY29udGFpbmVyLCAiSSBoYXZlIGEgaXNzdWUuIik7CiBjb25zdCBlbGVt
ZW50V2l0aFNwZWxsaW5nSXNzdWUgID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGNvbnRhaW5lciwg
Inp6LiIpOwogY29uc3QgZWxlbWVudFdpdGhHcmFtbWFyQW5kU3BlbGxpbmdJc3N1ZSA9IGNyZWF0
ZUVkaXRhYmxlRWxlbWVudChjb250YWluZXIsICJvcmFuZ2UsenosYXBwbGUuIik7CiAKIGNvbnN0
IG1pc3NwZWxsaW5ncyA9IFsKLSAgICB7IG1hcmtlcjogJ3NwZWxsaW5nJywgIGlzc3VlOiAnYScg
fSwKLSAgICB7IG1hcmtlcjogJ2dyYW1tYXInLCAgaXNzdWU6ICdhJyB9LAotICAgIHsgbWFya2Vy
OiAnZ3JhbW1hcicsICBpc3N1ZTogJ0kgaGF2ZSBhIGlzc3VlLicgfSwKLSAgICB7IG1hcmtlcjog
J3NwZWxsaW5nJywgaXNzdWU6ICd6eicgfSwKLSAgICB7IG1hcmtlcjogJ2dyYW1tYXInLCAgaXNz
dWU6ICdvcmFuZ2UsenosYXBwbGUuJyB9LAotICAgIHsgbWFya2VyOiAnc3BlbGxpbmcnLCAgaXNz
dWU6ICdvcmFuZ2UsenosYXBwbGUnIH0sCisgICAgeyBtYXJrZXI6ICJzcGVsbGluZyIsICBpc3N1
ZTogImEiIH0sCisgICAgeyBtYXJrZXI6ICJncmFtbWFyIiwgIGlzc3VlOiAiYSIgfSwKKyAgICB7
IG1hcmtlcjogImdyYW1tYXIiLCAgaXNzdWU6ICJJIGhhdmUgYSBpc3N1ZS4iIH0sCisgICAgeyBt
YXJrZXI6ICJzcGVsbGluZyIsIGlzc3VlOiAienoiIH0sCisgICAgeyBtYXJrZXI6ICJncmFtbWFy
IiwgIGlzc3VlOiAib3JhbmdlLHp6LGFwcGxlLiIgfSwKKyAgICB7IG1hcmtlcjogInNwZWxsaW5n
IiwgIGlzc3VlOiAib3JhbmdlLHp6LGFwcGxlIiB9LAogXTsKIAogY29uc3QgcmVzdWx0cyA9IFsK
QEAgLTczLDg3ICs3NCw3NCBAQCBjb25zdCByZXN1bHRzID0gWwogICAgIH0KIF07CiAKLXZhciB0
ZXN0cyA9IFsKLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5RGVzaXJlZE1hcmtlcnMoZWxlbWVudFdp
dGhHcmFtbWFySXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgwLCAxKSwgcmVzdWx0cy5zbGljZSgw
LCAxKSkgfSwKLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5RGVzaXJlZE1hcmtlcnMoZWxlbWVudFdp
dGhHcmFtbWFySXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgxLCAyKSwgcmVzdWx0cy5zbGljZSgx
LCAyKSkgfSwKLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5RGVzaXJlZE1hcmtlcnMoZWxlbWVudFdp
dGhHcmFtbWFySXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgwLCAyKSwgcmVzdWx0cy5zbGljZSgw
LCAyKSkgfSwKLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5RGVzaXJlZE1hcmtlcnMoZWxlbWVudFdp
dGhTcGVsbGluZ0lzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMywgNCkpIH0sCi0gICAgZnVuY3Rp
b24oKSB7IHZlcmlmeURlc2lyZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1hckFuZFNwZWxsaW5n
SXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSg0LCA2KSkgfSwKLQotICAgIC8vIFRob3NlIGV4cGVj
dCB0byBoYXZlIG9ubHkgb25lIGtpbmQgb2YgbWFya2VycyBlaXRoZXIgc3BlbGxpbmcgb3IgZ3Jh
bW1hci4KLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5VW5leHBlY3RlZE1hcmtlcnMoZWxlbWVudFdp
dGhHcmFtbWFySXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgwLCAxKSwgcmVzdWx0cy5zbGljZSgw
LCAxKSkgfSwKLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5VW5leHBlY3RlZE1hcmtlcnMoZWxlbWVu
dFdpdGhHcmFtbWFySXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgxLCAyKSwgcmVzdWx0cy5zbGlj
ZSgxLCAyKSkgfSwKLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5VW5leHBlY3RlZE1hcmtlcnMoZWxl
bWVudFdpdGhTcGVsbGluZ0lzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMywgNCkpIH0sCi1dOwot
Ci12YXIgZWxlbWVudDsKLXZhciBuZXh0TWlzc3BlbGxpbmdEYXRhOworbGV0IGVsZW1lbnQsIG9w
cG9zaXRlTWFya2VyLCBtaXNzcGVsbGluZ0RhdGE7CiAKLWZ1bmN0aW9uIHZlcmlmeURlc2lyZWRN
YXJrZXJzKGUsIG1pc3NwZWxsaW5ncywgb3ZlcnJpZGVTcGVsbENoZWNraW5nUmVzdWx0cykKK2Fz
eW5jIGZ1bmN0aW9uIHZlcmlmeURlc2lyZWRNYXJrZXJzKGUsIG1pc3NwZWxsaW5ncywgb3ZlcnJp
ZGVTcGVsbENoZWNraW5nUmVzdWx0cykKIHsKLSAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgICAgIHJldHVybiBkb25lKCk7CisgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7CiAK
KyAgICBlbGVtZW50ID0gZTsKICAgICBjb25zdCB0ZXh0VG9DaGVjayA9IGUuZmlyc3RDaGlsZC5u
b2RlVmFsdWU7Ci0gICAgY29uc3Qgc3BlbGxDaGVja2VyUmVzdWx0cyA9IHsgfTsKKworICAgIGxl
dCBzcGVsbENoZWNrZXJSZXN1bHRzID0geyB9OwogICAgIGlmIChvdmVycmlkZVNwZWxsQ2hlY2tp
bmdSZXN1bHRzKQogICAgICAgICBzcGVsbENoZWNrZXJSZXN1bHRzW3RleHRUb0NoZWNrXSA9IG92
ZXJyaWRlU3BlbGxDaGVja2luZ1Jlc3VsdHM7Ci0gICAgdGVzdFJ1bm5lci5zZXRTcGVsbENoZWNr
ZXJSZXN1bHRzKHNwZWxsQ2hlY2tlclJlc3VsdHMpOworICAgIGF3YWl0IFVJSGVscGVyLnNldFNw
ZWxsQ2hlY2tlclJlc3VsdHMoc3BlbGxDaGVja2VyUmVzdWx0cyk7CiAKLSAgICB0eXBlVGV4dChl
LCB0ZXh0VG9DaGVjayk7CisgICAgZm9yIChsZXQgbWlzc3BlbGxpbmcgb2YgbWlzc3BlbGxpbmdz
KSB7CisgICAgICAgIG1pc3NwZWxsaW5nRGF0YSA9IG1pc3NwZWxsaW5nOwogCi0gICAgZWxlbWVu
dCA9IGU7Ci0gICAgbmV4dE1pc3NwZWxsaW5nRGF0YSA9IG1pc3NwZWxsaW5ncy5zaGlmdCgpOwot
ICAgIGlmICghbmV4dE1pc3NwZWxsaW5nRGF0YSkKLSAgICAgICAgcmV0dXJuIGRvbmUoKTsKKyAg
ICAgICAgdHlwZVRleHQoZSwgdGV4dFRvQ2hlY2spOwogCi0gICAgZGVidWcoYENoZWNraW5nIGZv
ciBpc3N1ZSBvbiAnJHt0ZXh0VG9DaGVja30nYCk7CisgICAgICAgIGRlYnVnKGBDaGVja2luZyBm
b3IgaXNzdWUgb24gIiR7dGV4dFRvQ2hlY2t9ImApOwogCi0gICAgc2hvdWxkQmVjb21lRGlmZmVy
ZW50KCdpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4
dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApJywgIm51bGwiLCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGls
ZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApOwotICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3JhbmdlLnRvU3RyaW5nKCknLCBuZXh0TWlzc3BlbGxpbmdEYXRhLmlzc3VlKTsK
KyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaG91bGRCZWNvbWVEaWZmZXJl
bnQoImludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBtaXNz
cGVsbGluZ0RhdGEubWFya2VyLCAwKSIsICJudWxsIiwgcmVzb2x2ZSkpOworICAgICAgICByYW5n
ZSA9IGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBtaXNz
cGVsbGluZ0RhdGEubWFya2VyLCAwKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
YW5nZS50b1N0cmluZygpIiwgbWlzc3BlbGxpbmdEYXRhLmlzc3VlKTsKICAgICAgICAgZGVidWco
IiIpOwotICAgICAgICB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50LCBtaXNzcGVsbGluZ3Mp
OwotICAgIH0pOworICAgIH0KIH0KIAotdmFyIG9wcG9zaXRlTWFya2VyOwotZnVuY3Rpb24gdmVy
aWZ5VW5leHBlY3RlZE1hcmtlcnMoZSwgbWlzc3BlbGxpbmdzLCBvdmVycmlkZVNwZWxsQ2hlY2tp
bmdSZXN1bHRzKQorYXN5bmMgZnVuY3Rpb24gdmVyaWZ5VW5leHBlY3RlZE1hcmtlcnMoZSwgbWlz
c3BlbGxpbmdzLCBvdmVycmlkZVNwZWxsQ2hlY2tpbmdSZXN1bHRzKQogeworICAgIGF3YWl0IFVJ
SGVscGVyLmRlbGF5Rm9yKDApOworCisgICAgZWxlbWVudCA9IGU7CiAgICAgY29uc3QgdGV4dFRv
Q2hlY2sgPSBlLmZpcnN0Q2hpbGQubm9kZVZhbHVlOwotICAgIGNvbnN0IHNwZWxsQ2hlY2tlclJl
c3VsdHMgPSB7IH07CisKKyAgICBsZXQgc3BlbGxDaGVja2VyUmVzdWx0cyA9IHsgfTsKICAgICBp
ZiAob3ZlcnJpZGVTcGVsbENoZWNraW5nUmVzdWx0cykKICAgICAgICAgc3BlbGxDaGVja2VyUmVz
dWx0c1t0ZXh0VG9DaGVja10gPSBvdmVycmlkZVNwZWxsQ2hlY2tpbmdSZXN1bHRzOwotICAgIHRl
c3RSdW5uZXIuc2V0U3BlbGxDaGVja2VyUmVzdWx0cyhzcGVsbENoZWNrZXJSZXN1bHRzKTsKKyAg
ICBhd2FpdCBVSUhlbHBlci5zZXRTcGVsbENoZWNrZXJSZXN1bHRzKHNwZWxsQ2hlY2tlclJlc3Vs
dHMpOwogCi0gICAgdHlwZVRleHQoZSwgdGV4dFRvQ2hlY2spOworICAgIGZvciAobGV0IG1pc3Nw
ZWxsaW5nIG9mIG1pc3NwZWxsaW5ncykgeworICAgICAgICBtaXNzcGVsbGluZ0RhdGEgPSBtaXNz
cGVsbGluZzsKIAotICAgIGVsZW1lbnQgPSBlOwotICAgIG5leHRNaXNzcGVsbGluZ0RhdGEgPSBt
aXNzcGVsbGluZ3Muc2hpZnQoKTsKKyAgICAgICAgdHlwZVRleHQoZSwgdGV4dFRvQ2hlY2spOwog
Ci0gICAgaWYgKG5leHRNaXNzcGVsbGluZ0RhdGEubWFya2VyID09ICdncmFtbWFyJykKLSAgICAg
ICAgb3Bwb3NpdGVNYXJrZXIgPSAnc3BlbGxpbmcnOwotICAgIGVsc2UgaWYgKG5leHRNaXNzcGVs
bGluZ0RhdGEubWFya2VyID09ICdzcGVsbGluZycpCi0gICAgICAgIG9wcG9zaXRlTWFya2VyID0g
J2dyYW1tYXInOworICAgICAgICBpZiAobWlzc3BlbGxpbmdEYXRhLm1hcmtlciA9PSAiZ3JhbW1h
ciIpCisgICAgICAgICAgICBvcHBvc2l0ZU1hcmtlciA9ICJzcGVsbGluZyI7CisgICAgICAgIGVs
c2UgaWYgKG1pc3NwZWxsaW5nRGF0YS5tYXJrZXIgPT0gInNwZWxsaW5nIikKKyAgICAgICAgICAg
IG9wcG9zaXRlTWFya2VyID0gImdyYW1tYXIiOwogCi0gICAgZGVidWcoYENoZWNraW5nIGZvciBu
byBvdGhlciBpc3N1ZXMgb24gJyR7dGV4dFRvQ2hlY2t9J2ApOworICAgICAgICBkZWJ1ZyhgQ2hl
Y2tpbmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAiJHt0ZXh0VG9DaGVja30iYCk7CiAKLSAgICBz
aG91bGRCZWNvbWVFcXVhbCgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlbGVtZW50LmZp
cnN0Q2hpbGQsIG9wcG9zaXRlTWFya2VyKScsICcwJywgZnVuY3Rpb24oKSB7CisgICAgICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoImludGVybmFscy5t
YXJrZXJDb3VudEZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBvcHBvc2l0ZU1hcmtlcikiLCAi
MCIsIHJlc29sdmUpKTsKICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBkb25lKCk7Ci0gICAg
fSk7CisgICAgfQogfQogCi1mdW5jdGlvbiBkb25lKCkKLXsKLSAgICB2YXIgbmV4dCA9IHRlc3Rz
LnNoaWZ0KCk7Ci0gICAgaWYgKG5leHQpCi0gICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91
dChuZXh0LCAwKTsKLQorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0aW9uKCkg
eworICAgIGF3YWl0IHZlcmlmeURlc2lyZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1hcklzc3Vl
LCBtaXNzcGVsbGluZ3Muc2xpY2UoMCwgMSksIHJlc3VsdHMuc2xpY2UoMCwgMSkpOworICAgIGF3
YWl0IHZlcmlmeURlc2lyZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1hcklzc3VlLCBtaXNzcGVs
bGluZ3Muc2xpY2UoMSwgMiksIHJlc3VsdHMuc2xpY2UoMSwgMikpOworICAgIGF3YWl0IHZlcmlm
eURlc2lyZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1hcklzc3VlLCBtaXNzcGVsbGluZ3Muc2xp
Y2UoMCwgMiksIHJlc3VsdHMuc2xpY2UoMCwgMikpOworICAgIGF3YWl0IHZlcmlmeURlc2lyZWRN
YXJrZXJzKGVsZW1lbnRXaXRoU3BlbGxpbmdJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDMsIDQp
KTsKKyAgICBhd2FpdCB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdyYW1tYXJBbmRT
cGVsbGluZ0lzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoNCwgNikpOworICAgIGF3YWl0IHZlcmlm
eVVuZXhwZWN0ZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1hcklzc3VlLCBtaXNzcGVsbGluZ3Mu
c2xpY2UoMCwgMSksIHJlc3VsdHMuc2xpY2UoMCwgMSkpOworICAgIGF3YWl0IHZlcmlmeVVuZXhw
ZWN0ZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1hcklzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2Uo
MSwgMiksIHJlc3VsdHMuc2xpY2UoMSwgMikpOworICAgIGF3YWl0IHZlcmlmeVVuZXhwZWN0ZWRN
YXJrZXJzKGVsZW1lbnRXaXRoU3BlbGxpbmdJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDMsIDQp
KTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLWRvbmUoKTsKK30pOwogPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Rl
eHQtcmVwbGFjZW1lbnQtYWZ0ZXItdHlwaW5nLXRvLXdvcmQuaHRtbCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvdGV4dC1yZXBsYWNlbWVudC1hZnRlci10eXBpbmctdG8td29yZC5odG1s
CmluZGV4IGJhMDY4Njc1ZTRhMDY1OTVlMGZjMjQ5NzA5ZWVkZWQ4NGJhYmI0ZjUuLmM4ZDg0NWZi
ZmY1Y2JiYjFjZmQ4NmM5YzJhODZiMGM1N2EzZGFlNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvdGV4dC1yZXBsYWNlbWVudC1hZnRlci10eXBpbmctdG8td29yZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvdGV4dC1yZXBsYWNlbWVudC1h
ZnRlci10eXBpbmctdG8td29yZC5odG1sCkBAIC0xLDYgKzEsNyBAQAogPGh0bWw+CiA8aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKQEAgLTE3LDcgKzE4LDcgQEAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChm
YWxzZSk7CiAgICAgICAgIGludGVybmFscy5zZXRBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFi
bGVkKHRydWUpOwogICAgICAgICBpbnRlcm5hbHMuc2V0QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0
aW9uRW5hYmxlZCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTcGVsbENoZWNrZXJSZXN1
bHRzKHsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuc2V0U3BlbGxDaGVja2VyUmVzdWx0cyh7CiAg
ICAgICAgICAgICAiWVQ/IjogWwogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgInJlcGxhY2VtZW50IjogIllvdSB0aGVyZT8iLApAQCAtNjIsNiArNjMsNSBAQCBhc3luYyBm
dW5jdGlvbiBydW5UZXN0KCkKIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KICAgICA8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+CiAgICAgPGRpdiBjb250ZW50ZWRpdGFibGUgc3R5bGU9Im1h
cmdpbi1ib3R0b206IDFlbTsgYm9yZGVyOiAxcHggb3JhbmdlIGRhc2hlZDsiIGlkPSJlZGl0b3Ii
PjwvZGl2PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzZDc4YTE4ZGE1M2RmM2YwODBhYTEzYTY0YWY0
MDBkMmRkZDg1Y2EwLi5mNjlmM2ZkZTc3YmZiNjI0MjdhYzQxMDMwMzAyZTdiNTNjMDlkMmZmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
MDcsNyArMjA3LDYgQEAgd2Via2l0Lm9yZy9iLzEwNTYxNiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLXdpdGgtd2hpdGVzcGFjZS1zZWxlY3Rpb24uaHRtbAogd2Via2l0Lm9yZy9iLzEwNTYxNiBl
ZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXIuaHRtbAogd2Via2l0Lm9yZy9iLzEwNTYxNiBlZGl0aW5n
L3NwZWxsaW5nL21hcmtlcnMuaHRtbAogd2Via2l0Lm9yZy9iLzEwNTYxNiBlZGl0aW5nL3NwZWxs
aW5nL3JldHJvLWNvcnJlY3Rpb24tc3BlbGxpbmctbWFya2Vycy5odG1sCi13ZWJraXQub3JnL2Iv
MTA1NjE2IGVkaXRpbmcvc3BlbGxpbmcvdGV4dC1yZXBsYWNlbWVudC1hZnRlci10eXBpbmctdG8t
d29yZC5odG1sCiB3ZWJraXQub3JnL2IvMTA1NjE2IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
bWFya2Vycy1hZnRlci1wYXN0aW5nLXNlbnRlbmNlLmh0bWwKIHdlYmtpdC5vcmcvYi8xMDU2MTYg
ZWRpdGluZy9tYWMvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tZGVsZXRlLmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8xMDU2MTYgZWRpdGluZy9tYWMvc3BlbGxpbmcvYXV0b2NvcnJlY3Rp
b24tcmVtb3ZpbmctdW5kZXJsaW5lLWFmdGVyLXBhc3RlLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IGMwZTkwMTA1NDQ3YjA2OTkxZDAxMDAwODc2ZTQ0
MjVhNDgzMzc0NjYuLmVkYTA4OWE5ZjhjMzU5ZTEzYjkyZjM1YjliY2EyYTgyMjE0N2JkNWUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0
VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtMTI4Nyw2ICsxMjg3LDE2IEBAIHdpbmRv
dy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgfSk7CiAgICAgfQogCisgICAg
c3RhdGljIGFzeW5jIHNldFNwZWxsQ2hlY2tlclJlc3VsdHMocmVzdWx0cykKKyAgICB7CisgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQoYCgoKSA9PiB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNl
dFNwZWxsQ2hlY2tlclJlc3VsdHMoJHtKU09OLnN0cmluZ2lmeShyZXN1bHRzKX0pOworICAgICAg
ICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICB9
KSgpYCwgcmVzb2x2ZSk7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIHN0YXRpYyBhc3luYyBh
Y3RpdmF0ZUVsZW1lbnRBZnRlckluc3RhbGxpbmdUYXBHZXN0dXJlT25XaW5kb3coZWxlbWVudCkK
ICAgICB7CiAgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSB8fCAhdGhpcy5pc0lPU0ZhbWls
eSgpKQo=
</data>
<flag name="review"
          id="421622"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406219</attachid>
            <date>2020-08-07 15:30:58 -0700</date>
            <delta_ts>2020-08-07 16:05:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215290-20200807153057.patch</filename>
            <type>text/plain</type>
            <size>31148</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mzc2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDE4N2I4YjllYTA0NGE2NjBhMzI2YzIwN2ZlNjAzMGI2
YWVjM2UxMy4uYTU3ZTZkNWVlNDY5N2I5MDljMjJlNzdhMDY2MTEyNTc1NWYxYjNmZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDIwLTA4LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFttYWNPU10gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIG92ZXJyaWRlIHNwZWxs
Y2hlY2tpbmcgcmVzdWx0cyBpbiBXZWJLaXRUZXN0UnVubmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUyOTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgUmVmYWN0b3IgYHNldFNwZWxsQ2hlY2tlclJlc3Vs
dHNgIHNvIHRoYXQgaXQgaXMgb24gYFVJU2NyaXB0Q29udHJvbGxlcmAgaW5zdGVhZCBvZiBgVGVz
dFJ1bm5lcmAsIHN1Y2ggdGhhdCBpdAorICAgICAgICBjYW4gYmUgdHJpZ2dlcmVkIGFzeW5jaHJv
bm91c2x5IGZyb20gYSBsYXlvdXQgdGVzdC4gVGhpcyBhbGxvd3MgdGhlIHRlc3RpbmcgaG9vayB0
byB3b3JrIGluIFdlYktpdDIsIHdoZXJlIHRoZQorICAgICAgICBzd2l6emxlZCBzcGVsbCBjaGVj
a2VyIGlzIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAg
ICAgICAoc2V0U3BlbGxDaGVja2VyUmVzdWx0c0NhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
aW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oOgorCisgICAgICAgIEFkZCBhIG1ldGhvZCBpbXBs
ZW1lbnRhdGlvbiBzdHViIGZvciBpT1MuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlclJl
c3VsdHMpOiBEZWxldGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENv
bnRyb2xsZXJNYWMuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250
cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJNYWM6OnNldFNw
ZWxsQ2hlY2tlclJlc3VsdHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVu
bmVyV2luLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlckxvZ2dpbmdF
bmFibGVkKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlclJlc3VsdHMpOiBE
ZWxldGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRp
bmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlVJU2Ny
aXB0Q29udHJvbGxlcjo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cyk6CisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLmg6CisgICAgICAgICogVGVz
dFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tOgorICAgICAgICAo
LVtMYXlvdXRUZXN0U3BlbGxDaGVja2VyIHNldFJlc3VsdHNGcm9tSlNWYWx1ZTppbkNvbnRleHQ6
XSk6CisgICAgICAgICgtW0xheW91dFRlc3RTcGVsbENoZWNrZXIgc2V0UmVzdWx0c0Zyb21KU09i
amVjdDppbkNvbnRleHQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9p
b3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9t
YWMvVGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorCisgICAgICAgIE1ha2Ugc3Vy
ZSB0aGF0IHdlIHVuaW5zdGFsbCB0aGUgc3dpenpsZWQgYExheW91dFRlc3RTcGVsbENoZWNrZXJg
IGJldHdlZW4gdGVzdHMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlw
dENvbnRyb2xsZXJNYWMuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlw
dENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlck1hYzo6
c2V0U3BlbGxDaGVja2VyUmVzdWx0cyk6CisKIDIwMjAtMDgtMDcgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFVJU2NyaXB0Q29udHJvbGxl
ci5yZW1vdmVBbGxEeW5hbWljRGljdGlvbmFyaWVzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5jcHAKaW5kZXggOWZkMzAxMzBiNGEyODMwZWNkYmZmZThmNWM3YzA0MTRlMmI0ZWM3ZS4uOTQ1
MmU0YTBjNGJiYTg1NzgwYjlhYWIzNjY1MDhhNWViYjgzNTlkYiAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAKQEAgLTE3NzQsMTYgKzE3NzQsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTcGVsbENoZWNrZXJMb2dnaW5nRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKUwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotc3Rh
dGljIEpTVmFsdWVSZWYgc2V0U3BlbGxDaGVja2VyUmVzdWx0c0NhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIGF1dG8qIHJ1bm5l
ciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOwotICAgIHJ1bm5lci0+c2V0U3BlbGxDaGVja2VyUmVzdWx0cyhjb250ZXh0LCBKU1ZhbHVl
VG9PYmplY3QoY29udGV4dCwgYXJndW1lbnRzWzBdLCBudWxscHRyKSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRP
cGVuUGFuZWxGaWxlc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAg
ICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKQpAQCAtMjMwMSw3ICsyMjkxLDYgQEAgSlNTdGF0aWNG
dW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAicnVuVUlT
Y3JpcHQiLCBydW5VSVNjcmlwdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImltYWdlQ291
bnRJbkdlbmVyYWxQYXN0ZWJvYXJkIiwgaW1hZ2VDb3VudEluR2VuZXJhbFBhc3RlYm9hcmRDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTcGVsbENoZWNrZXJMb2dnaW5nRW5hYmxlZCIs
IHNldFNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAg
eyAic2V0U3BlbGxDaGVja2VyUmVzdWx0cyIsIHNldFNwZWxsQ2hlY2tlclJlc3VsdHNDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRPcGVuUGFuZWxGaWxlcyIsIHNldE9wZW5QYW5lbEZp
bGVzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0T3BlblBhbmVsRmlsZXNNZWRpYUlj
b24iLCBTZXRPcGVuUGFuZWxGaWxlc01lZGlhSWNvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgImZvcmNlSW1tZWRpYXRlQ29tcGxldGlvbiIsIGZvcmNlSW1tZWRpYXRlQ29tcGxldGlvbkNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVu
bmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXggNzU5ZDVlMzgz
Y2E3ZjkwM2JjYTdlNjBjZjdlZjA4MTJmZmNjMzFkYi4uMTNkOTVkOGYxNGQ3M2RjZjk0ZGQzOGU2
OTkwZmIxOWYzZDA4MGFlYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMzg0LDcg
KzM4NCw2IEBAIHB1YmxpYzoKICAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycigpIGNv
bnN0IHsgcmV0dXJuIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyOyB9CiAKICAgICB2b2lkIHNl
dFNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0U3BlbGxDaGVj
a2VyUmVzdWx0cyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIHJlc3VsdHMpOwogCiAgICAgY29u
c3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBvcGVuUGFuZWxGaWxlcygpIGNvbnN0IHsgcmV0
dXJuIG1fb3BlblBhbmVsRmlsZXM7IH0KICAgICB2b2lkIHNldE9wZW5QYW5lbEZpbGVzKEpTQ29u
dGV4dFJlZiwgSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9p
b3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlT
Y3JpcHRDb250cm9sbGVySU9TLmgKaW5kZXggZDQ0MjRhMGU1ODMzMTRjNTFiY2U0ZmY1MmMwNTM4
MThiYjhhM2NjMy4uMmI4NTExZTljOTc1NGM0NDU0ODI4Y2E3NGY0OTA2MzI1MDhlZmY1MiAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaApA
QCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgZG91YmxlIG1heGltdW1ab29tU2NhbGUoKSBj
b25zdCBvdmVycmlkZTsKICAgICBKU09iamVjdFJlZiBjb250ZW50VmlzaWJsZVJlY3QoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIGNvcHlUZXh0KEpTU3RyaW5nUmVmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldFNwZWxsQ2hlY2tlclJlc3VsdHMoSlNWYWx1ZVJlZikgb3ZlcnJpZGUgeyB9CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IDg1
OTg5Njc1YmUxYmFjODBmZWJkZmE0YWMxODY2ZTFkZmIzNjIxNTMuLmViYTA5M2VlMTg3Y2QzMTBk
MDUxYjIzMGFlZDJhMzAwZmU3OTQ5YzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0
UnVubmVyTWFjLm1tCkBAIC0yMTAsMTYgKzIxMCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3Bl
bGxDaGVja2VyTG9nZ2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogI2VuZGlmCiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cyhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgcmVzdWx0cykKLXsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgW1tMYXlvdXRU
ZXN0U3BlbGxDaGVja2VyIGNoZWNrZXJdIHNldFJlc3VsdHNGcm9tSlNPYmplY3Q6cmVzdWx0cyBp
bkNvbnRleHQ6Y29udGV4dF07Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShyZXN1bHRzKTsKLSAg
ICBVTlVTRURfUEFSQU0oY29udGV4dCk7Ci0jZW5kaWYKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpj
bG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKQogewogICAgIFtXZWJTdG9yYWdlTWFuYWdl
ciBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXNdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5oCmluZGV4IDVhYTRhMWQzZGU2NThkODYx
Y2E0MDkyODk2MmI3ZWJkODMwOTVkYjAuLmVjOWY2MTk3YjIxYjgxMTZkMWEyYzI5ZDM2MTNiNGMx
ZGQ1MTE5ODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENv
bnRyb2xsZXJNYWMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250
cm9sbGVyTWFjLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIE5TVW5kb01hbmFnZXIg
KnBsYXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvcHlUZXh0
KEpTU3RyaW5nUmVmKSBvdmVycmlkZTsKICAgICB2b2lkIGFjdGl2YXRlRGF0YUxpc3RTdWdnZXN0
aW9uKHVuc2lnbmVkLCBKU1ZhbHVlUmVmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNwZWxsQ2hl
Y2tlclJlc3VsdHMoSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQppbmRleCBjOGVhODFm
NjI3ZTZhMGY4NTAyNDVlZDMzN2FiNDdhMTdiNjE5NmZjLi5lMTFmYTMyY2VjNmEwODRiYTAxZDk3
ZWM4MWJkNjYyMTUyZDNhYTVkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9V
SVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShN
QUMpCiAKICNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlLmgiCisjaW1wb3J0ICJMYXlvdXRUZXN0U3Bl
bGxDaGVja2VyLmgiCiAjaW1wb3J0ICJVSVNjcmlwdENvbnRleHQuaCIKICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL0pTQ29udGV4dC5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdS
ZWZDRi5oPgpAQCAtMTY3LDYgKzE2OCwxMSBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6
Y29weVRleHQoSlNTdHJpbmdSZWYgdGV4dCkKICAgICBbcGFzdGVib2FyZCBzZXRTdHJpbmc6dGV4
dC0+c3RyaW5nKCkgZm9yVHlwZTpOU1Bhc3RlYm9hcmRUeXBlU3RyaW5nXTsKIH0KIAordm9pZCBV
SVNjcmlwdENvbnRyb2xsZXJNYWM6OnNldFNwZWxsQ2hlY2tlclJlc3VsdHMoSlNWYWx1ZVJlZiBy
ZXN1bHRzKQoreworICAgIFtbTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciBjaGVja2VyXSBzZXRSZXN1
bHRzRnJvbUpTVmFsdWU6cmVzdWx0cyBpbkNvbnRleHQ6bV9jb250ZXh0LT5qc0NvbnRleHQoKV07
Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9UZXN0UnVubmVyV2luLmNwcAppbmRleCBjZmZkN2Y4YzVjZDFkZjlkYmI0N2ZhNDdmNWE2
YzAyOGE5MmZiZjVmLi5lYzk5Y2MxMzFlMzEwYWRkM2VlMWY4NGJlNDQyNDJlMGI3YzgwODA0IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC0xNDE1LDgg
KzE0MTUsMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCkKIHsKICAgICBmcHJpbnRmKHRlc3RSZXN1bHQsICJFUlJPUjogVGVzdFJ1
bm5lcjo6c2V0U3BlbGxDaGVja2VyTG9nZ2luZ0VuYWJsZWQoKSBub3QgaW1wbGVtZW50ZWRcbiIp
OwogfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlclJlc3VsdHMoSlNDb250ZXh0
UmVmLCBKU09iamVjdFJlZikKLXsKLSAgICBmcHJpbnRmKHRlc3RSZXN1bHQsICJFUlJPUjogVGVz
dFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cygpIG5vdCBpbXBsZW1lbnRlZFxuIik7Ci19
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCBjOTI5ZGZl
MDY3MTMzZTI4YTU5ZjI2YmUzNTFjMGE5Nzc2NTIxMjNkLi45ZWM0YmNhYjA4MWE5MWVmM2Y0MDVk
ZDc1M2JiYzU5OTdhM2ZhYzExIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGwKQEAgLTc5LDYgKzc5LDcgQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7
CiAgICAgdm9pZCBrZXlEb3duKERPTVN0cmluZyBjaGFyYWN0ZXIsIG9iamVjdCBtb2RpZmllckFy
cmF5KTsKICAgICB2b2lkIHRvZ2dsZUNhcHNMb2NrKG9iamVjdCBjYWxsYmFjayk7CiAgICAgdm9p
ZCBzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKyAg
ICB2b2lkIHNldFNwZWxsQ2hlY2tlclJlc3VsdHMob2JqZWN0IHJlc3VsdHMpOwogCiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4ga2V5Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlmdGVkOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDU4MzJlYWViZTcxOTFhNWYwNDQ4YjQ0MTE2ODFl
ODRiNjk1MGVjYWIuLjJjNjM4MDIwYWVmYmY3ZWI2ZDEwNDgzMjBiYTM5ZmYxNGI4YTIzYTkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC0xNjQsNiArMTY0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBrZXlEb3duKEpTU3RyaW5nUmVmIGNoYXJhY3RlciwgSlNWYWx1ZVJlZiBtb2Rp
ZmllckFycmF5KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xl
Q2Fwc0xvY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3BlbGxDaGVja2VyUmVzdWx0
cyhKU1ZhbHVlUmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wga2V5
Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlmdGVkKCkgY29uc3QKICAgICB7CiAgICAgICAgIG5vdElt
cGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xh
eW91dFRlc3RTcGVsbENoZWNrZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5
b3V0VGVzdFNwZWxsQ2hlY2tlci5oCmluZGV4IGU3NDFjNTdmNTFlMmZkODRlNDUyNzE2MDk4ZTNl
M2ExNTFkNTczMWMuLjZmOWJmYmJiMjk3ZTc2MGNjZTY3ZDRiNzE5NTkyNzk3MGY5ZDMwMWUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hl
Y2tlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxs
Q2hlY2tlci5oCkBAIC00Myw3ICs0Myw3IEBAIHVzaW5nIFRleHRDaGVja2luZ1Jlc3VsdHNEaWN0
aW9uYXJ5ID0gTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TQXJyYXk8TGF5b3V0VGVzCiArIChp
bnN0YW5jZXR5cGUpY2hlY2tlcjsKICsgKHZvaWQpdW5pbnN0YWxsQW5kUmVzZXQ7CiAKLS0gKHZv
aWQpc2V0UmVzdWx0c0Zyb21KU09iamVjdDooSlNPYmplY3RSZWYpcmVzdWx0c09iamVjdCBpbkNv
bnRleHQ6KEpTQ29udGV4dFJlZiljb250ZXh0OworLSAodm9pZClzZXRSZXN1bHRzRnJvbUpTVmFs
dWU6KEpTVmFsdWVSZWYpcmVzdWx0cyBpbkNvbnRleHQ6KEpTQ29udGV4dFJlZiljb250ZXh0Owog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIFRleHRDaGVja2luZ1Jlc3VsdHNEaWN0aW9uYXJ5
ICpyZXN1bHRzOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc3BlbGxDaGVja2VyTG9nZ2lu
Z0VuYWJsZWQ7CiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29h
L0xheW91dFRlc3RTcGVsbENoZWNrZXIubW0gYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29h
L0xheW91dFRlc3RTcGVsbENoZWNrZXIubW0KaW5kZXggN2ExZDNmNzYxMTU4NzQwMmIwZDE0YWQ3
NjRmYmRkZTgzZTM4NzE2MS4uOGZjMDIxMTY3YWFjMjIxNTM2YTE3NjZlNTM5MDE5ZmU2NDQwNThl
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3Bl
bGxDaGVja2VyLm1tCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVz
dFNwZWxsQ2hlY2tlci5tbQpAQCAtMjA5LDggKzIwOSw5IEBAIC0gKHZvaWQpc2V0UmVzdWx0czoo
VGV4dENoZWNraW5nUmVzdWx0c0RpY3Rpb25hcnkgKilyZXN1bHRzCiAgICAgX3Jlc3VsdHMgPSBh
ZG9wdE5TKHJlc3VsdHMuY29weSk7CiB9CiAKLS0gKHZvaWQpc2V0UmVzdWx0c0Zyb21KU09iamVj
dDooSlNPYmplY3RSZWYpcmVzdWx0c09iamVjdCBpbkNvbnRleHQ6KEpTQ29udGV4dFJlZiljb250
ZXh0CistICh2b2lkKXNldFJlc3VsdHNGcm9tSlNWYWx1ZTooSlNWYWx1ZVJlZilyZXN1bHRzVmFs
dWUgaW5Db250ZXh0OihKU0NvbnRleHRSZWYpY29udGV4dAogeworICAgIGF1dG8gcmVzdWx0c09i
amVjdCA9IEpTVmFsdWVUb09iamVjdChjb250ZXh0LCByZXN1bHRzVmFsdWUsIG51bGxwdHIpOwog
ICAgIGF1dG8gZnJvbVByb3BlcnR5TmFtZSA9IGFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJmcm9tIikpOwogICAgIGF1dG8gdG9Qcm9wZXJ0eU5hbWUgPSBhZG9wdChKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygidG8iKSk7CiAgICAgYXV0byB0eXBlUHJvcGVydHlOYW1l
ID0gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInR5cGUiKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCmluZGV4
IDZmYjE2OWNmZDA3NTE1M2U1Y2U3Yzk4Y2RlN2U1YjBmMTNkZTcyYjQuLjE3YmFhOGZkMTQ4MzE2
ZjkzYzBlNzBmNmY2ZTg2MjNlMjBhMjI0NjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCkBAIC0xNDUsNiArMTQ1LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgY29weVRleHQoSlNTdHJpbmdSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQg
aW5zdGFsbFRhcEdlc3R1cmVPbldpbmRvdyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKICAgICBib29s
IGlzU2hvd2luZ0NvbnRleHRNZW51KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTcGVs
bENoZWNrZXJSZXN1bHRzKEpTVmFsdWVSZWYpIG92ZXJyaWRlIHsgfQogCiAgICAgYm9vbCBtYXlD
b250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdCh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5LCB1bnNp
Z25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCA2Yjc1ZTZhNmEzNGVi
YTFjMTc0OTcxZDY1M2I1OWExM2NkMTQ5NzczLi4xNGI3ZGM5ZDBmMjRlYzEwZTc4YWMyYjBlMDM2
NWE5ZWE2NDlhYjI2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0
Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29u
dHJvbGxlck1hYy5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1w
b3J0ICJUZXN0Q29udHJvbGxlci5oIgogCisjaW1wb3J0ICJMYXlvdXRUZXN0U3BlbGxDaGVja2Vy
LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbXBvcnQgIlBvc2VBc0NsYXNzLmgi
CiAjaW1wb3J0ICJUZXN0SW52b2NhdGlvbi5oIgpAQCAtMTYwLDYgKzE2MSw4IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygp
CiAKIGJvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKIHsKKyAgICBbTGF5b3V0VGVzdFNwZWxs
Q2hlY2tlciB1bmluc3RhbGxBbmRSZXNldF07CisKICAgICBjb2NvYVJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKICAgICB3aGlsZSAoW05TQXBwIG5leHRFdmVudE1hdGNo
aW5nTWFzazpOU0V2ZW50TWFza0dlc3R1cmUgfCBOU0V2ZW50TWFza1Njcm9sbFdoZWVsIHVudGls
RGF0ZTpuaWwgaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXSkgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFj
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaApp
bmRleCA2MTIxNTkyZjJkN2RmMGQ4MzExODg2NzVkYjVhYWIyMjUyZjY3NGFhLi4xN2EzNDViNjIw
NmI0MTI5MzhkOWU2YWQ1NDYwZjIwYzAwYzZmMDVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaApAQCAtNTQsNiArNTQsNyBAQCBw
dWJsaWM6CiAgICAgTlNWaWV3ICpwbGF0Zm9ybUNvbnRlbnRWaWV3KCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdm9pZCBjbGVhckFsbENhbGxiYWNrcygpIG92ZXJyaWRlOwogICAgIHZvaWQgY29weVRl
eHQoSlNTdHJpbmdSZWYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U3BlbGxDaGVja2VyUmVzdWx0
cyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY2hvb3NlTWVudUFjdGlvbihKU1N0
cmluZ1JlZiwgSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQppbmRleCBlOTU2ZWVkOTJhMGE1
ODc4MzY2ZWM1MzAwOTcyMjQxNjk4ODU2NzljLi44YTZkYjY0NTZkZGFlZDlhZDU2NjVhNjI1Y2I4
YTU1MWE3NmIzZjMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNj
cmlwdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlT
Y3JpcHRDb250cm9sbGVyTWFjLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbXBvcnQgIkV2ZW50
U2VuZGVyUHJveHkuaCIKICNpbXBvcnQgIkV2ZW50U2VyaWFsaXplck1hYy5oIgorI2ltcG9ydCAi
TGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1WaWV3SGVscGVycy5o
IgogI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcu
aCIKQEAgLTI2Myw0ICsyNjQsOSBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6Y29weVRl
eHQoSlNTdHJpbmdSZWYgdGV4dCkKICAgICBbcGFzdGVib2FyZCBzZXRTdHJpbmc6dGV4dC0+c3Ry
aW5nKCkgZm9yVHlwZTpOU1Bhc3RlYm9hcmRUeXBlU3RyaW5nXTsKIH0KIAordm9pZCBVSVNjcmlw
dENvbnRyb2xsZXJNYWM6OnNldFNwZWxsQ2hlY2tlclJlc3VsdHMoSlNWYWx1ZVJlZiByZXN1bHRz
KQoreworICAgIFtbTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciBjaGVja2VyXSBzZXRSZXN1bHRzRnJv
bUpTVmFsdWU6cmVzdWx0cyBpbkNvbnRleHQ6bV9jb250ZXh0LT5qc0NvbnRleHQoKV07Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE2ZGI3MDhlYzVlMWYwZGY0NzZiOTAwNDllNmVl
NmYxODhiMmFiNjMuLjhmOTdkMDgwZDFkMDRmMGI5MTYzZmViMjE0MjA3OTNmZjBjOTMxODMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0wOC0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0
byBvdmVycmlkZSBzcGVsbGNoZWNraW5nIHJlc3VsdHMgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MjkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgICogZWRpdGluZy9zcGVs
bGluZy9tYXJrZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL21h
cmtlcnMuaHRtbDoKKworICAgICAgICBSZXdyaXRlIHRoaXMgbGF5b3V0IHRlc3QgdG8gdXNlIGFz
eW5jLWF3YWl0LCBpbnN0ZWFkIG9mIGFzeW5jaHJvbm91c2x5IGNhbGxpbmcgdGhlIHJlY3Vyc2l2
ZSBgZG9uZWAgZnVuY3Rpb24uCisgICAgICAgIEFkZGl0aW9uYWxseSwgYWRvcHQgYFVJSGVscGVy
LnNldFNwZWxsQ2hlY2tlclJlc3VsdHNgLgorCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy90
ZXh0LXJlcGxhY2VtZW50LWFmdGVyLXR5cGluZy10by13b3JkLmh0bWw6CisKKyAgICAgICAgQWRv
cHQgYFVJSGVscGVyLnNldFNwZWxsQ2hlY2tlclJlc3VsdHNgLiBUaGlzIGFsbG93cyB1cyB0byBl
bmFibGUgdGhlIHRlc3Qgb24gbWFjT1MgV2ViS2l0Miwgc2luY2UgdGhlIG9ubHkKKyAgICAgICAg
dGhpbmcgdGhhdCBwcmV2ZW50ZWQgaXQgZnJvbSB3b3JraW5nIGJlZm9yZSB3YXMgdGhlIGFiaWxp
dHkgdG8gYHNldFNwZWxsQ2hlY2tlclJlc3VsdHNgIGluIFdlYktpdDIuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcmVzb3VyY2VzL3Vp
LWhlbHBlci5qczoKKworICAgICAgICBBZGQgYSBgVUlIZWxwZXJgIG1ldGhvZCB0byBvdmVycmlk
ZSB0aGUgc3lzdGVtIHNwZWxsIGNoZWNrZXIgd2l0aCBnaXZlbiByZXN1bHRzLgorCisgICAgICAg
ICh3aW5kb3cuVUlIZWxwZXIuYXN5bmMgc2V0U3BlbGxDaGVja2VyUmVzdWx0cyk6CisKIDIwMjAt
MDgtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIFVJU2NyaXB0Q29udHJvbGxlci5yZW1vdmVBbGxEeW5hbWljRGljdGlvbmFyaWVzKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMtZXhwZWN0ZWQudHh0
CmluZGV4IDkyMzU2NzNmYWU3Yzg3MGQ4YjNhNzNkOGY3MTUzNjY4ZGRjNTk1NzMuLmU4NDNmZDI1
ZWU1NDRkNWQ1MDUxZjc4YThhMjc3ZGZlYjRmYmM3MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLWV4cGVjdGVkLnR4dApAQCAtMyw0MSArMyw0MSBAQCBU
ZXN0cyBzcGVsbGluZyBhbmQgZ3JhbW1hciBtYXJrZXJzIGZvciBtaXNzcGVsbGluZ3MuCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotQ2hlY2tpbmcgZm9yIGlzc3VlIG9uICdJIGhhdmUg
YSBpc3N1ZS4nCi1QQVNTIGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJz
dENoaWxkLCBuZXh0TWlzc3BlbGxpbmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBm
cm9tIG51bGwKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAiSSBoYXZlIGEgaXNzdWUuIgorUEFTUyBp
bnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbWlzc3BlbGxp
bmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKIFBBU1MgcmFuZ2Uu
dG9TdHJpbmcoKSBpcyAiYSIKIAotQ2hlY2tpbmcgZm9yIGlzc3VlIG9uICdJIGhhdmUgYSBpc3N1
ZS4nCi1QQVNTIGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxk
LCBuZXh0TWlzc3BlbGxpbmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51
bGwKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAiSSBoYXZlIGEgaXNzdWUuIgorUEFTUyBpbnRlcm5h
bHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbWlzc3BlbGxpbmdEYXRh
Lm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKIFBBU1MgcmFuZ2UudG9TdHJp
bmcoKSBpcyAiYSIKIAotQ2hlY2tpbmcgZm9yIGlzc3VlIG9uICdJIGhhdmUgYSBpc3N1ZS4nCi1Q
QVNTIGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBuZXh0
TWlzc3BlbGxpbmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK0No
ZWNraW5nIGZvciBpc3N1ZSBvbiAiSSBoYXZlIGEgaXNzdWUuIgorUEFTUyBpbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbWlzc3BlbGxpbmdEYXRhLm1hcmtl
ciwgMCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKIFBBU1MgcmFuZ2UudG9TdHJpbmcoKSBp
cyAiYSIKIAotQ2hlY2tpbmcgZm9yIGlzc3VlIG9uICdJIGhhdmUgYSBpc3N1ZS4nCi1QQVNTIGlu
dGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBuZXh0TWlzc3Bl
bGxpbmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK0NoZWNraW5n
IGZvciBpc3N1ZSBvbiAiSSBoYXZlIGEgaXNzdWUuIgorUEFTUyBpbnRlcm5hbHMubWFya2VyUmFu
Z2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbWlzc3BlbGxpbmdEYXRhLm1hcmtlciwgMCkg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKIFBBU1MgcmFuZ2UudG9TdHJpbmcoKSBpcyAiYSIK
IAotQ2hlY2tpbmcgZm9yIGlzc3VlIG9uICd6ei4nCi1QQVNTIGludGVybmFscy5tYXJrZXJSYW5n
ZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBuZXh0TWlzc3BlbGxpbmdEYXRhLm1hcmtlciwg
MCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAienou
IgorUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwg
bWlzc3BlbGxpbmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKIFBB
U1MgcmFuZ2UudG9TdHJpbmcoKSBpcyAienoiCiAKLUNoZWNraW5nIGZvciBpc3N1ZSBvbiAnb3Jh
bmdlLHp6LGFwcGxlLicKLVBBU1MgaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50
LmZpcnN0Q2hpbGQsIG5leHRNaXNzcGVsbGluZ0RhdGEubWFya2VyLCAwKSBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gbnVsbAorQ2hlY2tpbmcgZm9yIGlzc3VlIG9uICJvcmFuZ2UsenosYXBwbGUuIgor
UEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbWlz
c3BlbGxpbmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKIFBBU1Mg
cmFuZ2UudG9TdHJpbmcoKSBpcyAib3JhbmdlLHp6LGFwcGxlLiIKIAotQ2hlY2tpbmcgZm9yIGlz
c3VlIG9uICdvcmFuZ2UsenosYXBwbGUuJwotUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JO
b2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJl
Y2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitDaGVja2luZyBmb3IgaXNzdWUgb24gIm9yYW5nZSx6
eixhcHBsZS4iCitQQVNTIGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJz
dENoaWxkLCBtaXNzcGVsbGluZ0RhdGEubWFya2VyLCAwKSBiZWNhbWUgZGlmZmVyZW50IGZyb20g
bnVsbAogUEFTUyByYW5nZS50b1N0cmluZygpIGlzICJvcmFuZ2UsenosYXBwbGUiCiAKLUNoZWNr
aW5nIGZvciBubyBvdGhlciBpc3N1ZXMgb24gJ0kgaGF2ZSBhIGlzc3VlLicKK0NoZWNraW5nIGZv
ciBubyBvdGhlciBpc3N1ZXMgb24gIkkgaGF2ZSBhIGlzc3VlLiIKIFBBU1MgaW50ZXJuYWxzLm1h
cmtlckNvdW50Rm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG9wcG9zaXRlTWFya2VyKSBiZWNh
bWUgMAogCi1DaGVja2luZyBmb3Igbm8gb3RoZXIgaXNzdWVzIG9uICdJIGhhdmUgYSBpc3N1ZS4n
CitDaGVja2luZyBmb3Igbm8gb3RoZXIgaXNzdWVzIG9uICJJIGhhdmUgYSBpc3N1ZS4iCiBQQVNT
IGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBvcHBvc2l0
ZU1hcmtlcikgYmVjYW1lIDAKIAotQ2hlY2tpbmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAnenou
JworQ2hlY2tpbmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAienouIgogUEFTUyBpbnRlcm5hbHMu
bWFya2VyQ291bnRGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgb3Bwb3NpdGVNYXJrZXIpIGJl
Y2FtZSAwCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKaW5kZXggMDZlMzk2NWU1YTQ0MTM1MzNjOGU3OTYz
N2Y3MWZmZDM4MGYwODZkNi4uZWQ1M2MyZGQwMjFhNTYwNzVjNDgwYTQzYzVhOGNlM2I3M2Y4Nzkz
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKQEAgLTgsMTAg
KzgsMTEgQEAKICAgICBmb250LXNpemU6IDI0cHg7CiB9CiA8L3N0eWxlPgotPHNjcmlwdCBzcmM9
Ii4uL2VkaXRpbmcuanMiIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3Jp
cHQiID48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgogCiA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogCkBAIC0yNiwxMCArMjcsMTAgQEAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKIH0KIAogZnVuY3Rpb24gY3JlYXRlRWRpdGFibGVFbGVt
ZW50KHBhcmVudCwgdGV4dENvbnRlbnQpIHsKLSAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOworICAgIHZhciBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CiAgICAgZS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIsICJ0cnVlIik7CiAgICAgZS50
ZXh0Q29udGVudCA9IHRleHRDb250ZW50OwotICAgIGUuY2xhc3NOYW1lID0gJ2VkaXRpbmcnOwor
ICAgIGUuY2xhc3NOYW1lID0gImVkaXRpbmciOwogCiAgICAgcGFyZW50LmFwcGVuZENoaWxkKGUp
OwogICAgIHJldHVybiBlOwpAQCAtMzksMjIgKzQwLDIyIEBAIGZ1bmN0aW9uIHR5cGVUZXh0KGVs
ZW0sIHRleHQpIHsKICAgICBlbGVtLmZvY3VzKCk7CiAgICAgc2VsZWN0QWxsQ29tbWFuZCgpOwog
ICAgIGRlbGV0ZUNvbW1hbmQoKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHQubGVuZ3Ro
OyArK2kpCi0gICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKHRleHRbaV0pOworICAgIGZvciAo
bGV0IGNoYXJhY3RlciBvZiB0ZXh0KQorICAgICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZChjaGFy
YWN0ZXIpOwogfQogCi1jb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29udGFpbmVyJyk7Citjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29udGFpbmVyIik7CiBjb25zdCBlbGVtZW50V2l0aEdyYW1tYXJJc3N1ZSA9IGNyZWF0ZUVkaXRh
YmxlRWxlbWVudChjb250YWluZXIsICJJIGhhdmUgYSBpc3N1ZS4iKTsKIGNvbnN0IGVsZW1lbnRX
aXRoU3BlbGxpbmdJc3N1ZSAgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoY29udGFpbmVyLCAienou
Iik7CiBjb25zdCBlbGVtZW50V2l0aEdyYW1tYXJBbmRTcGVsbGluZ0lzc3VlID0gY3JlYXRlRWRp
dGFibGVFbGVtZW50KGNvbnRhaW5lciwgIm9yYW5nZSx6eixhcHBsZS4iKTsKIAogY29uc3QgbWlz
c3BlbGxpbmdzID0gWwotICAgIHsgbWFya2VyOiAnc3BlbGxpbmcnLCAgaXNzdWU6ICdhJyB9LAot
ICAgIHsgbWFya2VyOiAnZ3JhbW1hcicsICBpc3N1ZTogJ2EnIH0sCi0gICAgeyBtYXJrZXI6ICdn
cmFtbWFyJywgIGlzc3VlOiAnSSBoYXZlIGEgaXNzdWUuJyB9LAotICAgIHsgbWFya2VyOiAnc3Bl
bGxpbmcnLCBpc3N1ZTogJ3p6JyB9LAotICAgIHsgbWFya2VyOiAnZ3JhbW1hcicsICBpc3N1ZTog
J29yYW5nZSx6eixhcHBsZS4nIH0sCi0gICAgeyBtYXJrZXI6ICdzcGVsbGluZycsICBpc3N1ZTog
J29yYW5nZSx6eixhcHBsZScgfSwKKyAgICB7IG1hcmtlcjogInNwZWxsaW5nIiwgIGlzc3VlOiAi
YSIgfSwKKyAgICB7IG1hcmtlcjogImdyYW1tYXIiLCAgaXNzdWU6ICJhIiB9LAorICAgIHsgbWFy
a2VyOiAiZ3JhbW1hciIsICBpc3N1ZTogIkkgaGF2ZSBhIGlzc3VlLiIgfSwKKyAgICB7IG1hcmtl
cjogInNwZWxsaW5nIiwgaXNzdWU6ICJ6eiIgfSwKKyAgICB7IG1hcmtlcjogImdyYW1tYXIiLCAg
aXNzdWU6ICJvcmFuZ2UsenosYXBwbGUuIiB9LAorICAgIHsgbWFya2VyOiAic3BlbGxpbmciLCAg
aXNzdWU6ICJvcmFuZ2UsenosYXBwbGUiIH0sCiBdOwogCiBjb25zdCByZXN1bHRzID0gWwpAQCAt
NzMsODcgKzc0LDc2IEBAIGNvbnN0IHJlc3VsdHMgPSBbCiAgICAgfQogXTsKIAotdmFyIHRlc3Rz
ID0gWwotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdy
YW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDEpLCByZXN1bHRzLnNsaWNlKDAsIDEp
KSB9LAotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdy
YW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDEsIDIpLCByZXN1bHRzLnNsaWNlKDEsIDIp
KSB9LAotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdy
YW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDIpLCByZXN1bHRzLnNsaWNlKDAsIDIp
KSB9LAotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aFNw
ZWxsaW5nSXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgzLCA0KSkgfSwKLSAgICBmdW5jdGlvbigp
IHsgdmVyaWZ5RGVzaXJlZE1hcmtlcnMoZWxlbWVudFdpdGhHcmFtbWFyQW5kU3BlbGxpbmdJc3N1
ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDQsIDYpKSB9LAotCi0gICAgLy8gVGhvc2UgZXhwZWN0IHRv
IGhhdmUgb25seSBvbmUga2luZCBvZiBtYXJrZXJzIGVpdGhlciBzcGVsbGluZyBvciBncmFtbWFy
LgotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlVbmV4cGVjdGVkTWFya2VycyhlbGVtZW50V2l0aEdy
YW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDEpLCByZXN1bHRzLnNsaWNlKDAsIDEp
KSB9LAotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlVbmV4cGVjdGVkTWFya2VycyhlbGVtZW50V2l0
aEdyYW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDEsIDIpLCByZXN1bHRzLnNsaWNlKDEs
IDIpKSB9LAotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlVbmV4cGVjdGVkTWFya2VycyhlbGVtZW50
V2l0aFNwZWxsaW5nSXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgzLCA0KSkgfSwKLV07Ci0KLXZh
ciBlbGVtZW50OwotdmFyIG5leHRNaXNzcGVsbGluZ0RhdGE7Cit3aW5kb3cuZWxlbWVudCA9IG51
bGw7Cit3aW5kb3cub3Bwb3NpdGVNYXJrZXIgPSBudWxsOword2luZG93Lm1pc3NwZWxsaW5nRGF0
YSA9IG51bGw7CiAKLWZ1bmN0aW9uIHZlcmlmeURlc2lyZWRNYXJrZXJzKGUsIG1pc3NwZWxsaW5n
cywgb3ZlcnJpZGVTcGVsbENoZWNraW5nUmVzdWx0cykKK2FzeW5jIGZ1bmN0aW9uIHZlcmlmeURl
c2lyZWRNYXJrZXJzKGUsIG1pc3NwZWxsaW5ncywgb3ZlcnJpZGVTcGVsbENoZWNraW5nUmVzdWx0
cykKIHsKLSAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHJldHVybiBkb25lKCk7
CisgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoMCk7CiAKKyAgICB3aW5kb3cuZWxlbWVudCA9
IGU7CiAgICAgY29uc3QgdGV4dFRvQ2hlY2sgPSBlLmZpcnN0Q2hpbGQubm9kZVZhbHVlOwotICAg
IGNvbnN0IHNwZWxsQ2hlY2tlclJlc3VsdHMgPSB7IH07CisKKyAgICBsZXQgc3BlbGxDaGVja2Vy
UmVzdWx0cyA9IHsgfTsKICAgICBpZiAob3ZlcnJpZGVTcGVsbENoZWNraW5nUmVzdWx0cykKICAg
ICAgICAgc3BlbGxDaGVja2VyUmVzdWx0c1t0ZXh0VG9DaGVja10gPSBvdmVycmlkZVNwZWxsQ2hl
Y2tpbmdSZXN1bHRzOwotICAgIHRlc3RSdW5uZXIuc2V0U3BlbGxDaGVja2VyUmVzdWx0cyhzcGVs
bENoZWNrZXJSZXN1bHRzKTsKKyAgICBhd2FpdCBVSUhlbHBlci5zZXRTcGVsbENoZWNrZXJSZXN1
bHRzKHNwZWxsQ2hlY2tlclJlc3VsdHMpOwogCi0gICAgdHlwZVRleHQoZSwgdGV4dFRvQ2hlY2sp
OworICAgIGZvciAobGV0IG1pc3NwZWxsaW5nIG9mIG1pc3NwZWxsaW5ncykgeworICAgICAgICB3
aW5kb3cubWlzc3BlbGxpbmdEYXRhID0gbWlzc3BlbGxpbmc7CiAKLSAgICBlbGVtZW50ID0gZTsK
LSAgICBuZXh0TWlzc3BlbGxpbmdEYXRhID0gbWlzc3BlbGxpbmdzLnNoaWZ0KCk7Ci0gICAgaWYg
KCFuZXh0TWlzc3BlbGxpbmdEYXRhKQotICAgICAgICByZXR1cm4gZG9uZSgpOworICAgICAgICB0
eXBlVGV4dChlLCB0ZXh0VG9DaGVjayk7CiAKLSAgICBkZWJ1ZyhgQ2hlY2tpbmcgZm9yIGlzc3Vl
IG9uICcke3RleHRUb0NoZWNrfSdgKTsKKyAgICAgICAgZGVidWcoYENoZWNraW5nIGZvciBpc3N1
ZSBvbiAiJHt0ZXh0VG9DaGVja30iYCk7CiAKLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoJ2lu
dGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBuZXh0TWlzc3Bl
bGxpbmdEYXRhLm1hcmtlciwgMCknLCAibnVsbCIsIGZ1bmN0aW9uKCkgewotICAgICAgICByYW5n
ZSA9IGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBuZXh0
TWlzc3BlbGxpbmdEYXRhLm1hcmtlciwgMCk7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygncmFuZ2UudG9TdHJpbmcoKScsIG5leHRNaXNzcGVsbGluZ0RhdGEuaXNzdWUpOworICAgICAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNob3VsZEJlY29tZURpZmZlcmVudCgiaW50
ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG1pc3NwZWxsaW5n
RGF0YS5tYXJrZXIsIDApIiwgIm51bGwiLCByZXNvbHZlKSk7CisgICAgICAgIHJhbmdlID0gaW50
ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG1pc3NwZWxsaW5n
RGF0YS5tYXJrZXIsIDApOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJhbmdlLnRv
U3RyaW5nKCkiLCBtaXNzcGVsbGluZ0RhdGEuaXNzdWUpOwogICAgICAgICBkZWJ1ZygiIik7Ci0g
ICAgICAgIHZlcmlmeURlc2lyZWRNYXJrZXJzKGVsZW1lbnQsIG1pc3NwZWxsaW5ncyk7Ci0gICAg
fSk7CisgICAgfQogfQogCi12YXIgb3Bwb3NpdGVNYXJrZXI7Ci1mdW5jdGlvbiB2ZXJpZnlVbmV4
cGVjdGVkTWFya2VycyhlLCBtaXNzcGVsbGluZ3MsIG92ZXJyaWRlU3BlbGxDaGVja2luZ1Jlc3Vs
dHMpCithc3luYyBmdW5jdGlvbiB2ZXJpZnlVbmV4cGVjdGVkTWFya2VycyhlLCBtaXNzcGVsbGlu
Z3MsIG92ZXJyaWRlU3BlbGxDaGVja2luZ1Jlc3VsdHMpCiB7CisgICAgYXdhaXQgVUlIZWxwZXIu
ZGVsYXlGb3IoMCk7CisKKyAgICB3aW5kb3cuZWxlbWVudCA9IGU7CiAgICAgY29uc3QgdGV4dFRv
Q2hlY2sgPSBlLmZpcnN0Q2hpbGQubm9kZVZhbHVlOwotICAgIGNvbnN0IHNwZWxsQ2hlY2tlclJl
c3VsdHMgPSB7IH07CisKKyAgICBsZXQgc3BlbGxDaGVja2VyUmVzdWx0cyA9IHsgfTsKICAgICBp
ZiAob3ZlcnJpZGVTcGVsbENoZWNraW5nUmVzdWx0cykKICAgICAgICAgc3BlbGxDaGVja2VyUmVz
dWx0c1t0ZXh0VG9DaGVja10gPSBvdmVycmlkZVNwZWxsQ2hlY2tpbmdSZXN1bHRzOwotICAgIHRl
c3RSdW5uZXIuc2V0U3BlbGxDaGVja2VyUmVzdWx0cyhzcGVsbENoZWNrZXJSZXN1bHRzKTsKKyAg
ICBhd2FpdCBVSUhlbHBlci5zZXRTcGVsbENoZWNrZXJSZXN1bHRzKHNwZWxsQ2hlY2tlclJlc3Vs
dHMpOwogCi0gICAgdHlwZVRleHQoZSwgdGV4dFRvQ2hlY2spOworICAgIGZvciAobGV0IG1pc3Nw
ZWxsaW5nIG9mIG1pc3NwZWxsaW5ncykgeworICAgICAgICB3aW5kb3cubWlzc3BlbGxpbmdEYXRh
ID0gbWlzc3BlbGxpbmc7CiAKLSAgICBlbGVtZW50ID0gZTsKLSAgICBuZXh0TWlzc3BlbGxpbmdE
YXRhID0gbWlzc3BlbGxpbmdzLnNoaWZ0KCk7CisgICAgICAgIHR5cGVUZXh0KGUsIHRleHRUb0No
ZWNrKTsKIAotICAgIGlmIChuZXh0TWlzc3BlbGxpbmdEYXRhLm1hcmtlciA9PSAnZ3JhbW1hcicp
Ci0gICAgICAgIG9wcG9zaXRlTWFya2VyID0gJ3NwZWxsaW5nJzsKLSAgICBlbHNlIGlmIChuZXh0
TWlzc3BlbGxpbmdEYXRhLm1hcmtlciA9PSAnc3BlbGxpbmcnKQotICAgICAgICBvcHBvc2l0ZU1h
cmtlciA9ICdncmFtbWFyJzsKKyAgICAgICAgaWYgKG1pc3NwZWxsaW5nRGF0YS5tYXJrZXIgPT0g
ImdyYW1tYXIiKQorICAgICAgICAgICAgd2luZG93Lm9wcG9zaXRlTWFya2VyID0gInNwZWxsaW5n
IjsKKyAgICAgICAgZWxzZSBpZiAobWlzc3BlbGxpbmdEYXRhLm1hcmtlciA9PSAic3BlbGxpbmci
KQorICAgICAgICAgICAgd2luZG93Lm9wcG9zaXRlTWFya2VyID0gImdyYW1tYXIiOwogCi0gICAg
ZGVidWcoYENoZWNraW5nIGZvciBubyBvdGhlciBpc3N1ZXMgb24gJyR7dGV4dFRvQ2hlY2t9J2Ap
OworICAgICAgICBkZWJ1ZyhgQ2hlY2tpbmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAiJHt0ZXh0
VG9DaGVja30iYCk7CiAKLSAgICBzaG91bGRCZWNvbWVFcXVhbCgnaW50ZXJuYWxzLm1hcmtlckNv
dW50Rm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG9wcG9zaXRlTWFya2VyKScsICcwJywgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVj
b21lRXF1YWwoImludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZWxlbWVudC5maXJzdENoaWxk
LCBvcHBvc2l0ZU1hcmtlcikiLCAiMCIsIHJlc29sdmUpKTsKICAgICAgICAgZGVidWcoIiIpOwot
ICAgICAgICBkb25lKCk7Ci0gICAgfSk7CisgICAgfQogfQogCi1mdW5jdGlvbiBkb25lKCkKLXsK
LSAgICB2YXIgbmV4dCA9IHRlc3RzLnNoaWZ0KCk7Ci0gICAgaWYgKG5leHQpCi0gICAgICAgIHJl
dHVybiB3aW5kb3cuc2V0VGltZW91dChuZXh0LCAwKTsKLQorYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGF3YWl0IHZlcmlmeURlc2lyZWRNYXJrZXJzKGVs
ZW1lbnRXaXRoR3JhbW1hcklzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMCwgMSksIHJlc3VsdHMu
c2xpY2UoMCwgMSkpOworICAgIGF3YWl0IHZlcmlmeURlc2lyZWRNYXJrZXJzKGVsZW1lbnRXaXRo
R3JhbW1hcklzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMSwgMiksIHJlc3VsdHMuc2xpY2UoMSwg
MikpOworICAgIGF3YWl0IHZlcmlmeURlc2lyZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1hcklz
c3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMCwgMiksIHJlc3VsdHMuc2xpY2UoMCwgMikpOworICAg
IGF3YWl0IHZlcmlmeURlc2lyZWRNYXJrZXJzKGVsZW1lbnRXaXRoU3BlbGxpbmdJc3N1ZSwgbWlz
c3BlbGxpbmdzLnNsaWNlKDMsIDQpKTsKKyAgICBhd2FpdCB2ZXJpZnlEZXNpcmVkTWFya2Vycyhl
bGVtZW50V2l0aEdyYW1tYXJBbmRTcGVsbGluZ0lzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoNCwg
NikpOworICAgIGF3YWl0IHZlcmlmeVVuZXhwZWN0ZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1h
cklzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMCwgMSksIHJlc3VsdHMuc2xpY2UoMCwgMSkpOwor
ICAgIGF3YWl0IHZlcmlmeVVuZXhwZWN0ZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1hcklzc3Vl
LCBtaXNzcGVsbGluZ3Muc2xpY2UoMSwgMiksIHJlc3VsdHMuc2xpY2UoMSwgMikpOworICAgIGF3
YWl0IHZlcmlmeVVuZXhwZWN0ZWRNYXJrZXJzKGVsZW1lbnRXaXRoU3BlbGxpbmdJc3N1ZSwgbWlz
c3BlbGxpbmdzLnNsaWNlKDMsIDQpKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLWRvbmUoKTsK
K30pOwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3RleHQtcmVwbGFjZW1lbnQtYWZ0ZXItdHlwaW5nLXRvLXdvcmQu
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvdGV4dC1yZXBsYWNlbWVudC1hZnRl
ci10eXBpbmctdG8td29yZC5odG1sCmluZGV4IGJhMDY4Njc1ZTRhMDY1OTVlMGZjMjQ5NzA5ZWVk
ZWQ4NGJhYmI0ZjUuLmM4ZDg0NWZiZmY1Y2JiYjFjZmQ4NmM5YzJhODZiMGM1N2EzZGFlNjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvdGV4dC1yZXBsYWNlbWVudC1h
ZnRlci10eXBpbmctdG8td29yZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvdGV4dC1yZXBsYWNlbWVudC1hZnRlci10eXBpbmctdG8td29yZC5odG1sCkBAIC0xLDYgKzEs
NyBAQAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKQEAgLTE3LDcgKzE4LDcgQEAgYXN5bmMgZnVuY3Rp
b24gcnVuVGVzdCgpCiAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZChmYWxzZSk7CiAgICAgICAgIGludGVybmFscy5zZXRBdXRvbWF0
aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKHRydWUpOwogICAgICAgICBpbnRlcm5hbHMuc2V0QXV0
b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTcGVsbENoZWNrZXJSZXN1bHRzKHsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuc2V0U3Bl
bGxDaGVja2VyUmVzdWx0cyh7CiAgICAgICAgICAgICAiWVQ/IjogWwogICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgInJlcGxhY2VtZW50IjogIllvdSB0aGVyZT8iLApAQCAt
NjIsNiArNjMsNSBAQCBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKIDxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KICAgICA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiAgICAgPGRpdiBjb250
ZW50ZWRpdGFibGUgc3R5bGU9Im1hcmdpbi1ib3R0b206IDFlbTsgYm9yZGVyOiAxcHggb3Jhbmdl
IGRhc2hlZDsiIGlkPSJlZGl0b3IiPjwvZGl2PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzZDc4YTE4
ZGE1M2RmM2YwODBhYTEzYTY0YWY0MDBkMmRkZDg1Y2EwLi5mNjlmM2ZkZTc3YmZiNjI0MjdhYzQx
MDMwMzAyZTdiNTNjMDlkMmZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0yMDcsNyArMjA3LDYgQEAgd2Via2l0Lm9yZy9iLzEwNTYxNiBl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXdpdGgtd2hpdGVzcGFjZS1zZWxlY3Rpb24uaHRtbAog
d2Via2l0Lm9yZy9iLzEwNTYxNiBlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXIuaHRtbAogd2Via2l0
Lm9yZy9iLzEwNTYxNiBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAogd2Via2l0Lm9yZy9i
LzEwNTYxNiBlZGl0aW5nL3NwZWxsaW5nL3JldHJvLWNvcnJlY3Rpb24tc3BlbGxpbmctbWFya2Vy
cy5odG1sCi13ZWJraXQub3JnL2IvMTA1NjE2IGVkaXRpbmcvc3BlbGxpbmcvdGV4dC1yZXBsYWNl
bWVudC1hZnRlci10eXBpbmctdG8td29yZC5odG1sCiB3ZWJraXQub3JnL2IvMTA1NjE2IGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2Vycy1hZnRlci1wYXN0aW5nLXNlbnRlbmNlLmh0bWwK
IHdlYmtpdC5vcmcvYi8xMDU2MTYgZWRpdGluZy9tYWMvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24t
ZGVsZXRlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMDU2MTYgZWRpdGluZy9tYWMv
c3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLWFmdGVyLXBhc3RlLmh0
bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IGMwZTkwMTA1
NDQ3YjA2OTkxZDAxMDAwODc2ZTQ0MjVhNDgzMzc0NjYuLmVkYTA4OWE5ZjhjMzU5ZTEzYjkyZjM1
YjliY2EyYTgyMjE0N2JkNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtMTI4
Nyw2ICsxMjg3LDE2IEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAg
ICAgfSk7CiAgICAgfQogCisgICAgc3RhdGljIGFzeW5jIHNldFNwZWxsQ2hlY2tlclJlc3VsdHMo
cmVzdWx0cykKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYCgoKSA9PiB7CisgICAgICAgICAg
ICAgICAgdWlDb250cm9sbGVyLnNldFNwZWxsQ2hlY2tlclJlc3VsdHMoJHtKU09OLnN0cmluZ2lm
eShyZXN1bHRzKX0pOworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBs
ZXRlKCk7CisgICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7CisgICAgICAgIH0pOworICAgIH0K
KwogICAgIHN0YXRpYyBhc3luYyBhY3RpdmF0ZUVsZW1lbnRBZnRlckluc3RhbGxpbmdUYXBHZXN0
dXJlT25XaW5kb3coZWxlbWVudCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIo
KSB8fCAhdGhpcy5pc0lPU0ZhbWlseSgpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>