<?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>80380</bug_id>
          
          <creation_ts>2012-03-05 22:21:43 -0800</creation_ts>
          <short_desc>[Forms] The &quot;meter&quot; element should not be a form-associated element.</short_desc>
          <delta_ts>2012-03-15 18:49:28 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>80392</dependson>
          <blocked>80240</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571484</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-03-05 22:21:43 -0800</bug_when>
    <thetext>According the specification, the &quot;optgroup&quot; element isn&apos;t a form-associate element.
http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#form-associated-element

However, current implementation of HTMLMeterElement is derived from HTMLFormControlElement. We have unexpected dependency between HTMLOptGroupElement and HTMLFormControlElement and FormAssociatedElement. Also, We waste time in loop of HTMLFormElement::m_associatedElements.

For clear understanding and better maintainability, it is better that C++ class hierarchy should be similar to specified in the specification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578136</commentid>
    <comment_count>1</comment_count>
      <attachid>131778</attachid>
    <who name="">yosin</who>
    <bug_when>2012-03-13 21:09:18 -0700</bug_when>
    <thetext>Created attachment 131778
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578140</commentid>
    <comment_count>2</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-03-13 21:14:35 -0700</bug_when>
    <thetext>Patch 1 contains changes for HTMLMeterElement itself and HTMLLabelElement for supporting LabelabelElement instead of HTMLFormControlElement.

This HTMLLabelElement changes is also required to change base class of the &quot;progress&quot; element to LabelableElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578152</commentid>
    <comment_count>3</comment_count>
      <attachid>131778</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-13 21:41:45 -0700</bug_when>
    <thetext>Comment on attachment 131778
Patch 1

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

&gt; Source/WebCore/html/HTMLElement.h:105
&gt; +    virtual bool isLabelable() const { return false; }

The function means:
 * This HTMLElement can be casted to LabelableElement, AND
 * This LabelableElement actually supports &quot;labels&quot; property.

isClassName() functions of HTMLElement and Element usually have only the first role. isLabelable() in this patch will make other developers confused.

I recommend to rename the existing LabelableElement::isLabelable() to LabelableElement::supportLabels(), and restrict the role of HTMLElement::isLabelable().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578235</commentid>
    <comment_count>4</comment_count>
      <attachid>131805</attachid>
    <who name="">yosin</who>
    <bug_when>2012-03-14 01:28:52 -0700</bug_when>
    <thetext>Created attachment 131805
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578249</commentid>
    <comment_count>5</comment_count>
      <attachid>131805</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-14 01:52:18 -0700</bug_when>
    <thetext>Comment on attachment 131805
Patch 2

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

&gt; Source/WebCore/html/LabelableElement.h:50
&gt; +    virtual bool isLabelable() const OVERRIDE { return true; }

This should be &quot;isLabelable() const OVERRIDE FINAL { return true; }&quot; because subclasses must not override this.

&gt; LayoutTests/ChangeLog:14
&gt; +        * fast/dom/HTMLMeterElement/meter-element-form-expected.txt: Removed.
&gt; +        * fast/dom/HTMLMeterElement/meter-element-form.html: Removed.

Please do not remove the test.  We should change it so that it confirms HTMLMeterElement doesn&apos;t support &quot;form&quot; IDL attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578288</commentid>
    <comment_count>6</comment_count>
      <attachid>131819</attachid>
    <who name="">yosin</who>
    <bug_when>2012-03-14 03:24:16 -0700</bug_when>
    <thetext>Created attachment 131819
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578370</commentid>
    <comment_count>7</comment_count>
      <attachid>131819</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-14 07:35:38 -0700</bug_when>
    <thetext>Comment on attachment 131819
Patch 3

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

&gt; LayoutTests/fast/dom/HTMLMeterElement/meter-element-form.html:16
&gt; +if (document.getElementById(&apos;meter1&apos;).form == null)

Should it be undefined, not null, because HTMLMeterElement doesn&apos;t have form IDL attribute?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579022</commentid>
    <comment_count>8</comment_count>
      <attachid>131972</attachid>
    <who name="">yosin</who>
    <bug_when>2012-03-14 18:52:34 -0700</bug_when>
    <thetext>Created attachment 131972
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579023</commentid>
    <comment_count>9</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-03-14 18:53:28 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 131819 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131819&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/dom/HTMLMeterElement/meter-element-form.html:16
&gt; &gt; +if (document.getElementById(&apos;meter1&apos;).form == null)
&gt; 
&gt; Should it be undefined, not null, because HTMLMeterElement doesn&apos;t have form IDL attribute?

You&apos;re right. I forgot to update IDL file which contains the &quot;form&quot; attribute of the &quot;meter&quot; lement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579055</commentid>
    <comment_count>10</comment_count>
      <attachid>131972</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-14 19:27:15 -0700</bug_when>
    <thetext>Comment on attachment 131972
Patch 4

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580023</commentid>
    <comment_count>11</comment_count>
      <attachid>131972</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 18:49:23 -0700</bug_when>
    <thetext>Comment on attachment 131972
Patch 4

Clearing flags on attachment: 131972

Committed r110927: &lt;http://trac.webkit.org/changeset/110927&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580024</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 18:49:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131778</attachid>
            <date>2012-03-13 21:09:18 -0700</date>
            <delta_ts>2012-03-14 01:28:47 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-80380-20120314130915.patch</filename>
            <type>text/plain</type>
            <size>16852</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRiMzExOWUxMmMyNWMz
