<?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>128685</bug_id>
          
          <creation_ts>2014-02-12 13:49:13 -0800</creation_ts>
          <short_desc>[CSS Shapes] Rename shapeSize and others to make ShapeInfo and friends easier to understand</short_desc>
          <delta_ts>2014-02-12 18:57:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          <blocked>128631</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bem Jones-Bey">bjonesbe</reporter>
          <assigned_to name="Bem Jones-Bey">bjonesbe</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>979994</commentid>
    <comment_count>0</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-02-12 13:49:13 -0800</bug_when>
    <thetext>Every time I look at these classes, I get confused. This set of renames is the beginning of reducing that confusion. There will be some more renames coming in a future patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979997</commentid>
    <comment_count>1</comment_count>
      <attachid>224003</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-02-12 13:57:23 -0800</bug_when>
    <thetext>Created attachment 224003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980044</commentid>
    <comment_count>2</comment_count>
      <attachid>224016</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-02-12 15:22:06 -0800</bug_when>
    <thetext>Created attachment 224016
Patch

I&apos;ve decided to put all of my planned renames into this patch. So here they are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980061</commentid>
    <comment_count>3</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-02-12 16:01:39 -0800</bug_when>
    <thetext>I like most of the changes except this. 

m_shapeLineTop is always greater or equal than the shape&apos;s top position, and less or equal than the shape&apos;s bottom position, so the naming &quot;referenceBoxLineTop&quot; a bit confusing for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980093</commentid>
    <comment_count>4</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-02-12 17:16:57 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I like most of the changes except this. 
&gt; 
&gt; m_shapeLineTop is always greater or equal than the shape&apos;s top position, and less or equal than the shape&apos;s bottom position, so the naming &quot;referenceBoxLineTop&quot; a bit confusing for me.

I think you&apos;re incorrect there. In both shape-inside and shape-outside, m_referenceBoxLineTop is initialized to the coordinates of the line in the reference box coordinate system. (see ShapeInsideInfo::updateSegmentsForLine, ShapeOutsideInfo::updateDeltasForContainingBlockLine). This can be less than the shape&apos;s top position or greater than the shape&apos;s bottom position.

In the shape-inside case, this can get updated in ShapeInsideInfo::adjustLogicalLineTop to be a position inside of the shape. However, note that this position is still relative to the reference box top, not relative to the top of the shape. (because the coordinates of the shape itself are relative to the reference box.)

Does that make sense? If you think that isn&apos;t correct, can you explain to me what is incorrect about my understanding?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980123</commentid>
    <comment_count>5</comment_count>
      <attachid>224016</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-02-12 18:26:49 -0800</bug_when>
    <thetext>Comment on attachment 224016
Patch

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

