<?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>155579</bug_id>
          
          <creation_ts>2016-03-17 01:08:39 -0700</creation_ts>
          <short_desc>Reduce uses of PassRefPtr in WebCore/dom - 6</short_desc>
          <delta_ts>2016-03-20 23:05:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Local 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="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1175657</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-03-17 01:08:39 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175658</commentid>
    <comment_count>1</comment_count>
      <attachid>274269</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-03-17 01:09:26 -0700</bug_when>
    <thetext>Created attachment 274269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176125</commentid>
    <comment_count>2</comment_count>
      <attachid>274400</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-03-18 02:23:53 -0700</bug_when>
    <thetext>Created attachment 274400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176480</commentid>
    <comment_count>3</comment_count>
      <attachid>274512</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-03-19 00:44:54 -0700</bug_when>
    <thetext>Created attachment 274512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176495</commentid>
    <comment_count>4</comment_count>
      <attachid>274512</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-19 09:34:57 -0700</bug_when>
    <thetext>Comment on attachment 274512
Patch

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

Seems like some more of these should be Ref rather than RefPtr; I’m not sure they all need to support nulls.

&gt; Source/WebCore/dom/EventContext.h:46
&gt; +    EventContext(RefPtr&lt;Node&gt;&amp;&amp;, RefPtr&lt;EventTarget&gt;&amp;&amp; currentTarget, RefPtr&lt;EventTarget&gt;&amp;&amp;);

The single code path that makes all of these in EventPath does not pass ownership of anything. All three arguments should be raw pointers, not RefPtr&amp;&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176664</commentid>
    <comment_count>5</comment_count>
      <attachid>274572</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-03-20 21:24:15 -0700</bug_when>
    <thetext>Created attachment 274572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176676</commentid>
    <comment_count>6</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-03-20 22:13:43 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 274512 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=274512&amp;action=review
 
&gt; &gt; Source/WebCore/dom/EventContext.h:46
&gt; &gt; +    EventContext(RefPtr&lt;Node&gt;&amp;&amp;, RefPtr&lt;EventTarget&gt;&amp;&amp; currentTarget, RefPtr&lt;EventTarget&gt;&amp;&amp;);
&gt; 
&gt; The single code path that makes all of these in EventPath does not pass
&gt; ownership of anything. All three arguments should be raw pointers, not
&gt; RefPtr&amp;&amp;.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176682</commentid>
    <comment_count>7</comment_count>
      <attachid>274572</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-20 23:05:52 -0700</bug_when>
    <thetext>Comment on attachment 274572
Patch

Clearing flags on attachment: 274572

Committed r198483: &lt;http://trac.webkit.org/changeset/198483&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176683</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-20 23:05:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274269</attachid>
            <date>2016-03-17 01:09:26 -0700</date>
            <delta_ts>2016-03-18 02:23:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155579-20160317170914.patch</filename>
            <type>text/plain</type>
            <size>8688</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4MzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NhM2VjZGJjNmQ0MThm
ZWMzNWVlZTIyODMxNGMyMWM3ZWZiMGQyNS4uZjdiMGI4ZDBmYWQ4ZjNmYjY1NmVkN2FiNjc1Y2Fk
OWNmMjkwMTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTAzLTE3ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZWR1Y2UgdXNl
cyBvZiBQYXNzUmVmUHRyIGluIFdlYkNvcmUvZG9tIC0gNgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnRDaGFubmVsLmg6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YTo6RXZl
bnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hh
bm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0
Q2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBvc3RNZXNz
YWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwpOgorICAgICAgICAqIGRvbS9kZWZhdWx0L1Bs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
c3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhOjptZXNzYWdlKToKKwogMjAxNi0wMy0xNiAgTmlr
b3MgQW5kcm9uaWtvcyAgPG5pa29zLmFuZHJvbmlrb3Mtd2Via2l0QGNpc3JhLmNhbm9uLmNvbS5h
dT4KIAogICAgICAgICBTVkcgdGVhciBvZmZzIHNob3VsZCByZXR1cm4gYSBjb25zdCByZWZlcmVu
Y2UgaWYgcG9zc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9y
dENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRl
eCBhNzExZWZmNmYwZDIyOTkxOTAxMWI5MzMwOWJmNmI4ZmZlNTFkNGYxLi45ODVmMWM1M2FiZjBi
YjIxOWJjNmI5NGU2MjdkZWNiZDI1MjM1N2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZVBvcnRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQ
b3J0Q2hhbm5lbC5oCkBAIC01NSw4ICs1NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBj
bGFzcyBNZXNzYWdlUG9ydENoYW5uZWwgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShN
ZXNzYWdlUG9ydENoYW5uZWwpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6
Ci0gICAgICAgIGV4cGxpY2l0IE1lc3NhZ2VQb3J0Q2hhbm5lbChQYXNzUmVmUHRyPFBsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsPik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUNoYW5uZWwo
UGFzc1JlZlB0cjxNZXNzYWdlUG9ydD4sIFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+KTsKKyAgICAg
ICAgZXhwbGljaXQgTWVzc2FnZVBvcnRDaGFubmVsKFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0
Q2hhbm5lbD4mJik7CisgICAgICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUNoYW5uZWwoTWVzc2FnZVBv
cnQqLCBNZXNzYWdlUG9ydCopOwogCiAgICAgICAgIC8vIEVudGFuZ2xlcyB0aGUgY2hhbm5lbCB3
aXRoIGEgcG9ydCAoY2FsbGVkIHdoZW4gYSBwb3J0IGhhcyBiZWVuIGNsb25lZCwgYWZ0ZXIgdGhl
IGNsb25lIGhhcyBiZWVuIG1hcnNoYWxlZCB0byBpdHMgbmV3IG93bmluZyB0aHJlYWQgYW5kIGlz
IHJlYWR5IHRvIHJlY2VpdmUgbWVzc2FnZXMpLgogICAgICAgICAvLyBSZXR1cm5zIGZhbHNlIGlm
IHRoZSBlbnRhbmdsZW1lbnQgZmFpbGVkIGJlY2F1c2UgdGhlIHBvcnQgd2FzIGNsb3NlZC4KQEAg
LTc1LDcgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGhhc1BlbmRp
bmdBY3Rpdml0eSgpOwogCiAgICAgICAgIC8vIFNlbmRzIGEgbWVzc2FnZSBhbmQgb3B0aW9uYWwg
Y2xvbmVkIHBvcnQgdG8gdGhlIHJlbW90ZSBwb3J0LgotICAgICAgICB2b2lkIHBvc3RNZXNzYWdl
VG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KTsKKyAgICAgICAgdm9pZCBwb3N0TWVzc2FnZVRv
UmVtb3RlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxN
ZXNzYWdlUG9ydENoYW5uZWxBcnJheT4pOwogCiAgICAgICAgIC8vIEV4dHJhY3RzIGEgbWVzc2Fn
ZSBmcm9tIHRoZSBtZXNzYWdlIHF1ZXVlIGZvciB0aGlzIHBvcnQuCiAgICAgICAgIGJvb2wgdHJ5
R2V0TWVzc2FnZUZyb21SZW1vdGUoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mLCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAK
aW5kZXggZWVlMjU3NzhkYmEwOTYyNjg3ZjE3N2MzYjA2OTU0ZGYxMDYzMGU3Zi4uZGU4ZDNkYzFk
YTA2MjZlYTZmOGU1OGUyN2ExZTI3NDI0MTRkOWU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcApAQCAt
MzcsMTkgKzM3LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWw6OkV2ZW50RGF0YTo6RXZlbnREYXRhKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJy
YXk+IGNoYW5uZWxzKQotICAgIDogbV9tZXNzYWdlKG1lc3NhZ2UpCitQbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbDo6RXZlbnREYXRhOjpFdmVudERhdGEoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+
IGNoYW5uZWxzKQorICAgIDogbV9tZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpCiAgICAgLCBtX2No
YW5uZWxzKFdURk1vdmUoY2hhbm5lbHMpKQogewogfQogCi12b2lkIE1lc3NhZ2VQb3J0Q2hhbm5l
bDo6Y3JlYXRlQ2hhbm5lbChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0MSwgUGFzc1JlZlB0
cjxNZXNzYWdlUG9ydD4gcG9ydDIpCit2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hh
bm5lbChNZXNzYWdlUG9ydCogcG9ydDEsIE1lc3NhZ2VQb3J0KiBwb3J0MikKIHsKLSAgICBSZWZQ
dHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0UXVldWU+IHF1ZXVlMSA9
IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpNZXNzYWdlUG9ydFF1ZXVlOjpjcmVhdGUoKTsK
LSAgICBSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0UXVldWU+
IHF1ZXVlMiA9IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpNZXNzYWdlUG9ydFF1ZXVlOjpj
cmVhdGUoKTsKKyAgICBSZWY8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0
UXVldWU+IHF1ZXVlMSA9IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpNZXNzYWdlUG9ydFF1
ZXVlOjpjcmVhdGUoKTsKKyAgICBSZWY8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3Nh
Z2VQb3J0UXVldWU+IHF1ZXVlMiA9IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpNZXNzYWdl
UG9ydFF1ZXVlOjpjcmVhdGUoKTsKIAotICAgIGF1dG8gY2hhbm5lbDEgPSBzdGQ6Om1ha2VfdW5p
cXVlPE1lc3NhZ2VQb3J0Q2hhbm5lbD4oUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OmNyZWF0
ZShxdWV1ZTEsIHF1ZXVlMikpOwotICAgIGF1dG8gY2hhbm5lbDIgPSBzdGQ6Om1ha2VfdW5pcXVl
PE1lc3NhZ2VQb3J0Q2hhbm5lbD4oUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OmNyZWF0ZShx
dWV1ZTIsIHF1ZXVlMSkpOworICAgIGF1dG8gY2hhbm5lbDEgPSBzdGQ6Om1ha2VfdW5pcXVlPE1l
c3NhZ2VQb3J0Q2hhbm5lbD4oUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OmNyZWF0ZShxdWV1
ZTEucHRyKCksIHF1ZXVlMi5wdHIoKSkpOworICAgIGF1dG8gY2hhbm5lbDIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPE1lc3NhZ2VQb3J0Q2hhbm5lbD4oUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OmNy
ZWF0ZShxdWV1ZTIucHRyKCksIHF1ZXVlMS5wdHIoKSkpOwogCiAgICAgY2hhbm5lbDEtPm1fY2hh
bm5lbC0+bV9lbnRhbmdsZWRDaGFubmVsID0gY2hhbm5lbDItPm1fY2hhbm5lbDsKICAgICBjaGFu
bmVsMi0+bV9jaGFubmVsLT5tX2VudGFuZ2xlZENoYW5uZWwgPSBjaGFubmVsMS0+bV9jaGFubmVs
OwpAQCAtNTgsOCArNTgsOCBAQCB2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hhbm5l
bChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0MSwgUGFzc1JlZlB0cgogICAgIHBvcnQyLT5l
bnRhbmdsZShXVEZNb3ZlKGNoYW5uZWwxKSk7CiB9CiAKLU1lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVz
c2FnZVBvcnRDaGFubmVsKFBhc3NSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IGNo
YW5uZWwpCi0gICAgOiBtX2NoYW5uZWwoY2hhbm5lbCkKK01lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVz
c2FnZVBvcnRDaGFubmVsKFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4mJiBjaGFu
bmVsKQorICAgIDogbV9jaGFubmVsKFdURk1vdmUoY2hhbm5lbCkpCiB7CiB9CiAKQEAgLTg2LDEy
ICs4NiwxMiBAQCB2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6ZGlzZW50YW5nbGUoKQogICAgICAg
ICByZW1vdGUtPnNldFJlbW90ZVBvcnQobnVsbHB0cik7CiB9CiAKLXZvaWQgTWVzc2FnZVBvcnRD
aGFubmVsOjpwb3N0TWVzc2FnZVRvUmVtb3RlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNo
YW5uZWxzKQordm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzKQogewogICAgIExvY2tIb2xkZXIgbG9jayht
X2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGlmICghbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUp
CiAgICAgICAgIHJldHVybjsKLSAgICBib29sIHdhc0VtcHR5ID0gbV9jaGFubmVsLT5tX291dGdv
aW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHkoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1l
c3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPihtZXNzYWdlLCBXVEZNb3ZlKGNoYW5uZWxzKSkp
OworICAgIGJvb2wgd2FzRW1wdHkgPSBtX2NoYW5uZWwtPm1fb3V0Z29pbmdRdWV1ZS0+YXBwZW5k
QW5kQ2hlY2tFbXB0eShzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVs
OjpFdmVudERhdGE+KFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoY2hhbm5lbHMpKSk7CiAgICAg
aWYgKHdhc0VtcHR5ICYmIG1fY2hhbm5lbC0+bV9yZW1vdGVQb3J0KQogICAgICAgICBtX2NoYW5u
ZWwtPm1fcmVtb3RlUG9ydC0+bWVzc2FnZUF2YWlsYWJsZSgpOwogfQpAQCAtMTQ2LDEyICsxNDYs
MTIgQEAgTWVzc2FnZVBvcnQqIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6bG9jYWxseUVudGFuZ2xlZFBv
cnQoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGUKICAgICByZXR1cm4gMDsKIH0KIAotUmVmPFBs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3Jl
YXRlKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnRRdWV1ZT4gaW5jb21pbmcsIFBhc3NSZWZQdHI8TWVz
c2FnZVBvcnRRdWV1ZT4gb3V0Z29pbmcpCitSZWY8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+
IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpjcmVhdGUoTWVzc2FnZVBvcnRRdWV1ZSogaW5j
b21pbmcsIE1lc3NhZ2VQb3J0UXVldWUqIG91dGdvaW5nKQogewogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsKGluY29taW5nLCBvdXRnb2luZykpOwog
fQogCi1QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBpbmNvbWluZywgUGFzc1JlZlB0cjxNZXNz
YWdlUG9ydFF1ZXVlPiBvdXRnb2luZykKK1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpQbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbChNZXNzYWdlUG9ydFF1ZXVlKiBpbmNvbWluZywgTWVzc2Fn
ZVBvcnRRdWV1ZSogb3V0Z29pbmcpCiAgICAgOiBtX2luY29taW5nUXVldWUoaW5jb21pbmcpCiAg
ICAgLCBtX291dGdvaW5nUXVldWUob3V0Z29pbmcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRleCBmNDVm
ZjIyMGJmNmI0ZTcxMDU3YmQ1N2FhODdhZTkzYzQ5Nzg1M2YzLi4zNWRkOGUxNzIzM2FkZGExYzhj
NDJlMjM5MDhjODRhOGVjNjk2ZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vZGVm
YXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgKQEAgLTM0LDcgKzM0LDYgQEAK
ICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5uZWwuaCIKIAogI2luY2x1ZGUgPHd0Zi9NZXNzYWdl
UXVldWUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDksOSArNDgsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGNsYXNzIEV2ZW50RGF0YSB7CiAgICAgICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShFdmVudERhdGEpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAg
ICAgICAgcHVibGljOgotICAgICAgICAgICAgRXZlbnREYXRhKFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVs
QXJyYXk+KTsKKyAgICAgICAgICAgIEV2ZW50RGF0YShSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4p
OwogCi0gICAgICAgICAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2Fn
ZSgpIHsgcmV0dXJuIG1fbWVzc2FnZTsgfQorICAgICAgICAgICAgUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gbWVzc2FnZSgpIHsgcmV0dXJuIG1fbWVzc2FnZTsgfQogICAgICAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscygpIHsgcmV0
dXJuIFdURk1vdmUobV9jaGFubmVscyk7IH0KIAogICAgICAgICBwcml2YXRlOgpAQCAtODcsOCAr
ODYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgflBsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsKCk7CiAKLSAgICAgICAgc3RhdGljIFJlZjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbD4gY3JlYXRlKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnRRdWV1ZT4gaW5jb21pbmcsIFBhc3NS
ZWZQdHI8TWVzc2FnZVBvcnRRdWV1ZT4gb3V0Z29pbmcpOwotICAgICAgICBQbGF0Zm9ybU1lc3Nh
Z2VQb3J0Q2hhbm5lbChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0UXVldWU+IGluY29taW5nLCBQYXNz
UmVmUHRyPE1lc3NhZ2VQb3J0UXVldWU+IG91dGdvaW5nKTsKKyAgICAgICAgc3RhdGljIFJlZjxQ
bGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gY3JlYXRlKE1lc3NhZ2VQb3J0UXVldWUqIGluY29t
aW5nLCBNZXNzYWdlUG9ydFF1ZXVlKiBvdXRnb2luZyk7CisgICAgICAgIFBsYXRmb3JtTWVzc2Fn
ZVBvcnRDaGFubmVsKE1lc3NhZ2VQb3J0UXVldWUqIGluY29taW5nLCBNZXNzYWdlUG9ydFF1ZXVl
KiBvdXRnb2luZyk7CiAKICAgICAgICAgUmVmUHRyPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVs
PiBlbnRhbmdsZWRDaGFubmVsKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274400</attachid>
            <date>2016-03-18 02:23:53 -0700</date>
            <delta_ts>2016-03-19 00:44:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155579-20160318182351.patch</filename>
            <type>text/plain</type>
            <size>16112</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4Mzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2VmOGFmOGYwZWY3YjY0
