<?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>106132</bug_id>
          
          <creation_ts>2013-01-04 14:05:56 -0800</creation_ts>
          <short_desc>Remove RenderObjectChildList::beforePseudoElementRenderer and afterPseudoElementRenderer</short_desc>
          <delta_ts>2013-01-05 15:08:30 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Elliott Sprehn">esprehn</reporter>
          <assigned_to name="Elliott Sprehn">esprehn</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>inferno</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>800604</commentid>
    <comment_count>0</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-01-04 14:05:56 -0800</bug_when>
    <thetext>Remove RenderObjectChildList::beforePseudoElementRenderer and afterPseudoElementRenderer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800607</commentid>
    <comment_count>1</comment_count>
      <attachid>181374</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-01-04 14:19:35 -0800</bug_when>
    <thetext>Created attachment 181374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800615</commentid>
    <comment_count>2</comment_count>
      <attachid>181374</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-04 14:31:47 -0800</bug_when>
    <thetext>Comment on attachment 181374
Patch

Attachment 181374 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15697303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800616</commentid>
    <comment_count>3</comment_count>
      <attachid>181374</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-01-04 14:32:17 -0800</bug_when>
    <thetext>Comment on attachment 181374
Patch

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

&gt; Source/WebCore/rendering/RenderCounter.cpp:87
&gt; +                if (RenderObject* before = toElement(renderer-&gt;node())-&gt;pseudoElementRenderer(BEFORE))

What ensures that this cast to toElement is safe ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800617</commentid>
    <comment_count>4</comment_count>
      <attachid>181374</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-04 14:34:01 -0800</bug_when>
    <thetext>Comment on attachment 181374
Patch

Attachment 181374 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15686298</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800620</commentid>
    <comment_count>5</comment_count>
      <attachid>181374</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-01-04 14:38:11 -0800</bug_when>
    <thetext>Comment on attachment 181374
Patch

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

&gt; Source/WebCore/rendering/RenderCounter.cpp:172
&gt;              return result;

minor issue s/result/before.

Also, there is lot of different names used in the code like result, renderer, before, etc. I would prefer a consistent naming like beforePseudoElementRenderer and afterPseudoElementRenderer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800622</commentid>
    <comment_count>6</comment_count>
      <attachid>181376</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-01-04 14:40:16 -0800</bug_when>
    <thetext>Created attachment 181376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800625</commentid>
    <comment_count>7</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-01-04 14:42:03 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 181374 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181374&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderCounter.cpp:87
&gt; &gt; +                if (RenderObject* before = toElement(renderer-&gt;node())-&gt;pseudoElementRenderer(BEFORE))
&gt; 
&gt; What ensures that this cast to toElement is safe ?

If you look at the rest of that function you can see that renderer is the result of sibling-&gt;renderer() and sibling is an Element. The way that function is written is bad because it overwrites sibling right before this check so we need to do renderer-&gt;node() to get a reference to the original sibling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800988</commentid>
    <comment_count>8</comment_count>
      <attachid>181444</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-01-05 13:43:55 -0800</bug_when>
    <thetext>Created attachment 181444
Patch

Made variable name usage consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800996</commentid>
    <comment_count>9</comment_count>
      <attachid>181444</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-05 15:08:25 -0800</bug_when>
    <thetext>Comment on attachment 181444
Patch

Clearing flags on attachment: 181444

Committed r138909: &lt;http://trac.webkit.org/changeset/138909&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800997</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-05 15:08:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181374</attachid>
            <date>2013-01-04 14:19:35 -0800</date>
            <delta_ts>2013-01-04 14:40:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106132-20130104141642.patch</filename>
            <type>text/plain</type>
            <size>14787</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYyMjlmZTJjYjRkNzVh
ZTk2M2VlMDA3Y2VjNzYzNWI0ZDZkOThhOC4uYjM0ODg5NThjYTUxYTFmMDQzOTdiMjVkOWM5NDQ4
Y2YxNDVkZGQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAxLTA0ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBSZW5k
ZXJPYmplY3RDaGlsZExpc3Q6OmJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlciBhbmQgYWZ0ZXJQ
c2V1ZG9FbGVtZW50UmVuZGVyZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlIG5vIGxvbmdlciBuZWVkIHRoZSBjb21wbGljYXRlZCB0cmF2ZXJzYWxz
IGluIGJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlcgorICAgICAgICBhbmQgYWZ0ZXJQc2V1ZG9F
bGVtZW50UmVuZGVyZXIgc2luY2Ugd2UgY2FuIGdldCB0aGUgcmVuZGVyZXJzIG9mIHBzZXVkbwor
ICAgICAgICBlbGVtZW50cyB0aHJvdWdoIHRoZSBub2RlLiBUaGlzIHJlbW92ZXMgYWxsIHRoYXQg
Y29kZSBhbmQgc3dhcHMgaXQgZm9yCisgICAgICAgIEVsZW1lbnQ6OnBzZXVkb0VsZW1lbnRSZW5k
ZXJlci4KKworICAgICAgICBUaGlzIGlzIHBvc3NpYmxlIG5vdyB0aGF0IHIxMzg4NTAgcmVtb3Zl
ZCBhbGwgdGhlIG5vdyBpbmNvcnJlY3QgbWFudWFsCisgICAgICAgIG1hbmFnZW1lbnQgb2YgcHNl
dWRvIGVsZW1lbnQgcmVuZGVyZXJzIGZyb20gdGhlIHJlbmRlciB0cmVlIHRoYXQgd2FzCisgICAg
ICAgIGxlZnQgb3ZlciBmcm9tIGJlZm9yZSB0aGUgc3dpdGNoIHRvIERPTSBiYXNlZCBwc2V1ZG8g
ZWxlbWVudHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IHJlZmFjdG9yaW5nLgorCisg
ICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUp
OgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnBzZXVkb0VsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICAgICBBZGRlZCwgZ2V0cyB0aGUgcmVu
ZGVyZXIgb2YgdGhlIHBzZXVkbyBlbGVtZW50IGJ5IFBzZXVkb0lkIGlmIGl0CisgICAgICAgICAg
ICBleGlzdHMuCisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKEVsZW1lbnQpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6Om5leHRTaWJsaW5nU2xvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmdTbG93KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cmV2aW91c0luUHJlT3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNTaWJsaW5nT3JQ
YXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6bmV4dEluUHJlT3JkZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
bGFzdENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0Lmg6CisgICAgICAg
IChSZW5kZXJPYmplY3RDaGlsZExpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnQpOgor
CiAyMDEzLTAxLTA0ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAg
W21hY10gV2ViS2l0MSBoYXMgbm8gZXF1aXZhbGVudCBvZiBXS0J1bmRsZU5vZGVIYW5kbGVDb3B5
SFRNTFRhYmxlQ2VsbEVsZW1lbnRDZWxsQWJvdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMTZkZGNkOWVhNTJlOWI0MWJl
YzEwMDAyNTgwNzM0YTAxYjlhNjE2Yi4uMTQzZTk1MTdhY2Q3ZDQxMDgzY2Q5ODhlZTZkNjI1ZTgz
ZDdkYTU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKQEAgLTE1MTUsMTIgKzE1MTUsOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJv
cGVydAogICAgIGlmICghc3R5bGUpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKHJlbmRl
cmVyKSB7Ci0gICAgICAgIGlmIChtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIgPT0gQUZURVIpCi0g
ICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5hZnRlclBzZXVkb0VsZW1lbnRSZW5kZXJl
cigpOwotICAgICAgICBlbHNlIGlmIChtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIgPT0gQkVGT1JF
KQotICAgICAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+YmVmb3JlUHNldWRvRWxlbWVudFJl
bmRlcmVyKCk7Ci0gICAgfQorICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgKG1fcHNl
dWRvRWxlbWVudFNwZWNpZmllciA9PSBCRUZPUkUgfHwgbV9wc2V1ZG9FbGVtZW50U3BlY2lmaWVy
ID09IEFGVEVSKSkKKyAgICAgICAgcmVuZGVyZXIgPSB0b0VsZW1lbnQobm9kZSktPnBzZXVkb0Vs
ZW1lbnRSZW5kZXJlcihtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIpOwogCiAgICAgcHJvcGVydHlJ
RCA9IENTU1Byb3BlcnR5OjpyZXNvbHZlRGlyZWN0aW9uQXdhcmVQcm9wZXJ0eShwcm9wZXJ0eUlE
LCBzdHlsZS0+ZGlyZWN0aW9uKCksIHN0eWxlLT53cml0aW5nTW9kZSgpKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IDAyYTlhNzRlN2QwMDVkNzRlZGU2ZjBjYjlmNTkwYTFhNTI3NzkzN2Uu
LjI0NWQwMjliYTBkOTE5NjI4M2I2OGMzYzE5OTM2M2IzNmIyYmY2ZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTIxNzEsNiArMjE3MSwxMiBAQCB2b2lkIEVsZW1lbnQ6OnNldFBzZXVkb0Vs
ZW1lbnQoUHNldWRvSWQgcHNldWRvSWQsIFBhc3NSZWZQdHI8UHNldWRvRWxlbWVudD4gZWxlbQog
ICAgIHJlc2V0TmVlZHNTaGFkb3dUcmVlV2Fsa2VyKCk7CiB9CiAKK1JlbmRlck9iamVjdCogRWxl
bWVudDo6cHNldWRvRWxlbWVudFJlbmRlcmVyKFBzZXVkb0lkIHBzZXVkb0lkKSBjb25zdAorewor
ICAgIGlmIChQc2V1ZG9FbGVtZW50KiBlbGVtZW50ID0gcHNldWRvRWxlbWVudChwc2V1ZG9JZCkp
CisgICAgICAgIHJldHVybiBlbGVtZW50LT5yZW5kZXJlcigpOworICAgIHJldHVybiAwOworfQog
CiAvLyBFbGVtZW50VHJhdmVyc2FsIEFQSQogRWxlbWVudCogRWxlbWVudDo6Zmlyc3RFbGVtZW50
Q2hpbGQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggN2ZiOTZjNTg1Yjg3NmQ4ZjNjZDY1
OWRiN2QzZDRjMzI0ZjkyM2MzOS4uMTVhMjdmYjFjMjljZTExZDk1NGNhYWU2MGVhZmU1YTc3M2Nm
MzNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zNjgsOCArMzY4LDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBoYXNQc2V1ZG9FbGVtZW50cygpIGNvbnN0OwogICAgIFBzZXVkb0VsZW1lbnQqIHBz
ZXVkb0VsZW1lbnQoUHNldWRvSWQpIGNvbnN0OwotICAgIFBzZXVkb0VsZW1lbnQqIGJlZm9yZVBz
ZXVkb0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiBwc2V1ZG9FbGVtZW50KEJFRk9SRSk7IH0KLSAg
ICBQc2V1ZG9FbGVtZW50KiBhZnRlclBzZXVkb0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiBwc2V1
ZG9FbGVtZW50KEFGVEVSKTsgfQorICAgIFJlbmRlck9iamVjdCogcHNldWRvRWxlbWVudFJlbmRl
cmVyKFBzZXVkb0lkKSBjb25zdDsKICAgICBib29sIGNoaWxkTmVlZHNTaGFkb3dXYWxrZXIoKSBj
b25zdDsKICAgICB2b2lkIGRpZFNoYWRvd1RyZWVBd2FyZUNoaWxkcmVuQ2hhbmdlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmNwcAppbmRleCBhYzlh
ZmFjMTY5NjIyNTY5MWJmYTc3NTkwNmMwMGQwYzNjODA5NjhlLi45NTZhMGJhYzJkNjhjZWY2NDJj
ZGQ5YWM4OWY2NzkxYjVkZmY5ZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ1RyYXZlcnNhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5k
ZXJpbmdUcmF2ZXJzYWwuY3BwCkBAIC02OCw3ICs2OCw3IEBAIE5vZGUqIG5leHRTaWJsaW5nU2xv
dyhjb25zdCBOb2RlKiBub2RlKQogCiAgICAgTm9kZSogcGFyZW50ID0gd2Fsa2VyLnRyYXZlcnNl
UGFyZW50KG5vZGUpOwogICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5pc0VsZW1lbnROb2RlKCkp
Ci0gICAgICAgIHJldHVybiB0b0VsZW1lbnQocGFyZW50KS0+YWZ0ZXJQc2V1ZG9FbGVtZW50KCk7
CisgICAgICAgIHJldHVybiB0b0VsZW1lbnQocGFyZW50KS0+cHNldWRvRWxlbWVudChBRlRFUik7
CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTg3LDcgKzg3LDcgQEAgTm9kZSogcHJldmlvdXNTaWJs
aW5nU2xvdyhjb25zdCBOb2RlKiBub2RlKQogCiAgICAgTm9kZSogcGFyZW50ID0gd2Fsa2VyLnRy
YXZlcnNlUGFyZW50KG5vZGUpOwogICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5pc0VsZW1lbnRO
b2RlKCkpCi0gICAgICAgIHJldHVybiB0b0VsZW1lbnQocGFyZW50KS0+YmVmb3JlUHNldWRvRWxl
bWVudCgpOworICAgICAgICByZXR1cm4gdG9FbGVtZW50KHBhcmVudCktPnBzZXVkb0VsZW1lbnQo
QkVGT1JFKTsKIAogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckNvdW50ZXIuY3BwCmluZGV4IGFmZmM1OGRkMGUzOWExMDE5MTlkZjJiMzI4YWRkMGEyZDNi
ZTUxYzMuLjE0Mjg3Y2QxZWY1ZjI3YmQ1ZjBhMTkwNjcwZTczYzRlOTcxNTMzMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKQEAgLTUzLDE0ICs1Myw2IEBA
IHN0YXRpYyBDb3VudGVyTWFwcyYgY291bnRlck1hcHMoKQogICAgIHJldHVybiBzdGF0aWNDb3Vu
dGVyTWFwczsKIH0KIAotc3RhdGljIFJlbmRlck9iamVjdCogcmVuZGVyZXJPZkFmdGVyUHNldWRv
RWxlbWVudChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQotewotICAgIFJlbmRlck9iamVjdCogbGFz
dENvbnRpbnVhdGlvbiA9IHJlbmRlcmVyOwotICAgIHdoaWxlIChSZW5kZXJPYmplY3QqIGNvbnRp
bnVhdGlvbiA9IGxhc3RDb250aW51YXRpb24tPnZpcnR1YWxDb250aW51YXRpb24oKSkKLSAgICAg
ICAgbGFzdENvbnRpbnVhdGlvbiA9IGNvbnRpbnVhdGlvbjsKLSAgICByZXR1cm4gbGFzdENvbnRp
bnVhdGlvbi0+YWZ0ZXJQc2V1ZG9FbGVtZW50UmVuZGVyZXIoKTsKLX0KLQogLy8gVGhpcyBmdW5j
dGlvbiBwcm9jZXNzZXMgdGhlIHJlbmRlcmVyIHRyZWUgaW4gdGhlIG9yZGVyIG9mIHRoZSBET00g
dHJlZQogLy8gaW5jbHVkaW5nIHBzZXVkbyBlbGVtZW50cyBhcyBkZWZpbmVkIGluIENTUyAyLjEu
CiAvLyBBbm9ueW1vdXMgcmVuZGVyZXJzIGFyZSBza2lwcGVkIGV4Y2VwdCBmb3IgdGhvc2UgcmVw
cmVzZW50aW5nIHBzZXVkbyBlbGVtZW50cy4KQEAgLTg3LDEyICs3OSwxMiBAQCBzdGF0aWMgUmVu
ZGVyT2JqZWN0KiBwcmV2aW91c0luUHJlT3JkZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3Qp
CiAgICAgfQogICAgIHdoaWxlIChzaWJsaW5nKSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyID0gc2libGluZy0+cmVuZGVyZXIoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRl
ck9iamVjdCogYWZ0ZXIgPSByZW5kZXJlck9mQWZ0ZXJQc2V1ZG9FbGVtZW50KHJlbmRlcmVyKSkK
KyAgICAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGFmdGVyID0gc2libGluZy0+cHNldWRvRWxl
bWVudFJlbmRlcmVyKEFGVEVSKSkKICAgICAgICAgICAgICAgICByZXR1cm4gYWZ0ZXI7CiAgICAg
ICAgICAgICBwYXJlbnQgPSBzaWJsaW5nOwogICAgICAgICAgICAgc2libGluZyA9IHNpYmxpbmct
Pmxhc3RFbGVtZW50Q2hpbGQoKTsKICAgICAgICAgICAgIGlmICghc2libGluZykgewotICAgICAg
ICAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGJlZm9yZSA9IHJlbmRlcmVyLT5iZWZvcmVQc2V1
ZG9FbGVtZW50UmVuZGVyZXIoKSkKKyAgICAgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBi
ZWZvcmUgPSB0b0VsZW1lbnQocmVuZGVyZXItPm5vZGUoKSktPnBzZXVkb0VsZW1lbnRSZW5kZXJl
cihCRUZPUkUpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmVmb3JlOwogICAgICAgICAg
ICAgICAgIHJldHVybiByZW5kZXJlcjsKICAgICAgICAgICAgIH0KQEAgLTEwMSwxMCArOTMsOSBA
QCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c0luUHJlT3JkZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCiAgICAgfQogICAgIGlmICghcGFyZW50KQogICAgICAgICByZXR1cm4gMDsK
LSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gcGFyZW50LT5yZW5kZXJlcigpOyAvLyBTaG91
bGQgbmV2ZXIgYmUgbnVsbAotICAgIGlmIChSZW5kZXJPYmplY3QqIGJlZm9yZSA9IHJlbmRlcmVy
LT5iZWZvcmVQc2V1ZG9FbGVtZW50UmVuZGVyZXIoKSkKKyAgICBpZiAoUmVuZGVyT2JqZWN0KiBi
ZWZvcmUgPSBwYXJlbnQtPnBzZXVkb0VsZW1lbnRSZW5kZXJlcihCRUZPUkUpKQogICAgICAgICBy
ZXR1cm4gYmVmb3JlOwotICAgIHJldHVybiByZW5kZXJlcjsKKyAgICByZXR1cm4gcGFyZW50LT5y
ZW5kZXJlcigpOwogfQogCiAvLyBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyB0aGUgcmVuZGVyZXIg
dHJlZSBpbiB0aGUgb3JkZXIgb2YgdGhlIERPTSB0cmVlCkBAIC0xMzYsMTMgKzEyNywxMSBAQCBz
dGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1NpYmxpbmdPclBhcmVudChjb25zdCBSZW5kZXJP
YmplY3QqIG9iamVjdCkKICAgICAgICAgICAgIHJldHVybiByZW5kZXJlcjsKICAgICAgICAgc2li
bGluZyA9IHNpYmxpbmctPnByZXZpb3VzRWxlbWVudFNpYmxpbmcoKTsKICAgICB9Ci0gICAgaWYg
KHBhcmVudCkgewotICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gcGFyZW50LT5yZW5k
ZXJlcigpOwotICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBiZWZvcmUgPSByZW5kZXJlci0+dmly
dHVhbENoaWxkcmVuKCktPmJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlcihyZW5kZXJlcikpCi0g
ICAgICAgICAgICByZXR1cm4gYmVmb3JlOwotICAgICAgICByZXR1cm4gcmVuZGVyZXI7Ci0gICAg
fQotICAgIHJldHVybiAwOworICAgIGlmICghcGFyZW50KQorICAgICAgICByZXR1cm4gMDsKKyAg
ICBpZiAoUmVuZGVyT2JqZWN0KiBiZWZvcmUgPSBwYXJlbnQtPnBzZXVkb0VsZW1lbnRSZW5kZXJl
cihCRUZPUkUpKQorICAgICAgICByZXR1cm4gYmVmb3JlOworICAgIHJldHVybiBwYXJlbnQtPnJl
bmRlcmVyKCk7CiB9CiAKIHN0YXRpYyBFbGVtZW50KiBwYXJlbnRFbGVtZW50KFJlbmRlck9iamVj
dCogb2JqZWN0KQpAQCAtMTc5LDggKzE2OCw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRJ
blByZU9yZGVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBFbGVtZW50KiBzCiAg
ICAgc3dpdGNoIChvYmplY3QtPnN0eWxlKCktPnN0eWxlVHlwZSgpKSB7CiAgICAgY2FzZSBOT1BT
RVVETzoKICAgICAgICAgQVNTRVJUKCFvYmplY3QtPmlzQW5vbnltb3VzKCkpOwotICAgICAgICBy
ZXN1bHQgPSBvYmplY3QtPmJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlcigpOwotICAgICAgICBp
ZiAocmVzdWx0KQorICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBiZWZvcmUgPSBzZWxmLT5wc2V1
ZG9FbGVtZW50UmVuZGVyZXIoQkVGT1JFKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQkVGT1JFOgpAQCAtMTk5LDcgKzE4Nyw3IEBAIHN0YXRp
YyBSZW5kZXJPYmplY3QqIG5leHRJblByZU9yZGVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0
LCBjb25zdCBFbGVtZW50KiBzCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgICAgIGNoaWxkID0gRWxlbWVudFRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oY2hp
bGQsIHNlbGYpOwogICAgICAgICB9Ci0gICAgICAgIHJlc3VsdCA9IHJlbmRlcmVyT2ZBZnRlclBz
ZXVkb0VsZW1lbnQoc2VsZi0+cmVuZGVyZXIoKSk7CisgICAgICAgIHJlc3VsdCA9IHNlbGYtPnBz
ZXVkb0VsZW1lbnRSZW5kZXJlcihBRlRFUik7CiAgICAgICAgIGlmIChyZXN1bHQpCiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwogbmV4dHNpYmxpbmc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKaW5kZXggZjIxYzY2MTQ5ZDQxNTc0YzQ0MzM0YjEzZTk4YTg1NzI0ZjU2
ZWQwZi4uOGVlNjFmMGM4MTMxN2Q1MDY4ZmQxZjJmODEzMzM5M2ExNzhiOTA1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMTg1LDIyICsxODUsNiBAQCBwdWJs
aWM6CiAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW4tPmxhc3RDaGlsZCgpOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9Ci0gICAgUmVuZGVyT2JqZWN0KiBiZWZvcmVQc2V1ZG9FbGVtZW50UmVu
ZGVyZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGNvbnN0IFJlbmRlck9iamVjdENoaWxk
TGlzdCogY2hpbGRyZW4gPSB2aXJ0dWFsQ2hpbGRyZW4oKSkKLSAgICAgICAgICAgIHJldHVybiBj
aGlsZHJlbi0+YmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVyKHRoaXMpOwotICAgICAgICByZXR1
cm4gMDsKLSAgICB9Ci0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyB0aGUgcmVu
ZGVyZXIgb2YgdGhlICJhZnRlciIgcHNldWRvRWxlbWVudCBpZiBpdCBpcyBhIGNoaWxkIG9mCi0g
ICAgLy8gdGhpcyByZW5kZXJlci4gSWYgImNvbnRpbnVhdGlvbnMiIGV4aXN0LCB0aGUgZnVuY3Rp
b24gcmV0dXJucyAwIGV2ZW4gaWYgdGhlIGVsZW1lbnQgdGhhdAotICAgIC8vIGdlbmVyYXRlZCB0
aGlzIHJlbmRlcmVyIGhhcyBhbiAiYWZ0ZXIiIHBzZXVkby1lbGVtZW50LgotICAgIFJlbmRlck9i
amVjdCogYWZ0ZXJQc2V1ZG9FbGVtZW50UmVuZGVyZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAg
aWYgKGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hpbGRyZW4gPSB2aXJ0dWFsQ2hpbGRy
ZW4oKSkKLSAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbi0+YWZ0ZXJQc2V1ZG9FbGVtZW50UmVu
ZGVyZXIodGhpcyk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KIAogICAgIHZpcnR1YWwgUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7IHJldHVybiAwOyB9CiAgICAg
dmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdENoaWxkTGlzdC5jcHAKaW5kZXggZTI3MjRiZjZmNTYzOTY4MjI5MWZlNjkzZjE1MDAx
ZTU0M2VlMDJjOS4uYWNiMDEzMzE2ZDFjZWZmMzQyYWZmNzg3MDdmMjNmNWZkZjJmMTQ4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKQEAgLTE4NSw1MCArMTg1LDQgQEAgdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6Omluc2Vy
dENoaWxkTm9kZShSZW5kZXJPYmplY3QqIG93bmVyLCBSZW5kZXJPYmplY3QqIGMKICAgICAgICAg
b3duZXItPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+Y2hpbGRyZW5DaGFuZ2VkKG93bmVy
KTsKIH0KIAotUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OmJlZm9yZVBzZXVk
b0VsZW1lbnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIG93bmVyKSBjb25zdAotewotICAg
IC8vIEFuIGFub255bW91cyAoZ2VuZXJhdGVkKSBpbmxpbmUgcnVuLWluIHRoYXQgaGFzIFBzZXVk
b0lkIEJFRk9SRSBtdXN0IGNvbWUgZnJvbSBhIGdyYW5kcGFyZW50LgotICAgIC8vIFRoZXJlZm9y
ZSB3ZSBzaG91bGQgc2tpcCB0aGVzZSBnZW5lcmF0ZWQgcnVuLWlucyB3aGVuIGNoZWNraW5nIG91
ciBpbW1lZGlhdGUgY2hpbGRyZW4uCi0gICAgLy8gSWYgd2UgZG9uJ3QgZmluZCBvdXIgOmJlZm9y
ZSBjaGlsZCBpbW1lZGlhdGVseSwgdGhlbiB3ZSBzaG91bGQgY2hlY2sgaWYgd2Ugb3duIGEKLSAg
ICAvLyBnZW5lcmF0ZWQgaW5saW5lIHJ1bi1pbiBpbiB0aGUgbmV4dCBsZXZlbCBvZiBjaGlsZHJl
bi4KLSAgICBSZW5kZXJPYmplY3QqIGZpcnN0ID0gY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPihv
d25lcik7Ci0gICAgZG8gewotICAgICAgICBmaXJzdCA9IGZpcnN0LT5maXJzdENoaWxkKCk7Ci0g
ICAgICAgIC8vIFNraXAgbGlzdCBtYXJrZXJzIGFuZCBnZW5lcmF0ZWQgcnVuLWlucy4KLSAgICAg
ICAgd2hpbGUgKGZpcnN0ICYmIChmaXJzdC0+aXNMaXN0TWFya2VyKCkgfHwgKGZpcnN0LT5pc1Jl
bmRlcklubGluZSgpICYmIGZpcnN0LT5pc1J1bkluKCkpKSkKLSAgICAgICAgICAgIGZpcnN0ID0g
Zmlyc3QtPm5leHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbihvd25lcik7Ci0gICAgfSB3aGlsZSAo
Zmlyc3QgJiYgZmlyc3QtPmlzQW5vbnltb3VzKCkgJiYgZmlyc3QtPnN0eWxlKCktPnN0eWxlVHlw
ZSgpID09IE5PUFNFVURPKTsKLQotICAgIGlmICghZmlyc3QpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgaWYgKGZpcnN0LT5pc0JlZm9yZUNvbnRlbnQoKSkKLSAgICAgICAgcmV0dXJuIGZpcnN0
OwotCi0gICAgLy8gQ2hlY2sgZm9yIGEgcG9zc2libGUgZ2VuZXJhdGVkIHJ1bi1pbiwgdXNpbmcg
cnVuLWluIHBvc2l0aW9uaW5nIHJ1bGVzLgotICAgIGZpcnN0ID0gb3duZXItPmZpcnN0Q2hpbGQo
KTsKLSAgICBpZiAoIWZpcnN0LT5pc1JlbmRlckJsb2NrKCkpCi0gICAgICAgIHJldHVybiAwOwot
ICAgIAotICAgIGZpcnN0ID0gZmlyc3QtPmZpcnN0Q2hpbGQoKTsKLSAgICAvLyBXZSBzdGlsbCBu
ZWVkIHRvIHNraXAgYW55IGxpc3QgbWFya2VycyB0aGF0IGNvdWxkIGV4aXN0IGJlZm9yZSB0aGUg
cnVuLWluLgotICAgIHdoaWxlIChmaXJzdCAmJiBmaXJzdC0+aXNMaXN0TWFya2VyKCkpCi0gICAg
ICAgIGZpcnN0ID0gZmlyc3QtPm5leHRTaWJsaW5nKCk7Ci0gICAgaWYgKGZpcnN0ICYmIGZpcnN0
LT5pc0JlZm9yZUNvbnRlbnQoKSAmJiBmaXJzdC0+aXNSZW5kZXJJbmxpbmUoKSAmJiBmaXJzdC0+
aXNSdW5JbigpKQotICAgICAgICByZXR1cm4gZmlyc3Q7Ci0gICAgCi0gICAgcmV0dXJuIDA7Ci19
Ci0KLVJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjphZnRlclBzZXVkb0VsZW1l
bnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIG93bmVyKSBjb25zdAotewotICAgIFJlbmRl
ck9iamVjdCogbGFzdCA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4ob3duZXIpOwotICAgIGRv
IHsKLSAgICAgICAgbGFzdCA9IGxhc3QtPmxhc3RDaGlsZCgpOwotICAgIH0gd2hpbGUgKGxhc3Qg
JiYgbGFzdC0+aXNBbm9ueW1vdXMoKSAmJiBsYXN0LT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSBO
T1BTRVVETyAmJiAhbGFzdC0+aXNMaXN0TWFya2VyKCkpOwotICAgIGlmIChsYXN0ICYmICFsYXN0
LT5pc0FmdGVyQ29udGVudCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbGFzdDsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oCmluZGV4IGI2M2YyNDJkZTFiZmY5OTU5MzAyOTQ3
Y2Q4YzBiMzFmM2U4ZjY3M2UuLmZmOWFiNTQwMTUzY2Y4OGMyODAyMjU2ZTMzMTk0MzFiM2JlOGEz
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGls
ZExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0LmgKQEAgLTU1LDkgKzU1LDYgQEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kQ2hpbGROb2Rl
KFJlbmRlck9iamVjdCogb3duZXIsIFJlbmRlck9iamVjdCosIGJvb2wgbm90aWZ5UmVuZGVyZXIg
PSB0cnVlKTsKICAgICB2b2lkIGluc2VydENoaWxkTm9kZShSZW5kZXJPYmplY3QqIG93bmVyLCBS
ZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZSwgYm9vbCBub3RpZnlSZW5k
ZXJlciA9IHRydWUpOwogCi0gICAgUmVuZGVyT2JqZWN0KiBiZWZvcmVQc2V1ZG9FbGVtZW50UmVu
ZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvd25lcikgY29uc3Q7Ci0gICAgUmVuZGVyT2JqZWN0
KiBhZnRlclBzZXVkb0VsZW1lbnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIG93bmVyKSBj
b25zdDsKLQogcHJpdmF0ZToKICAgICBSZW5kZXJPYmplY3QqIG1fZmlyc3RDaGlsZDsKICAgICBS
ZW5kZXJPYmplY3QqIG1fbGFzdENoaWxkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRyZWVBc1RleHQuY3BwCmluZGV4IGU4Mzg5OGVmODc3YWQ2MTlhMDA2YzNkZjdmYzM5OWVj
OTA3M2RjZDYuLjMzNDBiY2QyMjNhMTY5OGE4ODRkYmRmYTg5YmZlMWZlZTgwZGEyNDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTkwMSwx
MiArOTAxLDEwIEBAIFN0cmluZyBjb3VudGVyVmFsdWVGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1l
bnQpCiAgICAgVGV4dFN0cmVhbSBzdHJlYW07CiAgICAgYm9vbCBpc0ZpcnN0Q291bnRlciA9IHRy
dWU7CiAgICAgLy8gVGhlIGNvdW50ZXIgcmVuZGVyZXJzIHNob3VsZCBiZSBjaGlsZHJlbiBvZiA6
YmVmb3JlIG9yIDphZnRlciBwc2V1ZG8tZWxlbWVudHMuCi0gICAgaWYgKFJlbmRlck9iamVjdCog
cmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpKSB7Ci0gICAgICAgIGlmIChSZW5kZXJPYmpl
Y3QqIHBzZXVkb0VsZW1lbnQgPSByZW5kZXJlci0+YmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVy
KCkpCi0gICAgICAgICAgICB3cml0ZUNvdW50ZXJWYWx1ZXNGcm9tQ2hpbGRyZW4oc3RyZWFtLCBw
c2V1ZG9FbGVtZW50LCBpc0ZpcnN0Q291bnRlcik7Ci0gICAgICAgIGlmIChSZW5kZXJPYmplY3Qq
IHBzZXVkb0VsZW1lbnQgPSByZW5kZXJlci0+YWZ0ZXJQc2V1ZG9FbGVtZW50UmVuZGVyZXIoKSkK
LSAgICAgICAgICAgIHdyaXRlQ291bnRlclZhbHVlc0Zyb21DaGlsZHJlbihzdHJlYW0sIHBzZXVk
b0VsZW1lbnQsIGlzRmlyc3RDb3VudGVyKTsKLSAgICB9CisgICAgaWYgKFJlbmRlck9iamVjdCog
cmVuZGVyZXIgPSBlbGVtZW50LT5wc2V1ZG9FbGVtZW50UmVuZGVyZXIoQkVGT1JFKSkKKyAgICAg
ICAgd3JpdGVDb3VudGVyVmFsdWVzRnJvbUNoaWxkcmVuKHN0cmVhbSwgcmVuZGVyZXIsIGlzRmly
c3RDb3VudGVyKTsKKyAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnBz
ZXVkb0VsZW1lbnRSZW5kZXJlcihBRlRFUikpCisgICAgICAgIHdyaXRlQ291bnRlclZhbHVlc0Zy
b21DaGlsZHJlbihzdHJlYW0sIHJlbmRlcmVyLCBpc0ZpcnN0Q291bnRlcik7CiAgICAgcmV0dXJu
IHN0cmVhbS5yZWxlYXNlKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181376</attachid>
            <date>2013-01-04 14:40:16 -0800</date>
            <delta_ts>2013-01-05 13:43:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106132-20130104143722.patch</filename>
            <type>text/plain</type>
            <size>14830</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYyMjlmZTJjYjRkNzVh
ZTk2M2VlMDA3Y2VjNzYzNWI0ZDZkOThhOC4uMmFlOWI0YTE5MTQ3ZjYzODdmNzAzYWRlNWJmZTVl
NmRlNTc3MTcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAxLTA0ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBSZW5k
ZXJPYmplY3RDaGlsZExpc3Q6OmJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlciBhbmQgYWZ0ZXJQ
c2V1ZG9FbGVtZW50UmVuZGVyZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IEFiaGlzaGVrIEFyeWEu
CisKKyAgICAgICAgV2Ugbm8gbG9uZ2VyIG5lZWQgdGhlIGNvbXBsaWNhdGVkIHRyYXZlcnNhbHMg
aW4gYmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVyCisgICAgICAgIGFuZCBhZnRlclBzZXVkb0Vs
ZW1lbnRSZW5kZXJlciBzaW5jZSB3ZSBjYW4gZ2V0IHRoZSByZW5kZXJlcnMgb2YgcHNldWRvCisg
ICAgICAgIGVsZW1lbnRzIHRocm91Z2ggdGhlIG5vZGUuIFRoaXMgcmVtb3ZlcyBhbGwgdGhhdCBj
b2RlIGFuZCBzd2FwcyBpdCBmb3IKKyAgICAgICAgRWxlbWVudDo6cHNldWRvRWxlbWVudFJlbmRl
cmVyLgorCisgICAgICAgIFRoaXMgaXMgcG9zc2libGUgbm93IHRoYXQgcjEzODg1MCByZW1vdmVk
IGFsbCB0aGUgbm93IGluY29ycmVjdCBtYW51YWwKKyAgICAgICAgbWFuYWdlbWVudCBvZiBwc2V1
ZG8gZWxlbWVudCByZW5kZXJlcnMgZnJvbSB0aGUgcmVuZGVyIHRyZWUgdGhhdCB3YXMKKyAgICAg
ICAgbGVmdCBvdmVyIGZyb20gYmVmb3JlIHRoZSBzd2l0Y2ggdG8gRE9NIGJhc2VkIHBzZXVkbyBl
bGVtZW50cy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgcmVmYWN0b3JpbmcuCisKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
cHNldWRvRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgICAgIEFkZGVkLCBnZXRzIHRoZSByZW5k
ZXJlciBvZiB0aGUgcHNldWRvIGVsZW1lbnQgYnkgUHNldWRvSWQgaWYgaXQKKyAgICAgICAgICAg
IGV4aXN0cy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6Cisg
ICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6bmV4dFNpYmxpbmdTbG93KToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZ1Nsb3cpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBy
ZXZpb3VzSW5QcmVPcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1NpYmxpbmdPclBh
cmVudCk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0SW5QcmVPcmRlcik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojps
YXN0Q2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3Bw
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuaDoKKyAgICAgICAg
KFJlbmRlck9iamVjdENoaWxkTGlzdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVB
c1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y291bnRlclZhbHVlRm9yRWxlbWVudCk6CisK
IDIwMTMtMDEtMDQgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBb
bWFjXSBXZWJLaXQxIGhhcyBubyBlcXVpdmFsZW50IG9mIFdLQnVuZGxlTm9kZUhhbmRsZUNvcHlI
VE1MVGFibGVDZWxsRWxlbWVudENlbGxBYm92ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAxNmRkY2Q5ZWE1MmU5YjQxYmVj
MTAwMDI1ODA3MzRhMDFiOWE2MTZiLi4xNDNlOTUxN2FjZDdkNDEwODNjZDk4OGVlNmQ2MjVlODNk
N2RhNTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcApAQCAtMTUxNSwxMiArMTUxNSw4IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9w
ZXJ0CiAgICAgaWYgKCFzdHlsZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAocmVuZGVy
ZXIpIHsKLSAgICAgICAgaWYgKG1fcHNldWRvRWxlbWVudFNwZWNpZmllciA9PSBBRlRFUikKLSAg
ICAgICAgICAgIHJlbmRlcmVyID0gcmVuZGVyZXItPmFmdGVyUHNldWRvRWxlbWVudFJlbmRlcmVy
KCk7Ci0gICAgICAgIGVsc2UgaWYgKG1fcHNldWRvRWxlbWVudFNwZWNpZmllciA9PSBCRUZPUkUp
Ci0gICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5iZWZvcmVQc2V1ZG9FbGVtZW50UmVu
ZGVyZXIoKTsKLSAgICB9CisgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiAobV9wc2V1
ZG9FbGVtZW50U3BlY2lmaWVyID09IEJFRk9SRSB8fCBtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIg
PT0gQUZURVIpKQorICAgICAgICByZW5kZXJlciA9IHRvRWxlbWVudChub2RlKS0+cHNldWRvRWxl
bWVudFJlbmRlcmVyKG1fcHNldWRvRWxlbWVudFNwZWNpZmllcik7CiAKICAgICBwcm9wZXJ0eUlE
ID0gQ1NTUHJvcGVydHk6OnJlc29sdmVEaXJlY3Rpb25Bd2FyZVByb3BlcnR5KHByb3BlcnR5SUQs
IHN0eWxlLT5kaXJlY3Rpb24oKSwgc3R5bGUtPndyaXRpbmdNb2RlKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKaW5kZXggMDJhOWE3NGU3ZDAwNWQ3NGVkZTZmMGNiOWY1OTBhMWE1Mjc3OTM3ZS4u
MjQ1ZDAyOWJhMGQ5MTk2MjgzYjY4YzNjMTk5MzYzYjM2YjJiZjZmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtMjE3MSw2ICsyMTcxLDEyIEBAIHZvaWQgRWxlbWVudDo6c2V0UHNldWRvRWxl
bWVudChQc2V1ZG9JZCBwc2V1ZG9JZCwgUGFzc1JlZlB0cjxQc2V1ZG9FbGVtZW50PiBlbGVtCiAg
ICAgcmVzZXROZWVkc1NoYWRvd1RyZWVXYWxrZXIoKTsKIH0KIAorUmVuZGVyT2JqZWN0KiBFbGVt
ZW50Ojpwc2V1ZG9FbGVtZW50UmVuZGVyZXIoUHNldWRvSWQgcHNldWRvSWQpIGNvbnN0Cit7Cisg
ICAgaWYgKFBzZXVkb0VsZW1lbnQqIGVsZW1lbnQgPSBwc2V1ZG9FbGVtZW50KHBzZXVkb0lkKSkK
KyAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgcmV0dXJuIDA7Cit9CiAK
IC8vIEVsZW1lbnRUcmF2ZXJzYWwgQVBJCiBFbGVtZW50KiBFbGVtZW50OjpmaXJzdEVsZW1lbnRD
aGlsZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA3ZmI5NmM1ODViODc2ZDhmM2NkNjU5
ZGI3ZDNkNGMzMjRmOTIzYzM5Li4xNWEyN2ZiMWMyOWNlMTFkOTU0Y2FhZTYwZWFmZTVhNzczY2Yz
M2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTM2OCw4ICszNjgsNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGhhc1BzZXVkb0VsZW1lbnRzKCkgY29uc3Q7CiAgICAgUHNldWRvRWxlbWVudCogcHNl
dWRvRWxlbWVudChQc2V1ZG9JZCkgY29uc3Q7Ci0gICAgUHNldWRvRWxlbWVudCogYmVmb3JlUHNl
dWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHBzZXVkb0VsZW1lbnQoQkVGT1JFKTsgfQotICAg
IFBzZXVkb0VsZW1lbnQqIGFmdGVyUHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHBzZXVk
b0VsZW1lbnQoQUZURVIpOyB9CisgICAgUmVuZGVyT2JqZWN0KiBwc2V1ZG9FbGVtZW50UmVuZGVy
ZXIoUHNldWRvSWQpIGNvbnN0OwogICAgIGJvb2wgY2hpbGROZWVkc1NoYWRvd1dhbGtlcigpIGNv
bnN0OwogICAgIHZvaWQgZGlkU2hhZG93VHJlZUF3YXJlQ2hpbGRyZW5DaGFuZ2UoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwCmluZGV4IGFjOWFm
YWMxNjk2MjI1NjkxYmZhNzc1OTA2YzAwZDBjM2M4MDk2OGUuLjk1NmEwYmFjMmQ2OGNlZjY0MmNk
ZDlhYzg5ZjY3OTFiNWRmZjlmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmVuZGVyaW5nVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ1RyYXZlcnNhbC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgTm9kZSogbmV4dFNpYmxpbmdTbG93
KGNvbnN0IE5vZGUqIG5vZGUpCiAKICAgICBOb2RlKiBwYXJlbnQgPSB3YWxrZXIudHJhdmVyc2VQ
YXJlbnQobm9kZSk7CiAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkK
LSAgICAgICAgcmV0dXJuIHRvRWxlbWVudChwYXJlbnQpLT5hZnRlclBzZXVkb0VsZW1lbnQoKTsK
KyAgICAgICAgcmV0dXJuIHRvRWxlbWVudChwYXJlbnQpLT5wc2V1ZG9FbGVtZW50KEFGVEVSKTsK
IAogICAgIHJldHVybiAwOwogfQpAQCAtODcsNyArODcsNyBAQCBOb2RlKiBwcmV2aW91c1NpYmxp
bmdTbG93KGNvbnN0IE5vZGUqIG5vZGUpCiAKICAgICBOb2RlKiBwYXJlbnQgPSB3YWxrZXIudHJh
dmVyc2VQYXJlbnQobm9kZSk7CiAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQtPmlzRWxlbWVudE5v
ZGUoKSkKLSAgICAgICAgcmV0dXJuIHRvRWxlbWVudChwYXJlbnQpLT5iZWZvcmVQc2V1ZG9FbGVt
ZW50KCk7CisgICAgICAgIHJldHVybiB0b0VsZW1lbnQocGFyZW50KS0+cHNldWRvRWxlbWVudChC
RUZPUkUpOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQ291bnRlci5jcHAKaW5kZXggYWZmYzU4ZGQwZTM5YTEwMTkxOWRmMmIzMjhhZGQwYTJkM2Jl
NTFjMy4uMzlhMjc3M2JmZTMxZDE5NzQyNDcyYjYwZGU1ZTM5YzA2MjkwODU0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcApAQCAtNTMsMTQgKzUzLDYgQEAg
c3RhdGljIENvdW50ZXJNYXBzJiBjb3VudGVyTWFwcygpCiAgICAgcmV0dXJuIHN0YXRpY0NvdW50
ZXJNYXBzOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJlck9mQWZ0ZXJQc2V1ZG9F
bGVtZW50KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCi17Ci0gICAgUmVuZGVyT2JqZWN0KiBsYXN0
Q29udGludWF0aW9uID0gcmVuZGVyZXI7Ci0gICAgd2hpbGUgKFJlbmRlck9iamVjdCogY29udGlu
dWF0aW9uID0gbGFzdENvbnRpbnVhdGlvbi0+dmlydHVhbENvbnRpbnVhdGlvbigpKQotICAgICAg
ICBsYXN0Q29udGludWF0aW9uID0gY29udGludWF0aW9uOwotICAgIHJldHVybiBsYXN0Q29udGlu
dWF0aW9uLT5hZnRlclBzZXVkb0VsZW1lbnRSZW5kZXJlcigpOwotfQotCiAvLyBUaGlzIGZ1bmN0
aW9uIHByb2Nlc3NlcyB0aGUgcmVuZGVyZXIgdHJlZSBpbiB0aGUgb3JkZXIgb2YgdGhlIERPTSB0
cmVlCiAvLyBpbmNsdWRpbmcgcHNldWRvIGVsZW1lbnRzIGFzIGRlZmluZWQgaW4gQ1NTIDIuMS4K
IC8vIEFub255bW91cyByZW5kZXJlcnMgYXJlIHNraXBwZWQgZXhjZXB0IGZvciB0aG9zZSByZXBy
ZXNlbnRpbmcgcHNldWRvIGVsZW1lbnRzLgpAQCAtODcsMTIgKzc5LDEyIEBAIHN0YXRpYyBSZW5k
ZXJPYmplY3QqIHByZXZpb3VzSW5QcmVPcmRlcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkK
ICAgICB9CiAgICAgd2hpbGUgKHNpYmxpbmcpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCog
cmVuZGVyZXIgPSBzaWJsaW5nLT5yZW5kZXJlcigpKSB7Ci0gICAgICAgICAgICBpZiAoUmVuZGVy
T2JqZWN0KiBhZnRlciA9IHJlbmRlcmVyT2ZBZnRlclBzZXVkb0VsZW1lbnQocmVuZGVyZXIpKQor
ICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogYWZ0ZXIgPSBzaWJsaW5nLT5wc2V1ZG9FbGVt
ZW50UmVuZGVyZXIoQUZURVIpKQogICAgICAgICAgICAgICAgIHJldHVybiBhZnRlcjsKICAgICAg
ICAgICAgIHBhcmVudCA9IHNpYmxpbmc7CiAgICAgICAgICAgICBzaWJsaW5nID0gc2libGluZy0+
bGFzdEVsZW1lbnRDaGlsZCgpOwogICAgICAgICAgICAgaWYgKCFzaWJsaW5nKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogYmVmb3JlID0gcmVuZGVyZXItPmJlZm9yZVBzZXVk
b0VsZW1lbnRSZW5kZXJlcigpKQorICAgICAgICAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGJl
Zm9yZSA9IHRvRWxlbWVudChyZW5kZXJlci0+bm9kZSgpKS0+cHNldWRvRWxlbWVudFJlbmRlcmVy
KEJFRk9SRSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiZWZvcmU7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlbmRlcmVyOwogICAgICAgICAgICAgfQpAQCAtMTAxLDEwICs5Myw5IEBA
IHN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzSW5QcmVPcmRlcihjb25zdCBSZW5kZXJPYmpl
Y3QqIG9iamVjdCkKICAgICB9CiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybiAwOwot
ICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBwYXJlbnQtPnJlbmRlcmVyKCk7IC8vIFNob3Vs
ZCBuZXZlciBiZSBudWxsCi0gICAgaWYgKFJlbmRlck9iamVjdCogYmVmb3JlID0gcmVuZGVyZXIt
PmJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlcigpKQorICAgIGlmIChSZW5kZXJPYmplY3QqIGJl
Zm9yZSA9IHBhcmVudC0+cHNldWRvRWxlbWVudFJlbmRlcmVyKEJFRk9SRSkpCiAgICAgICAgIHJl
dHVybiBiZWZvcmU7Ci0gICAgcmV0dXJuIHJlbmRlcmVyOworICAgIHJldHVybiBwYXJlbnQtPnJl
bmRlcmVyKCk7CiB9CiAKIC8vIFRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSByZW5kZXJlciB0
cmVlIGluIHRoZSBvcmRlciBvZiB0aGUgRE9NIHRyZWUKQEAgLTEzNiwxMyArMTI3LDExIEBAIHN0
YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzU2libGluZ09yUGFyZW50KGNvbnN0IFJlbmRlck9i
amVjdCogb2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyOwogICAgICAgICBzaWJs
aW5nID0gc2libGluZy0+cHJldmlvdXNFbGVtZW50U2libGluZygpOwogICAgIH0KLSAgICBpZiAo
cGFyZW50KSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBwYXJlbnQtPnJlbmRl
cmVyKCk7Ci0gICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGJlZm9yZSA9IHJlbmRlcmVyLT52aXJ0
dWFsQ2hpbGRyZW4oKS0+YmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVyKHJlbmRlcmVyKSkKLSAg
ICAgICAgICAgIHJldHVybiBiZWZvcmU7Ci0gICAgICAgIHJldHVybiByZW5kZXJlcjsKLSAgICB9
Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKCFwYXJlbnQpCisgICAgICAgIHJldHVybiAwOworICAg
IGlmIChSZW5kZXJPYmplY3QqIGJlZm9yZSA9IHBhcmVudC0+cHNldWRvRWxlbWVudFJlbmRlcmVy
KEJFRk9SRSkpCisgICAgICAgIHJldHVybiBiZWZvcmU7CisgICAgcmV0dXJuIHBhcmVudC0+cmVu
ZGVyZXIoKTsKIH0KIAogc3RhdGljIEVsZW1lbnQqIHBhcmVudEVsZW1lbnQoUmVuZGVyT2JqZWN0
KiBvYmplY3QpCkBAIC0xNzksOSArMTY4LDggQEAgc3RhdGljIFJlbmRlck9iamVjdCogbmV4dElu
UHJlT3JkZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IEVsZW1lbnQqIHMKICAg
ICBzd2l0Y2ggKG9iamVjdC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkpIHsKICAgICBjYXNlIE5PUFNF
VURPOgogICAgICAgICBBU1NFUlQoIW9iamVjdC0+aXNBbm9ueW1vdXMoKSk7Ci0gICAgICAgIHJl
c3VsdCA9IG9iamVjdC0+YmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVyKCk7Ci0gICAgICAgIGlm
IChyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICBpZiAoUmVuZGVy
T2JqZWN0KiBiZWZvcmUgPSBzZWxmLT5wc2V1ZG9FbGVtZW50UmVuZGVyZXIoQkVGT1JFKSkKKyAg
ICAgICAgICAgIHJldHVybiBiZWZvcmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQkVGT1JF
OgogICAgICAgICBicmVhazsKQEAgLTE5OSw3ICsxODcsNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0
KiBuZXh0SW5QcmVPcmRlcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgRWxlbWVu
dCogcwogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICBjaGlsZCA9
IEVsZW1lbnRUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKGNoaWxkLCBzZWxmKTsKICAg
ICAgICAgfQotICAgICAgICByZXN1bHQgPSByZW5kZXJlck9mQWZ0ZXJQc2V1ZG9FbGVtZW50KHNl
bGYtPnJlbmRlcmVyKCkpOworICAgICAgICByZXN1bHQgPSBzZWxmLT5wc2V1ZG9FbGVtZW50UmVu
ZGVyZXIoQUZURVIpOwogICAgICAgICBpZiAocmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKIG5leHRzaWJsaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CmluZGV4IGYyMWM2NjE0OWQ0MTU3NGM0NDMzNGIxM2U5OGE4NTcyNGY1NmVkMGYuLjhlZTYxZjBj
ODEzMTdkNTA2OGZkMWYyZjgxMzMzOTNhMTc4YjkwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKQEAgLTE4NSwyMiArMTg1LDYgQEAgcHVibGljOgogICAgICAgICAg
ICAgcmV0dXJuIGNoaWxkcmVuLT5sYXN0Q2hpbGQoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQotICAgIFJlbmRlck9iamVjdCogYmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVyKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIGlmIChjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVu
ID0gdmlydHVhbENoaWxkcmVuKCkpCi0gICAgICAgICAgICByZXR1cm4gY2hpbGRyZW4tPmJlZm9y
ZVBzZXVkb0VsZW1lbnRSZW5kZXJlcih0aGlzKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQot
Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgdGhlIHJlbmRlcmVyIG9mIHRoZSAi
YWZ0ZXIiIHBzZXVkb0VsZW1lbnQgaWYgaXQgaXMgYSBjaGlsZCBvZgotICAgIC8vIHRoaXMgcmVu
ZGVyZXIuIElmICJjb250aW51YXRpb25zIiBleGlzdCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgMCBl
dmVuIGlmIHRoZSBlbGVtZW50IHRoYXQKLSAgICAvLyBnZW5lcmF0ZWQgdGhpcyByZW5kZXJlciBo
YXMgYW4gImFmdGVyIiBwc2V1ZG8tZWxlbWVudC4KLSAgICBSZW5kZXJPYmplY3QqIGFmdGVyUHNl
dWRvRWxlbWVudFJlbmRlcmVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChjb25zdCBSZW5k
ZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVuID0gdmlydHVhbENoaWxkcmVuKCkpCi0gICAgICAg
ICAgICByZXR1cm4gY2hpbGRyZW4tPmFmdGVyUHNldWRvRWxlbWVudFJlbmRlcmVyKHRoaXMpOwot
ICAgICAgICByZXR1cm4gMDsKLSAgICB9CiAKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdENoaWxk
TGlzdCogdmlydHVhbENoaWxkcmVuKCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgY29uc3Qg
UmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiAw
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExp
c3QuY3BwCmluZGV4IGUyNzI0YmY2ZjU2Mzk2ODIyOTFmZTY5M2YxNTAwMWU1NDNlZTAyYzkuLmFj
YjAxMzMxNmQxY2VmZjM0MmFmZjc4NzA3ZjIzZjVmZGYyZjE0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCkBAIC0xODUsNTAg
KzE4NSw0IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUoUmVu
ZGVyT2JqZWN0KiBvd25lciwgUmVuZGVyT2JqZWN0KiBjCiAgICAgICAgIG93bmVyLT5kb2N1bWVu
dCgpLT5heE9iamVjdENhY2hlKCktPmNoaWxkcmVuQ2hhbmdlZChvd25lcik7CiB9CiAKLVJlbmRl
ck9iamVjdCogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjpiZWZvcmVQc2V1ZG9FbGVtZW50UmVuZGVy
ZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvd25lcikgY29uc3QKLXsKLSAgICAvLyBBbiBhbm9ueW1v
dXMgKGdlbmVyYXRlZCkgaW5saW5lIHJ1bi1pbiB0aGF0IGhhcyBQc2V1ZG9JZCBCRUZPUkUgbXVz
dCBjb21lIGZyb20gYSBncmFuZHBhcmVudC4KLSAgICAvLyBUaGVyZWZvcmUgd2Ugc2hvdWxkIHNr
aXAgdGhlc2UgZ2VuZXJhdGVkIHJ1bi1pbnMgd2hlbiBjaGVja2luZyBvdXIgaW1tZWRpYXRlIGNo
aWxkcmVuLgotICAgIC8vIElmIHdlIGRvbid0IGZpbmQgb3VyIDpiZWZvcmUgY2hpbGQgaW1tZWRp
YXRlbHksIHRoZW4gd2Ugc2hvdWxkIGNoZWNrIGlmIHdlIG93biBhCi0gICAgLy8gZ2VuZXJhdGVk
IGlubGluZSBydW4taW4gaW4gdGhlIG5leHQgbGV2ZWwgb2YgY2hpbGRyZW4uCi0gICAgUmVuZGVy
T2JqZWN0KiBmaXJzdCA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4ob3duZXIpOwotICAgIGRv
IHsKLSAgICAgICAgZmlyc3QgPSBmaXJzdC0+Zmlyc3RDaGlsZCgpOwotICAgICAgICAvLyBTa2lw
IGxpc3QgbWFya2VycyBhbmQgZ2VuZXJhdGVkIHJ1bi1pbnMuCi0gICAgICAgIHdoaWxlIChmaXJz
dCAmJiAoZmlyc3QtPmlzTGlzdE1hcmtlcigpIHx8IChmaXJzdC0+aXNSZW5kZXJJbmxpbmUoKSAm
JiBmaXJzdC0+aXNSdW5JbigpKSkpCi0gICAgICAgICAgICBmaXJzdCA9IGZpcnN0LT5uZXh0SW5Q
cmVPcmRlckFmdGVyQ2hpbGRyZW4ob3duZXIpOwotICAgIH0gd2hpbGUgKGZpcnN0ICYmIGZpcnN0
LT5pc0Fub255bW91cygpICYmIGZpcnN0LT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSBOT1BTRVVE
Tyk7Ci0KLSAgICBpZiAoIWZpcnN0KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmIChmaXJz
dC0+aXNCZWZvcmVDb250ZW50KCkpCi0gICAgICAgIHJldHVybiBmaXJzdDsKLQotICAgIC8vIENo
ZWNrIGZvciBhIHBvc3NpYmxlIGdlbmVyYXRlZCBydW4taW4sIHVzaW5nIHJ1bi1pbiBwb3NpdGlv
bmluZyBydWxlcy4KLSAgICBmaXJzdCA9IG93bmVyLT5maXJzdENoaWxkKCk7Ci0gICAgaWYgKCFm
aXJzdC0+aXNSZW5kZXJCbG9jaygpKQotICAgICAgICByZXR1cm4gMDsKLSAgICAKLSAgICBmaXJz
dCA9IGZpcnN0LT5maXJzdENoaWxkKCk7Ci0gICAgLy8gV2Ugc3RpbGwgbmVlZCB0byBza2lwIGFu
eSBsaXN0IG1hcmtlcnMgdGhhdCBjb3VsZCBleGlzdCBiZWZvcmUgdGhlIHJ1bi1pbi4KLSAgICB3
aGlsZSAoZmlyc3QgJiYgZmlyc3QtPmlzTGlzdE1hcmtlcigpKQotICAgICAgICBmaXJzdCA9IGZp
cnN0LT5uZXh0U2libGluZygpOwotICAgIGlmIChmaXJzdCAmJiBmaXJzdC0+aXNCZWZvcmVDb250
ZW50KCkgJiYgZmlyc3QtPmlzUmVuZGVySW5saW5lKCkgJiYgZmlyc3QtPmlzUnVuSW4oKSkKLSAg
ICAgICAgcmV0dXJuIGZpcnN0OwotICAgIAotICAgIHJldHVybiAwOwotfQotCi1SZW5kZXJPYmpl
Y3QqIFJlbmRlck9iamVjdENoaWxkTGlzdDo6YWZ0ZXJQc2V1ZG9FbGVtZW50UmVuZGVyZXIoY29u
c3QgUmVuZGVyT2JqZWN0KiBvd25lcikgY29uc3QKLXsKLSAgICBSZW5kZXJPYmplY3QqIGxhc3Qg
PSBjb25zdF9jYXN0PFJlbmRlck9iamVjdCo+KG93bmVyKTsKLSAgICBkbyB7Ci0gICAgICAgIGxh
c3QgPSBsYXN0LT5sYXN0Q2hpbGQoKTsKLSAgICB9IHdoaWxlIChsYXN0ICYmIGxhc3QtPmlzQW5v
bnltb3VzKCkgJiYgbGFzdC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkgPT0gTk9QU0VVRE8gJiYgIWxh
c3QtPmlzTGlzdE1hcmtlcigpKTsKLSAgICBpZiAobGFzdCAmJiAhbGFzdC0+aXNBZnRlckNvbnRl
bnQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGxhc3Q7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3RDaGlsZExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3RDaGlsZExpc3QuaAppbmRleCBiNjNmMjQyZGUxYmZmOTk1OTMwMjk0N2NkOGMwYjMxZjNlOGY2
NzNlLi5mZjlhYjU0MDE1M2NmODhjMjgwMjI1NmUzMzE5NDMxYjNiZThhMzlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oCkBAIC01NSw5
ICs1NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZENoaWxkTm9kZShSZW5kZXJPYmplY3Qq
IG93bmVyLCBSZW5kZXJPYmplY3QqLCBib29sIG5vdGlmeVJlbmRlcmVyID0gdHJ1ZSk7CiAgICAg
dm9pZCBpbnNlcnRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVuZGVyT2JqZWN0KiBj
aGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmUsIGJvb2wgbm90aWZ5UmVuZGVyZXIgPSB0cnVlKTsK
IAotICAgIFJlbmRlck9iamVjdCogYmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVyKGNvbnN0IFJl
bmRlck9iamVjdCogb3duZXIpIGNvbnN0OwotICAgIFJlbmRlck9iamVjdCogYWZ0ZXJQc2V1ZG9F
bGVtZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvd25lcikgY29uc3Q7Ci0KIHByaXZh
dGU6CiAgICAgUmVuZGVyT2JqZWN0KiBtX2ZpcnN0Q2hpbGQ7CiAgICAgUmVuZGVyT2JqZWN0KiBt
X2xhc3RDaGlsZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcAppbmRleCBlODM4OThlZjg3N2FkNjE5YTAwNmMzZGY3ZmMzOTllYzkwNzNkY2Q2Li4zMzQw
YmNkMjIzYTE2OThhODg0ZGJkZmE4OWJmZTFmZWU4MGRhMjQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC05MDEsMTIgKzkwMSwxMCBAQCBT
dHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogICAgIFRleHRT
dHJlYW0gc3RyZWFtOwogICAgIGJvb2wgaXNGaXJzdENvdW50ZXIgPSB0cnVlOwogICAgIC8vIFRo
ZSBjb3VudGVyIHJlbmRlcmVycyBzaG91bGQgYmUgY2hpbGRyZW4gb2YgOmJlZm9yZSBvciA6YWZ0
ZXIgcHNldWRvLWVsZW1lbnRzLgotICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxl
bWVudC0+cmVuZGVyZXIoKSkgewotICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBwc2V1ZG9FbGVt
ZW50ID0gcmVuZGVyZXItPmJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlcigpKQotICAgICAgICAg
ICAgd3JpdGVDb3VudGVyVmFsdWVzRnJvbUNoaWxkcmVuKHN0cmVhbSwgcHNldWRvRWxlbWVudCwg
aXNGaXJzdENvdW50ZXIpOwotICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBwc2V1ZG9FbGVtZW50
ID0gcmVuZGVyZXItPmFmdGVyUHNldWRvRWxlbWVudFJlbmRlcmVyKCkpCi0gICAgICAgICAgICB3
cml0ZUNvdW50ZXJWYWx1ZXNGcm9tQ2hpbGRyZW4oc3RyZWFtLCBwc2V1ZG9FbGVtZW50LCBpc0Zp
cnN0Q291bnRlcik7Ci0gICAgfQorICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxl
bWVudC0+cHNldWRvRWxlbWVudFJlbmRlcmVyKEJFRk9SRSkpCisgICAgICAgIHdyaXRlQ291bnRl
clZhbHVlc0Zyb21DaGlsZHJlbihzdHJlYW0sIHJlbmRlcmVyLCBpc0ZpcnN0Q291bnRlcik7Cisg
ICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LT5wc2V1ZG9FbGVtZW50UmVu
ZGVyZXIoQUZURVIpKQorICAgICAgICB3cml0ZUNvdW50ZXJWYWx1ZXNGcm9tQ2hpbGRyZW4oc3Ry
ZWFtLCByZW5kZXJlciwgaXNGaXJzdENvdW50ZXIpOwogICAgIHJldHVybiBzdHJlYW0ucmVsZWFz
ZSgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181444</attachid>
            <date>2013-01-05 13:43:55 -0800</date>
            <delta_ts>2013-01-05 15:08:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106132-20130105134101.patch</filename>
            <type>text/plain</type>
            <size>16018</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYyMjlmZTJjYjRkNzVh
ZTk2M2VlMDA3Y2VjNzYzNWI0ZDZkOThhOC4uMmFlOWI0YTE5MTQ3ZjYzODdmNzAzYWRlNWJmZTVl
NmRlNTc3MTcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAxLTA0ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBSZW5k
ZXJPYmplY3RDaGlsZExpc3Q6OmJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlciBhbmQgYWZ0ZXJQ
c2V1ZG9FbGVtZW50UmVuZGVyZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IEFiaGlzaGVrIEFyeWEu
CisKKyAgICAgICAgV2Ugbm8gbG9uZ2VyIG5lZWQgdGhlIGNvbXBsaWNhdGVkIHRyYXZlcnNhbHMg
aW4gYmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVyCisgICAgICAgIGFuZCBhZnRlclBzZXVkb0Vs
ZW1lbnRSZW5kZXJlciBzaW5jZSB3ZSBjYW4gZ2V0IHRoZSByZW5kZXJlcnMgb2YgcHNldWRvCisg
ICAgICAgIGVsZW1lbnRzIHRocm91Z2ggdGhlIG5vZGUuIFRoaXMgcmVtb3ZlcyBhbGwgdGhhdCBj
b2RlIGFuZCBzd2FwcyBpdCBmb3IKKyAgICAgICAgRWxlbWVudDo6cHNldWRvRWxlbWVudFJlbmRl
cmVyLgorCisgICAgICAgIFRoaXMgaXMgcG9zc2libGUgbm93IHRoYXQgcjEzODg1MCByZW1vdmVk
IGFsbCB0aGUgbm93IGluY29ycmVjdCBtYW51YWwKKyAgICAgICAgbWFuYWdlbWVudCBvZiBwc2V1
ZG8gZWxlbWVudCByZW5kZXJlcnMgZnJvbSB0aGUgcmVuZGVyIHRyZWUgdGhhdCB3YXMKKyAgICAg
ICAgbGVmdCBvdmVyIGZyb20gYmVmb3JlIHRoZSBzd2l0Y2ggdG8gRE9NIGJhc2VkIHBzZXVkbyBl
bGVtZW50cy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgcmVmYWN0b3JpbmcuCisKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
cHNldWRvRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgICAgIEFkZGVkLCBnZXRzIHRoZSByZW5k
ZXJlciBvZiB0aGUgcHNldWRvIGVsZW1lbnQgYnkgUHNldWRvSWQgaWYgaXQKKyAgICAgICAgICAg
IGV4aXN0cy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6Cisg
ICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6bmV4dFNpYmxpbmdTbG93KToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZ1Nsb3cpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBy
ZXZpb3VzSW5QcmVPcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1NpYmxpbmdPclBh
cmVudCk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0SW5QcmVPcmRlcik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojps
YXN0Q2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3Bw
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuaDoKKyAgICAgICAg
KFJlbmRlck9iamVjdENoaWxkTGlzdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVB
c1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y291bnRlclZhbHVlRm9yRWxlbWVudCk6CisK
IDIwMTMtMDEtMDQgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBb
bWFjXSBXZWJLaXQxIGhhcyBubyBlcXVpdmFsZW50IG9mIFdLQnVuZGxlTm9kZUhhbmRsZUNvcHlI
VE1MVGFibGVDZWxsRWxlbWVudENlbGxBYm92ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAxNmRkY2Q5ZWE1MmU5YjQxYmVj
MTAwMDI1ODA3MzRhMDFiOWE2MTZiLi4xNDNlOTUxN2FjZDdkNDEwODNjZDk4OGVlNmQ2MjVlODNk
N2RhNTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcApAQCAtMTUxNSwxMiArMTUxNSw4IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9w
ZXJ0CiAgICAgaWYgKCFzdHlsZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAocmVuZGVy
ZXIpIHsKLSAgICAgICAgaWYgKG1fcHNldWRvRWxlbWVudFNwZWNpZmllciA9PSBBRlRFUikKLSAg
ICAgICAgICAgIHJlbmRlcmVyID0gcmVuZGVyZXItPmFmdGVyUHNldWRvRWxlbWVudFJlbmRlcmVy
KCk7Ci0gICAgICAgIGVsc2UgaWYgKG1fcHNldWRvRWxlbWVudFNwZWNpZmllciA9PSBCRUZPUkUp
Ci0gICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5iZWZvcmVQc2V1ZG9FbGVtZW50UmVu
ZGVyZXIoKTsKLSAgICB9CisgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiAobV9wc2V1
ZG9FbGVtZW50U3BlY2lmaWVyID09IEJFRk9SRSB8fCBtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIg
PT0gQUZURVIpKQorICAgICAgICByZW5kZXJlciA9IHRvRWxlbWVudChub2RlKS0+cHNldWRvRWxl
bWVudFJlbmRlcmVyKG1fcHNldWRvRWxlbWVudFNwZWNpZmllcik7CiAKICAgICBwcm9wZXJ0eUlE
ID0gQ1NTUHJvcGVydHk6OnJlc29sdmVEaXJlY3Rpb25Bd2FyZVByb3BlcnR5KHByb3BlcnR5SUQs
IHN0eWxlLT5kaXJlY3Rpb24oKSwgc3R5bGUtPndyaXRpbmdNb2RlKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKaW5kZXggMDJhOWE3NGU3ZDAwNWQ3NGVkZTZmMGNiOWY1OTBhMWE1Mjc3OTM3ZS4u
MjQ1ZDAyOWJhMGQ5MTk2MjgzYjY4YzNjMTk5MzYzYjM2YjJiZjZmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtMjE3MSw2ICsyMTcxLDEyIEBAIHZvaWQgRWxlbWVudDo6c2V0UHNldWRvRWxl
bWVudChQc2V1ZG9JZCBwc2V1ZG9JZCwgUGFzc1JlZlB0cjxQc2V1ZG9FbGVtZW50PiBlbGVtCiAg
ICAgcmVzZXROZWVkc1NoYWRvd1RyZWVXYWxrZXIoKTsKIH0KIAorUmVuZGVyT2JqZWN0KiBFbGVt
ZW50Ojpwc2V1ZG9FbGVtZW50UmVuZGVyZXIoUHNldWRvSWQgcHNldWRvSWQpIGNvbnN0Cit7Cisg
ICAgaWYgKFBzZXVkb0VsZW1lbnQqIGVsZW1lbnQgPSBwc2V1ZG9FbGVtZW50KHBzZXVkb0lkKSkK
KyAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgcmV0dXJuIDA7Cit9CiAK
IC8vIEVsZW1lbnRUcmF2ZXJzYWwgQVBJCiBFbGVtZW50KiBFbGVtZW50OjpmaXJzdEVsZW1lbnRD
aGlsZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA3ZmI5NmM1ODViODc2ZDhmM2NkNjU5
ZGI3ZDNkNGMzMjRmOTIzYzM5Li4xNWEyN2ZiMWMyOWNlMTFkOTU0Y2FhZTYwZWFmZTVhNzczY2Yz
M2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTM2OCw4ICszNjgsNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGhhc1BzZXVkb0VsZW1lbnRzKCkgY29uc3Q7CiAgICAgUHNldWRvRWxlbWVudCogcHNl
dWRvRWxlbWVudChQc2V1ZG9JZCkgY29uc3Q7Ci0gICAgUHNldWRvRWxlbWVudCogYmVmb3JlUHNl
dWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHBzZXVkb0VsZW1lbnQoQkVGT1JFKTsgfQotICAg
IFBzZXVkb0VsZW1lbnQqIGFmdGVyUHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHBzZXVk
b0VsZW1lbnQoQUZURVIpOyB9CisgICAgUmVuZGVyT2JqZWN0KiBwc2V1ZG9FbGVtZW50UmVuZGVy
ZXIoUHNldWRvSWQpIGNvbnN0OwogICAgIGJvb2wgY2hpbGROZWVkc1NoYWRvd1dhbGtlcigpIGNv
bnN0OwogICAgIHZvaWQgZGlkU2hhZG93VHJlZUF3YXJlQ2hpbGRyZW5DaGFuZ2UoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwCmluZGV4IGFjOWFm
YWMxNjk2MjI1NjkxYmZhNzc1OTA2YzAwZDBjM2M4MDk2OGUuLjk1NmEwYmFjMmQ2OGNlZjY0MmNk
ZDlhYzg5ZjY3OTFiNWRmZjlmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmVuZGVyaW5nVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ1RyYXZlcnNhbC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgTm9kZSogbmV4dFNpYmxpbmdTbG93
KGNvbnN0IE5vZGUqIG5vZGUpCiAKICAgICBOb2RlKiBwYXJlbnQgPSB3YWxrZXIudHJhdmVyc2VQ
YXJlbnQobm9kZSk7CiAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkK
LSAgICAgICAgcmV0dXJuIHRvRWxlbWVudChwYXJlbnQpLT5hZnRlclBzZXVkb0VsZW1lbnQoKTsK
KyAgICAgICAgcmV0dXJuIHRvRWxlbWVudChwYXJlbnQpLT5wc2V1ZG9FbGVtZW50KEFGVEVSKTsK
IAogICAgIHJldHVybiAwOwogfQpAQCAtODcsNyArODcsNyBAQCBOb2RlKiBwcmV2aW91c1NpYmxp
bmdTbG93KGNvbnN0IE5vZGUqIG5vZGUpCiAKICAgICBOb2RlKiBwYXJlbnQgPSB3YWxrZXIudHJh
dmVyc2VQYXJlbnQobm9kZSk7CiAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQtPmlzRWxlbWVudE5v
ZGUoKSkKLSAgICAgICAgcmV0dXJuIHRvRWxlbWVudChwYXJlbnQpLT5iZWZvcmVQc2V1ZG9FbGVt
ZW50KCk7CisgICAgICAgIHJldHVybiB0b0VsZW1lbnQocGFyZW50KS0+cHNldWRvRWxlbWVudChC
RUZPUkUpOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQ291bnRlci5jcHAKaW5kZXggYWZmYzU4ZGQwZTM5YTEwMTkxOWRmMmIzMjhhZGQwYTJkM2Jl
NTFjMy4uZWVjZjVmNjkwYjRhNmI4N2U5OTEzMmRjMzAxMGJiZjExNDVjMDJkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcApAQCAtNTMsMTcgKzUzLDggQEAg
c3RhdGljIENvdW50ZXJNYXBzJiBjb3VudGVyTWFwcygpCiAgICAgcmV0dXJuIHN0YXRpY0NvdW50
ZXJNYXBzOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJlck9mQWZ0ZXJQc2V1ZG9F
bGVtZW50KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCi17Ci0gICAgUmVuZGVyT2JqZWN0KiBsYXN0
Q29udGludWF0aW9uID0gcmVuZGVyZXI7Ci0gICAgd2hpbGUgKFJlbmRlck9iamVjdCogY29udGlu
dWF0aW9uID0gbGFzdENvbnRpbnVhdGlvbi0+dmlydHVhbENvbnRpbnVhdGlvbigpKQotICAgICAg
ICBsYXN0Q29udGludWF0aW9uID0gY29udGludWF0aW9uOwotICAgIHJldHVybiBsYXN0Q29udGlu
dWF0aW9uLT5hZnRlclBzZXVkb0VsZW1lbnRSZW5kZXJlcigpOwotfQotCiAvLyBUaGlzIGZ1bmN0
aW9uIHByb2Nlc3NlcyB0aGUgcmVuZGVyZXIgdHJlZSBpbiB0aGUgb3JkZXIgb2YgdGhlIERPTSB0
cmVlCiAvLyBpbmNsdWRpbmcgcHNldWRvIGVsZW1lbnRzIGFzIGRlZmluZWQgaW4gQ1NTIDIuMS4K
LS8vIEFub255bW91cyByZW5kZXJlcnMgYXJlIHNraXBwZWQgZXhjZXB0IGZvciB0aG9zZSByZXBy
ZXNlbnRpbmcgcHNldWRvIGVsZW1lbnRzLgogc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNJ
blByZU9yZGVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewogICAgIEVsZW1lbnQqIHBh
cmVudDsKQEAgLTg3LDEyICs3OCwxMiBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c0lu
UHJlT3JkZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgfQogICAgIHdoaWxlIChz
aWJsaW5nKSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2libGluZy0+
cmVuZGVyZXIoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogYWZ0ZXIgPSByZW5k
ZXJlck9mQWZ0ZXJQc2V1ZG9FbGVtZW50KHJlbmRlcmVyKSkKKyAgICAgICAgICAgIGlmIChSZW5k
ZXJPYmplY3QqIGFmdGVyID0gc2libGluZy0+cHNldWRvRWxlbWVudFJlbmRlcmVyKEFGVEVSKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gYWZ0ZXI7CiAgICAgICAgICAgICBwYXJlbnQgPSBzaWJs
aW5nOwogICAgICAgICAgICAgc2libGluZyA9IHNpYmxpbmctPmxhc3RFbGVtZW50Q2hpbGQoKTsK
ICAgICAgICAgICAgIGlmICghc2libGluZykgewotICAgICAgICAgICAgICAgIGlmIChSZW5kZXJP
YmplY3QqIGJlZm9yZSA9IHJlbmRlcmVyLT5iZWZvcmVQc2V1ZG9FbGVtZW50UmVuZGVyZXIoKSkK
KyAgICAgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBiZWZvcmUgPSB0b0VsZW1lbnQocmVu
ZGVyZXItPm5vZGUoKSktPnBzZXVkb0VsZW1lbnRSZW5kZXJlcihCRUZPUkUpKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYmVmb3JlOwogICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJl
cjsKICAgICAgICAgICAgIH0KQEAgLTEwMSwxNSArOTIsMTMgQEAgc3RhdGljIFJlbmRlck9iamVj
dCogcHJldmlvdXNJblByZU9yZGVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogICAgIH0K
ICAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IHBhcmVudC0+cmVuZGVyZXIoKTsgLy8gU2hvdWxkIG5ldmVyIGJlIG51bGwKLSAg
ICBpZiAoUmVuZGVyT2JqZWN0KiBiZWZvcmUgPSByZW5kZXJlci0+YmVmb3JlUHNldWRvRWxlbWVu
dFJlbmRlcmVyKCkpCisgICAgaWYgKFJlbmRlck9iamVjdCogYmVmb3JlID0gcGFyZW50LT5wc2V1
ZG9FbGVtZW50UmVuZGVyZXIoQkVGT1JFKSkKICAgICAgICAgcmV0dXJuIGJlZm9yZTsKLSAgICBy
ZXR1cm4gcmVuZGVyZXI7CisgICAgcmV0dXJuIHBhcmVudC0+cmVuZGVyZXIoKTsKIH0KIAogLy8g
VGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgdGhlIHJlbmRlcmVyIHRyZWUgaW4gdGhlIG9yZGVyIG9m
IHRoZSBET00gdHJlZQogLy8gaW5jbHVkaW5nIHBzZXVkbyBlbGVtZW50cyBhcyBkZWZpbmVkIGlu
IENTUyAyLjEuCi0vLyBBbm9ueW1vdXMgcmVuZGVyZXJzIGFyZSBza2lwcGVkIGV4Y2VwdCBmb3Ig
dGhvc2UgcmVwcmVzZW50aW5nIHBzZXVkbyBlbGVtZW50cy4KIHN0YXRpYyBSZW5kZXJPYmplY3Qq
IHByZXZpb3VzU2libGluZ09yUGFyZW50KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewog
ICAgIEVsZW1lbnQqIHBhcmVudDsKQEAgLTEzNiwxMyArMTI1LDExIEBAIHN0YXRpYyBSZW5kZXJP
YmplY3QqIHByZXZpb3VzU2libGluZ09yUGFyZW50KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0
KQogICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyOwogICAgICAgICBzaWJsaW5nID0gc2libGlu
Zy0+cHJldmlvdXNFbGVtZW50U2libGluZygpOwogICAgIH0KLSAgICBpZiAocGFyZW50KSB7Ci0g
ICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBwYXJlbnQtPnJlbmRlcmVyKCk7Ci0gICAg
ICAgIGlmIChSZW5kZXJPYmplY3QqIGJlZm9yZSA9IHJlbmRlcmVyLT52aXJ0dWFsQ2hpbGRyZW4o
KS0+YmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVyKHJlbmRlcmVyKSkKLSAgICAgICAgICAgIHJl
dHVybiBiZWZvcmU7Ci0gICAgICAgIHJldHVybiByZW5kZXJlcjsKLSAgICB9Ci0gICAgcmV0dXJu
IDA7CisgICAgaWYgKCFwYXJlbnQpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChSZW5kZXJP
YmplY3QqIGJlZm9yZSA9IHBhcmVudC0+cHNldWRvRWxlbWVudFJlbmRlcmVyKEJFRk9SRSkpCisg
ICAgICAgIHJldHVybiBiZWZvcmU7CisgICAgcmV0dXJuIHBhcmVudC0+cmVuZGVyZXIoKTsKIH0K
IAogc3RhdGljIEVsZW1lbnQqIHBhcmVudEVsZW1lbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCkBA
IC0xNjcsMjEgKzE1NCwxOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXJlUmVuZGVyZXJzRWxlbWVu
dHNTaWJsaW5ncyhSZW5kZXJPYmplY3QqIGZpcnN0LCBSZW5kZXJPYmplYwogCiAvLyBUaGlzIGZ1
bmN0aW9uIHByb2Nlc3NlcyB0aGUgcmVuZGVyZXIgdHJlZSBpbiB0aGUgb3JkZXIgb2YgdGhlIERP
TSB0cmVlCiAvLyBpbmNsdWRpbmcgcHNldWRvIGVsZW1lbnRzIGFzIGRlZmluZWQgaW4gQ1NTIDIu
MS4KLS8vIEFub255bW91cyByZW5kZXJlcnMgYXJlIHNraXBwZWQgZXhjZXB0IGZvciB0aG9zZSBy
ZXByZXNlbnRpbmcgcHNldWRvIGVsZW1lbnRzLgogc3RhdGljIFJlbmRlck9iamVjdCogbmV4dElu
UHJlT3JkZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IEVsZW1lbnQqIHN0YXlX
aXRoaW4sIGJvb2wgc2tpcERlc2NlbmRhbnRzID0gZmFsc2UpCiB7CiAgICAgRWxlbWVudCogc2Vs
ZjsKICAgICBFbGVtZW50KiBjaGlsZDsKLSAgICBSZW5kZXJPYmplY3QqIHJlc3VsdDsKICAgICBz
ZWxmID0gdG9FbGVtZW50KG9iamVjdC0+Z2VuZXJhdGluZ05vZGUoKSk7CiAgICAgaWYgKHNraXBE
ZXNjZW5kYW50cykKICAgICAgICAgZ290byBuZXh0c2libGluZzsKICAgICBzd2l0Y2ggKG9iamVj
dC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkpIHsKICAgICBjYXNlIE5PUFNFVURPOgogICAgICAgICBB
U1NFUlQoIW9iamVjdC0+aXNBbm9ueW1vdXMoKSk7Ci0gICAgICAgIHJlc3VsdCA9IG9iamVjdC0+
YmVmb3JlUHNldWRvRWxlbWVudFJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyZXN1bHQpCi0gICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBiZWZvcmUg
PSBzZWxmLT5wc2V1ZG9FbGVtZW50UmVuZGVyZXIoQkVGT1JFKSkKKyAgICAgICAgICAgIHJldHVy
biBiZWZvcmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQkVGT1JFOgogICAgICAgICBicmVh
azsKQEAgLTE5NCwxNCArMTc4LDEyIEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRJblByZU9y
ZGVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBFbGVtZW50KiBzCiAgICAgY2hp
bGQgPSBFbGVtZW50VHJhdmVyc2FsOjpmaXJzdFdpdGhpbihzZWxmKTsKICAgICB3aGlsZSAodHJ1
ZSkgewogICAgICAgICB3aGlsZSAoY2hpbGQpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IGNoaWxk
LT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBj
aGlsZC0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7CiAgICAg
ICAgICAgICBjaGlsZCA9IEVsZW1lbnRUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKGNo
aWxkLCBzZWxmKTsKICAgICAgICAgfQotICAgICAgICByZXN1bHQgPSByZW5kZXJlck9mQWZ0ZXJQ
c2V1ZG9FbGVtZW50KHNlbGYtPnJlbmRlcmVyKCkpOwotICAgICAgICBpZiAocmVzdWx0KQotICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgaWYgKFJlbmRlck9iamVjdCogYWZ0ZXIg
PSBzZWxmLT5wc2V1ZG9FbGVtZW50UmVuZGVyZXIoQUZURVIpKQorICAgICAgICAgICAgcmV0dXJu
IGFmdGVyOwogbmV4dHNpYmxpbmc6CiAgICAgICAgIGlmIChzZWxmID09IHN0YXlXaXRoaW4pCiAg
ICAgICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAppbmRleCBmMjFjNjYxNDlkNDE1NzRjNDQzMzRiMTNlOThhODU3MjRmNTZlZDBmLi44ZWU2MWYw
YzgxMzE3ZDUwNjhmZDFmMmY4MTMzMzkzYTE3OGI5MDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oCkBAIC0xODUsMjIgKzE4NSw2IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHJldHVybiBjaGlsZHJlbi0+bGFzdENoaWxkKCk7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KLSAgICBSZW5kZXJPYmplY3QqIGJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlcigpIGNvbnN0
Ci0gICAgewotICAgICAgICBpZiAoY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJl
biA9IHZpcnR1YWxDaGlsZHJlbigpKQotICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuLT5iZWZv
cmVQc2V1ZG9FbGVtZW50UmVuZGVyZXIodGhpcyk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0K
LQotICAgIC8vIFRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIHRoZSByZW5kZXJlciBvZiB0aGUg
ImFmdGVyIiBwc2V1ZG9FbGVtZW50IGlmIGl0IGlzIGEgY2hpbGQgb2YKLSAgICAvLyB0aGlzIHJl
bmRlcmVyLiBJZiAiY29udGludWF0aW9ucyIgZXhpc3QsIHRoZSBmdW5jdGlvbiByZXR1cm5zIDAg
ZXZlbiBpZiB0aGUgZWxlbWVudCB0aGF0Ci0gICAgLy8gZ2VuZXJhdGVkIHRoaXMgcmVuZGVyZXIg
aGFzIGFuICJhZnRlciIgcHNldWRvLWVsZW1lbnQuCi0gICAgUmVuZGVyT2JqZWN0KiBhZnRlclBz
ZXVkb0VsZW1lbnRSZW5kZXJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoY29uc3QgUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbiA9IHZpcnR1YWxDaGlsZHJlbigpKQotICAgICAg
ICAgICAgcmV0dXJuIGNoaWxkcmVuLT5hZnRlclBzZXVkb0VsZW1lbnRSZW5kZXJlcih0aGlzKTsK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGls
ZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGNvbnN0
IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4g
MDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENo
aWxkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0LmNwcAppbmRleCBlMjcyNGJmNmY1NjM5NjgyMjkxZmU2OTNmMTUwMDFlNTQzZWUwMmM5Li5h
Y2IwMTMzMTZkMWNlZmYzNDJhZmY3ODcwN2YyM2Y1ZmRmMmYxNDgyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcApAQCAtMTg1LDUw
ICsxODUsNCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2RlKFJl
bmRlck9iamVjdCogb3duZXIsIFJlbmRlck9iamVjdCogYwogICAgICAgICBvd25lci0+ZG9jdW1l
bnQoKS0+YXhPYmplY3RDYWNoZSgpLT5jaGlsZHJlbkNoYW5nZWQob3duZXIpOwogfQogCi1SZW5k
ZXJPYmplY3QqIFJlbmRlck9iamVjdENoaWxkTGlzdDo6YmVmb3JlUHNldWRvRWxlbWVudFJlbmRl
cmVyKGNvbnN0IFJlbmRlck9iamVjdCogb3duZXIpIGNvbnN0Ci17Ci0gICAgLy8gQW4gYW5vbnlt
b3VzIChnZW5lcmF0ZWQpIGlubGluZSBydW4taW4gdGhhdCBoYXMgUHNldWRvSWQgQkVGT1JFIG11
c3QgY29tZSBmcm9tIGEgZ3JhbmRwYXJlbnQuCi0gICAgLy8gVGhlcmVmb3JlIHdlIHNob3VsZCBz
a2lwIHRoZXNlIGdlbmVyYXRlZCBydW4taW5zIHdoZW4gY2hlY2tpbmcgb3VyIGltbWVkaWF0ZSBj
aGlsZHJlbi4KLSAgICAvLyBJZiB3ZSBkb24ndCBmaW5kIG91ciA6YmVmb3JlIGNoaWxkIGltbWVk
aWF0ZWx5LCB0aGVuIHdlIHNob3VsZCBjaGVjayBpZiB3ZSBvd24gYQotICAgIC8vIGdlbmVyYXRl
ZCBpbmxpbmUgcnVuLWluIGluIHRoZSBuZXh0IGxldmVsIG9mIGNoaWxkcmVuLgotICAgIFJlbmRl
ck9iamVjdCogZmlyc3QgPSBjb25zdF9jYXN0PFJlbmRlck9iamVjdCo+KG93bmVyKTsKLSAgICBk
byB7Ci0gICAgICAgIGZpcnN0ID0gZmlyc3QtPmZpcnN0Q2hpbGQoKTsKLSAgICAgICAgLy8gU2tp
cCBsaXN0IG1hcmtlcnMgYW5kIGdlbmVyYXRlZCBydW4taW5zLgotICAgICAgICB3aGlsZSAoZmly
c3QgJiYgKGZpcnN0LT5pc0xpc3RNYXJrZXIoKSB8fCAoZmlyc3QtPmlzUmVuZGVySW5saW5lKCkg
JiYgZmlyc3QtPmlzUnVuSW4oKSkpKQotICAgICAgICAgICAgZmlyc3QgPSBmaXJzdC0+bmV4dElu
UHJlT3JkZXJBZnRlckNoaWxkcmVuKG93bmVyKTsKLSAgICB9IHdoaWxlIChmaXJzdCAmJiBmaXJz
dC0+aXNBbm9ueW1vdXMoKSAmJiBmaXJzdC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkgPT0gTk9QU0VV
RE8pOwotCi0gICAgaWYgKCFmaXJzdCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoZmly
c3QtPmlzQmVmb3JlQ29udGVudCgpKQotICAgICAgICByZXR1cm4gZmlyc3Q7Ci0KLSAgICAvLyBD
aGVjayBmb3IgYSBwb3NzaWJsZSBnZW5lcmF0ZWQgcnVuLWluLCB1c2luZyBydW4taW4gcG9zaXRp
b25pbmcgcnVsZXMuCi0gICAgZmlyc3QgPSBvd25lci0+Zmlyc3RDaGlsZCgpOwotICAgIGlmICgh
Zmlyc3QtPmlzUmVuZGVyQmxvY2soKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgCi0gICAgZmly
c3QgPSBmaXJzdC0+Zmlyc3RDaGlsZCgpOwotICAgIC8vIFdlIHN0aWxsIG5lZWQgdG8gc2tpcCBh
bnkgbGlzdCBtYXJrZXJzIHRoYXQgY291bGQgZXhpc3QgYmVmb3JlIHRoZSBydW4taW4uCi0gICAg
d2hpbGUgKGZpcnN0ICYmIGZpcnN0LT5pc0xpc3RNYXJrZXIoKSkKLSAgICAgICAgZmlyc3QgPSBm
aXJzdC0+bmV4dFNpYmxpbmcoKTsKLSAgICBpZiAoZmlyc3QgJiYgZmlyc3QtPmlzQmVmb3JlQ29u
dGVudCgpICYmIGZpcnN0LT5pc1JlbmRlcklubGluZSgpICYmIGZpcnN0LT5pc1J1bkluKCkpCi0g
ICAgICAgIHJldHVybiBmaXJzdDsKLSAgICAKLSAgICByZXR1cm4gMDsKLX0KLQotUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OmFmdGVyUHNldWRvRWxlbWVudFJlbmRlcmVyKGNv
bnN0IFJlbmRlck9iamVjdCogb3duZXIpIGNvbnN0Ci17Ci0gICAgUmVuZGVyT2JqZWN0KiBsYXN0
ID0gY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPihvd25lcik7Ci0gICAgZG8gewotICAgICAgICBs
YXN0ID0gbGFzdC0+bGFzdENoaWxkKCk7Ci0gICAgfSB3aGlsZSAobGFzdCAmJiBsYXN0LT5pc0Fu
b255bW91cygpICYmIGxhc3QtPnN0eWxlKCktPnN0eWxlVHlwZSgpID09IE5PUFNFVURPICYmICFs
YXN0LT5pc0xpc3RNYXJrZXIoKSk7Ci0gICAgaWYgKGxhc3QgJiYgIWxhc3QtPmlzQWZ0ZXJDb250
ZW50KCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBsYXN0OwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0LmgKaW5kZXggYjYzZjI0MmRlMWJmZjk5NTkzMDI5NDdjZDhjMGIzMWYzZThm
NjczZS4uZmY5YWI1NDAxNTNjZjg4YzI4MDIyNTZlMzMxOTQzMWIzYmU4YTM5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuaApAQCAtNTUs
OSArNTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0
KiBvd25lciwgUmVuZGVyT2JqZWN0KiwgYm9vbCBub3RpZnlSZW5kZXJlciA9IHRydWUpOwogICAg
IHZvaWQgaW5zZXJ0Q2hpbGROb2RlKFJlbmRlck9iamVjdCogb3duZXIsIFJlbmRlck9iamVjdCog
Y2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlLCBib29sIG5vdGlmeVJlbmRlcmVyID0gdHJ1ZSk7
CiAKLSAgICBSZW5kZXJPYmplY3QqIGJlZm9yZVBzZXVkb0VsZW1lbnRSZW5kZXJlcihjb25zdCBS
ZW5kZXJPYmplY3QqIG93bmVyKSBjb25zdDsKLSAgICBSZW5kZXJPYmplY3QqIGFmdGVyUHNldWRv
RWxlbWVudFJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogb3duZXIpIGNvbnN0OwotCiBwcml2
YXRlOgogICAgIFJlbmRlck9iamVjdCogbV9maXJzdENoaWxkOwogICAgIFJlbmRlck9iamVjdCog
bV9sYXN0Q2hpbGQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4
dC5jcHAKaW5kZXggZTgzODk4ZWY4NzdhZDYxOWEwMDZjM2RmN2ZjMzk5ZWM5MDczZGNkNi4uNzIz
NjJiOTljMjQwODg4ZTE0MDc0OTRlYjU0ZWM1MDNkNmQ3OTJlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtOTAxLDEyICs5MDEsMTAgQEAg
U3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKICAgICBUZXh0
U3RyZWFtIHN0cmVhbTsKICAgICBib29sIGlzRmlyc3RDb3VudGVyID0gdHJ1ZTsKICAgICAvLyBU
aGUgY291bnRlciByZW5kZXJlcnMgc2hvdWxkIGJlIGNoaWxkcmVuIG9mIDpiZWZvcmUgb3IgOmFm
dGVyIHBzZXVkby1lbGVtZW50cy4KLSAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVs
ZW1lbnQtPnJlbmRlcmVyKCkpIHsKLSAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcHNldWRvRWxl
bWVudCA9IHJlbmRlcmVyLT5iZWZvcmVQc2V1ZG9FbGVtZW50UmVuZGVyZXIoKSkKLSAgICAgICAg
ICAgIHdyaXRlQ291bnRlclZhbHVlc0Zyb21DaGlsZHJlbihzdHJlYW0sIHBzZXVkb0VsZW1lbnQs
IGlzRmlyc3RDb3VudGVyKTsKLSAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcHNldWRvRWxlbWVu
dCA9IHJlbmRlcmVyLT5hZnRlclBzZXVkb0VsZW1lbnRSZW5kZXJlcigpKQotICAgICAgICAgICAg
d3JpdGVDb3VudGVyVmFsdWVzRnJvbUNoaWxkcmVuKHN0cmVhbSwgcHNldWRvRWxlbWVudCwgaXNG
aXJzdENvdW50ZXIpOwotICAgIH0KKyAgICBpZiAoUmVuZGVyT2JqZWN0KiBiZWZvcmUgPSBlbGVt
ZW50LT5wc2V1ZG9FbGVtZW50UmVuZGVyZXIoQkVGT1JFKSkKKyAgICAgICAgd3JpdGVDb3VudGVy
VmFsdWVzRnJvbUNoaWxkcmVuKHN0cmVhbSwgYmVmb3JlLCBpc0ZpcnN0Q291bnRlcik7CisgICAg
aWYgKFJlbmRlck9iamVjdCogYWZ0ZXIgPSBlbGVtZW50LT5wc2V1ZG9FbGVtZW50UmVuZGVyZXIo
QUZURVIpKQorICAgICAgICB3cml0ZUNvdW50ZXJWYWx1ZXNGcm9tQ2hpbGRyZW4oc3RyZWFtLCBh
ZnRlciwgaXNGaXJzdENvdW50ZXIpOwogICAgIHJldHVybiBzdHJlYW0ucmVsZWFzZSgpOwogfQog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>