<?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>58786</bug_id>
          
          <creation_ts>2011-04-18 07:44:37 -0700</creation_ts>
          <short_desc>Web Inspector: add test for CSS-resource binding.</short_desc>
          <delta_ts>2011-04-18 09:00: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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</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>387709</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-18 07:44:37 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387715</commentid>
    <comment_count>1</comment_count>
      <attachid>90034</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-18 07:47:40 -0700</bug_when>
    <thetext>Created attachment 90034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387744</commentid>
    <comment_count>2</comment_count>
      <attachid>90034</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-18 08:39:14 -0700</bug_when>
    <thetext>Comment on attachment 90034
Patch

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

&gt; LayoutTests/inspector/styles/styles-history-expecte.txt:1
&gt; +Tests resources panel history.

expecte.txt ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387745</commentid>
    <comment_count>3</comment_count>
      <attachid>90042</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-18 08:39:57 -0700</bug_when>
    <thetext>Created attachment 90042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387746</commentid>
    <comment_count>4</comment_count>
      <attachid>90034</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-18 08:41:33 -0700</bug_when>
    <thetext>Comment on attachment 90034
Patch

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

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:207
&gt; +            *errorString = &quot;Invalid property value.&quot;;

Please remove trailing commas from the error messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387752</commentid>
    <comment_count>5</comment_count>
      <attachid>90042</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-04-18 08:52:05 -0700</bug_when>
    <thetext>Comment on attachment 90042
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387756</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-18 09:00:02 -0700</bug_when>
    <thetext>Committed r84148: &lt;http://trac.webkit.org/changeset/84148&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90034</attachid>
            <date>2011-04-18 07:47:40 -0700</date>
            <delta_ts>2011-04-18 08:41:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58786-20110418184734.patch</filename>
            <type>text/plain</type>
            <size>22422</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQxMjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MTc5ZTRlZDk5ZjY1ZDMwZDJmMDYz