MWI0NDBkMzg2NjMyZTEwYTUzOTA2MDM3ZC4uMjY2NTc3MWYzNjVhODU2OGI2YzUzMjliOGUxNDNm
ODE4NGI2MWMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTAzLTE3ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZWR1Y2UgdXNl
cyBvZiBQYXNzUmVmUHRyIGluIFdlYkNvcmUvZG9tIC0gNgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnRDaGFubmVsLmg6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YTo6RXZl
bnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hh
bm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0
Q2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBvc3RNZXNz
YWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwpOgorICAgICAgICAqIGRvbS9kZWZhdWx0L1Bs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
c3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhOjptZXNzYWdlKToKKwogMjAxNi0wMy0xNyAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbWFNTIEF1ZGl0b3Jd
IE9mZiBieSBvbmUgaW4gWFNTQXVkaXRvcjo6Y2Fub25pY2FsaXplZFNuaXBwZXRGb3JKYXZhU2Ny
aXB0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwCmluZGV4IDViOWY5MDliZWU3
YWYyMGFiMzllNTNiMDRhMDQ5NTEzNGNkYTRhYTguLjdmMWQ0Y2FmOWFkODdjYTVlM2Q5NzFkZjlj
Y2I2Zjk1OTc3ZmNjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcApAQCAt
MTI1LDcgKzEyNSw3IEBAIERvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcih1bnNpZ25lZCBz
dGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBib29sIGFjCiAgICAgQVNTRVJUKG1fZGV0
YWlscyk7CiB9CiAKLURvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5
cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIFBhc3NSZWZQdHI8
RG9jdW1lbnRNYXJrZXJEZXRhaWxzPiBkZXRhaWxzKQorRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50
TWFya2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVu
ZE9mZnNldCwgUmVmUHRyPERvY3VtZW50TWFya2VyRGV0YWlscz4mJiBkZXRhaWxzKQogICAgIDog
bV90eXBlKHR5cGUpCiAgICAgLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KQogICAgICwgbV9l
bmRPZmZzZXQoZW5kT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAppbmRleCA5
YzY2ZTMzZTk1NmQ0NjNiOWExZDA5MWRhMDgwMmE5NDEyYzhhN2E0Li5kYWUwYjZlZGFkNWZkYzY3
YTUxNDRhMTg5Zjk4ODAyMDE4N2E5NjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIu
aApAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1hcmtlcihNYXJrZXJU
eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBjb25zdCBTdHJp
bmcmIGRlc2NyaXB0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVzLCBSZXRh
aW5QdHI8aWQ+IG1ldGFkYXRhKTsKICNlbmRpZgogICAgIERvY3VtZW50TWFya2VyKHVuc2lnbmVk
IHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGJvb2wgYWN0aXZlTWF0Y2gpOwotICAg
IERvY3VtZW50TWFya2VyKE1hcmtlclR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25l
ZCBlbmRPZmZzZXQsIFBhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJEZXRhaWxzPik7CisgICAgRG9j
dW1lbnRNYXJrZXIoTWFya2VyVHlwZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVu
ZE9mZnNldCwgUmVmUHRyPERvY3VtZW50TWFya2VyRGV0YWlscz4mJik7CiAKICAgICBNYXJrZXJU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICB1bnNpZ25lZCBzdGFydE9m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRPZmZzZXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKaW5kZXggOWQ0YjY1MmI1ZGE4ODZj
M2ViMmVkZjlmNWFjYTRkOWJlNGIyMDRlMS4uMzgyMjkyNTcwNGJjN2UzNDIxYjUwZGQ2YzM3Y2U3
MTJlOWE5MDM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5jcHAKQEAgLTgzLDkgKzgzLDkgQEAgdm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXI6OmFkZE1hcmtlclRvTm9kZShOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwKICAg
ICBhZGRNYXJrZXIobm9kZSwgRG9jdW1lbnRNYXJrZXIodHlwZSwgc3RhcnRPZmZzZXQsIHN0YXJ0
T2Zmc2V0ICsgbGVuZ3RoKSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjph
ZGRNYXJrZXJUb05vZGUoTm9kZSogbm9kZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVk
IGxlbmd0aCwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZSwgUGFzc1JlZlB0cjxEb2N1
bWVudE1hcmtlckRldGFpbHM+IGRldGFpbHMpCit2b2lkIERvY3VtZW50TWFya2VyQ29udHJvbGxl
cjo6YWRkTWFya2VyVG9Ob2RlKE5vZGUqIG5vZGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlIHR5cGUsIFJlZlB0cjxEb2N1
bWVudE1hcmtlckRldGFpbHM+JiYgZGV0YWlscykKIHsKLSAgICBhZGRNYXJrZXIobm9kZSwgRG9j
dW1lbnRNYXJrZXIodHlwZSwgc3RhcnRPZmZzZXQsIHN0YXJ0T2Zmc2V0ICsgbGVuZ3RoLCBkZXRh
aWxzKSk7CisgICAgYWRkTWFya2VyKG5vZGUsIERvY3VtZW50TWFya2VyKHR5cGUsIHN0YXJ0T2Zm
c2V0LCBzdGFydE9mZnNldCArIGxlbmd0aCwgV1RGTW92ZShkZXRhaWxzKSkpOwogfQogCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAppbmRleCAxYzkw
ZjdkYzk1YzM3ZmVkNzE5MzJhNmVlMzBmMTE1ODljYTJlODM1Li40YmMwNjkwYTE1Y2NmYmUwMzA2
ZmJmNTA0ODk0MmIzM2RjYTMzMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZE1hcmtlcihSYW5nZSosIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlKTsKICAgICB2b2lkIGFk
ZE1hcmtlcihSYW5nZSosIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uKTsKICAgICB2b2lkIGFkZE1hcmtlclRvTm9kZShOb2RlKiwgdW5zaWduZWQg
c3RhcnRPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUp
OwotICAgIHZvaWQgYWRkTWFya2VyVG9Ob2RlKE5vZGUqLCB1bnNpZ25lZCBzdGFydE9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSwgUGFzc1JlZlB0cjxE
b2N1bWVudE1hcmtlckRldGFpbHM+KTsKKyAgICB2b2lkIGFkZE1hcmtlclRvTm9kZShOb2RlKiwg
dW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgRG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGUsIFJlZlB0cjxEb2N1bWVudE1hcmtlckRldGFpbHM+JiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgYWRkVGV4dE1hdGNoTWFya2VyKGNvbnN0IFJhbmdlKiwgYm9vbCBhY3RpdmVN
YXRjaCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgYWRkTWFya2VyKFJhbmdlKiwgRG9j
dW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBpbnRlcnByZXRhdGlvbnMsIGNvbnN0IFJldGFpblB0cjxpZD4mIG1l
dGFkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Q29udGV4dC5jcHAKaW5kZXggZDMzNjM0ZGQzOTNl
ZTIyNzM1Mzc2Yzc2YjIyOTY1ZjBhNWQ0N2QxMS4uZTNkZjUxOTEzZTFkZWJjMzgxZmIwNWI0MGJm
ODY4Y2JlZTJhNTY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Q29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Q29udGV4dC5jcHAKQEAgLTM0LDEw
ICszNCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV2ZW50Q29udGV4dDo6RXZlbnRD
b250ZXh0KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gY3Vy
cmVudFRhcmdldCwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gdGFyZ2V0KQotICAgIDogbV9ub2Rl
KG5vZGUpCi0gICAgLCBtX2N1cnJlbnRUYXJnZXQoY3VycmVudFRhcmdldCkKLSAgICAsIG1fdGFy
Z2V0KHRhcmdldCkKK0V2ZW50Q29udGV4dDo6RXZlbnRDb250ZXh0KFJlZlB0cjxOb2RlPiYmIG5v
ZGUsIFJlZlB0cjxFdmVudFRhcmdldD4mJiBjdXJyZW50VGFyZ2V0LCBSZWZQdHI8RXZlbnRUYXJn
ZXQ+JiYgdGFyZ2V0KQorICAgIDogbV9ub2RlKFdURk1vdmUobm9kZSkpCisgICAgLCBtX2N1cnJl
bnRUYXJnZXQoV1RGTW92ZShjdXJyZW50VGFyZ2V0KSkKKyAgICAsIG1fdGFyZ2V0KFdURk1vdmUo
dGFyZ2V0KSkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKICAgICBBU1NFUlQoIWlzVW5yZWFjaGFi
bGVOb2RlKG1fdGFyZ2V0LmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRDb250ZXh0LmgKaW5kZXgg
YThhZWRhYjI4ZDM1ZmQ0NGViZWU2NWE5OWMxZjQ4ZjMyZTI5MTU0OC4uZjg0MjJmYjI4MjE5MDVi
YTI3NjNlOGZjNzA5YzI2NzUxM2ExYjJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQuaApA
QCAtNDMsNyArNDMsNyBAQCBjbGFzcyBFdmVudENvbnRleHQgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIC8vIEZJWE1FOiBVc2UgQ29udGFpbmVyTm9kZSBpbnN0
ZWFkIG9mIE5vZGUuCi0gICAgRXZlbnRDb250ZXh0KFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQ
dHI8RXZlbnRUYXJnZXQ+IGN1cnJlbnRUYXJnZXQsIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHRh
cmdldCk7CisgICAgRXZlbnRDb250ZXh0KFJlZlB0cjxOb2RlPiYmLCBSZWZQdHI8RXZlbnRUYXJn
ZXQ+JiYgY3VycmVudFRhcmdldCwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYmKTsKICAgICB2aXJ0dWFs
IH5FdmVudENvbnRleHQoKTsKIAogICAgIE5vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBtX25v
ZGUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggZGRk
NzY5YWFhZjJiN2FlZjAxNDEyZjhmM2IwY2M3ZmJmMWE4MWQ4OS4uMWM5M2E0YTU4NjllNDQwM2U1
YWM2Y2M3YjAyZjJjNGZmZjVjOWI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hl
ci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXaW5k
b3dFdmVudENvbnRleHQgewogcHVibGljOgotICAgIFdpbmRvd0V2ZW50Q29udGV4dChQYXNzUmVm
UHRyPE5vZGU+LCBjb25zdCBFdmVudENvbnRleHQqKTsKKyAgICBXaW5kb3dFdmVudENvbnRleHQo
Tm9kZSosIGNvbnN0IEV2ZW50Q29udGV4dCopOwogCiAgICAgRE9NV2luZG93KiB3aW5kb3coKSBj
b25zdCB7IHJldHVybiBtX3dpbmRvdy5nZXQoKTsgfQogICAgIEV2ZW50VGFyZ2V0KiB0YXJnZXQo
KSBjb25zdCB7IHJldHVybiBtX3RhcmdldC5nZXQoKTsgfQpAQCAtNTIsMTQgKzUyLDE0IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKIH07CiAKLVdpbmRvd0V2
ZW50Q29udGV4dDo6V2luZG93RXZlbnRDb250ZXh0KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgY29u
c3QgRXZlbnRDb250ZXh0KiB0b3BFdmVudENvbnRleHQpCitXaW5kb3dFdmVudENvbnRleHQ6Oldp
bmRvd0V2ZW50Q29udGV4dChOb2RlKiBub2RlLCBjb25zdCBFdmVudENvbnRleHQqIHRvcEV2ZW50
Q29udGV4dCkKIHsKLSAgICBOb2RlKiB0b3BMZXZlbENvbnRhaW5lciA9IHRvcEV2ZW50Q29udGV4
dCA/IHRvcEV2ZW50Q29udGV4dC0+bm9kZSgpIDogbm9kZS5nZXQoKTsKKyAgICBOb2RlKiB0b3BM
ZXZlbENvbnRhaW5lciA9IHRvcEV2ZW50Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+bm9kZSgp
IDogbm9kZTsKICAgICBpZiAoIWlzPERvY3VtZW50PigqdG9wTGV2ZWxDb250YWluZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX3dpbmRvdyA9IGRvd25jYXN0PERvY3VtZW50PigqdG9wTGV2
ZWxDb250YWluZXIpLmRvbVdpbmRvdygpOwotICAgIG1fdGFyZ2V0ID0gdG9wRXZlbnRDb250ZXh0
ID8gdG9wRXZlbnRDb250ZXh0LT50YXJnZXQoKSA6IG5vZGUuZ2V0KCk7CisgICAgbV90YXJnZXQg
PSB0b3BFdmVudENvbnRleHQgPyB0b3BFdmVudENvbnRleHQtPnRhcmdldCgpIDogbm9kZTsKIH0K
IAogYm9vbCBXaW5kb3dFdmVudENvbnRleHQ6OmhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50JiBldmVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRleCBhNzExZWZmNmYw
ZDIyOTkxOTAxMWI5MzMwOWJmNmI4ZmZlNTFkNGYxLi45ODVmMWM1M2FiZjBiYjIxOWJjNmI5NGU2
MjdkZWNiZDI1MjM1N2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBv
cnRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5o
CkBAIC01NSw4ICs1NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBNZXNzYWdl
UG9ydENoYW5uZWwgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZXNzYWdlUG9ydENo
YW5uZWwpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIGV4
cGxpY2l0IE1lc3NhZ2VQb3J0Q2hhbm5lbChQYXNzUmVmUHRyPFBsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsPik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUNoYW5uZWwoUGFzc1JlZlB0cjxN
ZXNzYWdlUG9ydD4sIFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+KTsKKyAgICAgICAgZXhwbGljaXQg
TWVzc2FnZVBvcnRDaGFubmVsKFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4mJik7
CisgICAgICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUNoYW5uZWwoTWVzc2FnZVBvcnQqLCBNZXNzYWdl
UG9ydCopOwogCiAgICAgICAgIC8vIEVudGFuZ2xlcyB0aGUgY2hhbm5lbCB3aXRoIGEgcG9ydCAo
Y2FsbGVkIHdoZW4gYSBwb3J0IGhhcyBiZWVuIGNsb25lZCwgYWZ0ZXIgdGhlIGNsb25lIGhhcyBi
ZWVuIG1hcnNoYWxlZCB0byBpdHMgbmV3IG93bmluZyB0aHJlYWQgYW5kIGlzIHJlYWR5IHRvIHJl
Y2VpdmUgbWVzc2FnZXMpLgogICAgICAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHRoZSBlbnRhbmds
ZW1lbnQgZmFpbGVkIGJlY2F1c2UgdGhlIHBvcnQgd2FzIGNsb3NlZC4KQEAgLTc1LDcgKzc1LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgp
OwogCiAgICAgICAgIC8vIFNlbmRzIGEgbWVzc2FnZSBhbmQgb3B0aW9uYWwgY2xvbmVkIHBvcnQg
dG8gdGhlIHJlbW90ZSBwb3J0LgotICAgICAgICB2b2lkIHBvc3RNZXNzYWdlVG9SZW1vdGUoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBv
cnRDaGFubmVsQXJyYXk+KTsKKyAgICAgICAgdm9pZCBwb3N0TWVzc2FnZVRvUmVtb3RlKFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENo
YW5uZWxBcnJheT4pOwogCiAgICAgICAgIC8vIEV4dHJhY3RzIGEgbWVzc2FnZSBmcm9tIHRoZSBt
ZXNzYWdlIHF1ZXVlIGZvciB0aGlzIHBvcnQuCiAgICAgICAgIGJvb2wgdHJ5R2V0TWVzc2FnZUZy
b21SZW1vdGUoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mLCBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU3RhdGljTm9kZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5o
CmluZGV4IGIzZjVkZDBjMWIzMTc0NmJkNDgzYmIyNTcyOGZjYWM1YjlkNmZjYmYuLmU1MjNjOWIw
YTIxMzlmMzNiMzI0YjA1MGVhNzMxNjk2NTNiZmI1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNO
b2RlTGlzdC5oCkBAIC0zOSwxMSArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBTdGF0aWNOb2RlTGlzdCBmaW5hbCA6IHB1YmxpYyBOb2RlTGlzdCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RhdGljTm9kZUxpc3Q+IGFkb3B0KFZl
Y3RvcjxSZWY8Tm9kZT4+JiBub2RlcykKKyAgICBzdGF0aWMgUmVmPFN0YXRpY05vZGVMaXN0PiBh
ZG9wdChWZWN0b3I8UmVmPE5vZGU+PiYgbm9kZXMpCiAgICAgewotICAgICAgICBSZWZQdHI8U3Rh
dGljTm9kZUxpc3Q+IG5vZGVMaXN0ID0gYWRvcHRSZWYobmV3IFN0YXRpY05vZGVMaXN0KTsKKyAg
ICAgICAgUmVmPFN0YXRpY05vZGVMaXN0PiBub2RlTGlzdCA9IGFkb3B0UmVmKCpuZXcgU3RhdGlj
Tm9kZUxpc3QpOwogICAgICAgICBub2RlTGlzdC0+bV9ub2Rlcy5zd2FwKG5vZGVzKTsKLSAgICAg
ICAgcmV0dXJuIG5vZGVMaXN0LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIG5vZGVMaXN0Owog
ICAgIH0KIAogICAgIHN0YXRpYyBSZWY8U3RhdGljTm9kZUxpc3Q+IGNyZWF0ZUVtcHR5KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsLmNwcAppbmRleCBlZWUyNTc3OGRiYTA5NjI2ODdmMTc3YzNiMDY5NTRkZjEwNjMw
ZTdmLi5kZThkM2RjMWRhMDYyNmVhNmY4ZTU4ZTI3YTFlMjc0MjQxNGQ5ZTdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENo
YW5uZWwuY3BwCkBAIC0zNywxOSArMzcsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Q
bGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhOjpFdmVudERhdGEoUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdl
UG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMpCi0gICAgOiBtX21lc3NhZ2UobWVzc2FnZSkKK1Bs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpFdmVudERhdGE6OkV2ZW50RGF0YShSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9y
dENoYW5uZWxBcnJheT4gY2hhbm5lbHMpCisgICAgOiBtX21lc3NhZ2UoV1RGTW92ZShtZXNzYWdl
KSkKICAgICAsIG1fY2hhbm5lbHMoV1RGTW92ZShjaGFubmVscykpCiB7CiB9CiAKLXZvaWQgTWVz
c2FnZVBvcnRDaGFubmVsOjpjcmVhdGVDaGFubmVsKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+IHBv
cnQxLCBQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0MikKK3ZvaWQgTWVzc2FnZVBvcnRDaGFu
bmVsOjpjcmVhdGVDaGFubmVsKE1lc3NhZ2VQb3J0KiBwb3J0MSwgTWVzc2FnZVBvcnQqIHBvcnQy
KQogewotICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVzc2FnZVBvcnRR
dWV1ZT4gcXVldWUxID0gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0UXVl
dWU6OmNyZWF0ZSgpOwotICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVz
c2FnZVBvcnRRdWV1ZT4gcXVldWUyID0gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3Nh
Z2VQb3J0UXVldWU6OmNyZWF0ZSgpOworICAgIFJlZjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6TWVzc2FnZVBvcnRRdWV1ZT4gcXVldWUxID0gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6
Ok1lc3NhZ2VQb3J0UXVldWU6OmNyZWF0ZSgpOworICAgIFJlZjxQbGF0Zm9ybU1lc3NhZ2VQb3J0
Q2hhbm5lbDo6TWVzc2FnZVBvcnRRdWV1ZT4gcXVldWUyID0gUGxhdGZvcm1NZXNzYWdlUG9ydENo
YW5uZWw6Ok1lc3NhZ2VQb3J0UXVldWU6OmNyZWF0ZSgpOwogCi0gICAgYXV0byBjaGFubmVsMSA9
IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZVBvcnRDaGFubmVsPihQbGF0Zm9ybU1lc3NhZ2VQb3J0
Q2hhbm5lbDo6Y3JlYXRlKHF1ZXVlMSwgcXVldWUyKSk7Ci0gICAgYXV0byBjaGFubmVsMiA9IHN0
ZDo6bWFrZV91bmlxdWU8TWVzc2FnZVBvcnRDaGFubmVsPihQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbDo6Y3JlYXRlKHF1ZXVlMiwgcXVldWUxKSk7CisgICAgYXV0byBjaGFubmVsMSA9IHN0ZDo6
bWFrZV91bmlxdWU8TWVzc2FnZVBvcnRDaGFubmVsPihQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6Y3JlYXRlKHF1ZXVlMS5wdHIoKSwgcXVldWUyLnB0cigpKSk7CisgICAgYXV0byBjaGFubmVs
MiA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZVBvcnRDaGFubmVsPihQbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbDo6Y3JlYXRlKHF1ZXVlMi5wdHIoKSwgcXVldWUxLnB0cigpKSk7CiAKICAgICBj
aGFubmVsMS0+bV9jaGFubmVsLT5tX2VudGFuZ2xlZENoYW5uZWwgPSBjaGFubmVsMi0+bV9jaGFu
bmVsOwogICAgIGNoYW5uZWwyLT5tX2NoYW5uZWwtPm1fZW50YW5nbGVkQ2hhbm5lbCA9IGNoYW5u
ZWwxLT5tX2NoYW5uZWw7CkBAIC01OCw4ICs1OCw4IEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVs
OjpjcmVhdGVDaGFubmVsKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+IHBvcnQxLCBQYXNzUmVmUHRy
CiAgICAgcG9ydDItPmVudGFuZ2xlKFdURk1vdmUoY2hhbm5lbDEpKTsKIH0KIAotTWVzc2FnZVBv
cnRDaGFubmVsOjpNZXNzYWdlUG9ydENoYW5uZWwoUGFzc1JlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbD4gY2hhbm5lbCkKLSAgICA6IG1fY2hhbm5lbChjaGFubmVsKQorTWVzc2FnZVBv
cnRDaGFubmVsOjpNZXNzYWdlUG9ydENoYW5uZWwoUmVmUHRyPFBsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsPiYmIGNoYW5uZWwpCisgICAgOiBtX2NoYW5uZWwoV1RGTW92ZShjaGFubmVsKSkKIHsK
IH0KIApAQCAtODYsMTIgKzg2LDEyIEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpkaXNlbnRh
bmdsZSgpCiAgICAgICAgIHJlbW90ZS0+c2V0UmVtb3RlUG9ydChudWxscHRyKTsKIH0KIAotdm9p
ZCBNZXNzYWdlUG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENo
YW5uZWxBcnJheT4gY2hhbm5lbHMpCit2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6cG9zdE1lc3Nh
Z2VUb1JlbW90ZShSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6
dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMpCiB7CiAgICAgTG9j
a0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgaWYgKCFtX2NoYW5uZWwtPm1f
b3V0Z29pbmdRdWV1ZSkKICAgICAgICAgcmV0dXJuOwotICAgIGJvb2wgd2FzRW1wdHkgPSBtX2No
YW5uZWwtPm1fb3V0Z29pbmdRdWV1ZS0+YXBwZW5kQW5kQ2hlY2tFbXB0eShzdGQ6Om1ha2VfdW5p
cXVlPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpFdmVudERhdGE+KG1lc3NhZ2UsIFdURk1v
dmUoY2hhbm5lbHMpKSk7CisgICAgYm9vbCB3YXNFbXB0eSA9IG1fY2hhbm5lbC0+bV9vdXRnb2lu
Z1F1ZXVlLT5hcHBlbmRBbmRDaGVja0VtcHR5KHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YT4oV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjaGFu
bmVscykpKTsKICAgICBpZiAod2FzRW1wdHkgJiYgbV9jaGFubmVsLT5tX3JlbW90ZVBvcnQpCiAg
ICAgICAgIG1fY2hhbm5lbC0+bV9yZW1vdGVQb3J0LT5tZXNzYWdlQXZhaWxhYmxlKCk7CiB9CkBA
IC0xNDYsMTIgKzE0NiwxMiBAQCBNZXNzYWdlUG9ydCogTWVzc2FnZVBvcnRDaGFubmVsOjpsb2Nh
bGx5RW50YW5nbGVkUG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZQogICAgIHJldHVybiAw
OwogfQogCi1SZWY8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IFBsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsOjpjcmVhdGUoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBpbmNvbWluZywg
UGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBvdXRnb2luZykKK1JlZjxQbGF0Zm9ybU1lc3Nh
Z2VQb3J0Q2hhbm5lbD4gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OmNyZWF0ZShNZXNzYWdl
UG9ydFF1ZXVlKiBpbmNvbWluZywgTWVzc2FnZVBvcnRRdWV1ZSogb3V0Z29pbmcpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwoaW5jb21pbmcs
IG91dGdvaW5nKSk7CiB9CiAKLVBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpQbGF0Zm9ybU1l
c3NhZ2VQb3J0Q2hhbm5lbChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0UXVldWU+IGluY29taW5nLCBQ
YXNzUmVmUHRyPE1lc3NhZ2VQb3J0UXVldWU+IG91dGdvaW5nKQorUGxhdGZvcm1NZXNzYWdlUG9y
dENoYW5uZWw6OlBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsKE1lc3NhZ2VQb3J0UXVldWUqIGlu
Y29taW5nLCBNZXNzYWdlUG9ydFF1ZXVlKiBvdXRnb2luZykKICAgICA6IG1faW5jb21pbmdRdWV1
ZShpbmNvbWluZykKICAgICAsIG1fb3V0Z29pbmdRdWV1ZShvdXRnb2luZykKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVs
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bC5oCmluZGV4IGY0NWZmMjIwYmY2YjRlNzEwNTdiZDU3YWE4N2FlOTNjNDk3ODUzZjMuLjM1ZGQ4
ZTE3MjMzYWRkYTFjOGM0MmUyMzkwOGM4NGE4ZWM2OTZlZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaApAQCAt
MzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgogCiAjaW5jbHVk
ZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw5ICs0
OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY2xhc3MgRXZlbnREYXRhIHsKICAg
ICAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEV2ZW50RGF0YSk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBFdmVudERhdGEoUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlUG9ydENoYW5uZWxBcnJheT4pOworICAgICAgICAgICAgRXZlbnREYXRhKFJlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0
Q2hhbm5lbEFycmF5Pik7CiAKLSAgICAgICAgICAgIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtZXNzYWdlKCkgeyByZXR1cm4gbV9tZXNzYWdlOyB9CisgICAgICAgICAgICBSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlKCkgeyByZXR1cm4gbV9tZXNzYWdlOyB9
CiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNo
YW5uZWxzKCkgeyByZXR1cm4gV1RGTW92ZShtX2NoYW5uZWxzKTsgfQogCiAgICAgICAgIHByaXZh
dGU6CkBAIC04Nyw4ICs4Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB+UGxh
dGZvcm1NZXNzYWdlUG9ydENoYW5uZWwoKTsKIAotICAgICAgICBzdGF0aWMgUmVmPFBsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsPiBjcmVhdGUoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBp
bmNvbWluZywgUGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBvdXRnb2luZyk7Ci0gICAgICAg
IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnRRdWV1ZT4g
aW5jb21pbmcsIFBhc3NSZWZQdHI8TWVzc2FnZVBvcnRRdWV1ZT4gb3V0Z29pbmcpOworICAgICAg
ICBzdGF0aWMgUmVmPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiBjcmVhdGUoTWVzc2FnZVBv
cnRRdWV1ZSogaW5jb21pbmcsIE1lc3NhZ2VQb3J0UXVldWUqIG91dGdvaW5nKTsKKyAgICAgICAg
UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwoTWVzc2FnZVBvcnRRdWV1ZSogaW5jb21pbmcsIE1l
c3NhZ2VQb3J0UXVldWUqIG91dGdvaW5nKTsKIAogICAgICAgICBSZWZQdHI8UGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWw+IGVudGFuZ2xlZENoYW5uZWwoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274512</attachid>
            <date>2016-03-19 00:44:54 -0700</date>
            <delta_ts>2016-03-20 21:24:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155579-20160319164453.patch</filename>
            <type>text/plain</type>
            <size>18722</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGJmZmZjMmVlMjQ1ZjI4
