<?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>39590</bug_id>
          
          <creation_ts>2010-05-24 03:22:14 -0700</creation_ts>
          <short_desc>Provide DeviceOrientation LayoutTests</short_desc>
          <delta_ts>2010-09-07 05:12:13 -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>WebCore Misc.</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>39588</dependson>
    
    <dependson>39589</dependson>
    
    <dependson>43181</dependson>
          <blocked>30335</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hans</cc>
    
    <cc>jorlow</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229684</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-24 03:22:14 -0700</bug_when>
    <thetext>Provide DeviceOrientation LayoutTests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274908</commentid>
    <comment_count>1</comment_count>
      <attachid>66694</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-07 01:53:14 -0700</bug_when>
    <thetext>Created attachment 66694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274909</commentid>
    <comment_count>2</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-07 01:54:31 -0700</bug_when>
    <thetext>Hans, did you have any other test cases in mind?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274921</commentid>
    <comment_count>3</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-09-07 02:25:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Hans, did you have any other test cases in mind?

This looks very good. Perhaps we should test pushing an orientation through where one or more of the angles is NULL to make sure an implementation doesn&apos;t forget to handle that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274942</commentid>
    <comment_count>4</comment_count>
      <attachid>66700</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-07 03:22:31 -0700</bug_when>
    <thetext>Created attachment 66700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274960</commentid>
    <comment_count>5</comment_count>
      <attachid>66705</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-07 04:31:42 -0700</bug_when>
    <thetext>Created attachment 66705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274961</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-07 04:32:56 -0700</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274962</commentid>
    <comment_count>7</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-07 04:34:35 -0700</bug_when>
    <thetext>Updated patch which makes sure we only ever pass boolean or numeric values to layoutTestController.setMockDeviceOrientation().

Hans, if this looks good to you, I&apos;ll cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274967</commentid>
    <comment_count>8</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-09-07 04:53:02 -0700</bug_when>
    <thetext>Looks good. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274971</commentid>
    <comment_count>9</comment_count>
      <attachid>66705</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-07 05:12:09 -0700</bug_when>
    <thetext>Comment on attachment 66705
Patch

Clearing flags on attachment: 66705

Committed r66876: &lt;http://trac.webkit.org/changeset/66876&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274972</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-07 05:12:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66694</attachid>
            <date>2010-09-07 01:53:14 -0700</date>
            <delta_ts>2010-09-07 03:22:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39590-20100907095311.patch</filename>
            <type>text/plain</type>
            <size>17427</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY2ODY3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMDcgIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFByb3ZpZGUgRGV2aWNlT3JpZW50YXRpb24gTGF5b3V0VGVzdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTkwCisKKyAgICAg
