<?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>29071</bug_id>
          
          <creation_ts>2009-09-08 23:14:44 -0700</creation_ts>
          <short_desc>[HTML5][Forms] Support for :in-range and :out-of-range CSS selectors</short_desc>
          <delta_ts>2010-12-29 10:30:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</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>http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#selector-in-range</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>28868</dependson>
    
    <dependson>29069</dependson>
          <blocked>27450</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>adele</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>michelangelo</cc>
    
    <cc>pkasting</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145660</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-08 23:14:44 -0700</bug_when>
    <thetext>Implement :in-range and :out-of-range selectors.  They should reflect ValidityState.rangeOverflow and .rangeUnderflow lively.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219272</commentid>
    <comment_count>1</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-04-29 16:48:13 -0700</bug_when>
    <thetext>*** Bug 27450 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327450</commentid>
    <comment_count>2</comment_count>
      <attachid>77592</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-12-28 17:23:25 -0800</bug_when>
    <thetext>Created attachment 77592
Patch.

Add support for :in-range and :out-of-range. They simply check InputType::rangeOverflow() and InputType::rangeUnderflow() to make a decision.
Note that WebKit clamps the value of input[type=range], so it will never be :out-of-range. It will also never be :invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327536</commentid>
    <comment_count>3</comment_count>
      <attachid>77592</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-29 04:29:54 -0800</bug_when>
    <thetext>Comment on attachment 77592
Patch.

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

Thank you for working on this!

&gt; WebCore/css/CSSStyleSelector.cpp:2678
&gt; +            case CSSSelector::PseudoInRange:
&gt; +                return e &amp;&amp; e-&gt;isInRange();
&gt; +            case CSSSelector::PseudoOutOfRange:
&gt; +                return e &amp;&amp; e-&gt;isOutOfRange();

Please add document()-&gt;setContainsValidaityStyleRules() like PseudoValid and PseudoInvalid, and update CSSStyleSelector::canShareStyleWithElement().

&gt; WebCore/html/InputType.h:93
&gt;      virtual bool supportsRequired() const;
&gt; +    virtual bool supportsRangeLimitation() const;
&gt;      virtual bool valueMissing(const String&amp;) const;

nit: supportsRangeLimitation() should be put just before rangeUnderflow().

&gt; WebCore/html/NumberInputType.h:65
&gt; +    virtual bool supportsRangeLimitation() const { return true; }

nit: We have no reason to have the body of a virtual function in a header file.

&gt; WebCore/html/RangeInputType.h:62
&gt; +    virtual bool supportsRangeLimitation() const { return true; }

ditto.

&gt; LayoutTests/ChangeLog:16
&gt; +        * fast/forms/controls-in-range-expected.txt: Added.
&gt; +        * fast/forms/controls-in-range.html: Added.
&gt; +        * fast/forms/controls-invalid-value-in-range-expected.txt: Added.
&gt; +        * fast/forms/controls-invalid-value-in-range.html: Added.
&gt; +        * fast/forms/controls-out-of-range-expected.txt: Added.
&gt; +        * fast/forms/controls-out-of-range.html: Added.
&gt; +        * fast/forms/script-tests/controls-in-range.js: Added.
&gt; +        * fast/forms/script-tests/controls-invalid-value-in-range.js: Added.
&gt; +        * fast/forms/script-tests/controls-out-of-range.js: Added.

These tests should be named as fast/css/pseudo-*.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327545</commentid>
    <comment_count>4</comment_count>
      <attachid>77614</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-12-29 06:11:24 -0800</bug_when>
    <thetext>Created attachment 77614
Patch.

Thank you for the review. I updated the patch based on your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327547</commentid>
    <comment_count>5</comment_count>
      <attachid>77614</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-29 06:22:24 -0800</bug_when>
    <thetext>Comment on attachment 77614
Patch.

Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327548</commentid>
    <comment_count>6</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-12-29 06:27:33 -0800</bug_when>
    <thetext>Thank you for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327571</commentid>
    <comment_count>7</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-12-29 08:02:37 -0800</bug_when>
    <thetext>Committed r74744. &lt;http://trac.webkit.org/changeset/74744&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327617</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-29 10:26:11 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74744 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327619</commentid>
    <comment_count>9</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-12-29 10:30:22 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; http://trac.webkit.org/changeset/74744 might have broken GTK Linux 64-bit Debug

Not likely. The test editing/selection/extend-by-character-005.html has been failing intermittently for a while now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77592</attachid>
            <date>2010-12-28 17:23:25 -0800</date>
            <delta_ts>2010-12-29 06:11:24 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>29071.patch</filename>
            <type>text/plain</type>
            <size>18820</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDcyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMTItMjggIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtIVE1MNV1bRm9ybXNdIFN1cHBvcnQgZm9yIDppbi1yYW5nZSBhbmQgOm91dC1vZi1yYW5nZSBD