YTU1ZDlmYmRhNDIyOGJkZjg4YTdiZTJhZC4uOGNlYzVmZDJjMmQ5MjcxZjRkNTc4YmY3NGUyYzRk
MzBkNzBkYmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTAzLTE4ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZWR1Y2UgdXNl
cyBvZiBQYXNzUmVmUHRyIGluIFdlYkNvcmUvZG9tIC0gNgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnRDaGFubmVsLmg6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YTo6RXZl
bnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hh
bm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0
Q2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBvc3RNZXNz
YWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwpOgorICAgICAgICAqIGRvbS9kZWZhdWx0L1Bs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
c3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhOjptZXNzYWdlKToKKwogMjAxNi0wMy0xOCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEdpdmUg
TlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhYm91dCBwYXJlbnQgcHJvY2Vz
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5jcHAKaW5kZXggNWI5ZjkwOWJlZTdhZjIw
YWIzOWU1M2IwNGEwNDk1MTM0Y2RhNGFhOC4uN2YxZDRjYWY5YWQ4N2NhNWUzZDk3MWRmOWNjYjZm
OTU5NzdmY2MwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwCkBAIC0xMjUs
NyArMTI1LDcgQEAgRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKHVuc2lnbmVkIHN0YXJ0
T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGJvb2wgYWMKICAgICBBU1NFUlQobV9kZXRhaWxz
KTsKIH0KIAotRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUgdHlwZSwg
dW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgUGFzc1JlZlB0cjxEb2N1
bWVudE1hcmtlckRldGFpbHM+IGRldGFpbHMpCitEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJr
ZXIoTWFya2VyVHlwZSB0eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zm
c2V0LCBSZWZQdHI8RG9jdW1lbnRNYXJrZXJEZXRhaWxzPiYmIGRldGFpbHMpCiAgICAgOiBtX3R5
cGUodHlwZSkKICAgICAsIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpCiAgICAgLCBtX2VuZE9m
ZnNldChlbmRPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRN
YXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCmluZGV4IDljNjZl
MzNlOTU2ZDQ2M2I5YTFkMDkxZGEwODAyYTk0MTJjOGE3YTQuLmRhZTBiNmVkYWQ1ZmRjNjdhNTE0
NGExODlmOTg4MDIwMTg3YTk2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudE1hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCkBA
IC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogICAgIERvY3VtZW50TWFya2VyKE1hcmtlclR5cGUs
IHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZXMsIFJldGFpblB0
cjxpZD4gbWV0YWRhdGEpOwogI2VuZGlmCiAgICAgRG9jdW1lbnRNYXJrZXIodW5zaWduZWQgc3Rh
cnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCBhY3RpdmVNYXRjaCk7Ci0gICAgRG9j
dW1lbnRNYXJrZXIoTWFya2VyVHlwZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVu
ZE9mZnNldCwgUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlckRldGFpbHM+KTsKKyAgICBEb2N1bWVu
dE1hcmtlcihNYXJrZXJUeXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zm
c2V0LCBSZWZQdHI8RG9jdW1lbnRNYXJrZXJEZXRhaWxzPiYmKTsKIAogICAgIE1hcmtlclR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0
KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydE9mZnNldDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcAppbmRleCA5ZDRiNjUyYjVkYTg4NmMzZWIy
ZWRmOWY1YWNhNGQ5YmU0YjIwNGUxLi4zODIyOTI1NzA0YmM3ZTM0MjFiNTBkZDZjMzdjZTcxMmU5
YTkwMzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyLmNwcApAQCAtODMsOSArODMsOSBAQCB2b2lkIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6
YWRkTWFya2VyVG9Ob2RlKE5vZGUqIG5vZGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LAogICAgIGFk
ZE1hcmtlcihub2RlLCBEb2N1bWVudE1hcmtlcih0eXBlLCBzdGFydE9mZnNldCwgc3RhcnRPZmZz
ZXQgKyBsZW5ndGgpKTsKIH0KIAotdm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmFkZE1h
cmtlclRvTm9kZShOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlLCBQYXNzUmVmUHRyPERvY3VtZW50
TWFya2VyRGV0YWlscz4gZGV0YWlscykKK3ZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjph
ZGRNYXJrZXJUb05vZGUoTm9kZSogbm9kZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVk
IGxlbmd0aCwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZSwgUmVmUHRyPERvY3VtZW50
TWFya2VyRGV0YWlscz4mJiBkZXRhaWxzKQogewotICAgIGFkZE1hcmtlcihub2RlLCBEb2N1bWVu
dE1hcmtlcih0eXBlLCBzdGFydE9mZnNldCwgc3RhcnRPZmZzZXQgKyBsZW5ndGgsIGRldGFpbHMp
KTsKKyAgICBhZGRNYXJrZXIobm9kZSwgRG9jdW1lbnRNYXJrZXIodHlwZSwgc3RhcnRPZmZzZXQs
IHN0YXJ0T2Zmc2V0ICsgbGVuZ3RoLCBXVEZNb3ZlKGRldGFpbHMpKSk7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCmluZGV4IDFjOTBmN2Rj
OTVjMzdmZWQ3MTkzMmE2ZWUzMGYxMTU4OWNhMmU4MzUuLjRiYzA2OTBhMTVjY2ZiZTAzMDZmYmY1
MDQ4OTQyYjMzZGNhMzMxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTWFy
a2VyKFJhbmdlKiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUpOwogICAgIHZvaWQgYWRkTWFy
a2VyKFJhbmdlKiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24pOwogICAgIHZvaWQgYWRkTWFya2VyVG9Ob2RlKE5vZGUqLCB1bnNpZ25lZCBzdGFy
dE9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSk7Ci0g
ICAgdm9pZCBhZGRNYXJrZXJUb05vZGUoTm9kZSosIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlLCBQYXNzUmVmUHRyPERvY3Vt
ZW50TWFya2VyRGV0YWlscz4pOworICAgIHZvaWQgYWRkTWFya2VyVG9Ob2RlKE5vZGUqLCB1bnNp
Z25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBEb2N1bWVudE1hcmtlcjo6TWFya2Vy
VHlwZSwgUmVmUHRyPERvY3VtZW50TWFya2VyRGV0YWlscz4mJik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBhZGRUZXh0TWF0Y2hNYXJrZXIoY29uc3QgUmFuZ2UqLCBib29sIGFjdGl2ZU1hdGNo
KTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRNYXJrZXIoUmFuZ2UqLCBEb2N1bWVu
dE1hcmtlcjo6TWFya2VyVHlwZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGludGVycHJldGF0aW9ucywgY29uc3QgUmV0YWluUHRyPGlkPiYgbWV0YWRh
dGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Q29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRDb250ZXh0LmNwcAppbmRleCBkMzM2MzRkZDM5M2VlMjI3
MzUzNzZjNzZiMjI5NjVmMGE1ZDQ3ZDExLi5lM2RmNTE5MTNlMWRlYmMzODFmYjA1YjQwYmY4Njhj
YmVlMmE1NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRDb250ZXh0LmNwcApAQCAtMzQsMTAgKzM0
LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRXZlbnRDb250ZXh0OjpFdmVudENvbnRl
eHQoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBjdXJyZW50
VGFyZ2V0LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiB0YXJnZXQpCi0gICAgOiBtX25vZGUobm9k
ZSkKLSAgICAsIG1fY3VycmVudFRhcmdldChjdXJyZW50VGFyZ2V0KQotICAgICwgbV90YXJnZXQo
dGFyZ2V0KQorRXZlbnRDb250ZXh0OjpFdmVudENvbnRleHQoUmVmUHRyPE5vZGU+JiYgbm9kZSwg
UmVmUHRyPEV2ZW50VGFyZ2V0PiYmIGN1cnJlbnRUYXJnZXQsIFJlZlB0cjxFdmVudFRhcmdldD4m
JiB0YXJnZXQpCisgICAgOiBtX25vZGUoV1RGTW92ZShub2RlKSkKKyAgICAsIG1fY3VycmVudFRh
cmdldChXVEZNb3ZlKGN1cnJlbnRUYXJnZXQpKQorICAgICwgbV90YXJnZXQoV1RGTW92ZSh0YXJn
ZXQpKQogewogICAgIEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VSVCghaXNVbnJlYWNoYWJsZU5v
ZGUobV90YXJnZXQuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQuaAppbmRleCBhOGFl
ZGFiMjhkMzVmZDQ0ZWJlZTY1YTk5YzFmNDhmMzJlMjkxNTQ4Li5mODQyMmZiMjgyMTkwNWJhMjc2
M2U4ZmM3MDljMjY3NTEzYTFiMmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Q29udGV4dC5oCkBAIC00
Myw3ICs0Myw3IEBAIGNsYXNzIEV2ZW50Q29udGV4dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFVzZSBDb250YWluZXJOb2RlIGluc3RlYWQg
b2YgTm9kZS4KLSAgICBFdmVudENvbnRleHQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxF
dmVudFRhcmdldD4gY3VycmVudFRhcmdldCwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gdGFyZ2V0
KTsKKyAgICBFdmVudENvbnRleHQoUmVmUHRyPE5vZGU+JiYsIFJlZlB0cjxFdmVudFRhcmdldD4m
JiBjdXJyZW50VGFyZ2V0LCBSZWZQdHI8RXZlbnRUYXJnZXQ+JiYpOwogICAgIHZpcnR1YWwgfkV2
ZW50Q29udGV4dCgpOwogCiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZS5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCBkZGQ3Njlh
YWFmMmI3YWVmMDE0MTJmOGYzYjBjYzdmYmYxYTgxZDg5Li4xYzkzYTRhNTg2OWU0NDAzZTVhYzZj
YzdiMDJmMmM0ZmZmNWM5YjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRE
aXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNw
cApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdpbmRvd0V2
ZW50Q29udGV4dCB7CiBwdWJsaWM6Ci0gICAgV2luZG93RXZlbnRDb250ZXh0KFBhc3NSZWZQdHI8
Tm9kZT4sIGNvbnN0IEV2ZW50Q29udGV4dCopOworICAgIFdpbmRvd0V2ZW50Q29udGV4dChOb2Rl
KiwgY29uc3QgRXZlbnRDb250ZXh0Kik7CiAKICAgICBET01XaW5kb3cqIHdpbmRvdygpIGNvbnN0
IHsgcmV0dXJuIG1fd2luZG93LmdldCgpOyB9CiAgICAgRXZlbnRUYXJnZXQqIHRhcmdldCgpIGNv
bnN0IHsgcmV0dXJuIG1fdGFyZ2V0LmdldCgpOyB9CkBAIC01MiwxNCArNTIsMTQgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwogfTsKIAotV2luZG93RXZlbnRD
b250ZXh0OjpXaW5kb3dFdmVudENvbnRleHQoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBjb25zdCBF
dmVudENvbnRleHQqIHRvcEV2ZW50Q29udGV4dCkKK1dpbmRvd0V2ZW50Q29udGV4dDo6V2luZG93
RXZlbnRDb250ZXh0KE5vZGUqIG5vZGUsIGNvbnN0IEV2ZW50Q29udGV4dCogdG9wRXZlbnRDb250
ZXh0KQogewotICAgIE5vZGUqIHRvcExldmVsQ29udGFpbmVyID0gdG9wRXZlbnRDb250ZXh0ID8g
dG9wRXZlbnRDb250ZXh0LT5ub2RlKCkgOiBub2RlLmdldCgpOworICAgIE5vZGUqIHRvcExldmVs
Q29udGFpbmVyID0gdG9wRXZlbnRDb250ZXh0ID8gdG9wRXZlbnRDb250ZXh0LT5ub2RlKCkgOiBu
b2RlOwogICAgIGlmICghaXM8RG9jdW1lbnQ+KCp0b3BMZXZlbENvbnRhaW5lcikpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fd2luZG93ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCp0b3BMZXZlbENv
bnRhaW5lcikuZG9tV2luZG93KCk7Ci0gICAgbV90YXJnZXQgPSB0b3BFdmVudENvbnRleHQgPyB0
b3BFdmVudENvbnRleHQtPnRhcmdldCgpIDogbm9kZS5nZXQoKTsKKyAgICBtX3RhcmdldCA9IHRv
cEV2ZW50Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+dGFyZ2V0KCkgOiBub2RlOwogfQogCiBi
b29sIFdpbmRvd0V2ZW50Q29udGV4dDo6aGFuZGxlTG9jYWxFdmVudHMoRXZlbnQmIGV2ZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggZTBjMmQwMjViZTQwMWFlMDY5OGJkNzE0
YTJjZjYzZGE4OWFlMmQ5Ny4uMmY1NjEyYWE3MGI1MWNkOTJmNWY5MzhlMTg5NzBhZjRmZTgzZmRl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC01MiwxNSArNTIsMTUgQEAgTWVz
c2FnZVBvcnQ6On5NZXNzYWdlUG9ydCgpCiAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+ZGVzdHJveWVkTWVzc2FnZVBvcnQoKnRoaXMpOwogfQogCi12b2lkIE1lc3NhZ2VQb3J0Ojpw
b3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVz
c2FnZVBvcnQqIHBvcnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBNZXNzYWdlUG9ydDo6cG9z
dE1lc3NhZ2UoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBNZXNzYWdl
UG9ydCogcG9ydCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTWVzc2FnZVBvcnRBcnJheSBw
b3J0czsKICAgICBpZiAocG9ydCkKICAgICAgICAgcG9ydHMuYXBwZW5kKHBvcnQpOwotICAgIHBv
c3RNZXNzYWdlKG1lc3NhZ2UsICZwb3J0cywgZWMpOworICAgIHBvc3RNZXNzYWdlKFdURk1vdmUo
bWVzc2FnZSksICZwb3J0cywgZWMpOwogfQogCi12b2lkIE1lc3NhZ2VQb3J0Ojpwb3N0TWVzc2Fn
ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgTWVzc2Fn
ZVBvcnRBcnJheSogcG9ydHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBNZXNzYWdlUG9ydDo6
cG9zdE1lc3NhZ2UoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25z
dCBNZXNzYWdlUG9ydEFycmF5KiBwb3J0cywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYg
KCFpc0VudGFuZ2xlZCgpKQogICAgICAgICByZXR1cm47CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQg
TWVzc2FnZVBvcnQ6OnBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtZXNzYWdlLCBjb25zdCBNCiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgbV9lbnRhbmdsZWRDaGFubmVsLT5wb3N0TWVzc2FnZVRvUmVtb3RlKG1lc3Nh
Z2UsIFdURk1vdmUoY2hhbm5lbHMpKTsKKyAgICBtX2VudGFuZ2xlZENoYW5uZWwtPnBvc3RNZXNz
YWdlVG9SZW1vdGUoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjaGFubmVscykpOwogfQogCiBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsPiBNZXNzYWdlUG9ydDo6ZGlzZW50YW5n
bGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAppbmRleCAyOTY1OTI2YmY3YWM2NDEzZDk1ODQ1
NmE4ZTVjNWM1ZGIzYWU2MmVlLi5iYWUwMWQ1Yjk1MWRkNzgyMzdhZmRmODcyMzE0ZjgyNGQxNTdi
MTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1
ZGUgIk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNTEsOSArNTAsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBSZWY8TWVzc2FnZVBvcnQ+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IE1lc3NhZ2VQb3J0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsgfQog
ICAgICAgICB2aXJ0dWFsIH5NZXNzYWdlUG9ydCgpOwogCi0gICAgICAgIHZvaWQgcG9zdE1lc3Nh
Z2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1lc3Nh
Z2VQb3J0QXJyYXkqLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2Uo
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25zdCBNZXNzYWdlUG9y
dEFycmF5KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICAvLyBOZWVkZWQgZm9yIE9iamVjdGl2
ZS1DIGJpbmRpbmdzIChzZWUgYnVnIDI4Nzc0KS4KLSAgICAgICAgdm9pZCBwb3N0TWVzc2FnZShQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqLCBF
eGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBNZXNzYWdlUG9ydCosIEV4Y2VwdGlvbkNvZGUmKTsK
IAogICAgICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgICAgIHZvaWQgY2xvc2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRleCBhNzExZWZmNmYwZDIyOTkxOTAxMWI5
MzMwOWJmNmI4ZmZlNTFkNGYxLi45ODVmMWM1M2FiZjBiYjIxOWJjNmI5NGU2MjdkZWNiZDI1MjM1
N2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oCkBAIC01NSw4ICs1
NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWwg
ewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZXNzYWdlUG9ydENoYW5uZWwpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IE1lc3Nh
Z2VQb3J0Q2hhbm5lbChQYXNzUmVmUHRyPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPik7Ci0g
ICAgICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUNoYW5uZWwoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydD4s
IFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+KTsKKyAgICAgICAgZXhwbGljaXQgTWVzc2FnZVBvcnRD
aGFubmVsKFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4mJik7CisgICAgICAgIHN0
YXRpYyB2b2lkIGNyZWF0ZUNoYW5uZWwoTWVzc2FnZVBvcnQqLCBNZXNzYWdlUG9ydCopOwogCiAg
ICAgICAgIC8vIEVudGFuZ2xlcyB0aGUgY2hhbm5lbCB3aXRoIGEgcG9ydCAoY2FsbGVkIHdoZW4g
YSBwb3J0IGhhcyBiZWVuIGNsb25lZCwgYWZ0ZXIgdGhlIGNsb25lIGhhcyBiZWVuIG1hcnNoYWxl
ZCB0byBpdHMgbmV3IG93bmluZyB0aHJlYWQgYW5kIGlzIHJlYWR5IHRvIHJlY2VpdmUgbWVzc2Fn
ZXMpLgogICAgICAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHRoZSBlbnRhbmdsZW1lbnQgZmFpbGVk
IGJlY2F1c2UgdGhlIHBvcnQgd2FzIGNsb3NlZC4KQEAgLTc1LDcgKzc1LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpOwogCiAgICAgICAg
IC8vIFNlbmRzIGEgbWVzc2FnZSBhbmQgb3B0aW9uYWwgY2xvbmVkIHBvcnQgdG8gdGhlIHJlbW90
ZSBwb3J0LgotICAgICAgICB2b2lkIHBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+LCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJy
YXk+KTsKKyAgICAgICAgdm9pZCBwb3N0TWVzc2FnZVRvUmVtb3RlKFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4p
OwogCiAgICAgICAgIC8vIEV4dHJhY3RzIGEgbWVzc2FnZSBmcm9tIHRoZSBtZXNzYWdlIHF1ZXVl
IGZvciB0aGlzIHBvcnQuCiAgICAgICAgIGJvb2wgdHJ5R2V0TWVzc2FnZUZyb21SZW1vdGUoUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRD
aGFubmVsQXJyYXk+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljTm9k
ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5oCmluZGV4IGIzZjVk
ZDBjMWIzMTc0NmJkNDgzYmIyNTcyOGZjYWM1YjlkNmZjYmYuLmU1MjNjOWIwYTIxMzlmMzNiMzI0
YjA1MGVhNzMxNjk2NTNiZmI1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0
aWNOb2RlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5oCkBA
IC0zOSwxMSArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBTdGF0aWNOb2RlTGlzdCBmaW5hbCA6IHB1YmxpYyBOb2RlTGlzdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RhdGljTm9kZUxpc3Q+IGFkb3B0KFZlY3RvcjxSZWY8Tm9k
ZT4+JiBub2RlcykKKyAgICBzdGF0aWMgUmVmPFN0YXRpY05vZGVMaXN0PiBhZG9wdChWZWN0b3I8
UmVmPE5vZGU+PiYgbm9kZXMpCiAgICAgewotICAgICAgICBSZWZQdHI8U3RhdGljTm9kZUxpc3Q+
IG5vZGVMaXN0ID0gYWRvcHRSZWYobmV3IFN0YXRpY05vZGVMaXN0KTsKKyAgICAgICAgUmVmPFN0
YXRpY05vZGVMaXN0PiBub2RlTGlzdCA9IGFkb3B0UmVmKCpuZXcgU3RhdGljTm9kZUxpc3QpOwog
ICAgICAgICBub2RlTGlzdC0+bV9ub2Rlcy5zd2FwKG5vZGVzKTsKLSAgICAgICAgcmV0dXJuIG5v
ZGVMaXN0LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIG5vZGVMaXN0OwogICAgIH0KIAogICAg
IHN0YXRpYyBSZWY8U3RhdGljTm9kZUxpc3Q+IGNyZWF0ZUVtcHR5KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNw
cAppbmRleCBlZWUyNTc3OGRiYTA5NjI2ODdmMTc3YzNiMDY5NTRkZjEwNjMwZTdmLi5kZThkM2Rj
MWRhMDYyNmVhNmY4ZTU4ZTI3YTFlMjc0MjQxNGQ5ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwCkBA
IC0zNywxOSArMzcsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QbGF0Zm9ybU1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhOjpFdmVudERhdGEoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxB
cnJheT4gY2hhbm5lbHMpCi0gICAgOiBtX21lc3NhZ2UobWVzc2FnZSkKK1BsYXRmb3JtTWVzc2Fn
ZVBvcnRDaGFubmVsOjpFdmVudERhdGE6OkV2ZW50RGF0YShSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4gY2hhbm5lbHMpCisgICAgOiBtX21lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSkKICAgICAsIG1f
Y2hhbm5lbHMoV1RGTW92ZShjaGFubmVscykpCiB7CiB9CiAKLXZvaWQgTWVzc2FnZVBvcnRDaGFu
bmVsOjpjcmVhdGVDaGFubmVsKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+IHBvcnQxLCBQYXNzUmVm
UHRyPE1lc3NhZ2VQb3J0PiBwb3J0MikKK3ZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpjcmVhdGVD
aGFubmVsKE1lc3NhZ2VQb3J0KiBwb3J0MSwgTWVzc2FnZVBvcnQqIHBvcnQyKQogewotICAgIFJl
ZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVzc2FnZVBvcnRRdWV1ZT4gcXVldWUx
ID0gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0UXVldWU6OmNyZWF0ZSgp
OwotICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVzc2FnZVBvcnRRdWV1
ZT4gcXVldWUyID0gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0UXVldWU6
OmNyZWF0ZSgpOworICAgIFJlZjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVzc2FnZVBv
cnRRdWV1ZT4gcXVldWUxID0gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0
UXVldWU6OmNyZWF0ZSgpOworICAgIFJlZjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVz
c2FnZVBvcnRRdWV1ZT4gcXVldWUyID0gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3Nh
Z2VQb3J0UXVldWU6OmNyZWF0ZSgpOwogCi0gICAgYXV0byBjaGFubmVsMSA9IHN0ZDo6bWFrZV91
bmlxdWU8TWVzc2FnZVBvcnRDaGFubmVsPihQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3Jl
YXRlKHF1ZXVlMSwgcXVldWUyKSk7Ci0gICAgYXV0byBjaGFubmVsMiA9IHN0ZDo6bWFrZV91bmlx
dWU8TWVzc2FnZVBvcnRDaGFubmVsPihQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRl
KHF1ZXVlMiwgcXVldWUxKSk7CisgICAgYXV0byBjaGFubmVsMSA9IHN0ZDo6bWFrZV91bmlxdWU8
TWVzc2FnZVBvcnRDaGFubmVsPihQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlKHF1
ZXVlMS5wdHIoKSwgcXVldWUyLnB0cigpKSk7CisgICAgYXV0byBjaGFubmVsMiA9IHN0ZDo6bWFr
ZV91bmlxdWU8TWVzc2FnZVBvcnRDaGFubmVsPihQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6
Y3JlYXRlKHF1ZXVlMi5wdHIoKSwgcXVldWUxLnB0cigpKSk7CiAKICAgICBjaGFubmVsMS0+bV9j
aGFubmVsLT5tX2VudGFuZ2xlZENoYW5uZWwgPSBjaGFubmVsMi0+bV9jaGFubmVsOwogICAgIGNo
YW5uZWwyLT5tX2NoYW5uZWwtPm1fZW50YW5nbGVkQ2hhbm5lbCA9IGNoYW5uZWwxLT5tX2NoYW5u
ZWw7CkBAIC01OCw4ICs1OCw4IEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpjcmVhdGVDaGFu
bmVsKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+IHBvcnQxLCBQYXNzUmVmUHRyCiAgICAgcG9ydDIt
PmVudGFuZ2xlKFdURk1vdmUoY2hhbm5lbDEpKTsKIH0KIAotTWVzc2FnZVBvcnRDaGFubmVsOjpN
ZXNzYWdlUG9ydENoYW5uZWwoUGFzc1JlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4g
Y2hhbm5lbCkKLSAgICA6IG1fY2hhbm5lbChjaGFubmVsKQorTWVzc2FnZVBvcnRDaGFubmVsOjpN
ZXNzYWdlUG9ydENoYW5uZWwoUmVmUHRyPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiYmIGNo
YW5uZWwpCisgICAgOiBtX2NoYW5uZWwoV1RGTW92ZShjaGFubmVsKSkKIHsKIH0KIApAQCAtODYs
MTIgKzg2LDEyIEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpkaXNlbnRhbmdsZSgpCiAgICAg
ICAgIHJlbW90ZS0+c2V0UmVtb3RlUG9ydChudWxscHRyKTsKIH0KIAotdm9pZCBNZXNzYWdlUG9y
dENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4g
Y2hhbm5lbHMpCit2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6cG9zdE1lc3NhZ2VUb1JlbW90ZShS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxN
ZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMpCiB7CiAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgaWYgKCFtX2NoYW5uZWwtPm1fb3V0Z29pbmdRdWV1
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIGJvb2wgd2FzRW1wdHkgPSBtX2NoYW5uZWwtPm1fb3V0
Z29pbmdRdWV1ZS0+YXBwZW5kQW5kQ2hlY2tFbXB0eShzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsOjpFdmVudERhdGE+KG1lc3NhZ2UsIFdURk1vdmUoY2hhbm5lbHMp
KSk7CisgICAgYm9vbCB3YXNFbXB0eSA9IG1fY2hhbm5lbC0+bV9vdXRnb2luZ1F1ZXVlLT5hcHBl
bmRBbmRDaGVja0VtcHR5KHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWw6OkV2ZW50RGF0YT4oV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjaGFubmVscykpKTsKICAg
ICBpZiAod2FzRW1wdHkgJiYgbV9jaGFubmVsLT5tX3JlbW90ZVBvcnQpCiAgICAgICAgIG1fY2hh
bm5lbC0+bV9yZW1vdGVQb3J0LT5tZXNzYWdlQXZhaWxhYmxlKCk7CiB9CkBAIC0xNDYsMTIgKzE0
NiwxMiBAQCBNZXNzYWdlUG9ydCogTWVzc2FnZVBvcnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVk
UG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZQogICAgIHJldHVybiAwOwogfQogCi1SZWY8
UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpj
cmVhdGUoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBpbmNvbWluZywgUGFzc1JlZlB0cjxN
ZXNzYWdlUG9ydFF1ZXVlPiBvdXRnb2luZykKK1JlZjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bD4gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OmNyZWF0ZShNZXNzYWdlUG9ydFF1ZXVlKiBp
bmNvbWluZywgTWVzc2FnZVBvcnRRdWV1ZSogb3V0Z29pbmcpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwoaW5jb21pbmcsIG91dGdvaW5nKSk7
CiB9CiAKLVBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0UXVldWU+IGluY29taW5nLCBQYXNzUmVmUHRyPE1l
c3NhZ2VQb3J0UXVldWU+IG91dGdvaW5nKQorUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OlBs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsKE1lc3NhZ2VQb3J0UXVldWUqIGluY29taW5nLCBNZXNz
YWdlUG9ydFF1ZXVlKiBvdXRnb2luZykKICAgICA6IG1faW5jb21pbmdRdWV1ZShpbmNvbWluZykK
ICAgICAsIG1fb3V0Z29pbmdRdWV1ZShvdXRnb2luZykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCmluZGV4IGY0
NWZmMjIwYmY2YjRlNzEwNTdiZDU3YWE4N2FlOTNjNDk3ODUzZjMuLjM1ZGQ4ZTE3MjMzYWRkYTFj
OGM0MmUyMzkwOGM4NGE4ZWM2OTZlZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9k
ZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaApAQCAtMzQsNyArMzQsNiBA
QAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgogCiAjaW5jbHVkZSA8d3RmL01lc3Nh
Z2VRdWV1ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw5ICs0OCw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgY2xhc3MgRXZlbnREYXRhIHsKICAgICAgICAgICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEV2ZW50RGF0YSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
ICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBFdmVudERhdGEoUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5u
ZWxBcnJheT4pOworICAgICAgICAgICAgRXZlbnREYXRhKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5
Pik7CiAKLSAgICAgICAgICAgIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNz
YWdlKCkgeyByZXR1cm4gbV9tZXNzYWdlOyB9CisgICAgICAgICAgICBSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBtZXNzYWdlKCkgeyByZXR1cm4gbV9tZXNzYWdlOyB9CiAgICAgICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzKCkgeyBy
ZXR1cm4gV1RGTW92ZShtX2NoYW5uZWxzKTsgfQogCiAgICAgICAgIHByaXZhdGU6CkBAIC04Nyw4
ICs4Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB+UGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWwoKTsKIAotICAgICAgICBzdGF0aWMgUmVmPFBsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsPiBjcmVhdGUoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBpbmNvbWluZywgUGFz
c1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBvdXRnb2luZyk7Ci0gICAgICAgIFBsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnRRdWV1ZT4gaW5jb21pbmcsIFBh
c3NSZWZQdHI8TWVzc2FnZVBvcnRRdWV1ZT4gb3V0Z29pbmcpOworICAgICAgICBzdGF0aWMgUmVm
PFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiBjcmVhdGUoTWVzc2FnZVBvcnRRdWV1ZSogaW5j
b21pbmcsIE1lc3NhZ2VQb3J0UXVldWUqIG91dGdvaW5nKTsKKyAgICAgICAgUGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWwoTWVzc2FnZVBvcnRRdWV1ZSogaW5jb21pbmcsIE1lc3NhZ2VQb3J0UXVl
dWUqIG91dGdvaW5nKTsKIAogICAgICAgICBSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWw+IGVudGFuZ2xlZENoYW5uZWwoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274572</attachid>
            <date>2016-03-20 21:24:15 -0700</date>
            <delta_ts>2016-03-20 23:05:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155579-20160321132415.patch</filename>
            <type>text/plain</type>
            <size>20229</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU3ZjJjOTZlMTc0YmU2