NGJiYWZiOTFiMDgyMTQ3N2U3Li5jZjhhNmM0ZGJmMWVmYmQ1NjFiNGNmOGVhZjEyNTM5ZWZkYWZi
YzlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQtMTggIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCB0ZXN0IGZvciBDU1MtcmVzb3VyY2UgYmlu
ZGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4
Nzg2CisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtaGlzdG9y
eS5jc3M6IEFkZGVkLgorICAgICAgICAoYm9keSk6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtaGlzdG9yeS1leHBlY3RlLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgorCiAyMDExLTA0LTE4ICBKb2huIEtu
b3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHls
ZXMtaGlzdG9yeS5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9z
dHlsZXMtaGlzdG9yeS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZlYTZmNzk3NmI4N2FiOGU2ZmEwY2Q3ZTJi
NzhlZmI1YzgwZjU4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1oaXN0b3J5LmNzcwpAQCAtMCwwICsxLDQgQEAKK2JvZHkg
eworICBtYXJnaW46IDEwcHg7CisgIHBhZGRpbmc6IDEwcHg7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5LWV4cGVjdGUudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS1leHBlY3RlLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kYjkxYjFhZTc4NmMwZTY0MWJhMmVhYTEzMGJlZjVkNmM0ODlmMGI4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS1l
eHBlY3RlLnR4dApAQCAtMCwwICsxLDYyIEBACitUZXN0cyByZXNvdXJjZXMgcGFuZWwgaGlzdG9y
eS4KKworCitSdW5uaW5nOiB0ZXN0U2V0VXAKKworUnVubmluZzogdGVzdFNldFJlc291cmNlQ29u
dGVudE1pbm9yCitIaXN0b3J5IGxlbmd0aDogMAorCitSdW5uaW5nOiB0ZXN0U2V0UmVzb3VyY2VD
b250ZW50TWFqb3IKK0l0ZW0gPHRpcD46Citib2R5IHsKKyAgbWFyZ2luOiAxMHB4OworICBwYWRk
aW5nOiAxMHB4OworfQorCitIaXN0b3J5IGxlbmd0aDogMQorSXRlbSAwOgorYm9keSB7CisgIG1h
cmdpbjogMTBweDsKKyAgcGFkZGluZzogMTBweDsKK30KKworSXRlbSA8dGlwPjoKK2JvZHkgewor
ICBtYXJnaW46IDIwcHg7CisgIHBhZGRpbmc6IDEwcHg7Cit9CisKK1J1bm5pbmc6IHRlc3RTZXRD
b250ZW50VmlhTW9kZWxNaW5vcgorSGlzdG9yeSBsZW5ndGg6IDEKK0l0ZW0gMDoKK2JvZHkgewor
ICBtYXJnaW46IDEwcHg7CisgIHBhZGRpbmc6IDEwcHg7Cit9CisKK0l0ZW0gPHRpcD46Citib2R5
IHsKKyAgbWFyZ2luOiAyMHB4OworICBwYWRkaW5nOiAxMHB4OworfQorCitSdW5uaW5nOiB0ZXN0
U2V0Q29udGVudFZpYU1vZGVsTWFqb3IKK0hpc3RvcnkgbGVuZ3RoOiAyCitJdGVtIDA6Citib2R5
IHsKKyAgbWFyZ2luOiAxMHB4OworICBwYWRkaW5nOiAxMHB4OworfQorCitJdGVtIDE6Citib2R5
IHsKKyAgbWFyZ2luOiAyMHB4OworICBwYWRkaW5nOiAxMHB4OworfQorSXRlbSA8dGlwPjoKK2Jv
ZHkgeworICBtYXJnaW46MzBweDsKKyAgcGFkZGluZzogMTBweDsKK30KKworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWNiMTFlZDU3YTJlMjNhYjA1ZTJlYTU1OWVjNGEwYzMzZGJjZjYzNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3RvcnkuaHRtbApAQCAt
MCwwICsxLDEzOCBAQAorPGh0bWw+Cis8aGVhZD4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJyZXNvdXJjZXMvc3R5bGVzLWhpc3RvcnkuY3NzIj4KKworPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICghV2ViSW5zcGVj
dG9yLm1haW5SZXNvdXJjZSkKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVs
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlw
ZXMuQ2FjaGVkUmVzb3VyY2VzTG9hZGVkLCBydW5UZXN0U3VpdGUpOworICAgIGVsc2UKKyAgICAg
ICAgcnVuVGVzdFN1aXRlKCk7CisKKyAgICB2YXIgc3R5bGVSZXNvdXJjZTsKKyAgICB2YXIgc3R5
bGVTaGVldElkOworCisgICAgZnVuY3Rpb24gcnVuVGVzdFN1aXRlKCkKKyAgICB7CisgICAgICAg
IEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RT
ZXRVcChuZXh0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHZpc2l0
UmVzb3VyY2UocmVzb3VyY2UpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICBpZiAocmVzb3VyY2UudXJsLmluZGV4T2YoInN0eWxlcy1oaXN0b3J5LmNzcyIpID09PSAtMSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgc3R5
bGVSZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVN
b2RlbC5mb3JBbGxSZXNvdXJjZXModmlzaXRSZXNvdXJjZSk7CisgICAgICAgICAgICB9LAorCisg
ICAgICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0UmVzb3VyY2VDb250ZW50TWlub3IobmV4dCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCisgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBkdW1wSGlzdG9yeSgpOworICAgICAgICAg
ICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0
eWxlUmVzb3VyY2Uuc2V0Q29udGVudCgiYm9keSB7XG4gIG1hcmdpbjogMTVweDtcbiAgcGFkZGlu
ZzogMTBweDtcbn0iLCBmYWxzZSwgY2FsbGJhY2spOworICAgICAgICAgICAgfSwKKworICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdFNldFJlc291cmNlQ29udGVudE1ham9yKG5leHQpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZHVtcEhpc3RvcnkoKTsKKyAgICAgICAgICAgICAg
ICAgICAgbmV4dCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdHlsZVJl
c291cmNlLnNldENvbnRlbnQoImJvZHkge1xuICBtYXJnaW46IDIwcHg7XG4gIHBhZGRpbmc6IDEw
cHg7XG59IiwgdHJ1ZSwgY2FsbGJhY2spOworICAgICAgICAgICAgfSwKKworICAgICAgICAgICAg
ZnVuY3Rpb24gdGVzdFNldENvbnRlbnRWaWFNb2RlbE1pbm9yKG5leHQpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgc3R5bGVTaGVldEZvclJlc291cmNlKHN0ZXAxKTsKKworICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKHN0eWxlU2hlZXQpCisgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBzdHlsZVNoZWV0LnJ1bGVzWzBdLnN0eWxl
OworICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBzdHlsZS5nZXRMaXZlUHJvcGVy
dHkoIm1hcmdpbiIpOworICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5zZXRUZXh0KCJtYXJn
aW46MjVweDsiLCBmYWxzZSwgc3RlcDIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAyKGVycm9yKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgZHVtcEhpc3RvcnkoKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCgpOwor
ICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdFNldENvbnRlbnRWaWFNb2RlbE1ham9yKG5leHQpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgc3R5bGVTaGVldEZvclJlc291cmNlKHN0ZXAxKTsKKwor
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKHN0eWxlU2hlZXQpCisgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBzdHlsZVNoZWV0LnJ1bGVzWzBd
LnN0eWxlOworICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBzdHlsZS5nZXRMaXZl
UHJvcGVydHkoIm1hcmdpbiIpOworICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5zZXRUZXh0
KCJtYXJnaW46MzBweDsiLCB0cnVlLCBzdGVwMik7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoZXJyb3IpCisgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICBkdW1wSGlzdG9yeSgpOworICAgICAgICAgICAgICAgICAgICBuZXh0
KCk7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgXSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3R5bGVTaGVldEZvclJlc291cmNlKGNh
bGxiYWNrKQorICAgIHsKKyAgICAgICAgQ1NTQWdlbnQuZ2V0QWxsU3R5bGVTaGVldHMoZGlkR2V0
QWxsU3R5bGVTaGVldHMuYmluZCh0aGlzKSk7CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBk
aWRHZXRBbGxTdHlsZVNoZWV0cyhlcnJvciwgaW5mb3MpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJF
cnJvcjoiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBpbmZvcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHZhciBpbmZv
ID0gaW5mb3NbaV07CisgICAgICAgICAgICAgICAgaWYgKGluZm8uc291cmNlVVJMLmluZGV4T2Yo
InN0eWxlcy1oaXN0b3J5LmNzcyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9y
SWQoaW5mby5zdHlsZVNoZWV0SWQsIGNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGR1bXBIaXN0b3J5KCkKKyAgICB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJIaXN0b3J5IGxlbmd0aDogIiArIHN0eWxlUmVzb3VyY2UuaGlz
dG9yeS5sZW5ndGgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlUmVzb3VyY2Uu
aGlzdG9yeS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHN0eWxlUmVzb3VyY2UuaGlzdG9yeVtp
XS5yZXF1ZXN0Q29udGVudChkdW1wUmV2aXNpb24uYmluZCh0aGlzLCBpKSk7CisgICAgICAgIHN0
eWxlUmVzb3VyY2UucmVxdWVzdENvbnRlbnQoZHVtcFJldmlzaW9uLmJpbmQodGhpcywgIjx0aXA+
IikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGR1bXBSZXZpc2lvbihpbmRleCwgY29udGVudCkK
KyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJJdGVtICIgKyBpbmRleCAr
ICI6Iik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGNvbnRlbnQpOworICAgIH0K
K30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxw
PgorVGVzdHMgcmVzb3VyY2VzIHBhbmVsIGhpc3RvcnkuCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Ut
b2Zmc2V0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNl
LW9mZnNldHMuaHRtbAppbmRleCAzMjdiNjFmNDk2ZDM2YjJhMTBlNzUwODc3OTBlYTdjZGI1YzY2
ZDgxLi5kOGJjOGUwMzVmZTJjYTc2ZjcwOTU0MTIxNjlkYjNmNDExZDdhZTdkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRz
Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8aHRtbD4KIDxoZWFkPgogCi08bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9InJlc291cmNlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzIiAtLT4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0
cy5jc3MiPgogCiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJkZDI1MWRl
Nzc0NjkwNGU1NzdmYWJmOTIyZWZkYmMyNGQ1ZGNhZDMuLmJiMjlmNDQ5NDU5ZTIzNzRjODkyYjY5
YjZjODBlMzQ5MDg0MGNkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wNC0x
OCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIHRlc3Qg
Zm9yIENTUy1yZXNvdXJjZSBiaW5kaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTg3ODYKKworICAgICAgICBUZXN0OiBpbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1oaXN0b3J5Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6c2V0UHJvcGVy
dHlUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50Ojp0b2dnbGVQcm9w
ZXJ0eSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6dG9nZ2xlUHJvcGVydHkpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6c2V0UHJvcGVydHlUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OnRvZ2dsZVByb3BlcnR5KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvQ1NTU3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsLnByb3RvdHlwZS5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkLmlmKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkLm15
Y2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBl
Ll9maXJlU3R5bGVTaGVldENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
TW9kZWwucHJvdG90eXBlLnNldFN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5pbnNlcnRQcm9wZXJ0eUF0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0VGV4dC5jYWxsYmFjayk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldFRleHQpOgor
CiAyMDExLTA0LTE3ICBUaGllcnJ5IFJlZGluZyAgPHRoaWVycnkucmVkaW5nQGF2aW9uaWMtZGVz
aWduLmRlPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCA0ZDI4ODc4ZDZjODI0
ZDA0OThlN2MyZTM0NjhhNzdjNjAyOGJmYWM3Li5kMDZkOWViODBkZjZjYTRjMzRkYWQ3YzMyYzE4
ZjZhYWJkMzYyMzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5jcHAKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50Ojpz
ZXRQcm9wZXJ0eVRleHQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8SQog
ICAgIGlmICghaW5zcGVjdG9yU3R5bGVTaGVldCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9v
bCBzdWNjZXNzID0gaW5zcGVjdG9yU3R5bGVTaGVldC0+c2V0UHJvcGVydHlUZXh0KGNvbXBvdW5k
SWQsIHByb3BlcnR5SW5kZXgsIHRleHQsIG92ZXJ3cml0ZSk7CisgICAgYm9vbCBzdWNjZXNzID0g
aW5zcGVjdG9yU3R5bGVTaGVldC0+c2V0UHJvcGVydHlUZXh0KGVycm9yU3RyaW5nLCBjb21wb3Vu
ZElkLCBwcm9wZXJ0eUluZGV4LCB0ZXh0LCBvdmVyd3JpdGUpOwogICAgIGlmIChzdWNjZXNzKQog
ICAgICAgICAqcmVzdWx0ID0gaW5zcGVjdG9yU3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JTdHls
ZShpbnNwZWN0b3JTdHlsZVNoZWV0LT5zdHlsZUZvcklkKGNvbXBvdW5kSWQpKTsKIH0KQEAgLTMy
OCw3ICszMjgsNyBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50Ojp0b2dnbGVQcm9wZXJ0eShFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFJlZlB0cjxJbgogICAgIGlmICghaW5zcGVjdG9y
U3R5bGVTaGVldCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBzdWNjZXNzID0gaW5zcGVj
dG9yU3R5bGVTaGVldC0+dG9nZ2xlUHJvcGVydHkoY29tcG91bmRJZCwgcHJvcGVydHlJbmRleCwg
ZGlzYWJsZSk7CisgICAgYm9vbCBzdWNjZXNzID0gaW5zcGVjdG9yU3R5bGVTaGVldC0+dG9nZ2xl
UHJvcGVydHkoZXJyb3JTdHJpbmcsIGNvbXBvdW5kSWQsIHByb3BlcnR5SW5kZXgsIGRpc2FibGUp
OwogICAgIGlmIChzdWNjZXNzKQogICAgICAgICAqcmVzdWx0ID0gaW5zcGVjdG9yU3R5bGVTaGVl
dC0+YnVpbGRPYmplY3RGb3JTdHlsZShpbnNwZWN0b3JTdHlsZVNoZWV0LT5zdHlsZUZvcklkKGNv
bXBvdW5kSWQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcAppbmRleCBhM2MxMGE1NDk4YzM2ODViOTg5MjlkZjVlMzRiOTVmYmNkNWFk
NjNmLi4wYzFmNDRhZGVlODE1MzRiNjMzYjZmM2U4YzA1MmU5MmEyYTk4ZWVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0xODAs
MTEgKzE4MCwxMyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yU3R5bGU6
OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoKSBjb25zdAogLy8KIC8vIFRoZSBwcm9wZXJ0eVRleHQgKGlm
IG5vdCBlbXB0eSkgaXMgY2hlY2tlZCB0byBiZSBhIHZhbGlkIHN0eWxlIGRlY2xhcmF0aW9uIChj
b250YWluaW5nIGF0IGxlYXN0IG9uZSBwcm9wZXJ0eSkuIElmIG5vdCwKIC8vIHRoZSBtZXRob2Qg
cmV0dXJucyBmYWxzZSAoZGVub3RpbmcgYW4gZXJyb3IpLgotYm9vbCBJbnNwZWN0b3JTdHlsZTo6
c2V0UHJvcGVydHlUZXh0KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIHByb3BlcnR5VGV4
dCwgYm9vbCBvdmVyd3JpdGUpCitib29sIEluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCB1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eVRleHQsIGJvb2wgb3ZlcndyaXRlKQogewogICAgIEFTU0VSVChtX3BhcmVudFN0eWxl
U2hlZXQpOwotICAgIGlmICghbV9wYXJlbnRTdHlsZVNoZWV0LT5lbnN1cmVQYXJzZWREYXRhUmVh
ZHkoKSkKKyAgICBpZiAoIW1fcGFyZW50U3R5bGVTaGVldC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5
KCkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiBubyBzdHlsZXNo
ZWV0IHBhcnNlZCBkYXRhIGF2YWlsYWJsZS4iOwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQogCiAgICAgVmVjdG9yPEluc3BlY3RvclN0eWxlUHJvcGVydHk+IGFsbFByb3BlcnRpZXM7CiAg
ICAgcG9wdWxhdGVBbGxQcm9wZXJ0aWVzKCZhbGxQcm9wZXJ0aWVzKTsKQEAgLTIwMSwxMiArMjAz
LDE2IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4dCh1bnNpZ25lZCBpbmRl
eCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsCiAgICAgICAgIHVuc2lnbmVkIHByb3BlcnR5
Q291bnQgPSBwcm9wZXJ0eURhdGEuc2l6ZSgpOwogCiAgICAgICAgIC8vIEF0IGxlYXN0IG9uZSBw
cm9wZXJ0eSArIHRoZSBib2d1cyBwcm9wZXJ0eSBhZGRlZCBqdXN0IGFib3ZlIHNob3VsZCBiZSBw
cmVzZW50LgotICAgICAgICBpZiAocHJvcGVydHlDb3VudCA8IDIpCisgICAgICAgIGlmIChwcm9w
ZXJ0eUNvdW50IDwgMikgeworICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gIkludmFsaWQgcHJv
cGVydHkgdmFsdWUuIjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogCiAg
ICAgICAgIC8vIENoZWNrIGZvciBhIHByb3BlciBwcm9wZXJ0eVRleHQgdGVybWluYXRpb24gKHRo
ZSBwYXJzZXIgY291bGQgYXQgbGVhc3QgcmVzdG9yZSB0byB0aGUgUFJPUEVSVFlfTkFNRSBzdGF0
ZSkuCi0gICAgICAgIGlmIChwcm9wZXJ0eURhdGEuYXQocHJvcGVydHlDb3VudCAtIDEpLm5hbWUg
IT0gIi13ZWJraXQtYm9ndXotcHJvcGVydGVlIikKKyAgICAgICAgaWYgKHByb3BlcnR5RGF0YS5h
dChwcm9wZXJ0eUNvdW50IC0gMSkubmFtZSAhPSAiLXdlYmtpdC1ib2d1ei1wcm9wZXJ0ZWUiKSB7
CisgICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW52YWxpZCBwcm9wZXJ0eSB2YWx1ZS4iOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG92
ZXJ3cml0ZSkgewpAQCAtMjIwLDggKzIyNiwxMCBAQCBib29sIEluc3BlY3RvclN0eWxlOjpzZXRQ
cm9wZXJ0eVRleHQodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LAog
CiAgICAgICAgIGlmICghcHJvcGVydHkuZGlzYWJsZWQpIHsKICAgICAgICAgICAgIGJvb2wgc3Vj
Y2VzcyA9IHJlcGxhY2VQcm9wZXJ0eUluU3R5bGVUZXh0KHByb3BlcnR5LCBwcm9wZXJ0eVRleHQp
OwotICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7
CisgICAgICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiBjb3VsZCBu
b3QgcmVwbGFjZSBwcm9wZXJ0eSB2YWx1ZS4iOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHVuc2lnbmVk
IHRleHRMZW5ndGggPSBwcm9wZXJ0eVRleHQubGVuZ3RoKCk7CiAgICAgICAgICAgICB1bnNpZ25l
ZCBkaXNhYmxlZEluZGV4ID0gZGlzYWJsZWRJbmRleEJ5T3JkaW5hbChpbmRleCwgZmFsc2UsIGFs
bFByb3BlcnRpZXMpOwpAQCAtMjM5LDEyICsyNDcsMTYgQEAgYm9vbCBJbnNwZWN0b3JTdHlsZTo6
c2V0UHJvcGVydHlUZXh0KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIHByb3BlcnR5VGV4
dCwKICAgICB9IGVsc2UgewogICAgICAgICAvLyBJbnNlcnQgYXQgaW5kZXguCiAgICAgICAgIFJl
ZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IG1fcGFyZW50U3R5bGVTaGVldC0+
cnVsZVNvdXJjZURhdGFGb3IobV9zdHlsZS5nZXQoKSk7Ci0gICAgICAgIGlmICghc291cmNlRGF0
YSkKKyAgICAgICAgaWYgKCFzb3VyY2VEYXRhKSB7CisgICAgICAgICAgICAqZXJyb3JTdHJpbmcg
PSAiSW50ZXJuYWwgZXJyb3I6IG5vIENTUyBydWxlIHNvdXJjZSBmb3VuZC4iOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0ZXh0OwogICAgICAg
ICBib29sIHN1Y2Nlc3MgPSBzdHlsZVRleHQoJnRleHQpOwotICAgICAgICBpZiAoIXN1Y2Nlc3Mp
CisgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gIklu
dGVybmFsIGVycm9yOiBjb3VsZCBub3QgZmV0Y2ggc3R5bGUgdGV4dC4iOwogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgICAgIHByb3BlcnR5TGVuZ3RoRGVsdGEgPSBw
cm9wZXJ0eVRleHQubGVuZ3RoKCk7CiAKICAgICAgICAgYm9vbCBpbnNlcnRMYXN0ID0gdHJ1ZTsK
QEAgLTI4NywxOSArMjk5LDI1IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4
dCh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgSW5zcGVjdG9yU3R5bGU6OnRvZ2dsZVByb3BlcnR5KHVuc2lnbmVk
IGluZGV4LCBib29sIGRpc2FibGUpCitib29sIEluc3BlY3RvclN0eWxlOjp0b2dnbGVQcm9wZXJ0
eShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIHVuc2lnbmVkIGluZGV4LCBib29sIGRpc2FibGUp
CiB7CiAgICAgQVNTRVJUKG1fcGFyZW50U3R5bGVTaGVldCk7Ci0gICAgaWYgKCFtX3BhcmVudFN0
eWxlU2hlZXQtPmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7
IC8vIENhbiB0b2dnbGUgb25seSBzb3VyY2UtYmFzZWQgcHJvcGVydGllcy4KKyAgICBpZiAoIW1f
cGFyZW50U3R5bGVTaGVldC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkpIHsKKyAgICAgICAgKmVy
cm9yU3RyaW5nID0gIkNhbiB0b2dnbGUgb25seSBzb3VyY2UtYmFzZWQgcHJvcGVydGllcy4iOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0
YT4gc291cmNlRGF0YSA9IG1fcGFyZW50U3R5bGVTaGVldC0+cnVsZVNvdXJjZURhdGFGb3IobV9z
dHlsZS5nZXQoKSk7Ci0gICAgaWYgKCFzb3VyY2VEYXRhKQotICAgICAgICByZXR1cm4gZmFsc2U7
IC8vIE5vIHNvdXJjZSBkYXRhIGZvciB0aGUgc3R5bGUuCisgICAgaWYgKCFzb3VyY2VEYXRhKSB7
CisgICAgICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogTm8gc291cmNlIGRhdGEg
Zm9yIHRoZSBzdHlsZSBmb3VuZC4iOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAg
ICAgVmVjdG9yPEluc3BlY3RvclN0eWxlUHJvcGVydHk+IGFsbFByb3BlcnRpZXM7CiAgICAgcG9w
dWxhdGVBbGxQcm9wZXJ0aWVzKCZhbGxQcm9wZXJ0aWVzKTsKLSAgICBpZiAoaW5kZXggPj0gYWxs
UHJvcGVydGllcy5zaXplKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsgLy8gT3V0c2lkZSBvZiBw
cm9wZXJ0eSByYW5nZS4KKyAgICBpZiAoaW5kZXggPj0gYWxsUHJvcGVydGllcy5zaXplKCkpIHsK
KyAgICAgICAgKmVycm9yU3RyaW5nID0gIlByb3BlcnR5IGluZGV4IGlzIG91dHNpZGUgb2YgcHJv
cGVydHkgcmFuZ2UuIjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIEluc3Bl
Y3RvclN0eWxlUHJvcGVydHkmIHByb3BlcnR5ID0gYWxsUHJvcGVydGllcy5hdChpbmRleCk7CiAg
ICAgaWYgKHByb3BlcnR5LmRpc2FibGVkID09IGRpc2FibGUpCkBAIC04MDUsMjIgKzgyMywyNiBA
QCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRP
YmplY3RGb3JTdHlsZShDU1NTdHlsZURlYwogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwog
fQogCi1ib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OnNldFByb3BlcnR5VGV4dChjb25zdCBJbnNw
ZWN0b3JDU1NJZCYgaWQsIHVuc2lnbmVkIHByb3BlcnR5SW5kZXgsIGNvbnN0IFN0cmluZyYgdGV4
dCwgYm9vbCBvdmVyd3JpdGUpCitib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OnNldFByb3BlcnR5
VGV4dChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IEluc3BlY3RvckNTU0lkJiBpZCwg
dW5zaWduZWQgcHJvcGVydHlJbmRleCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIG92ZXJ3cml0
ZSkKIHsKICAgICBSZWZQdHI8SW5zcGVjdG9yU3R5bGU+IGluc3BlY3RvclN0eWxlID0gaW5zcGVj
dG9yU3R5bGVGb3JJZChpZCk7Ci0gICAgaWYgKCFpbnNwZWN0b3JTdHlsZSkKKyAgICBpZiAoIWlu
c3BlY3RvclN0eWxlKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJObyBzdHlsZSBmb3VuZCBm
b3IgZ2l2ZW4gaWQuIjsKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAotICAgIHJldHVy
biBpbnNwZWN0b3JTdHlsZS0+c2V0UHJvcGVydHlUZXh0KHByb3BlcnR5SW5kZXgsIHRleHQsIG92
ZXJ3cml0ZSk7CisgICAgcmV0dXJuIGluc3BlY3RvclN0eWxlLT5zZXRQcm9wZXJ0eVRleHQoZXJy
b3JTdHJpbmcsIHByb3BlcnR5SW5kZXgsIHRleHQsIG92ZXJ3cml0ZSk7CiB9CiAKLWJvb2wgSW5z
cGVjdG9yU3R5bGVTaGVldDo6dG9nZ2xlUHJvcGVydHkoY29uc3QgSW5zcGVjdG9yQ1NTSWQmIGlk
LCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBib29sIGRpc2FibGUpCitib29sIEluc3BlY3RvclN0
eWxlU2hlZXQ6OnRvZ2dsZVByb3BlcnR5KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3Qg
SW5zcGVjdG9yQ1NTSWQmIGlkLCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBib29sIGRpc2FibGUp
CiB7CiAgICAgUmVmUHRyPEluc3BlY3RvclN0eWxlPiBpbnNwZWN0b3JTdHlsZSA9IGluc3BlY3Rv
clN0eWxlRm9ySWQoaWQpOwotICAgIGlmICghaW5zcGVjdG9yU3R5bGUpCisgICAgaWYgKCFpbnNw
ZWN0b3JTdHlsZSkgeworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gc3R5bGUgZm91bmQgZm9y
IGdpdmVuIGlkLiI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKLSAgICBib29sIHN1
Y2Nlc3MgPSBpbnNwZWN0b3JTdHlsZS0+dG9nZ2xlUHJvcGVydHkocHJvcGVydHlJbmRleCwgZGlz
YWJsZSk7CisgICAgYm9vbCBzdWNjZXNzID0gaW5zcGVjdG9yU3R5bGUtPnRvZ2dsZVByb3BlcnR5
KGVycm9yU3RyaW5nLCBwcm9wZXJ0eUluZGV4LCBkaXNhYmxlKTsKICAgICBpZiAoc3VjY2Vzcykg
ewogICAgICAgICBpZiAoZGlzYWJsZSkKICAgICAgICAgICAgIHJlbWVtYmVySW5zcGVjdG9yU3R5
bGUoaW5zcGVjdG9yU3R5bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmgKaW5kZXggMzA0OGIxYjhhNTM3MTJmOWY4MDNlODRlYTY5NTQ0Njk5YWM2
Mjg1Mi4uZjk4YjQ5ZTFkNjQ5ZGRjY2RlNDc2ZTM1NmI5OThlZjRlODFlNTAyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oCkBAIC00OSw2ICs0
OSw4IEBAIGNsYXNzIE5vZGU7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCit0eXBlZGVmIFN0
cmluZyBFcnJvclN0cmluZzsKKwogY2xhc3MgSW5zcGVjdG9yQ1NTSWQgewogcHVibGljOgogICAg
IEluc3BlY3RvckNTU0lkKCkgeyB9CkBAIC0xMjcsOCArMTI5LDggQEAgcHVibGljOgogICAgIENT
U1N0eWxlRGVjbGFyYXRpb24qIGNzc1N0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZS5nZXQo
KTsgfQogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclN0eWxl
KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNEaXNhYmxlZFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVy
biAhbV9kaXNhYmxlZFByb3BlcnRpZXMuaXNFbXB0eSgpOyB9Ci0gICAgYm9vbCBzZXRQcm9wZXJ0
eVRleHQodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBvdmVyd3JpdGUp
OwotICAgIGJvb2wgdG9nZ2xlUHJvcGVydHkodW5zaWduZWQgaW5kZXgsIGJvb2wgZGlzYWJsZSk7
CisgICAgYm9vbCBzZXRQcm9wZXJ0eVRleHQoRXJyb3JTdHJpbmcqLCB1bnNpZ25lZCBpbmRleCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIG92ZXJ3cml0ZSk7CisgICAgYm9vbCB0b2dnbGVQcm9w
ZXJ0eShFcnJvclN0cmluZyosIHVuc2lnbmVkIGluZGV4LCBib29sIGRpc2FibGUpOwogCiBwcml2
YXRlOgogICAgIEluc3BlY3RvclN0eWxlKGNvbnN0IEluc3BlY3RvckNTU0lkJiBzdHlsZUlkLCBQ
YXNzUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+IHN0eWxlLCBJbnNwZWN0b3JTdHlsZVNoZWV0
KiBwYXJlbnRTdHlsZVNoZWV0KTsKQEAgLTE3MSw4ICsxNzMsOCBAQCBwdWJsaWM6CiAgICAgUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVldEluZm8oKTsK
ICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JSdWxlKENTU1N0
eWxlUnVsZSopOwogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZv
clN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qKTsKLSAgICBib29sIHNldFByb3BlcnR5VGV4dChj
b25zdCBJbnNwZWN0b3JDU1NJZCYsIHVuc2lnbmVkIHByb3BlcnR5SW5kZXgsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgYm9vbCBvdmVyd3JpdGUpOwotICAgIGJvb2wgdG9nZ2xlUHJvcGVydHkoY29uc3Qg
SW5zcGVjdG9yQ1NTSWQmLCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBib29sIGRpc2FibGUpOwor
ICAgIGJvb2wgc2V0UHJvcGVydHlUZXh0KEVycm9yU3RyaW5nKiwgY29uc3QgSW5zcGVjdG9yQ1NT
SWQmLCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgb3Zl
cndyaXRlKTsKKyAgICBib29sIHRvZ2dsZVByb3BlcnR5KEVycm9yU3RyaW5nKiwgY29uc3QgSW5z
cGVjdG9yQ1NTSWQmLCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBib29sIGRpc2FibGUpOwogCiAg
ICAgdmlydHVhbCBib29sIHRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0OwogICAgIHZpcnR1YWwg
Q1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGVGb3JJZChjb25zdCBJbnNwZWN0b3JDU1NJZCYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NT
dHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHls
ZU1vZGVsLmpzCmluZGV4IDFkMzI4MWI0OTEwYWM3NTFiMTNiMWM5MjQwNDk3YjhhNzFlMDM3MDQu
Ljc1OTZiYzRmYjc5NTM0MjIxZTJkY2U2Y2VjMDA5MWUyOWM5YjJiYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTE2
NiwyMCArMTY2LDIzIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgQ1NTQWdlbnQuYWRkUnVsZShub2RlSWQsIHNlbGVjdG9yLCBjYWxsYmFjay5iaW5k
KHRoaXMsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrLCBzZWxlY3RvcikpOwogICAg
IH0sCiAKLSAgICBfZmlyZVN0eWxlU2hlZXRDaGFuZ2VkOiBmdW5jdGlvbihzdHlsZVNoZWV0SWQs
IG1ham9yQ2hhbmdlKQorICAgIF9maXJlU3R5bGVTaGVldENoYW5nZWQ6IGZ1bmN0aW9uKHN0eWxl
U2hlZXRJZCwgbWFqb3JDaGFuZ2UsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgaWYgKCFtYWpv
ckNoYW5nZSB8fCAhc3R5bGVTaGVldElkKQorICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrIHx8
IGZ1bmN0aW9uKCkge307CisKKyAgICAgICAgaWYgKCFtYWpvckNoYW5nZSB8fCAhc3R5bGVTaGVl
dElkIHx8ICF0aGlzLmhhc0V2ZW50TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LkV2ZW50cy5TdHlsZVNoZWV0Q2hhbmdlZCkpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
ayhlcnJvciwgY29udGVudCkKKyAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFjayhlcnJvciwgY29u
dGVudCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLlN0eWxlU2hlZXRDaGFuZ2VkLCB7IHN0eWxl
U2hlZXRJZDogc3R5bGVTaGVldElkLCBjb250ZW50OiBjb250ZW50LCBtYWpvckNoYW5nZTogbWFq
b3JDaGFuZ2UgfSk7CisgICAgICAgICAgICBpZiAoIWVycm9yKQorICAgICAgICAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2
ZW50cy5TdHlsZVNoZWV0Q2hhbmdlZCwgeyBzdHlsZVNoZWV0SWQ6IHN0eWxlU2hlZXRJZCwgY29u
dGVudDogY29udGVudCwgbWFqb3JDaGFuZ2U6IG1ham9yQ2hhbmdlIH0pOworICAgICAgICAgICAg
Y2FsbGJhY2soKTsKICAgICAgICAgfQotICAgICAgICBpZiAodGhpcy5oYXNFdmVudExpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuU3R5bGVTaGVldENoYW5nZWQpKQot
ICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBjYWxs
YmFjay5iaW5kKHRoaXMpKTsKKworICAgICAgICBDU1NBZ2VudC5nZXRTdHlsZVNoZWV0VGV4dChz
dHlsZVNoZWV0SWQsIG15Y2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIHNldFN0
eWxlU2hlZXRUZXh0OiBmdW5jdGlvbihzdHlsZVNoZWV0SWQsIG5ld1RleHQsIG1ham9yQ2hhbmdl
LCB1c2VyQ2FsbGJhY2spCkBAIC0xODcsMTAgKzE5MCw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IpCiAg
ICAgICAgIHsKICAgICAgICAgICAgICBpZiAoIWVycm9yKQotICAgICAgICAgICAgICAgICB0aGlz
Ll9maXJlU3R5bGVTaGVldENoYW5nZWQoc3R5bGVTaGVldElkLCBtYWpvckNoYW5nZSk7Ci0KLSAg
ICAgICAgICAgICBpZiAodXNlckNhbGxiYWNrKQotICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJh
Y2soZXJyb3IpOworICAgICAgICAgICAgICAgICB0aGlzLl9maXJlU3R5bGVTaGVldENoYW5nZWQo
c3R5bGVTaGVldElkLCBtYWpvckNoYW5nZSwgdXNlckNhbGxiYWNrID8gdXNlckNhbGxiYWNrLmJp
bmQodGhpcywgZXJyb3IpIDogbnVsbCk7CiAgICAgICAgIH0KICAgICAgICAgQ1NTQWdlbnQuc2V0
U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBuZXdUZXh0LCBjYWxsYmFjay5iaW5kKHRoaXMp
KTsKICAgICB9CkBAIC0zNjYsOSArMzY2LDEwIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xh
cmF0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghdXNlckNhbGxiYWNrKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAg
ICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihKU09OLnN0cmlu
Z2lmeShlcnJvcikpOwogICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhudWxsKTsKLSAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICB1c2Vy
Q2FsbGJhY2soV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucGFyc2VQYXlsb2FkKHBh
eWxvYWQpKTsKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuX2ZpcmVTdHls
ZVNoZWV0Q2hhbmdlZCh0aGlzLmlkLnN0eWxlU2hlZXRJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9
CkBAIC00OTgsNyArNDk5LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9
IHsKIAogICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvciwgc3R5bGVQYXlsb2FkKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoIWVycm9yICYmIHN0eWxlUGF5bG9hZCkgeworICAgICAg
ICAgICAgaWYgKCFlcnJvcikgewogICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IHByb3BlcnR5
VGV4dDsKICAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQoc3R5bGVQYXlsb2FkKTsKICAgICAgICAgICAgICAgICB2
YXIgbmV3UHJvcGVydHkgPSBzdHlsZS5hbGxQcm9wZXJ0aWVzW3RoaXMuaW5kZXhdOwpAQCAtNTA2
LDExICs1MDcsMTEgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICBpZiAobmV3UHJvcGVydHkgJiYgdGhpcy5kaXNhYmxlZCAmJiAhcHJvcGVy
dHlUZXh0Lm1hdGNoKC9eXHMqJC8pKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1Byb3BlcnR5
LnNldERpc2FibGVkKGZhbHNlLCBlbmFibGVkQ2FsbGJhY2spOwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5jc3NNb2RlbC5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKHN0eWxlLmlkLnN0eWxl
U2hlZXRJZCwgbWFqb3JDaGFuZ2UpOwotICAgICAgICAgICAgICAgIGlmICh1c2VyQ2FsbGJhY2sp
Ci0gICAgICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhzdHlsZSk7CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9maXJlU3R5bGVT
aGVldENoYW5nZWQoc3R5bGUuaWQuc3R5bGVTaGVldElkLCBtYWpvckNoYW5nZSwgdXNlckNhbGxi
YWNrLmJpbmQodGhpcywgc3R5bGUpKTsKICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgY29uc29sZS5lcnJvcihKU09OLnN0cmluZ2lmeShlcnJvcikpOwogICAgICAgICAgICAg
ICAgIGlmICh1c2VyQ2FsbGJhY2spCiAgICAgICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhu
dWxsKTsKICAgICAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90042</attachid>
            <date>2011-04-18 08:39:57 -0700</date>
            <delta_ts>2011-04-18 08:56:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58786-20110418193954.patch</filename>
            <type>text/plain</type>
            <size>22444</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQxNDMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMThkY2M1MTIxOTdkOTA2NTQzOWQx
