<?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>98917</bug_id>
          
          <creation_ts>2012-10-10 09:18:15 -0700</creation_ts>
          <short_desc>Web Inspector: NMI instrument HTMLCanvas element.</short_desc>
          <delta_ts>2012-10-11 01:01:22 -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>
          <dependson>99001</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>alph</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>jamesr</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>senorblanco</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>739013</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-10 09:18:15 -0700</bug_when>
    <thetext>canvases retain a lot of memory for internal buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739019</commentid>
    <comment_count>1</comment_count>
      <attachid>168013</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-10 09:22:53 -0700</bug_when>
    <thetext>Created attachment 168013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739022</commentid>
    <comment_count>2</comment_count>
      <attachid>168014</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-10 09:31:02 -0700</bug_when>
    <thetext>Created attachment 168014
for try bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739041</commentid>
    <comment_count>3</comment_count>
      <attachid>168014</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-10 09:53:06 -0700</bug_when>
    <thetext>Comment on attachment 168014
for try bots

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

&gt; LayoutTests/inspector/profiler/memory-instrumentation-test.js:35
&gt; +InspectorTest.validateMemoryBlockSize = function(path, expectedSize)

expectedSize -&gt; expectedMinimalSize</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739630</commentid>
    <comment_count>4</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-10 23:05:57 -0700</bug_when>
    <thetext>Committed r131017: &lt;http://trac.webkit.org/changeset/131017&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739680</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-10-11 01:01:22 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Committed r131017: &lt;http://trac.webkit.org/changeset/131017&gt;

The new test fails on JSC platforms - https://bugs.webkit.org/show_bug.cgi?id=99001</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168013</attachid>
            <date>2012-10-10 09:22:53 -0700</date>
            <delta_ts>2012-10-10 09:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98917-20121010202152.patch</filename>
            <type>text/plain</type>
            <size>21552</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTIxNGMyMjEzZjNhMDk5
ODdhYmZjNDgzZDNjZDc0NjMzOTA2NWM2Zi4uZGExYzRlOTM0ZmVhYWFkOWYxZDRmMzU2OWQzNDUx
YTNmOGUzOGEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTEwICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgaW5zdHJ1bWVudCBIVE1MQ2FudmFzIGVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODkxNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGFsc28gaW5jbHVkZXMgbm9uIGludHJ1
c2l2ZSBpbnN0cnVtZW50YXRpb24gZm9yIHNraWEgY2xhc3Nlcy4KKworICAgICAgICBUZXN0OiBp
bnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYW52YXMuaHRtbAorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxDYW52YXNFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6
cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUJ1ZmZlckRhdGFTa2lhLmg6Cisg
ICAgICAgIChJbWFnZUJ1ZmZlckRhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGF0
YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9NZW1vcnlJbnN0cnVtZW50YXRpb25Ta2lhLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VCdWZm
ZXJEYXRhU2tpYS5oLgorICAgICAgICAocmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3NraWEvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYS5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUJ1ZmZl
ckRhdGFTa2lhLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFn
ZVNraWEuY3BwOgorCiAyMDEyLTEwLTEwICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBFbGVtZW50QXR0cmlidXRlRGF0YTogdGlnaHRlbiBtZW1iZXIgcGFja2lu
ZyBvbiA2NC1iaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggODFlZjNhOGM2YTJmYjQ1MWFhNWQwMTcw
OGJjMjNlNWE5MzAzMDMxMC4uYzhkNjgyYWFjYzY2YzkyYTExMTA5NzdmZDdlZDU0ZGViNDc3NTMw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTE4OSw2ICs1MTg5LDggQEAKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvSW50UG9pbnRTa2lhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9JbnRSZWN0U2tpYS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYS5jcHAnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUltYWdlU2tpYS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0aXZlSW1hZ2VTa2lhLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvT3BhcXVlUmVnaW9uU2tpYS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBlMWI5
ZjQ4YTE5ZTljZTYyMDYxNmFjNzUzN2NhYjY0N2Q2MTI0N2IzLi5mZmM2MTgyZjUzYzcyMDBkOWIw
YjFiMTMxODZjNjFmYTliYmNiMDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJIVE1MQ2FudmFzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1
ZGUgPHN0ZGlvLmg+CiAKQEAgLTYzMiw0ICs2MzMsMTYgQEAgQWZmaW5lVHJhbnNmb3JtIEhUTUxD
YW52YXNFbGVtZW50OjpiYXNlVHJhbnNmb3JtKCkgY29uc3QKICAgICByZXR1cm4gbV9pbWFnZUJ1
ZmZlci0+YmFzZVRyYW5zZm9ybSgpICogdHJhbnNmb3JtOwogfQogCit2b2lkIEhUTUxDYW52YXNF
bGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBIVE1MRWxlbWVudDo6cmVwb3J0
TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9vYnNl
cnZlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGV4dCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9pbWFnZUJ1ZmZlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250ZXh0U3RhdGVTYXZl
cik7CisgICAgaW5mby5hZGRNZW1iZXIobV9wcmVzZW50ZWRJbWFnZSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9jb3BpZWRJbWFnZSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaAppbmRleCBlODBkODU5NzkxYzgzZmRiYTMwNDZiZTIwOWUwOTI1NDA4ZmM5OGEz
Li42MzQzYjUwYWNmOTU1ODI4N2UzZDliNDFkYjliOWFhMWIyOWU4OTU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnRTaXpl
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKSB8
fCBQTEFURk9STShRVCkKICNkZWZpbmUgRGVmYXVsdEludGVycG9sYXRpb25RdWFsaXR5IEludGVy
cG9sYXRpb25NZWRpdW0KQEAgLTEzNyw2ICsxMzgsOCBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0K
IAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAppbmRleCA0NmYyZDE0Y2RjNjc1NGE0MzNhOWMx
NzI0NzRkMzNmNDQxODg5NDg1Li4xMzhkMDc4Y2ZjN2EzZjc3MjIwNjAzOTdhZGI5YjQ0MDVkMGRj
YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKIAogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTExMiw0ICsxMTMsMTEgQEAgYm9vbCBJbWFnZUJ1ZmZlcjo6Y29weVRvUGxhdGZvcm1UZXh0
dXJlKEdyYXBoaWNzQ29udGV4dDNEJiwgUGxhdGZvcm0zRE9iamVjdCwgR0MKIH0KICNlbmRpZgog
Cit2b2lkIEltYWdlQnVmZmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkltYWdlKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2RhdGEpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGV4dCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmlu
ZGV4IDA2YWM1Njc1N2ZlMjM0OWQyNTQxY2JmN2M2Yjc5MWI2MTQyZTVhODQuLmZlMGFlZTBmNjBm
ZTdkOTU1NjIzN2RiZGE3YWY0MjliOWUxY2VmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMTIxLDYgKzEyMSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIGNvcHlUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGlj
c0NvbnRleHQzRCYsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtLCBib29sLCBib29sKTsKIAor
ICAgICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsK
KwogICAgIHByaXZhdGU6CiAjaWYgVVNFKENHKQogICAgICAgICBOYXRpdmVJbWFnZVB0ciBjb3B5
TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weSA9IENvcHlCYWNraW5nU3RvcmUpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1h
Z2VCdWZmZXJEYXRhU2tpYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vSW1hZ2VCdWZmZXJEYXRhU2tpYS5oCmluZGV4IDZkNDljNTU3ODdmOGQ2MGQ2ZjBiZGI0
ZjYxODlmYzRiMDhhYWFiNmUuLjE2MGViMGZhYTQ4YjA0N2IzMDg5MzU4OTQzNTE2OGUyNzJmMmFm
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ltYWdlQnVmZmVyRGF0YVNraWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JbWFnZUJ1ZmZlckRhdGFTa2lhLmgKQEAgLTQyLDYgKzQyLDggQEAgY2xh
c3MgSW1hZ2VCdWZmZXJEYXRhIHsKIHB1YmxpYzoKICAgICBJbWFnZUJ1ZmZlckRhdGEoY29uc3Qg
SW50U2l6ZSYpOwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3Q7CisKICAgICBPd25QdHI8U2tDYW52YXM+IG1fY2FudmFzOwogICAgIFBsYXRmb3Jt
Q29udGV4dFNraWEgbV9wbGF0Zm9ybUNvbnRleHQ7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9JbWFnZUJ1ZmZlclNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCmluZGV4IDkwNTQ4MGQxMDBkNjFhNjc3YTQ2MmQ0NzIw
Y2E3YjZjOWU5MmZkOTMuLmViNzIzMzExYzczYTE3MjgxNDMxZGUwYjQ2MWNlZjRhZGIyZGVkMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VC
dWZmZXJTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0ltYWdlQnVmZmVyU2tpYS5jcHAKQEAgLTQyLDggKzQyLDEwIEBACiAjaW5jbHVkZSAiSW1hZ2VE
YXRhLmgiCiAjaW5jbHVkZSAiSlBFR0ltYWdlRW5jb2Rlci5oIgogI2luY2x1ZGUgIk1JTUVUeXBl
UmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb25Ta2lhLmgiCiAjaW5j
bHVkZSAiUE5HSW1hZ2VFbmNvZGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJTa0NvbG9yUHJpdi5oIgogI2lu
Y2x1ZGUgIlNrR3B1RGV2aWNlLmgiCkBAIC0zNzMsNiArMzc1LDE2IEBAIFN0cmluZyBJbWFnZUJ1
ZmZlcjo6dG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IGRvdWJsZSogcXVh
bGl0eSwgQ29vCiAgICAgcmV0dXJuICJkYXRhOiIgKyBtaW1lVHlwZSArICI7YmFzZTY0LCIgKyBi
YXNlNjREYXRhOwogfQogCit2b2lkIEltYWdlQnVmZmVyRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2NhbnZhcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wbGF0Zm9ybUNvbnRleHQpOworI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xheWVy
QnJpZGdlKTsKKyNlbmRpZgorfQorCiBTdHJpbmcgSW1hZ2VEYXRhVG9EYXRhVVJMKGNvbnN0IElt
YWdlRGF0YSYgaW1hZ2VEYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUq
IHF1YWxpdHkpCiB7CiAgICAgQVNTRVJUKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1h
Z2VNSU1FVHlwZUZvckVuY29kaW5nKG1pbWVUeXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL01lbW9yeUluc3RydW1lbnRhdGlvblNraWEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9NZW1vcnlJbnN0cnVtZW50
YXRpb25Ta2lhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzkzYzM1NjlkMWFiNWE1MWNkNDdiNGI5ZWQ4ODU0
OWUwNjNlNzkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9NZW1vcnlJbnN0cnVtZW50YXRpb25Ta2lhLmNwcApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvblNraWEu
aCIKKworI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVk
ZSAiU2tCaXRtYXAuaCIKKyNpbmNsdWRlICJTa0NhbnZhcy5oIgorI2luY2x1ZGUgIlNrRGV2aWNl
LmgiCisjaW5jbHVkZSAiU2tQaXhlbFJlZi5oIgorCit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNv
bnN0IFNrQml0bWFwKiBjb25zdCYgaW1hZ2UsIFdURjo6TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykKK3sKKyAgICBXVEY6Ok1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIGltYWdlKTsKKyAgICBTa1BpeGVsUmVmKiBwaXhlbFJlZiA9IGltYWdlLT5waXhlbFJl
ZigpOworICAgIGluZm8uYWRkTWVtYmVyKHBpeGVsUmVmKTsKKyAgICBpZiAocGl4ZWxSZWYpCisg
ICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKHBpeGVsUmVmLT5waXhlbHMoKSwgaW1hZ2UtPmdldFNp
emUoKSk7Cit9CisKK3ZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgU2tEZXZpY2UqIGNvbnN0
JiBkZXZpY2UsIFdURjo6TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKK3sKKyAg
ICBXVEY6Ok1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIGRldmljZSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIoY29uc3RfY2FzdDxTa0RldmljZSo+KGRldmljZSktPmFjY2Vzc0Jp
dG1hcChmYWxzZSkpOworfQorCit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFNrQ2FudmFz
KiBjb25zdCYgY2FudmFzLCBXVEY6Ok1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
Cit7CisgICAgV1RGOjpNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCBjYW52
YXMpOworICAgIGluZm8uYWRkTWVtYmVyKGNhbnZhcy0+Z2V0RGV2aWNlKCkpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9NZW1vcnlJbnN0cnVt
ZW50YXRpb25Ta2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL01l
bW9yeUluc3RydW1lbnRhdGlvblNraWEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmY4MWIwZDI3ZjRjYzAxNzI5
MTNhZjVjOTNmOTNiY2NhMjhiNDNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9NZW1vcnlJbnN0cnVtZW50YXRpb25Ta2lhLmgKQEAgLTAs
MCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYV9oCisjZGVmaW5lIE1l
bW9yeUluc3RydW1lbnRhdGlvblNraWFfaAorCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKKworY2xhc3MgU2tCaXRtYXA7CitjbGFzcyBTa0RldmljZTsKK2NsYXNz
IFNrQ2FudmFzOworCit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFNrQml0bWFwKiBjb25z
dCYsIFdURjo6TWVtb3J5T2JqZWN0SW5mbyopOwordm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25z
dCBTa0RldmljZSogY29uc3QmLCBXVEY6Ok1lbW9yeU9iamVjdEluZm8qKTsKK3ZvaWQgcmVwb3J0
TWVtb3J5VXNhZ2UoY29uc3QgU2tDYW52YXMqIGNvbnN0JiwgV1RGOjpNZW1vcnlPYmplY3RJbmZv
Kik7CisKKyNlbmRpZiAvLyAhZGVmaW5lZChNZW1vcnlJbnN0cnVtZW50YXRpb25Ta2lhX2gpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUlt
YWdlU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2
ZUltYWdlU2tpYS5jcHAKaW5kZXggOGRlOTUxMDY2MWNlODNhMDBhNTI2MGRjYzEwNTBkOGY0N2M3
MWE2Zi4uMTg2MmEyYWZjNmUzNTA0OTM2ZGNiYzkwM2NlNmYyNGQ0YWFmNTBhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFnZVNraWEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0aXZlSW1h
Z2VTa2lhLmNwcApAQCAtMzQsMjAgKzM0LDEyIEBACiAKICNpbmNsdWRlICJOYXRpdmVJbWFnZVNr
aWEuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUgIk1lbW9yeUlu
c3RydW1lbnRhdGlvblNraWEuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
U2tQaXhlbFJlZi5oIgogI2luY2x1ZGUgIlNraWFVdGlscy5oIgogCi12b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKGNvbnN0IFNrQml0bWFwKiBjb25zdCYgaW1hZ2UsIFdURjo6TWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykKLXsKLSAgICBXVEY6Ok1lbW9yeUNsYXNzSW5mbyBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIGltYWdlKTsKLSAgICBTa1BpeGVsUmVmKiBwaXhlbFJlZiA9IGltYWdl
LT5waXhlbFJlZigpOwotICAgIGluZm8uYWRkTWVtYmVyKHBpeGVsUmVmKTsKLSAgICBpZiAocGl4
ZWxSZWYpCi0gICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKHBpeGVsUmVmLT5waXhlbHMoKSwgaW1h
Z2UtPmdldFNpemUoKSk7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTmF0aXZlSW1hZ2VT
a2lhOjpOYXRpdmVJbWFnZVNraWEoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI1M2RiZDFkZjc2ZWVlOWIwZWYxNTk3Yzc3
MzU2ZDk0ZTdjYjczYTguLjRjYjQ2NWM3NjM4MmQxNzU4M2RiMDRkMGMyMDAwZTg2ZGJjNDk4NjIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMC0xMCAgSWx5YSBUaWtob25vdnNreSAgPGxv
aXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JIGluc3RydW1l
bnQgSFRNTENhbnZhcyBlbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTg5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJdCBhbHNvIGluY2x1ZGVzIG5vbiBpbnRydXNpdmUgaW5zdHJ1bWVudGF0
aW9uIGZvciBza2lhIGNsYXNzZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvbWVt
b3J5LWluc3RydW1lbnRhdGlvbi1jYWNoZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYWNoZWQtaW1hZ2Vz
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL21lbW9yeS1pbnN0cnVtZW50YXRp
b24tY2FudmFzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9tZW1v
cnktaW5zdHJ1bWVudGF0aW9uLXRlc3QuanM6IEFkZGVkLgorICAgICAgICAoaW5pdGlhbGl6ZV9N
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0Lkluc3BlY3RvclRlc3QuX21lbW9yeUJsb2NrU2l6ZSk6
CisgICAgICAgIChpbml0aWFsaXplX01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuSW5zcGVjdG9y
VGVzdC52YWxpZGF0ZU1lbW9yeUJsb2NrU2l6ZSk6CisgICAgICAgIChpbml0aWFsaXplX01lbW9y
eUluc3RydW1lbnRhdGlvblRlc3QpOgorCiAyMDEyLTEwLTEwICBBbGxhbiBTYW5kZmVsZCBKZW5z
ZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gRHVtcFJlbmRlclRy
ZWUgbmVlZHMgYSBiZWdpbkRyYWdXaXRoRmlsZXMgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9tZW1vcnktaW5zdHJ1bWVudGF0aW9uLWNh
Y2hlZC1pbWFnZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L21lbW9yeS1pbnN0cnVtZW50YXRpb24tY2FjaGVkLWltYWdlcy1leHBlY3RlZC50eHQKaW5kZXgg
MDdmZjU4Njc4OWQ1MjA2ZTNiZTVmYzEzYTk1N2QwYjM3MTczOGViMS4uMDVhNmE5NjBhZjcxOTQ2
ZTg1NGM4MjJmNGVlYzhlMjM3OTk1NmU3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL21lbW9yeS1pbnN0cnVtZW50YXRpb24tY2FjaGVkLWltYWdlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL21lbW9yeS1pbnN0cnVt
ZW50YXRpb24tY2FjaGVkLWltYWdlcy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBUaGlz
IHRlc3QgY2hlY2tzIHRoYXQgQ2FjaGVkSW1hZ2VzIHNpemUgcmVwb3J0ZWQgYnkgdGhlIG1lbW9y
eSBhZ2VudCBpbmNsdWRlcyBpbWFnZXMgZGVjb2RlZCBzaXplLiBCdWcgOTMzNjYKIAogCi1kaWRS
ZWNlaXZlTWVtb3J5U25hcHNob3QKLVBBU1M6IFBhZ2UuSW1hZ2Ugc2l6ZSBpcyBPSy4KK1BBU1M6
IGJsb2NrIHNpemUgZm9yIHBhdGggPSBbUHJvY2Vzc1ByaXZhdGVNZW1vcnksIFBhZ2UsIFBhZ2Uu
SW1hZ2VdIGlzIE9LLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYWNoZWQtaW1hZ2VzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYWNoZWQtaW1hZ2Vz
Lmh0bWwKaW5kZXggYjUyMDc3NTAyZjUxOGViMzdjMzhjNjBhZmEzYTFhYTVhNTE5ZGY3NS4uMDVm
NmMzZDc5ZTZiMjBjMWZiMWRkODlmZTRhNDM0ZmJkNGYyZWQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL21lbW9yeS1pbnN0cnVtZW50YXRpb24tY2FjaGVkLWlt
YWdlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9tZW1vcnktaW5z
dHJ1bWVudGF0aW9uLWNhY2hlZC1pbWFnZXMuaHRtbApAQCAtMSw2ICsxLDcgQEAKIDxodG1sPgog
PGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Im1lbW9yeS1pbnN0cnVtZW50YXRpb24t
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCiBmdW5jdGlvbiBkaXNwbGF5QW5kUnVuVGVz
dCgpCkBAIC0xMCw1NCArMTEsMTAgQEAgZnVuY3Rpb24gZGlzcGxheUFuZFJ1blRlc3QoKQogICAg
IHJ1blRlc3QoKTsKIH0KIAotCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBmdW5jdGlvbiBtZW1v
cnlCbG9ja1NpemUocGF0aCwgcm9vdCkKLSAgICB7Ci0gICAgICAgIHZhciBwYXRoUG9zID0gMDsK
LSAgICAgICAgdmFyIGNoaWxkcmVuID0gW3Jvb3RdOwotCi0gICAgICAgIHdoaWxlICh0cnVlKSB7
Ci0gICAgICAgICAgICB2YXIgbmFtZSA9IHBhdGhbcGF0aFBvcysrXTsKLSAgICAgICAgICAgIHZh
ciBjaGlsZCA9IG51bGw7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVu
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLm5hbWUgPT09
IG5hbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBhdGhQb3MgPT09IHBhdGgubGVuZ3Ro
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuW2ldLnNpemU7Ci0gICAg
ICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQgPSBj
aGlsZHJlbltpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKGNoaWxkKSB7Ci0gICAgICAgICAgICAgICAgY2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbjsK
LSAgICAgICAgICAgICAgICBpZiAoIWNoaWxkcmVuKSB7Ci0gICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KG5hbWUgKyAiIGhhcyBubyBjaGlsZHJlbiIpOwotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChuYW1lICsg
IiBub3QgZm91bmQiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGRp
ZFJlY2VpdmVNZW1vcnlTbmFwc2hvdChlcnJvciwgbWVtb3J5QmxvY2spCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90Iik7Ci0g
ICAgICAgIHZhciBpbWFnZXNTaXplID0gbWVtb3J5QmxvY2tTaXplKFsiUHJvY2Vzc1ByaXZhdGVN
ZW1vcnkiLCAiUGFnZSIsICJQYWdlLkltYWdlIl0sIG1lbW9yeUJsb2NrKTsKLSAgICAgICAgdmFy
IGpwZWdEZWNvZGVkU2l6ZUV4cGVjdGVkID0gMjAwMDAwMDA7Ci0gICAgICAgIGlmIChpbWFnZXNT
aXplID4ganBlZ0RlY29kZWRTaXplRXhwZWN0ZWQpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiUEFTUzogUGFnZS5JbWFnZSBzaXplIGlzIE9LLiIpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTDogUGFnZS5JbWFnZSBz
aXplIGlzIHRvbyBzbWFsbC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICB9Ci0KLSAgICBNZW1vcnlBZ2VudC5nZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9u
KGRpZFJlY2VpdmVNZW1vcnlTbmFwc2hvdC5iaW5kKHRoaXMpKTsKKyAgICB2YXIganBlZ0RlY29k
ZWRTaXplRXhwZWN0ZWQgPSAyMDAwMDAwMDsKKyAgICBJbnNwZWN0b3JUZXN0LnZhbGlkYXRlTWVt
b3J5QmxvY2tTaXplKFsiUHJvY2Vzc1ByaXZhdGVNZW1vcnkiLCAiUGFnZSIsICJQYWdlLkltYWdl
Il0sIGpwZWdEZWNvZGVkU2l6ZUV4cGVjdGVkKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1j
YW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9tZW1vcnktaW5zdHJ1
bWVudGF0aW9uLWNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyYjMxN2YyOTFmYmUzNjViNWNjZjEw
ZGFkZjE3ZGY3ZjA0NDI1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYW52YXMuaHRtbApAQCAtMCwwICsx
LDMyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJtZW1vcnkt
aW5zdHJ1bWVudGF0aW9uLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24g
ZGlzcGxheUFuZFJ1blRlc3QoKQoreworICAgIHZhciBjYW52YXNDb250ZXh0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7CisgICAgY2FudmFzQ29u
dGV4dC5maWxsUmVjdCgwLCAwLCAxMDI0LCAxMDI0KTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgcnVuVGVzdCgpOworfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgY2FudmFzSW1hZ2VCdWZmZXJFeHBlY3RlZCA9
IDQwMDAwMDA7CisgICAgSW5zcGVjdG9yVGVzdC52YWxpZGF0ZU1lbW9yeUJsb2NrU2l6ZShbIlBy
b2Nlc3NQcml2YXRlTWVtb3J5IiwgIlBhZ2UiLCAiUGFnZS5JbWFnZSJdLCBjYW52YXNJbWFnZUJ1
ZmZlckV4cGVjdGVkKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0i
ZGlzcGxheUFuZFJ1blRlc3QoKSI+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBwYWdlJ3Mg
aW1hZ2Ugc2l6ZSByZXBvcnRlZCBieSB0aGUgbWVtb3J5IGFnZW50IGluY2x1ZGVzIHNpemUgb2Yg
Y2FudmFzIGludGVybmFsIGltYWdlIGJ1ZmZlci4KKzwvcD4KKzxjYW52YXMgaWQ9ImNhbnZhcyIg
d2lkdGg9IjEwMjQiIGhlaWdodD0iMTAyNCI+PC9jYW52YXM+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1l
bnRhdGlvbi10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL21lbW9yeS1p
bnN0cnVtZW50YXRpb24tdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQ4NTRlYWY2NmI5ZjAzYjMyZGVj
ZjRkMTRjNjljNzI2NzVkMmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL21lbW9yeS1pbnN0cnVtZW50YXRpb24tdGVzdC5qcwpAQCAtMCwwICsxLDUy
IEBACit2YXIgaW5pdGlhbGl6ZV9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0ID0gZnVuY3Rpb24o
KSB7CisKK0luc3BlY3RvclRlc3QuX21lbW9yeUJsb2NrU2l6ZSA9IGZ1bmN0aW9uKHBhdGgsIHJv
b3QpCit7CisgICAgdmFyIHBhdGhQb3MgPSAwOworICAgIHZhciBjaGlsZHJlbiA9IFtyb290XTsK
KworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIHZhciBuYW1lID0gcGF0aFtwYXRoUG9zKytd
OworICAgICAgICB2YXIgY2hpbGQgPSBudWxsOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY2hpbGRyZW5baV0ubmFt
ZSA9PT0gbmFtZSkgeworICAgICAgICAgICAgICAgIGlmIChwYXRoUG9zID09PSBwYXRoLmxlbmd0
aCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuW2ldLnNpemU7CisgICAgICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkID0gY2hpbGRyZW5baV07
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY2hpbGQpIHsKKyAgICAgICAgICAgIGNoaWxk
cmVuID0gY2hpbGQuY2hpbGRyZW47CisgICAgICAgICAgICBpZiAoIWNoaWxkcmVuKSB7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQobmFtZSArICIgaGFzIG5vIGNoaWxk
cmVuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQobmFtZSArICIg
bm90IGZvdW5kIik7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIC0xOworfTsKKworSW5zcGVjdG9yVGVzdC52YWxpZGF0ZU1lbW9yeUJsb2NrU2l6
ZSA9IGZ1bmN0aW9uKHBhdGgsIGV4cGVjdGVkU2l6ZSkKK3sKKyAgICBmdW5jdGlvbiBkaWRSZWNl
aXZlTWVtb3J5U25hcHNob3QoZXJyb3IsIG1lbW9yeUJsb2NrKQorICAgIHsKKyAgICAgICAgdmFy
IHNpemUgPSBJbnNwZWN0b3JUZXN0Ll9tZW1vcnlCbG9ja1NpemUocGF0aCwgbWVtb3J5QmxvY2sp
OworICAgICAgICBpZiAoc2l6ZSA+IGV4cGVjdGVkU2l6ZSkKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJQQVNTOiBibG9jayBzaXplIGZvciBwYXRoID0gWyIgKyBwYXRoLmpv
aW4oIiwgIikgKyAiXSBpcyBPSy4iKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTDogYmxvY2sgc2l6ZSBmb3IgcGF0aCA9IFsiICsgcGF0
aC5qb2luKCIsICIpICsgIl0gaXMgdG9vIHNtYWxsLiIpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoImV4cGVjdGVkIGJsb2NrIHNpemUgaXMgIiArIGV4cGVjdGVkU2l6ZSAr
ICIgYWN0dWFsIGlzICIgKyBzaXplKTsKKyAgICAgICAgfQorICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIE1lbW9yeUFnZW50LmdldFByb2Nlc3NNZW1v
cnlEaXN0cmlidXRpb24oZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90LmJpbmQodGhpcykpOworfTsK
KworfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168014</attachid>
            <date>2012-10-10 09:31:02 -0700</date>
            <delta_ts>2012-10-10 09:53:06 -0700</delta_ts>
            <desc>for try bots</desc>
            <filename>bug-98917-20121010203001.patch</filename>
            <type>text/plain</type>
            <size>22037</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTIxNGMyMjEzZjNhMDk5
ODdhYmZjNDgzZDNjZDc0NjMzOTA2NWM2Zi4uZGExYzRlOTM0ZmVhYWFkOWYxZDRmMzU2OWQzNDUx
YTNmOGUzOGEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTEwICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgaW5zdHJ1bWVudCBIVE1MQ2FudmFzIGVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODkxNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGFsc28gaW5jbHVkZXMgbm9uIGludHJ1
c2l2ZSBpbnN0cnVtZW50YXRpb24gZm9yIHNraWEgY2xhc3Nlcy4KKworICAgICAgICBUZXN0OiBp
bnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYW52YXMuaHRtbAorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxDYW52YXNFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6
cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUJ1ZmZlckRhdGFTa2lhLmg6Cisg
ICAgICAgIChJbWFnZUJ1ZmZlckRhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGF0
YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9NZW1vcnlJbnN0cnVtZW50YXRpb25Ta2lhLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VCdWZm
ZXJEYXRhU2tpYS5oLgorICAgICAgICAocmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3NraWEvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYS5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUJ1ZmZl
ckRhdGFTa2lhLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFn
ZVNraWEuY3BwOgorCiAyMDEyLTEwLTEwICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBFbGVtZW50QXR0cmlidXRlRGF0YTogdGlnaHRlbiBtZW1iZXIgcGFja2lu
ZyBvbiA2NC1iaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggODFlZjNhOGM2YTJmYjQ1MWFhNWQwMTcw
OGJjMjNlNWE5MzAzMDMxMC4uYzhkNjgyYWFjYzY2YzkyYTExMTA5NzdmZDdlZDU0ZGViNDc3NTMw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTE4OSw2ICs1MTg5LDggQEAKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvSW50UG9pbnRTa2lhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9JbnRSZWN0U2tpYS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYS5jcHAnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUltYWdlU2tpYS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0aXZlSW1hZ2VTa2lhLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvT3BhcXVlUmVnaW9uU2tpYS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBlMWI5
ZjQ4YTE5ZTljZTYyMDYxNmFjNzUzN2NhYjY0N2Q2MTI0N2IzLi5mZmM2MTgyZjUzYzcyMDBkOWIw
YjFiMTMxODZjNjFmYTliYmNiMDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJIVE1MQ2FudmFzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1
ZGUgPHN0ZGlvLmg+CiAKQEAgLTYzMiw0ICs2MzMsMTYgQEAgQWZmaW5lVHJhbnNmb3JtIEhUTUxD
YW52YXNFbGVtZW50OjpiYXNlVHJhbnNmb3JtKCkgY29uc3QKICAgICByZXR1cm4gbV9pbWFnZUJ1
ZmZlci0+YmFzZVRyYW5zZm9ybSgpICogdHJhbnNmb3JtOwogfQogCit2b2lkIEhUTUxDYW52YXNF
bGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBIVE1MRWxlbWVudDo6cmVwb3J0
TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9vYnNl
cnZlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGV4dCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9pbWFnZUJ1ZmZlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250ZXh0U3RhdGVTYXZl
cik7CisgICAgaW5mby5hZGRNZW1iZXIobV9wcmVzZW50ZWRJbWFnZSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9jb3BpZWRJbWFnZSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaAppbmRleCBlODBkODU5NzkxYzgzZmRiYTMwNDZiZTIwOWUwOTI1NDA4ZmM5OGEz
Li42MzQzYjUwYWNmOTU1ODI4N2UzZDliNDFkYjliOWFhMWIyOWU4OTU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnRTaXpl
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKSB8
fCBQTEFURk9STShRVCkKICNkZWZpbmUgRGVmYXVsdEludGVycG9sYXRpb25RdWFsaXR5IEludGVy
cG9sYXRpb25NZWRpdW0KQEAgLTEzNyw2ICsxMzgsOCBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0K
IAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAppbmRleCA0NmYyZDE0Y2RjNjc1NGE0MzNhOWMx
NzI0NzRkMzNmNDQxODg5NDg1Li4xMzhkMDc4Y2ZjN2EzZjc3MjIwNjAzOTdhZGI5YjQ0MDVkMGRj
YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKIAogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTExMiw0ICsxMTMsMTEgQEAgYm9vbCBJbWFnZUJ1ZmZlcjo6Y29weVRvUGxhdGZvcm1UZXh0
dXJlKEdyYXBoaWNzQ29udGV4dDNEJiwgUGxhdGZvcm0zRE9iamVjdCwgR0MKIH0KICNlbmRpZgog
Cit2b2lkIEltYWdlQnVmZmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkltYWdlKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2RhdGEpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGV4dCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmlu
ZGV4IDA2YWM1Njc1N2ZlMjM0OWQyNTQxY2JmN2M2Yjc5MWI2MTQyZTVhODQuLmZlMGFlZTBmNjBm
ZTdkOTU1NjIzN2RiZGE3YWY0MjliOWUxY2VmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMTIxLDYgKzEyMSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIGNvcHlUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGlj
c0NvbnRleHQzRCYsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtLCBib29sLCBib29sKTsKIAor
ICAgICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsK
KwogICAgIHByaXZhdGU6CiAjaWYgVVNFKENHKQogICAgICAgICBOYXRpdmVJbWFnZVB0ciBjb3B5
TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weSA9IENvcHlCYWNraW5nU3RvcmUpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1h
Z2VCdWZmZXJEYXRhU2tpYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vSW1hZ2VCdWZmZXJEYXRhU2tpYS5oCmluZGV4IDZkNDljNTU3ODdmOGQ2MGQ2ZjBiZGI0
ZjYxODlmYzRiMDhhYWFiNmUuLjE2MGViMGZhYTQ4YjA0N2IzMDg5MzU4OTQzNTE2OGUyNzJmMmFm
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ltYWdlQnVmZmVyRGF0YVNraWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JbWFnZUJ1ZmZlckRhdGFTa2lhLmgKQEAgLTQyLDYgKzQyLDggQEAgY2xh
c3MgSW1hZ2VCdWZmZXJEYXRhIHsKIHB1YmxpYzoKICAgICBJbWFnZUJ1ZmZlckRhdGEoY29uc3Qg
SW50U2l6ZSYpOwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3Q7CisKICAgICBPd25QdHI8U2tDYW52YXM+IG1fY2FudmFzOwogICAgIFBsYXRmb3Jt
Q29udGV4dFNraWEgbV9wbGF0Zm9ybUNvbnRleHQ7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9JbWFnZUJ1ZmZlclNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCmluZGV4IDkwNTQ4MGQxMDBkNjFhNjc3YTQ2MmQ0NzIw
Y2E3YjZjOWU5MmZkOTMuLjgyYzM2N2QyOTk3YmNlZjQ2ODRkODExYTcxYTBjZmVlYTUwNDA4ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VC
dWZmZXJTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0ltYWdlQnVmZmVyU2tpYS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJJbWFnZURh
dGEuaCIKICNpbmNsdWRlICJKUEVHSW1hZ2VFbmNvZGVyLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVS
ZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvblNraWEuaCIKICNpbmNs
dWRlICJQTkdJbWFnZUVuY29kZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgi
CiAjaW5jbHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKQEAgLTM3Myw2ICszNzQsMTYg
QEAgU3RyaW5nIEltYWdlQnVmZmVyOjp0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
Y29uc3QgZG91YmxlKiBxdWFsaXR5LCBDb28KICAgICByZXR1cm4gImRhdGE6IiArIG1pbWVUeXBl
ICsgIjtiYXNlNjQsIiArIGJhc2U2NERhdGE7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fY2FudmFzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3BsYXRm
b3JtQ29udGV4dCk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGluZm8u
YWRkTWVtYmVyKG1fbGF5ZXJCcmlkZ2UpOworI2VuZGlmCit9CisKIFN0cmluZyBJbWFnZURhdGFU
b0RhdGFVUkwoY29uc3QgSW1hZ2VEYXRhJiBpbWFnZURhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGNvbnN0IGRvdWJsZSogcXVhbGl0eSkKIHsKICAgICBBU1NFUlQoTUlNRVR5cGVSZWdpc3Ry
eTo6aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlRm9yRW5jb2RpbmcobWltZVR5cGUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L01lbW9yeUluc3RydW1lbnRhdGlvblNraWEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3OTNjMzU2OWQxYWI1
YTUxY2Q0N2I0YjllZDg4NTQ5ZTA2M2U3OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL01lbW9yeUluc3RydW1lbnRhdGlvblNraWEuY3Bw
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5z
dHJ1bWVudGF0aW9uU2tpYS5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKKyNpbmNsdWRlICJTa0JpdG1hcC5oIgorI2luY2x1ZGUgIlNrQ2FudmFzLmgiCisj
aW5jbHVkZSAiU2tEZXZpY2UuaCIKKyNpbmNsdWRlICJTa1BpeGVsUmVmLmgiCisKK3ZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoY29uc3QgU2tCaXRtYXAqIGNvbnN0JiBpbWFnZSwgV1RGOjpNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQoreworICAgIFdURjo6TWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgaW1hZ2UpOworICAgIFNrUGl4ZWxSZWYqIHBpeGVsUmVm
ID0gaW1hZ2UtPnBpeGVsUmVmKCk7CisgICAgaW5mby5hZGRNZW1iZXIocGl4ZWxSZWYpOworICAg
IGlmIChwaXhlbFJlZikKKyAgICAgICAgaW5mby5hZGRSYXdCdWZmZXIocGl4ZWxSZWYtPnBpeGVs
cygpLCBpbWFnZS0+Z2V0U2l6ZSgpKTsKK30KKwordm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25z
dCBTa0RldmljZSogY29uc3QmIGRldmljZSwgV1RGOjpNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKQoreworICAgIFdURjo6TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgZGV2aWNlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihjb25zdF9jYXN0PFNrRGV2aWNlKj4o
ZGV2aWNlKS0+YWNjZXNzQml0bWFwKGZhbHNlKSk7Cit9CisKK3ZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoY29uc3QgU2tDYW52YXMqIGNvbnN0JiBjYW52YXMsIFdURjo6TWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykKK3sKKyAgICBXVEY6Ok1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIGNhbnZhcyk7CisgICAgaW5mby5hZGRNZW1iZXIoY2FudmFzLT5nZXREZXZp
Y2UoKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL01lbW9yeUluc3RydW1lbnRhdGlvblNraWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2
ZjgxYjBkMjdmNGNjMDE3MjkxM2FmNWM5M2Y5M2JjY2EyOGI0M2UKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL01lbW9yeUluc3RydW1lbnRh
dGlvblNraWEuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZW1vcnlJbnN0cnVtZW50YXRpb25T
a2lhX2gKKyNkZWZpbmUgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYV9oCisKKyNpbmNsdWRlICJQ
bGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorCitjbGFzcyBTa0JpdG1hcDsKK2NsYXNz
IFNrRGV2aWNlOworY2xhc3MgU2tDYW52YXM7CisKK3ZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29u
c3QgU2tCaXRtYXAqIGNvbnN0JiwgV1RGOjpNZW1vcnlPYmplY3RJbmZvKik7Cit2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKGNvbnN0IFNrRGV2aWNlKiBjb25zdCYsIFdURjo6TWVtb3J5T2JqZWN0SW5m
byopOwordm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBTa0NhbnZhcyogY29uc3QmLCBXVEY6
Ok1lbW9yeU9iamVjdEluZm8qKTsKKworI2VuZGlmIC8vICFkZWZpbmVkKE1lbW9yeUluc3RydW1l
bnRhdGlvblNraWFfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3NraWEvTmF0aXZlSW1hZ2VTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvTmF0aXZlSW1hZ2VTa2lhLmNwcAppbmRleCA4ZGU5NTEwNjYxY2U4M2EwMGE1
MjYwZGNjMTA1MGQ4ZjQ3YzcxYTZmLi4xODYyYTJhZmM2ZTM1MDQ5MzZkY2JjOTAzY2U2ZjI0ZDRh
YWY1MGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L05hdGl2ZUltYWdlU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9OYXRpdmVJbWFnZVNraWEuY3BwCkBAIC0zNCwyMCArMzQsMTIgQEAKIAogI2luY2x1
ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisj
aW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2tpYS5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJTa1BpeGVsUmVmLmgiCiAjaW5jbHVkZSAiU2tpYVV0aWxzLmgiCiAK
LXZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgU2tCaXRtYXAqIGNvbnN0JiBpbWFnZSwgV1RG
OjpNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQotewotICAgIFdURjo6TWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgaW1hZ2UpOwotICAgIFNrUGl4ZWxSZWYq
IHBpeGVsUmVmID0gaW1hZ2UtPnBpeGVsUmVmKCk7Ci0gICAgaW5mby5hZGRNZW1iZXIocGl4ZWxS
ZWYpOwotICAgIGlmIChwaXhlbFJlZikKLSAgICAgICAgaW5mby5hZGRSYXdCdWZmZXIocGl4ZWxS
ZWYtPnBpeGVscygpLCBpbWFnZS0+Z2V0U2l6ZSgpKTsKLX0KLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBOYXRpdmVJbWFnZVNraWE6Ok5hdGl2ZUltYWdlU2tpYSgpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjUzZGJkMWRm
NzZlZWU5YjBlZjE1OTdjNzczNTZkOTRlN2NiNzNhOC4uNGNiNDY1Yzc2MzgyZDE3NTgzZGIwNGQw
YzIwMDBlODZkYmM0OTg2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTEwICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgaW5zdHJ1bWVudCBIVE1MQ2FudmFzIGVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODkxNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGFsc28gaW5jbHVkZXMgbm9uIGludHJ1
c2l2ZSBpbnN0cnVtZW50YXRpb24gZm9yIHNraWEgY2xhc3Nlcy4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9wcm9maWxlci9tZW1vcnktaW5zdHJ1bWVudGF0aW9uLWNhY2hlZC1pbWFnZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9tZW1vcnktaW5zdHJ1bWVudGF0
aW9uLWNhY2hlZC1pbWFnZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvbWVt
b3J5LWluc3RydW1lbnRhdGlvbi1jYW52YXMuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3Byb2ZpbGVyL21lbW9yeS1pbnN0cnVtZW50YXRpb24tdGVzdC5qczogQWRkZWQuCisgICAg
ICAgIChpbml0aWFsaXplX01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuSW5zcGVjdG9yVGVzdC5f
bWVtb3J5QmxvY2tTaXplKToKKyAgICAgICAgKGluaXRpYWxpemVfTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVGVzdC5JbnNwZWN0b3JUZXN0LnZhbGlkYXRlTWVtb3J5QmxvY2tTaXplKToKKyAgICAgICAg
KGluaXRpYWxpemVfTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCk6CisKIDIwMTItMTAtMTAgIEFs
bGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CiAKICAgICAgICAg
W1F0XSBEdW1wUmVuZGVyVHJlZSBuZWVkcyBhIGJlZ2luRHJhZ1dpdGhGaWxlcyBpbXBsZW1lbnRh
dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL21lbW9yeS1p
bnN0cnVtZW50YXRpb24tY2FjaGVkLWltYWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYWNoZWQtaW1hZ2VzLWV4
cGVjdGVkLnR4dAppbmRleCAwN2ZmNTg2Nzg5ZDUyMDZlM2JlNWZjMTNhOTU3ZDBiMzcxNzM4ZWIx
Li4wNWE2YTk2MGFmNzE5NDZlODU0YzgyMmY0ZWVjOGUyMzc5OTU2ZTdlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYWNo
ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYWNoZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dApAQCAt
MSw2ICsxLDUgQEAKIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBDYWNoZWRJbWFnZXMgc2l6ZSByZXBv
cnRlZCBieSB0aGUgbWVtb3J5IGFnZW50IGluY2x1ZGVzIGltYWdlcyBkZWNvZGVkIHNpemUuIEJ1
ZyA5MzM2NgogCiAKLWRpZFJlY2VpdmVNZW1vcnlTbmFwc2hvdAotUEFTUzogUGFnZS5JbWFnZSBz
aXplIGlzIE9LLgorUEFTUzogYmxvY2sgc2l6ZSBmb3IgcGF0aCA9IFtQcm9jZXNzUHJpdmF0ZU1l
bW9yeSwgUGFnZSwgUGFnZS5JbWFnZV0gaXMgT0suCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9tZW1vcnktaW5zdHJ1bWVudGF0aW9uLWNhY2hlZC1pbWFnZXMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9tZW1vcnktaW5zdHJ1bWVudGF0
aW9uLWNhY2hlZC1pbWFnZXMuaHRtbAppbmRleCBiNTIwNzc1MDJmNTE4ZWIzN2MzOGM2MGFmYTNh
MWFhNWE1MTlkZjc1Li4wNWY2YzNkNzllNmIyMGMxZmIxZGQ4OWZlNGE0MzRmYmQ0ZjJlZDdhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1l
bnRhdGlvbi1jYWNoZWQtaW1hZ2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL21lbW9yeS1pbnN0cnVtZW50YXRpb24tY2FjaGVkLWltYWdlcy5odG1sCkBAIC0xLDYg
KzEsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ibWVtb3J5
LWluc3RydW1lbnRhdGlvbi10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGZ1bmN0aW9u
IGRpc3BsYXlBbmRSdW5UZXN0KCkKQEAgLTEwLDU0ICsxMSwxMCBAQCBmdW5jdGlvbiBkaXNwbGF5
QW5kUnVuVGVzdCgpCiAgICAgcnVuVGVzdCgpOwogfQogCi0KIGZ1bmN0aW9uIHRlc3QoKQogewot
ICAgIGZ1bmN0aW9uIG1lbW9yeUJsb2NrU2l6ZShwYXRoLCByb290KQotICAgIHsKLSAgICAgICAg
dmFyIHBhdGhQb3MgPSAwOwotICAgICAgICB2YXIgY2hpbGRyZW4gPSBbcm9vdF07Ci0KLSAgICAg
ICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICAgIHZhciBuYW1lID0gcGF0aFtwYXRoUG9zKytd
OwotICAgICAgICAgICAgdmFyIGNoaWxkID0gbnVsbDsKLSAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICBpZiAoY2hp
bGRyZW5baV0ubmFtZSA9PT0gbmFtZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAocGF0aFBv
cyA9PT0gcGF0aC5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRy
ZW5baV0uc2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBjaGlsZCA9IGNoaWxkcmVuW2ldOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAoY2hpbGQpIHsKLSAgICAgICAgICAgICAgICBjaGlsZHJlbiA9
IGNoaWxkLmNoaWxkcmVuOwotICAgICAgICAgICAgICAgIGlmICghY2hpbGRyZW4pIHsKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQobmFtZSArICIgaGFzIG5vIGNo
aWxkcmVuIik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KG5hbWUgKyAiIG5vdCBmb3VuZCIpOwotICAgICAgICAgICAgICAgIHJldHVybiAt
MTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90KGVycm9yLCBtZW1vcnlCbG9j
aykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJkaWRSZWNlaXZlTWVt
b3J5U25hcHNob3QiKTsKLSAgICAgICAgdmFyIGltYWdlc1NpemUgPSBtZW1vcnlCbG9ja1NpemUo
WyJQcm9jZXNzUHJpdmF0ZU1lbW9yeSIsICJQYWdlIiwgIlBhZ2UuSW1hZ2UiXSwgbWVtb3J5Qmxv
Y2spOwotICAgICAgICB2YXIganBlZ0RlY29kZWRTaXplRXhwZWN0ZWQgPSAyMDAwMDAwMDsKLSAg
ICAgICAgaWYgKGltYWdlc1NpemUgPiBqcGVnRGVjb2RlZFNpemVFeHBlY3RlZCkKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJQQVNTOiBQYWdlLkltYWdlIHNpemUgaXMgT0su
Iik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJG
QUlMOiBQYWdlLkltYWdlIHNpemUgaXMgdG9vIHNtYWxsLiIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIE1lbW9yeUFnZW50LmdldFByb2Nlc3NN
ZW1vcnlEaXN0cmlidXRpb24oZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90LmJpbmQodGhpcykpOwor
ICAgIHZhciBqcGVnRGVjb2RlZFNpemVFeHBlY3RlZCA9IDIwMDAwMDAwOworICAgIEluc3BlY3Rv
clRlc3QudmFsaWRhdGVNZW1vcnlCbG9ja1NpemUoWyJQcm9jZXNzUHJpdmF0ZU1lbW9yeSIsICJQ
YWdlIiwgIlBhZ2UuSW1hZ2UiXSwganBlZ0RlY29kZWRTaXplRXhwZWN0ZWQpOwogfQogCiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9tZW1vcnkt
aW5zdHJ1bWVudGF0aW9uLWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi1jYW52YXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmUwODY1ODFiMmJjNWY0MTRjMTMyNDgzMDlkNmUxMjhiY2I0NDZhZjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3Ry
dW1lbnRhdGlvbi1jYW52YXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0
IGNoZWNrcyB0aGF0IHBhZ2UncyBpbWFnZSBzaXplIHJlcG9ydGVkIGJ5IHRoZSBtZW1vcnkgYWdl
bnQgaW5jbHVkZXMgc2l6ZSBvZiBjYW52YXMgaW50ZXJuYWwgaW1hZ2UgYnVmZmVyLgorCisgUEFT
UzogYmxvY2sgc2l6ZSBmb3IgcGF0aCA9IFtQcm9jZXNzUHJpdmF0ZU1lbW9yeSwgUGFnZSwgUGFn
ZS5JbWFnZV0gaXMgT0suCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9tZW1vcnktaW5zdHJ1bWVudGF0aW9uLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL21lbW9yeS1pbnN0cnVtZW50YXRpb24tY2FudmFzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzJiMzE3ZjI5MWZiZTM2NWI1Y2NmMTBkYWRmMTdkZjdmMDQ0MjU1MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9tZW1vcnktaW5zdHJ1bWVu
dGF0aW9uLWNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Im1lbW9yeS1pbnN0cnVtZW50YXRpb24tdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBkaXNwbGF5QW5kUnVuVGVzdCgpCit7CisgICAg
dmFyIGNhbnZhc0NvbnRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIikuZ2V0
Q29udGV4dCgiMmQiKTsKKyAgICBjYW52YXNDb250ZXh0LmZpbGxSZWN0KDAsIDAsIDEwMjQsIDEw
MjQpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZh
ciBjYW52YXNJbWFnZUJ1ZmZlckV4cGVjdGVkID0gNDAwMDAwMDsKKyAgICBJbnNwZWN0b3JUZXN0
LnZhbGlkYXRlTWVtb3J5QmxvY2tTaXplKFsiUHJvY2Vzc1ByaXZhdGVNZW1vcnkiLCAiUGFnZSIs
ICJQYWdlLkltYWdlIl0sIGNhbnZhc0ltYWdlQnVmZmVyRXhwZWN0ZWQpOworfQorCis8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJkaXNwbGF5QW5kUnVuVGVzdCgpIj4KKzxwPgor
VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHBhZ2UncyBpbWFnZSBzaXplIHJlcG9ydGVkIGJ5IHRoZSBt
ZW1vcnkgYWdlbnQgaW5jbHVkZXMgc2l6ZSBvZiBjYW52YXMgaW50ZXJuYWwgaW1hZ2UgYnVmZmVy
LgorPC9wPgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0Ij48
L2NhbnZhcz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9tZW1vcnktaW5zdHJ1bWVudGF0aW9uLXRlc3QuanMgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlvbi10ZXN0LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIyZDg1NGVhZjY2YjlmMDNiMzJkZWNmNGQxNGM2OWM3MjY3NWQyZDgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1l
bnRhdGlvbi10ZXN0LmpzCkBAIC0wLDAgKzEsNTIgQEAKK3ZhciBpbml0aWFsaXplX01lbW9yeUlu
c3RydW1lbnRhdGlvblRlc3QgPSBmdW5jdGlvbigpIHsKKworSW5zcGVjdG9yVGVzdC5fbWVtb3J5
QmxvY2tTaXplID0gZnVuY3Rpb24ocGF0aCwgcm9vdCkKK3sKKyAgICB2YXIgcGF0aFBvcyA9IDA7
CisgICAgdmFyIGNoaWxkcmVuID0gW3Jvb3RdOworCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAg
ICAgdmFyIG5hbWUgPSBwYXRoW3BhdGhQb3MrK107CisgICAgICAgIHZhciBjaGlsZCA9IG51bGw7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5uYW1lID09PSBuYW1lKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHBhdGhQb3MgPT09IHBhdGgubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY2hpbGRyZW5baV0uc2l6ZTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlm
IChjaGlsZCkgeworICAgICAgICAgICAgY2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbjsKKyAgICAg
ICAgICAgIGlmICghY2hpbGRyZW4pIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdChuYW1lICsgIiBoYXMgbm8gY2hpbGRyZW4iKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChuYW1lICsgIiBub3QgZm91bmQiKTsKKyAgICAgICAgICAgIHJl
dHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gLTE7Cit9OworCitJbnNwZWN0
b3JUZXN0LnZhbGlkYXRlTWVtb3J5QmxvY2tTaXplID0gZnVuY3Rpb24ocGF0aCwgZXhwZWN0ZWRT
aXplKQoreworICAgIGZ1bmN0aW9uIGRpZFJlY2VpdmVNZW1vcnlTbmFwc2hvdChlcnJvciwgbWVt
b3J5QmxvY2spCisgICAgeworICAgICAgICB2YXIgc2l6ZSA9IEluc3BlY3RvclRlc3QuX21lbW9y
eUJsb2NrU2l6ZShwYXRoLCBtZW1vcnlCbG9jayk7CisgICAgICAgIGlmIChzaXplID4gZXhwZWN0
ZWRTaXplKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlBBU1M6IGJsb2Nr
IHNpemUgZm9yIHBhdGggPSBbIiArIHBhdGguam9pbigiLCAiKSArICJdIGlzIE9LLiIpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMOiBi
bG9jayBzaXplIGZvciBwYXRoID0gWyIgKyBwYXRoLmpvaW4oIiwgIikgKyAiXSBpcyB0b28gc21h
bGwuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXhwZWN0ZWQgYmxv
Y2sgc2l6ZSBpcyAiICsgZXhwZWN0ZWRTaXplICsgIiBhY3R1YWwgaXMgIiArIHNpemUpOworICAg
ICAgICB9CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorCisg
ICAgTWVtb3J5QWdlbnQuZ2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbihkaWRSZWNlaXZlTWVt
b3J5U25hcHNob3QuYmluZCh0aGlzKSk7Cit9OworCit9Owo=
</data>
<flag name="review"
          id="180876"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>