ICAgQWRkcyBzZXZlcmFsIG5ldyBEZXZpY2VPcmllbnRhdGlvbiB0ZXN0cy4gQWxzbyBmaXhlcyBz
b21lIHN0eWxlIGluIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZmFzdC9kb20vRGV2aWNl
T3JpZW50YXRpb24vYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5l
ci1mcm9tLWNhbGxiYWNrLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL211bHRpcGxlLWZyYW1lcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVz
dHMvbXVsdGlwbGUtZnJhbWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VP
cmllbnRhdGlvbi9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1zeW5jaHJvbm91cy1ldmVudHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3Rz
L25vLXN5bmNocm9ub3VzLWV2ZW50cy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRGV2
aWNlT3JpZW50YXRpb24vbm8tc3luY2hyb25vdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vdXBkYXRlcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvdXBk
YXRlcy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vdXBk
YXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0RldmljZU9yaWVu
dGF0aW9uL3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVyYXRpb24uanM6CisgICAgICAgICogZmFzdC9k
b20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL2NyZWF0ZS1ldmVudC5qczoKKyAgICAg
ICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvb3B0aW9uYWwtZXZl
bnQtcHJvcGVydGllcy5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9z
Y3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LmpzOgorCiAyMDEwLTA5LTA3ICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFp
LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vYWRkLWxpc3Rl
bmVyLWZyb20tY2FsbGJhY2stZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9y
aWVudGF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgZXZlbnQgbGlz
dGVuZXIgZnJvbSBhIGNhbGxiYWNrIHdvcmtzIGFzIGV4cGVjdGVkLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFscGhhIGlzIG1v
Y2tFdmVudC5hbHBoYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEgaXMgbW9ja0V2
ZW50LmJldGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1tYSBpcyBtb2NrRXZlbnQu
Z2FtbWEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYSBpcyBtb2NrRXZlbnQuYWxw
aGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5iZXRhIGlzIG1vY2tFdmVudC5iZXRhCitQ
QVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuZ2FtbWEgaXMgbW9ja0V2ZW50LmdhbW1hCitQQVNT
IGRldmljZU9yaWVudGF0aW9uRXZlbnQuYWxwaGEgaXMgbW9ja0V2ZW50LmFscGhhCitQQVNTIGRl
dmljZU9yaWVudGF0aW9uRXZlbnQuYmV0YSBpcyBtb2NrRXZlbnQuYmV0YQorUEFTUyBkZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmdhbW1hIGlzIG1vY2tFdmVudC5nYW1tYQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vYWRk
LWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYWRkLWxpc3RlbmVy
LWZyb20tY2FsbGJhY2suanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbXVsdGlwbGUtZnJhbWVzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbXVsdGlwbGUtZnJhbWVzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdXNpbmcgRGV2aWNl
T3JpZW50YXRpb24gZnJvbSBtdWx0aXBsZSBmcmFtZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuYWxwaGEgaXMgbW9ja0V2ZW50
LmFscGhhCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuYmV0YSBpcyBtb2NrRXZlbnQuYmV0
YQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmdhbW1hIGlzIG1vY2tFdmVudC5nYW1tYQor
UEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFscGhhIGlzIG1vY2tFdmVudC5hbHBoYQorUEFT
UyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEgaXMgbW9ja0V2ZW50LmJldGEKK1BBU1MgZGV2
aWNlT3JpZW50YXRpb25FdmVudC5nYW1tYSBpcyBtb2NrRXZlbnQuZ2FtbWEKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9tdWx0aXBsZS1mcmFtZXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9tdWx0aXBsZS1m
cmFtZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9y
aWVudGF0aW9uL211bHRpcGxlLWZyYW1lcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEy
IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL211bHRpcGxlLWZyYW1lcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9u
by1zeW5jaHJvbm91cy1ldmVudHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL25vLXN5bmNocm9ub3VzLWV2ZW50cy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9uby1zeW5jaHJvbm91cy1ldmVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGV2ZW50cyBhcmUgbmV2ZXIgZmlyZWQgc3ljbmhy
b25vdXNseSBmcm9tIGEgY2FsbCB0byB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigpLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBoYXNBZGRFdmVudExpc3RlbmVyUmV0dXJu
ZWQgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL25vLXN5
bmNocm9ub3VzLWV2ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0RldmljZU9yaWVudGF0aW9uL25vLXN5bmNocm9ub3VzLWV2ZW50cy5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tc3luY2hyb25v
dXMtZXZlbnRzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
bm8tc3luY2hyb25vdXMtZXZlbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3VwZGF0ZXMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVu
dGF0aW9uL3VwZGF0ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vdXBkYXRlcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgdXBkYXRlcyB0byB0aGUgb3JpZW50YXRp
b24gY2F1c2VzIG5ldyBldmVudHMgdG8gZmlyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYSBpcyBtb2NrRXZlbnQuYWxw
aGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5iZXRhIGlzIG1vY2tFdmVudC5iZXRhCitQ
QVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuZ2FtbWEgaXMgbW9ja0V2ZW50LmdhbW1hCitQQVNT
IGRldmljZU9yaWVudGF0aW9uRXZlbnQuYWxwaGEgaXMgbW9ja0V2ZW50LmFscGhhCitQQVNTIGRl
dmljZU9yaWVudGF0aW9uRXZlbnQuYmV0YSBpcyBtb2NrRXZlbnQuYmV0YQorUEFTUyBkZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmdhbW1hIGlzIG1vY2tFdmVudC5nYW1tYQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3VwZGF0ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi91cGRhdGVzLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi91cGRhdGVzLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdXBkYXRlcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJh
Y2suanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRp
b24vc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3Rz
L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4
IEBACitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgZXZlbnQgbGlzdGVuZXIg
ZnJvbSBhIGNhbGxiYWNrIHdvcmtzIGFzIGV4cGVjdGVkLicpOworCit2YXIgbW9ja0V2ZW50Owor
ZnVuY3Rpb24gc2V0TW9ja09yaWVudGF0aW9uKGFscGhhLCBiZXRhLCBnYW1tYSkgeworICAgIG1v
Y2tFdmVudCA9IHthbHBoYTogYWxwaGEsIGJldGE6IGJldGEsIGdhbW1hOiBnYW1tYX07CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0TW9ja0RldmljZU9yaWVudGF0aW9uKHRydWUsIG1vY2tFdmVudC5hbHBoYSwgdHJ1
ZSwgbW9ja0V2ZW50LmJldGEsIHRydWUsIG1vY2tFdmVudC5nYW1tYSk7CisgICAgZWxzZQorICAg
ICAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIExheW91dFRl
c3RDb250cm9sbGVyJyk7Cit9CisKK3ZhciBkZXZpY2VPcmllbnRhdGlvbkV2ZW50OworZnVuY3Rp
b24gY2hlY2tPcmllbnRhdGlvbihldmVudCkgeworICAgIGRldmljZU9yaWVudGF0aW9uRXZlbnQg
PSBldmVudDsKKyAgICBzaG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYScsICdt
b2NrRXZlbnQuYWxwaGEnKTsKKyAgICBzaG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5i
ZXRhJywgJ21vY2tFdmVudC5iZXRhJyk7CisgICAgc2hvdWxkQmUoJ2RldmljZU9yaWVudGF0aW9u
RXZlbnQuZ2FtbWEnLCAnbW9ja0V2ZW50LmdhbW1hJyk7Cit9CisKK3ZhciBmaXJzdExpc3RlbmVy
RXZlbnRzID0gMDsKK2Z1bmN0aW9uIGZpcnN0TGlzdGVuZXIoZXZlbnQpIHsKKyAgICBjaGVja09y
aWVudGF0aW9uKGV2ZW50KTsKKyAgICBpZiAoKytmaXJzdExpc3RlbmVyRXZlbnRzID09IDEpCisg
ICAgICAgIHNldE1vY2tPcmllbnRhdGlvbigxMS4xLCAyMi4yLCAzMy4zKTsKKyAgICBlbHNlIGlm
IChmaXJzdExpc3RlbmVyRXZlbnRzID4gMikKKyAgICAgICAgdGVzdEZhaWxlZCgnVG9vIG1hbnkg
ZXZlbnRzIGZvciBmaXJzdCBsaXN0ZW5lci4nKTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignZGV2aWNlb3JpZW50YXRpb24nLCBzZWNvbmRMaXN0ZW5lcik7CisgICAgbWF5YmVGaW5pc2hU
ZXN0KCk7Cit9CisKK3ZhciBzZWNvbmRMaXN0ZW5lckV2ZW50cyA9IDA7CitmdW5jdGlvbiBzZWNv
bmRMaXN0ZW5lcihldmVudCkgeworICAgIGNoZWNrT3JpZW50YXRpb24oZXZlbnQpOworICAgIGlm
ICgrK3NlY29uZExpc3RlbmVyRXZlbnRzID4gMSkKKyAgICAgICAgdGVzdEZhaWxlZCgnVG9vIG1h
bnkgZXZlbnRzIGZvciBzZWNvbmQgbGlzdGVuZXIuJyk7CisgICAgbWF5YmVGaW5pc2hUZXN0KCk7
Cit9CisKK2Z1bmN0aW9uIG1heWJlRmluaXNoVGVzdCgpIHsKKyAgICBpZiAoZmlyc3RMaXN0ZW5l
ckV2ZW50cyA9PSAyICYmIHNlY29uZExpc3RlbmVyRXZlbnRzID09IDEpCisgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworfQorCitzZXRNb2NrT3JpZW50YXRpb24oMS4xLCAyLjIsIDMuMyk7Cit3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignZGV2aWNlb3JpZW50YXRpb24nLCBmaXJzdExpc3RlbmVyKTsK
Kword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9z
Y3JpcHQtdGVzdHMvYmFzaWMtb3BlcmF0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVyYXRpb24u
anMJKHJldmlzaW9uIDY2ODUzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50
YXRpb24vc2NyaXB0LXRlc3RzL2Jhc2ljLW9wZXJhdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAt
MSw0ICsxLDQgQEAKLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmFzaWMgb3BlcmF0aW9uIG9mIERl
dmljZU9yaWVudGF0aW9uIHVzaW5nIHRoZSBtb2NrLiIpOworZGVzY3JpcHRpb24oJ1Rlc3RzIHRo
ZSBiYXNpYyBvcGVyYXRpb24gb2YgRGV2aWNlT3JpZW50YXRpb24gdXNpbmcgdGhlIG1vY2suJyk7
CiAKIHZhciBtb2NrQWxwaGEgPSAxLjE7CiB2YXIgbW9ja0JldGEgPSAyLjI7CkBAIC0xMCw3ICsx
MCw3IEBAIGVsc2UKICAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQg
dGhlIExheW91dFRlc3RDb250cm9sbGVyJyk7CiAKIHZhciBkZXZpY2VPcmllbnRhdGlvbkV2ZW50
Owotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24o
ZSkgeword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgZnVuY3Rp
b24oZSkgewogICAgIGRldmljZU9yaWVudGF0aW9uRXZlbnQgPSBlOwogICAgIHNob3VsZEJlKCdk
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFscGhhJywgJ21vY2tBbHBoYScpOwogICAgIHNob3VsZEJl
KCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEnLCAnbW9ja0JldGEnKTsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9jcmVhdGUtZXZl
bnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRp
b24vc2NyaXB0LXRlc3RzL2NyZWF0ZS1ldmVudC5qcwkocmV2aXNpb24gNjY4NTMpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRlLWV2
ZW50LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgZG9jdW1lbnQuY3JlYXRlRXZlbnQoKSB3b3JrcyB3aXRoIERldmljZU9yaWVudGF0aW9u
RXZlbnQuIik7CitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBkb2N1bWVudC5jcmVhdGVFdmVudCgp
IHdvcmtzIHdpdGggRGV2aWNlT3JpZW50YXRpb25FdmVudC4nKTsKIAogdmFyIGV2ZW50ID0gZG9j
dW1lbnQuY3JlYXRlRXZlbnQoJ0RldmljZU9yaWVudGF0aW9uRXZlbnQnKTsKIApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL211bHRpcGxl
LWZyYW1lcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9zY3JpcHQtdGVzdHMvbXVsdGlwbGUtZnJhbWVzLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL211bHRp
cGxlLWZyYW1lcy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MyBAQAorZGVzY3JpcHRpb24o
J1Rlc3RzIHVzaW5nIERldmljZU9yaWVudGF0aW9uIGZyb20gbXVsdGlwbGUgZnJhbWVzLicpOwor
Cit2YXIgZGV2aWNlT3JpZW50YXRpb25FdmVudDsKK2Z1bmN0aW9uIGNoZWNrT3JpZW50YXRpb24o
ZXZlbnQpIHsKKyAgICBkZXZpY2VPcmllbnRhdGlvbkV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxk
QmUoJ2RldmljZU9yaWVudGF0aW9uRXZlbnQuYWxwaGEnLCAnbW9ja0V2ZW50LmFscGhhJyk7Cisg
ICAgc2hvdWxkQmUoJ2RldmljZU9yaWVudGF0aW9uRXZlbnQuYmV0YScsICdtb2NrRXZlbnQuYmV0
YScpOworICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmdhbW1hJywgJ21vY2tF
dmVudC5nYW1tYScpOworfQorCit2YXIgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IGZhbHNlOwor
ZnVuY3Rpb24gbWFpbkZyYW1lTGlzdGVuZXIoZXZlbnQpIHsKKyAgICBjaGVja09yaWVudGF0aW9u
KGV2ZW50KTsKKyAgICBoYXNNYWluRnJhbWVFdmVudEZpcmVkID0gdHJ1ZTsKKyAgICBtYXliZUZp
bmlzaFRlc3QoKTsKK30KKwordmFyIGhhc0NoaWxkRnJhbWVFdmVudEZpcmVkID0gZmFsc2U7Citm
dW5jdGlvbiBjaGlsZEZyYW1lTGlzdGVuZXIoZXZlbnQpIHsKKyAgICBjaGVja09yaWVudGF0aW9u
KGV2ZW50KTsKKyAgICBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCA9IHRydWU7CisgICAgbWF5YmVG
aW5pc2hUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG1heWJlRmluaXNoVGVzdCgpIHsKKyAgICBpZiAo
aGFzTWFpbkZyYW1lRXZlbnRGaXJlZCAmJiBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCkKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3ZhciBtb2NrRXZlbnQgPSB7YWxwaGE6IDEuMSwgYmV0
YTogMi4yLCBnYW1tYTogMy4zfTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja0RldmljZU9yaWVudGF0aW9uKHRydWUsIG1v
Y2tFdmVudC5hbHBoYSwgdHJ1ZSwgbW9ja0V2ZW50LmJldGEsIHRydWUsIG1vY2tFdmVudC5nYW1t
YSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRo
ZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOworCit2YXIgY2hpbGRGcmFtZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjaGlsZEZy
YW1lKTsKK2NoaWxkRnJhbWUuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkZXZpY2Vv
cmllbnRhdGlvbicsIGNoaWxkRnJhbWVMaXN0ZW5lcik7CisKK3dpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdkZXZpY2VvcmllbnRhdGlvbicsIG1haW5GcmFtZUxpc3RlbmVyKTsKKword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMv
bm8tc3luY2hyb25vdXMtZXZlbnRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9uby1zeW5jaHJvbm91cy1ldmVudHMu
anMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlv
bi9zY3JpcHQtdGVzdHMvbm8tc3luY2hyb25vdXMtZXZlbnRzLmpzCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE2IEBACitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBldmVudHMgYXJlIG5ldmVyIGZp
cmVkIHN5Y25ocm9ub3VzbHkgZnJvbSBhIGNhbGwgdG8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
KS4nKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRNb2NrRGV2aWNlT3JpZW50YXRpb24odHJ1ZSwgMS4xLCB0cnVlLCAyLjIs
IHRydWUsIDMuMyk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3
aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOworCit2YXIgaGFzQWRkRXZlbnRMaXN0
ZW5lclJldHVybmVkID0gZmFsc2U7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZGV2aWNlb3Jp
ZW50YXRpb24nLCBmdW5jdGlvbigpIHsKKyAgICBzaG91bGRCZVRydWUoJ2hhc0FkZEV2ZW50TGlz
dGVuZXJSZXR1cm5lZCcpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CitoYXNBZGRFdmVudExp
c3RlbmVyUmV0dXJuZWQgPSB0cnVlOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3
aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9vcHRpb25hbC1ldmVudC1wcm9wZXJ0
aWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0
aW9uL3NjcmlwdC10ZXN0cy9vcHRpb25hbC1ldmVudC1wcm9wZXJ0aWVzLmpzCShyZXZpc2lvbiA2
Njg1MykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10
ZXN0cy9vcHRpb25hbC1ldmVudC1wcm9wZXJ0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQg
KzEsNCBAQAotZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIG9mIERl
dmljZU9yaWVudGF0aW9uRXZlbnQuIEVhY2ggcHJvcGVydHkgc2hvdWxkIGJlIG51bGwgaWYgbm90
IHNldCwgb3Igc2V0IHRvIG51bGwgb3IgdW5kZWZpbmVkLiIpOworZGVzY3JpcHRpb24oJ1Rlc3Rz
IHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIG9mIERldmljZU9yaWVudGF0aW9uRXZlbnQuIEVhY2gg
cHJvcGVydHkgc2hvdWxkIGJlIG51bGwgaWYgbm90IHNldCwgb3Igc2V0IHRvIG51bGwgb3IgdW5k
ZWZpbmVkLicpOwogCiB2YXIgZXZlbnQ7CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0Rl
dmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy91cGRhdGVzLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy91cGRhdGVz
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRp
b24vc2NyaXB0LXRlc3RzL3VwZGF0ZXMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzcgQEAK
K2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhlIG9yaWVudGF0aW9uIGNhdXNl
cyBuZXcgZXZlbnRzIHRvIGZpcmUuJyk7CisKK3ZhciBtb2NrRXZlbnQ7CitmdW5jdGlvbiBzZXRN
b2NrT3JpZW50YXRpb24oYWxwaGEsIGJldGEsIGdhbW1hKSB7CisgICAgbW9ja0V2ZW50ID0ge2Fs
cGhhOiBhbHBoYSwgYmV0YTogYmV0YSwgZ2FtbWE6IGdhbW1hfTsKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNb2Nr
RGV2aWNlT3JpZW50YXRpb24odHJ1ZSwgbW9ja0V2ZW50LmFscGhhLCB0cnVlLCBtb2NrRXZlbnQu
YmV0YSwgdHJ1ZSwgbW9ja0V2ZW50LmdhbW1hKTsKKyAgICBlbHNlCisgICAgICAgIGRlYnVnKCdU
aGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXIn
KTsKK30KKwordmFyIGRldmljZU9yaWVudGF0aW9uRXZlbnQ7CitmdW5jdGlvbiBjaGVja09yaWVu
dGF0aW9uKGV2ZW50KSB7CisgICAgZGV2aWNlT3JpZW50YXRpb25FdmVudCA9IGV2ZW50OworICAg
IHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFscGhhJywgJ21vY2tFdmVudC5hbHBo
YScpOworICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEnLCAnbW9ja0V2
ZW50LmJldGEnKTsKKyAgICBzaG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1tYScs
ICdtb2NrRXZlbnQuZ2FtbWEnKTsKK30KKworZnVuY3Rpb24gZmlyc3RMaXN0ZW5lcihldmVudCkg
eworICAgIGNoZWNrT3JpZW50YXRpb24oZXZlbnQpOworICAgIHdpbmRvdy5yZW1vdmVFdmVudExp
c3RlbmVyKCdkZXZpY2VvcmllbnRhdGlvbicsIGZpcnN0TGlzdGVuZXIpOworCisgICAgc2V0TW9j
a09yaWVudGF0aW9uKDExLjEsIDIyLjIsIDMzLjMpOworICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdkZXZpY2VvcmllbnRhdGlvbicsIHVwZGF0ZUxpc3RlbmVyKTsKK30KKworZnVuY3Rpb24g
dXBkYXRlTGlzdGVuZXIoZXZlbnQpIHsKKyAgICBjaGVja09yaWVudGF0aW9uKGV2ZW50KTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2V0TW9ja09yaWVudGF0aW9uKDEuMSwgMi4yLCAzLjMp
Oword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgZmlyc3RMaXN0
ZW5lcik7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50
YXRpb24vc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvd2luZG93LXBy
b3BlcnR5LmpzCShyZXZpc2lvbiA2Njg1MykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTEsOSArMSw5IEBACi1kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUgd2luZG93LkRl
dmljZU9yaWVudGF0aW9uRXZlbnQgYW5kIHdpbmRvdy5vbmRldmljZW9yaWVudGF0aW9uIHByb3Bl
cnRpZXMgYXJlIHByZXNlbnQuIik7CitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCB0aGUgd2luZG93
LkRldmljZU9yaWVudGF0aW9uRXZlbnQgYW5kIHdpbmRvdy5vbmRldmljZW9yaWVudGF0aW9uIHBy
b3BlcnRpZXMgYXJlIHByZXNlbnQuJyk7CiAKIGZ1bmN0aW9uIGhhc0RldmljZU9yaWVudGF0aW9u
RXZlbnRQcm9wZXJ0eSgpCiB7CiAgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gd2luZG93KSB7Ci0g
ICAgICAgIGlmIChwcm9wZXJ0eSA9PSAiRGV2aWNlT3JpZW50YXRpb25FdmVudCIpCisgICAgICAg
IGlmIChwcm9wZXJ0eSA9PSAnRGV2aWNlT3JpZW50YXRpb25FdmVudCcpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTgsNyArMTgsNyBAQCBz
aG91bGRCZVRydWUoIndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgnRGV2CiBmdW5jdGlvbiBoYXNPbkRl
dmljZU9yaWVudGF0aW9uUHJvcGVydHkoKQogewogICAgIGZvciAodmFyIHByb3BlcnR5IGluIHdp
bmRvdykgewotICAgICAgICBpZiAocHJvcGVydHkgPT0gIm9uZGV2aWNlb3JpZW50YXRpb24iKQor
ICAgICAgICBpZiAocHJvcGVydHkgPT0gJ29uZGV2aWNlb3JpZW50YXRpb24nKQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66700</attachid>
            <date>2010-09-07 03:22:31 -0700</date>
            <delta_ts>2010-09-07 04:33:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39590-20100907112229.patch</filename>
            <type>text/plain</type>
            <size>21618</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY2ODY3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMDktMDcgIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFByb3ZpZGUgRGV2aWNlT3JpZW50YXRpb24gTGF5b3V0VGVzdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTkwCisKKyAgICAg
ICAgQWRkcyBzZXZlcmFsIG5ldyBEZXZpY2VPcmllbnRhdGlvbiB0ZXN0cy4gQWxzbyBmaXhlcyBz
b21lIHN0eWxlIGluIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZmFzdC9kb20vRGV2aWNl
T3JpZW50YXRpb24vYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5l
ci1mcm9tLWNhbGxiYWNrLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL211bHRpcGxlLWZyYW1lcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVz
dHMvbXVsdGlwbGUtZnJhbWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VP
cmllbnRhdGlvbi9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1zeW5jaHJvbm91cy1ldmVudHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3Rz
L25vLXN5bmNocm9ub3VzLWV2ZW50cy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRGV2
aWNlT3JpZW50YXRpb24vbm8tc3luY2hyb25vdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbnVsbC12YWx1ZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3Rz
L251bGwtdmFsdWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRh
dGlvbi9udWxsLXZhbHVlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0RldmljZU9yaWVudGF0aW9uL3VwZGF0ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL3VwZGF0ZXMuanM6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3VwZGF0ZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMv
YmFzaWMtb3BlcmF0aW9uLmpzOgorICAgICAgICAqIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9u
L3NjcmlwdC10ZXN0cy9jcmVhdGUtZXZlbnQuanM6CisgICAgICAgICogZmFzdC9kb20vRGV2aWNl
T3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL29wdGlvbmFsLWV2ZW50LXByb3BlcnRpZXMuanM6Cisg
ICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL3dpbmRvdy1w
cm9wZXJ0eS5qczoKKwogMjAxMC0wOS0wNyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9hZGQtbGlzdGVu
ZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTgg
QEAKK1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50IGxpc3RlbmVyIGZyb20gYSBjYWxsYmFj
ayB3b3JrcyBhcyBleHBlY3RlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYSBpcyBtb2NrRXZlbnQuYWxwaGEKK1BBU1Mg
ZGV2aWNlT3JpZW50YXRpb25FdmVudC5iZXRhIGlzIG1vY2tFdmVudC5iZXRhCitQQVNTIGRldmlj
ZU9yaWVudGF0aW9uRXZlbnQuZ2FtbWEgaXMgbW9ja0V2ZW50LmdhbW1hCitQQVNTIGRldmljZU9y
aWVudGF0aW9uRXZlbnQuYWxwaGEgaXMgbW9ja0V2ZW50LmFscGhhCitQQVNTIGRldmljZU9yaWVu
dGF0aW9uRXZlbnQuYmV0YSBpcyBtb2NrRXZlbnQuYmV0YQorUEFTUyBkZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmdhbW1hIGlzIG1vY2tFdmVudC5nYW1tYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmFscGhhIGlzIG1vY2tFdmVudC5hbHBoYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmJldGEgaXMgbW9ja0V2ZW50LmJldGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1t
YSBpcyBtb2NrRXZlbnQuZ2FtbWEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRh
dGlvbi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxi
YWNrLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L0RldmljZU9yaWVudGF0aW9uL211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbXVsdGlwbGUtZnJh
bWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0Rl
dmljZU9yaWVudGF0aW9uL211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHVzaW5nIERldmljZU9yaWVudGF0aW9uIGZyb20gbXVs
dGlwbGUgZnJhbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmFscGhhIGlzIG1vY2tFdmVudC5hbHBoYQorUEFTUyBkZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmJldGEgaXMgbW9ja0V2ZW50LmJldGEKK1BBU1MgZGV2aWNlT3JpZW50
YXRpb25FdmVudC5nYW1tYSBpcyBtb2NrRXZlbnQuZ2FtbWEKK1BBU1MgZGV2aWNlT3JpZW50YXRp
b25FdmVudC5hbHBoYSBpcyBtb2NrRXZlbnQuYWxwaGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25F
dmVudC5iZXRhIGlzIG1vY2tFdmVudC5iZXRhCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQu
Z2FtbWEgaXMgbW9ja0V2ZW50LmdhbW1hCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3Jp
ZW50YXRpb24vbXVsdGlwbGUtZnJhbWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbXVsdGlwbGUtZnJhbWVzLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9tdWx0aXBsZS1m
cmFtZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9tdWx0
aXBsZS1mcmFtZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tc3luY2hyb25vdXMtZXZlbnRz
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VP
cmllbnRhdGlvbi9uby1zeW5jaHJvbm91cy1ldmVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tc3luY2hyb25v
dXMtZXZlbnRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorVGVz
dHMgdGhhdCBldmVudHMgYXJlIG5ldmVyIGZpcmVkIHN5Y25ocm9ub3VzbHkgZnJvbSBhIGNhbGwg
dG8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgaGFzQWRkRXZlbnRMaXN0ZW5lclJldHVybmVkIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1zeW5jaHJvbm91cy1ldmVudHMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9u
by1zeW5jaHJvbm91cy1ldmVudHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL0RldmljZU9yaWVudGF0aW9uL25vLXN5bmNocm9ub3VzLWV2ZW50cy5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL25vLXN5bmNocm9ub3VzLWV2ZW50
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9udWxsLXZhbHVlcy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbnVsbC12YWx1
ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2
aWNlT3JpZW50YXRpb24vbnVsbC12YWx1ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIxIEBACitUZXN0cyB1c2luZyBudWxsIHZhbHVlcyBmb3Igc29tZSBvZiB0aGUgZXZl
bnQgcHJvcGVydGllcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZGV2
aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYSBpcyBtb2NrRXZlbnQuYWxwaGEKK1BBU1MgZGV2aWNl
T3JpZW50YXRpb25FdmVudC5iZXRhIGlzIG1vY2tFdmVudC5iZXRhCitQQVNTIGRldmljZU9yaWVu
dGF0aW9uRXZlbnQuZ2FtbWEgaXMgbW9ja0V2ZW50LmdhbW1hCitQQVNTIGRldmljZU9yaWVudGF0
aW9uRXZlbnQuYWxwaGEgaXMgbW9ja0V2ZW50LmFscGhhCitQQVNTIGRldmljZU9yaWVudGF0aW9u
RXZlbnQuYmV0YSBpcyBtb2NrRXZlbnQuYmV0YQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmdhbW1hIGlzIG1vY2tFdmVudC5nYW1tYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFs
cGhhIGlzIG1vY2tFdmVudC5hbHBoYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEg
aXMgbW9ja0V2ZW50LmJldGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1tYSBpcyBt
b2NrRXZlbnQuZ2FtbWEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYSBpcyBtb2Nr
RXZlbnQuYWxwaGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5iZXRhIGlzIG1vY2tFdmVu
dC5iZXRhCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuZ2FtbWEgaXMgbW9ja0V2ZW50Lmdh
bW1hCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbnVsbC12YWx1ZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlv
bi9udWxsLXZhbHVlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
RGV2aWNlT3JpZW50YXRpb24vbnVsbC12YWx1ZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9udWxsLXZhbHVlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi91
cGRhdGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9E
ZXZpY2VPcmllbnRhdGlvbi91cGRhdGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3VwZGF0ZXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhl
IG9yaWVudGF0aW9uIGNhdXNlcyBuZXcgZXZlbnRzIHRvIGZpcmUuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuYWxwaGEgaXMgbW9j
a0V2ZW50LmFscGhhCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuYmV0YSBpcyBtb2NrRXZl
bnQuYmV0YQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmdhbW1hIGlzIG1vY2tFdmVudC5n
YW1tYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFscGhhIGlzIG1vY2tFdmVudC5hbHBo
YQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEgaXMgbW9ja0V2ZW50LmJldGEKK1BB
U1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1tYSBpcyBtb2NrRXZlbnQuZ2FtbWEKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi91cGRhdGVzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vdXBkYXRlcy5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24v
dXBkYXRlcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Vw
ZGF0ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5lci1m
cm9tLWNhbGxiYWNrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5qcwko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3Nj
cmlwdC10ZXN0cy9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0OCBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50
IGxpc3RlbmVyIGZyb20gYSBjYWxsYmFjayB3b3JrcyBhcyBleHBlY3RlZC4nKTsKKwordmFyIG1v
Y2tFdmVudDsKK2Z1bmN0aW9uIHNldE1vY2tPcmllbnRhdGlvbihhbHBoYSwgYmV0YSwgZ2FtbWEp
IHsKKyAgICBtb2NrRXZlbnQgPSB7YWxwaGE6IGFscGhhLCBiZXRhOiBiZXRhLCBnYW1tYTogZ2Ft
bWF9OworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbih0cnVlLCBtb2NrRXZlbnQu
YWxwaGEsIHRydWUsIG1vY2tFdmVudC5iZXRhLCB0cnVlLCBtb2NrRXZlbnQuZ2FtbWEpOworICAg
IGVsc2UKKyAgICAgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRo
ZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOworfQorCit2YXIgZGV2aWNlT3JpZW50YXRpb25FdmVu
dDsKK2Z1bmN0aW9uIGNoZWNrT3JpZW50YXRpb24oZXZlbnQpIHsKKyAgICBkZXZpY2VPcmllbnRh
dGlvbkV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmUoJ2RldmljZU9yaWVudGF0aW9uRXZlbnQu
YWxwaGEnLCAnbW9ja0V2ZW50LmFscGhhJyk7CisgICAgc2hvdWxkQmUoJ2RldmljZU9yaWVudGF0
aW9uRXZlbnQuYmV0YScsICdtb2NrRXZlbnQuYmV0YScpOworICAgIHNob3VsZEJlKCdkZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmdhbW1hJywgJ21vY2tFdmVudC5nYW1tYScpOworfQorCit2YXIgZmly
c3RMaXN0ZW5lckV2ZW50cyA9IDA7CitmdW5jdGlvbiBmaXJzdExpc3RlbmVyKGV2ZW50KSB7Cisg
ICAgY2hlY2tPcmllbnRhdGlvbihldmVudCk7CisgICAgaWYgKCsrZmlyc3RMaXN0ZW5lckV2ZW50
cyA9PSAxKQorICAgICAgICBzZXRNb2NrT3JpZW50YXRpb24oMTEuMSwgMjIuMiwgMzMuMyk7Cisg
ICAgZWxzZSBpZiAoZmlyc3RMaXN0ZW5lckV2ZW50cyA+IDIpCisgICAgICAgIHRlc3RGYWlsZWQo
J1RvbyBtYW55IGV2ZW50cyBmb3IgZmlyc3QgbGlzdGVuZXIuJyk7CisgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgc2Vjb25kTGlzdGVuZXIpOworICAgIG1h
eWJlRmluaXNoVGVzdCgpOworfQorCit2YXIgc2Vjb25kTGlzdGVuZXJFdmVudHMgPSAwOworZnVu
Y3Rpb24gc2Vjb25kTGlzdGVuZXIoZXZlbnQpIHsKKyAgICBjaGVja09yaWVudGF0aW9uKGV2ZW50
KTsKKyAgICBpZiAoKytzZWNvbmRMaXN0ZW5lckV2ZW50cyA+IDEpCisgICAgICAgIHRlc3RGYWls
ZWQoJ1RvbyBtYW55IGV2ZW50cyBmb3Igc2Vjb25kIGxpc3RlbmVyLicpOworICAgIG1heWJlRmlu
aXNoVGVzdCgpOworfQorCitmdW5jdGlvbiBtYXliZUZpbmlzaFRlc3QoKSB7CisgICAgaWYgKGZp
cnN0TGlzdGVuZXJFdmVudHMgPT0gMiAmJiBzZWNvbmRMaXN0ZW5lckV2ZW50cyA9PSAxKQorICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2V0TW9ja09yaWVudGF0aW9uKDEuMSwgMi4yLCAz
LjMpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgZmlyc3RM
aXN0ZW5lcik7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3Jp
ZW50YXRpb24vc2NyaXB0LXRlc3RzL2Jhc2ljLW9wZXJhdGlvbi5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvYmFzaWMt
b3BlcmF0aW9uLmpzCShyZXZpc2lvbiA2Njg1MykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0Rl
dmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVyYXRpb24uanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw0IEBACi1kZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJhc2ljIG9wZXJh
dGlvbiBvZiBEZXZpY2VPcmllbnRhdGlvbiB1c2luZyB0aGUgbW9jay4iKTsKK2Rlc2NyaXB0aW9u
KCdUZXN0cyB0aGUgYmFzaWMgb3BlcmF0aW9uIG9mIERldmljZU9yaWVudGF0aW9uIHVzaW5nIHRo
ZSBtb2NrLicpOwogCiB2YXIgbW9ja0FscGhhID0gMS4xOwogdmFyIG1vY2tCZXRhID0gMi4yOwpA
QCAtMTAsNyArMTAsNyBAQCBlbHNlCiAgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1
biB3aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOwogCiB2YXIgZGV2aWNlT3JpZW50
YXRpb25FdmVudDsKLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIs
IGZ1bmN0aW9uKGUpIHsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkZXZpY2VvcmllbnRhdGlv
bicsIGZ1bmN0aW9uKGUpIHsKICAgICBkZXZpY2VPcmllbnRhdGlvbkV2ZW50ID0gZTsKICAgICBz
aG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYScsICdtb2NrQWxwaGEnKTsKICAg
ICBzaG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5iZXRhJywgJ21vY2tCZXRhJyk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMv
Y3JlYXRlLWV2ZW50LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9jcmVhdGUtZXZlbnQuanMJKHJldmlzaW9uIDY2ODUz
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3Rz
L2NyZWF0ZS1ldmVudC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLWRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCkgd29ya3Mgd2l0aCBEZXZpY2VP
cmllbnRhdGlvbkV2ZW50LiIpOworZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgZG9jdW1lbnQuY3Jl
YXRlRXZlbnQoKSB3b3JrcyB3aXRoIERldmljZU9yaWVudGF0aW9uRXZlbnQuJyk7CiAKIHZhciBl
dmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdEZXZpY2VPcmllbnRhdGlvbkV2ZW50Jyk7CiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0
cy9tdWx0aXBsZS1mcmFtZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
RGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL211bHRpcGxlLWZyYW1lcy5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10
ZXN0cy9tdWx0aXBsZS1mcmFtZXMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKK2Rl
c2NyaXB0aW9uKCdUZXN0cyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiBmcm9tIG11bHRpcGxlIGZy
YW1lcy4nKTsKKwordmFyIGRldmljZU9yaWVudGF0aW9uRXZlbnQ7CitmdW5jdGlvbiBjaGVja09y
aWVudGF0aW9uKGV2ZW50KSB7CisgICAgZGV2aWNlT3JpZW50YXRpb25FdmVudCA9IGV2ZW50Owor
ICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFscGhhJywgJ21vY2tFdmVudC5h
bHBoYScpOworICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEnLCAnbW9j
a0V2ZW50LmJldGEnKTsKKyAgICBzaG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1t
YScsICdtb2NrRXZlbnQuZ2FtbWEnKTsKK30KKwordmFyIGhhc01haW5GcmFtZUV2ZW50RmlyZWQg
PSBmYWxzZTsKK2Z1bmN0aW9uIG1haW5GcmFtZUxpc3RlbmVyKGV2ZW50KSB7CisgICAgY2hlY2tP
cmllbnRhdGlvbihldmVudCk7CisgICAgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IHRydWU7Cisg
ICAgbWF5YmVGaW5pc2hUZXN0KCk7Cit9CisKK3ZhciBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCA9
IGZhbHNlOworZnVuY3Rpb24gY2hpbGRGcmFtZUxpc3RlbmVyKGV2ZW50KSB7CisgICAgY2hlY2tP
cmllbnRhdGlvbihldmVudCk7CisgICAgaGFzQ2hpbGRGcmFtZUV2ZW50RmlyZWQgPSB0cnVlOwor
ICAgIG1heWJlRmluaXNoVGVzdCgpOworfQorCitmdW5jdGlvbiBtYXliZUZpbmlzaFRlc3QoKSB7
CisgICAgaWYgKGhhc01haW5GcmFtZUV2ZW50RmlyZWQgJiYgaGFzQ2hpbGRGcmFtZUV2ZW50Rmly
ZWQpCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgbW9ja0V2ZW50ID0ge2FscGhh
OiAxLjEsIGJldGE6IDIuMiwgZ2FtbWE6IDMuM307CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1vY2tEZXZpY2VPcmllbnRhdGlv
bih0cnVlLCBtb2NrRXZlbnQuYWxwaGEsIHRydWUsIG1vY2tFdmVudC5iZXRhLCB0cnVlLCBtb2Nr
RXZlbnQuZ2FtbWEpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4g
d2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKKwordmFyIGNoaWxkRnJhbWUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoY2hpbGRGcmFtZSk7CitjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignZGV2aWNlb3JpZW50YXRpb24nLCBjaGlsZEZyYW1lTGlzdGVuZXIpOworCit3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignZGV2aWNlb3JpZW50YXRpb24nLCBtYWluRnJhbWVMaXN0ZW5lcik7CisK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2Ny
aXB0LXRlc3RzL25vLXN5bmNocm9ub3VzLWV2ZW50cy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvbm8tc3luY2hyb25v
dXMtZXZlbnRzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNl
T3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL25vLXN5bmNocm9ub3VzLWV2ZW50cy5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNiBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgZXZlbnRzIGFy
ZSBuZXZlciBmaXJlZCBzeWNuaHJvbm91c2x5IGZyb20gYSBjYWxsIHRvIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCkuJyk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja0RldmljZU9yaWVudGF0aW9uKHRydWUsIDEuMSwg
dHJ1ZSwgMi4yLCB0cnVlLCAzLjMpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5v
dCBiZSBydW4gd2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKKwordmFyIGhhc0Fk
ZEV2ZW50TGlzdGVuZXJSZXR1cm5lZCA9IGZhbHNlOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2RldmljZW9yaWVudGF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgc2hvdWxkQmVUcnVlKCdoYXNB
ZGRFdmVudExpc3RlbmVyUmV0dXJuZWQnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworaGFz
QWRkRXZlbnRMaXN0ZW5lclJldHVybmVkID0gdHJ1ZTsKKword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvbnVsbC12YWx1ZXMu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24v
c2NyaXB0LXRlc3RzL251bGwtdmFsdWVzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL251bGwtdmFsdWVzLmpzCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACitkZXNjcmlwdGlvbignVGVzdHMgdXNpbmcgbnVs
bCB2YWx1ZXMgZm9yIHNvbWUgb2YgdGhlIGV2ZW50IHByb3BlcnRpZXMuJyk7CisKK3ZhciBtb2Nr
RXZlbnQ7CitmdW5jdGlvbiBzZXRNb2NrT3JpZW50YXRpb24oYWxwaGEsIGJldGEsIGdhbW1hKSB7
CisgICAgbW9ja0V2ZW50ID0ge2FscGhhOiBhbHBoYSwgYmV0YTogYmV0YSwgZ2FtbWE6IGdhbW1h
fTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oCisgICAgICAgICAgICBudWxs
ICE9IG1vY2tFdmVudC5hbHBoYSwgbW9ja0V2ZW50LmFscGhhLAorICAgICAgICAgICAgbnVsbCAh
PSBtb2NrRXZlbnQuYmV0YSwgbW9ja0V2ZW50LmJldGEsCisgICAgICAgICAgICBudWxsICE9IG1v
Y2tFdmVudC5nYW1tYSwgbW9ja0V2ZW50LmdhbW1hKTsKKyAgICBlbHNlCisgICAgICAgIGRlYnVn
KCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xs
ZXInKTsKK30KKwordmFyIGRldmljZU9yaWVudGF0aW9uRXZlbnQ7CitmdW5jdGlvbiBjaGVja09y
aWVudGF0aW9uKGV2ZW50KSB7CisgICAgZGV2aWNlT3JpZW50YXRpb25FdmVudCA9IGV2ZW50Owor
ICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFscGhhJywgJ21vY2tFdmVudC5h
bHBoYScpOworICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEnLCAnbW9j
a0V2ZW50LmJldGEnKTsKKyAgICBzaG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1t
YScsICdtb2NrRXZlbnQuZ2FtbWEnKTsKK30KKworZnVuY3Rpb24gZmlyc3RMaXN0ZW5lcihldmVu
dCkgeworICAgIGNoZWNrT3JpZW50YXRpb24oZXZlbnQpOworICAgIHdpbmRvdy5yZW1vdmVFdmVu
dExpc3RlbmVyKCdkZXZpY2VvcmllbnRhdGlvbicsIGZpcnN0TGlzdGVuZXIpOworCisgICAgc2V0
TW9ja09yaWVudGF0aW9uKDEuMSwgbnVsbCwgbnVsbCk7CisgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgc2Vjb25kTGlzdGVuZXIpOworfQorCitmdW5jdGlv
biBzZWNvbmRMaXN0ZW5lcihldmVudCkgeworICAgIGNoZWNrT3JpZW50YXRpb24oZXZlbnQpOwor
ICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdkZXZpY2VvcmllbnRhdGlvbicsIHNlY29u
ZExpc3RlbmVyKTsKKworICAgIHNldE1vY2tPcmllbnRhdGlvbihudWxsLCAyLjIsIG51bGwpOwor
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkZXZpY2VvcmllbnRhdGlvbicsIHRoaXJkTGlz
dGVuZXIpOworfQorCitmdW5jdGlvbiB0aGlyZExpc3RlbmVyKGV2ZW50KSB7CisgICAgY2hlY2tP
cmllbnRhdGlvbihldmVudCk7CisgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Rldmlj
ZW9yaWVudGF0aW9uJywgdGhpcmRMaXN0ZW5lcik7CisKKyAgICBzZXRNb2NrT3JpZW50YXRpb24o
bnVsbCwgbnVsbCwgMy4zKTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZGV2aWNlb3Jp
ZW50YXRpb24nLCBmb3VydGhMaXN0ZW5lcik7Cit9CisKK2Z1bmN0aW9uIGZvdXJ0aExpc3RlbmVy
KGV2ZW50KSB7CisgICAgY2hlY2tPcmllbnRhdGlvbihldmVudCk7CisgICAgZmluaXNoSlNUZXN0
KCk7Cit9CisKK3NldE1vY2tPcmllbnRhdGlvbihudWxsLCBudWxsLCBudWxsKTsKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdkZXZpY2VvcmllbnRhdGlvbicsIGZpcnN0TGlzdGVuZXIpOworCit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3Njcmlw
dC10ZXN0cy9vcHRpb25hbC1ldmVudC1wcm9wZXJ0aWVzLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9vcHRpb25hbC1l
dmVudC1wcm9wZXJ0aWVzLmpzCShyZXZpc2lvbiA2Njg1MykKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9vcHRpb25hbC1ldmVudC1wcm9wZXJ0
aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotZGVzY3JpcHRpb24oIlRlc3Rz
IHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIG9mIERldmljZU9yaWVudGF0aW9uRXZlbnQuIEVhY2gg
cHJvcGVydHkgc2hvdWxkIGJlIG51bGwgaWYgbm90IHNldCwgb3Igc2V0IHRvIG51bGwgb3IgdW5k
ZWZpbmVkLiIpOworZGVzY3JpcHRpb24oJ1Rlc3RzIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIG9m
IERldmljZU9yaWVudGF0aW9uRXZlbnQuIEVhY2ggcHJvcGVydHkgc2hvdWxkIGJlIG51bGwgaWYg
bm90IHNldCwgb3Igc2V0IHRvIG51bGwgb3IgdW5kZWZpbmVkLicpOwogCiB2YXIgZXZlbnQ7CiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0
cy91cGRhdGVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9y
aWVudGF0aW9uL3NjcmlwdC10ZXN0cy91cGRhdGVzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL3VwZGF0ZXMuanMJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzcgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IHVw
ZGF0ZXMgdG8gdGhlIG9yaWVudGF0aW9uIGNhdXNlcyBuZXcgZXZlbnRzIHRvIGZpcmUuJyk7CisK
K3ZhciBtb2NrRXZlbnQ7CitmdW5jdGlvbiBzZXRNb2NrT3JpZW50YXRpb24oYWxwaGEsIGJldGEs
IGdhbW1hKSB7CisgICAgbW9ja0V2ZW50ID0ge2FscGhhOiBhbHBoYSwgYmV0YTogYmV0YSwgZ2Ft
bWE6IGdhbW1hfTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNb2NrRGV2aWNlT3JpZW50YXRpb24odHJ1ZSwgbW9j
a0V2ZW50LmFscGhhLCB0cnVlLCBtb2NrRXZlbnQuYmV0YSwgdHJ1ZSwgbW9ja0V2ZW50LmdhbW1h
KTsKKyAgICBlbHNlCisgICAgICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0
aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKK30KKwordmFyIGRldmljZU9yaWVudGF0
aW9uRXZlbnQ7CitmdW5jdGlvbiBjaGVja09yaWVudGF0aW9uKGV2ZW50KSB7CisgICAgZGV2aWNl
T3JpZW50YXRpb25FdmVudCA9IGV2ZW50OworICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmFscGhhJywgJ21vY2tFdmVudC5hbHBoYScpOworICAgIHNob3VsZEJlKCdkZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmJldGEnLCAnbW9ja0V2ZW50LmJldGEnKTsKKyAgICBzaG91bGRCZSgn
ZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1tYScsICdtb2NrRXZlbnQuZ2FtbWEnKTsKK30KKwor
ZnVuY3Rpb24gZmlyc3RMaXN0ZW5lcihldmVudCkgeworICAgIGNoZWNrT3JpZW50YXRpb24oZXZl
bnQpOworICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdkZXZpY2VvcmllbnRhdGlvbics
IGZpcnN0TGlzdGVuZXIpOworCisgICAgc2V0TW9ja09yaWVudGF0aW9uKDExLjEsIDIyLjIsIDMz
LjMpOworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkZXZpY2VvcmllbnRhdGlvbicsIHVw
ZGF0ZUxpc3RlbmVyKTsKK30KKworZnVuY3Rpb24gdXBkYXRlTGlzdGVuZXIoZXZlbnQpIHsKKyAg
ICBjaGVja09yaWVudGF0aW9uKGV2ZW50KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2V0
TW9ja09yaWVudGF0aW9uKDEuMSwgMi4yLCAzLjMpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2RldmljZW9yaWVudGF0aW9uJywgZmlyc3RMaXN0ZW5lcik7CisKK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL3dpbmRvdy1w
cm9wZXJ0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LmpzCShyZXZpc2lvbiA2Njg1MykK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy93
aW5kb3ctcHJvcGVydHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACi1kZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCB0aGUgd2luZG93LkRldmljZU9yaWVudGF0aW9uRXZlbnQgYW5kIHdp
bmRvdy5vbmRldmljZW9yaWVudGF0aW9uIHByb3BlcnRpZXMgYXJlIHByZXNlbnQuIik7CitkZXNj
cmlwdGlvbignVGVzdHMgdGhhdCB0aGUgd2luZG93LkRldmljZU9yaWVudGF0aW9uRXZlbnQgYW5k
IHdpbmRvdy5vbmRldmljZW9yaWVudGF0aW9uIHByb3BlcnRpZXMgYXJlIHByZXNlbnQuJyk7CiAK
IGZ1bmN0aW9uIGhhc0RldmljZU9yaWVudGF0aW9uRXZlbnRQcm9wZXJ0eSgpCiB7CiAgICAgZm9y
ICh2YXIgcHJvcGVydHkgaW4gd2luZG93KSB7Ci0gICAgICAgIGlmIChwcm9wZXJ0eSA9PSAiRGV2
aWNlT3JpZW50YXRpb25FdmVudCIpCisgICAgICAgIGlmIChwcm9wZXJ0eSA9PSAnRGV2aWNlT3Jp
ZW50YXRpb25FdmVudCcpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMTgsNyArMTgsNyBAQCBzaG91bGRCZVRydWUoIndpbmRvdy5oYXNPd25Q
cm9wZXJ0eSgnRGV2CiBmdW5jdGlvbiBoYXNPbkRldmljZU9yaWVudGF0aW9uUHJvcGVydHkoKQog
ewogICAgIGZvciAodmFyIHByb3BlcnR5IGluIHdpbmRvdykgewotICAgICAgICBpZiAocHJvcGVy
dHkgPT0gIm9uZGV2aWNlb3JpZW50YXRpb24iKQorICAgICAgICBpZiAocHJvcGVydHkgPT0gJ29u
ZGV2aWNlb3JpZW50YXRpb24nKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAg
IHJldHVybiBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66705</attachid>
            <date>2010-09-07 04:31:42 -0700</date>
            <delta_ts>2010-09-07 05:12:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39590-20100907123139.patch</filename>
            <type>text/plain</type>
            <size>21707</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY2ODY3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMDktMDcgIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFByb3ZpZGUgRGV2aWNlT3JpZW50YXRpb24gTGF5b3V0VGVzdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTkwCisKKyAgICAg
ICAgQWRkcyBzZXZlcmFsIG5ldyBEZXZpY2VPcmllbnRhdGlvbiB0ZXN0cy4gQWxzbyBmaXhlcyBz
b21lIHN0eWxlIGluIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZmFzdC9kb20vRGV2aWNl
T3JpZW50YXRpb24vYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5l
ci1mcm9tLWNhbGxiYWNrLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL211bHRpcGxlLWZyYW1lcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVz
dHMvbXVsdGlwbGUtZnJhbWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VP
cmllbnRhdGlvbi9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1zeW5jaHJvbm91cy1ldmVudHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3Rz
L25vLXN5bmNocm9ub3VzLWV2ZW50cy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRGV2
aWNlT3JpZW50YXRpb24vbm8tc3luY2hyb25vdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbnVsbC12YWx1ZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3Rz
L251bGwtdmFsdWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRh
dGlvbi9udWxsLXZhbHVlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0RldmljZU9yaWVudGF0aW9uL3VwZGF0ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL3VwZGF0ZXMuanM6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3VwZGF0ZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMv
YmFzaWMtb3BlcmF0aW9uLmpzOgorICAgICAgICAqIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9u
L3NjcmlwdC10ZXN0cy9jcmVhdGUtZXZlbnQuanM6CisgICAgICAgICogZmFzdC9kb20vRGV2aWNl
T3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL29wdGlvbmFsLWV2ZW50LXByb3BlcnRpZXMuanM6Cisg
ICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL3dpbmRvdy1w
cm9wZXJ0eS5qczoKKwogMjAxMC0wOS0wNyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9hZGQtbGlzdGVu
ZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTgg
QEAKK1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50IGxpc3RlbmVyIGZyb20gYSBjYWxsYmFj
ayB3b3JrcyBhcyBleHBlY3RlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYSBpcyBtb2NrRXZlbnQuYWxwaGEKK1BBU1Mg
ZGV2aWNlT3JpZW50YXRpb25FdmVudC5iZXRhIGlzIG1vY2tFdmVudC5iZXRhCitQQVNTIGRldmlj
ZU9yaWVudGF0aW9uRXZlbnQuZ2FtbWEgaXMgbW9ja0V2ZW50LmdhbW1hCitQQVNTIGRldmljZU9y
aWVudGF0aW9uRXZlbnQuYWxwaGEgaXMgbW9ja0V2ZW50LmFscGhhCitQQVNTIGRldmljZU9yaWVu
dGF0aW9uRXZlbnQuYmV0YSBpcyBtb2NrRXZlbnQuYmV0YQorUEFTUyBkZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmdhbW1hIGlzIG1vY2tFdmVudC5nYW1tYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmFscGhhIGlzIG1vY2tFdmVudC5hbHBoYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmJldGEgaXMgbW9ja0V2ZW50LmJldGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1t
YSBpcyBtb2NrRXZlbnQuZ2FtbWEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRh
dGlvbi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxi
YWNrLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L0RldmljZU9yaWVudGF0aW9uL211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbXVsdGlwbGUtZnJh
bWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0Rl
dmljZU9yaWVudGF0aW9uL211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHVzaW5nIERldmljZU9yaWVudGF0aW9uIGZyb20gbXVs
dGlwbGUgZnJhbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmFscGhhIGlzIG1vY2tFdmVudC5hbHBoYQorUEFTUyBkZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmJldGEgaXMgbW9ja0V2ZW50LmJldGEKK1BBU1MgZGV2aWNlT3JpZW50
YXRpb25FdmVudC5nYW1tYSBpcyBtb2NrRXZlbnQuZ2FtbWEKK1BBU1MgZGV2aWNlT3JpZW50YXRp
b25FdmVudC5hbHBoYSBpcyBtb2NrRXZlbnQuYWxwaGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25F
dmVudC5iZXRhIGlzIG1vY2tFdmVudC5iZXRhCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQu
Z2FtbWEgaXMgbW9ja0V2ZW50LmdhbW1hCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3Jp
ZW50YXRpb24vbXVsdGlwbGUtZnJhbWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbXVsdGlwbGUtZnJhbWVzLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9tdWx0aXBsZS1m
cmFtZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9tdWx0
aXBsZS1mcmFtZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tc3luY2hyb25vdXMtZXZlbnRz
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VP
cmllbnRhdGlvbi9uby1zeW5jaHJvbm91cy1ldmVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tc3luY2hyb25v
dXMtZXZlbnRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorVGVz
dHMgdGhhdCBldmVudHMgYXJlIG5ldmVyIGZpcmVkIHN5Y25ocm9ub3VzbHkgZnJvbSBhIGNhbGwg
dG8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgaGFzQWRkRXZlbnRMaXN0ZW5lclJldHVybmVkIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1zeW5jaHJvbm91cy1ldmVudHMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9u
by1zeW5jaHJvbm91cy1ldmVudHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL0RldmljZU9yaWVudGF0aW9uL25vLXN5bmNocm9ub3VzLWV2ZW50cy5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL25vLXN5bmNocm9ub3VzLWV2ZW50
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9udWxsLXZhbHVlcy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbnVsbC12YWx1
ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2
aWNlT3JpZW50YXRpb24vbnVsbC12YWx1ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIxIEBACitUZXN0cyB1c2luZyBudWxsIHZhbHVlcyBmb3Igc29tZSBvZiB0aGUgZXZl
bnQgcHJvcGVydGllcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZGV2
aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYSBpcyBtb2NrRXZlbnQuYWxwaGEKK1BBU1MgZGV2aWNl
T3JpZW50YXRpb25FdmVudC5iZXRhIGlzIG1vY2tFdmVudC5iZXRhCitQQVNTIGRldmljZU9yaWVu
dGF0aW9uRXZlbnQuZ2FtbWEgaXMgbW9ja0V2ZW50LmdhbW1hCitQQVNTIGRldmljZU9yaWVudGF0
aW9uRXZlbnQuYWxwaGEgaXMgbW9ja0V2ZW50LmFscGhhCitQQVNTIGRldmljZU9yaWVudGF0aW9u
RXZlbnQuYmV0YSBpcyBtb2NrRXZlbnQuYmV0YQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmdhbW1hIGlzIG1vY2tFdmVudC5nYW1tYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFs
cGhhIGlzIG1vY2tFdmVudC5hbHBoYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEg
aXMgbW9ja0V2ZW50LmJldGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1tYSBpcyBt
b2NrRXZlbnQuZ2FtbWEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYSBpcyBtb2Nr
RXZlbnQuYWxwaGEKK1BBU1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5iZXRhIGlzIG1vY2tFdmVu
dC5iZXRhCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuZ2FtbWEgaXMgbW9ja0V2ZW50Lmdh
bW1hCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbnVsbC12YWx1ZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlv
bi9udWxsLXZhbHVlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
RGV2aWNlT3JpZW50YXRpb24vbnVsbC12YWx1ZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9udWxsLXZhbHVlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi91
cGRhdGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9E
ZXZpY2VPcmllbnRhdGlvbi91cGRhdGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3VwZGF0ZXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhl
IG9yaWVudGF0aW9uIGNhdXNlcyBuZXcgZXZlbnRzIHRvIGZpcmUuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuYWxwaGEgaXMgbW9j
a0V2ZW50LmFscGhhCitQQVNTIGRldmljZU9yaWVudGF0aW9uRXZlbnQuYmV0YSBpcyBtb2NrRXZl
bnQuYmV0YQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmdhbW1hIGlzIG1vY2tFdmVudC5n
YW1tYQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFscGhhIGlzIG1vY2tFdmVudC5hbHBo
YQorUEFTUyBkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEgaXMgbW9ja0V2ZW50LmJldGEKK1BB
U1MgZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1tYSBpcyBtb2NrRXZlbnQuZ2FtbWEKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi91cGRhdGVzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vdXBkYXRlcy5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24v
dXBkYXRlcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Vw
ZGF0ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5lci1m
cm9tLWNhbGxiYWNrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5qcwko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3Nj
cmlwdC10ZXN0cy9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0OCBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50
IGxpc3RlbmVyIGZyb20gYSBjYWxsYmFjayB3b3JrcyBhcyBleHBlY3RlZC4nKTsKKwordmFyIG1v
Y2tFdmVudDsKK2Z1bmN0aW9uIHNldE1vY2tPcmllbnRhdGlvbihhbHBoYSwgYmV0YSwgZ2FtbWEp
IHsKKyAgICBtb2NrRXZlbnQgPSB7YWxwaGE6IGFscGhhLCBiZXRhOiBiZXRhLCBnYW1tYTogZ2Ft
bWF9OworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbih0cnVlLCBtb2NrRXZlbnQu
YWxwaGEsIHRydWUsIG1vY2tFdmVudC5iZXRhLCB0cnVlLCBtb2NrRXZlbnQuZ2FtbWEpOworICAg
IGVsc2UKKyAgICAgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRo
ZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOworfQorCit2YXIgZGV2aWNlT3JpZW50YXRpb25FdmVu
dDsKK2Z1bmN0aW9uIGNoZWNrT3JpZW50YXRpb24oZXZlbnQpIHsKKyAgICBkZXZpY2VPcmllbnRh
dGlvbkV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmUoJ2RldmljZU9yaWVudGF0aW9uRXZlbnQu
YWxwaGEnLCAnbW9ja0V2ZW50LmFscGhhJyk7CisgICAgc2hvdWxkQmUoJ2RldmljZU9yaWVudGF0
aW9uRXZlbnQuYmV0YScsICdtb2NrRXZlbnQuYmV0YScpOworICAgIHNob3VsZEJlKCdkZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmdhbW1hJywgJ21vY2tFdmVudC5nYW1tYScpOworfQorCit2YXIgZmly
c3RMaXN0ZW5lckV2ZW50cyA9IDA7CitmdW5jdGlvbiBmaXJzdExpc3RlbmVyKGV2ZW50KSB7Cisg
ICAgY2hlY2tPcmllbnRhdGlvbihldmVudCk7CisgICAgaWYgKCsrZmlyc3RMaXN0ZW5lckV2ZW50
cyA9PSAxKQorICAgICAgICBzZXRNb2NrT3JpZW50YXRpb24oMTEuMSwgMjIuMiwgMzMuMyk7Cisg
ICAgZWxzZSBpZiAoZmlyc3RMaXN0ZW5lckV2ZW50cyA+IDIpCisgICAgICAgIHRlc3RGYWlsZWQo
J1RvbyBtYW55IGV2ZW50cyBmb3IgZmlyc3QgbGlzdGVuZXIuJyk7CisgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgc2Vjb25kTGlzdGVuZXIpOworICAgIG1h
eWJlRmluaXNoVGVzdCgpOworfQorCit2YXIgc2Vjb25kTGlzdGVuZXJFdmVudHMgPSAwOworZnVu
Y3Rpb24gc2Vjb25kTGlzdGVuZXIoZXZlbnQpIHsKKyAgICBjaGVja09yaWVudGF0aW9uKGV2ZW50
KTsKKyAgICBpZiAoKytzZWNvbmRMaXN0ZW5lckV2ZW50cyA+IDEpCisgICAgICAgIHRlc3RGYWls
ZWQoJ1RvbyBtYW55IGV2ZW50cyBmb3Igc2Vjb25kIGxpc3RlbmVyLicpOworICAgIG1heWJlRmlu
aXNoVGVzdCgpOworfQorCitmdW5jdGlvbiBtYXliZUZpbmlzaFRlc3QoKSB7CisgICAgaWYgKGZp
cnN0TGlzdGVuZXJFdmVudHMgPT0gMiAmJiBzZWNvbmRMaXN0ZW5lckV2ZW50cyA9PSAxKQorICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2V0TW9ja09yaWVudGF0aW9uKDEuMSwgMi4yLCAz
LjMpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgZmlyc3RM
aXN0ZW5lcik7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3Jp
ZW50YXRpb24vc2NyaXB0LXRlc3RzL2Jhc2ljLW9wZXJhdGlvbi5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvYmFzaWMt
b3BlcmF0aW9uLmpzCShyZXZpc2lvbiA2Njg1MykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0Rl
dmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVyYXRpb24uanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw0IEBACi1kZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJhc2ljIG9wZXJh
dGlvbiBvZiBEZXZpY2VPcmllbnRhdGlvbiB1c2luZyB0aGUgbW9jay4iKTsKK2Rlc2NyaXB0aW9u
KCdUZXN0cyB0aGUgYmFzaWMgb3BlcmF0aW9uIG9mIERldmljZU9yaWVudGF0aW9uIHVzaW5nIHRo
ZSBtb2NrLicpOwogCiB2YXIgbW9ja0FscGhhID0gMS4xOwogdmFyIG1vY2tCZXRhID0gMi4yOwpA
QCAtMTAsNyArMTAsNyBAQCBlbHNlCiAgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1
biB3aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOwogCiB2YXIgZGV2aWNlT3JpZW50
YXRpb25FdmVudDsKLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIs
IGZ1bmN0aW9uKGUpIHsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkZXZpY2VvcmllbnRhdGlv
bicsIGZ1bmN0aW9uKGUpIHsKICAgICBkZXZpY2VPcmllbnRhdGlvbkV2ZW50ID0gZTsKICAgICBz
aG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5hbHBoYScsICdtb2NrQWxwaGEnKTsKICAg
ICBzaG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5iZXRhJywgJ21vY2tCZXRhJyk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMv
Y3JlYXRlLWV2ZW50LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy9jcmVhdGUtZXZlbnQuanMJKHJldmlzaW9uIDY2ODUz
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3Rz
L2NyZWF0ZS1ldmVudC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLWRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCkgd29ya3Mgd2l0aCBEZXZpY2VP
cmllbnRhdGlvbkV2ZW50LiIpOworZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgZG9jdW1lbnQuY3Jl
YXRlRXZlbnQoKSB3b3JrcyB3aXRoIERldmljZU9yaWVudGF0aW9uRXZlbnQuJyk7CiAKIHZhciBl
dmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdEZXZpY2VPcmllbnRhdGlvbkV2ZW50Jyk7CiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0
cy9tdWx0aXBsZS1mcmFtZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
RGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL211bHRpcGxlLWZyYW1lcy5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10
ZXN0cy9tdWx0aXBsZS1mcmFtZXMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKK2Rl
c2NyaXB0aW9uKCdUZXN0cyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiBmcm9tIG11bHRpcGxlIGZy
YW1lcy4nKTsKKwordmFyIGRldmljZU9yaWVudGF0aW9uRXZlbnQ7CitmdW5jdGlvbiBjaGVja09y
aWVudGF0aW9uKGV2ZW50KSB7CisgICAgZGV2aWNlT3JpZW50YXRpb25FdmVudCA9IGV2ZW50Owor
ICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmFscGhhJywgJ21vY2tFdmVudC5h
bHBoYScpOworICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmJldGEnLCAnbW9j
a0V2ZW50LmJldGEnKTsKKyAgICBzaG91bGRCZSgnZGV2aWNlT3JpZW50YXRpb25FdmVudC5nYW1t
YScsICdtb2NrRXZlbnQuZ2FtbWEnKTsKK30KKwordmFyIGhhc01haW5GcmFtZUV2ZW50RmlyZWQg
PSBmYWxzZTsKK2Z1bmN0aW9uIG1haW5GcmFtZUxpc3RlbmVyKGV2ZW50KSB7CisgICAgY2hlY2tP
cmllbnRhdGlvbihldmVudCk7CisgICAgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IHRydWU7Cisg
ICAgbWF5YmVGaW5pc2hUZXN0KCk7Cit9CisKK3ZhciBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCA9
IGZhbHNlOworZnVuY3Rpb24gY2hpbGRGcmFtZUxpc3RlbmVyKGV2ZW50KSB7CisgICAgY2hlY2tP
cmllbnRhdGlvbihldmVudCk7CisgICAgaGFzQ2hpbGRGcmFtZUV2ZW50RmlyZWQgPSB0cnVlOwor
ICAgIG1heWJlRmluaXNoVGVzdCgpOworfQorCitmdW5jdGlvbiBtYXliZUZpbmlzaFRlc3QoKSB7
CisgICAgaWYgKGhhc01haW5GcmFtZUV2ZW50RmlyZWQgJiYgaGFzQ2hpbGRGcmFtZUV2ZW50Rmly
ZWQpCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgbW9ja0V2ZW50ID0ge2FscGhh
OiAxLjEsIGJldGE6IDIuMiwgZ2FtbWE6IDMuM307CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1vY2tEZXZpY2VPcmllbnRhdGlv
bih0cnVlLCBtb2NrRXZlbnQuYWxwaGEsIHRydWUsIG1vY2tFdmVudC5iZXRhLCB0cnVlLCBtb2Nr
RXZlbnQuZ2FtbWEpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4g
d2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKKwordmFyIGNoaWxkRnJhbWUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoY2hpbGRGcmFtZSk7CitjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignZGV2aWNlb3JpZW50YXRpb24nLCBjaGlsZEZyYW1lTGlzdGVuZXIpOworCit3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignZGV2aWNlb3JpZW50YXRpb24nLCBtYWluRnJhbWVMaXN0ZW5lcik7CisK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2Ny
aXB0LXRlc3RzL25vLXN5bmNocm9ub3VzLWV2ZW50cy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvbm8tc3luY2hyb25v
dXMtZXZlbnRzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNl
T3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL25vLXN5bmNocm9ub3VzLWV2ZW50cy5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNiBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgZXZlbnRzIGFy
ZSBuZXZlciBmaXJlZCBzeWNuaHJvbm91c2x5IGZyb20gYSBjYWxsIHRvIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCkuJyk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja0RldmljZU9yaWVudGF0aW9uKHRydWUsIDEuMSwg
dHJ1ZSwgMi4yLCB0cnVlLCAzLjMpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5v
dCBiZSBydW4gd2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKKwordmFyIGhhc0Fk
ZEV2ZW50TGlzdGVuZXJSZXR1cm5lZCA9IGZhbHNlOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2RldmljZW9yaWVudGF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgc2hvdWxkQmVUcnVlKCdoYXNB
ZGRFdmVudExpc3RlbmVyUmV0dXJuZWQnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworaGFz
QWRkRXZlbnRMaXN0ZW5lclJldHVybmVkID0gdHJ1ZTsKKword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvbnVsbC12YWx1ZXMu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24v
c2NyaXB0LXRlc3RzL251bGwtdmFsdWVzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL251bGwtdmFsdWVzLmpzCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACitkZXNjcmlwdGlvbignVGVzdHMgdXNpbmcgbnVs
bCB2YWx1ZXMgZm9yIHNvbWUgb2YgdGhlIGV2ZW50IHByb3BlcnRpZXMuJyk7CisKK3ZhciBtb2Nr
RXZlbnQ7CitmdW5jdGlvbiBzZXRNb2NrT3JpZW50YXRpb24oYWxwaGEsIGJldGEsIGdhbW1hKSB7
CisgICAgbW9ja0V2ZW50ID0ge2FscGhhOiBhbHBoYSwgYmV0YTogYmV0YSwgZ2FtbWE6IGdhbW1h
fTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oCisgICAgICAgICAgICBudWxs
ICE9IG1vY2tFdmVudC5hbHBoYSwgbnVsbCA9PSBtb2NrRXZlbnQuYWxwaGEgPyAwIDogbW9ja0V2
ZW50LmFscGhhLAorICAgICAgICAgICAgbnVsbCAhPSBtb2NrRXZlbnQuYmV0YSwgbnVsbCA9PSBt
b2NrRXZlbnQuYmV0YSA/IDAgOiBtb2NrRXZlbnQuYmV0YSwKKyAgICAgICAgICAgIG51bGwgIT0g
bW9ja0V2ZW50LmdhbW1hLCBudWxsID09IG1vY2tFdmVudC5nYW1tYSA/IDAgOiBtb2NrRXZlbnQu
Z2FtbWEpOworICAgIGVsc2UKKyAgICAgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1
biB3aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOworfQorCit2YXIgZGV2aWNlT3Jp
ZW50YXRpb25FdmVudDsKK2Z1bmN0aW9uIGNoZWNrT3JpZW50YXRpb24oZXZlbnQpIHsKKyAgICBk
ZXZpY2VPcmllbnRhdGlvbkV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmUoJ2RldmljZU9yaWVu
dGF0aW9uRXZlbnQuYWxwaGEnLCAnbW9ja0V2ZW50LmFscGhhJyk7CisgICAgc2hvdWxkQmUoJ2Rl
dmljZU9yaWVudGF0aW9uRXZlbnQuYmV0YScsICdtb2NrRXZlbnQuYmV0YScpOworICAgIHNob3Vs
ZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50LmdhbW1hJywgJ21vY2tFdmVudC5nYW1tYScpOwor
fQorCitmdW5jdGlvbiBmaXJzdExpc3RlbmVyKGV2ZW50KSB7CisgICAgY2hlY2tPcmllbnRhdGlv
bihldmVudCk7CisgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RldmljZW9yaWVudGF0
aW9uJywgZmlyc3RMaXN0ZW5lcik7CisKKyAgICBzZXRNb2NrT3JpZW50YXRpb24oMS4xLCBudWxs
LCBudWxsKTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZGV2aWNlb3JpZW50YXRpb24n
LCBzZWNvbmRMaXN0ZW5lcik7Cit9CisKK2Z1bmN0aW9uIHNlY29uZExpc3RlbmVyKGV2ZW50KSB7
CisgICAgY2hlY2tPcmllbnRhdGlvbihldmVudCk7CisgICAgd2luZG93LnJlbW92ZUV2ZW50TGlz
dGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgc2Vjb25kTGlzdGVuZXIpOworCisgICAgc2V0TW9j
a09yaWVudGF0aW9uKG51bGwsIDIuMiwgbnVsbCk7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2RldmljZW9yaWVudGF0aW9uJywgdGhpcmRMaXN0ZW5lcik7Cit9CisKK2Z1bmN0aW9uIHRo
aXJkTGlzdGVuZXIoZXZlbnQpIHsKKyAgICBjaGVja09yaWVudGF0aW9uKGV2ZW50KTsKKyAgICB3
aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZGV2aWNlb3JpZW50YXRpb24nLCB0aGlyZExpc3Rl
bmVyKTsKKworICAgIHNldE1vY2tPcmllbnRhdGlvbihudWxsLCBudWxsLCAzLjMpOworICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdkZXZpY2VvcmllbnRhdGlvbicsIGZvdXJ0aExpc3RlbmVy
KTsKK30KKworZnVuY3Rpb24gZm91cnRoTGlzdGVuZXIoZXZlbnQpIHsKKyAgICBjaGVja09yaWVu
dGF0aW9uKGV2ZW50KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2V0TW9ja09yaWVudGF0
aW9uKG51bGwsIG51bGwsIG51bGwpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2RldmljZW9y
aWVudGF0aW9uJywgZmlyc3RMaXN0ZW5lcik7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL29wdGlvbmFsLWV2ZW50LXBy
b3BlcnRpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3Jp
ZW50YXRpb24vc2NyaXB0LXRlc3RzL29wdGlvbmFsLWV2ZW50LXByb3BlcnRpZXMuanMJKHJldmlz
aW9uIDY2ODUzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2Ny
aXB0LXRlc3RzL29wdGlvbmFsLWV2ZW50LXByb3BlcnRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTEsNCArMSw0IEBACi1kZXNjcmlwdGlvbigiVGVzdHMgdGhlIG9wdGlvbmFsIHByb3BlcnRpZXMg
b2YgRGV2aWNlT3JpZW50YXRpb25FdmVudC4gRWFjaCBwcm9wZXJ0eSBzaG91bGQgYmUgbnVsbCBp
ZiBub3Qgc2V0LCBvciBzZXQgdG8gbnVsbCBvciB1bmRlZmluZWQuIik7CitkZXNjcmlwdGlvbign
VGVzdHMgdGhlIG9wdGlvbmFsIHByb3BlcnRpZXMgb2YgRGV2aWNlT3JpZW50YXRpb25FdmVudC4g
RWFjaCBwcm9wZXJ0eSBzaG91bGQgYmUgbnVsbCBpZiBub3Qgc2V0LCBvciBzZXQgdG8gbnVsbCBv
ciB1bmRlZmluZWQuJyk7CiAKIHZhciBldmVudDsKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL3VwZGF0ZXMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL3Vw
ZGF0ZXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmll
bnRhdGlvbi9zY3JpcHQtdGVzdHMvdXBkYXRlcy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
NyBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgdXBkYXRlcyB0byB0aGUgb3JpZW50YXRpb24g
Y2F1c2VzIG5ldyBldmVudHMgdG8gZmlyZS4nKTsKKwordmFyIG1vY2tFdmVudDsKK2Z1bmN0aW9u
IHNldE1vY2tPcmllbnRhdGlvbihhbHBoYSwgYmV0YSwgZ2FtbWEpIHsKKyAgICBtb2NrRXZlbnQg
PSB7YWxwaGE6IGFscGhhLCBiZXRhOiBiZXRhLCBnYW1tYTogZ2FtbWF9OworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dE1vY2tEZXZpY2VPcmllbnRhdGlvbih0cnVlLCBtb2NrRXZlbnQuYWxwaGEsIHRydWUsIG1vY2tF
dmVudC5iZXRhLCB0cnVlLCBtb2NrRXZlbnQuZ2FtbWEpOworICAgIGVsc2UKKyAgICAgICAgZGVi
dWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29udHJv
bGxlcicpOworfQorCit2YXIgZGV2aWNlT3JpZW50YXRpb25FdmVudDsKK2Z1bmN0aW9uIGNoZWNr
T3JpZW50YXRpb24oZXZlbnQpIHsKKyAgICBkZXZpY2VPcmllbnRhdGlvbkV2ZW50ID0gZXZlbnQ7
CisgICAgc2hvdWxkQmUoJ2RldmljZU9yaWVudGF0aW9uRXZlbnQuYWxwaGEnLCAnbW9ja0V2ZW50
LmFscGhhJyk7CisgICAgc2hvdWxkQmUoJ2RldmljZU9yaWVudGF0aW9uRXZlbnQuYmV0YScsICdt
b2NrRXZlbnQuYmV0YScpOworICAgIHNob3VsZEJlKCdkZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmdh
bW1hJywgJ21vY2tFdmVudC5nYW1tYScpOworfQorCitmdW5jdGlvbiBmaXJzdExpc3RlbmVyKGV2
ZW50KSB7CisgICAgY2hlY2tPcmllbnRhdGlvbihldmVudCk7CisgICAgd2luZG93LnJlbW92ZUV2
ZW50TGlzdGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgZmlyc3RMaXN0ZW5lcik7CisKKyAgICBz
ZXRNb2NrT3JpZW50YXRpb24oMTEuMSwgMjIuMiwgMzMuMyk7CisgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2RldmljZW9yaWVudGF0aW9uJywgdXBkYXRlTGlzdGVuZXIpOworfQorCitmdW5j
dGlvbiB1cGRhdGVMaXN0ZW5lcihldmVudCkgeworICAgIGNoZWNrT3JpZW50YXRpb24oZXZlbnQp
OworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitzZXRNb2NrT3JpZW50YXRpb24oMS4xLCAyLjIs
IDMuMyk7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZGV2aWNlb3JpZW50YXRpb24nLCBmaXJz
dExpc3RlbmVyKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VP
cmllbnRhdGlvbi9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL3NjcmlwdC10ZXN0cy93aW5k
b3ctcHJvcGVydHkuanMJKHJldmlzaW9uIDY2ODUzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
RGV2aWNlT3JpZW50YXRpb24vc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSB3aW5k
b3cuRGV2aWNlT3JpZW50YXRpb25FdmVudCBhbmQgd2luZG93Lm9uZGV2aWNlb3JpZW50YXRpb24g
cHJvcGVydGllcyBhcmUgcHJlc2VudC4iKTsKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IHRoZSB3
aW5kb3cuRGV2aWNlT3JpZW50YXRpb25FdmVudCBhbmQgd2luZG93Lm9uZGV2aWNlb3JpZW50YXRp
b24gcHJvcGVydGllcyBhcmUgcHJlc2VudC4nKTsKIAogZnVuY3Rpb24gaGFzRGV2aWNlT3JpZW50
YXRpb25FdmVudFByb3BlcnR5KCkKIHsKICAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiB3aW5kb3cp
IHsKLSAgICAgICAgaWYgKHByb3BlcnR5ID09ICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50IikKKyAg
ICAgICAgaWYgKHByb3BlcnR5ID09ICdEZXZpY2VPcmllbnRhdGlvbkV2ZW50JykKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC0xOCw3ICsxOCw3
IEBAIHNob3VsZEJlVHJ1ZSgid2luZG93Lmhhc093blByb3BlcnR5KCdEZXYKIGZ1bmN0aW9uIGhh
c09uRGV2aWNlT3JpZW50YXRpb25Qcm9wZXJ0eSgpCiB7CiAgICAgZm9yICh2YXIgcHJvcGVydHkg
aW4gd2luZG93KSB7Ci0gICAgICAgIGlmIChwcm9wZXJ0eSA9PSAib25kZXZpY2VvcmllbnRhdGlv
biIpCisgICAgICAgIGlmIChwcm9wZXJ0eSA9PSAnb25kZXZpY2VvcmllbnRhdGlvbicpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>