(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I like most of the changes except this. 
&gt; &gt; 
&gt; &gt; m_shapeLineTop is always greater or equal than the shape&apos;s top position, and less or equal than the shape&apos;s bottom position, so the naming &quot;referenceBoxLineTop&quot; a bit confusing for me.
&gt; 
&gt; I think you&apos;re incorrect there. In both shape-inside and shape-outside, m_referenceBoxLineTop is initialized to the coordinates of the line in the reference box coordinate system. (see ShapeInsideInfo::updateSegmentsForLine, ShapeOutsideInfo::updateDeltasForContainingBlockLine). This can be less than the shape&apos;s top position or greater than the shape&apos;s bottom position.
&gt;
&gt; In the shape-inside case, this can get updated in ShapeInsideInfo::adjustLogicalLineTop to be a position inside of the shape. However, note that this position is still relative to the reference box top, not relative to the top of the shape. (because the coordinates of the shape itself are relative to the reference box.)

Yes, in the case of shape-inside, it&apos;s always updated by ShapeInsideInfo::adjustLogicalLineTop. I forget to include that to my comment, sorry! Also I didn&apos;t think about the members usecase for shape-outside.
 
&gt; Does that make sense? If you think that isn&apos;t correct, can you explain to me what is incorrect about my understanding?

From the point of shape-outside I totally agree with the naming. However, I think for shape-inside the current naming makes more sense, I don&apos;t really have an argument against naming it in a more general way, since it&apos;s relative to the ref. box.

I set the cq+ for you!

&gt; Source/WebCore/rendering/shapes/ShapeInfo.h:205
&gt; +    LayoutUnit m_referenceBoxLineTop;

I like most of the changes except this. 

m_shapeLineTop is always greater or equal than the shape&apos;s top position, and less or equal than the shape&apos;s bottom position, so the naming &quot;referenceBoxLineTop&quot; a bit confusing for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980124</commentid>
    <comment_count>6</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-02-12 18:29:08 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/rendering/shapes/ShapeInfo.h:205
&gt; &gt; +    LayoutUnit m_referenceBoxLineTop;
&gt; 
&gt; I like most of the changes except this. 
&gt; 
&gt; m_shapeLineTop is always greater or equal than the shape&apos;s top position, and less or equal than the shape&apos;s bottom position, so the naming &quot;referenceBoxLineTop&quot; a bit confusing for me.

Ignore this, the reply got confused. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980129</commentid>
    <comment_count>7</comment_count>
      <attachid>224016</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-12 18:57:49 -0800</bug_when>
    <thetext>Comment on attachment 224016
Patch

Clearing flags on attachment: 224016

Committed r164006: &lt;http://trac.webkit.org/changeset/164006&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980130</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-12 18:57:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224003</attachid>
            <date>2014-02-12 13:57:23 -0800</date>
            <delta_ts>2014-02-12 15:22:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128685-20140212135722.patch</filename>
            <type>text/plain</type>
            <size>18827</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzOTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNmNzM4ODQ4ZWFiNjE5
Yjg1Y2Q3NTExNmZlZjk4NDk1NmUxOTE1ZS4uZjhiN2U0MmNkMTAxNDM3N2ZmMjgwYzkwODNiNWY1
Yzc0MDAxYjMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTAyLTEyICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBS
ZW5hbWUgc2hhcGVTaXplIGFuZCBvdGhlcnMgdG8gbWFrZSBTaGFwZUluZm8gYW5kIGZyaWVuZHMg
ZWFzaWVyIHRvIHVuZGVyc3RhbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyODY4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBTaGFwZUluZm8gaGllcmFyY2h5IGhhcyBncm93biBvcmdhbmljYWxs
eSBhcyB0aGUgc3BlYyBoYXMgY2hhbmdlZCwKKyAgICAgICAgYW5kIHRoZSBuYW1pbmcgaGFzIGJl
Y29tZSB2ZXJ5IHN0YWxlIGFuZCBjb25mdXNpbmcuIFRoaXMgaXMgdGhlIGZpcnN0CisgICAgICAg
IHN0ZXAgaW50byByZWN0aWZ5aW5nIHRoaXMuIFRoZSBzcGVjIGlzIGluIExhc3QgQ2FsbCwgc28g
dGhlcmUgaXMKKyAgICAgICAgYWxtb3N0IG5vIGNoYW5jZSB0aGF0IHRoaXMgdGVybWlub2xvZ3kg
d2lsbCBoYXZlIHRvIGNoYW5nZSBpbiB0aGUKKyAgICAgICAgZnV0dXJlLiBUaGVyZSBhcmUgYSBj
b3VwbGUgb2YgbmFtZXMgdGhhdCBkb24ndCBnZXQgdG91Y2hlZCBpbiB0aGlzCisgICAgICAgIHBh
dGNoLCB0aGV5IHdpbGwgZ2V0IHVwZGF0ZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbWFn
ZUNoYW5nZWQpOiBVc2UgbmV3IG1ldGhvZCBuYW1lKHMpLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OnVwZGF0ZVNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OnNoYXBlSW5mb1JlcXVpcmVzUmVsYXlvdXQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlU2hhcGVTaXplKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVzQWZ0ZXJCbG9ja0xheW91
dCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxTaXplRm9yQ2hpbGQpOiBUaGlzIG1ldGhvZCBt
YWtlcyBpdCBtdWNoCisgICAgICAgICAgICBjbGVhbmVyIHRvIHNldCB0aGUgcmVmZXJlbmNlIGJv
eCBzaXplLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlvbk5ld0Zsb2F0cyk6IFVzZSBuZXcg
bWV0aG9kIG5hbWUocykuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnVwZGF0ZVNoYXBlT3V0c2lkZUluZm9BZnRlclN0eWxl
Q2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmltYWdlQ2hhbmdl
ZCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmdldFNoYXBlSW1hZ2VNYXJnaW5SZWN0KTogUmVuYW1lIHZhcmlhYmxl
cy4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzxSZW5kZXJUeXBlPjo6Y29tcHV0ZWRTaGFw
ZSk6IE1vcmUgcmVuYW1lcy4KKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5o
OgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpzZXRSZWZlcmVuY2VCb3hMb2dpY2FsU2l6
ZSk6IFJlbmFtZWQgZnJvbQorICAgICAgICAgICAgc2V0U2hhcGVTaXplLgorICAgICAgICAoV2Vi
Q29yZTo6U2hhcGVJbmZvOjpzaGFwZUNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQpOiBVc2Ug
bmV3CisgICAgICAgICAgICBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6bWFy
a1NoYXBlQXNEaXJ0eSk6IFJlbmFtZWQgZnJvbSBkaXJ0eVNoYXBlU2l6ZS4KKyAgICAgICAgKFdl
YkNvcmU6OlNoYXBlSW5mbzo6aXNTaGFwZURpcnR5KTogUmVuYW1lZCBmcm9tIHNoYXBlU2l6ZURp
cnR5LgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpyZWZlcmVuY2VCb3hMb2dpY2FsU2l6
ZSk6IFJlbmFtZWQgZnJvbSBzaGFwZVNpemUuCisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86
OmxvZ2ljYWxUb3BPZmZzZXQpOiBVc2UgbmV3IG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6U2hh
cGVJbmZvOjpsb2dpY2FsTGVmdE9mZnNldCk6IFVzZSBuZXcgbmFtZXMuCisgICAgICAgICogcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc2hh
cGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVPdXRzaWRl
SW5mbzo6dXBkYXRlRGVsdGFzRm9yQ29udGFpbmluZ0Jsb2NrTGluZSk6IFVzZQorICAgICAgICAg
ICAgbmV3IG5hbWVzLgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5m
by5oOgorCiAyMDE0LTAyLTEyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTW9kZXJuaXplIG1pc3NlZCBpbnNwZWN0b3IgZmls
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDg4MWIwNWVl
MTg3MjVmMDI3Yzg2NjlkMzQ4MGUzOWE0NTQ5ZmM5ODEuLmFlMjQxMDg0ZmU0ODU0YmM4NzBiMzI1
NTkxM2JiNDhjOWU4NTRmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcApAQCAtMTMyMSw3ICsxMzIxLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6aW1hZ2VDaGFuZ2Vk
KFdyYXBwZWRJbWFnZVB0ciBpbWFnZSwgY29uc3QgSW50UmVjdCopCiAgICAgU2hhcGVWYWx1ZSog
c2hhcGVWYWx1ZSA9IHN0eWxlKCkuc2hhcGVJbnNpZGUoKTsKICAgICBpZiAoc2hhcGVWYWx1ZSAm
JiBzaGFwZVZhbHVlLT5pbWFnZSgpICYmIHNoYXBlVmFsdWUtPmltYWdlKCktPmRhdGEoKSA9PSBp
bWFnZSkgewogICAgICAgICBTaGFwZUluc2lkZUluZm8mIHNoYXBlSW5zaWRlSW5mbyA9IGVuc3Vy
ZVNoYXBlSW5zaWRlSW5mbygpOwotICAgICAgICBzaGFwZUluc2lkZUluZm8uZGlydHlTaGFwZVNp
emUoKTsKKyAgICAgICAgc2hhcGVJbnNpZGVJbmZvLm1hcmtTaGFwZUFzRGlydHkoKTsKICAgICAg
ICAgbWFya1NoYXBlSW5zaWRlRGVzY2VuZGFudHNGb3JMYXlvdXQoKTsKICAgICB9CiAjZW5kaWYK
QEAgLTEzODEsNyArMTM4MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBlSW5zaWRl
SW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgU2hhcGVWYWx1ZSogc2hhcGVJCiAKICAgICBpZiAo
c2hhcGVJbnNpZGUpIHsKICAgICAgICAgU2hhcGVJbnNpZGVJbmZvJiBzaGFwZUluc2lkZUluZm8g
PSBlbnN1cmVTaGFwZUluc2lkZUluZm8oKTsKLSAgICAgICAgc2hhcGVJbnNpZGVJbmZvLmRpcnR5
U2hhcGVTaXplKCk7CisgICAgICAgIHNoYXBlSW5zaWRlSW5mby5tYXJrU2hhcGVBc0RpcnR5KCk7
CiAgICAgfSBlbHNlCiAgICAgICAgIHNldFNoYXBlSW5zaWRlSW5mbyhudWxscHRyKTsKICAgICBt
YXJrU2hhcGVJbnNpZGVEZXNjZW5kYW50c0ZvckxheW91dCgpOwpAQCAtMTQ0Niw3ICsxNDQ2LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNoYXBlSW5mb1JlcXVpcmVzUmVsYXlvdXQoY29uc3QgUmVu
ZGVyQmxvY2sqIGJsb2NrKQogewogICAgIFNoYXBlSW5zaWRlSW5mbyogaW5mbyA9IGJsb2NrLT5z
aGFwZUluc2lkZUluZm8oKTsKICAgICBpZiAoaW5mbykKLSAgICAgICAgaW5mby0+c2V0TmVlZHNM
YXlvdXQoaW5mby0+c2hhcGVTaXplRGlydHkoKSk7CisgICAgICAgIGluZm8tPnNldE5lZWRzTGF5
b3V0KGluZm8tPmlzU2hhcGVEaXJ0eSgpKTsKICAgICBlbHNlCiAgICAgICAgIGluZm8gPSBibG9j
ay0+bGF5b3V0U2hhcGVJbnNpZGVJbmZvKCk7CiAgICAgcmV0dXJuIGluZm8gJiYgaW5mby0+bmVl
ZHNMYXlvdXQoKTsKQEAgLTE0NjEsMTAgKzE0NjEsMTAgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29t
cHV0ZVNoYXBlU2l6ZSgpCiAgICAgaWYgKGlzUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKSkgewog
ICAgICAgICBTaGFwZUluc2lkZUluZm8qIHBhcmVudFNoYXBlSW5zaWRlSW5mbyA9IHRvUmVuZGVy
QmxvY2socGFyZW50KCkpLT5zaGFwZUluc2lkZUluZm8oKTsKICAgICAgICAgQVNTRVJUKHBhcmVu
dFNoYXBlSW5zaWRlSW5mbyk7Ci0gICAgICAgIHNoYXBlSW5zaWRlSW5mby0+c2V0U2hhcGVTaXpl
KHBhcmVudFNoYXBlSW5zaWRlSW5mby0+c2hhcGVTaXplKCkud2lkdGgoKSwgcGFyZW50U2hhcGVJ
bnNpZGVJbmZvLT5zaGFwZVNpemUoKS5oZWlnaHQoKSk7CisgICAgICAgIHNoYXBlSW5zaWRlSW5m
by0+c2V0UmVmZXJlbmNlQm94TG9naWNhbFNpemUocGFyZW50U2hhcGVJbnNpZGVJbmZvLT5yZWZl
cmVuY2VCb3hMb2dpY2FsU2l6ZSgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBib29sIHBlcmNl
bnRhZ2VMb2dpY2FsSGVpZ2h0UmVzb2x2YWJsZSA9IHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0SXNS
ZXNvbHZhYmxlRnJvbUJsb2NrKHRoaXMsIGZhbHNlKTsKLSAgICAgICAgc2hhcGVJbnNpZGVJbmZv
LT5zZXRTaGFwZVNpemUobG9naWNhbFdpZHRoKCksIHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0UmVz
b2x2YWJsZSA/IGxvZ2ljYWxIZWlnaHQoKSA6IExheW91dFVuaXQoKSk7CisgICAgICAgIHNoYXBl
SW5zaWRlSW5mby0+c2V0UmVmZXJlbmNlQm94TG9naWNhbFNpemUoTGF5b3V0U2l6ZShsb2dpY2Fs
V2lkdGgoKSwgcGVyY2VudGFnZUxvZ2ljYWxIZWlnaHRSZXNvbHZhYmxlID8gbG9naWNhbEhlaWdo
dCgpIDogTGF5b3V0VW5pdCgpKSk7CiAgICAgfQogfQogI2VuZGlmCkBAIC0xNTAwLDcgKzE1MDAs
NyBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVTaGFwZXNBZnRlckJsb2NrTGF5b3V0KGJvb2wg
aGVpZ2h0Q2hhbmdlZCkKICAgICAvLyBBIHByZXZpb3VzIHNpYmxpbmcgaGFzIGNoYW5nZWQgZGlt
ZW5zaW9uLCBzbyB3ZSBuZWVkIHRvIHJlbGF5b3V0IHRoZSBzaGFwZSB3aXRoIHRoZSBjb250ZW50
CiAgICAgU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSBsYXlvdXRTaGFwZUluc2lk
ZUluZm8oKTsKICAgICBpZiAoaGVpZ2h0Q2hhbmdlZCAmJiBzaGFwZUluc2lkZUluZm8pCi0gICAg
ICAgIHNoYXBlSW5zaWRlSW5mby0+ZGlydHlTaGFwZVNpemUoKTsKKyAgICAgICAgc2hhcGVJbnNp
ZGVJbmZvLT5tYXJrU2hhcGVBc0RpcnR5KCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShoZWln
aHRDaGFuZ2VkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApp
bmRleCA2YmJmZTZhNTk3NjIyYzIxYmNkN2Y5NDUzNTZjNjVkMGM1ZjkyZWMwLi4zZDA5OWU3ZGMx
MmQ0NmFkMzAyZTUxNmFjNDAwNzBhZTBmZmFjZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaApAQCAtMjc4LDYgKzI3OCw3IEBAIHB1YmxpYzoKICAgICBlbnVtIEFwcGx5
TGF5b3V0RGVsdGFNb2RlIHsgQXBwbHlMYXlvdXREZWx0YSwgRG9Ob3RBcHBseUxheW91dERlbHRh
IH07CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gm
IGNoaWxkKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQu
d2lkdGgoKSA6IGNoaWxkLmhlaWdodCgpOyB9CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IGNoaWxkLmhlaWdodCgpIDogY2hpbGQud2lkdGgoKTsgfQorICAg
IExheW91dFNpemUgbG9naWNhbFNpemVGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBj
b25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQuc2l6ZSgpIDog
Y2hpbGQuc2l6ZSgpLnRyYW5zcG9zZWRTaXplKCk7IH0KICAgICBMYXlvdXRVbml0IGxvZ2ljYWxU
b3BGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdCB7IHJldHVybiBpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQueSgpIDogY2hpbGQueCgpOyB9CiAgICAgdm9pZCBz
ZXRMb2dpY2FsTGVmdEZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaXQgbG9naWNh
bExlZnQsIEFwcGx5TGF5b3V0RGVsdGFNb2RlID0gRG9Ob3RBcHBseUxheW91dERlbHRhKTsKICAg
ICB2b2lkIHNldExvZ2ljYWxUb3BGb3JDaGlsZChSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbml0
IGxvZ2ljYWxUb3AsIEFwcGx5TGF5b3V0RGVsdGFNb2RlID0gRG9Ob3RBcHBseUxheW91dERlbHRh
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXgg
MzY1MDNmMGZiNjNjY2ZmMzM2NzI0ZjY2MDMzNzY3Y2Q3NGJjNzY4Mi4uYTBlNzQ2ODcyY2NjZDY1
NzQxMzkxMDM3M2Y0ODAyZWQ0MmRlYmU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTIzNDIsNyArMjM0Miw3IEBAIGJvb2wgUmVuZGVyQmxv
Y2tGbG93Ojpwb3NpdGlvbk5ld0Zsb2F0cygpCiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKICAg
ICAgICAgaWYgKFNoYXBlT3V0c2lkZUluZm8qIHNoYXBlT3V0c2lkZSA9IGNoaWxkQm94LnNoYXBl
T3V0c2lkZUluZm8oKSkKLSAgICAgICAgICAgIHNoYXBlT3V0c2lkZS0+c2V0U2hhcGVTaXplKGxv
Z2ljYWxXaWR0aEZvckNoaWxkKGNoaWxkQm94KSwgbG9naWNhbEhlaWdodEZvckNoaWxkKGNoaWxk
Qm94KSk7CisgICAgICAgICAgICBzaGFwZU91dHNpZGUtPnNldFJlZmVyZW5jZUJveExvZ2ljYWxT
aXplKGxvZ2ljYWxTaXplRm9yQ2hpbGQoY2hpbGRCb3gpKTsKICNlbmRpZgogICAgICAgICAvLyBJ
ZiB0aGUgY2hpbGQgbW92ZWQsIHdlIGhhdmUgdG8gcmVwYWludCBpdC4KICAgICAgICAgaWYgKGNo
aWxkQm94LmNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAppbmRleCBlZjUzNDExM2IxOTVlZWFkZWE2MTQ1NDUxYTVhZmIyNDQ0
MjQ4ZDY3Li4wZWNkZmMxY2YzN2IxZTQ5Mjc4NDg5NjExNjU0MmY1MmYzZDkxYjU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQg
UmVuZGVyQm94Ojp1cGRhdGVTaGFwZU91dHNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUsCiAgICAgaWYgKCFzaGFwZU91dHNpZGUpCiAgICAgICAgIFNoYXBl
T3V0c2lkZUluZm86OnJlbW92ZUluZm8oKnRoaXMpOwogICAgIGVsc2UKLSAgICAgICAgU2hhcGVP
dXRzaWRlSW5mbzo6ZW5zdXJlSW5mbygqdGhpcykuZGlydHlTaGFwZVNpemUoKTsKKyAgICAgICAg
U2hhcGVPdXRzaWRlSW5mbzo6ZW5zdXJlSW5mbygqdGhpcykubWFya1NoYXBlQXNEaXJ0eSgpOwog
CiAgICAgaWYgKHNoYXBlT3V0c2lkZSB8fCBzaGFwZU91dHNpZGUgIT0gb2xkU2hhcGVPdXRzaWRl
KQogICAgICAgICBtYXJrU2hhcGVPdXRzaWRlRGVwZW5kZW50c0ZvckxheW91dCgpOwpAQCAtMTU0
Miw3ICsxNTQyLDcgQEAgdm9pZCBSZW5kZXJCb3g6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQ
dHIgaW1hZ2UsIGNvbnN0IEludFJlY3QqKQogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgIFNo
YXBlVmFsdWUqIHNoYXBlT3V0c2lkZVZhbHVlID0gc3R5bGUoKS5zaGFwZU91dHNpZGUoKTsKICAg
ICBpZiAoIXZpZXcoKS5mcmFtZVZpZXcoKS5pc0luTGF5b3V0KCkgJiYgaXNGbG9hdGluZygpICYm
IHNoYXBlT3V0c2lkZVZhbHVlICYmIHNoYXBlT3V0c2lkZVZhbHVlLT5pbWFnZSgpICYmIHNoYXBl
T3V0c2lkZVZhbHVlLT5pbWFnZSgpLT5kYXRhKCkgPT0gaW1hZ2UpIHsKLSAgICAgICAgU2hhcGVP
dXRzaWRlSW5mbzo6ZW5zdXJlSW5mbygqdGhpcykuZGlydHlTaGFwZVNpemUoKTsKKyAgICAgICAg
U2hhcGVPdXRzaWRlSW5mbzo6ZW5zdXJlSW5mbygqdGhpcykubWFya1NoYXBlQXNEaXJ0eSgpOwog
ICAgICAgICBtYXJrU2hhcGVPdXRzaWRlRGVwZW5kZW50c0ZvckxheW91dCgpOwogICAgIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUlu
Zm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3BwCmlu
ZGV4IGRmZGUyNTJmYjliNTU4N2U3NGY3NjUxZTc5ZTMwNjc2MzNkOTI2NDcuLjQ1M2FlNTI5OThk
ZDFmZjM2ZGJmNDNkYzM5NTBmZDU2Y2FlYTM0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi0KIGJvb2wgY2hlY2tTaGFwZUltYWdlT3JpZ2luKERvY3VtZW50JiBkb2N1
bWVudCwgQ2FjaGVkSW1hZ2UmIGNhY2hlZEltYWdlKQogewogICAgIGlmIChjYWNoZWRJbWFnZS5p
c09yaWdpbkNsZWFuKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpKQpAQCAtNjcsMTEgKzY2LDEx
IEBAIHN0YXRpYyBMYXlvdXRSZWN0IGdldFNoYXBlSW1hZ2VSZXBsYWNlZFJlY3QoY29uc3QgUmVu
ZGVyQm94JiByZW5kZXJCb3gsIGNvbnN0IFN0CiAgICAgcmV0dXJuIExheW91dFJlY3QoTGF5b3V0
UG9pbnQoKSwgc3R5bGVJbWFnZS5jYWNoZWRJbWFnZSgpLT5pbWFnZSgpLT5zaXplKCkpOwogfQog
Ci1zdGF0aWMgTGF5b3V0UmVjdCBnZXRTaGFwZUltYWdlTWFyZ2luUmVjdChjb25zdCBSZW5kZXJC
b3gmIHJlbmRlckJveCwgY29uc3QgTGF5b3V0U2l6ZSYgc2hhcGVTaXplKQorc3RhdGljIExheW91
dFJlY3QgZ2V0U2hhcGVJbWFnZU1hcmdpblJlY3QoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gs
IGNvbnN0IExheW91dFNpemUmIHJlZmVyZW5jZUJveExvZ2ljYWxTaXplKQogewogICAgIExheW91
dFBvaW50IG1hcmdpbkJveE9yaWdpbigtcmVuZGVyQm94Lm1hcmdpbkxvZ2ljYWxMZWZ0KCkgLSBy
ZW5kZXJCb3guYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxMZWZ0KCksIC1yZW5kZXJCb3gubWFyZ2lu
QmVmb3JlKCkgLSByZW5kZXJCb3guYm9yZGVyQmVmb3JlKCkgLSByZW5kZXJCb3gucGFkZGluZ0Jl
Zm9yZSgpKTsKICAgICBMYXlvdXRTaXplIG1hcmdpbkJveFNpemVEZWx0YShyZW5kZXJCb3gubWFy
Z2luTG9naWNhbFdpZHRoKCkgKyByZW5kZXJCb3guYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0
aCgpLCByZW5kZXJCb3gubWFyZ2luTG9naWNhbEhlaWdodCgpICsgcmVuZGVyQm94LmJvcmRlckFu
ZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkpOwotICAgIHJldHVybiBMYXlvdXRSZWN0KG1hcmdpbkJv
eE9yaWdpbiwgc2hhcGVTaXplICsgbWFyZ2luQm94U2l6ZURlbHRhKTsKKyAgICByZXR1cm4gTGF5
b3V0UmVjdChtYXJnaW5Cb3hPcmlnaW4sIHJlZmVyZW5jZUJveExvZ2ljYWxTaXplICsgbWFyZ2lu
Qm94U2l6ZURlbHRhKTsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgUmVuZGVyVHlwZT4KQEAgLTkwLDIw
ICs4OSwyMCBAQCBjb25zdCBTaGFwZSYgU2hhcGVJbmZvPFJlbmRlclR5cGU+Ojpjb21wdXRlZFNo
YXBlKCkgY29uc3QKICAgICBzd2l0Y2ggKHNoYXBlVmFsdWUtPnR5cGUoKSkgewogICAgIGNhc2Ug
U2hhcGVWYWx1ZTo6U2hhcGU6CiAgICAgICAgIEFTU0VSVChzaGFwZVZhbHVlLT5zaGFwZSgpKTsK
LSAgICAgICAgbV9zaGFwZSA9IFNoYXBlOjpjcmVhdGVTaGFwZShzaGFwZVZhbHVlLT5zaGFwZSgp
LCBtX3NoYXBlTG9naWNhbFNpemUsIHdyaXRpbmdNb2RlLCBtYXJnaW4sIHBhZGRpbmcpOworICAg
ICAgICBtX3NoYXBlID0gU2hhcGU6OmNyZWF0ZVNoYXBlKHNoYXBlVmFsdWUtPnNoYXBlKCksIG1f
cmVmZXJlbmNlQm94TG9naWNhbFNpemUsIHdyaXRpbmdNb2RlLCBtYXJnaW4sIHBhZGRpbmcpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFNoYXBlVmFsdWU6OkltYWdlOiB7CiAgICAgICAgIEFT
U0VSVChzaGFwZVZhbHVlLT5pbWFnZSgpKTsKICAgICAgICAgY29uc3QgU3R5bGVJbWFnZSYgc3R5
bGVJbWFnZSA9ICooc2hhcGVWYWx1ZS0+aW1hZ2UoKSk7CiAgICAgICAgIGNvbnN0IExheW91dFJl
Y3QmIGltYWdlUmVjdCA9IGdldFNoYXBlSW1hZ2VSZXBsYWNlZFJlY3QobV9yZW5kZXJlciwgc3R5
bGVJbWFnZSk7Ci0gICAgICAgIGNvbnN0IExheW91dFJlY3QmIG1hcmdpblJlY3QgPSBnZXRTaGFw
ZUltYWdlTWFyZ2luUmVjdChtX3JlbmRlcmVyLCBtX3NoYXBlTG9naWNhbFNpemUpOworICAgICAg
ICBjb25zdCBMYXlvdXRSZWN0JiBtYXJnaW5SZWN0ID0gZ2V0U2hhcGVJbWFnZU1hcmdpblJlY3Qo
bV9yZW5kZXJlciwgbV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSk7CiAgICAgICAgIG1fc2hhcGUg
PSBTaGFwZTo6Y3JlYXRlUmFzdGVyU2hhcGUoc3R5bGVJbWFnZSwgc2hhcGVJbWFnZVRocmVzaG9s
ZCwgaW1hZ2VSZWN0LCBtYXJnaW5SZWN0LCB3cml0aW5nTW9kZSwgbWFyZ2luLCBwYWRkaW5nKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgU2hhcGVWYWx1ZTo6Qm94OiB7CiAgICAg
ICAgIC8vIEZJWE1FIFRoaXMgZG9lcyBub3QgcHJvcGVybHkgY29tcHV0ZSB0aGUgcm91bmRlZCBj
b3JuZXJzIGFzIHNwZWNpZmllZCBpbiBhbGwgY29uZGl0aW9ucy4KICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzk4MgotICAgICAgICBjb25zdCBS
b3VuZGVkUmVjdCYgc2hhcGVSZWN0ID0gbV9yZW5kZXJlci5zdHlsZSgpLmdldFJvdW5kZWRCb3Jk
ZXJGb3IoTGF5b3V0UmVjdChMYXlvdXRQb2ludCgpLCBtX3NoYXBlTG9naWNhbFNpemUpLCAmKG1f
cmVuZGVyZXIudmlldygpKSk7CisgICAgICAgIGNvbnN0IFJvdW5kZWRSZWN0JiBzaGFwZVJlY3Qg
PSBtX3JlbmRlcmVyLnN0eWxlKCkuZ2V0Um91bmRlZEJvcmRlckZvcihMYXlvdXRSZWN0KExheW91
dFBvaW50KCksIG1fcmVmZXJlbmNlQm94TG9naWNhbFNpemUpLCAmKG1fcmVuZGVyZXIudmlldygp
KSk7CiAgICAgICAgIG1fc2hhcGUgPSBTaGFwZTo6Y3JlYXRlTGF5b3V0Qm94U2hhcGUoc2hhcGVS
ZWN0LCB3cml0aW5nTW9kZSwgbWFyZ2luLCBwYWRkaW5nKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8u
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKaW5kZXggODc4
MzRkOTY0YmFkMjYyMmI0ZTg1YjZiNjBmNjQzMjk5YWViZTQ2Yi4uMzEyMDhmYThkZmU4MTM3YWZi
NmYyOTFjOGJmZjVmZjcyZjNlZWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1NoYXBlSW5mby5oCkBAIC03MSwyMyArNzEsMjAgQEAgY2xhc3MgU2hhcGVJbmZvIHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5TaGFwZUluZm8oKSB7IH0KIAotICAgIHZvaWQgc2V0U2hhcGVT
aXplKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCisg
ICAgdm9pZCBzZXRSZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZShMYXlvdXRTaXplIG5ld1JlZmVyZW5j
ZUJveExvZ2ljYWxTaXplKQogICAgIHsKLSAgICAgICAgTGF5b3V0Qm94IGJveCA9IHJlc29sdmVk
TGF5b3V0Qm94KCk7CisgICAgICAgIExheW91dEJveCBib3ggPSByZWZlcmVuY2VCb3goKTsKICAg
ICAgICAgc3dpdGNoIChib3gpIHsKICAgICAgICAgY2FzZSBNYXJnaW5Cb3g6Ci0gICAgICAgICAg
ICBsb2dpY2FsSGVpZ2h0ICs9IG1fcmVuZGVyZXIubWFyZ2luTG9naWNhbEhlaWdodCgpOwotICAg
ICAgICAgICAgbG9naWNhbFdpZHRoICs9IG1fcmVuZGVyZXIubWFyZ2luTG9naWNhbFdpZHRoKCk7
CisgICAgICAgICAgICBuZXdSZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZS5leHBhbmQobV9yZW5kZXJl
ci5tYXJnaW5Mb2dpY2FsV2lkdGgoKSwgbV9yZW5kZXJlci5tYXJnaW5Mb2dpY2FsSGVpZ2h0KCkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQm9yZGVyQm94OgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUGFkZGluZ0JveDoKLSAgICAgICAgICAgIGxvZ2ljYWxI
ZWlnaHQgLT0gbV9yZW5kZXJlci5ib3JkZXJMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgICAgICAgICBs
b2dpY2FsV2lkdGggLT0gbV9yZW5kZXJlci5ib3JkZXJMb2dpY2FsV2lkdGgoKTsKKyAgICAgICAg
ICAgIG5ld1JlZmVyZW5jZUJveExvZ2ljYWxTaXplLnNocmluayhtX3JlbmRlcmVyLmJvcmRlckxv
Z2ljYWxXaWR0aCgpLCBtX3JlbmRlcmVyLmJvcmRlckxvZ2ljYWxIZWlnaHQoKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb250ZW50Qm94OgotICAgICAgICAgICAgbG9naWNh
bEhlaWdodCAtPSBtX3JlbmRlcmVyLmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCk7Ci0g
ICAgICAgICAgICBsb2dpY2FsV2lkdGggLT0gbV9yZW5kZXJlci5ib3JkZXJBbmRQYWRkaW5nTG9n
aWNhbFdpZHRoKCk7CisgICAgICAgICAgICBuZXdSZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZS5zaHJp
bmsobV9yZW5kZXJlci5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCksIG1fcmVuZGVyZXIu
Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBGaWxsOgogICAgICAgICBjYXNlIFN0cm9rZToKQEAgLTk3LDExICs5NCwxMCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIExheW91
dFNpemUgbmV3TG9naWNhbFNpemUobG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KTsKLSAgICAg
ICAgaWYgKG1fc2hhcGVMb2dpY2FsU2l6ZSA9PSBuZXdMb2dpY2FsU2l6ZSkKKyAgICAgICAgaWYg
KG1fcmVmZXJlbmNlQm94TG9naWNhbFNpemUgPT0gbmV3UmVmZXJlbmNlQm94TG9naWNhbFNpemUp
CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGRpcnR5U2hhcGVTaXplKCk7Ci0gICAgICAg
IG1fc2hhcGVMb2dpY2FsU2l6ZSA9IG5ld0xvZ2ljYWxTaXplOworICAgICAgICBtYXJrU2hhcGVB
c0RpcnR5KCk7CisgICAgICAgIG1fcmVmZXJlbmNlQm94TG9naWNhbFNpemUgPSBuZXdSZWZlcmVu
Y2VCb3hMb2dpY2FsU2l6ZTsKICAgICB9CiAKICAgICBTZWdtZW50TGlzdCBjb21wdXRlU2VnbWVu
dHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KSBjb25z
dDsKQEAgLTExNywxNCArMTEzLDE0IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxM
aW5lQm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZUxpbmVUb3AgKyBtX2xpbmVIZWlnaHQg
KyBsb2dpY2FsVG9wT2Zmc2V0KCk7IH0KICAgICBMYXlvdXRVbml0IGxvZ2ljYWxMaW5lQm90dG9t
KExheW91dFVuaXQgbGluZUhlaWdodCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZUxpbmVUb3AgKyBs
aW5lSGVpZ2h0ICsgbG9naWNhbFRvcE9mZnNldCgpOyB9CiAKLSAgICBMYXlvdXRVbml0IHNoYXBl
Q29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIChtX3JlbmRlcmVy
LnN0eWxlKCkuYm94U2l6aW5nKCkgPT0gQ09OVEVOVF9CT1gpID8gKG1fc2hhcGVMb2dpY2FsU2l6
ZS5oZWlnaHQoKSArIG1fcmVuZGVyZXIuYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSkg
OiBtX3NoYXBlTG9naWNhbFNpemUuaGVpZ2h0KCk7IH0KKyAgICBMYXlvdXRVbml0IHNoYXBlQ29u
dGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIChtX3JlbmRlcmVyLnN0
eWxlKCkuYm94U2l6aW5nKCkgPT0gQ09OVEVOVF9CT1gpID8gKG1fcmVmZXJlbmNlQm94TG9naWNh
bFNpemUuaGVpZ2h0KCkgKyBtX3JlbmRlcmVyLmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0
KCkpIDogbV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZS5oZWlnaHQoKTsgfQogCiAgICAgdmlydHVh
bCBib29sIGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkgY29uc3QgPSAwOwogCi0gICAgdm9pZCBk
aXJ0eVNoYXBlU2l6ZSgpIHsgbV9zaGFwZS5jbGVhcigpOyB9Ci0gICAgYm9vbCBzaGFwZVNpemVE
aXJ0eSgpIHsgcmV0dXJuICFtX3NoYXBlLmdldCgpOyB9CisgICAgdm9pZCBtYXJrU2hhcGVBc0Rp
cnR5KCkgeyBtX3NoYXBlLmNsZWFyKCk7IH0KKyAgICBib29sIGlzU2hhcGVEaXJ0eSgpIHsgcmV0
dXJuICFtX3NoYXBlLmdldCgpOyB9CiAgICAgY29uc3QgUmVuZGVyVHlwZSYgb3duZXIoKSBjb25z
dCB7IHJldHVybiBtX3JlbmRlcmVyOyB9Ci0gICAgTGF5b3V0U2l6ZSBzaGFwZVNpemUoKSBjb25z
dCB7IHJldHVybiBtX3NoYXBlTG9naWNhbFNpemU7IH0KKyAgICBMYXlvdXRTaXplIHJlZmVyZW5j
ZUJveExvZ2ljYWxTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6
ZTsgfQogCiAgICAgTGF5b3V0UmVjdCBjb21wdXRlZFNoYXBlUGh5c2ljYWxCb3VuZGluZ0JveCgp
IGNvbnN0CiAgICAgewpAQCAtMTYzLDcgKzE1OSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAg
fQogCi0gICAgdmlydHVhbCBMYXlvdXRCb3ggcmVzb2x2ZWRMYXlvdXRCb3goKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBMYXlvdXRCb3ggcmVmZXJlbmNlQm94KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBjb21wdXRlZFNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0SW50ZXJ2YWxzKExheW91dFVuaXQsIExheW91dFVuaXQsIFNlZ21l
bnRMaXN0JikgY29uc3QgPSAwOwpAQCAtMTcyLDcgKzE2OCw3IEBAIHByb3RlY3RlZDoKIAogICAg
IExheW91dFVuaXQgbG9naWNhbFRvcE9mZnNldCgpIGNvbnN0CiAgICAgewotICAgICAgICBMYXlv
dXRCb3ggYm94ID0gcmVzb2x2ZWRMYXlvdXRCb3goKTsKKyAgICAgICAgTGF5b3V0Qm94IGJveCA9
IHJlZmVyZW5jZUJveCgpOwogICAgICAgICBzd2l0Y2ggKGJveCkgewogICAgICAgICBjYXNlIE1h
cmdpbkJveDogcmV0dXJuIC1tX3JlbmRlcmVyLm1hcmdpbkJlZm9yZSgpOwogICAgICAgICBjYXNl
IEJvcmRlckJveDogcmV0dXJuIExheW91dFVuaXQoKTsKQEAgLTE5MSw3ICsxODcsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgewogICAgICAgICBpZiAobV9yZW5kZXJlci5pc1JlbmRlclJlZ2lvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQoKTsKLSAgICAgICAgTGF5b3V0Qm94IGJveCA9
IHJlc29sdmVkTGF5b3V0Qm94KCk7CisgICAgICAgIExheW91dEJveCBib3ggPSByZWZlcmVuY2VC
b3goKTsKICAgICAgICAgc3dpdGNoIChib3gpIHsKICAgICAgICAgY2FzZSBNYXJnaW5Cb3g6IHJl
dHVybiAtbV9yZW5kZXJlci5tYXJnaW5TdGFydCgpOwogICAgICAgICBjYXNlIEJvcmRlckJveDog
cmV0dXJuIExheW91dFVuaXQoKTsKQEAgLTIxMyw3ICsyMDksNyBAQCBwcm90ZWN0ZWQ6CiAKIHBy
aXZhdGU6CiAgICAgbXV0YWJsZSBPd25QdHI8U2hhcGU+IG1fc2hhcGU7Ci0gICAgTGF5b3V0U2l6
ZSBtX3NoYXBlTG9naWNhbFNpemU7CisgICAgTGF5b3V0U2l6ZSBtX3JlZmVyZW5jZUJveExvZ2lj
YWxTaXplOwogfTsKIAogYm9vbCBjaGVja1NoYXBlSW1hZ2VPcmlnaW4oRG9jdW1lbnQmLCBDYWNo
ZWRJbWFnZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9T
aGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJ
bnNpZGVJbmZvLmgKaW5kZXggZGQ5NDdkYjRkZjc0NTBmYzdlOTNiOTgyNDc4YWVmM2QyMjliZmZk
Ny4uYWVhZTVhY2IwZGE1NzE2ZmQwYWUwZmZmOGQyNTQyZmU1NDQ5ZjJiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oCkBAIC0xMDcs
NyArMTA3LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgTGF5
b3V0Qm94IHJlc29sdmVkTGF5b3V0Qm94KCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB2aXJ0dWFsIExh
eW91dEJveCByZWZlcmVuY2VCb3goKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYg
KHNoYXBlVmFsdWUoKS0+bGF5b3V0Qm94KCkgPT0gQm94TWlzc2luZykKICAgICAgICAgICAgIHJl
dHVybiBDb250ZW50Qm94OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKaW5kZXggZGNmYTJiZjMzMjdhYWY2MjQzMWZmMWM2ODM1
Nzc3ZjE3MGQyZjNkYy4uZDRmMTY0YTI5ZWIxOTU2NjAwMTE4OWI3ZGEwZjVkMDI1ZGY4MDc4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lk
ZUluZm8uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgU2hhcGVPdXRzaWRlSW5mbzo6dXBkYXRl
RGVsdGFzRm9yQ29udGFpbmluZ0Jsb2NrTGluZShjb25zdCBSZW5kZXJCbG9ja0Zsb3cmCiAgICAg
TGF5b3V0VW5pdCBzaGFwZVRvcCA9IGNvbnRhaW5pbmdCbG9jay5sb2dpY2FsVG9wRm9yRmxvYXQo
JmZsb2F0aW5nT2JqZWN0KSArIHN0ZDo6bWF4KExheW91dFVuaXQoKSwgY29udGFpbmluZ0Jsb2Nr
Lm1hcmdpbkJlZm9yZUZvckNoaWxkKG1fcmVuZGVyZXIpKTsKICAgICBMYXlvdXRVbml0IGZsb2F0
UmVsYXRpdmVMaW5lVG9wID0gbGluZVRvcCAtIHNoYXBlVG9wOwogCi0gICAgaWYgKHNoYXBlU2l6
ZURpcnR5KCkgfHwgbV9saW5lVG9wICE9IGZsb2F0UmVsYXRpdmVMaW5lVG9wIHx8IG1fbGluZUhl
aWdodCAhPSBsaW5lSGVpZ2h0KSB7CisgICAgaWYgKGlzU2hhcGVEaXJ0eSgpIHx8IG1fbGluZVRv
cCAhPSBmbG9hdFJlbGF0aXZlTGluZVRvcCB8fCBtX2xpbmVIZWlnaHQgIT0gbGluZUhlaWdodCkg
ewogICAgICAgICBtX2xpbmVUb3AgPSBmbG9hdFJlbGF0aXZlTGluZVRvcDsKICAgICAgICAgbV9z
aGFwZUxpbmVUb3AgPSBmbG9hdFJlbGF0aXZlTGluZVRvcCAtIGxvZ2ljYWxUb3BPZmZzZXQoKTsK
ICAgICAgICAgbV9saW5lSGVpZ2h0ID0gbGluZUhlaWdodDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmgKaW5kZXggOWJkZjFhMjgwY2Vl
NzhlNmY1ZmViOTViODM3MDJkYjc5NmE5NWYyZi4uMjA2ZjZhMzc0MTY4MjYzZWIyYTY1MzBjZjQ2
OGY3MWM2YjBkYjNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZU91dHNpZGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZU91dHNpZGVJbmZvLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIH0KIAog
cHJvdGVjdGVkOgotICAgIHZpcnR1YWwgTGF5b3V0Qm94IHJlc29sdmVkTGF5b3V0Qm94KCkgY29u
c3Qgb3ZlcnJpZGUKKyAgICB2aXJ0dWFsIExheW91dEJveCByZWZlcmVuY2VCb3goKSBjb25zdCBv
dmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKHNoYXBlVmFsdWUoKS0+bGF5b3V0Qm94KCkgPT0g
Qm94TWlzc2luZykgewogICAgICAgICAgICAgaWYgKHNoYXBlVmFsdWUoKS0+dHlwZSgpID09IFNo
YXBlVmFsdWU6OkltYWdlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224016</attachid>
            <date>2014-02-12 15:22:06 -0800</date>
            <delta_ts>2014-02-12 18:57:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128685-20140212152205.patch</filename>
            <type>text/plain</type>
            <size>23558</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzOTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNmNzM4ODQ4ZWFiNjE5
Yjg1Y2Q3NTExNmZlZjk4NDk1NmUxOTE1ZS4uZDU1NmNiYjkzMjY1NzE3YWFkOTM3ODBkZDZiZGFj
YjY4OThiMjA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE0LTAyLTEyICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBS
ZW5hbWUgc2hhcGVTaXplIGFuZCBvdGhlcnMgdG8gbWFrZSBTaGFwZUluZm8gYW5kIGZyaWVuZHMg
ZWFzaWVyIHRvIHVuZGVyc3RhbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyODY4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBTaGFwZUluZm8gaGllcmFyY2h5IGhhcyBncm93biBvcmdhbmljYWxs
eSBhcyB0aGUgc3BlYyBoYXMgY2hhbmdlZCwKKyAgICAgICAgYW5kIHRoZSBuYW1pbmcgaGFzIGJl
Y29tZSB2ZXJ5IHN0YWxlIGFuZCBjb25mdXNpbmcuIFRoZSBzcGVjIGlzIG5vdyBpbgorICAgICAg
ICBMYXN0IENhbGwsIHNvIGl0IHNlZW1zIGxpa2UgYSBnb29kIHRpbWUgdG8gdGFrZSBhIHN0YWIg
dG93YXJkcyBiZXR0ZXIKKyAgICAgICAgbmFtaW5nIHRoYXQgbWF0Y2hlcyB0aGUgc3BlYyB0ZXJt
aW5vbG9neSBhbmQgaXMgYWxzbyBtb3JlIGNvbnNpc3RlbnQKKyAgICAgICAgaW4gZ2VuZXJhbC4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6aW1hZ2VDaGFuZ2VkKTogVXNlIG5ldyBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjp1cGRhdGVTaGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpzaGFwZUluZm9SZXF1aXJlc1JlbGF5b3V0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZVNoYXBlU2l6ZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBlc0FmdGVyQmxvY2tMYXlvdXQp
OiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpsb2dpY2FsU2l6ZUZvckNoaWxkKTogVGhpcyBtZXRob2QgbWFr
ZXMgaXQgbXVjaAorICAgICAgICAgICAgY2xlYW5lciB0byBzZXQgdGhlIHJlZmVyZW5jZSBib3gg
c2l6ZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6cG9zaXRpb25OZXdGbG9hdHMpOiBVc2UgbmV3IG5h
bWVzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94Ojp1cGRhdGVTaGFwZU91dHNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjppbWFnZUNoYW5nZWQpOiBEaXR0by4K
KyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRTaGFwZUltYWdlTWFyZ2luUmVjdCk6IFJlbmFtZSB2YXJpYWJsZXMuCisgICAgICAg
IChXZWJDb3JlOjpTaGFwZUluZm88UmVuZGVyVHlwZT46OmNvbXB1dGVkU2hhcGUpOiBNb3JlIHJl
bmFtZXMuCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXBlSW5mbzo6c2V0UmVmZXJlbmNlQm94TG9naWNhbFNpemUpOiBSZW5hbWVk
IGZyb20KKyAgICAgICAgICAgIHNldFNoYXBlU2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBl
SW5mbzo6bG9naWNhbExpbmVUb3ApOiBVc2UgbmV3IG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6
U2hhcGVJbmZvOjpsb2dpY2FsTGluZUJvdHRvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
U2hhcGVJbmZvOjpzaGFwZUNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6bWFya1NoYXBlQXNEaXJ0eSk6IFJlbmFtZWQgZnJv
bSBkaXJ0eVNoYXBlU2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzo6aXNTaGFwZURp
cnR5KTogUmVuYW1lZCBmcm9tIHNoYXBlU2l6ZURpcnR5LgorICAgICAgICAoV2ViQ29yZTo6U2hh
cGVJbmZvOjpyZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSk6IFJlbmFtZWQgZnJvbSBzaGFwZVNpemUu
CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluZm86OmxvZ2ljYWxUb3BPZmZzZXQpOiBVc2UgbmV3
IG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpsb2dpY2FsTGVmdE9mZnNldCk6
IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6dXBkYXRlU2VnbWVudHNGb3JMaW5l
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluc2lkZUluZm86OmFkanVzdExvZ2lj
YWxMaW5lVG9wKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTaGFwZUluc2lkZUluZm86OmNv
bXB1dGVGaXJzdEZpdFBvc2l0aW9uRm9yRmxvYXQpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJp
bmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMv
U2hhcGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZU91dHNpZGVJbmZv
Ojp1cGRhdGVEZWx0YXNGb3JDb250YWluaW5nQmxvY2tMaW5lKTogRGl0dG8uCisgICAgICAgICog
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmg6CisKIDIwMTQtMDItMTIgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBNb2Rlcm5pemUgbWlzc2VkIGluc3BlY3RvciBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKaW5kZXggODgxYjA1ZWUxODcyNWYwMjdjODY2OWQzNDgwZTM5YTQ1
NDlmYzk4MS4uYWUyNDEwODRmZTQ4NTRiYzg3MGIzMjU1OTEzYmI0OGM5ZTg1NGY0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xMzIxLDcgKzEzMjEsNyBA
QCB2b2lkIFJlbmRlckJsb2NrOjppbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBj
b25zdCBJbnRSZWN0KikKICAgICBTaGFwZVZhbHVlKiBzaGFwZVZhbHVlID0gc3R5bGUoKS5zaGFw
ZUluc2lkZSgpOwogICAgIGlmIChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUtPmltYWdlKCkgJiYg
c2hhcGVWYWx1ZS0+aW1hZ2UoKS0+ZGF0YSgpID09IGltYWdlKSB7CiAgICAgICAgIFNoYXBlSW5z
aWRlSW5mbyYgc2hhcGVJbnNpZGVJbmZvID0gZW5zdXJlU2hhcGVJbnNpZGVJbmZvKCk7Ci0gICAg
ICAgIHNoYXBlSW5zaWRlSW5mby5kaXJ0eVNoYXBlU2l6ZSgpOworICAgICAgICBzaGFwZUluc2lk
ZUluZm8ubWFya1NoYXBlQXNEaXJ0eSgpOwogICAgICAgICBtYXJrU2hhcGVJbnNpZGVEZXNjZW5k
YW50c0ZvckxheW91dCgpOwogICAgIH0KICNlbmRpZgpAQCAtMTM4MSw3ICsxMzgxLDcgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6dXBkYXRlU2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25z
dCBTaGFwZVZhbHVlKiBzaGFwZUkKIAogICAgIGlmIChzaGFwZUluc2lkZSkgewogICAgICAgICBT
aGFwZUluc2lkZUluZm8mIHNoYXBlSW5zaWRlSW5mbyA9IGVuc3VyZVNoYXBlSW5zaWRlSW5mbygp
OwotICAgICAgICBzaGFwZUluc2lkZUluZm8uZGlydHlTaGFwZVNpemUoKTsKKyAgICAgICAgc2hh
cGVJbnNpZGVJbmZvLm1hcmtTaGFwZUFzRGlydHkoKTsKICAgICB9IGVsc2UKICAgICAgICAgc2V0
U2hhcGVJbnNpZGVJbmZvKG51bGxwdHIpOwogICAgIG1hcmtTaGFwZUluc2lkZURlc2NlbmRhbnRz
Rm9yTGF5b3V0KCk7CkBAIC0xNDQ2LDcgKzE0NDYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hh
cGVJbmZvUmVxdWlyZXNSZWxheW91dChjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCiB7CiAgICAg
U2hhcGVJbnNpZGVJbmZvKiBpbmZvID0gYmxvY2stPnNoYXBlSW5zaWRlSW5mbygpOwogICAgIGlm
IChpbmZvKQotICAgICAgICBpbmZvLT5zZXROZWVkc0xheW91dChpbmZvLT5zaGFwZVNpemVEaXJ0
eSgpKTsKKyAgICAgICAgaW5mby0+c2V0TmVlZHNMYXlvdXQoaW5mby0+aXNTaGFwZURpcnR5KCkp
OwogICAgIGVsc2UKICAgICAgICAgaW5mbyA9IGJsb2NrLT5sYXlvdXRTaGFwZUluc2lkZUluZm8o
KTsKICAgICByZXR1cm4gaW5mbyAmJiBpbmZvLT5uZWVkc0xheW91dCgpOwpAQCAtMTQ2MSwxMCAr
MTQ2MSwxMCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlU2hhcGVTaXplKCkKICAgICBpZiAo
aXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpKSB7CiAgICAgICAgIFNoYXBlSW5zaWRlSW5mbyog
cGFyZW50U2hhcGVJbnNpZGVJbmZvID0gdG9SZW5kZXJCbG9jayhwYXJlbnQoKSktPnNoYXBlSW5z
aWRlSW5mbygpOwogICAgICAgICBBU1NFUlQocGFyZW50U2hhcGVJbnNpZGVJbmZvKTsKLSAgICAg
ICAgc2hhcGVJbnNpZGVJbmZvLT5zZXRTaGFwZVNpemUocGFyZW50U2hhcGVJbnNpZGVJbmZvLT5z
aGFwZVNpemUoKS53aWR0aCgpLCBwYXJlbnRTaGFwZUluc2lkZUluZm8tPnNoYXBlU2l6ZSgpLmhl
aWdodCgpKTsKKyAgICAgICAgc2hhcGVJbnNpZGVJbmZvLT5zZXRSZWZlcmVuY2VCb3hMb2dpY2Fs
U2l6ZShwYXJlbnRTaGFwZUluc2lkZUluZm8tPnJlZmVyZW5jZUJveExvZ2ljYWxTaXplKCkpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGJvb2wgcGVyY2VudGFnZUxvZ2ljYWxIZWlnaHRSZXNvbHZh
YmxlID0gcGVyY2VudGFnZUxvZ2ljYWxIZWlnaHRJc1Jlc29sdmFibGVGcm9tQmxvY2sodGhpcywg
ZmFsc2UpOwotICAgICAgICBzaGFwZUluc2lkZUluZm8tPnNldFNoYXBlU2l6ZShsb2dpY2FsV2lk
dGgoKSwgcGVyY2VudGFnZUxvZ2ljYWxIZWlnaHRSZXNvbHZhYmxlID8gbG9naWNhbEhlaWdodCgp
IDogTGF5b3V0VW5pdCgpKTsKKyAgICAgICAgc2hhcGVJbnNpZGVJbmZvLT5zZXRSZWZlcmVuY2VC
b3hMb2dpY2FsU2l6ZShMYXlvdXRTaXplKGxvZ2ljYWxXaWR0aCgpLCBwZXJjZW50YWdlTG9naWNh
bEhlaWdodFJlc29sdmFibGUgPyBsb2dpY2FsSGVpZ2h0KCkgOiBMYXlvdXRVbml0KCkpKTsKICAg
ICB9CiB9CiAjZW5kaWYKQEAgLTE1MDAsNyArMTUwMCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVw
ZGF0ZVNoYXBlc0FmdGVyQmxvY2tMYXlvdXQoYm9vbCBoZWlnaHRDaGFuZ2VkKQogICAgIC8vIEEg
cHJldmlvdXMgc2libGluZyBoYXMgY2hhbmdlZCBkaW1lbnNpb24sIHNvIHdlIG5lZWQgdG8gcmVs
YXlvdXQgdGhlIHNoYXBlIHdpdGggdGhlIGNvbnRlbnQKICAgICBTaGFwZUluc2lkZUluZm8qIHNo
YXBlSW5zaWRlSW5mbyA9IGxheW91dFNoYXBlSW5zaWRlSW5mbygpOwogICAgIGlmIChoZWlnaHRD
aGFuZ2VkICYmIHNoYXBlSW5zaWRlSW5mbykKLSAgICAgICAgc2hhcGVJbnNpZGVJbmZvLT5kaXJ0
eVNoYXBlU2l6ZSgpOworICAgICAgICBzaGFwZUluc2lkZUluZm8tPm1hcmtTaGFwZUFzRGlydHko
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhlaWdodENoYW5nZWQpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDZiYmZlNmE1OTc2MjJjMjFiY2Q3
Zjk0NTM1NmM2NWQwYzVmOTJlYzAuLjNkMDk5ZTdkYzEyZDQ2YWQzMDJlNTE2YWM0MDA3MGFlMGZm
YWNmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0yNzgsNiAr
Mjc4LDcgQEAgcHVibGljOgogICAgIGVudW0gQXBwbHlMYXlvdXREZWx0YU1vZGUgeyBBcHBseUxh
eW91dERlbHRhLCBEb05vdEFwcGx5TGF5b3V0RGVsdGEgfTsKICAgICBMYXlvdXRVbml0IGxvZ2lj
YWxXaWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjaGlsZC53aWR0aCgpIDogY2hpbGQuaGVpZ2h0KCk7
IH0KICAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gm
IGNoaWxkKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQu
aGVpZ2h0KCkgOiBjaGlsZC53aWR0aCgpOyB9CisgICAgTGF5b3V0U2l6ZSBsb2dpY2FsU2l6ZUZv
ckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBjaGlsZC5zaXplKCkgOiBjaGlsZC5zaXplKCkudHJhbnNwb3NlZFNp
emUoKTsgfQogICAgIExheW91dFVuaXQgbG9naWNhbFRvcEZvckNoaWxkKGNvbnN0IFJlbmRlckJv
eCYgY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjaGls
ZC55KCkgOiBjaGlsZC54KCk7IH0KICAgICB2b2lkIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoUmVu
ZGVyQm94JiBjaGlsZCwgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgQXBwbHlMYXlvdXREZWx0YU1v
ZGUgPSBEb05vdEFwcGx5TGF5b3V0RGVsdGEpOwogICAgIHZvaWQgc2V0TG9naWNhbFRvcEZvckNo
aWxkKFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgQXBwbHlMYXlvdXRE
ZWx0YU1vZGUgPSBEb05vdEFwcGx5TGF5b3V0RGVsdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAzNjUwM2YwZmI2M2NjZmYzMzY3MjRmNjYw
MzM3NjdjZDc0YmM3NjgyLi5hMGU3NDY4NzJjY2NkNjU3NDEzOTEwMzczZjQ4MDJlZDQyZGViZThj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAt
MjM0Miw3ICsyMzQyLDcgQEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uTmV3RmxvYXRz
KCkKIAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgICAgICBpZiAoU2hhcGVPdXRzaWRlSW5m
byogc2hhcGVPdXRzaWRlID0gY2hpbGRCb3guc2hhcGVPdXRzaWRlSW5mbygpKQotICAgICAgICAg
ICAgc2hhcGVPdXRzaWRlLT5zZXRTaGFwZVNpemUobG9naWNhbFdpZHRoRm9yQ2hpbGQoY2hpbGRC
b3gpLCBsb2dpY2FsSGVpZ2h0Rm9yQ2hpbGQoY2hpbGRCb3gpKTsKKyAgICAgICAgICAgIHNoYXBl
T3V0c2lkZS0+c2V0UmVmZXJlbmNlQm94TG9naWNhbFNpemUobG9naWNhbFNpemVGb3JDaGlsZChj
aGlsZEJveCkpOwogI2VuZGlmCiAgICAgICAgIC8vIElmIHRoZSBjaGlsZCBtb3ZlZCwgd2UgaGF2
ZSB0byByZXBhaW50IGl0LgogICAgICAgICBpZiAoY2hpbGRCb3guY2hlY2tGb3JSZXBhaW50RHVy
aW5nTGF5b3V0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGVm
NTM0MTEzYjE5NWVlYWRlYTYxNDU0NTFhNWFmYjI0NDQyNDhkNjcuLjBlY2RmYzFjZjM3YjFlNDky
Nzg0ODk2MTE2NTQyZjUyZjNkOTFiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCkBAIC00MDQsNyArNDA0LDcgQEAgdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZVNoYXBlT3V0
c2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwKICAgICBp
ZiAoIXNoYXBlT3V0c2lkZSkKICAgICAgICAgU2hhcGVPdXRzaWRlSW5mbzo6cmVtb3ZlSW5mbygq
dGhpcyk7CiAgICAgZWxzZQotICAgICAgICBTaGFwZU91dHNpZGVJbmZvOjplbnN1cmVJbmZvKCp0
aGlzKS5kaXJ0eVNoYXBlU2l6ZSgpOworICAgICAgICBTaGFwZU91dHNpZGVJbmZvOjplbnN1cmVJ
bmZvKCp0aGlzKS5tYXJrU2hhcGVBc0RpcnR5KCk7CiAKICAgICBpZiAoc2hhcGVPdXRzaWRlIHx8
IHNoYXBlT3V0c2lkZSAhPSBvbGRTaGFwZU91dHNpZGUpCiAgICAgICAgIG1hcmtTaGFwZU91dHNp
ZGVEZXBlbmRlbnRzRm9yTGF5b3V0KCk7CkBAIC0xNTQyLDcgKzE1NDIsNyBAQCB2b2lkIFJlbmRl
ckJveDo6aW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciBpbWFnZSwgY29uc3QgSW50UmVjdCop
CiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAgICAgU2hhcGVWYWx1ZSogc2hhcGVPdXRzaWRlVmFs
dWUgPSBzdHlsZSgpLnNoYXBlT3V0c2lkZSgpOwogICAgIGlmICghdmlldygpLmZyYW1lVmlldygp
LmlzSW5MYXlvdXQoKSAmJiBpc0Zsb2F0aW5nKCkgJiYgc2hhcGVPdXRzaWRlVmFsdWUgJiYgc2hh
cGVPdXRzaWRlVmFsdWUtPmltYWdlKCkgJiYgc2hhcGVPdXRzaWRlVmFsdWUtPmltYWdlKCktPmRh
dGEoKSA9PSBpbWFnZSkgewotICAgICAgICBTaGFwZU91dHNpZGVJbmZvOjplbnN1cmVJbmZvKCp0
aGlzKS5kaXJ0eVNoYXBlU2l6ZSgpOworICAgICAgICBTaGFwZU91dHNpZGVJbmZvOjplbnN1cmVJ
bmZvKCp0aGlzKS5tYXJrU2hhcGVBc0RpcnR5KCk7CiAgICAgICAgIG1hcmtTaGFwZU91dHNpZGVE
ZXBlbmRlbnRzRm9yTGF5b3V0KCk7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAKaW5kZXggZGZkZTI1MmZiOWI1NTg3ZTc0Zjc2
NTFlNzllMzA2NzYzM2Q5MjY0Ny4uNDUzYWU1Mjk5OGRkMWZmMzZkYmY0M2RjMzk1MGZkNTZjYWVh
MzQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUlu
Zm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNw
cApAQCAtNDIsNyArNDIsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLQogYm9vbCBjaGVj
a1NoYXBlSW1hZ2VPcmlnaW4oRG9jdW1lbnQmIGRvY3VtZW50LCBDYWNoZWRJbWFnZSYgY2FjaGVk
SW1hZ2UpCiB7CiAgICAgaWYgKGNhY2hlZEltYWdlLmlzT3JpZ2luQ2xlYW4oZG9jdW1lbnQuc2Vj
dXJpdHlPcmlnaW4oKSkpCkBAIC02NywxMSArNjYsMTEgQEAgc3RhdGljIExheW91dFJlY3QgZ2V0
U2hhcGVJbWFnZVJlcGxhY2VkUmVjdChjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCwgY29uc3Qg
U3QKICAgICByZXR1cm4gTGF5b3V0UmVjdChMYXlvdXRQb2ludCgpLCBzdHlsZUltYWdlLmNhY2hl
ZEltYWdlKCktPmltYWdlKCktPnNpemUoKSk7CiB9CiAKLXN0YXRpYyBMYXlvdXRSZWN0IGdldFNo
YXBlSW1hZ2VNYXJnaW5SZWN0KGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94LCBjb25zdCBMYXlv
dXRTaXplJiBzaGFwZVNpemUpCitzdGF0aWMgTGF5b3V0UmVjdCBnZXRTaGFwZUltYWdlTWFyZ2lu
UmVjdChjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCwgY29uc3QgTGF5b3V0U2l6ZSYgcmVmZXJl
bmNlQm94TG9naWNhbFNpemUpCiB7CiAgICAgTGF5b3V0UG9pbnQgbWFyZ2luQm94T3JpZ2luKC1y
ZW5kZXJCb3gubWFyZ2luTG9naWNhbExlZnQoKSAtIHJlbmRlckJveC5ib3JkZXJBbmRQYWRkaW5n
TG9naWNhbExlZnQoKSwgLXJlbmRlckJveC5tYXJnaW5CZWZvcmUoKSAtIHJlbmRlckJveC5ib3Jk
ZXJCZWZvcmUoKSAtIHJlbmRlckJveC5wYWRkaW5nQmVmb3JlKCkpOwogICAgIExheW91dFNpemUg
bWFyZ2luQm94U2l6ZURlbHRhKHJlbmRlckJveC5tYXJnaW5Mb2dpY2FsV2lkdGgoKSArIHJlbmRl
ckJveC5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCksIHJlbmRlckJveC5tYXJnaW5Mb2dp
Y2FsSGVpZ2h0KCkgKyByZW5kZXJCb3guYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7
Ci0gICAgcmV0dXJuIExheW91dFJlY3QobWFyZ2luQm94T3JpZ2luLCBzaGFwZVNpemUgKyBtYXJn
aW5Cb3hTaXplRGVsdGEpOworICAgIHJldHVybiBMYXlvdXRSZWN0KG1hcmdpbkJveE9yaWdpbiwg
cmVmZXJlbmNlQm94TG9naWNhbFNpemUgKyBtYXJnaW5Cb3hTaXplRGVsdGEpOwogfQogCiB0ZW1w
bGF0ZTxjbGFzcyBSZW5kZXJUeXBlPgpAQCAtOTAsMjAgKzg5LDIwIEBAIGNvbnN0IFNoYXBlJiBT
aGFwZUluZm88UmVuZGVyVHlwZT46OmNvbXB1dGVkU2hhcGUoKSBjb25zdAogICAgIHN3aXRjaCAo
c2hhcGVWYWx1ZS0+dHlwZSgpKSB7CiAgICAgY2FzZSBTaGFwZVZhbHVlOjpTaGFwZToKICAgICAg
ICAgQVNTRVJUKHNoYXBlVmFsdWUtPnNoYXBlKCkpOwotICAgICAgICBtX3NoYXBlID0gU2hhcGU6
OmNyZWF0ZVNoYXBlKHNoYXBlVmFsdWUtPnNoYXBlKCksIG1fc2hhcGVMb2dpY2FsU2l6ZSwgd3Jp
dGluZ01vZGUsIG1hcmdpbiwgcGFkZGluZyk7CisgICAgICAgIG1fc2hhcGUgPSBTaGFwZTo6Y3Jl
YXRlU2hhcGUoc2hhcGVWYWx1ZS0+c2hhcGUoKSwgbV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSwg
d3JpdGluZ01vZGUsIG1hcmdpbiwgcGFkZGluZyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
U2hhcGVWYWx1ZTo6SW1hZ2U6IHsKICAgICAgICAgQVNTRVJUKHNoYXBlVmFsdWUtPmltYWdlKCkp
OwogICAgICAgICBjb25zdCBTdHlsZUltYWdlJiBzdHlsZUltYWdlID0gKihzaGFwZVZhbHVlLT5p
bWFnZSgpKTsKICAgICAgICAgY29uc3QgTGF5b3V0UmVjdCYgaW1hZ2VSZWN0ID0gZ2V0U2hhcGVJ
bWFnZVJlcGxhY2VkUmVjdChtX3JlbmRlcmVyLCBzdHlsZUltYWdlKTsKLSAgICAgICAgY29uc3Qg
TGF5b3V0UmVjdCYgbWFyZ2luUmVjdCA9IGdldFNoYXBlSW1hZ2VNYXJnaW5SZWN0KG1fcmVuZGVy
ZXIsIG1fc2hhcGVMb2dpY2FsU2l6ZSk7CisgICAgICAgIGNvbnN0IExheW91dFJlY3QmIG1hcmdp
blJlY3QgPSBnZXRTaGFwZUltYWdlTWFyZ2luUmVjdChtX3JlbmRlcmVyLCBtX3JlZmVyZW5jZUJv
eExvZ2ljYWxTaXplKTsKICAgICAgICAgbV9zaGFwZSA9IFNoYXBlOjpjcmVhdGVSYXN0ZXJTaGFw
ZShzdHlsZUltYWdlLCBzaGFwZUltYWdlVGhyZXNob2xkLCBpbWFnZVJlY3QsIG1hcmdpblJlY3Qs
IHdyaXRpbmdNb2RlLCBtYXJnaW4sIHBhZGRpbmcpOwogICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgY2FzZSBTaGFwZVZhbHVlOjpCb3g6IHsKICAgICAgICAgLy8gRklYTUUgVGhpcyBkb2VzIG5v
dCBwcm9wZXJseSBjb21wdXRlIHRoZSByb3VuZGVkIGNvcm5lcnMgYXMgc3BlY2lmaWVkIGluIGFs
bCBjb25kaXRpb25zLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI3OTgyCi0gICAgICAgIGNvbnN0IFJvdW5kZWRSZWN0JiBzaGFwZVJlY3QgPSBt
X3JlbmRlcmVyLnN0eWxlKCkuZ2V0Um91bmRlZEJvcmRlckZvcihMYXlvdXRSZWN0KExheW91dFBv
aW50KCksIG1fc2hhcGVMb2dpY2FsU2l6ZSksICYobV9yZW5kZXJlci52aWV3KCkpKTsKKyAgICAg
ICAgY29uc3QgUm91bmRlZFJlY3QmIHNoYXBlUmVjdCA9IG1fcmVuZGVyZXIuc3R5bGUoKS5nZXRS
b3VuZGVkQm9yZGVyRm9yKExheW91dFJlY3QoTGF5b3V0UG9pbnQoKSwgbV9yZWZlcmVuY2VCb3hM
b2dpY2FsU2l6ZSksICYobV9yZW5kZXJlci52aWV3KCkpKTsKICAgICAgICAgbV9zaGFwZSA9IFNo
YXBlOjpjcmVhdGVMYXlvdXRCb3hTaGFwZShzaGFwZVJlY3QsIHdyaXRpbmdNb2RlLCBtYXJnaW4s
IHBhZGRpbmcpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZUluZm8uaAppbmRleCA4NzgzNGQ5NjRiYWQyNjIyYjRlODViNmI2MGY2
NDMyOTlhZWJlNDZiLi5jZDc3OGFkMTY5ZjVlMGIxOGNmN2E5MGFmNTQxNjc1NTNhMjYzZWY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKQEAgLTcxLDIz
ICs3MSwyMCBAQCBjbGFzcyBTaGFwZUluZm8gewogcHVibGljOgogICAgIHZpcnR1YWwgflNoYXBl
SW5mbygpIHsgfQogCi0gICAgdm9pZCBzZXRTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lk
dGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCkKKyAgICB2b2lkIHNldFJlZmVyZW5jZUJveExv
Z2ljYWxTaXplKExheW91dFNpemUgbmV3UmVmZXJlbmNlQm94TG9naWNhbFNpemUpCiAgICAgewot
ICAgICAgICBMYXlvdXRCb3ggYm94ID0gcmVzb2x2ZWRMYXlvdXRCb3goKTsKKyAgICAgICAgTGF5
b3V0Qm94IGJveCA9IHJlZmVyZW5jZUJveCgpOwogICAgICAgICBzd2l0Y2ggKGJveCkgewogICAg
ICAgICBjYXNlIE1hcmdpbkJveDoKLSAgICAgICAgICAgIGxvZ2ljYWxIZWlnaHQgKz0gbV9yZW5k
ZXJlci5tYXJnaW5Mb2dpY2FsSGVpZ2h0KCk7Ci0gICAgICAgICAgICBsb2dpY2FsV2lkdGggKz0g
bV9yZW5kZXJlci5tYXJnaW5Mb2dpY2FsV2lkdGgoKTsKKyAgICAgICAgICAgIG5ld1JlZmVyZW5j
ZUJveExvZ2ljYWxTaXplLmV4cGFuZChtX3JlbmRlcmVyLm1hcmdpbkxvZ2ljYWxXaWR0aCgpLCBt
X3JlbmRlcmVyLm1hcmdpbkxvZ2ljYWxIZWlnaHQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBCb3JkZXJCb3g6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQ
YWRkaW5nQm94OgotICAgICAgICAgICAgbG9naWNhbEhlaWdodCAtPSBtX3JlbmRlcmVyLmJvcmRl
ckxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgICAgIGxvZ2ljYWxXaWR0aCAtPSBtX3JlbmRlcmVy
LmJvcmRlckxvZ2ljYWxXaWR0aCgpOworICAgICAgICAgICAgbmV3UmVmZXJlbmNlQm94TG9naWNh
bFNpemUuc2hyaW5rKG1fcmVuZGVyZXIuYm9yZGVyTG9naWNhbFdpZHRoKCksIG1fcmVuZGVyZXIu
Ym9yZGVyTG9naWNhbEhlaWdodCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IENvbnRlbnRCb3g6Ci0gICAgICAgICAgICBsb2dpY2FsSGVpZ2h0IC09IG1fcmVuZGVyZXIuYm9y
ZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgICAgIGxvZ2ljYWxXaWR0aCAt
PSBtX3JlbmRlcmVyLmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKTsKKyAgICAgICAgICAg
IG5ld1JlZmVyZW5jZUJveExvZ2ljYWxTaXplLnNocmluayhtX3JlbmRlcmVyLmJvcmRlckFuZFBh
ZGRpbmdMb2dpY2FsV2lkdGgoKSwgbV9yZW5kZXJlci5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhl
aWdodCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEZpbGw6CiAgICAgICAg
IGNhc2UgU3Ryb2tlOgpAQCAtOTcsMTEgKzk0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgTGF5b3V0U2l6ZSBuZXdMb2dpY2FsU2l6ZShsb2dp
Y2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQpOwotICAgICAgICBpZiAobV9zaGFwZUxvZ2ljYWxTaXpl
ID09IG5ld0xvZ2ljYWxTaXplKQorICAgICAgICBpZiAobV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6
ZSA9PSBuZXdSZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgZGlydHlTaGFwZVNpemUoKTsKLSAgICAgICAgbV9zaGFwZUxvZ2ljYWxTaXplID0gbmV3
TG9naWNhbFNpemU7CisgICAgICAgIG1hcmtTaGFwZUFzRGlydHkoKTsKKyAgICAgICAgbV9yZWZl
cmVuY2VCb3hMb2dpY2FsU2l6ZSA9IG5ld1JlZmVyZW5jZUJveExvZ2ljYWxTaXplOwogICAgIH0K
IAogICAgIFNlZ21lbnRMaXN0IGNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5l
VG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpIGNvbnN0OwpAQCAtMTEzLDE4ICsxMDksMTggQEAg
cHVibGljOgogICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVy
biBjb21wdXRlZFNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkud2lkdGgoKTsgfQogICAgIExheW91
dFVuaXQgc2hhcGVMb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gY29tcHV0ZWRTaGFwZUxv
Z2ljYWxCb3VuZGluZ0JveCgpLmhlaWdodCgpOyB9CiAKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxM
aW5lVG9wKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZUxpbmVUb3AgKyBsb2dpY2FsVG9wT2Zmc2V0
KCk7IH0KLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxMaW5lQm90dG9tKCkgY29uc3QgeyByZXR1cm4g
bV9zaGFwZUxpbmVUb3AgKyBtX2xpbmVIZWlnaHQgKyBsb2dpY2FsVG9wT2Zmc2V0KCk7IH0KLSAg
ICBMYXlvdXRVbml0IGxvZ2ljYWxMaW5lQm90dG9tKExheW91dFVuaXQgbGluZUhlaWdodCkgY29u
c3QgeyByZXR1cm4gbV9zaGFwZUxpbmVUb3AgKyBsaW5lSGVpZ2h0ICsgbG9naWNhbFRvcE9mZnNl
dCgpOyB9CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGluZVRvcCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVmZXJlbmNlQm94TGluZVRvcCArIGxvZ2ljYWxUb3BPZmZzZXQoKTsgfQorICAgIExheW91dFVu
aXQgbG9naWNhbExpbmVCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3JlZmVyZW5jZUJveExpbmVU
b3AgKyBtX2xpbmVIZWlnaHQgKyBsb2dpY2FsVG9wT2Zmc2V0KCk7IH0KKyAgICBMYXlvdXRVbml0
IGxvZ2ljYWxMaW5lQm90dG9tKExheW91dFVuaXQgbGluZUhlaWdodCkgY29uc3QgeyByZXR1cm4g
bV9yZWZlcmVuY2VCb3hMaW5lVG9wICsgbGluZUhlaWdodCArIGxvZ2ljYWxUb3BPZmZzZXQoKTsg
fQogCi0gICAgTGF5b3V0VW5pdCBzaGFwZUNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQoKSBj
b25zdCB7IHJldHVybiAobV9yZW5kZXJlci5zdHlsZSgpLmJveFNpemluZygpID09IENPTlRFTlRf
Qk9YKSA/IChtX3NoYXBlTG9naWNhbFNpemUuaGVpZ2h0KCkgKyBtX3JlbmRlcmVyLmJvcmRlckFu
ZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkpIDogbV9zaGFwZUxvZ2ljYWxTaXplLmhlaWdodCgpOyB9
CisgICAgTGF5b3V0VW5pdCBzaGFwZUNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQoKSBjb25z
dCB7IHJldHVybiAobV9yZW5kZXJlci5zdHlsZSgpLmJveFNpemluZygpID09IENPTlRFTlRfQk9Y
KSA/IChtX3JlZmVyZW5jZUJveExvZ2ljYWxTaXplLmhlaWdodCgpICsgbV9yZW5kZXJlci5ib3Jk
ZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpKSA6IG1fcmVmZXJlbmNlQm94TG9naWNhbFNpemUu
aGVpZ2h0KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygp
IGNvbnN0ID0gMDsKIAotICAgIHZvaWQgZGlydHlTaGFwZVNpemUoKSB7IG1fc2hhcGUuY2xlYXIo
KTsgfQotICAgIGJvb2wgc2hhcGVTaXplRGlydHkoKSB7IHJldHVybiAhbV9zaGFwZS5nZXQoKTsg
fQorICAgIHZvaWQgbWFya1NoYXBlQXNEaXJ0eSgpIHsgbV9zaGFwZS5jbGVhcigpOyB9CisgICAg
Ym9vbCBpc1NoYXBlRGlydHkoKSB7IHJldHVybiAhbV9zaGFwZS5nZXQoKTsgfQogICAgIGNvbnN0
IFJlbmRlclR5cGUmIG93bmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJlcjsgfQotICAgIExh
eW91dFNpemUgc2hhcGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZUxvZ2ljYWxTaXplOyB9
CisgICAgTGF5b3V0U2l6ZSByZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVmZXJlbmNlQm94TG9naWNhbFNpemU7IH0KIAogICAgIExheW91dFJlY3QgY29tcHV0ZWRT
aGFwZVBoeXNpY2FsQm91bmRpbmdCb3goKSBjb25zdAogICAgIHsKQEAgLTE2Myw3ICsxNTksNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgTGF5b3V0Qm94IHJlc29s
dmVkTGF5b3V0Qm94KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgTGF5b3V0Qm94IHJlZmVyZW5j
ZUJveCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY29tcHV0ZWRTaGFwZUxv
Z2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFNoYXBlVmFsdWUqIHNo
YXBlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEludGVydmFscyhMYXlv
dXRVbml0LCBMYXlvdXRVbml0LCBTZWdtZW50TGlzdCYpIGNvbnN0ID0gMDsKQEAgLTE3Miw3ICsx
NjgsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BPZmZzZXQoKSBj
b25zdAogICAgIHsKLSAgICAgICAgTGF5b3V0Qm94IGJveCA9IHJlc29sdmVkTGF5b3V0Qm94KCk7
CisgICAgICAgIExheW91dEJveCBib3ggPSByZWZlcmVuY2VCb3goKTsKICAgICAgICAgc3dpdGNo
IChib3gpIHsKICAgICAgICAgY2FzZSBNYXJnaW5Cb3g6IHJldHVybiAtbV9yZW5kZXJlci5tYXJn
aW5CZWZvcmUoKTsKICAgICAgICAgY2FzZSBCb3JkZXJCb3g6IHJldHVybiBMYXlvdXRVbml0KCk7
CkBAIC0xOTEsNyArMTg3LDcgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICAgICAgaWYgKG1fcmVu
ZGVyZXIuaXNSZW5kZXJSZWdpb24oKSkKICAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0KCk7
Ci0gICAgICAgIExheW91dEJveCBib3ggPSByZXNvbHZlZExheW91dEJveCgpOworICAgICAgICBM
YXlvdXRCb3ggYm94ID0gcmVmZXJlbmNlQm94KCk7CiAgICAgICAgIHN3aXRjaCAoYm94KSB7CiAg
ICAgICAgIGNhc2UgTWFyZ2luQm94OiByZXR1cm4gLW1fcmVuZGVyZXIubWFyZ2luU3RhcnQoKTsK
ICAgICAgICAgY2FzZSBCb3JkZXJCb3g6IHJldHVybiBMYXlvdXRVbml0KCk7CkBAIC0yMDYsMTQg
KzIwMiwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBMYXlvdXRVbml0KCk7CiAgICAg
fQogCi0gICAgTGF5b3V0VW5pdCBtX3NoYXBlTGluZVRvcDsKKyAgICBMYXlvdXRVbml0IG1fcmVm
ZXJlbmNlQm94TGluZVRvcDsKICAgICBMYXlvdXRVbml0IG1fbGluZUhlaWdodDsKIAogICAgIGNv
bnN0IFJlbmRlclR5cGUmIG1fcmVuZGVyZXI7CiAKIHByaXZhdGU6CiAgICAgbXV0YWJsZSBPd25Q
dHI8U2hhcGU+IG1fc2hhcGU7Ci0gICAgTGF5b3V0U2l6ZSBtX3NoYXBlTG9naWNhbFNpemU7Cisg
ICAgTGF5b3V0U2l6ZSBtX3JlZmVyZW5jZUJveExvZ2ljYWxTaXplOwogfTsKIAogYm9vbCBjaGVj
a1NoYXBlSW1hZ2VPcmlnaW4oRG9jdW1lbnQmLCBDYWNoZWRJbWFnZSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwCmluZGV4IDI4
MWE5NTJjYTU0MzlkNTA4ZDEzYjQ5NmI3YTkxMDIwOWVmYjdjMTQuLjQ2MTIxZmEyOTY4ODIzODcx
ZDFkOGQxZDA5NWUxYTA2ZDY5MzllNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBT
aGFwZUluc2lkZUluZm86OnVwZGF0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRTaXplIGxpbmVPZmZz
ZXQsIExheW91dFVuaXQgbGkKIGJvb2wgU2hhcGVJbnNpZGVJbmZvOjp1cGRhdGVTZWdtZW50c0Zv
ckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpCiB7CiAgICAg
QVNTRVJUKGxpbmVIZWlnaHQgPj0gMCk7Ci0gICAgbV9zaGFwZUxpbmVUb3AgPSBsaW5lVG9wIC0g
bG9naWNhbFRvcE9mZnNldCgpOworICAgIG1fcmVmZXJlbmNlQm94TGluZVRvcCA9IGxpbmVUb3Ag
LSBsb2dpY2FsVG9wT2Zmc2V0KCk7CiAgICAgbV9saW5lSGVpZ2h0ID0gbGluZUhlaWdodDsKICAg
ICBtX3NlZ21lbnRzLmNsZWFyKCk7CiAgICAgbV9zZWdtZW50UmFuZ2VzLmNsZWFyKCk7CkBAIC05
Niw5ICs5Niw5IEBAIGJvb2wgU2hhcGVJbnNpZGVJbmZvOjphZGp1c3RMb2dpY2FsTGluZVRvcChm
bG9hdCBtaW5TZWdtZW50V2lkdGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIExheW91
dFVuaXQgbmV3TGluZVRvcDsKLSAgICBpZiAoc2hhcGUuZmlyc3RJbmNsdWRlZEludGVydmFsTG9n
aWNhbFRvcChtX3NoYXBlTGluZVRvcCwgRmxvYXRTaXplKG1pblNlZ21lbnRXaWR0aCwgbV9saW5l
SGVpZ2h0KSwgbmV3TGluZVRvcCkpIHsKLSAgICAgICAgaWYgKG5ld0xpbmVUb3AgPiBtX3NoYXBl
TGluZVRvcCkgewotICAgICAgICAgICAgbV9zaGFwZUxpbmVUb3AgPSBuZXdMaW5lVG9wOworICAg
IGlmIChzaGFwZS5maXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKG1fcmVmZXJlbmNlQm94
TGluZVRvcCwgRmxvYXRTaXplKG1pblNlZ21lbnRXaWR0aCwgbV9saW5lSGVpZ2h0KSwgbmV3TGlu
ZVRvcCkpIHsKKyAgICAgICAgaWYgKG5ld0xpbmVUb3AgPiBtX3JlZmVyZW5jZUJveExpbmVUb3Ap
IHsKKyAgICAgICAgICAgIG1fcmVmZXJlbmNlQm94TGluZVRvcCA9IG5ld0xpbmVUb3A7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTExNyw3ICsxMTcsNyBA
QCBMYXlvdXRVbml0IFNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZUZpcnN0Rml0UG9zaXRpb25Gb3JG
bG9hdChjb25zdCBGbG9hdFNpemUgZmxvYQogICAgICAgICByZXR1cm4gMDsKIAogICAgIExheW91
dFVuaXQgZmlyc3RGaXRQb3NpdGlvbiA9IDA7Ci0gICAgaWYgKGNvbXB1dGVkU2hhcGUoKS5maXJz
dEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKG1fc2hhcGVMaW5lVG9wLCBmbG9hdFNpemUsIGZp
cnN0Rml0UG9zaXRpb24pICYmIChtX3NoYXBlTGluZVRvcCA8PSBmaXJzdEZpdFBvc2l0aW9uKSkK
KyAgICBpZiAoY29tcHV0ZWRTaGFwZSgpLmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3Ao
bV9yZWZlcmVuY2VCb3hMaW5lVG9wLCBmbG9hdFNpemUsIGZpcnN0Rml0UG9zaXRpb24pICYmICht
X3JlZmVyZW5jZUJveExpbmVUb3AgPD0gZmlyc3RGaXRQb3NpdGlvbikpCiAgICAgICAgIHJldHVy
biBmaXJzdEZpdFBvc2l0aW9uOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaAppbmRleCBkZDk0N2RiNGRmNzQ1
MGZjN2U5M2I5ODI0NzhhZWYzZDIyOWJmZmQ3Li5lNGI1MGY3OTFiNzBhN2I5ZWM0NTcyNDA4MGYz
MTVkMTA1ZjhhZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlSW5zaWRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
U2hhcGVJbnNpZGVJbmZvLmgKQEAgLTEwMywxMSArMTAzLDExIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpIGNvbnN0IG92ZXJyaWRlCiAgICAg
ewotICAgICAgICByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLmxpbmVPdmVybGFwc1NoYXBlUGFkZGlu
Z0JvdW5kcyhtX3NoYXBlTGluZVRvcCwgbV9saW5lSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIGNv
bXB1dGVkU2hhcGUoKS5saW5lT3ZlcmxhcHNTaGFwZVBhZGRpbmdCb3VuZHMobV9yZWZlcmVuY2VC
b3hMaW5lVG9wLCBtX2xpbmVIZWlnaHQpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1
YWwgTGF5b3V0Qm94IHJlc29sdmVkTGF5b3V0Qm94KCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB2aXJ0
dWFsIExheW91dEJveCByZWZlcmVuY2VCb3goKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgaWYgKHNoYXBlVmFsdWUoKS0+bGF5b3V0Qm94KCkgPT0gQm94TWlzc2luZykKICAgICAgICAg
ICAgIHJldHVybiBDb250ZW50Qm94OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKaW5kZXggZGNmYTJiZjMzMjdhYWY2MjQzMWZm
MWM2ODM1Nzc3ZjE3MGQyZjNkYy4uMWUzYzc2YmM2YTFmNGQ4YzgyYjA5MTJhMjczMWFlNzc3ZTQy
ZjFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91
dHNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBl
T3V0c2lkZUluZm8uY3BwCkBAIC02MSwxOCArNjEsMTggQEAgYm9vbCBTaGFwZU91dHNpZGVJbmZv
Ojppc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQm94JiBib3gpCiAKIHZvaWQgU2hhcGVPdXRzaWRl
SW5mbzo6dXBkYXRlRGVsdGFzRm9yQ29udGFpbmluZ0Jsb2NrTGluZShjb25zdCBSZW5kZXJCbG9j
a0Zsb3cmIGNvbnRhaW5pbmdCbG9jaywgY29uc3QgRmxvYXRpbmdPYmplY3QmIGZsb2F0aW5nT2Jq
ZWN0LCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkKIHsKLSAgICBM
YXlvdXRVbml0IHNoYXBlVG9wID0gY29udGFpbmluZ0Jsb2NrLmxvZ2ljYWxUb3BGb3JGbG9hdCgm
ZmxvYXRpbmdPYmplY3QpICsgc3RkOjptYXgoTGF5b3V0VW5pdCgpLCBjb250YWluaW5nQmxvY2su
bWFyZ2luQmVmb3JlRm9yQ2hpbGQobV9yZW5kZXJlcikpOwotICAgIExheW91dFVuaXQgZmxvYXRS
ZWxhdGl2ZUxpbmVUb3AgPSBsaW5lVG9wIC0gc2hhcGVUb3A7CisgICAgTGF5b3V0VW5pdCBib3Jk
ZXJCb3hUb3AgPSBjb250YWluaW5nQmxvY2subG9naWNhbFRvcEZvckZsb2F0KCZmbG9hdGluZ09i
amVjdCkgKyBzdGQ6Om1heChMYXlvdXRVbml0KCksIGNvbnRhaW5pbmdCbG9jay5tYXJnaW5CZWZv
cmVGb3JDaGlsZChtX3JlbmRlcmVyKSk7CisgICAgTGF5b3V0VW5pdCBib3JkZXJCb3hMaW5lVG9w
ID0gbGluZVRvcCAtIGJvcmRlckJveFRvcDsKIAotICAgIGlmIChzaGFwZVNpemVEaXJ0eSgpIHx8
IG1fbGluZVRvcCAhPSBmbG9hdFJlbGF0aXZlTGluZVRvcCB8fCBtX2xpbmVIZWlnaHQgIT0gbGlu
ZUhlaWdodCkgewotICAgICAgICBtX2xpbmVUb3AgPSBmbG9hdFJlbGF0aXZlTGluZVRvcDsKLSAg
ICAgICAgbV9zaGFwZUxpbmVUb3AgPSBmbG9hdFJlbGF0aXZlTGluZVRvcCAtIGxvZ2ljYWxUb3BP
ZmZzZXQoKTsKKyAgICBpZiAoaXNTaGFwZURpcnR5KCkgfHwgbV9ib3JkZXJCb3hMaW5lVG9wICE9
IGJvcmRlckJveExpbmVUb3AgfHwgbV9saW5lSGVpZ2h0ICE9IGxpbmVIZWlnaHQpIHsKKyAgICAg
ICAgbV9ib3JkZXJCb3hMaW5lVG9wID0gYm9yZGVyQm94TGluZVRvcDsKKyAgICAgICAgbV9yZWZl
cmVuY2VCb3hMaW5lVG9wID0gYm9yZGVyQm94TGluZVRvcCAtIGxvZ2ljYWxUb3BPZmZzZXQoKTsK
ICAgICAgICAgbV9saW5lSGVpZ2h0ID0gbGluZUhlaWdodDsKIAogICAgICAgICBMYXlvdXRVbml0
IGZsb2F0TWFyZ2luQm94V2lkdGggPSBjb250YWluaW5nQmxvY2subG9naWNhbFdpZHRoRm9yRmxv
YXQoJmZsb2F0aW5nT2JqZWN0KTsKIAogICAgICAgICBpZiAobGluZU92ZXJsYXBzU2hhcGVCb3Vu
ZHMoKSkgewotICAgICAgICAgICAgU2VnbWVudExpc3Qgc2VnbWVudHMgPSBjb21wdXRlU2VnbWVu
dHNGb3JMaW5lKGZsb2F0UmVsYXRpdmVMaW5lVG9wLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAg
IFNlZ21lbnRMaXN0IHNlZ21lbnRzID0gY29tcHV0ZVNlZ21lbnRzRm9yTGluZShib3JkZXJCb3hM
aW5lVG9wLCBsaW5lSGVpZ2h0KTsKICAgICAgICAgICAgIGlmIChzZWdtZW50cy5zaXplKCkpIHsK
ICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IHJhd0xlZnRNYXJnaW5Cb3hEZWx0YSA9IHNlZ21l
bnRzLmZpcnN0KCkubG9naWNhbExlZnQgKyBjb250YWluaW5nQmxvY2subWFyZ2luU3RhcnRGb3JD
aGlsZChtX3JlbmRlcmVyKTsKICAgICAgICAgICAgICAgICBtX2xlZnRNYXJnaW5Cb3hEZWx0YSA9
IGNsYW1wVG88TGF5b3V0VW5pdD4ocmF3TGVmdE1hcmdpbkJveERlbHRhLCBMYXlvdXRVbml0KCks
IGZsb2F0TWFyZ2luQm94V2lkdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaAppbmRleCA5YmRmMWEyODBjZWU3OGU2ZjVmZWI5NWI4
MzcwMmRiNzk2YTk1ZjJmLi5hZGFhYzFlNWZiZmE3OWI2Y2FkNDM3YTY5ZGE1NmY3NTk3OTlkNjQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lk
ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lk
ZUluZm8uaApAQCAtNTksMTEgKzU5LDExIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBs
aW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICBy
ZXR1cm4gY29tcHV0ZWRTaGFwZSgpLmxpbmVPdmVybGFwc1NoYXBlTWFyZ2luQm91bmRzKG1fc2hh
cGVMaW5lVG9wLCBtX2xpbmVIZWlnaHQpOworICAgICAgICByZXR1cm4gY29tcHV0ZWRTaGFwZSgp
LmxpbmVPdmVybGFwc1NoYXBlTWFyZ2luQm91bmRzKG1fcmVmZXJlbmNlQm94TGluZVRvcCwgbV9s
aW5lSGVpZ2h0KTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIExheW91dEJveCBy
ZXNvbHZlZExheW91dEJveCgpIGNvbnN0IG92ZXJyaWRlCisgICAgdmlydHVhbCBMYXlvdXRCb3gg
cmVmZXJlbmNlQm94KCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChzaGFwZVZh
bHVlKCktPmxheW91dEJveCgpID09IEJveE1pc3NpbmcpIHsKICAgICAgICAgICAgIGlmIChzaGFw
ZVZhbHVlKCktPnR5cGUoKSA9PSBTaGFwZVZhbHVlOjpJbWFnZSkKQEAgLTg1LDcgKzg1LDcgQEAg
cHJpdmF0ZToKIAogICAgIExheW91dFVuaXQgbV9sZWZ0TWFyZ2luQm94RGVsdGE7CiAgICAgTGF5
b3V0VW5pdCBtX3JpZ2h0TWFyZ2luQm94RGVsdGE7Ci0gICAgTGF5b3V0VW5pdCBtX2xpbmVUb3A7
CisgICAgTGF5b3V0VW5pdCBtX2JvcmRlckJveExpbmVUb3A7CiAgICAgYm9vbCBtX2xpbmVPdmVy
bGFwc1NoYXBlOwogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>