U1Mgc2VsZWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTA3MQorCisgICAgICAgIFVzZSBJbnB1dFR5cGU6OnJhbmdlVW5kZXJmbG93KCkgYW5k
IElucHV0VHlwZTo6cmFuZ2VPdmVyZmxvdygpCisgICAgICAgIHRvIGRldGVybWluZSBpZiBhIGNv
bnRyb2wgaXMgaW4tcmFuZ2Ugb3Igb3V0LW9mLXJhbmdlLgorCisgICAgICAgIFRlc3RzOiBmYXN0
L2Zvcm1zL2NvbnRyb2xzLWluLXJhbmdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMv
Y29udHJvbHMtaW52YWxpZC12YWx1ZS1pbi1yYW5nZS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2Zvcm1zL2NvbnRyb2xzLW91dC1vZi1yYW5nZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTU2Vs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVkb0lkKToKKyAg
ICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0
b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3Ip
OgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpp
c0luUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aXNPdXRPZlJhbmdlKToKKyAg
ICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzdXBwb3J0c1JhbmdlTGltaXRhdGlvbik6Cisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OmlzSW5SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRF
bGVtZW50Ojppc091dE9mUmFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6c3VwcG9ydHNSYW5nZUxpbWl0YXRpb24pOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok51bWJlcklucHV0VHlwZTo6c3VwcG9ydHNSYW5nZUxpbWl0YXRpb24pOgorICAgICAgICAqIGh0
bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpz
dXBwb3J0c1JhbmdlTGltaXRhdGlvbik6CisKIDIwMTAtMTItMjggIFRha2FzaGkgVG95b3NoaW1h
ICA8dG95b3NoaW1AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDc0NjcyKQorKysgV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTEsNiArMzExLDggQEAgUHNldWRv
SWQgQ1NTU2VsZWN0b3I6OnBzZXVkb0lkKFBzZXVkb1R5cAogICAgIGNhc2UgUHNldWRvRmlyc3RQ
YWdlOgogICAgIGNhc2UgUHNldWRvTGVmdFBhZ2U6CiAgICAgY2FzZSBQc2V1ZG9SaWdodFBhZ2U6
CisgICAgY2FzZSBQc2V1ZG9JblJhbmdlOgorICAgIGNhc2UgUHNldWRvT3V0T2ZSYW5nZToKICAg
ICAgICAgcmV0dXJuIE5PUFNFVURPOwogICAgIGNhc2UgUHNldWRvTm90UGFyc2VkOgogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQzNyw2ICs0MzksOCBAQCBzdGF0aWMgSGFzaE1h
cDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGZ1bGxTY3JlZW4sICgiLXdlYmtpdC1mdWxsLXNjcmVlbiIpKTsKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZnVsbFNjcmVlbkRvY3VtZW50LCAoIi13ZWJr
aXQtZnVsbC1zY3JlZW4tZG9jdW1lbnQiKSk7CiAjZW5kaWYKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaW5SYW5nZSwgKCJpbi1yYW5nZSIpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3V0T2ZSYW5nZSwgKCJvdXQtb2YtcmFuZ2UiKSk7CiAK
ICAgICBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVk
b1R5cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlID0gMDsKICAgICBpZiAoIW5hbWVUb1BzZXVkb1R5cGUp
IHsKQEAgLTU1Miw2ICs1NTYsOCBAQCBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwg
Q1NTU2VsCiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChmdWxsU2NyZWVuLmltcGwoKSwg
Q1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW4pOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBl
LT5zZXQoZnVsbFNjcmVlbkRvY3VtZW50LmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxT
Y3JlZW5Eb2N1bWVudCk7CiAjZW5kaWYKKyAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGlu
UmFuZ2UuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvSW5SYW5nZSk7CisgICAgICAgIG5hbWVU
b1BzZXVkb1R5cGUtPnNldChvdXRPZlJhbmdlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb091
dE9mUmFuZ2UpOwogICAgIH0KICAgICByZXR1cm4gbmFtZVRvUHNldWRvVHlwZTsKIH0KQEAgLTY4
NSw2ICs2OTEsOCBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvCiAg
ICAgY2FzZSBQc2V1ZG9GdWxsU2NyZWVuOgogICAgIGNhc2UgUHNldWRvRnVsbFNjcmVlbkRvY3Vt
ZW50OgogI2VuZGlmCisgICAgY2FzZSBQc2V1ZG9JblJhbmdlOgorICAgIGNhc2UgUHNldWRvT3V0
T2ZSYW5nZToKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQc2V1ZG9GaXJzdFBhZ2U6CiAgICAg
Y2FzZSBQc2V1ZG9MZWZ0UGFnZToKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAkocmV2aXNpb24gNzQ2NzIpCisr
KyBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNiArMjIx
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUHNldWRvRnVsbFNjcmVlbiwK
ICAgICAgICAgICAgIFBzZXVkb0Z1bGxTY3JlZW5Eb2N1bWVudCwKICNlbmRpZgorICAgICAgICAg
ICAgUHNldWRvSW5SYW5nZSwKKyAgICAgICAgICAgIFBzZXVkb091dE9mUmFuZ2UsCiAgICAgICAg
IH07CiAKICAgICAgICAgZW51bSBNYXJnaW5Cb3hUeXBlIHsKSW5kZXg6IFdlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCShyZXZpc2lvbiA3NDY3MikKKysrIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcyLDYgKzI2NzIsMTAgQEAgYm9vbCBDU1NTdHls
ZVNlbGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6OgogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luUmFuZ2U6CisgICAgICAgICAgICAgICAgcmV0dXJu
IGUgJiYgZS0+aXNJblJhbmdlKCk7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9PdXRPZlJhbmdlOgorICAgICAgICAgICAgICAgIHJldHVybiBlICYmIGUtPmlzT3V0T2ZSYW5n
ZSgpOwogICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bjoKICAgICAg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vdFBhcnNlZDoKICAgICAgICAgICAgIGRl
ZmF1bHQ6CkluZGV4OiBXZWJDb3JlL2RvbS9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiA3NDY3MikKKysrIFdlYkNvcmUvZG9tL0VsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzA1LDYgKzMwNSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGhhc1VuYWNjZXB0YWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNJblJhbmdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNPdXRPZlJhbmdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
IAogICAgIHZpcnR1YWwgYm9vbCBmb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9ybUNvbnRyb2xWYWx1
ZU1hdGNoZXNSZW5kZXJlcihib29sKSB7IH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmgJKHJldmlzaW9uIDc0NjcyKQorKysgV2ViQ29yZS9odG1sL0Jhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Kik7
CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoV2hlZWxFdmVudCopOwogICAgIHZp
cnR1YWwgU3RyaW5nIHNlcmlhbGl6ZShkb3VibGUpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c1JhbmdlTGltaXRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJl
dmlzaW9uIDc0NjcyKQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDg3LDYgKzE0ODcsMTYgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojpo
YXNVbmFjY2VwdGFibGVWYQogICAgIHJldHVybiBkZXByZWNhdGVkSW5wdXRUeXBlKCkgPT0gTlVN
QkVSICYmIHJlbmRlcmVyKCkgJiYgIWlzQWNjZXB0YWJsZVZhbHVlKHRvUmVuZGVyVGV4dENvbnRy
b2wocmVuZGVyZXIoKSktPnRleHQoKSk7CiB9CiAKK2Jvb2wgSFRNTElucHV0RWxlbWVudDo6aXNJ
blJhbmdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnN1cHBvcnRzUmFuZ2VM
aW1pdGF0aW9uKCkgJiYgIXJhbmdlVW5kZXJmbG93KHZhbHVlKCkpICYmICFyYW5nZU92ZXJmbG93
KHZhbHVlKCkpOworfQorCitib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzT3V0T2ZSYW5nZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zdXBwb3J0c1JhbmdlTGltaXRhdGlvbigp
ICYmIChyYW5nZVVuZGVyZmxvdyh2YWx1ZSgpKSB8fCByYW5nZU92ZXJmbG93KHZhbHVlKCkpKTsK
K30KKwogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpuZWVkc0FjdGl2YXRpb25DYWxsYmFjaygpCiB7
CiAgICAgcmV0dXJuIGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSA9PSBQQVNTV09SRCB8fCBtX2F1dG9j
b21wbGV0ZSA9PSBPZmY7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgJKHJldmlzaW9uIDc0
NjcyKQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEyLDYgKzMxMiw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVW
YWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5hY2NlcHRh
YmxlVmFsdWUoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBpc0luUmFuZ2UoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNPdXRPZlJhbmdlKCkgY29uc3Q7CisKICAgICB2aXJ0dWFsIHZv
aWQgZG9jdW1lbnREaWRCZWNvbWVBY3RpdmUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJy
ZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKSW5kZXg6IFdl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwCShyZXZpc2lvbiA3NDY3MikKKysrIFdlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDExIEBAIGJvb2wgSW5wdXRUeXBlOjpzdXBw
b3J0c1JlcXVpcmVkKCkgY29uc3QKICAgICByZXR1cm4gc3VwcG9ydHNWYWxpZGF0aW9uKCk7CiB9
CiAKK2Jvb2wgSW5wdXRUeXBlOjpzdXBwb3J0c1JhbmdlTGltaXRhdGlvbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIElucHV0VHlwZTo6dmFsdWVNaXNzaW5nKGNvbnN0
IFN0cmluZyYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAkocmV2
aXNpb24gNzQ2NzIpCisrKyBXZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTg5LDYgKzg5LDcgQEAgcHVibGljOgogICAgIC8vIHNhbml0aXphdGlvbi4KICAgICB2aXJ0
dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
UmVxdWlyZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNSYW5nZUxpbWl0YXRp
b24oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYXR0ZXJuTWlzbWF0Y2goY29uc3QgU3RyaW5nJikg
Y29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJhbmdlVW5kZXJmbG93KGNvbnN0IFN0cmluZyYpIGNv
bnN0OwpJbmRleDogV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAkocmV2aXNpb24gNzQ2NzIpCisrKyBXZWJD
b3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlV2l0aERlY2ltYWxQ
bGFjZXMoY29uc3QgU3RyaW5nJiwgZG91YmxlLCB1bnNpZ25lZCopIGNvbnN0OwogICAgIHZpcnR1
YWwgU3RyaW5nIHNlcmlhbGl6ZShkb3VibGUpIGNvbnN0OwogICAgIHZpcnR1YWwgZG91YmxlIGFj
Y2VwdGFibGVFcnJvcihkb3VibGUpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1Jh
bmdlTGltaXRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCShyZXZpc2lvbiA3NDY3MikKKysr
IFdlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1
OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICB2aXJ0dWFsIGRvdWJsZSBw
YXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29uc3Q7CiAgICAgdmlydHVhbCBT
dHJpbmcgc2VyaWFsaXplKGRvdWJsZSkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
UmFuZ2VMaW1pdGF0aW9uKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzQ3MjcpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0xMi0yOCAgWWFl
bCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0hUTUw1XVtGb3Jtc10gU3VwcG9ydCBmb3IgOmlu
LXJhbmdlIGFuZCA6b3V0LW9mLXJhbmdlIENTUyBzZWxlY3RvcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDcxCisKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2NvbnRyb2xzLWluLXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9mb3Jtcy9jb250cm9scy1pbi1yYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2NvbnRyb2xzLWludmFsaWQtdmFsdWUtaW4tcmFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2NvbnRyb2xzLWludmFsaWQtdmFsdWUtaW4tcmFuZ2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9jb250cm9scy1vdXQtb2YtcmFuZ2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2NvbnRyb2xzLW91dC1vZi1y
YW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9jb250
cm9scy1pbi1yYW5nZS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvY29udHJvbHMtaW52YWxpZC12YWx1ZS1pbi1yYW5nZS5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvY29udHJvbHMtb3V0LW9mLXJhbmdlLmpzOiBBZGRlZC4K
KwogMjAxMC0xMi0yOCAgSGVsZGVyIENvcnJlaWEgIDxoZWxkZXJAc2VuY2hhLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvY29udHJvbHMtaW4tcmFuZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvY29udHJvbHMtaW4tcmFuZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jb250cm9scy1pbi1yYW5nZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRoYXQgd2UgZmluZCBjb250
cm9scyBpZiB0aGV5IGhhdmUgYSByYW5nZSBsaW1pdGF0aW9uIGFuZCBhcmUgaW4tcmFuZ2UuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImlucHV0W3R5cGU9bnVtYmVyXTppbi1yYW5nZSIpLmlkIGlzICJudW1iZXIxIgorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPXJhbmdlXTppbi1yYW5nZSIpLmlkIGlz
ICJyYW5nZTEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9ZGF0ZV06
aW4tcmFuZ2UiKS5pZCBpcyAiZGF0ZTEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ijppbi1yYW5nZSIpLmxlbmd0aCBpcyAzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKyAgCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRy
b2xzLWluLXJhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9j
b250cm9scy1pbi1yYW5nZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9jb250cm9scy1pbi1yYW5nZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9jb250cm9scy1pbi1yYW5nZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvY29udHJvbHMtaW52
YWxpZC12YWx1ZS1pbi1yYW5nZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9jb250cm9scy1pbnZhbGlkLXZhbHVlLWluLXJhbmdlLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvY29udHJvbHMtaW52YWxp
ZC12YWx1ZS1pbi1yYW5nZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMg
QEAKK1Rlc3RzIHRoYXQgaW52YWxpZCB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgaW4tcmFuZ2UuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImlucHV0W3R5cGU9bnVtYmVyXTppbi1yYW5nZSIpLmlkIGlzICJudW1iZXIxIgorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPXJhbmdlXTppbi1yYW5nZSIpLmlkIGlz
ICJyYW5nZTEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9ZGF0ZV06
aW4tcmFuZ2UiKS5pZCBpcyAiZGF0ZTEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ijppbi1yYW5nZSIpLmxlbmd0aCBpcyAzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKyAgCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRy
b2xzLWludmFsaWQtdmFsdWUtaW4tcmFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2NvbnRyb2xzLWludmFsaWQtdmFsdWUtaW4tcmFuZ2UuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvY29udHJvbHMtaW52YWxpZC12YWx1ZS1p
bi1yYW5nZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9j
b250cm9scy1pbnZhbGlkLXZhbHVlLWluLXJhbmdlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jb250cm9scy1vdXQt
b2YtcmFuZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvY29udHJvbHMtb3V0LW9mLXJhbmdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvY29udHJvbHMtb3V0LW9mLXJhbmdlLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCB3ZSBmaW5kIGNvbnRyb2xz
IGlmIHRoZXkgaGF2ZSBhIHJhbmdlIGxpbWl0YXRpb24gYW5kIGFyZSBvdXQtb2YtcmFuZ2UuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImlucHV0W3R5cGU9bnVtYmVyXTpvdXQtb2YtcmFuZ2UiKS5pZCBpcyAibnVtYmVyMSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT1kYXRlXTpvdXQtb2YtcmFuZ2Ui
KS5pZCBpcyAiZGF0ZTEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpvdXQtb2Yt
cmFuZ2UiKS5sZW5ndGggaXMgMgorCitXaGVuIHRoZSB2YWx1ZSBiZWNvbWVzIGluLXJhbmdlIGR5
bmFtaWNhbGx5LCB3ZSBkbyBub3QgZmluZCB0aGUgY29udHJvbCBhbnltb3JlCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9bnVtYmVyXTpvdXQtb2YtcmFuZ2UiKSBpcyBu
dWxsCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9ZGF0ZV06b3V0LW9m
LXJhbmdlIikgaXMgbnVsbAorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6b3V0LW9m
LXJhbmdlIikubGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRyb2xzLW91
dC1vZi1yYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvY29u
dHJvbHMtb3V0LW9mLXJhbmdlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2NvbnRyb2xzLW91dC1vZi1yYW5nZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9jb250cm9scy1vdXQtb2YtcmFuZ2UuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9jb250cm9scy1pbi1yYW5nZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9jb250cm9scy1pbi1yYW5nZS5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2NvbnRyb2xzLWluLXJh
bmdlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitkZXNjcmlwdGlvbignVGVzdHMg
dGhhdCB3ZSBmaW5kIGNvbnRyb2xzIGlmIHRoZXkgaGF2ZSBhIHJhbmdlIGxpbWl0YXRpb24gYW5k
IGFyZSBpbi1yYW5nZS4nKTsKKwordmFyIHBhcmVudERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwYXJlbnREaXYpOworcGFyZW50
RGl2LmlubmVySFRNTCA9ICc8aW5wdXQgaWQ9Im51bWJlcjEiIHR5cGU9Im51bWJlciIgbWluPTAg
bWF4PTEwIHZhbHVlPTU+PGlucHV0IGlkPSJyYW5nZTEiIHR5cGU9InJhbmdlIiBtaW49MCBtYXg9
MTAgdmFsdWU9NT48aW5wdXQgaWQ9ImRhdGUxIiB0eXBlPSJkYXRlIiBtaW49IjIwMTAtMTItMjgi
IG1heD0iMjAxMC0xMi0zMCIgdmFsdWU9IjIwMTAtMTItMjkiPjxpbnB1dCBpZD0idGV4dDEiIHR5
cGU9InRleHQiIG1pbj0wIG1heD0xMCB2YWx1ZT01PjxpbnB1dCBpZD0iY2hlY2tib3gxIiB0eXBl
PSJjaGVja2JveCI+ICAgIDxpbnB1dCBpZD0icmFkaW8xIiB0eXBlPSJyYWRpbyI+JzsKKworc2hv
dWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9bnVtYmVyXTppbi1yYW5n
ZSIpLmlkJywgJyJudW1iZXIxIicpOworc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
ImlucHV0W3R5cGU9cmFuZ2VdOmluLXJhbmdlIikuaWQnLCAnInJhbmdlMSInKTsKK3Nob3VsZEJl
KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPWRhdGVdOmluLXJhbmdlIikuaWQn
LCAnImRhdGUxIicpOworc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjppbi1y
YW5nZSIpLmxlbmd0aCcsICczJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvY29udHJvbHMtaW52YWxp
ZC12YWx1ZS1pbi1yYW5nZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9jb250cm9scy1pbnZhbGlkLXZhbHVlLWluLXJhbmdlLmpzCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvY29udHJvbHMtaW52
YWxpZC12YWx1ZS1pbi1yYW5nZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorZGVz
Y3JpcHRpb24oJ1Rlc3RzIHRoYXQgaW52YWxpZCB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgaW4tcmFu
Z2UuJyk7CisKK3ZhciBwYXJlbnREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
K2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50RGl2KTsKK3BhcmVudERpdi5pbm5lckhU
TUwgPSAnPGlucHV0IGlkPSJudW1iZXIxIiB0eXBlPSJudW1iZXIiIG1pbj0wIG1heD0xMCB2YWx1
ZT0iQUJDIj48aW5wdXQgaWQ9InJhbmdlMSIgdHlwZT0icmFuZ2UiIG1pbj0wIG1heD0xMCB2YWx1
ZT0iQUJDIj48aW5wdXQgaWQ9ImRhdGUxIiB0eXBlPSJkYXRlIiBtaW49IjIwMTAtMTItMjgiIG1h
eD0iMjAxMC0xMi0yOCIgdmFsdWU9IkFCQyI+PGlucHV0IGlkPSJ0ZXh0MSIgdHlwZT0idGV4dCIg
bWluPTAgbWF4PTEwIHZhbHVlPSJBQkMiPjxpbnB1dCBpZD0iY2hlY2tib3gxIiB0eXBlPSJjaGVj
a2JveCI+ICAgIDxpbnB1dCBpZD0icmFkaW8xIiB0eXBlPSJyYWRpbyI+JzsKKworc2hvdWxkQmUo
J2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9bnVtYmVyXTppbi1yYW5nZSIpLmlk
JywgJyJudW1iZXIxIicpOworc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0
W3R5cGU9cmFuZ2VdOmluLXJhbmdlIikuaWQnLCAnInJhbmdlMSInKTsKK3Nob3VsZEJlKCdkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPWRhdGVdOmluLXJhbmdlIikuaWQnLCAnImRh
dGUxIicpOworc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjppbi1yYW5nZSIp
Lmxlbmd0aCcsICczJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvY29udHJvbHMtb3V0LW9mLXJhbmdl
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2Nv
bnRyb2xzLW91dC1vZi1yYW5nZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc2NyaXB0LXRlc3RzL2NvbnRyb2xzLW91dC1vZi1yYW5nZS5qcwkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyMCBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgd2UgZmluZCBjb250cm9s
cyBpZiB0aGV5IGhhdmUgYSByYW5nZSBsaW1pdGF0aW9uIGFuZCBhcmUgb3V0LW9mLXJhbmdlLicp
OworCit2YXIgcGFyZW50RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhcmVudERpdik7CitwYXJlbnREaXYuaW5uZXJIVE1MID0g
JzxpbnB1dCBpZD0ibnVtYmVyMSIgdHlwZT0ibnVtYmVyIiBtaW49MCBtYXg9MTAgdmFsdWU9NTA+
PGlucHV0IGlkPSJkYXRlMSIgdHlwZT0iZGF0ZSIgbWluPSIyMDEwLTEyLTI4IiBtYXg9IjIwMTAt
MTItMzAiIHZhbHVlPSIyMDExLTAxLTAxIj48aW5wdXQgaWQ9InRleHQxIiB0eXBlPSJ0ZXh0IiBt
aW49MCBtYXg9MTAgdmFsdWU9NTA+PGlucHV0IGlkPSJjaGVja2JveDEiIHR5cGU9ImNoZWNrYm94
Ij48aW5wdXQgaWQ9InJhZGlvMSIgdHlwZT0icmFkaW8iPic7CisKK3Nob3VsZEJlKCdkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPW51bWJlcl06b3V0LW9mLXJhbmdlIikuaWQnLCAn
Im51bWJlcjEiJyk7CitzaG91bGRCZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlw
ZT1kYXRlXTpvdXQtb2YtcmFuZ2UiKS5pZCcsICciZGF0ZTEiJyk7CitzaG91bGRCZSgnZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiOm91dC1vZi1yYW5nZSIpLmxlbmd0aCcsICcyJyk7CisKK2Rl
YnVnKCIiKTsKK2RlYnVnKCJXaGVuIHRoZSB2YWx1ZSBiZWNvbWVzIGluLXJhbmdlIGR5bmFtaWNh
bGx5LCB3ZSBkbyBub3QgZmluZCB0aGUgY29udHJvbCBhbnltb3JlIik7Citkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibnVtYmVyMSIpLnZhbHVlID0gNTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkYXRlMSIpLnZhbHVlID0gIjIwMTAtMTItMjgiOworCitzaG91bGRCZSgnZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiaW5wdXRbdHlwZT1udW1iZXJdOm91dC1vZi1yYW5nZSIpJywgJ251bGwnKTsK
K3Nob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPWRhdGVdOm91dC1v
Zi1yYW5nZSIpJywgJ251bGwnKTsKK3Nob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCI6b3V0LW9mLXJhbmdlIikubGVuZ3RoJywgJzAnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="68739"
          type_id="1"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77614</attachid>
            <date>2010-12-29 06:11:24 -0800</date>
            <delta_ts>2010-12-29 08:01:15 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>29071.patch</filename>
            <type>text/plain</type>
            <size>21565</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDc0MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMTItMjkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtIVE1MNV1bRm9ybXNdIFN1cHBvcnQgZm9yIDppbi1yYW5nZSBhbmQgOm91dC1vZi1yYW5nZSBD
