<?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>68930</bug_id>
          
          <creation_ts>2011-09-27 13:43:29 -0700</creation_ts>
          <short_desc>Web Inspector: Refactor searching in inspector, add test (fixed non regex search).</short_desc>
          <delta_ts>2011-09-28 04:56:02 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>474197</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-27 13:43:29 -0700</bug_when>
    <thetext>Refactor searching in inspector, add test (+fix).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474262</commentid>
    <comment_count>1</comment_count>
      <attachid>108906</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-27 14:59:47 -0700</bug_when>
    <thetext>Created attachment 108906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474266</commentid>
    <comment_count>2</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-27 15:02:35 -0700</bug_when>
    <thetext>We will need search in debugger agent as well, so moved it out of page agent.
Added test.
Fixed non regex case (added &quot; != notFound&quot; to condition) which is never used yet, but will probably be used for search in multiple scripts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474577</commentid>
    <comment_count>3</comment_count>
      <attachid>108906</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-09-28 00:49:09 -0700</bug_when>
    <thetext>Comment on attachment 108906
Patch

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

&gt; LayoutTests/ChangeLog:3
&gt; +        Web Inspector: Refactor searching in inspector, add test (+fix).

What is (+fix) in the title? Also the log entry should contain a description of the changes made.

&gt; Source/WebCore/inspector/ContentSearchUtils.h:44
&gt; +    ContentSearchUtils() { }

You may use a namespace instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474667</commentid>
    <comment_count>4</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-09-28 04:56:02 -0700</bug_when>
    <thetext>Committed r96215: &lt;http://trac.webkit.org/changeset/96215&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108906</attachid>
            <date>2011-09-27 14:59:47 -0700</date>
            <delta_ts>2011-09-28 00:49:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68930-20110928015944.patch</filename>
            <type>text/plain</type>
            <size>28978</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYxNjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NDVjNjU3YTNiMmYxMzQzYzIwZjlm