ZmFkNDMxNjk3ODI5NTc2MDFlLi4yNDE0YjJhNDA1ZjBlZjI2ZjU1MDU5YmI2NTFhNjAxN2U0YmVk
OGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQtMTggIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCB0ZXN0IGZvciBDU1MtcmVzb3VyY2UgYmlu
ZGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4
Nzg2CisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtaGlzdG9y
eS5jc3M6IEFkZGVkLgorICAgICAgICAoYm9keSk6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtaGlzdG9yeS1leHBlY3RlLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgorCiAyMDExLTA0LTE4ICBTaGVyaWZm
IEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByODM4MDMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtaGlzdG9yeS5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtaGlzdG9yeS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZlYTZm
Nzk3NmI4N2FiOGU2ZmEwY2Q3ZTJiNzhlZmI1YzgwZjU4YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1oaXN0b3J5LmNzcwpA
QCAtMCwwICsxLDQgQEAKK2JvZHkgeworICBtYXJnaW46IDEwcHg7CisgIHBhZGRpbmc6IDEwcHg7
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0
b3J5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhp
c3RvcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlMzc4NDVkOWMzYjE0NWEyNzk2ZGMyNDA3
MTY1OGY0Y2M5MTVjOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1oaXN0b3J5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYxIEBACitUZXN0
cyByZXNvdXJjZXMgcGFuZWwgaGlzdG9yeS4KKworCitSdW5uaW5nOiB0ZXN0U2V0VXAKKworUnVu
bmluZzogdGVzdFNldFJlc291cmNlQ29udGVudE1pbm9yCitIaXN0b3J5IGxlbmd0aDogMAorCitS
dW5uaW5nOiB0ZXN0U2V0UmVzb3VyY2VDb250ZW50TWFqb3IKK0l0ZW0gPHRpcD46Citib2R5IHsK
KyAgbWFyZ2luOiAxMHB4OworICBwYWRkaW5nOiAxMHB4OworfQorCitIaXN0b3J5IGxlbmd0aDog
MQorSXRlbSAwOgorYm9keSB7CisgIG1hcmdpbjogMTBweDsKKyAgcGFkZGluZzogMTBweDsKK30K
KworSXRlbSA8dGlwPjoKK2JvZHkgeworICBtYXJnaW46IDIwcHg7CisgIHBhZGRpbmc6IDEwcHg7
Cit9CisKK1J1bm5pbmc6IHRlc3RTZXRDb250ZW50VmlhTW9kZWxNaW5vcgorSGlzdG9yeSBsZW5n
dGg6IDEKK0l0ZW0gMDoKK2JvZHkgeworICBtYXJnaW46IDEwcHg7CisgIHBhZGRpbmc6IDEwcHg7
Cit9CisKK0l0ZW0gPHRpcD46Citib2R5IHsKKyAgbWFyZ2luOiAyMHB4OworICBwYWRkaW5nOiAx
MHB4OworfQorCitSdW5uaW5nOiB0ZXN0U2V0Q29udGVudFZpYU1vZGVsTWFqb3IKK0hpc3Rvcnkg
bGVuZ3RoOiAyCitJdGVtIDA6Citib2R5IHsKKyAgbWFyZ2luOiAxMHB4OworICBwYWRkaW5nOiAx
MHB4OworfQorCitJdGVtIDE6Citib2R5IHsKKyAgbWFyZ2luOiAyMHB4OworICBwYWRkaW5nOiAx
MHB4OworfQorSXRlbSA8dGlwPjoKK2JvZHkgeworICBtYXJnaW46MzBweDsKKyAgcGFkZGluZzog
MTBweDsKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHls
ZXMtaGlzdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlz
dG9yeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjYjExZWQ1N2EyZTIzYWIwNWUyZWE1NTllYzRhMGMzM2Ri
Y2Y2MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1oaXN0b3J5Lmh0bWwKQEAgLTAsMCArMSwxMzggQEAKKzxodG1sPgorPGhlYWQ+CisKKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3N0eWxlcy1oaXN0b3J5LmNzcyI+
CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICBpZiAoIVdlYkluc3BlY3Rvci5tYWluUmVzb3VyY2UpCisgICAgICAgIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkNhY2hlZFJlc291cmNlc0xvYWRlZCwgcnVuVGVzdFN1
aXRlKTsKKyAgICBlbHNlCisgICAgICAgIHJ1blRlc3RTdWl0ZSgpOworCisgICAgdmFyIHN0eWxl
UmVzb3VyY2U7CisgICAgdmFyIHN0eWxlU2hlZXRJZDsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3RT
dWl0ZSgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCisgICAg
ICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0VXAobmV4dCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBmdW5jdGlvbiB2aXNpdFJlc291cmNlKHJlc291cmNlKQorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc291cmNlLnVybC5pbmRleE9mKCJzdHlsZXMt
aGlzdG9yeS5jc3MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgICAgIHN0eWxlUmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAg
ICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZm9yQWxsUmVzb3VyY2VzKHZpc2l0UmVzb3VyY2Up
OworICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgZnVuY3Rpb24gdGVzdFNldFJlc291cmNl
Q29udGVudE1pbm9yKG5leHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZnVuY3Rp
b24gY2FsbGJhY2soKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZHVt
cEhpc3RvcnkoKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBzdHlsZVJlc291cmNlLnNldENvbnRlbnQoImJvZHkge1xuICBt
YXJnaW46IDE1cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59IiwgZmFsc2UsIGNhbGxiYWNrKTsKKyAg
ICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRSZXNvdXJjZUNvbnRl
bnRNYWpvcihuZXh0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNh
bGxiYWNrKCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGR1bXBIaXN0
b3J5KCk7CisgICAgICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgc3R5bGVSZXNvdXJjZS5zZXRDb250ZW50KCJib2R5IHtcbiAgbWFyZ2lu
OiAyMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufSIsIHRydWUsIGNhbGxiYWNrKTsKKyAgICAgICAg
ICAgIH0sCisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRDb250ZW50VmlhTW9kZWxNaW5v
cihuZXh0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRGb3JSZXNv
dXJjZShzdGVwMSk7CisKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMShzdHlsZVNoZWV0
KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHN0eWxlID0gc3R5
bGVTaGVldC5ydWxlc1swXS5zdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5
ID0gc3R5bGUuZ2V0TGl2ZVByb3BlcnR5KCJtYXJnaW4iKTsKKyAgICAgICAgICAgICAgICAgICAg
cHJvcGVydHkuc2V0VGV4dCgibWFyZ2luOjI1cHg7IiwgZmFsc2UsIHN0ZXAyKTsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMihlcnJvcikKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGR1bXBIaXN0b3J5KCk7CisgICAgICAg
ICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRDb250ZW50VmlhTW9k
ZWxNYWpvcihuZXh0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRG
b3JSZXNvdXJjZShzdGVwMSk7CisKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMShzdHls
ZVNoZWV0KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHN0eWxl
ID0gc3R5bGVTaGVldC5ydWxlc1swXS5zdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHBy
b3BlcnR5ID0gc3R5bGUuZ2V0TGl2ZVByb3BlcnR5KCJtYXJnaW4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgcHJvcGVydHkuc2V0VGV4dCgibWFyZ2luOjMwcHg7IiwgdHJ1ZSwgc3RlcDIpOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKGVycm9yKQor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZHVtcEhpc3RvcnkoKTsKKyAg
ICAgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICB9CisgICAgICAgIF0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
eWxlU2hlZXRGb3JSZXNvdXJjZShjYWxsYmFjaykKKyAgICB7CisgICAgICAgIENTU0FnZW50Lmdl
dEFsbFN0eWxlU2hlZXRzKGRpZEdldEFsbFN0eWxlU2hlZXRzLmJpbmQodGhpcykpOworICAgICAg
ICAKKyAgICAgICAgZnVuY3Rpb24gZGlkR2V0QWxsU3R5bGVTaGVldHMoZXJyb3IsIGluZm9zKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXJyb3I6IiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICBj
YWxsYmFjayhudWxsKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5mb3MubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICB2YXIgaW5mbyA9IGluZm9zW2ldOworICAgICAgICAgICAgICAgIGlmIChp
bmZvLnNvdXJjZVVSTC5pbmRleE9mKCJzdHlsZXMtaGlzdG9yeS5jc3MiKSA9PT0gLTEpCisgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5D
U1NTdHlsZVNoZWV0LmNyZWF0ZUZvcklkKGluZm8uc3R5bGVTaGVldElkLCBjYWxsYmFjayk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJh
Y2sobnVsbCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBkdW1wSGlzdG9yeSgp
CisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSGlzdG9yeSBsZW5ndGg6
ICIgKyBzdHlsZVJlc291cmNlLmhpc3RvcnkubGVuZ3RoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBzdHlsZVJlc291cmNlLmhpc3RvcnkubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBz
dHlsZVJlc291cmNlLmhpc3RvcnlbaV0ucmVxdWVzdENvbnRlbnQoZHVtcFJldmlzaW9uLmJpbmQo
dGhpcywgaSkpOworICAgICAgICBzdHlsZVJlc291cmNlLnJlcXVlc3RDb250ZW50KGR1bXBSZXZp
c2lvbi5iaW5kKHRoaXMsICI8dGlwPiIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkdW1wUmV2
aXNpb24oaW5kZXgsIGNvbnRlbnQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiSXRlbSAiICsgaW5kZXggKyAiOiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdChjb250ZW50KTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHJlc291cmNlcyBwYW5lbCBoaXN0b3J5Lgor
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKaW5kZXggMzI3YjYxZjQ5NmQzNmIy
YTEwZTc1MDg3NzkwZWE3Y2RiNWM2NmQ4MS4uZDhiYzhlMDM1ZmUyY2E3NmY3MDk1NDEyMTY5ZGIz
ZjQxMWQ3YWU3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHls
ZXMtc291cmNlLW9mZnNldHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPGh0bWw+CiA8aGVh
ZD4KIAotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLmNzcyIgLS0+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNl
cy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzIj4KIAogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMzM0M2Y5MTMyYWE3NGU0YmRjYmVmNTdjM2FlZjRjMDUzZDA0NGU0Li4w
NmQ4MDAzYzliZGE2ZTUyZmM5MTQwNGE5MTBhNzU3MDBiNWExZGFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzAgQEAKKzIwMTEtMDQtMTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGFkZCB0ZXN0IGZvciBDU1MtcmVzb3VyY2UgYmluZGluZy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4Nzg2CisKKyAgICAgICAg
VGVzdDogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ1NTQWdlbnQ6OnNldFByb3BlcnR5VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDU1NBZ2VudDo6dG9nZ2xlUHJvcGVydHkpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzZXRQ
cm9wZXJ0eVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnRvZ2dsZVBy
b3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OnNldFByb3Bl
cnR5VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0Ojp0b2dnbGVQ
cm9wZXJ0eSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX2ZpcmVTdHlsZVNoZWV0Q2hhbmdl
ZC5pZik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX2Zp
cmVTdHlsZVNoZWV0Q2hhbmdlZC5teWNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5zZXRTdHlsZVNoZWV0VGV4dCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuaW5z
ZXJ0UHJvcGVydHlBdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90
eXBlLnNldFRleHQuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5
LnByb3RvdHlwZS5zZXRUZXh0KToKKwogMjAxMS0wNC0xOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjgzODAzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKaW5kZXggNGQyODg3OGQ2YzgyNGQwNDk4ZTdjMmUzNDY4YTc3YzYwMjhiZmFjNy4uZDA2ZDll
YjgwZGY2Y2E0YzM0ZGFkN2MzMmMxOGY2YWFiZDM2MjM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC0zMTQsNyArMzE0LDcgQEAgdm9p
ZCBJbnNwZWN0b3JDU1NBZ2VudDo6c2V0UHJvcGVydHlUZXh0KEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgY29uc3QgUmVmUHRyPEkKICAgICBpZiAoIWluc3BlY3RvclN0eWxlU2hlZXQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGJvb2wgc3VjY2VzcyA9IGluc3BlY3RvclN0eWxlU2hlZXQtPnNl
dFByb3BlcnR5VGV4dChjb21wb3VuZElkLCBwcm9wZXJ0eUluZGV4LCB0ZXh0LCBvdmVyd3JpdGUp
OworICAgIGJvb2wgc3VjY2VzcyA9IGluc3BlY3RvclN0eWxlU2hlZXQtPnNldFByb3BlcnR5VGV4
dChlcnJvclN0cmluZywgY29tcG91bmRJZCwgcHJvcGVydHlJbmRleCwgdGV4dCwgb3ZlcndyaXRl
KTsKICAgICBpZiAoc3VjY2VzcykKICAgICAgICAgKnJlc3VsdCA9IGluc3BlY3RvclN0eWxlU2hl
ZXQtPmJ1aWxkT2JqZWN0Rm9yU3R5bGUoaW5zcGVjdG9yU3R5bGVTaGVldC0+c3R5bGVGb3JJZChj
b21wb3VuZElkKSk7CiB9CkBAIC0zMjgsNyArMzI4LDcgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2Vu
dDo6dG9nZ2xlUHJvcGVydHkoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8
SW4KICAgICBpZiAoIWluc3BlY3RvclN0eWxlU2hlZXQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGJvb2wgc3VjY2VzcyA9IGluc3BlY3RvclN0eWxlU2hlZXQtPnRvZ2dsZVByb3BlcnR5KGNvbXBv
dW5kSWQsIHByb3BlcnR5SW5kZXgsIGRpc2FibGUpOworICAgIGJvb2wgc3VjY2VzcyA9IGluc3Bl
Y3RvclN0eWxlU2hlZXQtPnRvZ2dsZVByb3BlcnR5KGVycm9yU3RyaW5nLCBjb21wb3VuZElkLCBw
cm9wZXJ0eUluZGV4LCBkaXNhYmxlKTsKICAgICBpZiAoc3VjY2VzcykKICAgICAgICAgKnJlc3Vs
dCA9IGluc3BlY3RvclN0eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yU3R5bGUoaW5zcGVjdG9yU3R5
bGVTaGVldC0+c3R5bGVGb3JJZChjb21wb3VuZElkKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggYTNjMTBhNTQ5OGMzNjg1
Yjk4OTI5ZGY1ZTM0Yjk1ZmJjZDVhZDYzZi4uMGMxZjQ0YWRlZTgxNTM0YjYzM2I2ZjNlOGMwNTJl
OTJhMmE5OGVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcApAQCAtMTgwLDExICsxODAsMTMgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IEluc3BlY3RvclN0eWxlOjpidWlsZE9iamVjdEZvclN0eWxlKCkgY29uc3QKIC8vCiAv
LyBUaGUgcHJvcGVydHlUZXh0IChpZiBub3QgZW1wdHkpIGlzIGNoZWNrZWQgdG8gYmUgYSB2YWxp
ZCBzdHlsZSBkZWNsYXJhdGlvbiAoY29udGFpbmluZyBhdCBsZWFzdCBvbmUgcHJvcGVydHkpLiBJ
ZiBub3QsCiAvLyB0aGUgbWV0aG9kIHJldHVybnMgZmFsc2UgKGRlbm90aW5nIGFuIGVycm9yKS4K
LWJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4dCh1bnNpZ25lZCBpbmRleCwgY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsIGJvb2wgb3ZlcndyaXRlKQorYm9vbCBJbnNwZWN0b3JT
dHlsZTo6c2V0UHJvcGVydHlUZXh0KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgdW5zaWduZWQg
aW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LCBib29sIG92ZXJ3cml0ZSkKIHsKICAg
ICBBU1NFUlQobV9wYXJlbnRTdHlsZVNoZWV0KTsKLSAgICBpZiAoIW1fcGFyZW50U3R5bGVTaGVl
dC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkpCisgICAgaWYgKCFtX3BhcmVudFN0eWxlU2hlZXQt
PmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJJbnRl
cm5hbCBlcnJvcjogbm8gc3R5bGVzaGVldCBwYXJzZWQgZGF0YSBhdmFpbGFibGUuIjsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3Bl
cnR5PiBhbGxQcm9wZXJ0aWVzOwogICAgIHBvcHVsYXRlQWxsUHJvcGVydGllcygmYWxsUHJvcGVy
dGllcyk7CkBAIC0yMDEsMTIgKzIwMywxNiBAQCBib29sIEluc3BlY3RvclN0eWxlOjpzZXRQcm9w
ZXJ0eVRleHQodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LAogICAg
ICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0gcHJvcGVydHlEYXRhLnNpemUoKTsKIAogICAg
ICAgICAvLyBBdCBsZWFzdCBvbmUgcHJvcGVydHkgKyB0aGUgYm9ndXMgcHJvcGVydHkgYWRkZWQg
anVzdCBhYm92ZSBzaG91bGQgYmUgcHJlc2VudC4KLSAgICAgICAgaWYgKHByb3BlcnR5Q291bnQg
PCAyKQorICAgICAgICBpZiAocHJvcGVydHlDb3VudCA8IDIpIHsKKyAgICAgICAgICAgICplcnJv
clN0cmluZyA9ICJJbnZhbGlkIHByb3BlcnR5IHZhbHVlLiI7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KIAogICAgICAgICAvLyBDaGVjayBmb3IgYSBwcm9wZXIgcHJvcGVy
dHlUZXh0IHRlcm1pbmF0aW9uICh0aGUgcGFyc2VyIGNvdWxkIGF0IGxlYXN0IHJlc3RvcmUgdG8g
dGhlIFBST1BFUlRZX05BTUUgc3RhdGUpLgotICAgICAgICBpZiAocHJvcGVydHlEYXRhLmF0KHBy
b3BlcnR5Q291bnQgLSAxKS5uYW1lICE9ICItd2Via2l0LWJvZ3V6LXByb3BlcnRlZSIpCisgICAg
ICAgIGlmIChwcm9wZXJ0eURhdGEuYXQocHJvcGVydHlDb3VudCAtIDEpLm5hbWUgIT0gIi13ZWJr
aXQtYm9ndXotcHJvcGVydGVlIikgeworICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gIkludmFs
aWQgcHJvcGVydHkgdmFsdWUuIjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQogICAgIH0KIAogICAgIGlmIChvdmVyd3JpdGUpIHsKQEAgLTIyMCw4ICsyMjYsMTAgQEAgYm9v
bCBJbnNwZWN0b3JTdHlsZTo6c2V0UHJvcGVydHlUZXh0KHVuc2lnbmVkIGluZGV4LCBjb25zdCBT
dHJpbmcmIHByb3BlcnR5VGV4dCwKIAogICAgICAgICBpZiAoIXByb3BlcnR5LmRpc2FibGVkKSB7
CiAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSByZXBsYWNlUHJvcGVydHlJblN0eWxlVGV4dChw
cm9wZXJ0eSwgcHJvcGVydHlUZXh0KTsKLSAgICAgICAgICAgIGlmICghc3VjY2VzcykKKyAgICAg
ICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJJ
bnRlcm5hbCBlcnJvcjogY291bGQgbm90IHJlcGxhY2UgcHJvcGVydHkgdmFsdWUuIjsKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICB1bnNpZ25lZCB0ZXh0TGVuZ3RoID0gcHJvcGVydHlUZXh0Lmxlbmd0aCgp
OwogICAgICAgICAgICAgdW5zaWduZWQgZGlzYWJsZWRJbmRleCA9IGRpc2FibGVkSW5kZXhCeU9y
ZGluYWwoaW5kZXgsIGZhbHNlLCBhbGxQcm9wZXJ0aWVzKTsKQEAgLTIzOSwxMiArMjQ3LDE2IEBA
IGJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4dCh1bnNpZ25lZCBpbmRleCwgY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsCiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gSW5zZXJ0
IGF0IGluZGV4LgogICAgICAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEg
PSBtX3BhcmVudFN0eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUuZ2V0KCkpOwot
ICAgICAgICBpZiAoIXNvdXJjZURhdGEpCisgICAgICAgIGlmICghc291cmNlRGF0YSkgeworICAg
ICAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiBubyBDU1MgcnVsZSBzb3Vy
Y2UgZm91bmQuIjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogICAgICAg
ICBTdHJpbmcgdGV4dDsKICAgICAgICAgYm9vbCBzdWNjZXNzID0gc3R5bGVUZXh0KCZ0ZXh0KTsK
LSAgICAgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAg
ICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogY291bGQgbm90IGZldGNoIHN0eWxl
IHRleHQuIjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogICAgICAgICBw
cm9wZXJ0eUxlbmd0aERlbHRhID0gcHJvcGVydHlUZXh0Lmxlbmd0aCgpOwogCiAgICAgICAgIGJv
b2wgaW5zZXJ0TGFzdCA9IHRydWU7CkBAIC0yODcsMTkgKzI5OSwyNSBAQCBib29sIEluc3BlY3Rv
clN0eWxlOjpzZXRQcm9wZXJ0eVRleHQodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcHJv
cGVydHlUZXh0LAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEluc3BlY3RvclN0eWxlOjp0
b2dnbGVQcm9wZXJ0eSh1bnNpZ25lZCBpbmRleCwgYm9vbCBkaXNhYmxlKQorYm9vbCBJbnNwZWN0
b3JTdHlsZTo6dG9nZ2xlUHJvcGVydHkoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCB1bnNpZ25l
ZCBpbmRleCwgYm9vbCBkaXNhYmxlKQogewogICAgIEFTU0VSVChtX3BhcmVudFN0eWxlU2hlZXQp
OwotICAgIGlmICghbV9wYXJlbnRTdHlsZVNoZWV0LT5lbnN1cmVQYXJzZWREYXRhUmVhZHkoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBDYW4gdG9nZ2xlIG9ubHkgc291cmNlLWJhc2VkIHBy
b3BlcnRpZXMuCisgICAgaWYgKCFtX3BhcmVudFN0eWxlU2hlZXQtPmVuc3VyZVBhcnNlZERhdGFS
ZWFkeSgpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJDYW4gdG9nZ2xlIG9ubHkgc291cmNl
LWJhc2VkIHByb3BlcnRpZXMuIjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICBS
ZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBtX3BhcmVudFN0eWxlU2hlZXQt
PnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUuZ2V0KCkpOwotICAgIGlmICghc291cmNlRGF0YSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBzb3VyY2UgZGF0YSBmb3IgdGhlIHN0eWxlLgor
ICAgIGlmICghc291cmNlRGF0YSkgeworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW50ZXJuYWwg
ZXJyb3I6IE5vIHNvdXJjZSBkYXRhIGZvciB0aGUgc3R5bGUgZm91bmQuIjsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KIAogICAgIFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5PiBh
bGxQcm9wZXJ0aWVzOwogICAgIHBvcHVsYXRlQWxsUHJvcGVydGllcygmYWxsUHJvcGVydGllcyk7
Ci0gICAgaWYgKGluZGV4ID49IGFsbFByb3BlcnRpZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7IC8vIE91dHNpZGUgb2YgcHJvcGVydHkgcmFuZ2UuCisgICAgaWYgKGluZGV4ID49IGFs
bFByb3BlcnRpZXMuc2l6ZSgpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJQcm9wZXJ0eSBp
bmRleCBpcyBvdXRzaWRlIG9mIHByb3BlcnR5IHJhbmdlLiI7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CiAKICAgICBJbnNwZWN0b3JTdHlsZVByb3BlcnR5JiBwcm9wZXJ0eSA9IGFsbFBy
b3BlcnRpZXMuYXQoaW5kZXgpOwogICAgIGlmIChwcm9wZXJ0eS5kaXNhYmxlZCA9PSBkaXNhYmxl
KQpAQCAtODA1LDIyICs4MjMsMjYgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3Bl
Y3RvclN0eWxlU2hlZXQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5bGVEZWMKICAgICByZXR1
cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0OjpzZXRQ
cm9wZXJ0eVRleHQoY29uc3QgSW5zcGVjdG9yQ1NTSWQmIGlkLCB1bnNpZ25lZCBwcm9wZXJ0eUlu
ZGV4LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgb3ZlcndyaXRlKQorYm9vbCBJbnNwZWN0b3JT
dHlsZVNoZWV0OjpzZXRQcm9wZXJ0eVRleHQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25z
dCBJbnNwZWN0b3JDU1NJZCYgaWQsIHVuc2lnbmVkIHByb3BlcnR5SW5kZXgsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgYm9vbCBvdmVyd3JpdGUpCiB7CiAgICAgUmVmUHRyPEluc3BlY3RvclN0eWxlPiBp
bnNwZWN0b3JTdHlsZSA9IGluc3BlY3RvclN0eWxlRm9ySWQoaWQpOwotICAgIGlmICghaW5zcGVj
dG9yU3R5bGUpCisgICAgaWYgKCFpbnNwZWN0b3JTdHlsZSkgeworICAgICAgICAqZXJyb3JTdHJp
bmcgPSAiTm8gc3R5bGUgZm91bmQgZm9yIGdpdmVuIGlkLiI7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CiAKLSAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGUtPnNldFByb3BlcnR5VGV4dChw
cm9wZXJ0eUluZGV4LCB0ZXh0LCBvdmVyd3JpdGUpOworICAgIHJldHVybiBpbnNwZWN0b3JTdHls
ZS0+c2V0UHJvcGVydHlUZXh0KGVycm9yU3RyaW5nLCBwcm9wZXJ0eUluZGV4LCB0ZXh0LCBvdmVy
d3JpdGUpOwogfQogCi1ib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OnRvZ2dsZVByb3BlcnR5KGNv
bnN0IEluc3BlY3RvckNTU0lkJiBpZCwgdW5zaWduZWQgcHJvcGVydHlJbmRleCwgYm9vbCBkaXNh
YmxlKQorYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Ojp0b2dnbGVQcm9wZXJ0eShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IEluc3BlY3RvckNTU0lkJiBpZCwgdW5zaWduZWQgcHJvcGVy
dHlJbmRleCwgYm9vbCBkaXNhYmxlKQogewogICAgIFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4gaW5z
cGVjdG9yU3R5bGUgPSBpbnNwZWN0b3JTdHlsZUZvcklkKGlkKTsKLSAgICBpZiAoIWluc3BlY3Rv
clN0eWxlKQorICAgIGlmICghaW5zcGVjdG9yU3R5bGUpIHsKKyAgICAgICAgKmVycm9yU3RyaW5n
ID0gIk5vIHN0eWxlIGZvdW5kIGZvciBnaXZlbiBpZC4iOwogICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQogCi0gICAgYm9vbCBzdWNjZXNzID0gaW5zcGVjdG9yU3R5bGUtPnRvZ2dsZVByb3Bl
cnR5KHByb3BlcnR5SW5kZXgsIGRpc2FibGUpOworICAgIGJvb2wgc3VjY2VzcyA9IGluc3BlY3Rv
clN0eWxlLT50b2dnbGVQcm9wZXJ0eShlcnJvclN0cmluZywgcHJvcGVydHlJbmRleCwgZGlzYWJs
ZSk7CiAgICAgaWYgKHN1Y2Nlc3MpIHsKICAgICAgICAgaWYgKGRpc2FibGUpCiAgICAgICAgICAg
ICByZW1lbWJlckluc3BlY3RvclN0eWxlKGluc3BlY3RvclN0eWxlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oCmluZGV4IDMwNDhiMWI4YTUzNzEy
ZjlmODAzZTg0ZWE2OTU0NDY5OWFjNjI4NTIuLmY5OGI0OWUxZDY0OWRkY2NkZTQ3NmUzNTZiOTk4
ZWY0ZTgxZTUwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuaApAQCAtNDksNiArNDksOCBAQCBjbGFzcyBOb2RlOwogCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKIAordHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CisKIGNsYXNzIEluc3BlY3Rv
ckNTU0lkIHsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JDU1NJZCgpIHsgfQpAQCAtMTI3LDggKzEy
OSw4IEBAIHB1YmxpYzoKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBjc3NTdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IH0KICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gYnVpbGRPYmplY3RGb3JTdHlsZSgpIGNvbnN0OwogICAgIGJvb2wgaGFzRGlzYWJsZWRQcm9w
ZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gIW1fZGlzYWJsZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKTsg
fQotICAgIGJvb2wgc2V0UHJvcGVydHlUZXh0KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcm
IHRleHQsIGJvb2wgb3ZlcndyaXRlKTsKLSAgICBib29sIHRvZ2dsZVByb3BlcnR5KHVuc2lnbmVk
IGluZGV4LCBib29sIGRpc2FibGUpOworICAgIGJvb2wgc2V0UHJvcGVydHlUZXh0KEVycm9yU3Ry
aW5nKiwgdW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBvdmVyd3JpdGUp
OworICAgIGJvb2wgdG9nZ2xlUHJvcGVydHkoRXJyb3JTdHJpbmcqLCB1bnNpZ25lZCBpbmRleCwg
Ym9vbCBkaXNhYmxlKTsKIAogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JTdHlsZShjb25zdCBJbnNw
ZWN0b3JDU1NJZCYgc3R5bGVJZCwgUGFzc1JlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiBzdHls
ZSwgSW5zcGVjdG9yU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCk7CkBAIC0xNzEsOCArMTcz
LDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVj
dEZvclN0eWxlU2hlZXRJbmZvKCk7CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1
aWxkT2JqZWN0Rm9yUnVsZShDU1NTdHlsZVJ1bGUqKTsKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gYnVpbGRPYmplY3RGb3JTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKik7Ci0gICAg
Ym9vbCBzZXRQcm9wZXJ0eVRleHQoY29uc3QgSW5zcGVjdG9yQ1NTSWQmLCB1bnNpZ25lZCBwcm9w
ZXJ0eUluZGV4LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgb3ZlcndyaXRlKTsKLSAgICBib29s
IHRvZ2dsZVByb3BlcnR5KGNvbnN0IEluc3BlY3RvckNTU0lkJiwgdW5zaWduZWQgcHJvcGVydHlJ
bmRleCwgYm9vbCBkaXNhYmxlKTsKKyAgICBib29sIHNldFByb3BlcnR5VGV4dChFcnJvclN0cmlu
ZyosIGNvbnN0IEluc3BlY3RvckNTU0lkJiwgdW5zaWduZWQgcHJvcGVydHlJbmRleCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIG92ZXJ3cml0ZSk7CisgICAgYm9vbCB0b2dnbGVQcm9wZXJ0eShF
cnJvclN0cmluZyosIGNvbnN0IEluc3BlY3RvckNTU0lkJiwgdW5zaWduZWQgcHJvcGVydHlJbmRl
eCwgYm9vbCBkaXNhYmxlKTsKIAogICAgIHZpcnR1YWwgYm9vbCB0ZXh0KFN0cmluZyogcmVzdWx0
KSBjb25zdDsKICAgICB2aXJ0dWFsIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlRm9ySWQoY29u
c3QgSW5zcGVjdG9yQ1NTSWQmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwppbmRleCAxZDMyODFiNDkxMGFjNzUxYjEz
YjFjOTI0MDQ5N2I4YTcxZTAzNzA0Li43NTk2YmM0ZmI3OTUzNDIyMWUyZGNlNmNlYzAwOTFlMjlj
OWIyYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NT
U1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
U1NTdHlsZU1vZGVsLmpzCkBAIC0xNjYsMjAgKzE2NiwyMyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIENTU0FnZW50LmFkZFJ1bGUobm9kZUlkLCBz
ZWxlY3RvciwgY2FsbGJhY2suYmluZCh0aGlzLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxs
YmFjaywgc2VsZWN0b3IpKTsKICAgICB9LAogCi0gICAgX2ZpcmVTdHlsZVNoZWV0Q2hhbmdlZDog
ZnVuY3Rpb24oc3R5bGVTaGVldElkLCBtYWpvckNoYW5nZSkKKyAgICBfZmlyZVN0eWxlU2hlZXRD
aGFuZ2VkOiBmdW5jdGlvbihzdHlsZVNoZWV0SWQsIG1ham9yQ2hhbmdlLCBjYWxsYmFjaykKICAg
ICB7Ci0gICAgICAgIGlmICghbWFqb3JDaGFuZ2UgfHwgIXN0eWxlU2hlZXRJZCkKKyAgICAgICAg
Y2FsbGJhY2sgPSBjYWxsYmFjayB8fCBmdW5jdGlvbigpIHt9OworCisgICAgICAgIGlmICghbWFq
b3JDaGFuZ2UgfHwgIXN0eWxlU2hlZXRJZCB8fCAhdGhpcy5oYXNFdmVudExpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuU3R5bGVTaGVldENoYW5nZWQpKSB7CisgICAg
ICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAg
ICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIGNvbnRlbnQpCisgICAgICAgIGZ1bmN0aW9u
IG15Y2FsbGJhY2soZXJyb3IsIGNvbnRlbnQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChl
cnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5TdHls
ZVNoZWV0Q2hhbmdlZCwgeyBzdHlsZVNoZWV0SWQ6IHN0eWxlU2hlZXRJZCwgY29udGVudDogY29u
dGVudCwgbWFqb3JDaGFuZ2U6IG1ham9yQ2hhbmdlIH0pOworICAgICAgICAgICAgaWYgKCFlcnJv
cikKKyAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuU3R5bGVTaGVldENoYW5nZWQsIHsgc3R5bGVTaGVl
dElkOiBzdHlsZVNoZWV0SWQsIGNvbnRlbnQ6IGNvbnRlbnQsIG1ham9yQ2hhbmdlOiBtYWpvckNo
YW5nZSB9KTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0KLSAgICAgICAgaWYg
KHRoaXMuaGFzRXZlbnRMaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRz
LlN0eWxlU2hlZXRDaGFuZ2VkKSkKLSAgICAgICAgICAgIENTU0FnZW50LmdldFN0eWxlU2hlZXRU
ZXh0KHN0eWxlU2hlZXRJZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgQ1NTQWdl
bnQuZ2V0U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBteWNhbGxiYWNrLmJpbmQodGhpcykp
OwogICAgIH0sCiAKICAgICBzZXRTdHlsZVNoZWV0VGV4dDogZnVuY3Rpb24oc3R5bGVTaGVldElk
LCBuZXdUZXh0LCBtYWpvckNoYW5nZSwgdXNlckNhbGxiYWNrKQpAQCAtMTg3LDEwICsxOTAsNyBA
QCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKGVycm9yKQogICAgICAgICB7CiAgICAgICAgICAgICAgaWYgKCFlcnJvcikK
LSAgICAgICAgICAgICAgICAgdGhpcy5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKHN0eWxlU2hlZXRJ
ZCwgbWFqb3JDaGFuZ2UpOwotCi0gICAgICAgICAgICAgaWYgKHVzZXJDYWxsYmFjaykKLSAgICAg
ICAgICAgICAgICAgdXNlckNhbGxiYWNrKGVycm9yKTsKKyAgICAgICAgICAgICAgICAgdGhpcy5f
ZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKHN0eWxlU2hlZXRJZCwgbWFqb3JDaGFuZ2UsIHVzZXJDYWxs
YmFjayA/IHVzZXJDYWxsYmFjay5iaW5kKHRoaXMsIGVycm9yKSA6IG51bGwpOwogICAgICAgICB9
CiAgICAgICAgIENTU0FnZW50LnNldFN0eWxlU2hlZXRUZXh0KHN0eWxlU2hlZXRJZCwgbmV3VGV4
dCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfQpAQCAtMzY2LDkgKzM2NiwxMCBAQCBXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBp
ZiAoIXVzZXJDYWxsYmFjaykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAg
IGlmIChlcnJvcikKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIGNv
bnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTsKICAgICAgICAgICAgICAgICB1c2Vy
Q2FsbGJhY2sobnVsbCk7Ci0gICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xh
cmF0aW9uLnBhcnNlUGF5bG9hZChwYXlsb2FkKSk7CiAgICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmNzc01vZGVsLl9maXJlU3R5bGVTaGVldENoYW5nZWQodGhpcy5pZC5zdHlsZVNoZWV0SWQs
IHRydWUpOwogICAgICAgICAgICAgfQpAQCAtNDk4LDcgKzQ5OSw3IEBAIFdlYkluc3BlY3Rvci5D
U1NQcm9wZXJ0eS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJy
b3IsIHN0eWxlUGF5bG9hZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBz
dHlsZVBheWxvYWQpIHsKKyAgICAgICAgICAgIGlmICghZXJyb3IpIHsKICAgICAgICAgICAgICAg
ICB0aGlzLnRleHQgPSBwcm9wZXJ0eVRleHQ7CiAgICAgICAgICAgICAgICAgdmFyIHN0eWxlID0g
V2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucGFyc2VQYXlsb2FkKHN0eWxlUGF5bG9h
ZCk7CiAgICAgICAgICAgICAgICAgdmFyIG5ld1Byb3BlcnR5ID0gc3R5bGUuYWxsUHJvcGVydGll
c1t0aGlzLmluZGV4XTsKQEAgLTUwNiwxMSArNTA3LDExIEBAIFdlYkluc3BlY3Rvci5DU1NQcm9w
ZXJ0eS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgaWYgKG5ld1Byb3BlcnR5ICYmIHRo
aXMuZGlzYWJsZWQgJiYgIXByb3BlcnR5VGV4dC5tYXRjaCgvXlxzKiQvKSkgewogICAgICAgICAg
ICAgICAgICAgICBuZXdQcm9wZXJ0eS5zZXREaXNhYmxlZChmYWxzZSwgZW5hYmxlZENhbGxiYWNr
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuX2ZpcmVTdHlsZVNoZWV0
Q2hhbmdlZChzdHlsZS5pZC5zdHlsZVNoZWV0SWQsIG1ham9yQ2hhbmdlKTsKLSAgICAgICAgICAg
ICAgICBpZiAodXNlckNhbGxiYWNrKQotICAgICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2so
c3R5bGUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5jc3NNb2RlbC5fZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKHN0eWxlLmlkLnN0eWxlU2hlZXRJZCwg
bWFqb3JDaGFuZ2UsIHVzZXJDYWxsYmFjay5iaW5kKHRoaXMsIHN0eWxlKSk7CiAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnko
ZXJyb3IpKTsKICAgICAgICAgICAgICAgICBpZiAodXNlckNhbGxiYWNrKQogICAgICAgICAgICAg
ICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7CiAgICAgICAgICAgICB9Cg==
</data>
<flag name="review"
          id="82757"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>