U1Mgc2VsZWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTA3MQorCisgICAgICAgIFVzZSBJbnB1dFR5cGU6OnJhbmdlVW5kZXJmbG93KCkgYW5k
IElucHV0VHlwZTo6cmFuZ2VPdmVyZmxvdygpCisgICAgICAgIHRvIGRldGVybWluZSBpZiBhIGNv
bnRyb2wgaXMgaW4tcmFuZ2Ugb3Igb3V0LW9mLXJhbmdlLgorCisgICAgICAgIFRlc3RzOiBmYXN0
L2Nzcy9wc2V1ZG8taW4tcmFuZ2UtaW52YWxpZC12YWx1ZS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2Nzcy9wc2V1ZG8taW4tcmFuZ2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvcHNl
dWRvLW91dC1vZi1yYW5nZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVkb0lkKToKKyAgICAgICAgKFdlYkNv
cmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6
OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKToKKyAg
ICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aXNJblJh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmlzT3V0T2ZSYW5nZSk6CisgICAgICAg
ICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzdXBwb3J0c1JhbmdlTGltaXRhdGlvbik6CisgICAg
ICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
aXNJblJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmlzT3V0T2ZS
YW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpzdXBwb3J0c1Jh
bmdlTGltaXRhdGlvbik6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBo
dG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5
cGU6OnN1cHBvcnRzUmFuZ2VMaW1pdGF0aW9uKToKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmFuZ2VJbnB1dFR5cGU6OnN1cHBvcnRzUmFuZ2VMaW1pdGF0aW9uKToKKyAgICAgICAg
KiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisKIDIwMTAtMTItMjkgIEtlbnQgSGFuc2VuICA8a2Vu
dC5oYW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5u
LgpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAkocmV2aXNpb24gNzQ2NzIpCisrKyBXZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxMSw2ICszMTEsOCBAQCBQc2V1ZG9J
ZCBDU1NTZWxlY3Rvcjo6cHNldWRvSWQoUHNldWRvVHlwCiAgICAgY2FzZSBQc2V1ZG9GaXJzdFBh
Z2U6CiAgICAgY2FzZSBQc2V1ZG9MZWZ0UGFnZToKICAgICBjYXNlIFBzZXVkb1JpZ2h0UGFnZToK
KyAgICBjYXNlIFBzZXVkb0luUmFuZ2U6CisgICAgY2FzZSBQc2V1ZG9PdXRPZlJhbmdlOgogICAg
ICAgICByZXR1cm4gTk9QU0VVRE87CiAgICAgY2FzZSBQc2V1ZG9Ob3RQYXJzZWQ6CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDM3LDYgKzQzOSw4IEBAIHN0YXRpYyBIYXNoTWFw
PEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWwKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZnVsbFNjcmVlbiwgKCItd2Via2l0LWZ1bGwtc2NyZWVuIikpOwogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmdWxsU2NyZWVuRG9jdW1lbnQsICgiLXdlYmtp
dC1mdWxsLXNjcmVlbi1kb2N1bWVudCIpKTsKICNlbmRpZgorICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBpblJhbmdlLCAoImluLXJhbmdlIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvdXRPZlJhbmdlLCAoIm91dC1vZi1yYW5nZSIpKTsKIAog
ICAgIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rvcjo6UHNldWRv
VHlwZT4qIG5hbWVUb1BzZXVkb1R5cGUgPSAwOwogICAgIGlmICghbmFtZVRvUHNldWRvVHlwZSkg
ewpAQCAtNTUyLDYgKzU1Niw4IEBAIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBD
U1NTZWwKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGZ1bGxTY3JlZW4uaW1wbCgpLCBD
U1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVlbik7CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUt
PnNldChmdWxsU2NyZWVuRG9jdW1lbnQuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNj
cmVlbkRvY3VtZW50KTsKICNlbmRpZgorICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoaW5S
YW5nZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9JblJhbmdlKTsKKyAgICAgICAgbmFtZVRv
UHNldWRvVHlwZS0+c2V0KG91dE9mUmFuZ2UuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvT3V0
T2ZSYW5nZSk7CiAgICAgfQogICAgIHJldHVybiBuYW1lVG9Qc2V1ZG9UeXBlOwogfQpAQCAtNjg1
LDYgKzY5MSw4IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY28KICAg
ICBjYXNlIFBzZXVkb0Z1bGxTY3JlZW46CiAgICAgY2FzZSBQc2V1ZG9GdWxsU2NyZWVuRG9jdW1l
bnQ6CiAjZW5kaWYKKyAgICBjYXNlIFBzZXVkb0luUmFuZ2U6CisgICAgY2FzZSBQc2V1ZG9PdXRP
ZlJhbmdlOgogICAgICAgICBicmVhazsKICAgICBjYXNlIFBzZXVkb0ZpcnN0UGFnZToKICAgICBj
YXNlIFBzZXVkb0xlZnRQYWdlOgpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCShyZXZpc2lvbiA3NDY3MikKKysr
IFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw2ICsyMjEs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBQc2V1ZG9GdWxsU2NyZWVuLAog
ICAgICAgICAgICAgUHNldWRvRnVsbFNjcmVlbkRvY3VtZW50LAogI2VuZGlmCisgICAgICAgICAg
ICBQc2V1ZG9JblJhbmdlLAorICAgICAgICAgICAgUHNldWRvT3V0T2ZSYW5nZSwKICAgICAgICAg
fTsKIAogICAgICAgICBlbnVtIE1hcmdpbkJveFR5cGUgewpJbmRleDogV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHJldmlzaW9uIDc0NjcyKQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTUsNiArMTAxNSwxMiBAQCBib29sIENTU1N0eWxl
U2VsZWN0b3I6OmNhblNoYXJlU3R5bGVXaXRoCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgaWYgKHdpbGxWYWxpZGF0ZSAmJiAocy0+aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgp
ICE9IG1fZWxlbWVudC0+aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgaWYgKHMtPmlzSW5SYW5n
ZSgpICE9IG1fZWxlbWVudC0+aXNJblJhbmdlKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICAgICAgICAgIGlmIChzLT5pc091dE9mUmFuZ2UoKSAhPSBtX2Vs
ZW1lbnQtPmlzT3V0T2ZSYW5nZSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChzdHlsZS0+dHJhbnNpdGlvbnMoKSB8
fCBzdHlsZS0+YW5pbWF0aW9ucygpKQpAQCAtMjY3Miw2ICsyNjc4LDE2IEBAIGJvb2wgQ1NTU3R5
bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjoKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCisgICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JblJhbmdlOgorICAgICAgICAgICAgICAgIGlmICgh
ZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGUt
PmRvY3VtZW50KCktPnNldENvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVzKCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGUtPmlzSW5SYW5nZSgpOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvT3V0T2ZSYW5nZToKKyAgICAgICAgICAgICAgICBpZiAoIWUpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBlLT5kb2N1bWVudCgpLT5z
ZXRDb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpOworICAgICAgICAgICAgICAgIHJldHVybiBl
LT5pc091dE9mUmFuZ2UoKTsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Vu
a25vd246CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob3RQYXJzZWQ6CiAg
ICAgICAgICAgICBkZWZhdWx0OgpJbmRleDogV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24gNzQ2NzIpCisrKyBXZWJDb3Jl
L2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwNSw2ICszMDUsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzSW5SYW5nZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzT3V0T2ZSYW5nZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNS
ZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEZv
cm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoYm9vbCkgeyB9CkluZGV4OiBXZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAkocmV2aXNpb24gNzQ2NzIpCisrKyBXZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTQsNiArOTQsMTEgQEAgYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnJhbmdlT3Zlcgog
ICAgIHJldHVybiBpc2Zpbml0ZShkb3VibGVWYWx1ZSkgJiYgZG91YmxlVmFsdWUgPiBtYXhpbXVt
KCk7CiB9CiAKK2Jvb2wgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzdXBwb3J0c1JhbmdlTGlt
aXRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGRvdWJsZSBCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiB7CiAgICAg
ZG91YmxlIG1zID0gY3VycmVudFRpbWVNUygpOwpJbmRleDogV2ViQ29yZS9odG1sL0Jhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaAkocmV2aXNpb24gNzQ2NzIpCisrKyBXZWJDb3JlL2h0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIHJhbmdlVW5kZXJmbG93KGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCByYW5nZU92ZXJmbG93KGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c1JhbmdlTGltaXRhdGlvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgZG91YmxlIGRl
ZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzdGVwTWlzbWF0
Y2goY29uc3QgU3RyaW5nJiwgZG91YmxlKSBjb25zdDsKICAgICB2aXJ0dWFsIGRvdWJsZSBzdGVw
QmFzZSgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24g
NzQ2NzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0ODcsNiArMTQ4NywxNiBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6Omhhc1VuYWNj
ZXB0YWJsZVZhCiAgICAgcmV0dXJuIGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSA9PSBOVU1CRVIgJiYg
cmVuZGVyZXIoKSAmJiAhaXNBY2NlcHRhYmxlVmFsdWUodG9SZW5kZXJUZXh0Q29udHJvbChyZW5k
ZXJlcigpKS0+dGV4dCgpKTsKIH0KIAorYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc0luUmFuZ2Uo
KSBjb25zdAoreworICAgIHJldHVybiBtX2lucHV0VHlwZS0+c3VwcG9ydHNSYW5nZUxpbWl0YXRp
b24oKSAmJiAhcmFuZ2VVbmRlcmZsb3codmFsdWUoKSkgJiYgIXJhbmdlT3ZlcmZsb3codmFsdWUo
KSk7Cit9CisKK2Jvb2wgSFRNTElucHV0RWxlbWVudDo6aXNPdXRPZlJhbmdlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnN1cHBvcnRzUmFuZ2VMaW1pdGF0aW9uKCkgJiYgKHJh
bmdlVW5kZXJmbG93KHZhbHVlKCkpIHx8IHJhbmdlT3ZlcmZsb3codmFsdWUoKSkpOworfQorCiBi
b29sIEhUTUxJbnB1dEVsZW1lbnQ6Om5lZWRzQWN0aXZhdGlvbkNhbGxiYWNrKCkKIHsKICAgICBy
ZXR1cm4gZGVwcmVjYXRlZElucHV0VHlwZSgpID09IFBBU1NXT1JEIHx8IG1fYXV0b2NvbXBsZXRl
ID09IE9mZjsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkocmV2aXNpb24gNzQ2NzIpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIs
NiArMzEyLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNv
bnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1
ZSgpIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIGlzSW5SYW5nZSgpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc091dE9mUmFuZ2UoKSBjb25zdDsKKwogICAgIHZpcnR1YWwgdm9pZCBkb2N1
bWVudERpZEJlY29tZUFjdGl2ZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNl
QXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxLVVJMPiYpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0lucHV0VHlwZS5j
cHAJKHJldmlzaW9uIDc0NjcyKQorKysgV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIyMCw2ICsyMjAsMTEgQEAgYm9vbCBJbnB1dFR5cGU6OnJhbmdlT3ZlcmZs
b3coY29uc3QgU3RyaQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBJbnB1dFR5cGU6OnN1
cHBvcnRzUmFuZ2VMaW1pdGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IGRvdWJsZSBJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIDA7CkluZGV4OiBXZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCShyZXZpc2lvbiA3NDY3MikKKysrIFdlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHBhdHRlcm5NaXNtYXRjaChjb25zdCBTdHJpbmcmKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgcmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIHJhbmdlT3ZlcmZsb3coY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzUmFuZ2VMaW1pdGF0aW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBk
b3VibGUgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUg
bWluaW11bSgpIGNvbnN0OwogICAgIHZpcnR1YWwgZG91YmxlIG1heGltdW0oKSBjb25zdDsKSW5k
ZXg6IFdlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCShyZXZpc2lvbiA3NDY3MikKKysrIFdlYkNvcmUv
aHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEwLDEx
IEBAIGJvb2wgTnVtYmVySW5wdXRUeXBlOjpyYW5nZU92ZXJmbG93KGNvbnMKICAgICByZXR1cm4g
aXNmaW5pdGUoZG91YmxlVmFsdWUpICYmIGRvdWJsZVZhbHVlID4gbWF4aW11bSgpOwogfQogCiti
b29sIE51bWJlcklucHV0VHlwZTo6c3VwcG9ydHNSYW5nZUxpbWl0YXRpb24oKSBjb25zdAorewor
ICAgIHJldHVybiB0cnVlOworfQorCiBkb3VibGUgTnVtYmVySW5wdXRUeXBlOjptaW5pbXVtKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPmZhc3RHZXRBdHRy
aWJ1dGUobWluQXR0ciksIG51bWJlckRlZmF1bHRNaW5pbXVtKTsKQEAgLTIyOSw1ICsyMzQsNCBA
QCBkb3VibGUgTnVtYmVySW5wdXRUeXBlOjphY2NlcHRhYmxlRXJyb3IoCiAgICAgcmV0dXJuIHN0
ZXAgLyBwb3coMi4wLCBGTFRfTUFOVF9ESUcpOwogfQogCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFdlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgJKHJldmlzaW9uIDc0NjcyKQorKysgV2ViQ29y
ZS9odG1sL051bWJlcklucHV0VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCByYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgcmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNSYW5nZUxpbWl0YXRpb24oKSBjb25zdDsKICAgICB2aXJ0dWFsIGRvdWJs
ZSBtaW5pbXVtKCkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgbWF4aW11bSgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJiwgZG91YmxlKSBjb25z
dDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAkocmV2aXNpb24gNzQ2NzIpCisrKyBXZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NCw2ICs5NCwx
MSBAQCBib29sIFJhbmdlSW5wdXRUeXBlOjpyYW5nZU92ZXJmbG93KGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCitib29sIFJhbmdlSW5wdXRUeXBlOjpzdXBwb3J0c1JhbmdlTGltaXRhdGlv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGRvdWJsZSBSYW5nZUlucHV0VHlw
ZTo6bWluaW11bSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVudCgp
LT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCByYW5nZURlZmF1bHRNaW5pbXVtKTsKSW5kZXg6
IFdlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5oCShyZXZpc2lvbiA3NDY3MikKKysrIFdlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgcmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IHJhbmdlT3ZlcmZsb3coY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzUmFuZ2VMaW1pdGF0aW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgbWluaW11
bSgpIGNvbnN0OwogICAgIHZpcnR1YWwgZG91YmxlIG1heGltdW0oKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgc3RlcE1pc21hdGNoKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29uc3Q7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3NDc0MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEwLTEyLTI5ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhh
cm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbSFRNTDVdW0Zvcm1zXSBTdXBwb3J0IGZvciA6aW4tcmFuZ2UgYW5kIDpvdXQtb2Yt
cmFuZ2UgQ1NTIHNlbGVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjkwNzEKKworICAgICAgICAqIGZhc3QvY3NzL3BzZXVkby1pbi1yYW5nZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BzZXVkby1pbi1yYW5nZS1p
bnZhbGlkLXZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcHNl
dWRvLWluLXJhbmdlLWludmFsaWQtdmFsdWUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MvcHNldWRvLWluLXJhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BzZXVk
by1vdXQtb2YtcmFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9w
c2V1ZG8tb3V0LW9mLXJhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3Njcmlw
dC10ZXN0cy9wc2V1ZG8taW4tcmFuZ2UtaW52YWxpZC12YWx1ZS5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL3BzZXVkby1pbi1yYW5nZS5qczogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL3BzZXVkby1vdXQtb2YtcmFuZ2UuanM6IEFkZGVk
LgorCiAyMDEwLTEyLTI4ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL3BzZXVkby1pbi1yYW5nZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWluLXJhbmdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1pbi1yYW5nZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRoYXQgd2UgZmluZCBjb250cm9s
cyBpZiB0aGV5IGhhdmUgYSByYW5nZSBsaW1pdGF0aW9uIGFuZCBhcmUgaW4tcmFuZ2UuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
ImlucHV0W3R5cGU9bnVtYmVyXTppbi1yYW5nZSIpLmlkIGlzICJudW1iZXIxIgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPXJhbmdlXTppbi1yYW5nZSIpLmlkIGlzICJy
YW5nZTEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9ZGF0ZV06aW4t
cmFuZ2UiKS5pZCBpcyAiZGF0ZTEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpp
bi1yYW5nZSIpLmxlbmd0aCBpcyAzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKyAgCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8taW4t
cmFuZ2UtaW52YWxpZC12YWx1ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcHNldWRvLWluLXJhbmdlLWludmFsaWQtdmFsdWUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWluLXJhbmdlLWludmFs
aWQtdmFsdWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACitUZXN0
cyB0aGF0IGludmFsaWQgdmFsdWVzIGFyZSBjb25zaWRlcmVkIGluLXJhbmdlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1
dFt0eXBlPW51bWJlcl06aW4tcmFuZ2UiKS5pZCBpcyAibnVtYmVyMSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT1yYW5nZV06aW4tcmFuZ2UiKS5pZCBpcyAicmFuZ2Ux
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPWRhdGVdOmluLXJhbmdl
IikuaWQgaXMgImRhdGUxIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6aW4tcmFu
Z2UiKS5sZW5ndGggaXMgMworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisgIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWluLXJhbmdl
LWludmFsaWQtdmFsdWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
c2V1ZG8taW4tcmFuZ2UtaW52YWxpZC12YWx1ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcHNldWRvLWluLXJhbmdlLWludmFsaWQtdmFsdWUuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcHNldWRvLWluLXJhbmdlLWludmFs
aWQtdmFsdWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8taW4tcmFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8taW4tcmFuZ2UuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1pbi1yYW5nZS5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wc2V1ZG8taW4tcmFuZ2UuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
c2V1ZG8tb3V0LW9mLXJhbmdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9wc2V1ZG8tb3V0LW9mLXJhbmdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1vdXQtb2YtcmFuZ2UtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IHdlIGZpbmQgY29udHJv
bHMgaWYgdGhleSBoYXZlIGEgcmFuZ2UgbGltaXRhdGlvbiBhbmQgYXJlIG91dC1vZi1yYW5nZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW5wdXRbdHlwZT1udW1iZXJdOm91dC1vZi1yYW5nZSIpLmlkIGlzICJudW1iZXIxIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPWRhdGVdOm91dC1vZi1yYW5n
ZSIpLmlkIGlzICJkYXRlMSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm91dC1v
Zi1yYW5nZSIpLmxlbmd0aCBpcyAyCisKK1doZW4gdGhlIHZhbHVlIGJlY29tZXMgaW4tcmFuZ2Ug
ZHluYW1pY2FsbHksIHdlIGRvIG5vdCBmaW5kIHRoZSBjb250cm9sIGFueW1vcmUKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT1udW1iZXJdOm91dC1vZi1yYW5nZSIpIGlz
IG51bGwKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT1kYXRlXTpvdXQt
b2YtcmFuZ2UiKSBpcyBudWxsCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpvdXQt
b2YtcmFuZ2UiKS5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1vdXQt
b2YtcmFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8t
b3V0LW9mLXJhbmdlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
c2V1ZG8tb3V0LW9mLXJhbmdlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL3BzZXVkby1vdXQtb2YtcmFuZ2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3JpcHQtdGVzdHMvcHNl
dWRvLWluLXJhbmdlLWludmFsaWQtdmFsdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL3BzZXVkby1pbi1yYW5nZS1pbnZhbGlkLXZhbHVlLmpzCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL3BzZXVkby1p
bi1yYW5nZS1pbnZhbGlkLXZhbHVlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitk
ZXNjcmlwdGlvbignVGVzdHMgdGhhdCBpbnZhbGlkIHZhbHVlcyBhcmUgY29uc2lkZXJlZCBpbi1y
YW5nZS4nKTsKKwordmFyIHBhcmVudERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwYXJlbnREaXYpOworcGFyZW50RGl2LmlubmVy
SFRNTCA9ICc8aW5wdXQgaWQ9Im51bWJlcjEiIHR5cGU9Im51bWJlciIgbWluPTAgbWF4PTEwIHZh
bHVlPSJBQkMiPjxpbnB1dCBpZD0icmFuZ2UxIiB0eXBlPSJyYW5nZSIgbWluPTAgbWF4PTEwIHZh
bHVlPSJBQkMiPjxpbnB1dCBpZD0iZGF0ZTEiIHR5cGU9ImRhdGUiIG1pbj0iMjAxMC0xMi0yOCIg
bWF4PSIyMDEwLTEyLTI4IiB2YWx1ZT0iQUJDIj48aW5wdXQgaWQ9InRleHQxIiB0eXBlPSJ0ZXh0
IiBtaW49MCBtYXg9MTAgdmFsdWU9IkFCQyI+PGlucHV0IGlkPSJjaGVja2JveDEiIHR5cGU9ImNo
ZWNrYm94Ij4gICAgPGlucHV0IGlkPSJyYWRpbzEiIHR5cGU9InJhZGlvIj4nOworCitzaG91bGRC
ZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT1udW1iZXJdOmluLXJhbmdlIiku
aWQnLCAnIm51bWJlcjEiJyk7CitzaG91bGRCZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5w
dXRbdHlwZT1yYW5nZV06aW4tcmFuZ2UiKS5pZCcsICcicmFuZ2UxIicpOworc2hvdWxkQmUoJ2Rv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9ZGF0ZV06aW4tcmFuZ2UiKS5pZCcsICci
ZGF0ZTEiJyk7CitzaG91bGRCZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmluLXJhbmdl
IikubGVuZ3RoJywgJzMnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3JpcHQtdGVzdHMvcHNldWRvLWluLXJhbmdlLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3NjcmlwdC10ZXN0cy9wc2V1ZG8taW4t
cmFuZ2UuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3JpcHQtdGVz
dHMvcHNldWRvLWluLXJhbmdlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitkZXNj
cmlwdGlvbignVGVzdHMgdGhhdCB3ZSBmaW5kIGNvbnRyb2xzIGlmIHRoZXkgaGF2ZSBhIHJhbmdl
IGxpbWl0YXRpb24gYW5kIGFyZSBpbi1yYW5nZS4nKTsKKwordmFyIHBhcmVudERpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwYXJl
bnREaXYpOworcGFyZW50RGl2LmlubmVySFRNTCA9ICc8aW5wdXQgaWQ9Im51bWJlcjEiIHR5cGU9
Im51bWJlciIgbWluPTAgbWF4PTEwIHZhbHVlPTU+PGlucHV0IGlkPSJyYW5nZTEiIHR5cGU9InJh
bmdlIiBtaW49MCBtYXg9MTAgdmFsdWU9NT48aW5wdXQgaWQ9ImRhdGUxIiB0eXBlPSJkYXRlIiBt
aW49IjIwMTAtMTItMjgiIG1heD0iMjAxMC0xMi0zMCIgdmFsdWU9IjIwMTAtMTItMjkiPjxpbnB1
dCBpZD0idGV4dDEiIHR5cGU9InRleHQiIG1pbj0wIG1heD0xMCB2YWx1ZT01PjxpbnB1dCBpZD0i
Y2hlY2tib3gxIiB0eXBlPSJjaGVja2JveCI+ICAgIDxpbnB1dCBpZD0icmFkaW8xIiB0eXBlPSJy
YWRpbyI+JzsKKworc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9
bnVtYmVyXTppbi1yYW5nZSIpLmlkJywgJyJudW1iZXIxIicpOworc2hvdWxkQmUoJ2RvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9cmFuZ2VdOmluLXJhbmdlIikuaWQnLCAnInJhbmdl
MSInKTsKK3Nob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPWRhdGVd
OmluLXJhbmdlIikuaWQnLCAnImRhdGUxIicpOworc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIjppbi1yYW5nZSIpLmxlbmd0aCcsICczJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL3Bz
ZXVkby1vdXQtb2YtcmFuZ2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
c2NyaXB0LXRlc3RzL3BzZXVkby1vdXQtb2YtcmFuZ2UuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9zY3JpcHQtdGVzdHMvcHNldWRvLW91dC1vZi1yYW5nZS5qcwkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyMCBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgd2UgZmlu
ZCBjb250cm9scyBpZiB0aGV5IGhhdmUgYSByYW5nZSBsaW1pdGF0aW9uIGFuZCBhcmUgb3V0LW9m
LXJhbmdlLicpOworCit2YXIgcGFyZW50RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhcmVudERpdik7CitwYXJlbnREaXYuaW5u
ZXJIVE1MID0gJzxpbnB1dCBpZD0ibnVtYmVyMSIgdHlwZT0ibnVtYmVyIiBtaW49MCBtYXg9MTAg
dmFsdWU9NTA+PGlucHV0IGlkPSJkYXRlMSIgdHlwZT0iZGF0ZSIgbWluPSIyMDEwLTEyLTI4IiBt
YXg9IjIwMTAtMTItMzAiIHZhbHVlPSIyMDExLTAxLTAxIj48aW5wdXQgaWQ9InRleHQxIiB0eXBl
PSJ0ZXh0IiBtaW49MCBtYXg9MTAgdmFsdWU9NTA+PGlucHV0IGlkPSJjaGVja2JveDEiIHR5cGU9
ImNoZWNrYm94Ij48aW5wdXQgaWQ9InJhZGlvMSIgdHlwZT0icmFkaW8iPic7CisKK3Nob3VsZEJl
KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPW51bWJlcl06b3V0LW9mLXJhbmdl
IikuaWQnLCAnIm51bWJlcjEiJyk7CitzaG91bGRCZSgnZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
aW5wdXRbdHlwZT1kYXRlXTpvdXQtb2YtcmFuZ2UiKS5pZCcsICciZGF0ZTEiJyk7CitzaG91bGRC
ZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm91dC1vZi1yYW5nZSIpLmxlbmd0aCcsICcy
Jyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJXaGVuIHRoZSB2YWx1ZSBiZWNvbWVzIGluLXJhbmdl
IGR5bmFtaWNhbGx5LCB3ZSBkbyBub3QgZmluZCB0aGUgY29udHJvbCBhbnltb3JlIik7Citkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgibnVtYmVyMSIpLnZhbHVlID0gNTsKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkYXRlMSIpLnZhbHVlID0gIjIwMTAtMTItMjgiOworCitzaG91bGRCZSgnZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT1udW1iZXJdOm91dC1vZi1yYW5nZSIpJywg
J251bGwnKTsKK3Nob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFt0eXBlPWRh
dGVdOm91dC1vZi1yYW5nZSIpJywgJ251bGwnKTsKK3Nob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6b3V0LW9mLXJhbmdlIikubGVuZ3RoJywgJzAnKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="68770"
          type_id="1"
          status="+"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>