ODRhZWRmZjBhMTM4ZTM1Y2RjLi5lYWNlZTc3YzExYzk3OGNhZTExOWZiNDcxMGZiYTI3OGM5YzUw
OTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDktMjcgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVmYWN0b3Ig
c2VhcmNoaW5nIGluIGluc3BlY3RvciwgYWRkIHRlc3QgKCtmaXgpLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5MzAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Nl
YXJjaC9yZXNvdXJjZXMvc2VhcmNoLmNzczogQWRkZWQuCisgICAgICAgIChkaXYuc2VhcmNoVGVz
dFVuaXF1ZVN0cmluZyk6CisgICAgICAgIChkaXYuc2VhcmNoVGVzdFVuaXF1ZVN0cmluZzpob3Zl
cik6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFy
Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jl
c291cmNlcy9zZWFyY2guanM6IEFkZGVkLgorICAgICAgICAoc2VhcmNoVGVzdFVuaXF1ZVN0cmlu
Zyk6CisgICAgICAgIChkb1NvbWV0aGluZyk6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivc2VhcmNoL3NlYXJjaC1pbi1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXJlc291cmNlcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLXRl
c3QuanM6IEFkZGVkLgorICAgICAgICAoaW5pdGlhbGl6ZV9TZWFyY2hUZXN0Lkluc3BlY3RvclRl
c3QuZHVtcFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAoaW5pdGlhbGl6ZV9TZWFyY2hUZXN0KToK
KwogMjAxMS0wOS0yNyAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEFkZCBhIG1lY2hhbmlzbSB0byB0ZXN0IGZvciB0aGUgY29tcG9zaXRpbmcgdHJlZSBt
dXRhdGVkIGR1cmluZyBwYWludGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guY3NzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guY3NzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA3NjBjOWIwM2JlOWQ5NzcxOTI5NTE1OTdlNzJhYzA3ZmIyMjMwNWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3Nl
YXJjaC5jc3MKQEAgLTAsMCArMSw5IEBACitkaXYuc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCitkaXYuc2VhcmNoVGVzdFVuaXF1ZVN0cmlu
Zzpob3ZlciB7CisgICAgLyogYW5vdGhlciBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nIG9jY3VyZW5j
ZSAqLworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNo
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmVhODg4ZGU2NDc4NDEwZTM4MmQxODI2ZDMwOTY0Yjc2ZDg1MTVh
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Nl
YXJjaC9yZXNvdXJjZXMvc2VhcmNoLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIGhyZWY9InNlYXJjaC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiPgorPHNjcmlwdCBzcmM9InNlYXJjaC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxkaXY+c2Vh
cmNoVGVzdFVuaXF1ZVN0cmluZzwvZGl2PgorPGRpdj5vdGhlciB0ZXh0PC9kaXY+Cis8IS0tIHNl
YXJjaFRlc3RVbmlxdWVTdHJpbmcgLS0+Cis8ZGl2PnNvbWUgb3RoZXIgdGV4dDwvZGl2PgorPGRp
diBpZD0ic2VhcmNoVGVzdFVuaXF1ZVN0cmluZyI+ZGl2IHRleHQ8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2Vh
cmNoL3Jlc291cmNlcy9zZWFyY2guanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTkzZWUxZDE2ODQ2NGRm
OTk0NzM1NjVkMzgzZDJkZTVlY2E1NGMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guanMKQEAgLTAsMCAr
MSwxMyBAQAorZnVuY3Rpb24gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZygpCit7CisgICAgdmFyIHZh
cmlhYmxlID0gMDsKKyAgICAvLyBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nIHR3byBvY2N1cmVuY2Vz
IG9uIHRoZSBzYW1lIGxpbmUgc2VhcmNoVGVzdFVuaXF1ZVN0cmluZworICAgIHZhciB2YXJpYWJs
ZTIgPSAwOworfQorCitmdW5jdGlvbiBkb1NvbWV0aGluZygpCit7CisgICAgc2VhcmNoVGVzdFVu
aXF1ZVN0cmluZygpOworICAgIC8vIFNFQVJDSFRlc3RVbmlxdWVTdHJpbmcoKTsKK30KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1p
bi1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivc2VhcmNoL3NlYXJjaC1pbi1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEy
YWZlYzdiYmNlYWNlOTc2ODAzMjIzZTYyYjA2YzhkZDNhYjU4ZjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXJlc291
cmNlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorVGVzdHMgYmFja2VuZCBzZWFyY2gg
aW4gaW5zcGVjdG9yLgorCitCdWcgNjEyMDUgIAorQ2FzZSBpbnNlbnNpdGl2ZSwgbm9uIHJlZ2V4
OgorU2VhcmNoIHJlc3VsdHM6IAordXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmNzcywgbWF0Y2hlc0NvdW50OiAzCit1cmw6IGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guanMsIG1h
dGNoZXNDb3VudDogNQordXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3NlYXJj
aC9yZXNvdXJjZXMvc2VhcmNoLmh0bWwsIG1hdGNoZXNDb3VudDogMworCitDYXNlIHNlbnNpdGl2
ZSwgbm9uIHJlZ2V4OgorU2VhcmNoIHJlc3VsdHM6IAordXJsOiBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmNzcywgbWF0Y2hlc0NvdW50OiAz
Cit1cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9z
ZWFyY2guanMsIG1hdGNoZXNDb3VudDogNAordXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmh0bWwsIG1hdGNoZXNDb3VudDogMworCitD
YXNlIGluc2Vuc2l0aXZlLCByZWdleDoKK1NlYXJjaCByZXN1bHRzOiAKK3VybDogaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5jc3MsIG1hdGNo
ZXNDb3VudDogMwordXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3NlYXJjaC9y
ZXNvdXJjZXMvc2VhcmNoLmpzLCBtYXRjaGVzQ291bnQ6IDUKK3VybDogaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5odG1sLCBtYXRjaGVzQ291
bnQ6IDMKKworQ2FzZSBzZW5zaXRpdmUsIHJlZ2V4OgorU2VhcmNoIHJlc3VsdHM6IAordXJsOiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmNz
cywgbWF0Y2hlc0NvdW50OiAzCit1cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
c2VhcmNoL3Jlc291cmNlcy9zZWFyY2guanMsIG1hdGNoZXNDb3VudDogNAordXJsOiBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmh0bWwsIG1h
dGNoZXNDb3VudDogMworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXJlc291cmNlcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxN2IzNDYyNzVjMjM4YmM3MDEzMzhmZWM0ZjhhOGUyNGQ3OGIzOTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWlu
LXJlc291cmNlcy5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzZWFyY2gtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgLy8gVGhpcyBmaWxlIHNob3VsZCBub3QgbWF0Y2ggc2VhcmNoIHF1ZXJ5LgorICAgIHZh
ciB0ZXh0ID0gInNlYXJjaFRlc3QiICsgIlVuaXF1ZVN0cmluZyI7CisgICAgSW5zcGVjdG9yVGVz
dC5ydW5BZnRlclJlc291cmNlc0FyZUZpbmlzaGVkKFsic2VhcmNoLmpzIiwgInNlYXJjaC5jc3Mi
LCAic2VhcmNoLmh0bWwiXSwgc3RlcDIpOworCisgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNhc2UgaW5zZW5zaXRpdmUsIG5vbiBy
ZWdleDoiKTsKKyAgICAgICAgUGFnZUFnZW50LnNlYXJjaEluUmVzb3VyY2VzKHRleHQsIGZhbHNl
LCBmYWxzZSwgc3RlcDMpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAzKGVycm9yLCBzZWFy
Y2hSZXN1bHRzKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoUmVzdWx0
cyhzZWFyY2hSZXN1bHRzKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNhc2Ug
c2Vuc2l0aXZlLCBub24gcmVnZXg6Iik7CisgICAgICAgIFBhZ2VBZ2VudC5zZWFyY2hJblJlc291
cmNlcyh0ZXh0LCB0cnVlLCBmYWxzZSwgc3RlcDQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXA0KGVycm9yLCBzZWFyY2hSZXN1bHRzKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5k
dW1wU2VhcmNoUmVzdWx0cyhzZWFyY2hSZXN1bHRzKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkNhc2UgaW5zZW5zaXRpdmUsIHJlZ2V4OiIpOworICAgICAgICBQYWdlQWdlbnQu
c2VhcmNoSW5SZXNvdXJjZXModGV4dCwgZmFsc2UsIHRydWUsIHN0ZXA1KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzdGVwNShlcnJvciwgc2VhcmNoUmVzdWx0cykKKyAgICB7CisgICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcFNlYXJjaFJlc3VsdHMoc2VhcmNoUmVzdWx0cyk7CisgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDYXNlIHNlbnNpdGl2ZSwgcmVnZXg6Iik7CisgICAgICAg
IFBhZ2VBZ2VudC5zZWFyY2hJblJlc291cmNlcyh0ZXh0LCB0cnVlLCB0cnVlLCBzdGVwNik7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDYoZXJyb3IsIHNlYXJjaFJlc3VsdHMpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWFyY2hSZXN1bHRzKHNlYXJjaFJlc3VsdHMpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0cyBiYWNrZW5kIHNlYXJjaCBpbiBpbnNwZWN0b3Iu
PC9wPgorPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYx
MjA1Ij5CdWcgNjEyMDU8L2E+CisKKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvc2VhcmNoLmh0bWwi
IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtdGVzdC5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtdGVzdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZGQxOTc1NTlhYTFjYTYwNmUzZmE1YzVmMGI2MGE4ZWRiNzM4NmEyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC10
ZXN0LmpzCkBAIC0wLDAgKzEsMTEgQEAKK3ZhciBpbml0aWFsaXplX1NlYXJjaFRlc3QgPSBmdW5j
dGlvbigpIHsKKworSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoUmVzdWx0cyA9IGZ1bmN0aW9uKHNl
YXJjaFJlc3VsdHMpCit7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNlYXJjaCByZXN1
bHRzOiAiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlYXJjaFJlc3VsdHMubGVuZ3RoOyBp
KyspCisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJ1cmw6ICIgKyBzZWFyY2hSZXN1
bHRzW2ldLnVybCArICIsIG1hdGNoZXNDb3VudDogIiArIHNlYXJjaFJlc3VsdHNbaV0ubWF0Y2hl
c0NvdW50KTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Cit9CisKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IGUxZWVlNzM2NDdiYmYyZmM4YjI2Nzg5MDQ0MTUyYmFiMWQ3NWZh
NGYuLmEzZGY1NzE5YTg2NjAwZTYzOWJhMzNjNjI0ODY1MGY3MDQxNDE0YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC04NTMsNiArODUzLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0
bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKIAogICAgIGluc3BlY3Rvci9D
b25zb2xlTWVzc2FnZS5jcHAKKyAgICBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcAog
ICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCiAgICAgaW5zcGVjdG9yL0lkZW50
aWZpZXJzRmFjdG9yeS5jcHAKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZmU2ZWE0MTM0MWVkMzcwODU0NjQ4YzVhMjY0NzBhZDNmN2JlYzg5OC4uNWIyNWUw
Yzk3OGMxNmEzNDgyNTBmNjgwOTc1NDg5ZjdhZTFkNTc0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMzIEBACisyMDExLTA5LTI3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlZmFjdG9yIHNlYXJjaGluZyBpbiBpbnNwZWN0
b3IsIGFkZCB0ZXN0ICgrZml4KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY4OTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1y
ZXNvdXJjZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3Bl
Y3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZVNlYXJjaFJlZ2V4U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWFyY2hV
dGlsczo6Y3JlYXRlU2VhcmNoUmVnZXgpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlYXJj
aFV0aWxzOjpjb3VudFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hlcyk6CisgICAgICAgICogaW5zcGVj
dG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRTZWFyY2hVdGlsczo6Q29udGVudFNlYXJjaFV0aWxzKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc1RleHRDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VD
b250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRDb250ZW50Rm9yQ2FjaGVkUmVzb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JTZWFyY2hSZXN1bHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzZWFyY2hJblJlc291cmNlcyk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanM6CisgICAgICAgICgpOgorCiAy
MDExLTA5LTI3ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQWRkIGEgbWVjaGFuaXNtIHRvIHRlc3QgZm9yIHRoZSBjb21wb3NpdGluZyB0cmVlIG11dGF0
ZWQgZHVyaW5nIHBhaW50aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA3NDM2
ZWNmMDRkNmIwODQyZTViMmM3MmRjZTJkMjhkNGJmYTIzYTIzLi44MzkyOWMzMTkyM2ViNjk1NmIw
OWY1ZWU4ODVjOTU4N2Q0ZmY4NzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTE5NzUsNiArMTk3NSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
aWN1L3VuaWNvZGUvdXZlcnNpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdl
LmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBiZWU5
OGMzMzIwZTgyMzUwOTI3ODM2ZmNhYTE3YTRjOTcyNzhkODUyLi4wNDIwNGVhNmFiYzZkNDZiM2Yw
ZDUxMjY3Y2RkZDY5YTAxYWE1NzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNjYwLDYgKzI2NjAs
OCBAQAogICAgICAgICAgICAgJ2ljdS91bmljb2RlL3V2ZXJzaW9uLmgnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9D
b25zb2xlTWVzc2FnZS5oJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0
aWxzLmNwcCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDc5YWU0MDMw
NDQwYjBlMzEwODVjZDBhMzc1NTA4OGRmZTkwYWY0MjkuLjcxYjg5ZTk0Y2M5MDZhM2JiNjZhOWJj
MjI2YmM1MWUwOWUzZmY5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04MTIsNiArODEyLDcgQEAgU09V
UkNFUyArPSBcCiAgICAgaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBcCiAgICAg
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBcCiAgICAgaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmNwcCBcCisgICAgaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5j
cHAgXAogICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwIFwKICAgICBpbnNwZWN0
b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmNwcCBcCkBAIC0xODA0LDYgKzE4MDUsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL3RyYWNr
L1dlYlZUVFRva2VuLmggXAogICAgIGh0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmggXAogICAg
IGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oIFwKKyAgICBpbnNwZWN0b3IvQ29udGVudFNlYXJj
aFV0aWxzLmggXAogICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuaCBcCiAgICAgaW5z
cGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5oIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IGExMWI0N2U3NjgzMzc1ZDE3N2U2MmEyOWRiYTBiOGIwYTI3Y2ZkZTguLjVhOWRkYWZlNWI4
NDg3MTA1MWMwOGY5NjY1YWUwOTRlZWM3MDBiODggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02ODY3OCw2ICs2ODY3OCwxNCBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcQ29u
dGVudFNlYXJjaFV0aWxzLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXENvbnRlbnRTZWFyY2hVdGlscy5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRE9NTm9k
ZUhpZ2hsaWdodGVyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDg2ZWZjZjZiOGIxZGNi
YjYxZjliZDc5MTJkMTE0MzkyYzAyZWUzYy4uMzA1YjA0ODIwNGE2MzI0MGM4NGVlYmM4YTJkYmI4
ODUwZjRhOWYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTUwNCw2ICsxNTA0LDggQEAKIAkJNTkwNUFEQzAxMzAyRjNDRTAw
RjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU5MDVBREJFMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2Vy
LmggKi87IH07CiAJCTU5MEUxQjQ5MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkwRTFC
NDgxMUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTkwRTFCNEIxMUU0RUY3MDAwNjlG
Nzg0IC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTBFMUI0QTExRTRFRjcwMDA2OUY3ODQg
LyogSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCAqLzsgfTsKKwkJNTkxMDJGQkIx
NDMyN0QzQjAwM0M5RDA0IC8qIENvbnRlbnRTZWFyY2hVdGlscy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTEwMkZCOTE0MzI3RDNCMDAzQzlEMDQg
LyogQ29udGVudFNlYXJjaFV0aWxzLmNwcCAqLzsgfTsKKwkJNTkxMDJGQkMxNDMyN0QzQjAwM0M5
RDA0IC8qIENvbnRlbnRTZWFyY2hVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTkxMDJGQkExNDMyN0QzQjAwM0M5RDA0IC8qIENvbnRlbnRTZWFy
Y2hVdGlscy5oICovOyB9OwogCQk1OTEzQTI0MTEzRDQ5RUJBMDBGNUIwNUMgLyogSWRlbnRpZmll
cnNGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU5MTNBMjNGMTNENDlFQkEwMEY1QjA1QyAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuY3BwICov
OyB9OwogCQk1OTEzQTI0MjEzRDQ5RUJBMDBGNUIwNUMgLyogSWRlbnRpZmllcnNGYWN0b3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTEzQTI0MDEz
RDQ5RUJBMDBGNUIwNUMgLyogSWRlbnRpZmllcnNGYWN0b3J5LmggKi87IH07CiAJCTU5MzA5QTEx
MTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkzMDlBMTAxMUY0QUU1
ODAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgKi87IH07CkBAIC04
MTczLDYgKzgxNzUsOCBAQAogCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZp
ZXdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUcmVlVmlld2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAv
KiBEZXZpY2VPcmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
ZXZpY2VPcmllbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTBFMUI0
QTExRTRFRjcwMDA2OUY3ODQgLyogSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGV2aWNlT3JpZW50YXRpb25F
dmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5MTAyRkI5MTQz
MjdEM0IwMDNDOUQwNCAvKiBDb250ZW50U2VhcmNoVXRpbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudFNlYXJjaFV0aWxzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTkxMDJGQkExNDMyN0QzQjAwM0M5RDA0IC8qIENvbnRlbnRTZWFy
Y2hVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50U2VhcmNo
VXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkxM0EyM0YxM0Q0OUVCQTAw
RjVCMDVDIC8qIElkZW50aWZpZXJzRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJZGVudGlmaWVyc0ZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1OTEzQTI0MDEzRDQ5RUJBMDBGNUIwNUMgLyogSWRlbnRpZmllcnNGYWN0b3J5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkZW50aWZpZXJzRmFjdG9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTMwOUExMDExRjRBRTU4MDAyNTA2MDMg
LyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHA7IHBhdGggPSBt
b2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMzYyMiw2ICsxMzYyNiw4IEBACiAJCQkJMUM4MUI5NTkwRTk3MzMwODAwMjY2
RTA3IC8qIGZyb250LWVuZCAqLywKIAkJCQk0MUYwNjE4RDBGNUYwNjk4MDBBMDdFQUMgLyogQ29u
c29sZU1lc3NhZ2UuY3BwICovLAogCQkJCTQxRjA2MThDMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25z
b2xlTWVzc2FnZS5oICovLAorCQkJCTU5MTAyRkI5MTQzMjdEM0IwMDNDOUQwNCAvKiBDb250ZW50
U2VhcmNoVXRpbHMuY3BwICovLAorCQkJCTU5MTAyRkJBMTQzMjdEM0IwMDNDOUQwNCAvKiBDb250
ZW50U2VhcmNoVXRpbHMuaCAqLywKIAkJCQk0RjE0NDIyNjEzMzlGRDYyMDBFMEQ2RjggLyogRE9N
Tm9kZUhpZ2hsaWdodGVyLmNwcCAqLywKIAkJCQk0RjE0NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyog
RE9NTm9kZUhpZ2hsaWdodGVyLmggKi8sCiAJCQkJNTkxM0EyM0YxM0Q0OUVCQTAwRjVCMDVDIC8q
IElkZW50aWZpZXJzRmFjdG9yeS5jcHAgKi8sCkBAIC0yMzU0MSw2ICsyMzU0Nyw3IEBACiAJCQkJ
MUE5MjdGRDQxNDE2QTE1QjAwM0E4M0M4IC8qIG5wdHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNFQ0NGQzNCMTQxOTczRDUwMDJBMEFDMSAvKiBEZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRTcxNDA2MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVt
ZU1vY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTU5MTAyRkJDMTQzMjdEM0IwMDNDOUQwNCAvKiBD
b250ZW50U2VhcmNoVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjYzODAsNiArMjYzODcsNyBA
QAogCQkJCUE4NUYyMjA5MTQzMDM3N0QwMDdDQzg4NCAvKiBKU1BvcFN0YXRlRXZlbnRDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE5QUUwNjMxNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxl
RmlsdGVyRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTlBRTA2OTE0MkQ3OEREMDA2NTYz
QTEgLyogRmlsdGVyT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1OTEwMkZCQjE0
MzI3RDNCMDAzQzlEMDQgLyogQ29udGVudFNlYXJjaFV0aWxzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNTdkYjZjM2EzMGI5Nzg2ZTZlYTYzZDk2NDhkY2Y3YmMyZWNkOTc2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5j
cHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ29udGVudFNlYXJjaFV0aWxzLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQorCisjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCituYW1lc3BhY2UgeworLy8gVGhpcyBzaG91bGQgYmUga2VwdCB0aGUgc2FtZSBhcyB0aGUg
b25lIGluIGZyb250LWVuZC91dGlsaXRpZXMuanMKK3N0YXRpYyBjb25zdCBjaGFyIHJlZ2V4U3Bl
Y2lhbENoYXJhY3RlcnNbXSA9ICJbXSgpe30rLSouLD9cXF4kfCI7Cit9CisKK3N0YXRpYyBTdHJp
bmcgY3JlYXRlU2VhcmNoUmVnZXhTb3VyY2UoY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIFN0
cmluZyByZXN1bHQ7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB0ZXh0LmNoYXJhY3Rl
cnMoKTsKKyAgICBTdHJpbmcgc3BlY2lhbHMocmVnZXhTcGVjaWFsQ2hhcmFjdGVycyk7CisKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAg
IGlmIChzcGVjaWFscy5maW5kKGNoYXJhY3RlcnNbaV0pICE9IG5vdEZvdW5kKQorICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiXFwiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXJz
W2ldKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBzdGF0aWMKK1JlZ3Vs
YXJFeHByZXNzaW9uIENvbnRlbnRTZWFyY2hVdGlsczo6Y3JlYXRlU2VhcmNoUmVnZXgoY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgaXNSZWdleCkKK3sKKyAgICBT
dHJpbmcgcmVnZXhTb3VyY2UgPSBpc1JlZ2V4ID8gdGV4dCA6IGNyZWF0ZVNlYXJjaFJlZ2V4U291
cmNlKHRleHQpOworICAgIHJldHVybiBSZWd1bGFyRXhwcmVzc2lvbihyZWdleFNvdXJjZSwgY2Fz
ZVNlbnNpdGl2ZSA/IFRleHRDYXNlU2Vuc2l0aXZlIDogVGV4dENhc2VJbnNlbnNpdGl2ZSk7Cit9
CisKKy8vIHN0YXRpYworaW50IENvbnRlbnRTZWFyY2hVdGlsczo6Y291bnRSZWd1bGFyRXhwcmVz
c2lvbk1hdGNoZXMoY29uc3QgUmVndWxhckV4cHJlc3Npb24mIHJlZ2V4LCBjb25zdCBTdHJpbmcm
IGNvbnRlbnQpCit7CisgICAgaW50IHJlc3VsdCA9IDA7CisgICAgaW50IHBvc2l0aW9uOworICAg
IHVuc2lnbmVkIHN0YXJ0ID0gMDsKKyAgICBpbnQgbWF0Y2hMZW5ndGg7CisgICAgd2hpbGUgKChw
b3NpdGlvbiA9IHJlZ2V4Lm1hdGNoKGNvbnRlbnQsIHN0YXJ0LCAmbWF0Y2hMZW5ndGgpKSAhPSAt
MSkgeworICAgICAgICBpZiAoc3RhcnQgPj0gY29udGVudC5sZW5ndGgoKSkKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBpZiAobWF0Y2hMZW5ndGggPiAwKQorICAgICAgICAgICAgKytyZXN1
bHQ7CisgICAgICAgIHN0YXJ0ID0gcG9zaXRpb24gKyAxOworICAgIH0KKyAgICByZXR1cm4gcmVz
dWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5T
UEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFy
Y2hVdGlscy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVjNTJlMDQ4ZjA0YzVlZmVhZGM4NTZlZmNlYWRkYzRiY2RiMWQ3NTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0
aWxzLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRlbnRT
ZWFyY2hVdGlsc19oCisjZGVmaW5lIENvbnRlbnRTZWFyY2hVdGlsc19oCisKKyNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlZ3VsYXJF
eHByZXNzaW9uOworCitjbGFzcyBDb250ZW50U2VhcmNoVXRpbHMgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWd1bGFyRXhwcmVzc2lvbiBjcmVhdGVTZWFyY2hSZWdleChjb25zdCBTdHJpbmcmIHRl
eHQsIGJvb2wgY2FzZVNlbnNpdGl2ZSwgYm9vbCBpc1JlZ2V4KTsKKyAgICBzdGF0aWMgaW50IGNv
dW50UmVndWxhckV4cHJlc3Npb25NYXRjaGVzKGNvbnN0IFJlZ3VsYXJFeHByZXNzaW9uJiwgY29u
c3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAgQ29udGVudFNlYXJjaFV0aWxzKCkgeyB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChDb250ZW50
U2VhcmNoVXRpbHNfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAKaW5kZXggOTc5MmQwY2FkYTk2ODZkMmY2NzlhYWUwMWU5NjMzMDFhOGQwOGRj
Yy4uOWU5YWVkNjc0MDdhOWIzNzhiOGNiMDdmMGJhMWMwZjY2NDJmOWM2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTM5LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiQ29udGVu
dFNlYXJjaFV0aWxzLmgiCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiQ29va2llSmFy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTY4LDExICs2OSw2IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotbmFtZXNwYWNlIHsKLS8vIFRoaXMgc2hvdWxkIGJlIGtlcHQgdGhlIHNh
bWUgYXMgdGhlIG9uZSBpbiBmcm9udC1lbmQvdXRpbGl0aWVzLmpzCi1zdGF0aWMgY29uc3QgY2hh
ciByZWdleFNwZWNpYWxDaGFyYWN0ZXJzW10gPSAiW10oKXt9Ky0qLiw/XFxeJHwiOwotfQotCiBu
YW1lc3BhY2UgUGFnZUFnZW50U3RhdGUgewogc3RhdGljIGNvbnN0IGNoYXIgcGFnZUFnZW50RW5h
YmxlZFtdID0gInJlc291cmNlQWdlbnRFbmFibGVkIjsKIH0KQEAgLTExNSw2ICsxMTEsMTIgQEAg
c3RhdGljIGJvb2wgcHJlcGFyZUNhY2hlZFJlc291cmNlQnVmZmVyKENhY2hlZFJlc291cmNlKiBj
YWNoZWRSZXNvdXJjZSwgYm9vbCogaGEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJv
b2wgaGFzVGV4dENvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQoreworICAg
IEluc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3VyY2VUeXBlIHR5cGUgPSBJbnNwZWN0b3JQYWdlQWdl
bnQ6OmNhY2hlZFJlc291cmNlVHlwZSgqY2FjaGVkUmVzb3VyY2UpOworICAgIHJldHVybiB0eXBl
ID09IEluc3BlY3RvclBhZ2VBZ2VudDo6U3R5bGVzaGVldFJlc291cmNlIHx8IHR5cGUgPT0gSW5z
cGVjdG9yUGFnZUFnZW50OjpTY3JpcHRSZXNvdXJjZTsKK30KKwogYm9vbCBJbnNwZWN0b3JQYWdl
QWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3Vy
Y2UsIFN0cmluZyogcmVzdWx0LCBib29sKiBiYXNlNjRFbmNvZGVkKQogewogICAgIGJvb2wgaGFz
WmVyb1NpemU7CkBAIC0xMjIsOSArMTI0LDcgQEAgYm9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNh
Y2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFMKICAg
ICBpZiAoIXByZXBhcmVkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZXNvdXJjZVR5
cGUgdHlwZSA9IGNhY2hlZFJlc291cmNlVHlwZSgqY2FjaGVkUmVzb3VyY2UpOwotICAgICpiYXNl
NjRFbmNvZGVkID0gdHlwZSAhPSBTdHlsZXNoZWV0UmVzb3VyY2UgJiYgdHlwZSAhPSBTY3JpcHRS
ZXNvdXJjZTsKLQorICAgICpiYXNlNjRFbmNvZGVkID0gIWhhc1RleHRDb250ZW50KGNhY2hlZFJl
c291cmNlKTsKICAgICBpZiAoKmJhc2U2NEVuY29kZWQpIHsKICAgICAgICAgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gYnVmZmVyID0gaGFzWmVyb1NpemUgPyBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpIDog
Y2FjaGVkUmVzb3VyY2UtPmRhdGEoKTsKIApAQCAtNDY5LDM4ICs0NjksMjAgQEAgdm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OmdldFJlc291cmNlQ29udGVudChFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmkKICAgICByZXNvdXJjZUNvbnRlbnQoZXJyb3JTdHJpbmcsIGZyYW1lLCBL
VVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgY29udGVudCwgYmFzZTY0RW5jb2RlZCk7CiB9CiAK
LXN0YXRpYyBTdHJpbmcgY3JlYXRlU2VhcmNoUmVnZXhTb3VyY2UoY29uc3QgU3RyaW5nJiB0ZXh0
KQotewotICAgIFN0cmluZyByZXN1bHQ7Ci0gICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB0
ZXh0LmNoYXJhY3RlcnMoKTsKLSAgICBTdHJpbmcgc3BlY2lhbHMocmVnZXhTcGVjaWFsQ2hhcmFj
dGVycyk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGgoKTsgaSsr
KSB7Ci0gICAgICAgIGlmIChzcGVjaWFscy5maW5kKGNoYXJhY3RlcnNbaV0pKQotICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiXFwiKTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXJz
W2ldKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgaW50IGNvdW50
UmVndWxhckV4cHJlc3Npb25NYXRjaGVzKGNvbnN0IFJlZ3VsYXJFeHByZXNzaW9uJiByZWdleCwg
Y29uc3QgU3RyaW5nJiBjb250ZW50KQorc3RhdGljIGJvb2wgdGV4dENvbnRlbnRGb3JDYWNoZWRS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFN0cmluZyogcmVzdWx0KQog
ewotICAgIGludCByZXN1bHQgPSAwOwotICAgIGludCBwb3NpdGlvbjsKLSAgICB1bnNpZ25lZCBz
dGFydCA9IDA7Ci0gICAgaW50IG1hdGNoTGVuZ3RoOwotICAgIHdoaWxlICgocG9zaXRpb24gPSBy
ZWdleC5tYXRjaChjb250ZW50LCBzdGFydCwgJm1hdGNoTGVuZ3RoKSkgIT0gLTEpIHsKLSAgICAg
ICAgaWYgKHN0YXJ0ID49IGNvbnRlbnQubGVuZ3RoKCkpCi0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgaWYgKG1hdGNoTGVuZ3RoID4gMCkKLSAgICAgICAgICAgICsrcmVzdWx0OwotICAgICAg
ICBzdGFydCA9IHBvc2l0aW9uICsgMTsKKyAgICBpZiAoaGFzVGV4dENvbnRlbnQoY2FjaGVkUmVz
b3VyY2UpKSB7CisgICAgICAgIFN0cmluZyBjb250ZW50OworICAgICAgICBib29sIGJhc2U2NEVu
Y29kZWQ7CisgICAgICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29u
dGVudChjYWNoZWRSZXNvdXJjZSwgcmVzdWx0LCAmYmFzZTY0RW5jb2RlZCkpIHsKKyAgICAgICAg
ICAgIEFTU0VSVCghYmFzZTY0RW5jb2RlZCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBmYWxzZTsKIH0K
IAotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclNlYXJj
aE1hdGNoKGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBtYXRj
aGVzQ291bnQpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0
Rm9yU2VhcmNoUmVzdWx0KGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmws
IGludCBtYXRjaGVzQ291bnQpCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzdWx0
ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXN1bHQtPnNldFN0cmluZygiZnJh
bWVJZCIsIGZyYW1lSWQpOwpAQCAtNTE1LDM1ICs0OTcsMjQgQEAgdm9pZCBJbnNwZWN0b3JQYWdl
QWdlbnQ6OnNlYXJjaEluUmVzb3VyY2VzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb24KICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHJlc3VsdCA9IEluc3BlY3RvckFycmF5
OjpjcmVhdGUoKTsKIAogICAgIGJvb2wgaXNSZWdleCA9IG9wdGlvbmFsSXNSZWdleCA/ICpvcHRp
b25hbElzUmVnZXggOiBmYWxzZTsKLSAgICBTdHJpbmcgcmVnZXhTb3VyY2UgPSBpc1JlZ2V4ID8g
dGV4dCA6IGNyZWF0ZVNlYXJjaFJlZ2V4U291cmNlKHRleHQpOwotCiAgICAgYm9vbCBjYXNlU2Vu
c2l0aXZlID0gb3B0aW9uYWxDYXNlU2Vuc2l0aXZlID8gKm9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSA6
IGZhbHNlOwotICAgIFJlZ3VsYXJFeHByZXNzaW9uIHJlZ2V4KHJlZ2V4U291cmNlLCBjYXNlU2Vu
c2l0aXZlID8gVGV4dENhc2VTZW5zaXRpdmUgOiBUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBS
ZWd1bGFyRXhwcmVzc2lvbiByZWdleCA9IENvbnRlbnRTZWFyY2hVdGlsczo6Y3JlYXRlU2VhcmNo
UmVnZXgodGV4dCwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCk7CiAKICAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkt
PnRyYXZlcnNlTmV4dChtX3BhZ2UtPm1haW5GcmFtZSgpKSkgewogICAgICAgICBTdHJpbmcgY29u
dGVudDsKLSAgICAgICAgYm9vbCBiYXNlNjRFbmNvZGVkOwogICAgICAgICBWZWN0b3I8Q2FjaGVk
UmVzb3VyY2UqPiBhbGxSZXNvdXJjZXMgPSBjYWNoZWRSZXNvdXJjZXNGb3JGcmFtZShmcmFtZSk7
CiAgICAgICAgIGZvciAoVmVjdG9yPENhY2hlZFJlc291cmNlKj46OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gYWxsUmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGFsbFJlc291cmNlcy5lbmQoKTsgKytpdCkg
ewogICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gKml0OwotICAg
ICAgICAgICAgc3dpdGNoIChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlVHlwZSgq
Y2FjaGVkUmVzb3VyY2UpKSB7Ci0gICAgICAgICAgICBjYXNlIEluc3BlY3RvclBhZ2VBZ2VudDo6
U3R5bGVzaGVldFJlc291cmNlOgotICAgICAgICAgICAgY2FzZSBJbnNwZWN0b3JQYWdlQWdlbnQ6
OlNjcmlwdFJlc291cmNlOgotICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZUNvbnRl
bnQoY2FjaGVkUmVzb3VyY2UsICZjb250ZW50LCAmYmFzZTY0RW5jb2RlZCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKCFiYXNlNjRFbmNvZGVkKTsKLSAgICAgICAgICAgICAgICAgICAg
aW50IG1hdGNoZXNDb3VudCA9IGNvdW50UmVndWxhckV4cHJlc3Npb25NYXRjaGVzKHJlZ2V4LCBj
b250ZW50KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoZXNDb3VudCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdC0+cHVzaFZhbHVlKGJ1aWxkT2JqZWN0Rm9yU2VhcmNoTWF0
Y2goZnJhbWVJZChmcmFtZSksIGNhY2hlZFJlc291cmNlLT51cmwoKSwgbWF0Y2hlc0NvdW50KSk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmICh0ZXh0Q29u
dGVudEZvckNhY2hlZFJlc291cmNlKGNhY2hlZFJlc291cmNlLCAmY29udGVudCkpIHsKKyAgICAg
ICAgICAgICAgICBpbnQgbWF0Y2hlc0NvdW50ID0gQ29udGVudFNlYXJjaFV0aWxzOjpjb3VudFJl
Z3VsYXJFeHByZXNzaW9uTWF0Y2hlcyhyZWdleCwgY29udGVudCk7CisgICAgICAgICAgICAgICAg
aWYgKG1hdGNoZXNDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LT5wdXNoVmFsdWUo
YnVpbGRPYmplY3RGb3JTZWFyY2hSZXN1bHQoZnJhbWVJZChmcmFtZSksIGNhY2hlZFJlc291cmNl
LT51cmwoKSwgbWF0Y2hlc0NvdW50KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKG1haW5SZXNvdXJjZUNvbnRlbnQoZnJhbWUsIGZhbHNlLCAmY29udGVudCkpIHsKLSAg
ICAgICAgICAgIGludCBtYXRjaGVzQ291bnQgPSBjb3VudFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hl
cyhyZWdleCwgY29udGVudCk7CisgICAgICAgICAgICBpbnQgbWF0Y2hlc0NvdW50ID0gQ29udGVu
dFNlYXJjaFV0aWxzOjpjb3VudFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hlcyhyZWdleCwgY29udGVu
dCk7CiAgICAgICAgICAgICBpZiAobWF0Y2hlc0NvdW50KQotICAgICAgICAgICAgICAgIHJlc3Vs
dC0+cHVzaFZhbHVlKGJ1aWxkT2JqZWN0Rm9yU2VhcmNoTWF0Y2goZnJhbWVJZChmcmFtZSksIGZy
YW1lLT5kb2N1bWVudCgpLT51cmwoKSwgbWF0Y2hlc0NvdW50KSk7CisgICAgICAgICAgICAgICAg
cmVzdWx0LT5wdXNoVmFsdWUoYnVpbGRPYmplY3RGb3JTZWFyY2hSZXN1bHQoZnJhbWVJZChmcmFt
ZSksIGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgbWF0Y2hlc0NvdW50KSk7CiAgICAgICAgIH0K
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
dXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRp
ZXMuanMKaW5kZXggOTY3OTA2N2U2ZGM3NTA1YjBmOTA0MDE2MDc5NjdlYWEzMjc2ZGNmYS4uYzE0
ZjQzOGNhZDhlM2NkNzU4MDg4M2I5ZDcyNDc4ZjQxOTRlYmRhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTk2MSw3ICs5NjEsNyBA
QCBmdW5jdGlvbiByZXZlcnREb21DaGFuZ2VzKGRvbUNoYW5nZXMpCiAKIGZ1bmN0aW9uIGNyZWF0
ZVNlYXJjaFJlZ2V4KHF1ZXJ5LCBleHRyYUZsYWdzKQogewotICAgIC8vIFRoaXMgc2hvdWxkIGJl
IGtlcHQgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwLgorICAg
IC8vIFRoaXMgc2hvdWxkIGJlIGtlcHQgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbiBDb250ZW50U2Vh
cmNoVXRpbHMuY3BwLgogICAgIHZhciByZWdleFNwZWNpYWxDaGFyYWN0ZXJzID0gIltdKCl7fSst
Ki4sP1xcXiR8IjsKICAgICB2YXIgcmVnZXggPSAiIjsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHF1ZXJ5Lmxlbmd0aDsgKytpKSB7Cg==
</data>
<flag name="review"
          id="105986"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>