M2MwYzhjOThkYmIyMjBlOTY5NjUzOTZkOC4uYmJiNTlkMDAwZjYzMGQ2ZTA0YzUxZGMwMTFlNzNk
MzMyNzA0NDVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTAzLTEzICBZb3Np
ZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFRoZSAi
bWV0ZXIiIGVsZW1lbnQgc2hvdWxkIG5vdCBiZSBhIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGNoYW5nZXMgYmFzZSBjbGFzcyBvZiBIVE1MTWV0ZXJFbGVtZW50IHRvIExhYmVsYWJsZUVsZW1l
bnQgZnJvbQorICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IGZvciBzYXZpbmcgbWVtb3J5
IHNwYWNlIGFuZCBpdGVyYXRpb24gdGltZSBvZgorICAgICAgICBleHRyYSAibWV0ZXIiIGVsZW1l
bnRzIGluIEhUTUxGb3JtRWxlbWVudDo6bV9mb3JtQXNzb2NpYXRlZEVsZW1lbnRzCisgICAgICAg
IGFuZCBtYXRjaGluZyB0aGUgSFRNTDUgc3BlY2lmaWNhdGlvbiBmb3IgZWFzZSBvZiBtYWludGVu
YW5jZS4KKworICAgICAgICBDaGFuZ2VzIG9mIFRleHRJdGVyYXRvciBpcyBsZWFkIGJ5IHVzYWdl
IG9mIGlzRm9ybUNvbnRyb2xFbGVtZW50LiBUaGlzCisgICAgICAgIGNoYW5nZXMgd2lsbCBiZSBy
ZXBsYWNlZCB3aXRoIG1vcmUgbWVhbmluZ2Z1bCBwcmVkaWNhdGUgYXMgcGFydCBvZgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzODEKKworICAgICAg
ICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBlZGl0aW5n
L1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OmFkdmFu
Y2UpOiBDaGVjayBIVE1MTWV0ZXJFbGVtZW50IGluIGFkZGl0aW9uIHRvIGlzRm9ybUNvbnRyb2xF
bGVtZW50LiBUaGlzIGNoYW5nZSBpcyBmb3IgdGV4dCBkdW1wIGluIExheW91dFRlc3RzIGltcGxl
bWVudGVkIGJ5IGRvY3VtZW50LmlubmVyVGV4dCBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9I
VE1MRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmlzTGFiZWxhYmxl
KTogTW92ZWQgZnJvbSBMYWJlbGFibGVFbGVtZW50LgorICAgICAgICAqIGh0bWwvSFRNTExhYmVs
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpub2RlQXNMYWJlbGFibGVFbGVtZW50KTog
Q2hhbmdlZCB0byByZXR1cm4gTGFiZWxhYmxlRWxlbWVudCBpbnN0ZWFkIG9mIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9s
KTogQ2hhbmdlZCB0byByZXR1cm4gTGFiZWxhYmxlRWxlbWVudCBpbnN0ZWFkIG9mIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50Lmg6CisgICAg
ICAgIChIVE1MTGFiZWxFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGVyRWxlbWVudDo6SFRNTE1ldGVyRWxlbWVu
dCk6IENoYW5nZWQgYmFzZSBjbGFzcyB0byBMYWJlbGFibGVFbGVtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlKTogUmVtb3ZlIGZvcm0gcGFyYW1ldGVyLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGVyRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKTogUmVt
b3ZlIGltcGxlbWVudGF0aW9uIG9mIHZpcnR1YWwgbWV0aG9kIGRlY2xhcmVkIGluIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZSk6IFJlcGxhY2UgSFRNTEZvcm1Db250cm9sRWxlbWVudCB0byBMYWJlbGFibGVF
bGVtZW50CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50OjphdHRhY2gpOiBSZXBs
YWNlIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgdG8gTGFiZWxhYmxlRWxlbWVudAorICAgICAgICAq
IGh0bWwvSFRNTE1ldGVyRWxlbWVudC5oOgorICAgICAgICAoSFRNTE1ldGVyRWxlbWVudCk6Cisg
ICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMuaW46IFJlbW92ZSAiY29uc3RydWN0b3JOZWVkc0Zv
cm1FbGVtZW50IiBmb3Igbm90IHBhc3NpbmcgImZvcm0iIHBhcmFtZXRlciBpbiBIVE1MRWxlbWVu
dEZhY3RvcnkuCisgICAgICAgICogaHRtbC9MYWJlbGFibGVFbGVtZW50Lmg6CisgICAgICAgIChM
YWJlbGFibGVFbGVtZW50KToKKwogMjAxMi0wMy0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggcG90ZW50aWFsIGNyYXNoIHdoZW4gbG9hZGlu
ZyB0ZXN0IHJlc3VsdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRl
eCBlMGJmOGMzYTBmZTZlOGE2ODMzMTNmMTc4OGM4NGFiNWZiMDRkNDM1Li45ZDM4NWFjMTRlOThh
MzYzOGQzNDc3MTY3MmUzZDQxMzczYjEwZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
SXRlcmF0b3IuY3BwCkBAIC0zOTUsNyArMzk1LDggQEAgdm9pZCBUZXh0SXRlcmF0b3I6OmFkdmFu
Y2UoKQogICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlbmRlcmVyICYmIChyZW5kZXJlci0+aXNJ
bWFnZSgpIHx8IHJlbmRlcmVyLT5pc1dpZGdldCgpIHx8CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHJlbmRlcmVyLT5ub2RlKCkgJiYgcmVuZGVyZXItPm5vZGUoKS0+aXNFbGVtZW50Tm9kZSgp
ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0aWNfY2FzdDxFbGVtZW50Kj4ocmVu
ZGVyZXItPm5vZGUoKSktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgfHwgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KHJlbmRlcmVyLT5ub2RlKCkpLT5oYXNU
YWdOYW1lKGxlZ2VuZFRhZykpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHN0YXRp
Y19jYXN0PEVsZW1lbnQqPihyZW5kZXJlci0+bm9kZSgpKS0+aGFzVGFnTmFtZShsZWdlbmRUYWcp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHN0YXRpY19jYXN0PEVsZW1lbnQqPihyZW5k
ZXJlci0+bm9kZSgpKS0+aGFzVGFnTmFtZShtZXRlclRhZykpKSkpCiAgICAgICAgICAgICAgICAg
ICAgIG1faGFuZGxlZE5vZGUgPSBoYW5kbGVSZXBsYWNlZEVsZW1lbnQoKTsKICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG1faGFuZGxlZE5vZGUgPSBoYW5kbGVOb25U
ZXh0Tm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCmluZGV4IGI5MjE1MmM5ZjY3NWNj
NWZjZTRkYTVkNmU4MTBkZGViNjQxMDUyN2EuLjkxZGM0Nzc5MjE5ODFhYmQ3NTIxYmY2MTViYjBi
ZmM1ODMwNjM4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKQEAgLTEwMiw2ICsxMDIs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBpc0luc2VydGlvblBvaW50
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmluZGV4IGI0NzQ4ZDYyNjU1MGI0ZWJiZTQwYWQ0YTlm
ZDQ4ZTkzMGJmODY3ODMuLjkwNWNhMGNhYjYxZDBkZGQxZWM0NWViNjdhMDM1MmE2M2VlZGMxMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcApAQCAtMjgsMjQgKzI4
LDIzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCi0j
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiTGFiZWxhYmxlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBu
b2RlQXNMYWJlbGFibGVGb3JtQ29udHJvbChOb2RlKiBub2RlKQorc3RhdGljIExhYmVsYWJsZUVs
ZW1lbnQqIG5vZGVBc0xhYmVsYWJsZUVsZW1lbnQoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAoIW5v
ZGUgfHwgIW5vZGUtPmlzRWxlbWVudE5vZGUoKSB8fCAhc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5v
ZGUpLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKQorICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNI
VE1MRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICAKLSAgICBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50KiBmb3JtQ29udHJvbEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Kj4obm9kZSk7Ci0gICAgaWYgKCFmb3JtQ29udHJvbEVsZW1lbnQtPmlzTGFiZWxh
YmxlKCkpCisgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVu
dCo+KG5vZGUpOworICAgIGlmICghZWxlbWVudC0+aXNMYWJlbGFibGUoKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICByZXR1cm4gZm9ybUNvbnRyb2xFbGVtZW50OworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxMYWJlbGFibGVFbGVtZW50Kj4oZWxlbWVudCk7CiB9CiAKIGlubGluZSBIVE1MTGFi
ZWxFbGVtZW50OjpIVE1MTGFiZWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTY0LDcgKzYzLDcgQEAgYm9vbCBIVE1MTGFiZWxFbGVt
ZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1IVE1MRm9y
bUNvbnRyb2xFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKCkKK0xhYmVsYWJsZUVs
ZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKQogewogICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgY29udHJvbElkID0gZ2V0QXR0cmlidXRlKGZvckF0dHIpOwogICAgIGlmIChjb250cm9s
SWQuaXNOdWxsKCkpIHsKQEAgLTczLDE1ICs3MiwxNSBAQCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKCkKICAgICAgICAgLy8gdGhlIGZvcm0gZWxlbWVu
dCBtdXN0IGJlICJsYWJlbGFibGUgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnQiLgogICAgICAgICBO
b2RlKiBub2RlID0gdGhpczsKICAgICAgICAgd2hpbGUgKChub2RlID0gbm9kZS0+dHJhdmVyc2VO
ZXh0Tm9kZSh0aGlzKSkpIHsKLSAgICAgICAgICAgIGlmIChIVE1MRm9ybUNvbnRyb2xFbGVtZW50
KiBmb3JtQ29udHJvbEVsZW1lbnQgPSBub2RlQXNMYWJlbGFibGVGb3JtQ29udHJvbChub2RlKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2xFbGVtZW50OworICAgICAgICAgICAg
aWYgKExhYmVsYWJsZUVsZW1lbnQqIGVsZW1lbnQgPSBub2RlQXNMYWJlbGFibGVFbGVtZW50KG5v
ZGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50OwogICAgICAgICB9CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KICAgICAKICAgICAvLyBGaW5kIHRoZSBmaXJzdCBlbGVtZW50IHdo
b3NlIGlkIGlzIGNvbnRyb2xJZC4gSWYgaXQgaXMgZm91bmQgYW5kIGl0IGlzIGEgbGFiZWxhYmxl
IGZvcm0gY29udHJvbCwKICAgICAvLyByZXR1cm4gaXQsIG90aGVyd2lzZSByZXR1cm4gMC4KLSAg
ICByZXR1cm4gbm9kZUFzTGFiZWxhYmxlRm9ybUNvbnRyb2wodHJlZVNjb3BlKCktPmdldEVsZW1l
bnRCeUlkKGNvbnRyb2xJZCkpOworICAgIHJldHVybiBub2RlQXNMYWJlbGFibGVFbGVtZW50KHRy
ZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChjb250cm9sSWQpKTsKIH0KIAogdm9pZCBIVE1MTGFi
ZWxFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBhdXNlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaAppbmRleCA1MjYzNzljZDAzOTU3YjM2OGVkOGQ2YzU4NmRm
ZmFjMjQyNWQ1ZDY0Li40ZGY1OGViNzA1YjA1ZTAyMWJjMDVhMmY5MDFjZTAwN2YxODFlYzIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaApAQCAtMjUsNyArMjUsNyBAQAog
I2RlZmluZSBIVE1MTGFiZWxFbGVtZW50X2gKIAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCi0j
aW5jbHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUgIkxhYmVsYWJsZUVs
ZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNz
IEhUTUxMYWJlbEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxMYWJlbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2wo
KTsKKyAgICBMYWJlbGFibGVFbGVtZW50KiBjb250cm9sKCk7CiAKIHByaXZhdGU6CiAgICAgSFRN
TExhYmVsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDNiZTg0ZTMzZGZhY2JjODY1NDI0
Mjk2ODVmMDdjZWE1MGUwNzgzYzQuLjYxNmU2NDgyM2I4YTczODhjY2JhNzRkYjY0MGY2YWVlNzM0
NzI5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApAQCAtMzks
OCArMzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLUhUTUxNZXRlckVsZW1lbnQ6OkhUTUxNZXRlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0p
Ci0gICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKQor
SFRNTE1ldGVyRWxlbWVudDo6SFRNTE1ldGVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBMYWJlbGFibGVFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKG1ldGVyVGFnKSk7CiB9CkBA
IC00OSw5ICs0OSw5IEBAIEhUTUxNZXRlckVsZW1lbnQ6On5IVE1MTWV0ZXJFbGVtZW50KCkKIHsK
IH0KIAotUGFzc1JlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBIVE1MTWV0ZXJFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0pCitQYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IEhUTUxNZXRl
ckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IG1ldGVyID0gYWRvcHRS
ZWYobmV3IEhUTUxNZXRlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pKTsKKyAgICBS
ZWZQdHI8SFRNTE1ldGVyRWxlbWVudD4gbWV0ZXIgPSBhZG9wdFJlZihuZXcgSFRNTE1ldGVyRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIG1ldGVyLT5jcmVhdGVTaGFkb3dTdWJ0cmVl
KCk7CiAgICAgcmV0dXJuIG1ldGVyOwogfQpAQCAtNjYsMTIgKzY2LDYgQEAgYm9vbCBIVE1MTWV0
ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdD
b250ZXh0JiBjaGkKICAgICByZXR1cm4gY2hpbGRDb250ZXh0LmlzT25FbmNhcHN1bGF0aW9uQm91
bmRhcnkoKSAmJiBIVE1MRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjaGlsZENv
bnRleHQpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIEhUTUxNZXRlckVsZW1lbnQ6OmZvcm1D
b250cm9sVHlwZSgpIGNvbnN0Ci17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIG1ldGVyLCAoIm1ldGVyIikpOwotICAgIHJldHVybiBtZXRlcjsKLX0KLQogYm9v
bCBIVE1MTWV0ZXJFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
Tm9kZTo6c3VwcG9ydHNGb2N1cygpICYmICFkaXNhYmxlZCgpOwpAQCAtODIsMTIgKzc2LDEyIEBA
IHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1
dGUpCiAgICAgaWYgKGF0dHJpYnV0ZS0+bmFtZSgpID09IHZhbHVlQXR0ciB8fCBhdHRyaWJ1dGUt
Pm5hbWUoKSA9PSBtaW5BdHRyIHx8IGF0dHJpYnV0ZS0+bmFtZSgpID09IG1heEF0dHIgfHwgYXR0
cmlidXRlLT5uYW1lKCkgPT0gbG93QXR0ciB8fCBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBoaWdoQXR0
ciB8fCBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBvcHRpbXVtQXR0cikKICAgICAgICAgZGlkRWxlbWVu
dFN0YXRlQ2hhbmdlKCk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShhdHRyaWJ1dGUpOworICAgICAgICBMYWJlbGFibGVFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6OmF0
dGFjaCgpCiB7Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6YXR0YWNoKCk7CisgICAgTGFi
ZWxhYmxlRWxlbWVudDo6YXR0YWNoKCk7CiAgICAgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKaW5kZXggZTJiZTk3ZjcxMzc5
YTg5ZGQ1YzY0Mzc3ZDBjNDQ5MzNjNWJmZmUzYi4uMWU2NzlmNDliOWViMGRlMGVhMjExMTQxNmI2
MTZkNzliMzBkNTY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKQEAg
LTIyLDE1ICsyMiwxNSBAQAogI2RlZmluZSBIVE1MTWV0ZXJFbGVtZW50X2gKIAogI2lmIEVOQUJM
RShNRVRFUl9UQUcpCi0jaW5jbHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1
ZGUgIkxhYmVsYWJsZUVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBN
ZXRlclZhbHVlRWxlbWVudDsKIAotY2xhc3MgSFRNTE1ldGVyRWxlbWVudCA6IHB1YmxpYyBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50IHsKK2NsYXNzIEhUTUxNZXRlckVsZW1lbnQgOiBwdWJsaWMgTGFi
ZWxhYmxlRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE1ldGVy
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3Jt
RWxlbWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIGVudW0gR2F1Z2VSZWdp
b24gewogICAgICAgICBHYXVnZVJlZ2lvbk9wdGltdW0sCkBAIC02Miw3ICs2Miw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAogcHJpdmF0ZToKLSAgICBIVE1MTWV0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOworICAgIEhUTUxNZXRlckVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+SFRNTE1ldGVy
RWxlbWVudCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzTGFiZWxhYmxlKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNzAsNyArNzAsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVjYWxj
V2lsbFZhbGlkYXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBSZW5k
ZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAg
ICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVy
aW5nQ29udGV4dCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJp
YnV0ZShBdHRyaWJ1dGUqKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhZ05hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4K
aW5kZXggYmRiZjMzODI0MGUyZDMzMjM1ZTNjZWZkZDFhZDEyMWE1NGViYTk0NC4uYmM5MTgyMjcy
MzEzZmJlMTljNjE5MThlZTM2NjU2OWFhNWZjYmQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFn
TmFtZXMuaW4KQEAgLTgzLDcgKzgzLDcgQEAgbWFyayBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
CiBtYXJxdWVlCiBtZW51CiBtZXRhCi1tZXRlciBpbnRlcmZhY2VOYW1lPUhUTUxNZXRlckVsZW1l
bnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uZGl0aW9uYWw9TUVURVJfVEFHCitt
ZXRlciBpbnRlcmZhY2VOYW1lPUhUTUxNZXRlckVsZW1lbnQsIGNvbmRpdGlvbmFsPU1FVEVSX1RB
RwogbmF2IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vYnIgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudAogbm9lbWJlZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsYWJsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTGFiZWxhYmxlRWxlbWVudC5oCmluZGV4IDkxODMwN2ZjZTM5MDFlYjI4YTUxN2E5MTAzZjdm
ZTNjNWZjNTk3ZDkuLjUwMDg2N2I0YjkzZDA2ZGNiZDE2MWMyZTA4YWVkMDU3NGJmMmVkYTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5oCkBAIC00MCw3ICs0MCw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIExhYmVsYWJsZUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkxhYmVsYWJsZUVsZW1lbnQoKTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIFBh
c3NSZWZQdHI8Tm9kZUxpc3Q+IGxhYmVscygpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2FkMzBj
OTlmNmYwM2QyNWRhNjZiMThiYWVjMDY4YzU0MWM4MTEyNi4uNjk1Y2JkODQ1NmUxZmE5YmExOWI5
NGFjNTliNzZjOTFhMGE1NmNiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAzLTEzICBZ
b3NpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFRo
ZSAibWV0ZXIiIGVsZW1lbnQgc2hvdWxkIG5vdCBiZSBhIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzODAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIHJlbW92ZXMgdGVzdHMgd2hpY2ggY2hlY2tzIG5vbi1leGlzdGVudCAiZm9ybSIgYXR0cmli
dXRlCisgICAgICAgIG9mIHRoZSAibWV0ZXIiIGVsZW1lbnQuIFRoZSAiZm9ybSIgYXR0cmlidXRl
IGlzIGF2YWlsYWJsZSBvbmx5IGZvcgorICAgICAgICBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudHMu
IEhvd2V2ZXIsIHRoZSAibWV0ZXIiIGVsZW1lbnQgaXNuJ3QgYQorICAgICAgICBmb3JtLWFzc29j
aWF0ZWQgZWxlbWVudC4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0
ZXItZWxlbWVudC1mb3JtLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1lbnQtZm9ybS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBVcGRhdGVkIGV4
cGVjdGF0aW9uIGZvciB0ZXN0IG91dHB1dCBjaGFuZ2VzLgorICAgICAgICAqIGZhc3QvZm9ybXMv
Zm9ybS1hdHRyaWJ1dGUuaHRtbDogUmVtb3ZlZCBsaW5lcyBmb3IgdGhlICJtZXRlciIgZWxlbWVu
dC4KKwogMjAxMi0wMy0xMyAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgYSBtb3JlLWNvbXBsZXRlIGltcGxlbWVudGF0
aW9uIG9mIGV2ZW50U2VuZGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TE1ldGVyRWxlbWVudC9tZXRlci1lbGVtZW50LWZvcm0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1lbGVtZW50LWZvcm0tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmExMzI4NDkyNDNhNjRlMzQzODhh
OWQ0NjNkOTRkMTkzZjdjMWY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItZWxl
bWVudC1mb3JtLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1U
aGlzIHRlc3QgcGFzc2VzIGlmIHRoZSBtZXRlciBlbGVtZW50IGNhbiBmaW5kIGl0cyBmb3JtLgot
UEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9t
ZXRlci1lbGVtZW50LWZvcm0uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVs
ZW1lbnQvbWV0ZXItZWxlbWVudC1mb3JtLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGZlZDQ5M2NiMDE2MzlmZGE4ZjUwZTY3MWVmYzVkNzI2OWE5ZGM3ZjYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTE1ldGVyRWxlbWVudC9tZXRlci1lbGVtZW50LWZvcm0uaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDIwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci08L3NjcmlwdD4KLQotPGJvZHk+Ci08dGFibGU+PGZvcm0gaWQ9Zm9ybTE+Ci08bWV0ZXIgaWQ9
bWV0ZXIxPjwvbWV0ZXI+Ci08L2Zvcm0+PC90YWJsZT4KLTxkaXY+VGhpcyB0ZXN0IHBhc3NlcyBp
ZiB0aGUgbWV0ZXIgZWxlbWVudCBjYW4gZmluZCBpdHMgZm9ybS48L2Rpdj4KLTxkaXYgaWQ9Y29u
c29sZT5GQUlMPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J21ldGVyMScpLmZvcm0uaWQgPT0gImZvcm0xIikKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmlubmVySFRNTCA9ICJQQVNTIjsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXR0cmlidXRlLWV4cGVj
dGVkLnR4dAppbmRleCAzN2JjOTg5YWI3MjliM2NhMzYyZjBkYmRmNDViNTAxZDJiZmEzNzI0Li4w
MzkyZTFiNTNjZjA0ZWNkMzA5YTBiN2EwN2RhYmJkNTFiZjk4MjJhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXR0cmlidXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXR0cmlidXRlLWV4cGVjdGVkLnR4dApAQCAtMTAsNyAr
MTAsNiBAQCBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmaWVsZHNldCIpWzBd
LmZvcm0gaXMgb3duZXIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0
IilbMF0uZm9ybSBpcyBvd25lcgogUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
a2V5Z2VuIilbMF0uZm9ybSBpcyBvd25lcgogRkFJTCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgibGFiZWwiKVswXS5mb3JtIHNob3VsZCBiZSBbb2JqZWN0IEhUTUxGb3JtRWxlbWVudF0u
IFdhcyBudWxsLgotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibWV0ZXIiKVsw
XS5mb3JtIGlzIG93bmVyCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmpl
Y3QiKVswXS5mb3JtIGlzIG93bmVyCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJvdXRwdXQiKVswXS5mb3JtIGlzIG93bmVyCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJwcm9ncmVzcyIpWzBdLmZvcm0gaXMgb3duZXIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZm9ybS1hdHRyaWJ1dGUuaHRtbAppbmRleCBiMzhmNmRmNGE0MTNlZDk4NDIyOGRiZmM3N2I1
ZjBmMTU3ZWJmMjI4Li4xNDIxOGYxNDNlYWZkMWRjMDExYThiMDA4NzgyZGQxZTMyZmI4MjY0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXR0cmlidXRlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS5odG1sCkBAIC0yMCw3ICsy
MCw2IEBAIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGZvcm0gaWQ9b3duZXI+PC9mb3JtPicgKwog
ICAgICc8aW5wdXQgbmFtZT12aWN0aW0gZm9ybT1vd25lciAvPicgKwogICAgICc8a2V5Z2VuIG5h
bWU9dmljdGltIGZvcm09b3duZXIgLz4nICsKICAgICAnPGxhYmVsIG5hbWU9dmljdGltIGZvcm09
b3duZXIgLz4nICsKLSAgICAnPG1ldGVyIG5hbWU9dmljdGltIGZvcm09b3duZXIgLz4nICsKICAg
ICAnPG9iamVjdCBuYW1lPXZpY3RpbSBmb3JtPW93bmVyPjwvb2JqZWN0PicgKwogICAgICc8b3V0
cHV0IG5hbWU9dmljdGltIGZvcm09b3duZXIgLz4nICsKICAgICAnPHByb2dyZXNzIG5hbWU9dmlj
dGltIGZvcm09b3duZXIgLz4nICsKQEAgLTMzLDcgKzMyLDYgQEAgc2hvdWxkQmUoJ2RvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmaWVsZHNldCIpWzBdLmZvcm0nLCAnb3duZXInKTsKIHNo
b3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5mb3JtJywg
J293bmVyJyk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImtleWdl
biIpWzBdLmZvcm0nLCAnb3duZXInKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgibGFiZWwiKVswXS5mb3JtJywgJ293bmVyJyk7Ci1zaG91bGRCZSgnZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoIm1ldGVyIilbMF0uZm9ybScsICdvd25lcicpOwogc2hvdWxk
QmUoJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5mb3JtJywgJ293
bmVyJyk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm91dHB1dCIp
WzBdLmZvcm0nLCAnb3duZXInKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgicHJvZ3Jlc3MiKVswXS5mb3JtJywgJ293bmVyJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131805</attachid>
            <date>2012-03-14 01:28:52 -0700</date>
            <delta_ts>2012-03-14 03:24:10 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-80380-20120314172851.patch</filename>
            <type>text/plain</type>
            <size>26316</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM2YmJiYWQxZmM1MDJk