MWE1MTQzMGRiNWQ4NTQzYTc3OGM1ZjI1Ni4uYmQ4MjMzOWVjMmMwZTI1NzdhYWM0MjU3ZDlmYzgz
ZDJmMWY0ZDU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTAzLTIwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZWR1Y2UgdXNl
cyBvZiBQYXNzUmVmUHRyIGluIFdlYkNvcmUvZG9tIC0gNgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnRDaGFubmVsLmg6CisgICAg
ICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YTo6RXZlbnRE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hhbm5l
bCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0Q2hh
bm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBvc3RNZXNzYWdl
VG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6
UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwpOgorICAgICAgICAqIGRvbS9kZWZhdWx0L1BsYXRm
b3JtTWVzc2FnZVBvcnRDaGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhOjptZXNzYWdlKToKKwogMjAxNi0wMy0yMCAgS29uc3Rh
bnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgQWRkZWQgaW1wbGVt
ZW50YXRpb25zIG9mIEFYT2JqZWN0Q2FjaGUgbWV0aG9kcyBmb3IgIUhBVkUoQUNDRVNTSUJJTElU
WSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcAppbmRleCA1YjlmOTA5YmVlN2Fm
MjBhYjM5ZTUzYjA0YTA0OTUxMzRjZGE0YWE4Li43ZjFkNGNhZjlhZDg3Y2E1ZTNkOTcxZGY5Y2Ni
NmY5NTk3N2ZjYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5jcHAKQEAgLTEy
NSw3ICsxMjUsNyBAQCBEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIodW5zaWduZWQgc3Rh
cnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCBhYwogICAgIEFTU0VSVChtX2RldGFp
bHMpOwogfQogCi1Eb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIoTWFya2VyVHlwZSB0eXBl
LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBQYXNzUmVmUHRyPERv
Y3VtZW50TWFya2VyRGV0YWlscz4gZGV0YWlscykKK0RvY3VtZW50TWFya2VyOjpEb2N1bWVudE1h
cmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRP
ZmZzZXQsIFJlZlB0cjxEb2N1bWVudE1hcmtlckRldGFpbHM+JiYgZGV0YWlscykKICAgICA6IG1f
dHlwZSh0eXBlKQogICAgICwgbV9zdGFydE9mZnNldChzdGFydE9mZnNldCkKICAgICAsIG1fZW5k
T2Zmc2V0KGVuZE9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgKaW5kZXggOWM2
NmUzM2U5NTZkNDYzYjlhMWQwOTFkYTA4MDJhOTQxMmM4YTdhNC4uZGFlMGI2ZWRhZDVmZGM2N2E1
MTQ0YTE4OWY5ODgwMjAxODdhOTYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50TWFya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgK
QEAgLTEyMiw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgRG9jdW1lbnRNYXJrZXIoTWFya2VyVHlw
ZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlcywgUmV0YWlu
UHRyPGlkPiBtZXRhZGF0YSk7CiAjZW5kaWYKICAgICBEb2N1bWVudE1hcmtlcih1bnNpZ25lZCBz
dGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBib29sIGFjdGl2ZU1hdGNoKTsKLSAgICBE
b2N1bWVudE1hcmtlcihNYXJrZXJUeXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQg
ZW5kT2Zmc2V0LCBQYXNzUmVmUHRyPERvY3VtZW50TWFya2VyRGV0YWlscz4pOworICAgIERvY3Vt
ZW50TWFya2VyKE1hcmtlclR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRP
ZmZzZXQsIFJlZlB0cjxEb2N1bWVudE1hcmtlckRldGFpbHM+JiYpOwogCiAgICAgTWFya2VyVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgdW5zaWduZWQgc3RhcnRPZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0T2Zmc2V0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDlkNGI2NTJiNWRhODg2YzNl
YjJlZGY5ZjVhY2E0ZDliZTRiMjA0ZTEuLjM4MjI5MjU3MDRiYzdlMzQyMWI1MGRkNmMzN2NlNzEy
ZTlhOTAzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwCkBAIC04Myw5ICs4Myw5IEBAIHZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
OjphZGRNYXJrZXJUb05vZGUoTm9kZSogbm9kZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsCiAgICAg
YWRkTWFya2VyKG5vZGUsIERvY3VtZW50TWFya2VyKHR5cGUsIHN0YXJ0T2Zmc2V0LCBzdGFydE9m
ZnNldCArIGxlbmd0aCkpOwogfQogCi12b2lkIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6YWRk
TWFya2VyVG9Ob2RlKE5vZGUqIG5vZGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlIHR5cGUsIFBhc3NSZWZQdHI8RG9jdW1l
bnRNYXJrZXJEZXRhaWxzPiBkZXRhaWxzKQordm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6
OmFkZE1hcmtlclRvTm9kZShOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWdu
ZWQgbGVuZ3RoLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlLCBSZWZQdHI8RG9jdW1l
bnRNYXJrZXJEZXRhaWxzPiYmIGRldGFpbHMpCiB7Ci0gICAgYWRkTWFya2VyKG5vZGUsIERvY3Vt
ZW50TWFya2VyKHR5cGUsIHN0YXJ0T2Zmc2V0LCBzdGFydE9mZnNldCArIGxlbmd0aCwgZGV0YWls
cykpOworICAgIGFkZE1hcmtlcihub2RlLCBEb2N1bWVudE1hcmtlcih0eXBlLCBzdGFydE9mZnNl
dCwgc3RhcnRPZmZzZXQgKyBsZW5ndGgsIFdURk1vdmUoZGV0YWlscykpKTsKIH0KIAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKaW5kZXggMWM5MGY3
ZGM5NWMzN2ZlZDcxOTMyYTZlZTMwZjExNTg5Y2EyZTgzNS4uNGJjMDY5MGExNWNjZmJlMDMwNmZi
ZjUwNDg5NDJiMzNkY2EzMzEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRN
YXJrZXIoUmFuZ2UqLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSk7CiAgICAgdm9pZCBhZGRN
YXJrZXIoUmFuZ2UqLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbik7CiAgICAgdm9pZCBhZGRNYXJrZXJUb05vZGUoTm9kZSosIHVuc2lnbmVkIHN0
YXJ0T2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlKTsK
LSAgICB2b2lkIGFkZE1hcmtlclRvTm9kZShOb2RlKiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUsIFBhc3NSZWZQdHI8RG9j
dW1lbnRNYXJrZXJEZXRhaWxzPik7CisgICAgdm9pZCBhZGRNYXJrZXJUb05vZGUoTm9kZSosIHVu
c2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIERvY3VtZW50TWFya2VyOjpNYXJr
ZXJUeXBlLCBSZWZQdHI8RG9jdW1lbnRNYXJrZXJEZXRhaWxzPiYmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFkZFRleHRNYXRjaE1hcmtlcihjb25zdCBSYW5nZSosIGJvb2wgYWN0aXZlTWF0
Y2gpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIGFkZE1hcmtlcihSYW5nZSosIERvY3Vt
ZW50TWFya2VyOjpNYXJrZXJUeXBlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgaW50ZXJwcmV0YXRpb25zLCBjb25zdCBSZXRhaW5QdHI8aWQ+JiBtZXRh
ZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQuY3BwCmluZGV4IGQzMzYzNGRkMzkzZWUy
MjczNTM3NmM3NmIyMjk2NWYwYTVkNDdkMTEuLjkxZjdhZjliMjU2NTRiZjcyNWY0YjUwYmU0ZmE5
ZTY5ZGUzZTE2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQuY3BwCkBAIC0zNCw3ICsz
NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRXZlbnRDb250ZXh0OjpFdmVudENvbnRl
eHQoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBjdXJyZW50
VGFyZ2V0LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiB0YXJnZXQpCitFdmVudENvbnRleHQ6OkV2
ZW50Q29udGV4dChOb2RlKiBub2RlLCBFdmVudFRhcmdldCogY3VycmVudFRhcmdldCwgRXZlbnRU
YXJnZXQqIHRhcmdldCkKICAgICA6IG1fbm9kZShub2RlKQogICAgICwgbV9jdXJyZW50VGFyZ2V0
KGN1cnJlbnRUYXJnZXQpCiAgICAgLCBtX3RhcmdldCh0YXJnZXQpCkBAIC02NCw3ICs2NCw3IEBA
IGJvb2wgRXZlbnRDb250ZXh0Ojppc1RvdWNoRXZlbnRDb250ZXh0KCkgY29uc3QKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLU1vdXNlT3JGb2N1c0V2ZW50Q29udGV4dDo6TW91c2VPckZvY3VzRXZl
bnRDb250ZXh0KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4g
Y3VycmVudFRhcmdldCwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gdGFyZ2V0KQorTW91c2VPckZv
Y3VzRXZlbnRDb250ZXh0OjpNb3VzZU9yRm9jdXNFdmVudENvbnRleHQoTm9kZSogbm9kZSwgRXZl
bnRUYXJnZXQqIGN1cnJlbnRUYXJnZXQsIEV2ZW50VGFyZ2V0KiB0YXJnZXQpCiAgICAgOiBFdmVu
dENvbnRleHQobm9kZSwgY3VycmVudFRhcmdldCwgdGFyZ2V0KQogewogfQpAQCAtOTEsNyArOTEs
NyBAQCBib29sIE1vdXNlT3JGb2N1c0V2ZW50Q29udGV4dDo6aXNNb3VzZU9yRm9jdXNFdmVudENv
bnRleHQoKSBjb25zdAogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLVRvdWNoRXZlbnRD
b250ZXh0OjpUb3VjaEV2ZW50Q29udGV4dChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQ
dHI8RXZlbnRUYXJnZXQ+IGN1cnJlbnRUYXJnZXQsIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHRh
cmdldCkKK1RvdWNoRXZlbnRDb250ZXh0OjpUb3VjaEV2ZW50Q29udGV4dChOb2RlKiBub2RlLCBF
dmVudFRhcmdldCogY3VycmVudFRhcmdldCwgRXZlbnRUYXJnZXQqIHRhcmdldCkKICAgICA6IEV2
ZW50Q29udGV4dChub2RlLCBjdXJyZW50VGFyZ2V0LCB0YXJnZXQpCiAgICAgLCBtX3RvdWNoZXMo
VG91Y2hMaXN0OjpjcmVhdGUoKSkKICAgICAsIG1fdGFyZ2V0VG91Y2hlcyhUb3VjaExpc3Q6OmNy
ZWF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Q29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Q29udGV4dC5oCmluZGV4IGE4YWVkYWIyOGQzNWZkNDRl
YmVlNjVhOTljMWY0OGYzMmUyOTE1NDguLmY0ZWE4ZGZjMDExZWVlYjMwZmZlNjBmMWNlMzhiMDhj
ZmM1OGYxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRDb250ZXh0LmgKQEAgLTQzLDcgKzQzLDcgQEAg
Y2xhc3MgRXZlbnRDb250ZXh0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICAvLyBGSVhNRTogVXNlIENvbnRhaW5lck5vZGUgaW5zdGVhZCBvZiBOb2RlLgotICAg
IEV2ZW50Q29udGV4dChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBj
dXJyZW50VGFyZ2V0LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiB0YXJnZXQpOworICAgIEV2ZW50
Q29udGV4dChOb2RlKiwgRXZlbnRUYXJnZXQqIGN1cnJlbnRUYXJnZXQsIEV2ZW50VGFyZ2V0Kik7
CiAgICAgdmlydHVhbCB+RXZlbnRDb250ZXh0KCk7CiAKICAgICBOb2RlKiBub2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9ub2RlLmdldCgpOyB9CkBAIC02Niw3ICs2Niw3IEBAIHByb3RlY3RlZDoKIAog
Y2xhc3MgTW91c2VPckZvY3VzRXZlbnRDb250ZXh0IGZpbmFsIDogcHVibGljIEV2ZW50Q29udGV4
dCB7CiBwdWJsaWM6Ci0gICAgTW91c2VPckZvY3VzRXZlbnRDb250ZXh0KFBhc3NSZWZQdHI8Tm9k
ZT4sIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IGN1cnJlbnRUYXJnZXQsIFBhc3NSZWZQdHI8RXZl
bnRUYXJnZXQ+IHRhcmdldCk7CisgICAgTW91c2VPckZvY3VzRXZlbnRDb250ZXh0KE5vZGUqLCBF
dmVudFRhcmdldCogY3VycmVudFRhcmdldCwgRXZlbnRUYXJnZXQqKTsKICAgICB2aXJ0dWFsIH5N
b3VzZU9yRm9jdXNFdmVudENvbnRleHQoKTsKICAgICBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVsYXRlZFRhcmdldC5nZXQoKTsgfQogICAgIHZvaWQgc2V0
UmVsYXRlZFRhcmdldChQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0Pik7CkBAIC04MSw3ICs4MSw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIGNsYXNzIFRvdWNoRXZlbnRDb250
ZXh0IGZpbmFsIDogcHVibGljIEV2ZW50Q29udGV4dCB7CiBwdWJsaWM6Ci0gICAgVG91Y2hFdmVu
dENvbnRleHQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gY3VycmVu
dFRhcmdldCwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gdGFyZ2V0KTsKKyAgICBUb3VjaEV2ZW50
Q29udGV4dChOb2RlKiwgRXZlbnRUYXJnZXQqIGN1cnJlbnRUYXJnZXQsIEV2ZW50VGFyZ2V0Kik7
CiAgICAgdmlydHVhbCB+VG91Y2hFdmVudENvbnRleHQoKTsKIAogICAgIHZvaWQgaGFuZGxlTG9j
YWxFdmVudHMoRXZlbnQmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlz
cGF0Y2hlci5jcHAKaW5kZXggZGRkNzY5YWFhZjJiN2FlZjAxNDEyZjhmM2IwY2M3ZmJmMWE4MWQ4
OS4uMWM5M2E0YTU4NjllNDQwM2U1YWM2Y2M3YjAyZjJjNGZmZjVjOWI1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBXaW5kb3dFdmVudENvbnRleHQgewogcHVibGljOgotICAgIFdpbmRv
d0V2ZW50Q29udGV4dChQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBFdmVudENvbnRleHQqKTsKKyAg
ICBXaW5kb3dFdmVudENvbnRleHQoTm9kZSosIGNvbnN0IEV2ZW50Q29udGV4dCopOwogCiAgICAg
RE9NV2luZG93KiB3aW5kb3coKSBjb25zdCB7IHJldHVybiBtX3dpbmRvdy5nZXQoKTsgfQogICAg
IEV2ZW50VGFyZ2V0KiB0YXJnZXQoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldC5nZXQoKTsgfQpA
QCAtNTIsMTQgKzUyLDE0IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3Rh
cmdldDsKIH07CiAKLVdpbmRvd0V2ZW50Q29udGV4dDo6V2luZG93RXZlbnRDb250ZXh0KFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSwgY29uc3QgRXZlbnRDb250ZXh0KiB0b3BFdmVudENvbnRleHQpCitX
aW5kb3dFdmVudENvbnRleHQ6OldpbmRvd0V2ZW50Q29udGV4dChOb2RlKiBub2RlLCBjb25zdCBF
dmVudENvbnRleHQqIHRvcEV2ZW50Q29udGV4dCkKIHsKLSAgICBOb2RlKiB0b3BMZXZlbENvbnRh
aW5lciA9IHRvcEV2ZW50Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+bm9kZSgpIDogbm9kZS5n
ZXQoKTsKKyAgICBOb2RlKiB0b3BMZXZlbENvbnRhaW5lciA9IHRvcEV2ZW50Q29udGV4dCA/IHRv
cEV2ZW50Q29udGV4dC0+bm9kZSgpIDogbm9kZTsKICAgICBpZiAoIWlzPERvY3VtZW50PigqdG9w
TGV2ZWxDb250YWluZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3dpbmRvdyA9IGRvd25j
YXN0PERvY3VtZW50PigqdG9wTGV2ZWxDb250YWluZXIpLmRvbVdpbmRvdygpOwotICAgIG1fdGFy
Z2V0ID0gdG9wRXZlbnRDb250ZXh0ID8gdG9wRXZlbnRDb250ZXh0LT50YXJnZXQoKSA6IG5vZGUu
Z2V0KCk7CisgICAgbV90YXJnZXQgPSB0b3BFdmVudENvbnRleHQgPyB0b3BFdmVudENvbnRleHQt
PnRhcmdldCgpIDogbm9kZTsKIH0KIAogYm9vbCBXaW5kb3dFdmVudENvbnRleHQ6OmhhbmRsZUxv
Y2FsRXZlbnRzKEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
ZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCmluZGV4
IGUwYzJkMDI1YmU0MDFhZTA2OThiZDcxNGEyY2Y2M2RhODlhZTJkOTcuLjJmNTYxMmFhNzBiNTFj
ZDkyZjVmOTM4ZTE4OTcwYWY0ZmU4M2ZkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNw
cApAQCAtNTIsMTUgKzUyLDE1IEBAIE1lc3NhZ2VQb3J0Ojp+TWVzc2FnZVBvcnQoKQogICAgICAg
ICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRlc3Ryb3llZE1lc3NhZ2VQb3J0KCp0aGlzKTsK
IH0KIAotdm9pZCBNZXNzYWdlUG9ydDo6cG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiBwb3J0LCBFeGNlcHRpb25Db2RlJiBl
YykKK3ZvaWQgTWVzc2FnZVBvcnQ6OnBvc3RNZXNzYWdlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+JiYgbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIE1lc3NhZ2VQb3J0QXJyYXkgcG9ydHM7CiAgICAgaWYgKHBvcnQpCiAgICAgICAgIHBv
cnRzLmFwcGVuZChwb3J0KTsKLSAgICBwb3N0TWVzc2FnZShtZXNzYWdlLCAmcG9ydHMsIGVjKTsK
KyAgICBwb3N0TWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpLCAmcG9ydHMsIGVjKTsKIH0KIAotdm9p
ZCBNZXNzYWdlUG9ydDo6cG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZ2VQb3J0QXJyYXkqIHBvcnRzLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3ZvaWQgTWVzc2FnZVBvcnQ6OnBvc3RNZXNzYWdlKFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYgbWVzc2FnZSwgY29uc3QgTWVzc2FnZVBvcnRBcnJheSogcG9ydHMsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIGlmICghaXNFbnRhbmdsZWQoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtNzksNyArNzksNyBAQCB2b2lkIE1lc3NhZ2VQb3J0Ojpwb3N0TWVzc2FnZShQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgTQogICAgICAgICBpZiAo
ZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQotICAgIG1fZW50YW5nbGVkQ2hhbm5lbC0+
cG9zdE1lc3NhZ2VUb1JlbW90ZShtZXNzYWdlLCBXVEZNb3ZlKGNoYW5uZWxzKSk7CisgICAgbV9l
bnRhbmdsZWRDaGFubmVsLT5wb3N0TWVzc2FnZVRvUmVtb3RlKFdURk1vdmUobWVzc2FnZSksIFdU
Rk1vdmUoY2hhbm5lbHMpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5l
bD4gTWVzc2FnZVBvcnQ6OmRpc2VudGFuZ2xlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlUG9ydC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKaW5k
ZXggMjk2NTkyNmJmN2FjNjQxM2Q5NTg0NTZhOGU1YzVjNWRiM2FlNjJlZS4uYmFlMDFkNWI5NTFk
ZDc4MjM3YWZkZjg3MjMxNGY4MjRkMTU3YjE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL01lc3NhZ2VQb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgK
QEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5uZWwuaCIKICNpbmNs
dWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKQEAgLTUxLDkgKzUwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0
aWMgUmVmPE1lc3NhZ2VQb3J0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZXNzYWdlUG9ydChzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KSk7IH0KICAgICAgICAgdmlydHVhbCB+TWVzc2FnZVBvcnQoKTsK
IAotICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBtZXNzYWdlLCBjb25zdCBNZXNzYWdlUG9ydEFycmF5KiwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYg
bWVzc2FnZSwgY29uc3QgTWVzc2FnZVBvcnRBcnJheSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAg
ICAgLy8gTmVlZGVkIGZvciBPYmplY3RpdmUtQyBiaW5kaW5ncyAoc2VlIGJ1ZyAyODc3NCkuCi0g
ICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHBv
c3RNZXNzYWdlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgTWVzc2Fn
ZVBvcnQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAgICAgdm9pZCBzdGFydCgpOwogICAgICAg
ICB2b2lkIGNsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBv
cnRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgKaW5k
ZXggYTcxMWVmZjZmMGQyMjk5MTkwMTFiOTMzMDliZjZiOGZmZTUxZDRmMS4uOTg1ZjFjNTNhYmYw
YmIyMTliYzZiOTRlNjI3ZGVjYmQyNTIzNTdkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
UG9ydENoYW5uZWwuaApAQCAtNTUsOCArNTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgTWVzc2FnZVBvcnRDaGFubmVsIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
TWVzc2FnZVBvcnRDaGFubmVsKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGlj
OgotICAgICAgICBleHBsaWNpdCBNZXNzYWdlUG9ydENoYW5uZWwoUGFzc1JlZlB0cjxQbGF0Zm9y
bU1lc3NhZ2VQb3J0Q2hhbm5lbD4pOwotICAgICAgICBzdGF0aWMgdm9pZCBjcmVhdGVDaGFubmVs
KFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+LCBQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0Pik7CisgICAg
ICAgIGV4cGxpY2l0IE1lc3NhZ2VQb3J0Q2hhbm5lbChSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9y
dENoYW5uZWw+JiYpOworICAgICAgICBzdGF0aWMgdm9pZCBjcmVhdGVDaGFubmVsKE1lc3NhZ2VQ
b3J0KiwgTWVzc2FnZVBvcnQqKTsKIAogICAgICAgICAvLyBFbnRhbmdsZXMgdGhlIGNoYW5uZWwg
d2l0aCBhIHBvcnQgKGNhbGxlZCB3aGVuIGEgcG9ydCBoYXMgYmVlbiBjbG9uZWQsIGFmdGVyIHRo
ZSBjbG9uZSBoYXMgYmVlbiBtYXJzaGFsZWQgdG8gaXRzIG5ldyBvd25pbmcgdGhyZWFkIGFuZCBp
cyByZWFkeSB0byByZWNlaXZlIG1lc3NhZ2VzKS4KICAgICAgICAgLy8gUmV0dXJucyBmYWxzZSBp
ZiB0aGUgZW50YW5nbGVtZW50IGZhaWxlZCBiZWNhdXNlIHRoZSBwb3J0IHdhcyBjbG9zZWQuCkBA
IC03NSw3ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBoYXNQZW5k
aW5nQWN0aXZpdHkoKTsKIAogICAgICAgICAvLyBTZW5kcyBhIG1lc3NhZ2UgYW5kIG9wdGlvbmFs
IGNsb25lZCBwb3J0IHRvIHRoZSByZW1vdGUgcG9ydC4KLSAgICAgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRvUmVtb3RlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5Pik7CisgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2VU
b1JlbW90ZShSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KTsKIAogICAgICAgICAvLyBFeHRyYWN0cyBhIG1lc3Nh
Z2UgZnJvbSB0aGUgbWVzc2FnZSBxdWV1ZSBmb3IgdGhpcyBwb3J0LgogICAgICAgICBib29sIHRy
eUdldE1lc3NhZ2VGcm9tUmVtb3RlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+Jiwgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1N0YXRpY05vZGVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3Rh
dGljTm9kZUxpc3QuaAppbmRleCBiM2Y1ZGQwYzFiMzE3NDZiZDQ4M2JiMjU3MjhmY2FjNWI5ZDZm
Y2JmLi5lNTIzYzliMGEyMTM5ZjMzYjMyNGIwNTBlYTczMTY5NjUzYmZiNTJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljTm9kZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU3RhdGljTm9kZUxpc3QuaApAQCAtMzksMTEgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgU3RhdGljTm9kZUxpc3QgZmluYWwgOiBwdWJs
aWMgTm9kZUxpc3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0YXRpY05vZGVM
aXN0PiBhZG9wdChWZWN0b3I8UmVmPE5vZGU+PiYgbm9kZXMpCisgICAgc3RhdGljIFJlZjxTdGF0
aWNOb2RlTGlzdD4gYWRvcHQoVmVjdG9yPFJlZjxOb2RlPj4mIG5vZGVzKQogICAgIHsKLSAgICAg
ICAgUmVmUHRyPFN0YXRpY05vZGVMaXN0PiBub2RlTGlzdCA9IGFkb3B0UmVmKG5ldyBTdGF0aWNO
b2RlTGlzdCk7CisgICAgICAgIFJlZjxTdGF0aWNOb2RlTGlzdD4gbm9kZUxpc3QgPSBhZG9wdFJl
ZigqbmV3IFN0YXRpY05vZGVMaXN0KTsKICAgICAgICAgbm9kZUxpc3QtPm1fbm9kZXMuc3dhcChu
b2Rlcyk7Ci0gICAgICAgIHJldHVybiBub2RlTGlzdC5yZWxlYXNlKCk7CisgICAgICAgIHJldHVy
biBub2RlTGlzdDsKICAgICB9CiAKICAgICBzdGF0aWMgUmVmPFN0YXRpY05vZGVMaXN0PiBjcmVh
dGVFbXB0eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9y
bU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKaW5kZXggZWVlMjU3NzhkYmEwOTYyNjg3ZjE3N2Mz
YjA2OTU0ZGYxMDYzMGU3Zi4uZGU4ZDNkYzFkYTA2MjZlYTZmOGU1OGUyN2ExZTI3NDI0MTRkOWU3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsLmNwcApAQCAtMzcsMTkgKzM3LDE5IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YTo6RXZlbnRE
YXRhKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzKQotICAgIDogbV9tZXNzYWdl
KG1lc3NhZ2UpCitQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhOjpFdmVudERh
dGEoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzKQorICAgIDogbV9tZXNzYWdlKFdU
Rk1vdmUobWVzc2FnZSkpCiAgICAgLCBtX2NoYW5uZWxzKFdURk1vdmUoY2hhbm5lbHMpKQogewog
fQogCi12b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hhbm5lbChQYXNzUmVmUHRyPE1l
c3NhZ2VQb3J0PiBwb3J0MSwgUGFzc1JlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydDIpCit2b2lkIE1l
c3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hhbm5lbChNZXNzYWdlUG9ydCogcG9ydDEsIE1lc3Nh
Z2VQb3J0KiBwb3J0MikKIHsKLSAgICBSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6
Ok1lc3NhZ2VQb3J0UXVldWU+IHF1ZXVlMSA9IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpN
ZXNzYWdlUG9ydFF1ZXVlOjpjcmVhdGUoKTsKLSAgICBSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9y
dENoYW5uZWw6Ok1lc3NhZ2VQb3J0UXVldWU+IHF1ZXVlMiA9IFBsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsOjpNZXNzYWdlUG9ydFF1ZXVlOjpjcmVhdGUoKTsKKyAgICBSZWY8UGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0UXVldWU+IHF1ZXVlMSA9IFBsYXRmb3JtTWVzc2Fn
ZVBvcnRDaGFubmVsOjpNZXNzYWdlUG9ydFF1ZXVlOjpjcmVhdGUoKTsKKyAgICBSZWY8UGxhdGZv
cm1NZXNzYWdlUG9ydENoYW5uZWw6Ok1lc3NhZ2VQb3J0UXVldWU+IHF1ZXVlMiA9IFBsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsOjpNZXNzYWdlUG9ydFF1ZXVlOjpjcmVhdGUoKTsKIAotICAgIGF1
dG8gY2hhbm5lbDEgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VQb3J0Q2hhbm5lbD4oUGxhdGZv
cm1NZXNzYWdlUG9ydENoYW5uZWw6OmNyZWF0ZShxdWV1ZTEsIHF1ZXVlMikpOwotICAgIGF1dG8g
Y2hhbm5lbDIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VQb3J0Q2hhbm5lbD4oUGxhdGZvcm1N
ZXNzYWdlUG9ydENoYW5uZWw6OmNyZWF0ZShxdWV1ZTIsIHF1ZXVlMSkpOworICAgIGF1dG8gY2hh
bm5lbDEgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VQb3J0Q2hhbm5lbD4oUGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWw6OmNyZWF0ZShxdWV1ZTEucHRyKCksIHF1ZXVlMi5wdHIoKSkpOworICAg
IGF1dG8gY2hhbm5lbDIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VQb3J0Q2hhbm5lbD4oUGxh
dGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OmNyZWF0ZShxdWV1ZTIucHRyKCksIHF1ZXVlMS5wdHIo
KSkpOwogCiAgICAgY2hhbm5lbDEtPm1fY2hhbm5lbC0+bV9lbnRhbmdsZWRDaGFubmVsID0gY2hh
bm5lbDItPm1fY2hhbm5lbDsKICAgICBjaGFubmVsMi0+bV9jaGFubmVsLT5tX2VudGFuZ2xlZENo
YW5uZWwgPSBjaGFubmVsMS0+bV9jaGFubmVsOwpAQCAtNTgsOCArNTgsOCBAQCB2b2lkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hhbm5lbChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0
MSwgUGFzc1JlZlB0cgogICAgIHBvcnQyLT5lbnRhbmdsZShXVEZNb3ZlKGNoYW5uZWwxKSk7CiB9
CiAKLU1lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVzc2FnZVBvcnRDaGFubmVsKFBhc3NSZWZQdHI8UGxh
dGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IGNoYW5uZWwpCi0gICAgOiBtX2NoYW5uZWwoY2hhbm5l
bCkKK01lc3NhZ2VQb3J0Q2hhbm5lbDo6TWVzc2FnZVBvcnRDaGFubmVsKFJlZlB0cjxQbGF0Zm9y
bU1lc3NhZ2VQb3J0Q2hhbm5lbD4mJiBjaGFubmVsKQorICAgIDogbV9jaGFubmVsKFdURk1vdmUo
Y2hhbm5lbCkpCiB7CiB9CiAKQEAgLTg2LDEyICs4NiwxMiBAQCB2b2lkIE1lc3NhZ2VQb3J0Q2hh
bm5lbDo6ZGlzZW50YW5nbGUoKQogICAgICAgICByZW1vdGUtPnNldFJlbW90ZVBvcnQobnVsbHB0
cik7CiB9CiAKLXZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRvUmVtb3RlKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzKQordm9pZCBNZXNzYWdlUG9ydENoYW5u
ZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBt
ZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxz
KQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGlmICgh
bV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUpCiAgICAgICAgIHJldHVybjsKLSAgICBib29sIHdh
c0VtcHR5ID0gbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHko
c3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPiht
ZXNzYWdlLCBXVEZNb3ZlKGNoYW5uZWxzKSkpOworICAgIGJvb2wgd2FzRW1wdHkgPSBtX2NoYW5u
ZWwtPm1fb3V0Z29pbmdRdWV1ZS0+YXBwZW5kQW5kQ2hlY2tFbXB0eShzdGQ6Om1ha2VfdW5pcXVl
PFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpFdmVudERhdGE+KFdURk1vdmUobWVzc2FnZSks
IFdURk1vdmUoY2hhbm5lbHMpKSk7CiAgICAgaWYgKHdhc0VtcHR5ICYmIG1fY2hhbm5lbC0+bV9y
ZW1vdGVQb3J0KQogICAgICAgICBtX2NoYW5uZWwtPm1fcmVtb3RlUG9ydC0+bWVzc2FnZUF2YWls
YWJsZSgpOwogfQpAQCAtMTQ2LDEyICsxNDYsMTIgQEAgTWVzc2FnZVBvcnQqIE1lc3NhZ2VQb3J0
Q2hhbm5lbDo6bG9jYWxseUVudGFuZ2xlZFBvcnQoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGUK
ICAgICByZXR1cm4gMDsKIH0KIAotUmVmPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiBQbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnRRdWV1
ZT4gaW5jb21pbmcsIFBhc3NSZWZQdHI8TWVzc2FnZVBvcnRRdWV1ZT4gb3V0Z29pbmcpCitSZWY8
UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpj
cmVhdGUoTWVzc2FnZVBvcnRRdWV1ZSogaW5jb21pbmcsIE1lc3NhZ2VQb3J0UXVldWUqIG91dGdv
aW5nKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsKGluY29taW5nLCBvdXRnb2luZykpOwogfQogCi1QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVl
PiBpbmNvbWluZywgUGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBvdXRnb2luZykKK1BsYXRm
b3JtTWVzc2FnZVBvcnRDaGFubmVsOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbChNZXNzYWdl
UG9ydFF1ZXVlKiBpbmNvbWluZywgTWVzc2FnZVBvcnRRdWV1ZSogb3V0Z29pbmcpCiAgICAgOiBt
X2luY29taW5nUXVldWUoaW5jb21pbmcpCiAgICAgLCBtX291dGdvaW5nUXVldWUob3V0Z29pbmcp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3Nh
Z2VQb3J0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWwuaAppbmRleCBmNDVmZjIyMGJmNmI0ZTcxMDU3YmQ1N2FhODdhZTkzYzQ5
Nzg1M2YzLi4zNWRkOGUxNzIzM2FkZGExYzhjNDJlMjM5MDhjODRhOGVjNjk2ZWQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5uZWwu
aCIKIAogI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDksOSArNDgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNsYXNzIEV2
ZW50RGF0YSB7CiAgICAgICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFdmVudERhdGEpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICAgICAgcHVibGljOgotICAgICAgICAgICAgRXZl
bnREYXRhKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6OnVu
aXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KTsKKyAgICAgICAgICAgIEV2ZW50RGF0
YShSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4pOwogCi0gICAgICAgICAgICBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSgpIHsgcmV0dXJuIG1fbWVzc2FnZTsgfQorICAg
ICAgICAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSgpIHsgcmV0dXJu
IG1fbWVzc2FnZTsgfQogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hh
bm5lbEFycmF5PiBjaGFubmVscygpIHsgcmV0dXJuIFdURk1vdmUobV9jaGFubmVscyk7IH0KIAog
ICAgICAgICBwcml2YXRlOgpAQCAtODcsOCArODYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgflBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsKCk7CiAKLSAgICAgICAgc3RhdGlj
IFJlZjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gY3JlYXRlKFBhc3NSZWZQdHI8TWVzc2Fn
ZVBvcnRRdWV1ZT4gaW5jb21pbmcsIFBhc3NSZWZQdHI8TWVzc2FnZVBvcnRRdWV1ZT4gb3V0Z29p
bmcpOwotICAgICAgICBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbChQYXNzUmVmUHRyPE1lc3Nh
Z2VQb3J0UXVldWU+IGluY29taW5nLCBQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0UXVldWU+IG91dGdv
aW5nKTsKKyAgICAgICAgc3RhdGljIFJlZjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gY3Jl
YXRlKE1lc3NhZ2VQb3J0UXVldWUqIGluY29taW5nLCBNZXNzYWdlUG9ydFF1ZXVlKiBvdXRnb2lu
Zyk7CisgICAgICAgIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsKE1lc3NhZ2VQb3J0UXVldWUq
IGluY29taW5nLCBNZXNzYWdlUG9ydFF1ZXVlKiBvdXRnb2luZyk7CiAKICAgICAgICAgUmVmUHRy
PFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiBlbnRhbmdsZWRDaGFubmVsKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>