YjQ5M2M5NDA1MjY0ODAwN2Y0YWViODc4Mi4uMGQxNDdlN2JlMzg2OGM4ZDE0Yzc4YmNjYmMxNTgy
N2M1NjNiNGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTAzLTEzICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBUaGUg
Im1ldGVyIiBlbGVtZW50IHNob3VsZCBub3QgYmUgYSBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzgwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBjaGFuZ2VzIGJhc2UgY2xhc3Mgb2YgSFRNTE1ldGVyRWxlbWVudCB0byBMYWJlbGFibGVFbGVt
ZW50IGZyb20KKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCBmb3Igc2F2aW5nIG1lbW9y
eSBzcGFjZSBhbmQgaXRlcmF0aW9uIHRpbWUgb2YKKyAgICAgICAgZXh0cmEgIm1ldGVyIiBlbGVt
ZW50cyBpbiBIVE1MRm9ybUVsZW1lbnQ6Om1fZm9ybUFzc29jaWF0ZWRFbGVtZW50cworICAgICAg
ICBhbmQgbWF0Y2hpbmcgdGhlIEhUTUw1IHNwZWNpZmljYXRpb24gZm9yIGVhc2Ugb2YgbWFpbnRl
bmFuY2UuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWVzIGlzTGFiZWxhYmxlIG1ldGhvZCB0
byBzdXBwb3J0TGFiZWxzIGFuZCBtYWtlcyBpc0xhYmVsYWJsZQorICAgICAgICBhcyBwcmVkaWNh
dGUgb2YgYW4gaW5zdGFuY2Ugb2YgTGFiZWxhYmxlRWxlbWVudCBvciBub3QuCisKKyAgICAgICAg
Q2hhbmdlcyBvZiBUZXh0SXRlcmF0b3IgaXMgbGVhZCBieSB1c2FnZSBvZiBpc0Zvcm1Db250cm9s
RWxlbWVudC4gVGhpcworICAgICAgICBjaGFuZ2VzIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBtb3Jl
IG1lYW5pbmdmdWwgcHJlZGljYXRlIGFzIHBhcnQgb2YKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzgxCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBO
byBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEl0ZXJhdG9yOjphZHZhbmNlKTogQ2hlY2sgSFRNTE1l
dGVyRWxlbWVudCBpbiBhZGRpdGlvbiB0byBpc0Zvcm1Db250cm9sRWxlbWVudC4gVGhpcyBjaGFu
Z2UgaXMgZm9yIHRleHQgZHVtcCBpbiBMYXlvdXRUZXN0cyBpbXBsZW1lbnRlZCBieSBkb2N1bWVu
dC5pbm5lclRleHQgYXR0cmlidXRlLgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OnN1cHBvcnRMYWJlbHMpOiBSZW5hbWVk
IGZyb20gaXNMYWJlbGFibGUKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aXNMYWJlbGFibGUpOiBBZGRlZC4gQSBwcmVkaWNhdGUg
Zm9yIGFuIGluc3RhbmNlIG9mIExhYmVsYWJsZUVsZW1lbnQuCisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdXBw
b3J0TGFiZWxzKTogUmVuYW1lZCBmcm9tIGlzTGFiZWxhYmxlCisgICAgICAgICogaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OnN1
cHBvcnRMYWJlbHMpOiBSZW5hbWVkIGZyb20gaXNMYWJlbGFibGUKKyAgICAgICAgICogaHRtbC9I
VE1MTGFiZWxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vZGVBc0xhYmVsYWJsZUVs
ZW1lbnQpOiBDaGFuZ2VkIHRvIHJldHVybiBMYWJlbGFibGVFbGVtZW50IGluc3RlYWQgb2YgSFRN
TEZvcm1Db250cm9sRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ6
OmNvbnRyb2wpOiBDaGFuZ2VkIHRvIHJldHVybiBMYWJlbGFibGVFbGVtZW50IGluc3RlYWQgb2Yg
SFRNTEZvcm1Db250cm9sRWxlbWVudC4KKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQu
aDoKKyAgICAgICAgKEhUTUxMYWJlbEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGVy
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50OjpIVE1MTWV0
ZXJFbGVtZW50KTogQ2hhbmdlZCBiYXNlIGNsYXNzIHRvIExhYmVsYWJsZUVsZW1lbnQuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGUpOiBSZW1vdmUgZm9ybSBwYXJh
bWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50Ojpmb3JtQ29udHJvbFR5
cGUpOiBSZW1vdmUgaW1wbGVtZW50YXRpb24gb2YgdmlydHVhbCBtZXRob2QgZGVjbGFyZWQgaW4g
SFRNTEZvcm1Db250cm9sRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKTogUmVwbGFjZSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHRvIExh
YmVsYWJsZUVsZW1lbnQKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OmF0dGFj
aCk6IFJlcGxhY2UgSFRNTEZvcm1Db250cm9sRWxlbWVudCB0byBMYWJlbGFibGVFbGVtZW50Cisg
ICAgICAgICogaHRtbC9IVE1MTWV0ZXJFbGVtZW50Lmg6CisgICAgICAgIChIVE1MTWV0ZXJFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OnN1cHBvcnRMYWJlbHMp
OiBSZW5hbWVkIGZyb20gaXNMYWJlbGFibGUKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3V0cHV0RWxlbWVudDo6c3VwcG9ydExhYmVs
cyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVsYWJsZQorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6c3VwcG9y
dExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVsYWJsZQorICAgICAgICAgKiBodG1sL0hUTUxT
ZWxlY3RFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c3Vw
cG9ydExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVsYWJsZQorICAgICAgICAqIGh0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVu
dDo6c3VwcG9ydExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVsYWJsZQorICAgICAgICAqIGh0
bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5JbnB1dFR5cGU6
OnN1cHBvcnRMYWJlbHMpOiBSZW5hbWVkIGZyb20gaXNMYWJlbGFibGUKKyAgICAgICAgKiBodG1s
L0lucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpzdXBwb3J0TGFiZWxz
KTogUmVuYW1lZCBmcm9tIGlzTGFiZWxhYmxlCisgICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMu
aW46IFJlbW92ZSAiY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50IiBmb3Igbm90IHBhc3Npbmcg
ImZvcm0iIHBhcmFtZXRlciBpbiBIVE1MRWxlbWVudEZhY3RvcnkuCisgICAgICAgICogaHRtbC9M
YWJlbGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxhYmVsYWJsZUVsZW1lbnQ6
OmxhYmVscyk6IFJlcGxhY2UgaXNMYWJlbGFibGUgdG8gc3VwcG9ydExhYmVscworICAgICAgICAq
IGh0bWwvTGFiZWxhYmxlRWxlbWVudC5oOgorICAgICAgICAoTGFiZWxhYmxlRWxlbWVudCk6CisK
IDIwMTItMDMtMTQgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4gQnVpbGQgZml4IGZvciBFRkwgYWZ0ZXIgcjExMDY2OS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRleCBlMGJmOGMzYTBmZTZlOGE2
ODMzMTNmMTc4OGM4NGFiNWZiMDRkNDM1Li45ZDM4NWFjMTRlOThhMzYzOGQzNDc3MTY3MmUzZDQx
MzczYjEwZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCkBAIC0z
OTUsNyArMzk1LDggQEAgdm9pZCBUZXh0SXRlcmF0b3I6OmFkdmFuY2UoKQogICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKHJlbmRlcmVyICYmIChyZW5kZXJlci0+aXNJbWFnZSgpIHx8IHJlbmRlcmVy
LT5pc1dpZGdldCgpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbmRlcmVyLT5ub2Rl
KCkgJiYgcmVuZGVyZXItPm5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpICYmCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChzdGF0aWNfY2FzdDxFbGVtZW50Kj4ocmVuZGVyZXItPm5vZGUoKSktPmlz
Rm9ybUNvbnRyb2xFbGVtZW50KCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgc3RhdGlj
X2Nhc3Q8RWxlbWVudCo+KHJlbmRlcmVyLT5ub2RlKCkpLT5oYXNUYWdOYW1lKGxlZ2VuZFRhZykp
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHN0YXRpY19jYXN0PEVsZW1lbnQqPihy
ZW5kZXJlci0+bm9kZSgpKS0+aGFzVGFnTmFtZShsZWdlbmRUYWcpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIHx8IHN0YXRpY19jYXN0PEVsZW1lbnQqPihyZW5kZXJlci0+bm9kZSgpKS0+aGFz
VGFnTmFtZShtZXRlclRhZykpKSkpCiAgICAgICAgICAgICAgICAgICAgIG1faGFuZGxlZE5vZGUg
PSBoYW5kbGVSZXBsYWNlZEVsZW1lbnQoKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgICAgIG1faGFuZGxlZE5vZGUgPSBoYW5kbGVOb25UZXh0Tm9kZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oCmluZGV4IDUxZWE3MWExYzlmZTgwMzc2YTI1
N2Q2MjZmZTM4MTFiMjBlMWYxNWYuLjJkMjk2Y2IxMTFmZGQwNmM2YzRlOWYzZWRhZTYwOWRjMjAy
MGMwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgKQEAgLTQ5LDcg
KzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURh
dGFMaXN0JiwgYm9vbCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9IAotICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVs
cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBp
c1N1Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3Rp
dmF0ZWRTdWJtaXQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCBiOTIx
NTJjOWY2NzVjYzVmY2U0ZGE1ZDZlODEwZGRlYjY0MTA1MjdhLi45MWRjNDc3OTIxOTgxYWJkNzUy
MWJmNjE1YmIwYmZjNTgzMDYzODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC0x
MDIsNiArMTAyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgaXNJbnNl
cnRpb25Qb2ludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlz
TGFiZWxhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJvdGVjdGVkOgogICAgIEhU
TUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBlY2ExNDRhMjIzZDliMjc1
NTI2ODY5MzdjZjM2OGE5NDc4N2ZjZWY3Li45MWI4NDBjNmU3YmIzMDEzZWY2ODhmMjU3NjJkYjEx
YzY2ZmM3ZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAg
LTE3NjEsOSArMTc2MSw5IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNFbnVtZXJhdGFibGUo
KSBjb25zdAogICAgIHJldHVybiBtX2lucHV0VHlwZS0+aXNFbnVtZXJhdGFibGUoKTsKIH0KIAot
Ym9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc0xhYmVsYWJsZSgpIGNvbnN0Citib29sIEhUTUxJbnB1
dEVsZW1lbnQ6OnN1cHBvcnRMYWJlbHMoKSBjb25zdAogewotICAgIHJldHVybiBtX2lucHV0VHlw
ZS0+aXNMYWJlbGFibGUoKTsKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnN1cHBvcnRMYWJlbHMo
KTsKIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRBcHBlYXJDaGVja2VkKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNmRiNWY3NzZhMDdj
NTViYzVjNTgwYmFhZDYzNDI3OTU2OTU3MWEzNC4uOWE2NThiMjJiNTMzMWFmODY0ZGYwY2U5OTQx
OTIwNGI2YmVmMjhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAg
LTI1Niw3ICsyNTYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9j
dXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0
OwotICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUZvY3VzQXBwZWFyYW5jZShib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7
CiAgICAgdmlydHVhbCB2b2lkIGFib3V0VG9VbmxvYWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlSW5wdXRNZXRob2QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEtleWdlbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQu
aAppbmRleCAwNGE5ZWQ1M2NhMjA2OTc1OWI5ZTM0MzQyMzdhYTNhMjNlZjUxMDdjLi40NWRmMTBi
YWM5NDE1MDIzYTkxNDc1YzY4MTk0MTVlYjA3ZGJjZWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
Ci0gICAgdmlydHVhbCBib29sIGlzTGFiZWxhYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmluZGV4IGI0NzQ4ZDYyNjU1MGI0ZWJiZTQw
YWQ0YTlmZDQ4ZTkzMGJmODY3ODMuLmY1MjJiYjAxNzg3ODBlMGE4ZTJkNWFmMTk5NTFjYzY5M2E4
MTgwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcApAQCAtMjgs
MjQgKzI4LDI3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmgiCi0jaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiTGFiZWxhYmxlRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50KiBub2RlQXNMYWJlbGFibGVGb3JtQ29udHJvbChOb2RlKiBub2RlKQorc3RhdGljIExhYmVs
YWJsZUVsZW1lbnQqIG5vZGVBc0xhYmVsYWJsZUVsZW1lbnQoTm9kZSogbm9kZSkKIHsKLSAgICBp
ZiAoIW5vZGUgfHwgIW5vZGUtPmlzRWxlbWVudE5vZGUoKSB8fCAhc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KG5vZGUpLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKQorICAgIGlmICghbm9kZSB8fCAhbm9k
ZS0+aXNIVE1MRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICAKLSAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KiBmb3JtQ29udHJvbEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Kj4obm9kZSk7Ci0gICAgaWYgKCFmb3JtQ29udHJvbEVsZW1lbnQtPmlz
TGFiZWxhYmxlKCkpCisgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1M
RWxlbWVudCo+KG5vZGUpOworICAgIGlmICghZWxlbWVudC0+aXNMYWJlbGFibGUoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gZm9ybUNvbnRyb2xFbGVtZW50OworICAgIExhYmVs
YWJsZUVsZW1lbnQqIGxhYmVsYWJsZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxMYWJlbGFibGVFbGVt
ZW50Kj4oZWxlbWVudCk7CisgICAgaWYgKCFsYWJlbGFibGVFbGVtZW50LT5zdXBwb3J0TGFiZWxz
KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGxhYmVsYWJsZUVsZW1lbnQ7CiB9
CiAKIGlubGluZSBIVE1MTGFiZWxFbGVtZW50OjpIVE1MTGFiZWxFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTY0LDcgKzY3LDcgQEAg
Ym9vbCBIVE1MTGFiZWxFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1IVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250
cm9sKCkKK0xhYmVsYWJsZUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKQogewog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29udHJvbElkID0gZ2V0QXR0cmlidXRlKGZvckF0dHIp
OwogICAgIGlmIChjb250cm9sSWQuaXNOdWxsKCkpIHsKQEAgLTczLDE1ICs3NiwxNSBAQCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKCkKICAgICAgICAg
Ly8gdGhlIGZvcm0gZWxlbWVudCBtdXN0IGJlICJsYWJlbGFibGUgZm9ybS1hc3NvY2lhdGVkIGVs
ZW1lbnQiLgogICAgICAgICBOb2RlKiBub2RlID0gdGhpczsKICAgICAgICAgd2hpbGUgKChub2Rl
ID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkpIHsKLSAgICAgICAgICAgIGlmIChIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KiBmb3JtQ29udHJvbEVsZW1lbnQgPSBub2RlQXNMYWJlbGFibGVG
b3JtQ29udHJvbChub2RlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2xFbGVt
ZW50OworICAgICAgICAgICAgaWYgKExhYmVsYWJsZUVsZW1lbnQqIGVsZW1lbnQgPSBub2RlQXNM
YWJlbGFibGVFbGVtZW50KG5vZGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50Owog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICAKICAgICAvLyBGaW5kIHRo
ZSBmaXJzdCBlbGVtZW50IHdob3NlIGlkIGlzIGNvbnRyb2xJZC4gSWYgaXQgaXMgZm91bmQgYW5k
IGl0IGlzIGEgbGFiZWxhYmxlIGZvcm0gY29udHJvbCwKICAgICAvLyByZXR1cm4gaXQsIG90aGVy
d2lzZSByZXR1cm4gMC4KLSAgICByZXR1cm4gbm9kZUFzTGFiZWxhYmxlRm9ybUNvbnRyb2wodHJl
ZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKGNvbnRyb2xJZCkpOworICAgIHJldHVybiBub2RlQXNM
YWJlbGFibGVFbGVtZW50KHRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChjb250cm9sSWQpKTsK
IH0KIAogdm9pZCBIVE1MTGFiZWxFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBh
dXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAppbmRleCA1MjYzNzljZDAz
OTU3YjM2OGVkOGQ2YzU4NmRmZmFjMjQyNWQ1ZDY0Li40ZGY1OGViNzA1YjA1ZTAyMWJjMDVhMmY5
MDFjZTAwN2YxODFlYzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJl
bEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaApA
QCAtMjUsNyArMjUsNyBAQAogI2RlZmluZSBIVE1MTGFiZWxFbGVtZW50X2gKIAogI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkxhYmVsYWJsZUVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
Myw3ICszMyw3IEBAIGNsYXNzIEhUTUxMYWJlbEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQg
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxMYWJlbEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQqIGNvbnRyb2woKTsKKyAgICBMYWJlbGFibGVFbGVtZW50KiBjb250cm9sKCk7CiAK
IHByaXZhdGU6CiAgICAgSFRNTExhYmVsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDNi
ZTg0ZTMzZGZhY2JjODY1NDI0Mjk2ODVmMDdjZWE1MGUwNzgzYzQuLjYxNmU2NDgyM2I4YTczODhj
Y2JhNzRkYjY0MGY2YWVlNzM0NzI5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmNwcApAQCAtMzksOCArMzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxNZXRlckVsZW1lbnQ6OkhUTUxNZXRlckVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0pCi0gICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50LCBmb3JtKQorSFRNTE1ldGVyRWxlbWVudDo6SFRNTE1ldGVyRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBMYWJl
bGFibGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KG1ldGVyVGFnKSk7CiB9CkBAIC00OSw5ICs0OSw5IEBAIEhUTUxNZXRlckVsZW1lbnQ6On5IVE1M
TWV0ZXJFbGVtZW50KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBIVE1M
TWV0ZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCitQYXNzUmVmUHRyPEhUTUxNZXRl
ckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPEhUTUxNZXRlckVsZW1l
bnQ+IG1ldGVyID0gYWRvcHRSZWYobmV3IEhUTUxNZXRlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQsIGZvcm0pKTsKKyAgICBSZWZQdHI8SFRNTE1ldGVyRWxlbWVudD4gbWV0ZXIgPSBhZG9wdFJl
ZihuZXcgSFRNTE1ldGVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIG1ldGVyLT5j
cmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgcmV0dXJuIG1ldGVyOwogfQpAQCAtNjYsMTIgKzY2
LDYgQEAgYm9vbCBIVE1MTWV0ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjaGkKICAgICByZXR1cm4gY2hpbGRDb250ZXh0Lmlz
T25FbmNhcHN1bGF0aW9uQm91bmRhcnkoKSAmJiBIVE1MRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjaGlsZENvbnRleHQpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIEhUTUxN
ZXRlckVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0Ci17Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1ldGVyLCAoIm1ldGVyIikpOwotICAgIHJldHVy
biBtZXRlcjsKLX0KLQogYm9vbCBIVE1MTWV0ZXJFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29u
c3QKIHsKICAgICByZXR1cm4gTm9kZTo6c3VwcG9ydHNGb2N1cygpICYmICFkaXNhYmxlZCgpOwpA
QCAtODIsMTIgKzc2LDEyIEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
QXR0cmlidXRlKiBhdHRyaWJ1dGUpCiAgICAgaWYgKGF0dHJpYnV0ZS0+bmFtZSgpID09IHZhbHVl
QXR0ciB8fCBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBtaW5BdHRyIHx8IGF0dHJpYnV0ZS0+bmFtZSgp
ID09IG1heEF0dHIgfHwgYXR0cmlidXRlLT5uYW1lKCkgPT0gbG93QXR0ciB8fCBhdHRyaWJ1dGUt
Pm5hbWUoKSA9PSBoaWdoQXR0ciB8fCBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBvcHRpbXVtQXR0cikK
ICAgICAgICAgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgZWxzZQotICAgICAgICBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShhdHRyaWJ1dGUpOworICAgICAgICBM
YWJlbGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiB2b2lkIEhU
TUxNZXRlckVsZW1lbnQ6OmF0dGFjaCgpCiB7Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
YXR0YWNoKCk7CisgICAgTGFiZWxhYmxlRWxlbWVudDo6YXR0YWNoKCk7CiAgICAgZGlkRWxlbWVu
dFN0YXRlQ2hhbmdlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgK
aW5kZXggZTJiZTk3ZjcxMzc5YTg5ZGQ1YzY0Mzc3ZDBjNDQ5MzNjNWJmZmUzYi4uNTkyY2Q2ZmMy
MDAyODE4NmUyOGIwZTg3NWQ4MmM4NDJjYzIyMDBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWV0ZXJFbGVtZW50LmgKQEAgLTIyLDE1ICsyMiwxNSBAQAogI2RlZmluZSBIVE1MTWV0ZXJFbGVt
ZW50X2gKIAogI2lmIEVOQUJMRShNRVRFUl9UQUcpCi0jaW5jbHVkZSAiSFRNTEZvcm1Db250cm9s
RWxlbWVudC5oIgorI2luY2x1ZGUgIkxhYmVsYWJsZUVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBNZXRlclZhbHVlRWxlbWVudDsKIAotY2xhc3MgSFRNTE1ldGVyRWxl
bWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHsKK2NsYXNzIEhUTUxNZXRlckVs
ZW1lbnQgOiBwdWJsaWMgTGFiZWxhYmxlRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SFRNTE1ldGVyRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxN
ZXRlckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAog
ICAgIGVudW0gR2F1Z2VSZWdpb24gewogICAgICAgICBHYXVnZVJlZ2lvbk9wdGltdW0sCkBAIC02
MiwxNSArNjIsMTQgQEAgcHVibGljOgogICAgIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgotICAgIEhUTUxNZXRlckVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7Cisg
ICAgSFRNTE1ldGVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAg
ICB2aXJ0dWFsIH5IVE1MTWV0ZXJFbGVtZW50KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNMYWJl
bGFibGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29s
IHN1cHBvcnRMYWJlbHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHJl
Y2FsY1dpbGxWYWxpZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7
CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJl
bmRlcmluZ0NvbnRleHQmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoQXR0cmlidXRlKikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRw
dXRFbGVtZW50LmgKaW5kZXggOWNiNmQwNWY4NjIxZGI0ZDMxZTNiOTZhNDFhN2RlYjE4NzEzYmFh
ZS4uMTZhZjk2Nzc2YTczMjFmMzYxZjkxODc4MGY2MjY0ZDYxNDk3YjhlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjcmVhdGVkQnlQYXJzZXIgPSBm
YWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQg
Y2hpbGRDb3VudERlbHRhID0gMCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCmluZGV4IDZlYzkxYjkzZDY5NmEyMTQ3
NWU5MDM0YTQyZjhhNGJjODc1ODRlMGUuLjljM2I0MzZjYzcxYzllMTYzYjM2Y2Y1MGJiZGNjZWNm
ODRkYTliZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCkBA
IC01MSw3ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgSFRNTFByb2dyZXNzRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKICAgICB2aXJ0dWFs
IH5IVE1MUHJvZ3Jlc3NFbGVtZW50KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBv
cnRMYWJlbHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmgKaW5kZXggM2VkNjE5NjFjYjI2MGI0ZGNiNDZjMmRhZGE4MDVmMGEzYmY2MmQ0
Yy4uZWI1YTE1MzIyMGMyZWNlNDQwYWJiMGU4NzYzOTM5NDhiMzIzZjNhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250
cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVG
b3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1l
cy5pbgppbmRleCBiZGJmMzM4MjQwZTJkMzMyMzVlM2NlZmRkMWFkMTIxYTU0ZWJhOTQ0Li5iYzkx
ODIyNzIzMTNmYmUxOWM2MTkxOGVlMzY2NTY5YWE1ZmNiZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWdOYW1lcy5pbgpAQCAtODMsNyArODMsNyBAQCBtYXJrIGludGVyZmFjZU5hbWU9SFRNTEVs
ZW1lbnQKIG1hcnF1ZWUKIG1lbnUKIG1ldGEKLW1ldGVyIGludGVyZmFjZU5hbWU9SFRNTE1ldGVy
RWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBjb25kaXRpb25hbD1NRVRFUl9U
QUcKK21ldGVyIGludGVyZmFjZU5hbWU9SFRNTE1ldGVyRWxlbWVudCwgY29uZGl0aW9uYWw9TUVU
RVJfVEFHCiBuYXYgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbm9iciBpbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50CiBub2VtYmVkIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggZDA3YzdhNTgzMTExZjJkODlk
NTA3ZGY2ZGZjYzk5NzcxMTAxZjM4Ni4uYTE5YTQ3MWE5NjRiYTkwZDMwYWQ3NDg5NDMwMTM2ZjI0
OTU3M2MxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKQEAg
LTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3VidHJlZUhhc0NoYW5n
ZWQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSGlkZGVuSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0
VHlwZS5oCmluZGV4IDc1ZDM2NjNmMjg2MThlOGVjZDVkNmQ1NGI3NWFiZTViNzA5YzM0MmIuLmI2
YmU0ZTk5NWYwYzRlN2FlODJjYzRjNjAwODYyMzY0NDZjZGRkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IaWRkZW5JbnB1dFR5cGUuaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN0
b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGlzSGlkZGVuVHlwZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0xh
YmVsYWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRG
b3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcAppbmRleCAyZTFhZGJkMWZhNGU4Mjk5ZGJiNGIzMDU5YjYxODAwODQ0MGZl
ZTY0Li4zZDA2MDkyYjA2NGI1MzQ1MGNiNzljMTI3Njg2NTQ0N2UwNjQ5NzdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuY3BwCkBAIC02NTgsNyArNjU4LDcgQEAgYm9vbCBJbnB1dFR5cGU6Omlz
SW1hZ2VCdXR0b24oKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBJbnB1dFR5
cGU6OmlzTGFiZWxhYmxlKCkgY29uc3QKK2Jvb2wgSW5wdXRUeXBlOjpzdXBwb3J0TGFiZWxzKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4
IGFhZmQ3NmQxN2EyZWEzMGIyYzI2YzcxNDZmYjllOTUzNjQxZGJkYWQuLjE2NDQxOGFhZDlhODQy
NjBmM2U1MWFkZWRhYjgzOGYxZWY2NjBlNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAt
MTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGaWxlVXBsb2FkKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzSGlkZGVuVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzTGFiZWxh
YmxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNOdW1iZXJGaWVsZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBp
c1Bhc3N3b3JkRmllbGQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNSYWRpb0J1dHRvbigp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MYWJlbGFibGVFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHAKaW5kZXggNDVi
NDFiMGViMWQyNzc2MTUzZWE5YWJmYTVlNWJhNmViM2Y4ZWUyOC4uZTgyNDdiOWJhZmE0ZWI0MzRh
NGNkZDJmNDI4ZjYxZDM2NjI1ODBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9M
YWJlbGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsYWJsZUVs
ZW1lbnQuY3BwCkBAIC00Miw3ICs0Miw3IEBAIExhYmVsYWJsZUVsZW1lbnQ6On5MYWJlbGFibGVF
bGVtZW50KCkKIAogUGFzc1JlZlB0cjxOb2RlTGlzdD4gTGFiZWxhYmxlRWxlbWVudDo6bGFiZWxz
KCkKIHsKLSAgICBpZiAoIWlzTGFiZWxhYmxlKCkpCisgICAgaWYgKCFzdXBwb3J0TGFiZWxzKCkp
CiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICghZG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsYWJsZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5oCmluZGV4IDkxODMwN2ZjZTM5
MDFlYjI4YTUxN2E5MTAzZjdmZTNjNWZjNTk3ZDkuLmRiMGQyNjRhNjcxMjFlMGM0MWJmMDJlMTA4
NjgzZjExYTg4YTQzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5oCkBA
IC00MCwxMSArNDAsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTGFiZWxhYmxlRWxl
bWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TGFiZWxh
YmxlRWxlbWVudCgpOwotICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gbGFiZWxzKCk7CisgICAgdmly
dHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90
ZWN0ZWQ6CiAgICAgTGFiZWxhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCopOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAxMDViMDM5ZjM5YmFkN2U1MmZjNzhkYTZmNzdjZmRmNTI2ZjA3MWVlLi4y
NDljMWM1ZGRlYzhmMDNhZjIxZDkwZDg3N2I0NTJiNWQ2Mzg3ODJkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTItMDMtMTMgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbRm9ybXNdIFRoZSAibWV0ZXIiIGVsZW1lbnQgc2hvdWxkIG5vdCBiZSBhIGZv
cm0tYXNzb2NpYXRlZCBlbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODAzODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGVzdHMgd2hpY2ggY2hlY2tzIG5vbi1l
eGlzdGVudCAiZm9ybSIgYXR0cmlidXRlCisgICAgICAgIG9mIHRoZSAibWV0ZXIiIGVsZW1lbnQu
IFRoZSAiZm9ybSIgYXR0cmlidXRlIGlzIGF2YWlsYWJsZSBvbmx5IGZvcgorICAgICAgICBmb3Jt
LWFzc29jaWF0ZWQgZWxlbWVudHMuIEhvd2V2ZXIsIHRoZSAibWV0ZXIiIGVsZW1lbnQgaXNuJ3Qg
YQorICAgICAgICBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudC4KKworICAgICAgICAqIGZhc3QvZG9t
L0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItZWxlbWVudC1mb3JtLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1lbnQtZm9y
bS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUtZXhw
ZWN0ZWQudHh0OiBVcGRhdGVkIGV4cGVjdGF0aW9uIGZvciB0ZXN0IG91dHB1dCBjaGFuZ2VzLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUuaHRtbDogUmVtb3ZlZCBsaW5lcyBm
b3IgdGhlICJtZXRlciIgZWxlbWVudC4KKwogMjAxMi0wMy0xNCAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV0dXJuIG51bGwgd2hlbiBzaG91bGRBbGxv
d0FjY2Vzc1RvTm9kZSgpIGZhaWxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1lbnQtZm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1lbnQtZm9ybS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiYTEzMjg0OTI0M2E2NGUzNDM4
OGE5ZDQ2M2Q5NGQxOTNmN2MxZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1l
bGVtZW50LWZvcm0tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0K
LVRoaXMgdGVzdCBwYXNzZXMgaWYgdGhlIG1ldGVyIGVsZW1lbnQgY2FuIGZpbmQgaXRzIGZvcm0u
Ci1QQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50
L21ldGVyLWVsZW1lbnQtZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVy
RWxlbWVudC9tZXRlci1lbGVtZW50LWZvcm0uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmVkNDkzY2IwMTYzOWZkYThmNTBlNjcxZWZjNWQ3MjY5YTlkYzdmNi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1lbnQtZm9ybS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMjAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLTwvc2NyaXB0PgotCi08Ym9keT4KLTx0YWJsZT48Zm9ybSBpZD1mb3JtMT4KLTxtZXRlciBp
ZD1tZXRlcjE+PC9tZXRlcj4KLTwvZm9ybT48L3RhYmxlPgotPGRpdj5UaGlzIHRlc3QgcGFzc2Vz
IGlmIHRoZSBtZXRlciBlbGVtZW50IGNhbiBmaW5kIGl0cyBmb3JtLjwvZGl2PgotPGRpdiBpZD1j
b25zb2xlPkZBSUw8L2Rpdj4KLQotPHNjcmlwdD4KLWlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbWV0ZXIxJykuZm9ybS5pZCA9PSAiZm9ybTEiKQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gIlBBU1MiOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXR0cmlidXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUtZXhw
ZWN0ZWQudHh0CmluZGV4IDM3YmM5ODlhYjcyOWIzY2EzNjJmMGRiZGY0NWI1MDFkMmJmYTM3MjQu
LjAzOTJlMWI1M2NmMDRlY2QzMDlhMGI3YTA3ZGFiYmQ1MWJmOTgyMmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0xMCw3
ICsxMCw2IEBAIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImZpZWxkc2V0Iilb
MF0uZm9ybSBpcyBvd25lcgogUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5w
dXQiKVswXS5mb3JtIGlzIG93bmVyCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJrZXlnZW4iKVswXS5mb3JtIGlzIG93bmVyCiBGQUlMIGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJsYWJlbCIpWzBdLmZvcm0gc2hvdWxkIGJlIFtvYmplY3QgSFRNTEZvcm1FbGVtZW50
XS4gV2FzIG51bGwuCi1QQVNTIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJtZXRlciIp
WzBdLmZvcm0gaXMgb3duZXIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9i
amVjdCIpWzBdLmZvcm0gaXMgb3duZXIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoIm91dHB1dCIpWzBdLmZvcm0gaXMgb3duZXIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoInByb2dyZXNzIilbMF0uZm9ybSBpcyBvd25lcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9mb3JtLWF0dHJpYnV0ZS5odG1sCmluZGV4IGIzOGY2ZGY0YTQxM2VkOTg0MjI4ZGJmYzc3
YjVmMGYxNTdlYmYyMjguLjE0MjE4ZjE0M2VhZmQxZGMwMTFhOGIwMDg3ODJkZDFlMzJmYjgyNjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXR0cmlidXRlLmh0bWwKQEAgLTIwLDcg
KzIwLDYgQEAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8Zm9ybSBpZD1vd25lcj48L2Zvcm0+JyAr
CiAgICAgJzxpbnB1dCBuYW1lPXZpY3RpbSBmb3JtPW93bmVyIC8+JyArCiAgICAgJzxrZXlnZW4g
bmFtZT12aWN0aW0gZm9ybT1vd25lciAvPicgKwogICAgICc8bGFiZWwgbmFtZT12aWN0aW0gZm9y
bT1vd25lciAvPicgKwotICAgICc8bWV0ZXIgbmFtZT12aWN0aW0gZm9ybT1vd25lciAvPicgKwog
ICAgICc8b2JqZWN0IG5hbWU9dmljdGltIGZvcm09b3duZXI+PC9vYmplY3Q+JyArCiAgICAgJzxv
dXRwdXQgbmFtZT12aWN0aW0gZm9ybT1vd25lciAvPicgKwogICAgICc8cHJvZ3Jlc3MgbmFtZT12
aWN0aW0gZm9ybT1vd25lciAvPicgKwpAQCAtMzMsNyArMzIsNiBAQCBzaG91bGRCZSgnZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImZpZWxkc2V0IilbMF0uZm9ybScsICdvd25lcicpOwog
c2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmZvcm0n
LCAnb3duZXInKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgia2V5
Z2VuIilbMF0uZm9ybScsICdvd25lcicpOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJsYWJlbCIpWzBdLmZvcm0nLCAnb3duZXInKTsKLXNob3VsZEJlKCdkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibWV0ZXIiKVswXS5mb3JtJywgJ293bmVyJyk7CiBzaG91
bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmZvcm0nLCAn
b3duZXInKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib3V0cHV0
IilbMF0uZm9ybScsICdvd25lcicpOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJwcm9ncmVzcyIpWzBdLmZvcm0nLCAnb3duZXInKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131819</attachid>
            <date>2012-03-14 03:24:16 -0700</date>
            <delta_ts>2012-03-14 18:52:29 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-80380-20120314192414.patch</filename>
            <type>text/plain</type>
            <size>26600</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM2YmJiYWQxZmM1MDJk
YjQ5M2M5NDA1MjY0ODAwN2Y0YWViODc4Mi4uY2IwMTU0ZWE2YjFhOGM2M2JkZjRhNjJkYzkzNzhm
MzBkMGFjM2VmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTAzLTEzICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBUaGUg
Im1ldGVyIiBlbGVtZW50IHNob3VsZCBub3QgYmUgYSBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzgwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBjaGFuZ2VzIGJhc2UgY2xhc3Mgb2YgSFRNTE1ldGVyRWxlbWVudCB0byBMYWJlbGFibGVFbGVt
ZW50IGZyb20KKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCBmb3Igc2F2aW5nIG1lbW9y
eSBzcGFjZSBhbmQgaXRlcmF0aW9uIHRpbWUgb2YKKyAgICAgICAgZXh0cmEgIm1ldGVyIiBlbGVt
ZW50cyBpbiBIVE1MRm9ybUVsZW1lbnQ6Om1fZm9ybUFzc29jaWF0ZWRFbGVtZW50cworICAgICAg
ICBhbmQgbWF0Y2hpbmcgdGhlIEhUTUw1IHNwZWNpZmljYXRpb24gZm9yIGVhc2Ugb2YgbWFpbnRl
bmFuY2UuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWVzIGlzTGFiZWxhYmxlIG1ldGhvZCB0
byBzdXBwb3J0TGFiZWxzIGFuZCBtYWtlcyBpc0xhYmVsYWJsZQorICAgICAgICBhcyBwcmVkaWNh
dGUgb2YgYW4gaW5zdGFuY2Ugb2YgTGFiZWxhYmxlRWxlbWVudCBvciBub3QuCisKKyAgICAgICAg
Q2hhbmdlcyBvZiBUZXh0SXRlcmF0b3IgaXMgbGVhZCBieSB1c2FnZSBvZiBpc0Zvcm1Db250cm9s
RWxlbWVudC4gVGhpcworICAgICAgICBjaGFuZ2VzIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBtb3Jl
IG1lYW5pbmdmdWwgcHJlZGljYXRlIGFzIHBhcnQgb2YKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzgxCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBV
cGRhdGUgZXhpc3RpbmcgdGVzdHMgdG8gY292ZXIgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBl
ZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6
OmFkdmFuY2UpOiBDaGVjayBIVE1MTWV0ZXJFbGVtZW50IGluIGFkZGl0aW9uIHRvIGlzRm9ybUNv
bnRyb2xFbGVtZW50LiBUaGlzIGNoYW5nZSBpcyBmb3IgdGV4dCBkdW1wIGluIExheW91dFRlc3Rz
IGltcGxlbWVudGVkIGJ5IGRvY3VtZW50LmlubmVyVGV4dCBhdHRyaWJ1dGUuCisgICAgICAgICog
aHRtbC9IVE1MQnV0dG9uLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQnV0dG9uRWxlbWVudDo6
c3VwcG9ydExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVsYWJsZQorICAgICAgICAqIGh0bWwv
SFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojppc0xhYmVsYWJs
ZSk6IEFkZGVkLiBBIHByZWRpY2F0ZSBmb3IgYW4gaW5zdGFuY2Ugb2YgTGFiZWxhYmxlRWxlbWVu
dC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OnN1cHBvcnRMYWJlbHMpOiBSZW5hbWVkIGZyb20gaXNMYWJlbGFi
bGUKKyAgICAgICAgKiBodG1sL0hUTUxLZXlnZW5FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MS2V5Z2VuRWxlbWVudDo6c3VwcG9ydExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVs
YWJsZQorICAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bm9kZUFzTGFiZWxhYmxlRWxlbWVudCk6IENoYW5nZWQgdG8gcmV0dXJuIExhYmVsYWJs
ZUVsZW1lbnQgaW5zdGVhZCBvZiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTExhYmVsRWxlbWVudDo6Y29udHJvbCk6IENoYW5nZWQgdG8gcmV0dXJuIExhYmVs
YWJsZUVsZW1lbnQgaW5zdGVhZCBvZiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50LgorICAgICAgICAq
IGh0bWwvSFRNTExhYmVsRWxlbWVudC5oOgorICAgICAgICAoSFRNTExhYmVsRWxlbWVudCk6Cisg
ICAgICAgICogaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZXRlckVsZW1lbnQ6OkhUTUxNZXRlckVsZW1lbnQpOiBDaGFuZ2VkIGJhc2UgY2xhc3MgdG8g
TGFiZWxhYmxlRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OmNy
ZWF0ZSk6IFJlbW92ZSBmb3JtIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRl
ckVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6IFJlbW92ZSBpbXBsZW1lbnRhdGlvbiBvZiB2aXJ0
dWFsIG1ldGhvZCBkZWNsYXJlZCBpbiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50LgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1ldGVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBSZXBsYWNlIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQgdG8gTGFiZWxhYmxlRWxlbWVudAorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1ldGVyRWxlbWVudDo6YXR0YWNoKTogUmVwbGFjZSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
IHRvIExhYmVsYWJsZUVsZW1lbnQKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaDoK
KyAgICAgICAgKEhUTUxNZXRlckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGVy
RWxlbWVudDo6c3VwcG9ydExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVsYWJsZQorICAgICAg
ICAqIGh0bWwvSFRNTE91dHB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPdXRw
dXRFbGVtZW50OjpzdXBwb3J0TGFiZWxzKTogUmVuYW1lZCBmcm9tIGlzTGFiZWxhYmxlCisgICAg
ICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
UHJvZ3Jlc3NFbGVtZW50OjpzdXBwb3J0TGFiZWxzKTogUmVuYW1lZCBmcm9tIGlzTGFiZWxhYmxl
CisgICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxTZWxlY3RFbGVtZW50OjpzdXBwb3J0TGFiZWxzKTogUmVuYW1lZCBmcm9tIGlzTGFiZWxh
YmxlCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzdXBwb3J0TGFiZWxzKTogUmVuYW1lZCBmcm9tIGlz
TGFiZWxhYmxlCisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkhpZGRlbklucHV0VHlwZTo6c3VwcG9ydExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xh
YmVsYWJsZQorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGU6OnN1cHBvcnRMYWJlbHMpOiBSZW5hbWVkIGZyb20gaXNMYWJlbGFibGUKKyAgICAg
ICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjogUmVtb3ZlICJjb25zdHJ1Y3Rvck5lZWRzRm9ybUVs
ZW1lbnQiIGZvciBub3QgcGFzc2luZyAiZm9ybSIgcGFyYW1ldGVyIGluIEhUTUxFbGVtZW50RmFj
dG9yeS4KKyAgICAgICAgKiBodG1sL0xhYmVsYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGFiZWxhYmxlRWxlbWVudDo6bGFiZWxzKTogUmVwbGFjZSBpc0xhYmVsYWJsZSB0byBz
dXBwb3J0TGFiZWxzCisgICAgICAgICogaHRtbC9MYWJlbGFibGVFbGVtZW50Lmg6CisgICAgICAg
IChMYWJlbGFibGVFbGVtZW50KToKKwogMjAxMi0wMy0xNCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAg
PHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBCdWlsZCBmaXggZm9y
IEVGTCBhZnRlciByMTEwNjY5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3Bw
CmluZGV4IGUwYmY4YzNhMGZlNmU4YTY4MzMxM2YxNzg4Yzg0YWI1ZmIwNGQ0MzUuLjlkMzg1YWMx
NGU5OGEzNjM4ZDM0NzcxNjcyZTNkNDEzNzNiMTBlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1RleHRJdGVyYXRvci5jcHAKQEAgLTM5NSw3ICszOTUsOCBAQCB2b2lkIFRleHRJdGVyYXRvcjo6
YWR2YW5jZSgpCiAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVuZGVyZXIgJiYgKHJlbmRlcmVy
LT5pc0ltYWdlKCkgfHwgcmVuZGVyZXItPmlzV2lkZ2V0KCkgfHwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAocmVuZGVyZXItPm5vZGUoKSAmJiByZW5kZXJlci0+bm9kZSgpLT5pc0VsZW1lbnRO
b2RlKCkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXRpY19jYXN0PEVsZW1lbnQq
PihyZW5kZXJlci0+bm9kZSgpKS0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICB8fCBzdGF0aWNfY2FzdDxFbGVtZW50Kj4ocmVuZGVyZXItPm5vZGUoKSkt
Pmhhc1RhZ05hbWUobGVnZW5kVGFnKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfHwg
c3RhdGljX2Nhc3Q8RWxlbWVudCo+KHJlbmRlcmVyLT5ub2RlKCkpLT5oYXNUYWdOYW1lKGxlZ2Vu
ZFRhZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgc3RhdGljX2Nhc3Q8RWxlbWVudCo+
KHJlbmRlcmVyLT5ub2RlKCkpLT5oYXNUYWdOYW1lKG1ldGVyVGFnKSkpKSkKICAgICAgICAgICAg
ICAgICAgICAgbV9oYW5kbGVkTm9kZSA9IGhhbmRsZVJlcGxhY2VkRWxlbWVudCgpOwogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbV9oYW5kbGVkTm9kZSA9IGhhbmRs
ZU5vblRleHROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0
b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgKaW5k
ZXggNTFlYTcxYTFjOWZlODAzNzZhMjU3ZDYyNmZlMzgxMWIyMGUxZjE1Zi4uMmQyOTZjYjExMWZk
ZDA2YzZjNGU5ZjNlZGFlNjA5ZGMyMDIwYzBiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0gCi0gICAgdmlydHVhbCBi
b29sIGlzTGFiZWxhYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgdmlydHVhbCBib29sIGlzU3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2YXRlZFN1Ym1pdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5oCmluZGV4IGI5MjE1MmM5ZjY3NWNjNWZjZTRkYTVkNmU4MTBkZGViNjQxMDUy
N2EuLjkxZGM0Nzc5MjE5ODFhYmQ3NTIxYmY2MTViYjBiZmM1ODMwNjM4NzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIHZpcnR1YWwgYm9vbCBpc0luc2VydGlvblBvaW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CmluZGV4IGVjYTE0NGEyMjNkOWIyNzU1MjY4NjkzN2NmMzY4YTk0Nzg3ZmNlZjcuLjkxYjg0MGM2
ZTdiYjMwMTNlZjY4OGYyNTc2MmRiMTFjNjZmYzdkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTc2MSw5ICsxNzYxLDkgQEAgYm9vbCBIVE1MSW5wdXRF
bGVtZW50Ojppc0VudW1lcmF0YWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5p
c0VudW1lcmF0YWJsZSgpOwogfQogCi1ib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzTGFiZWxhYmxl
KCkgY29uc3QKK2Jvb2wgSFRNTElucHV0RWxlbWVudDo6c3VwcG9ydExhYmVscygpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1faW5wdXRUeXBlLT5pc0xhYmVsYWJsZSgpOworICAgIHJldHVybiBtX2lu
cHV0VHlwZS0+c3VwcG9ydExhYmVscygpOwogfQogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnNo
b3VsZEFwcGVhckNoZWNrZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaAppbmRleCA2ZGI1Zjc3NmEwN2M1NWJjNWM1ODBiYWFkNjM0Mjc5NTY5NTcxYTM0Li45YTY1
OGIyMmI1MzMxYWY4NjRkZjBjZTk5NDE5MjA0YjZiZWYyOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjU2LDcgKzI1Niw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IGlzRW51bWVyYXRhYmxlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzTGFiZWxhYmxlKCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wgcmVz
dG9yZVByZXZpb3VzU2VsZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgYWJvdXRUb1VubG9hZCgp
OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCmluZGV4IDA0YTllZDUzY2EyMDY5NzU5YjllMzQzNDIz
N2FhM2EyM2VmNTEwN2MuLjQ1ZGYxMGJhYzk0MTUwMjNhOTE0NzVjNjgxOTQxNWViMDdkYmNlZjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9sKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRM
YWJlbHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgcmVzZXQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKaW5k
ZXggYjQ3NDhkNjI2NTUwYjRlYmJlNDBhZDRhOWZkNDhlOTMwYmY4Njc4My4uZjUyMmJiMDE3ODc4
MGUwYThlMmQ1YWYxOTk1MWNjNjkzYTgxODAyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuY3BwCkBAIC0yOCwyNCArMjgsMjcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUg
IkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJMYWJlbGFibGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotc3Rh
dGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIG5vZGVBc0xhYmVsYWJsZUZvcm1Db250cm9sKE5v
ZGUqIG5vZGUpCitzdGF0aWMgTGFiZWxhYmxlRWxlbWVudCogbm9kZUFzTGFiZWxhYmxlRWxlbWVu
dChOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNFbGVtZW50Tm9kZSgp
IHx8ICFzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkp
CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc0hUTUxFbGVtZW50KCkpCiAgICAgICAgIHJldHVy
biAwOwogICAgIAotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1Db250cm9sRWxlbWVu
dCA9IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihub2RlKTsKLSAgICBpZiAo
IWZvcm1Db250cm9sRWxlbWVudC0+aXNMYWJlbGFibGUoKSkKKyAgICBIVE1MRWxlbWVudCogZWxl
bWVudCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSk7CisgICAgaWYgKCFlbGVtZW50
LT5pc0xhYmVsYWJsZSgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBmb3JtQ29u
dHJvbEVsZW1lbnQ7CisgICAgTGFiZWxhYmxlRWxlbWVudCogbGFiZWxhYmxlRWxlbWVudCA9IHN0
YXRpY19jYXN0PExhYmVsYWJsZUVsZW1lbnQqPihlbGVtZW50KTsKKyAgICBpZiAoIWxhYmVsYWJs
ZUVsZW1lbnQtPnN1cHBvcnRMYWJlbHMoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1
cm4gbGFiZWxhYmxlRWxlbWVudDsKIH0KIAogaW5saW5lIEhUTUxMYWJlbEVsZW1lbnQ6OkhUTUxM
YWJlbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQpAQCAtNjQsNyArNjcsNyBAQCBib29sIEhUTUxMYWJlbEVsZW1lbnQ6OmlzRm9jdXNhYmxl
KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUhUTUxGb3JtQ29udHJvbEVsZW1lbnQq
IEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKQorTGFiZWxhYmxlRWxlbWVudCogSFRNTExhYmVs
RWxlbWVudDo6Y29udHJvbCgpCiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb250cm9sSWQg
PSBnZXRBdHRyaWJ1dGUoZm9yQXR0cik7CiAgICAgaWYgKGNvbnRyb2xJZC5pc051bGwoKSkgewpA
QCAtNzMsMTUgKzc2LDE1IEBAIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIEhUTUxMYWJlbEVsZW1l
bnQ6OmNvbnRyb2woKQogICAgICAgICAvLyB0aGUgZm9ybSBlbGVtZW50IG11c3QgYmUgImxhYmVs
YWJsZSBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudCIuCiAgICAgICAgIE5vZGUqIG5vZGUgPSB0aGlz
OwogICAgICAgICB3aGlsZSAoKG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHRoaXMpKSkg
ewotICAgICAgICAgICAgaWYgKEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1Db250cm9sRWxl
bWVudCA9IG5vZGVBc0xhYmVsYWJsZUZvcm1Db250cm9sKG5vZGUpKQotICAgICAgICAgICAgICAg
IHJldHVybiBmb3JtQ29udHJvbEVsZW1lbnQ7CisgICAgICAgICAgICBpZiAoTGFiZWxhYmxlRWxl
bWVudCogZWxlbWVudCA9IG5vZGVBc0xhYmVsYWJsZUVsZW1lbnQobm9kZSkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogICAgIAogICAgIC8vIEZpbmQgdGhlIGZpcnN0IGVsZW1lbnQgd2hvc2UgaWQgaXMgY29udHJv
bElkLiBJZiBpdCBpcyBmb3VuZCBhbmQgaXQgaXMgYSBsYWJlbGFibGUgZm9ybSBjb250cm9sLAog
ICAgIC8vIHJldHVybiBpdCwgb3RoZXJ3aXNlIHJldHVybiAwLgotICAgIHJldHVybiBub2RlQXNM
YWJlbGFibGVGb3JtQ29udHJvbCh0cmVlU2NvcGUoKS0+Z2V0RWxlbWVudEJ5SWQoY29udHJvbElk
KSk7CisgICAgcmV0dXJuIG5vZGVBc0xhYmVsYWJsZUVsZW1lbnQodHJlZVNjb3BlKCktPmdldEVs
ZW1lbnRCeUlkKGNvbnRyb2xJZCkpOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OnNldEFj
dGl2ZShib29sIGRvd24sIGJvb2wgcGF1c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxl
bWVudC5oCmluZGV4IDUyNjM3OWNkMDM5NTdiMzY4ZWQ4ZDZjNTg2ZGZmYWMyNDI1ZDVkNjQuLjRk
ZjU4ZWI3MDViMDVlMDIxYmMwNWEyZjkwMWNlMDA3ZjE4MWVjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5oCkBAIC0yNSw3ICsyNSw3IEBACiAjZGVmaW5lIEhUTUxMYWJl
bEVsZW1lbnRfaAogCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiTGFiZWxhYmxlRWxlbWVudC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgSFRNTExhYmVsRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SFRNTExhYmVsRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwogCi0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogY29udHJvbCgpOworICAgIExhYmVsYWJs
ZUVsZW1lbnQqIGNvbnRyb2woKTsKIAogcHJpdmF0ZToKICAgICBIVE1MTGFiZWxFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
dGVyRWxlbWVudC5jcHAKaW5kZXggM2JlODRlMzNkZmFjYmM4NjU0MjQyOTY4NWYwN2NlYTUwZTA3
ODNjNC4uNjE2ZTY0ODIzYjhhNzM4OGNjYmE3NGRiNjQwZjZhZWU3MzQ3Mjk3MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0zOSw4ICszOSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTE1ldGVy
RWxlbWVudDo6SFRNTE1ldGVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKLSAgICA6IEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCitIVE1MTWV0ZXJFbGVtZW50
OjpIVE1MTWV0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKKyAgICA6IExhYmVsYWJsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUobWV0ZXJUYWcpKTsKIH0KQEAgLTQ5LDkgKzQ5LDkgQEAg
SFRNTE1ldGVyRWxlbWVudDo6fkhUTUxNZXRlckVsZW1lbnQoKQogewogfQogCi1QYXNzUmVmUHRy
PEhUTUxNZXRlckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9y
bSkKK1Bhc3NSZWZQdHI8SFRNTE1ldGVyRWxlbWVudD4gSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAg
ICBSZWZQdHI8SFRNTE1ldGVyRWxlbWVudD4gbWV0ZXIgPSBhZG9wdFJlZihuZXcgSFRNTE1ldGVy
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOworICAgIFJlZlB0cjxIVE1MTWV0ZXJF
bGVtZW50PiBtZXRlciA9IGFkb3B0UmVmKG5ldyBIVE1MTWV0ZXJFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiAgICAgbWV0ZXItPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICByZXR1cm4g
bWV0ZXI7CiB9CkBAIC02NiwxMiArNjYsNiBAQCBib29sIEhUTUxNZXRlckVsZW1lbnQ6OmNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNoaQogICAg
IHJldHVybiBjaGlsZENvbnRleHQuaXNPbkVuY2Fwc3VsYXRpb25Cb3VuZGFyeSgpICYmIEhUTUxF
bGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkQ29udGV4dCk7CiB9CiAKLWNv
bnN0IEF0b21pY1N0cmluZyYgSFRNTE1ldGVyRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWV0ZXIs
ICgibWV0ZXIiKSk7Ci0gICAgcmV0dXJuIG1ldGVyOwotfQotCiBib29sIEhUTUxNZXRlckVsZW1l
bnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAogewogICAgIHJldHVybiBOb2RlOjpzdXBwb3J0c0Zv
Y3VzKCkgJiYgIWRpc2FibGVkKCk7CkBAIC04MiwxMiArNzYsMTIgQEAgdm9pZCBIVE1MTWV0ZXJF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkKICAgICBpZiAoYXR0
cmlidXRlLT5uYW1lKCkgPT0gdmFsdWVBdHRyIHx8IGF0dHJpYnV0ZS0+bmFtZSgpID09IG1pbkF0
dHIgfHwgYXR0cmlidXRlLT5uYW1lKCkgPT0gbWF4QXR0ciB8fCBhdHRyaWJ1dGUtPm5hbWUoKSA9
PSBsb3dBdHRyIHx8IGF0dHJpYnV0ZS0+bmFtZSgpID09IGhpZ2hBdHRyIHx8IGF0dHJpYnV0ZS0+
bmFtZSgpID09IG9wdGltdW1BdHRyKQogICAgICAgICBkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKTsK
ICAgICBlbHNlCi0gICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGF0dHJpYnV0ZSk7CisgICAgICAgIExhYmVsYWJsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGF0
dHJpYnV0ZSk7CiB9CiAKIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6YXR0YWNoKCkKIHsKLSAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRhY2goKTsKKyAgICBMYWJlbGFibGVFbGVtZW50Ojph
dHRhY2goKTsKICAgICBkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuaAppbmRleCBlMmJlOTdmNzEzNzlhODlkZDVjNjQzNzdkMGM0
NDkzM2M1YmZmZTNiLi41OTJjZDZmYzIwMDI4MTg2ZTI4YjBlODc1ZDgyYzg0MmNjMjIwMGViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaApAQCAtMjIsMTUgKzIyLDE1IEBA
CiAjZGVmaW5lIEhUTUxNZXRlckVsZW1lbnRfaAogCiAjaWYgRU5BQkxFKE1FVEVSX1RBRykKLSNp
bmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiTGFiZWxhYmxlRWxl
bWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1ldGVyVmFsdWVFbGVtZW50
OwogCi1jbGFzcyBIVE1MTWV0ZXJFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQgeworY2xhc3MgSFRNTE1ldGVyRWxlbWVudCA6IHB1YmxpYyBMYWJlbGFibGVFbGVtZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRNTE1ldGVyRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogCiAgICAgZW51bSBHYXVnZVJlZ2lvbiB7CiAgICAgICAgIEdh
dWdlUmVnaW9uT3B0aW11bSwKQEAgLTYyLDE1ICs2MiwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBj
YW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByaXZh
dGU6Ci0gICAgSFRNTE1ldGVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
LCBIVE1MRm9ybUVsZW1lbnQqKTsKKyAgICBIVE1MTWV0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgfkhUTUxNZXRlckVsZW1lbnQoKTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVjYWxjV2lsbFZhbGlkYXRlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBl
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaAppbmRleCA5Y2I2ZDA1Zjg2MjFkYjRk
MzFlM2I5NmE0MWE3ZGViMTg3MTNiYWFlLi4xNmFmOTY3NzZhNzMyMWYzNjFmOTE4NzgwZjYyNjRk
NjE0OTdiOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCkBAIC01
OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKEF0
dHJpYnV0ZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzTGFiZWxhYmxlKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFi
ZWxzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChi
b29sIGNyZWF0ZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2Rl
KiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgK
aW5kZXggNmVjOTFiOTNkNjk2YTIxNDc1ZTkwMzRhNDJmOGE0YmM4NzU4NGUwZS4uOWMzYjQzNmNj
NzFjOWUxNjNiMzZjZjUwYmJkY2NlY2Y4NGRhOWJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBIVE1M
UHJvZ3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3Jt
RWxlbWVudCopOwogICAgIHZpcnR1YWwgfkhUTUxQcm9ncmVzc0VsZW1lbnQoKTsKIAotICAgIHZp
cnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAppbmRleCAzZWQ2MTk2MWNiMjYwYjRk
Y2I0NmMyZGFkYTgwNWYwYTNiZjYyZDRjLi5lYjVhMTUzMjIwYzJlY2U0NDBhYmIwZTg3NjM5Mzk0
OGIzMjNmM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0x
MTgsNyArMTE4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rp
b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVy
YXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVs
YWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydExhYmVscygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZp
cnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHZhbHVlKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IGJkYmYzMzgyNDBlMmQzMzIzNWUzY2Vm
ZGQxYWQxMjFhNTRlYmE5NDQuLmJjOTE4MjI3MjMxM2ZiZTE5YzYxOTE4ZWUzNjY1NjlhYTVmY2Jk
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC04Myw3ICs4Myw3IEBAIG1h
cmsgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbWFycXVlZQogbWVudQogbWV0YQotbWV0ZXIg
aW50ZXJmYWNlTmFtZT1IVE1MTWV0ZXJFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1l
bnQsIGNvbmRpdGlvbmFsPU1FVEVSX1RBRworbWV0ZXIgaW50ZXJmYWNlTmFtZT1IVE1MTWV0ZXJF
bGVtZW50LCBjb25kaXRpb25hbD1NRVRFUl9UQUcKIG5hdiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50CiBub2JyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vZW1iZWQgaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaApp
bmRleCBkMDdjN2E1ODMxMTFmMmQ4OWQ1MDdkZjZkZmNjOTk3NzExMDFmMzg2Li5hMTlhNDcxYTk2
NGJhOTBkMzBhZDc0ODk0MzAxMzZmMjQ5NTczYzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBzdWJ0cmVlSGFzQ2hhbmdlZCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVy
YXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVs
YWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydExhYmVscygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggNzVkMzY2M2YyODYxOGU4ZWNkNWQ2
ZDU0Yjc1YWJlNWI3MDljMzQyYi4uYjZiZTRlOTk1ZjBjNGU3YWU4MmNjNGM2MDA4NjIzNjQ0NmNk
ZGRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC01MCw3ICs1MCw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNIaWRkZW5UeXBlKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIGlzTGFiZWxhYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRB
bmRXaWR0aEF0dHJpYnV0ZXMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUo
Y29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0
IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDJlMWFkYmQxZmE0ZTgy
OTlkYmI0YjMwNTliNjE4MDA4NDQwZmVlNjQuLjNkMDYwOTJiMDY0YjUzNDUwY2I3OWMxMjc2ODY1
NDQ3ZTA2NDk3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTY1OCw3ICs2NTgs
NyBAQCBib29sIElucHV0VHlwZTo6aXNJbWFnZUJ1dHRvbigpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1ib29sIElucHV0VHlwZTo6aXNMYWJlbGFibGUoKSBjb25zdAorYm9vbCBJbnB1
dFR5cGU6OnN1cHBvcnRMYWJlbHMoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggYWFmZDc2ZDE3YTJlYTMwYjJjMjZjNzE0NmZiOWU5NTM2
NDFkYmRhZC4uMTY0NDE4YWFkOWE4NDI2MGYzZTUxYWRlZGFiODM4ZjFlZjY2MGU0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNIaWRkZW5U
eXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydExhYmVscygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc051bWJlckZpZWxkKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0xhYmVsYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MYWJlbGFi
bGVFbGVtZW50LmNwcAppbmRleCA0NWI0MWIwZWIxZDI3NzYxNTNlYTlhYmZhNWU1YmE2ZWIzZjhl
ZTI4Li5lODI0N2I5YmFmYTRlYjQzNGE0Y2RkMmY0MjhmNjFkMzY2MjU4MGMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgTGFiZWxh
YmxlRWxlbWVudDo6fkxhYmVsYWJsZUVsZW1lbnQoKQogCiBQYXNzUmVmUHRyPE5vZGVMaXN0PiBM
YWJlbGFibGVFbGVtZW50OjpsYWJlbHMoKQogewotICAgIGlmICghaXNMYWJlbGFibGUoKSkKKyAg
ICBpZiAoIXN1cHBvcnRMYWJlbHMoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKCFkb2N1
bWVudCgpKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTGFiZWxhYmxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MYWJlbGFibGVFbGVt
ZW50LmgKaW5kZXggOTE4MzA3ZmNlMzkwMWViMjhhNTE3YTkxMDNmN2ZlM2M1ZmM1OTdkOS4uZmZh
YjJiMThiYzEyOWFjMmQ0ZGMzNDVmMjM5NmRiMTBjODRjZTczYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9MYWJlbGFibGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9MYWJlbGFibGVFbGVtZW50LmgKQEAgLTQwLDExICs0MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBMYWJlbGFibGVFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5MYWJlbGFibGVFbGVtZW50KCk7Ci0gICAgdmlydHVhbCBib29sIGlz
TGFiZWxhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBQYXNzUmVmUHRyPE5vZGVM
aXN0PiBsYWJlbHMoKTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKICAgICBMYWJlbGFibGVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCBib29sIGlzTGFiZWxhYmxlKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1
ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEwNWIwMzlmMzliYWQ3
ZTUyZmM3OGRhNmY3N2NmZGY1MjZmMDcxZWUuLmY5MmU4MWQ0ZGJmMzQwNTc2MzVkZGU4NjRlNzgx
Y2VhYmY4N2RjNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wMy0xMyAgWW9zaGlmdW1p
IElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtGb3Jtc10gVGhlICJtZXRl
ciIgZWxlbWVudCBzaG91bGQgbm90IGJlIGEgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDM4MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVt
b3ZlcyB0ZXN0cyB3aGljaCBjaGVja3Mgbm9uLWV4aXN0ZW50ICJmb3JtIiBhdHRyaWJ1dGUKKyAg
ICAgICAgb2YgdGhlICJtZXRlciIgZWxlbWVudC4gVGhlICJmb3JtIiBhdHRyaWJ1dGUgaXMgYXZh
aWxhYmxlIG9ubHkgZm9yCisgICAgICAgIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50cy4gSG93ZXZl
ciwgdGhlICJtZXRlciIgZWxlbWVudCBpc24ndCBhCisgICAgICAgIGZvcm0tYXNzb2NpYXRlZCBl
bGVtZW50LgorCisgICAgICAgICogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1lbGVt
ZW50LWZvcm0tZXhwZWN0ZWQudHh0OiBVcGRhdGVkIGV4cGVjdGF0aW9uIGZvciB0ZXN0IG91dHB1
dCBjaGFuZ2VzLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItZWxl
bWVudC1mb3JtLmh0bWw6IENoYW5nZWQgdG8gY2hlY2sgbnVsbCBmb3IgSURMIGF0dHJpYnV0ZSAi
Zm9ybSIuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6
IFVwZGF0ZWQgZXhwZWN0YXRpb24gZm9yIHRlc3Qgb3V0cHV0IGNoYW5nZXMuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS5odG1sOiBSZW1vdmVkIGxpbmVzIGZvciB0aGUgIm1l
dGVyIiBlbGVtZW50LgorCiAyMDEyLTAzLTE0ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXR1cm4gbnVsbCB3aGVuIHNob3VsZEFsbG93QWNjZXNzVG9O
b2RlKCkgZmFpbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVs
ZW1lbnQvbWV0ZXItZWxlbWVudC1mb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItZWxlbWVudC1mb3JtLWV4cGVjdGVkLnR4dAppbmRl
eCA0YmExMzI4NDkyNDNhNjRlMzQzODhhOWQ0NjNkOTRkMTkzZjdjMWY3Li5iZjE1YTFhZDFhNTlh
NDhlMTU5MWZiYTI3ODAwMmE5NDIyYmQ1YTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1lbnQtZm9ybS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1lbGVtZW50LWZv
cm0tZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1UaGlzIHRlc3QgcGFzc2VzIGlmIHRo
ZSBtZXRlciBlbGVtZW50IGNhbiBmaW5kIGl0cyBmb3JtLgorVGhpcyB0ZXN0IHBhc3NlcyBpZiB0
aGUgbWV0ZXIgZWxlbWVudCBkb2Vzbid0IGZpbmQgZm9ybSBlbGVtZW50LgogUEFTUwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1lbGVtZW50
LWZvcm0uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXIt
ZWxlbWVudC1mb3JtLmh0bWwKaW5kZXggZmVkNDkzY2IwMTYzOWZkYThmNTBlNjcxZWZjNWQ3MjY5
YTlkYzdmNi4uYmE4NmUyOWM5NjBiZTg0NWMzN2VjOGFjZDg5N2IwMTM1ZWVjMWYyOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1lbGVtZW50
LWZvcm0uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21l
dGVyLWVsZW1lbnQtZm9ybS5odG1sCkBAIC05LDExICs5LDExIEBAIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiA8dGFibGU+PGZvcm0gaWQ9Zm9ybTE+CiA8bWV0ZXIgaWQ9bWV0ZXIx
PjwvbWV0ZXI+CiA8L2Zvcm0+PC90YWJsZT4KLTxkaXY+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUg
bWV0ZXIgZWxlbWVudCBjYW4gZmluZCBpdHMgZm9ybS48L2Rpdj4KKzxkaXY+VGhpcyB0ZXN0IHBh
c3NlcyBpZiB0aGUgbWV0ZXIgZWxlbWVudCBkb2Vzbid0IGZpbmQgZm9ybSBlbGVtZW50LjwvZGl2
PgogPGRpdiBpZD1jb25zb2xlPkZBSUw8L2Rpdj4KIAogPHNjcmlwdD4KLWlmIChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbWV0ZXIxJykuZm9ybS5pZCA9PSAiZm9ybTEiKQoraWYgKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdtZXRlcjEnKS5mb3JtID09IG51bGwpCiAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSAiUEFTUyI7CiA8L3NjcmlwdD4KIDwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQKaW5kZXggMzdiYzk4OWFiNzI5YjNjYTM2MmYwZGJkZjQ1YjUwMWQyYmZhMzcyNC4u
MDM5MmUxYjUzY2YwNGVjZDMwOWEwYjdhMDdkYWJiZDUxYmY5ODIyYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTEwLDcg
KzEwLDYgQEAgUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZmllbGRzZXQiKVsw
XS5mb3JtIGlzIG93bmVyCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1
dCIpWzBdLmZvcm0gaXMgb3duZXIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImtleWdlbiIpWzBdLmZvcm0gaXMgb3duZXIKIEZBSUwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImxhYmVsIilbMF0uZm9ybSBzaG91bGQgYmUgW29iamVjdCBIVE1MRm9ybUVsZW1lbnRd
LiBXYXMgbnVsbC4KLVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm1ldGVyIilb
MF0uZm9ybSBpcyBvd25lcgogUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2Jq
ZWN0IilbMF0uZm9ybSBpcyBvd25lcgogUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgib3V0cHV0IilbMF0uZm9ybSBpcyBvd25lcgogUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgicHJvZ3Jlc3MiKVswXS5mb3JtIGlzIG93bmVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2Zvcm0tYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm0tYXR0cmlidXRlLmh0bWwKaW5kZXggYjM4ZjZkZjRhNDEzZWQ5ODQyMjhkYmZjNzdi
NWYwZjE1N2ViZjIyOC4uMTQyMThmMTQzZWFmZDFkYzAxMWE4YjAwODc4MmRkMWUzMmZiODI2NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUuaHRtbApAQCAtMjAsNyAr
MjAsNiBAQCBjb250YWluZXIuaW5uZXJIVE1MID0gJzxmb3JtIGlkPW93bmVyPjwvZm9ybT4nICsK
ICAgICAnPGlucHV0IG5hbWU9dmljdGltIGZvcm09b3duZXIgLz4nICsKICAgICAnPGtleWdlbiBu
YW1lPXZpY3RpbSBmb3JtPW93bmVyIC8+JyArCiAgICAgJzxsYWJlbCBuYW1lPXZpY3RpbSBmb3Jt
PW93bmVyIC8+JyArCi0gICAgJzxtZXRlciBuYW1lPXZpY3RpbSBmb3JtPW93bmVyIC8+JyArCiAg
ICAgJzxvYmplY3QgbmFtZT12aWN0aW0gZm9ybT1vd25lcj48L29iamVjdD4nICsKICAgICAnPG91
dHB1dCBuYW1lPXZpY3RpbSBmb3JtPW93bmVyIC8+JyArCiAgICAgJzxwcm9ncmVzcyBuYW1lPXZp
Y3RpbSBmb3JtPW93bmVyIC8+JyArCkBAIC0zMyw3ICszMiw2IEBAIHNob3VsZEJlKCdkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZmllbGRzZXQiKVswXS5mb3JtJywgJ293bmVyJyk7CiBz
aG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uZm9ybScs
ICdvd25lcicpOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJrZXln
ZW4iKVswXS5mb3JtJywgJ293bmVyJyk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoImxhYmVsIilbMF0uZm9ybScsICdvd25lcicpOwotc2hvdWxkQmUoJ2RvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJtZXRlciIpWzBdLmZvcm0nLCAnb3duZXInKTsKIHNob3Vs
ZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uZm9ybScsICdv
d25lcicpOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvdXRwdXQi
KVswXS5mb3JtJywgJ293bmVyJyk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoInByb2dyZXNzIilbMF0uZm9ybScsICdvd25lcicpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131972</attachid>
            <date>2012-03-14 18:52:34 -0700</date>
            <delta_ts>2012-03-15 18:49:23 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-80380-20120315105233.patch</filename>
            <type>text/plain</type>
            <size>27312</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM2YmJiYWQxZmM1MDJk
YjQ5M2M5NDA1MjY0ODAwN2Y0YWViODc4Mi4uMjU0YTU1ZDYwOTcyNDc2ODIyNGI3MWNjY2I3Mzhm
YmU4ZDI0MDk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTAzLTE0ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBUaGUg
Im1ldGVyIiBlbGVtZW50IHNob3VsZCBub3QgYmUgYSBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzgwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBjaGFuZ2VzIGJhc2UgY2xhc3Mgb2YgSFRNTE1ldGVyRWxlbWVudCB0byBMYWJlbGFibGVFbGVt
ZW50IGZyb20KKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCBmb3Igc2F2aW5nIG1lbW9y
eSBzcGFjZSBhbmQgaXRlcmF0aW9uIHRpbWUgb2YKKyAgICAgICAgZXh0cmEgIm1ldGVyIiBlbGVt
ZW50cyBpbiBIVE1MRm9ybUVsZW1lbnQ6Om1fZm9ybUFzc29jaWF0ZWRFbGVtZW50cworICAgICAg
ICBhbmQgbWF0Y2hpbmcgdGhlIEhUTUw1IHNwZWNpZmljYXRpb24gZm9yIGVhc2Ugb2YgbWFpbnRl
bmFuY2UuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWVzIGlzTGFiZWxhYmxlIG1ldGhvZCB0
byBzdXBwb3J0TGFiZWxzIGFuZCBtYWtlcyBpc0xhYmVsYWJsZQorICAgICAgICBhcyBwcmVkaWNh
dGUgb2YgYW4gaW5zdGFuY2Ugb2YgTGFiZWxhYmxlRWxlbWVudCBvciBub3QuCisKKyAgICAgICAg
Q2hhbmdlcyBvZiBUZXh0SXRlcmF0b3IgaXMgbGVhZCBieSB1c2FnZSBvZiBpc0Zvcm1Db250cm9s
RWxlbWVudC4gVGhpcworICAgICAgICBjaGFuZ2VzIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBtb3Jl
IG1lYW5pbmdmdWwgcHJlZGljYXRlIGFzIHBhcnQgb2YKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzgxCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBV
cGRhdGUgZXhpc3RpbmcgdGVzdHMgdG8gY292ZXIgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBl
ZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6
OmFkdmFuY2UpOiBDaGVjayBIVE1MTWV0ZXJFbGVtZW50IGluIGFkZGl0aW9uIHRvIGlzRm9ybUNv
bnRyb2xFbGVtZW50LiBUaGlzIGNoYW5nZSBpcyBmb3IgdGV4dCBkdW1wIGluIExheW91dFRlc3Rz
IGltcGxlbWVudGVkIGJ5IGRvY3VtZW50LmlubmVyVGV4dCBhdHRyaWJ1dGUuCisgICAgICAgICog
aHRtbC9IVE1MQnV0dG9uLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQnV0dG9uRWxlbWVudDo6
c3VwcG9ydExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVsYWJsZQorICAgICAgICAqIGh0bWwv
SFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojppc0xhYmVsYWJs
ZSk6IEFkZGVkLiBBIHByZWRpY2F0ZSBmb3IgYW4gaW5zdGFuY2Ugb2YgTGFiZWxhYmxlRWxlbWVu
dC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OnN1cHBvcnRMYWJlbHMpOiBSZW5hbWVkIGZyb20gaXNMYWJlbGFi
bGUKKyAgICAgICAgKiBodG1sL0hUTUxLZXlnZW5FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MS2V5Z2VuRWxlbWVudDo6c3VwcG9ydExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVs
YWJsZQorICAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bm9kZUFzTGFiZWxhYmxlRWxlbWVudCk6IENoYW5nZWQgdG8gcmV0dXJuIExhYmVsYWJs
ZUVsZW1lbnQgaW5zdGVhZCBvZiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTExhYmVsRWxlbWVudDo6Y29udHJvbCk6IENoYW5nZWQgdG8gcmV0dXJuIExhYmVs
YWJsZUVsZW1lbnQgaW5zdGVhZCBvZiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50LgorICAgICAgICAq
IGh0bWwvSFRNTExhYmVsRWxlbWVudC5oOgorICAgICAgICAoSFRNTExhYmVsRWxlbWVudCk6Cisg
ICAgICAgICogaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZXRlckVsZW1lbnQ6OkhUTUxNZXRlckVsZW1lbnQpOiBDaGFuZ2VkIGJhc2UgY2xhc3MgdG8g
TGFiZWxhYmxlRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OmNy
ZWF0ZSk6IFJlbW92ZSBmb3JtIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRl
ckVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6IFJlbW92ZSBpbXBsZW1lbnRhdGlvbiBvZiB2aXJ0
dWFsIG1ldGhvZCBkZWNsYXJlZCBpbiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50LgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1ldGVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBSZXBsYWNlIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQgdG8gTGFiZWxhYmxlRWxlbWVudAorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1ldGVyRWxlbWVudDo6YXR0YWNoKTogUmVwbGFjZSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
IHRvIExhYmVsYWJsZUVsZW1lbnQKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaWRs
OiBSZW1vdmUgdGhlICJmb3JtIiBhdHRyaWJ1dGUgd2hpY2ggaXNuJ3QgbGlzdGVkIGluIHRoZSBI
VE1MNSBzcGVjaWZpY2F0aW9uLgorICAgICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVudC5oOgor
ICAgICAgICAoSFRNTE1ldGVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJF
bGVtZW50OjpzdXBwb3J0TGFiZWxzKTogUmVuYW1lZCBmcm9tIGlzTGFiZWxhYmxlCisgICAgICAg
ICogaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE91dHB1
dEVsZW1lbnQ6OnN1cHBvcnRMYWJlbHMpOiBSZW5hbWVkIGZyb20gaXNMYWJlbGFibGUKKyAgICAg
ICAgKiBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
cm9ncmVzc0VsZW1lbnQ6OnN1cHBvcnRMYWJlbHMpOiBSZW5hbWVkIGZyb20gaXNMYWJlbGFibGUK
KyAgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNlbGVjdEVsZW1lbnQ6OnN1cHBvcnRMYWJlbHMpOiBSZW5hbWVkIGZyb20gaXNMYWJlbGFi
bGUKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnN1cHBvcnRMYWJlbHMpOiBSZW5hbWVkIGZyb20gaXNM
YWJlbGFibGUKKyAgICAgICAgKiBodG1sL0hpZGRlbklucHV0VHlwZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SGlkZGVuSW5wdXRUeXBlOjpzdXBwb3J0TGFiZWxzKTogUmVuYW1lZCBmcm9tIGlzTGFi
ZWxhYmxlCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0VHlwZTo6c3VwcG9ydExhYmVscyk6IFJlbmFtZWQgZnJvbSBpc0xhYmVsYWJsZQorICAgICAg
ICAqIGh0bWwvSFRNTFRhZ05hbWVzLmluOiBSZW1vdmUgImNvbnN0cnVjdG9yTmVlZHNGb3JtRWxl
bWVudCIgZm9yIG5vdCBwYXNzaW5nICJmb3JtIiBwYXJhbWV0ZXIgaW4gSFRNTEVsZW1lbnRGYWN0
b3J5LgorICAgICAgICAqIGh0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYWJlbGFibGVFbGVtZW50OjpsYWJlbHMpOiBSZXBsYWNlIGlzTGFiZWxhYmxlIHRvIHN1
cHBvcnRMYWJlbHMKKyAgICAgICAgKiBodG1sL0xhYmVsYWJsZUVsZW1lbnQuaDoKKyAgICAgICAg
KExhYmVsYWJsZUVsZW1lbnQpOgorCiAyMDEyLTAzLTE0ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeCBmb3Ig
RUZMIGFmdGVyIHIxMTA2NjkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAK
aW5kZXggZTBiZjhjM2EwZmU2ZThhNjgzMzEzZjE3ODhjODRhYjVmYjA0ZDQzNS4uOWQzODVhYzE0
ZTk4YTM2MzhkMzQ3NzE2NzJlM2Q0MTM3M2IxMGUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dEl0ZXJhdG9yLmNwcApAQCAtMzk1LDcgKzM5NSw4IEBAIHZvaWQgVGV4dEl0ZXJhdG9yOjph
ZHZhbmNlKCkKICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZW5kZXJlciAmJiAocmVuZGVyZXIt
PmlzSW1hZ2UoKSB8fCByZW5kZXJlci0+aXNXaWRnZXQoKSB8fAogICAgICAgICAgICAgICAgICAg
ICAgICAgIChyZW5kZXJlci0+bm9kZSgpICYmIHJlbmRlcmVyLT5ub2RlKCktPmlzRWxlbWVudE5v
ZGUoKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGljX2Nhc3Q8RWxlbWVudCo+
KHJlbmRlcmVyLT5ub2RlKCkpLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHx8IHN0YXRpY19jYXN0PEVsZW1lbnQqPihyZW5kZXJlci0+bm9kZSgpKS0+
aGFzVGFnTmFtZShsZWdlbmRUYWcpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBz
dGF0aWNfY2FzdDxFbGVtZW50Kj4ocmVuZGVyZXItPm5vZGUoKSktPmhhc1RhZ05hbWUobGVnZW5k
VGFnKQorICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
cmVuZGVyZXItPm5vZGUoKSktPmhhc1RhZ05hbWUobWV0ZXJUYWcpKSkpKQogICAgICAgICAgICAg
ICAgICAgICBtX2hhbmRsZWROb2RlID0gaGFuZGxlUmVwbGFjZWRFbGVtZW50KCk7CiAgICAgICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBtX2hhbmRsZWROb2RlID0gaGFuZGxl
Tm9uVGV4dE5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRv
bkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAppbmRl
eCA1MWVhNzFhMWM5ZmU4MDM3NmEyNTdkNjI2ZmUzODExYjIwZTFmMTVmLi4yZDI5NmNiMTExZmRk
MDZjNmM0ZTlmM2VkYWU2MDlkYzIwMjBjMGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0
dG9uRWxlbWVudC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpOwogCiAgICAgdmlydHVhbCBib29s
IGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfSAKLSAgICB2aXJ0dWFsIGJv
b2wgaXNMYWJlbGFibGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmly
dHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGlzQWN0aXZhdGVkU3VibWl0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmgKaW5kZXggYjkyMTUyYzlmNjc1Y2M1ZmNlNGRhNWQ2ZTgxMGRkZWI2NDEwNTI3
YS4uOTFkYzQ3NzkyMTk4MWFiZDc1MjFiZjYxNWJiMGJmYzU4MzA2Mzg3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgdmlydHVhbCBib29sIGlzSW5zZXJ0aW9uUG9pbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKIHByb3RlY3RlZDoKICAgICBIVE1MRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
aW5kZXggZWNhMTQ0YTIyM2Q5YjI3NTUyNjg2OTM3Y2YzNjhhOTQ3ODdmY2VmNy4uOTFiODQwYzZl
N2JiMzAxM2VmNjg4ZjI1NzYyZGIxMWM2NmZjN2QyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xNzYxLDkgKzE3NjEsOSBAQCBib29sIEhUTUxJbnB1dEVs
ZW1lbnQ6OmlzRW51bWVyYXRhYmxlKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmlz
RW51bWVyYXRhYmxlKCk7CiB9CiAKLWJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNMYWJlbGFibGUo
KSBjb25zdAorYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzdXBwb3J0TGFiZWxzKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmlzTGFiZWxhYmxlKCk7CisgICAgcmV0dXJuIG1faW5w
dXRUeXBlLT5zdXBwb3J0TGFiZWxzKCk7CiB9CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c2hv
dWxkQXBwZWFyQ2hlY2tlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCmluZGV4IDZkYjVmNzc2YTA3YzU1YmM1YzU4MGJhYWQ2MzQyNzk1Njk1NzFhMzQuLjlhNjU4
YjIyYjUzMzFhZjg2NGRmMGNlOTk0MTkyMDRiNmJlZjI4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCkBAIC0yNTYsNyArMjU2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNFbnVtZXJhdGFibGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1c0FwcGVhcmFuY2UoYm9vbCByZXN0
b3JlUHJldmlvdXNTZWxlY3Rpb24pOwogICAgIHZpcnR1YWwgdm9pZCBhYm91dFRvVW5sb2FkKCk7
CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKaW5kZXggMDRhOWVkNTNjYTIwNjk3NTliOWUzNDM0MjM3
YWEzYTIzZWY1MTA3Yy4uNDVkZjEwYmFjOTQxNTAyM2E5MTQ3NWM2ODE5NDE1ZWIwN2RiY2VmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaApAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc09wdGlvbmFsRm9ybUNvbnRyb2woKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExh
YmVscygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCByZXNldCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAppbmRl
eCBiNDc0OGQ2MjY1NTBiNGViYmU0MGFkNGE5ZmQ0OGU5MzBiZjg2NzgzLi5mNTIyYmIwMTc4Nzgw
ZTBhOGUyZDVhZjE5OTUxY2M2OTNhODE4MDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5jcHAKQEAgLTI4LDI0ICsyOCwyNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAi
SFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgor
I2luY2x1ZGUgIkxhYmVsYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0
aWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCogbm9kZUFzTGFiZWxhYmxlRm9ybUNvbnRyb2woTm9k
ZSogbm9kZSkKK3N0YXRpYyBMYWJlbGFibGVFbGVtZW50KiBub2RlQXNMYWJlbGFibGVFbGVtZW50
KE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc0VsZW1lbnROb2RlKCkg
fHwgIXN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKS0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkK
KyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgCi0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogZm9ybUNvbnRyb2xFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KG5vZGUpOwotICAgIGlmICgh
Zm9ybUNvbnRyb2xFbGVtZW50LT5pc0xhYmVsYWJsZSgpKQorICAgIEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKTsKKyAgICBpZiAoIWVsZW1lbnQt
PmlzTGFiZWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIGZvcm1Db250
cm9sRWxlbWVudDsKKyAgICBMYWJlbGFibGVFbGVtZW50KiBsYWJlbGFibGVFbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8TGFiZWxhYmxlRWxlbWVudCo+KGVsZW1lbnQpOworICAgIGlmICghbGFiZWxhYmxl
RWxlbWVudC0+c3VwcG9ydExhYmVscygpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBsYWJlbGFibGVFbGVtZW50OwogfQogCiBpbmxpbmUgSFRNTExhYmVsRWxlbWVudDo6SFRNTExh
YmVsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCkBAIC02NCw3ICs2Nyw3IEBAIGJvb2wgSFRNTExhYmVsRWxlbWVudDo6aXNGb2N1c2FibGUo
KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotSFRNTEZvcm1Db250cm9sRWxlbWVudCog
SFRNTExhYmVsRWxlbWVudDo6Y29udHJvbCgpCitMYWJlbGFibGVFbGVtZW50KiBIVE1MTGFiZWxF
bGVtZW50Ojpjb250cm9sKCkKIHsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGNvbnRyb2xJZCA9
IGdldEF0dHJpYnV0ZShmb3JBdHRyKTsKICAgICBpZiAoY29udHJvbElkLmlzTnVsbCgpKSB7CkBA
IC03MywxNSArNzYsMTUgQEAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogSFRNTExhYmVsRWxlbWVu
dDo6Y29udHJvbCgpCiAgICAgICAgIC8vIHRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSAibGFiZWxh
YmxlIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50Ii4KICAgICAgICAgTm9kZSogbm9kZSA9IHRoaXM7
CiAgICAgICAgIHdoaWxlICgobm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUodGhpcykpKSB7
Ci0gICAgICAgICAgICBpZiAoSFRNTEZvcm1Db250cm9sRWxlbWVudCogZm9ybUNvbnRyb2xFbGVt
ZW50ID0gbm9kZUFzTGFiZWxhYmxlRm9ybUNvbnRyb2wobm9kZSkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGZvcm1Db250cm9sRWxlbWVudDsKKyAgICAgICAgICAgIGlmIChMYWJlbGFibGVFbGVt
ZW50KiBlbGVtZW50ID0gbm9kZUFzTGFiZWxhYmxlRWxlbWVudChub2RlKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZWxlbWVudDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gMDsKICAgICB9
CiAgICAgCiAgICAgLy8gRmluZCB0aGUgZmlyc3QgZWxlbWVudCB3aG9zZSBpZCBpcyBjb250cm9s
SWQuIElmIGl0IGlzIGZvdW5kIGFuZCBpdCBpcyBhIGxhYmVsYWJsZSBmb3JtIGNvbnRyb2wsCiAg
ICAgLy8gcmV0dXJuIGl0LCBvdGhlcndpc2UgcmV0dXJuIDAuCi0gICAgcmV0dXJuIG5vZGVBc0xh
YmVsYWJsZUZvcm1Db250cm9sKHRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChjb250cm9sSWQp
KTsKKyAgICByZXR1cm4gbm9kZUFzTGFiZWxhYmxlRWxlbWVudCh0cmVlU2NvcGUoKS0+Z2V0RWxl
bWVudEJ5SWQoY29udHJvbElkKSk7CiB9CiAKIHZvaWQgSFRNTExhYmVsRWxlbWVudDo6c2V0QWN0
aXZlKGJvb2wgZG93biwgYm9vbCBwYXVzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmgKaW5kZXggNTI2Mzc5Y2QwMzk1N2IzNjhlZDhkNmM1ODZkZmZhYzI0MjVkNWQ2NC4uNGRm
NThlYjcwNWIwNWUwMjFiYzA1YTJmOTAxY2UwMDdmMTgxZWMyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTI1LDcgKzI1LDcgQEAKICNkZWZpbmUgSFRNTExhYmVs
RWxlbWVudF9oCiAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJMYWJlbGFibGVFbGVtZW50LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBIVE1MTGFiZWxFbGVtZW50
IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxI
VE1MTGFiZWxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CiAKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb250cm9sKCk7CisgICAgTGFiZWxhYmxl
RWxlbWVudCogY29udHJvbCgpOwogCiBwcml2YXRlOgogICAgIEhUTUxMYWJlbEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
ZXJFbGVtZW50LmNwcAppbmRleCAzYmU4NGUzM2RmYWNiYzg2NTQyNDI5Njg1ZjA3Y2VhNTBlMDc4
M2M0Li42MTZlNjQ4MjNiOGE3Mzg4Y2NiYTc0ZGI2NDBmNmFlZTczNDcyOTczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTM5LDggKzM5LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MTWV0ZXJF
bGVtZW50OjpIVE1MTWV0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQotICAgIDogSFRNTEZvcm1D
b250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKK0hUTUxNZXRlckVsZW1lbnQ6
OkhUTUxNZXRlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQorICAgIDogTGFiZWxhYmxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShtZXRlclRhZykpOwogfQpAQCAtNDksOSArNDksOSBAQCBI
VE1MTWV0ZXJFbGVtZW50Ojp+SFRNTE1ldGVyRWxlbWVudCgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8
SFRNTE1ldGVyRWxlbWVudD4gSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3Jt
KQorUGFzc1JlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAg
IFJlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBtZXRlciA9IGFkb3B0UmVmKG5ldyBIVE1MTWV0ZXJF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKSk7CisgICAgUmVmUHRyPEhUTUxNZXRlckVs
ZW1lbnQ+IG1ldGVyID0gYWRvcHRSZWYobmV3IEhUTUxNZXRlckVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKICAgICBtZXRlci0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIHJldHVybiBt
ZXRlcjsKIH0KQEAgLTY2LDEyICs2Niw2IEBAIGJvb2wgSFRNTE1ldGVyRWxlbWVudDo6Y2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY2hpCiAgICAg
cmV0dXJuIGNoaWxkQ29udGV4dC5pc09uRW5jYXBzdWxhdGlvbkJvdW5kYXJ5KCkgJiYgSFRNTEVs
ZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGRDb250ZXh0KTsKIH0KIAotY29u
c3QgQXRvbWljU3RyaW5nJiBIVE1MTWV0ZXJFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25z
dAotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZXRlciwg
KCJtZXRlciIpKTsKLSAgICByZXR1cm4gbWV0ZXI7Ci19Ci0KIGJvb2wgSFRNTE1ldGVyRWxlbWVu
dDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIE5vZGU6OnN1cHBvcnRzRm9j
dXMoKSAmJiAhZGlzYWJsZWQoKTsKQEAgLTgyLDEyICs3NiwxMiBAQCB2b2lkIEhUTUxNZXRlckVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmlidXRlKQogICAgIGlmIChhdHRy
aWJ1dGUtPm5hbWUoKSA9PSB2YWx1ZUF0dHIgfHwgYXR0cmlidXRlLT5uYW1lKCkgPT0gbWluQXR0
ciB8fCBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBtYXhBdHRyIHx8IGF0dHJpYnV0ZS0+bmFtZSgpID09
IGxvd0F0dHIgfHwgYXR0cmlidXRlLT5uYW1lKCkgPT0gaGlnaEF0dHIgfHwgYXR0cmlidXRlLT5u
YW1lKCkgPT0gb3B0aW11bUF0dHIpCiAgICAgICAgIGRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpOwog
ICAgIGVsc2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
YXR0cmlidXRlKTsKKyAgICAgICAgTGFiZWxhYmxlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoYXR0
cmlidXRlKTsKIH0KIAogdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjphdHRhY2goKQogewotICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dGFjaCgpOworICAgIExhYmVsYWJsZUVsZW1lbnQ6OmF0
dGFjaCgpOwogICAgIGRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IGUyYmU5N2Y3MTM3OWE4OWRkNWM2NDM3N2QwYzQ0
OTMzYzViZmZlM2IuLjU5MmNkNmZjMjAwMjgxODZlMjhiMGU4NzVkODJjODQyY2MyMjAwZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCkBAIC0yMiwxNSArMjIsMTUgQEAK
ICNkZWZpbmUgSFRNTE1ldGVyRWxlbWVudF9oCiAKICNpZiBFTkFCTEUoTUVURVJfVEFHKQotI2lu
Y2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJMYWJlbGFibGVFbGVt
ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWV0ZXJWYWx1ZUVsZW1lbnQ7
CiAKLWNsYXNzIEhUTUxNZXRlckVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVu
dCB7CitjbGFzcyBIVE1MTWV0ZXJFbGVtZW50IDogcHVibGljIExhYmVsYWJsZUVsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAKICAgICBlbnVtIEdhdWdlUmVnaW9uIHsKICAgICAgICAgR2F1
Z2VSZWdpb25PcHRpbXVtLApAQCAtNjIsMTUgKzYyLDE0IEBAIHB1YmxpYzoKICAgICBib29sIGNh
bkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0
ZToKLSAgICBIVE1MTWV0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCos
IEhUTUxGb3JtRWxlbWVudCopOworICAgIEhUTUxNZXRlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+SFRNTE1ldGVyRWxlbWVudCgpOwogCi0g
ICAgdmlydHVhbCBib29sIGlzTGFiZWxhYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgYm9vbCByZWNhbGNXaWxsVmFsaWRhdGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdDsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSopIE9WRVJSSURFOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5pZGwKaW5kZXggMzM5ODY4ODg5ODEyNjBm
ODhlZjA1ZDkwMWZkOTRjOGNiN2QzNmEyMy4uN2MxMWZlNGNlNmEyMGE4MzE2NjE2OTFiZDRkNDFl
NmI3MzI3OGZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVt
ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaWRsCkBA
IC0zMyw3ICszMyw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgICAgIHNldHRl
ciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGRvdWJs
ZSBvcHRpbXVtCiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKICAgICB9OwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCmluZGV4IDljYjZkMDVmODYyMWRiNGQz
MWUzYjk2YTQxYTdkZWIxODcxM2JhYWUuLjE2YWY5Njc3NmE3MzIxZjM2MWY5MTg3ODBmNjI2NGQ2
MTQ5N2I4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoQXR0
cmlidXRlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJl
bHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzRm9jdXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJv
b2wgY3JlYXRlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUq
IGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogICAgIHZpcnR1YWwg
dm9pZCByZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaApp
bmRleCA2ZWM5MWI5M2Q2OTZhMjE0NzVlOTAzNGE0MmY4YTRiYzg3NTg0ZTBlLi45YzNiNDM2Y2M3
MWM5ZTE2M2IzNmNmNTBiYmRjY2VjZjg0ZGE5YmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuaApAQCAtNTEsNyArNTEsNyBAQCBwcml2YXRlOgogICAgIEhUTUxQ
cm9ncmVzc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1F
bGVtZW50Kik7CiAgICAgdmlydHVhbCB+SFRNTFByb2dyZXNzRWxlbWVudCgpOwogCi0gICAgdmly
dHVhbCBib29sIGlzTGFiZWxhYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDNlZDYxOTYxY2IyNjBiNGRj
YjQ2YzJkYWRhODA1ZjBhM2JmNjJkNGMuLmViNWExNTMyMjBjMmVjZTQ0MGFiYjBlODc2MzkzOTQ4
YjMyM2YzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTEx
OCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJh
dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzTGFiZWxh
YmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmly
dHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5kZXggYmRiZjMzODI0MGUyZDMzMjM1ZTNjZWZk
ZDFhZDEyMWE1NGViYTk0NC4uYmM5MTgyMjcyMzEzZmJlMTljNjE5MThlZTM2NjU2OWFhNWZjYmQ3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KQEAgLTgzLDcgKzgzLDcgQEAgbWFy
ayBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBtYXJxdWVlCiBtZW51CiBtZXRhCi1tZXRlciBp
bnRlcmZhY2VOYW1lPUhUTUxNZXRlckVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVu
dCwgY29uZGl0aW9uYWw9TUVURVJfVEFHCittZXRlciBpbnRlcmZhY2VOYW1lPUhUTUxNZXRlckVs
ZW1lbnQsIGNvbmRpdGlvbmFsPU1FVEVSX1RBRwogbmF2IGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKIG5vYnIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbm9lbWJlZCBpbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCmlu
ZGV4IGQwN2M3YTU4MzExMWYyZDg5ZDUwN2RmNmRmY2M5OTc3MTEwMWYzODYuLmExOWE0NzFhOTY0
YmE5MGQzMGFkNzQ4OTQzMDEzNmYyNDk1NzNjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2VkKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJh
dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzTGFiZWxh
YmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAppbmRleCA3NWQzNjYzZjI4NjE4ZThlY2Q1ZDZk
NTRiNzVhYmU1YjcwOWMzNDJiLi5iNmJlNGU5OTVmMGM0ZTdhZTgyY2M0YzYwMDg2MjM2NDQ2Y2Rk
ZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKQEAgLTUwLDcgKzUwLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZCgpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0hpZGRlblR5cGUoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEhlaWdodEFu
ZFdpZHRoQXR0cmlidXRlcygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShj
b25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggMmUxYWRiZDFmYTRlODI5
OWRiYjRiMzA1OWI2MTgwMDg0NDBmZWU2NC4uM2QwNjA5MmIwNjRiNTM0NTBjYjc5YzEyNzY4NjU0
NDdlMDY0OTc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNjU4LDcgKzY1OCw3
IEBAIGJvb2wgSW5wdXRUeXBlOjppc0ltYWdlQnV0dG9uKCkgY29uc3QKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgSW5wdXRUeXBlOjppc0xhYmVsYWJsZSgpIGNvbnN0Citib29sIElucHV0
VHlwZTo6c3VwcG9ydExhYmVscygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaAppbmRleCBhYWZkNzZkMTdhMmVhMzBiMmMyNmM3MTQ2ZmI5ZTk1MzY0
MWRiZGFkLi4xNjQ0MThhYWQ5YTg0MjYwZjNlNTFhZGVkYWI4MzhmMWVmNjYwZTQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGlzRmlsZVVwbG9hZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0hpZGRlblR5
cGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0OwotICAg
IHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0TGFiZWxzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzTnVtYmVyRmllbGQoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIGlzUmFkaW9CdXR0b24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsYWJs
ZUVsZW1lbnQuY3BwCmluZGV4IDQ1YjQxYjBlYjFkMjc3NjE1M2VhOWFiZmE1ZTViYTZlYjNmOGVl
MjguLmU4MjQ3YjliYWZhNGViNDM0YTRjZGQyZjQyOGY2MWQzNjYyNTgwYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9MYWJlbGFibGVFbGVtZW50LmNwcApAQCAtNDIsNyArNDIsNyBAQCBMYWJlbGFi
bGVFbGVtZW50Ojp+TGFiZWxhYmxlRWxlbWVudCgpCiAKIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IExh
YmVsYWJsZUVsZW1lbnQ6OmxhYmVscygpCiB7Ci0gICAgaWYgKCFpc0xhYmVsYWJsZSgpKQorICAg
IGlmICghc3VwcG9ydExhYmVscygpKQogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoIWRvY3Vt
ZW50KCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9MYWJlbGFibGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsYWJsZUVsZW1l
bnQuaAppbmRleCA5MTgzMDdmY2UzOTAxZWIyOGE1MTdhOTEwM2Y3ZmUzYzVmYzU5N2Q5Li5mZmFi
MmIxOGJjMTI5YWMyZDRkYzM0NWYyMzk2ZGIxMGM4NGNlNzNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0xhYmVsYWJsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0xhYmVsYWJsZUVsZW1lbnQuaApAQCAtNDAsMTEgKzQwLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIExhYmVsYWJsZUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGlj
OgogICAgIHZpcnR1YWwgfkxhYmVsYWJsZUVsZW1lbnQoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNM
YWJlbGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIFBhc3NSZWZQdHI8Tm9kZUxp
c3Q+IGxhYmVscygpOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogcHJvdGVjdGVkOgogICAgIExhYmVsYWJsZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0
dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVl
OyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTA1YjAzOWYzOWJhZDdl
NTJmYzc4ZGE2Zjc3Y2ZkZjUyNmYwNzFlZS4uMGExZDMxMWY4NjllYzdlNjE5NWExODU2MDlhZTQ1
ZTQ0ZThjZWFiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAzLTE0ICBZb3NoaWZ1bWkg
SW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBUaGUgIm1ldGVy
IiBlbGVtZW50IHNob3VsZCBub3QgYmUgYSBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzgwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1v
dmVzIHRlc3RzIHdoaWNoIGNoZWNrcyBub24tZXhpc3RlbnQgImZvcm0iIGF0dHJpYnV0ZQorICAg
ICAgICBvZiB0aGUgIm1ldGVyIiBlbGVtZW50LiBUaGUgImZvcm0iIGF0dHJpYnV0ZSBpcyBhdmFp
bGFibGUgb25seSBmb3IKKyAgICAgICAgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnRzLiBIb3dldmVy
LCB0aGUgIm1ldGVyIiBlbGVtZW50IGlzbid0IGEKKyAgICAgICAgZm9ybS1hc3NvY2lhdGVkIGVs
ZW1lbnQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1l
bnQtZm9ybS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb24gZm9yIHRlc3Qgb3V0cHV0
IGNoYW5nZXMuCisgICAgICAgICogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1lbGVt
ZW50LWZvcm0uaHRtbDogQ2hhbmdlZCBmb3IgdGhlICJtZXRlciIgZWxlbWVudCBkb2Vzbid0IGhh
dmUgSURMIGF0dHJpYnV0ZSAiZm9ybSIuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtLWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb24gZm9yIHRlc3Qgb3V0cHV0IGNo
YW5nZXMuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS5odG1sOiBSZW1vdmVk
IGxpbmVzIGZvciB0aGUgIm1ldGVyIiBlbGVtZW50LgorCiAyMDEyLTAzLTE0ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXR1cm4gbnVsbCB3aGVuIHNo
b3VsZEFsbG93QWNjZXNzVG9Ob2RlKCkgZmFpbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItZWxlbWVudC1mb3JtLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItZWxlbWVudC1mb3Jt
LWV4cGVjdGVkLnR4dAppbmRleCA0YmExMzI4NDkyNDNhNjRlMzQzODhhOWQ0NjNkOTRkMTkzZjdj
MWY3Li4yMzBiZjYwZWQ1ZjljMzE1ZmJlYzc0ZmYwMmNmNTViZjE5OWRmMjI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1lbnQtZm9y
bS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVu
dC9tZXRlci1lbGVtZW50LWZvcm0tZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1UaGlz
IHRlc3QgcGFzc2VzIGlmIHRoZSBtZXRlciBlbGVtZW50IGNhbiBmaW5kIGl0cyBmb3JtLgorVGhp
cyB0ZXN0IHBhc3NlcyBpZiB0aGUgbWV0ZXIgZWxlbWVudCBkb2Vzbid0IGhhdmUgZm9ybSBhdHRy
aWJ1dGUuCiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJF
bGVtZW50L21ldGVyLWVsZW1lbnQtZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TE1ldGVyRWxlbWVudC9tZXRlci1lbGVtZW50LWZvcm0uaHRtbAppbmRleCBmZWQ0OTNjYjAxNjM5
ZmRhOGY1MGU2NzFlZmM1ZDcyNjlhOWRjN2Y2Li45ZjZlYTQ1ODk5NTkxMWM4MTQ1MjEwODk2OWM2
MWM4OWMxMzUxYzg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJF
bGVtZW50L21ldGVyLWVsZW1lbnQtZm9ybS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItZWxlbWVudC1mb3JtLmh0bWwKQEAgLTksMTEgKzksMTEg
QEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKIDx0YWJsZT48Zm9ybSBpZD1mb3Jt
MT4KIDxtZXRlciBpZD1tZXRlcjE+PC9tZXRlcj4KIDwvZm9ybT48L3RhYmxlPgotPGRpdj5UaGlz
IHRlc3QgcGFzc2VzIGlmIHRoZSBtZXRlciBlbGVtZW50IGNhbiBmaW5kIGl0cyBmb3JtLjwvZGl2
PgorPGRpdj5UaGlzIHRlc3QgcGFzc2VzIGlmIHRoZSBtZXRlciBlbGVtZW50IGRvZXNuJ3QgaGF2
ZSBmb3JtIGF0dHJpYnV0ZS48L2Rpdj4KIDxkaXYgaWQ9Y29uc29sZT5GQUlMPC9kaXY+CiAKIDxz
Y3JpcHQ+Ci1pZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21ldGVyMScpLmZvcm0uaWQgPT0g
ImZvcm0xIikKK2lmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWV0ZXIxJykuZm9ybSA9PT0g
dW5kZWZpbmVkKQogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJI
VE1MID0gIlBBU1MiOwogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2Zvcm0tYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CmluZGV4IDM3YmM5ODlhYjcyOWIz
Y2EzNjJmMGRiZGY0NWI1MDFkMmJmYTM3MjQuLjAzOTJlMWI1M2NmMDRlY2QzMDlhMGI3YTA3ZGFi
YmQ1MWJmOTgyMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0xMCw3ICsxMCw2IEBAIFBBU1MgZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImZpZWxkc2V0IilbMF0uZm9ybSBpcyBvd25lcgogUEFTUyBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5mb3JtIGlzIG93bmVyCiBQQVNTIGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJrZXlnZW4iKVswXS5mb3JtIGlzIG93bmVyCiBG
QUlMIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsYWJlbCIpWzBdLmZvcm0gc2hvdWxk
IGJlIFtvYmplY3QgSFRNTEZvcm1FbGVtZW50XS4gV2FzIG51bGwuCi1QQVNTIGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJtZXRlciIpWzBdLmZvcm0gaXMgb3duZXIKIFBBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmZvcm0gaXMgb3duZXIKIFBBU1Mg
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm91dHB1dCIpWzBdLmZvcm0gaXMgb3duZXIK
IFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInByb2dyZXNzIilbMF0uZm9ybSBp
cyBvd25lcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtLWF0dHJpYnV0ZS5odG1sCmluZGV4
IGIzOGY2ZGY0YTQxM2VkOTg0MjI4ZGJmYzc3YjVmMGYxNTdlYmYyMjguLjE0MjE4ZjE0M2VhZmQx
ZGMwMTFhOGIwMDg3ODJkZDFlMzJmYjgyNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZm9ybS1hdHRyaWJ1dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zv
cm0tYXR0cmlidXRlLmh0bWwKQEAgLTIwLDcgKzIwLDYgQEAgY29udGFpbmVyLmlubmVySFRNTCA9
ICc8Zm9ybSBpZD1vd25lcj48L2Zvcm0+JyArCiAgICAgJzxpbnB1dCBuYW1lPXZpY3RpbSBmb3Jt
PW93bmVyIC8+JyArCiAgICAgJzxrZXlnZW4gbmFtZT12aWN0aW0gZm9ybT1vd25lciAvPicgKwog
ICAgICc8bGFiZWwgbmFtZT12aWN0aW0gZm9ybT1vd25lciAvPicgKwotICAgICc8bWV0ZXIgbmFt
ZT12aWN0aW0gZm9ybT1vd25lciAvPicgKwogICAgICc8b2JqZWN0IG5hbWU9dmljdGltIGZvcm09
b3duZXI+PC9vYmplY3Q+JyArCiAgICAgJzxvdXRwdXQgbmFtZT12aWN0aW0gZm9ybT1vd25lciAv
PicgKwogICAgICc8cHJvZ3Jlc3MgbmFtZT12aWN0aW0gZm9ybT1vd25lciAvPicgKwpAQCAtMzMs
NyArMzIsNiBAQCBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImZpZWxk
c2V0IilbMF0uZm9ybScsICdvd25lcicpOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpWzBdLmZvcm0nLCAnb3duZXInKTsKIHNob3VsZEJlKCdkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgia2V5Z2VuIilbMF0uZm9ybScsICdvd25lcicpOwogc2hv
dWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsYWJlbCIpWzBdLmZvcm0nLCAn
b3duZXInKTsKLXNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibWV0ZXIi
KVswXS5mb3JtJywgJ293bmVyJyk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoIm9iamVjdCIpWzBdLmZvcm0nLCAnb3duZXInKTsKIHNob3VsZEJlKCdkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgib3V0cHV0IilbMF0uZm9ybScsICdvd25lcicpOwogc2hvdWxk
QmUoJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwcm9ncmVzcyIpWzBdLmZvcm0nLCAn
b3duZXInKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>