<?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>104708</bug_id>
          
          <creation_ts>2012-12-11 13:20:12 -0800</creation_ts>
          <short_desc>[Texmap] Slightly improve readability of the antialias shader</short_desc>
          <delta_ts>2012-12-12 00:23:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>788719</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 13:20:12 -0800</bug_when>
    <thetext>[Texmap] Slightly improve readability of the antialias shader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788721</commentid>
    <comment_count>1</comment_count>
      <attachid>178860</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 13:23:41 -0800</bug_when>
    <thetext>Created attachment 178860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788863</commentid>
    <comment_count>2</comment_count>
      <attachid>178860</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-11 15:28:40 -0800</bug_when>
    <thetext>Comment on attachment 178860
Patch

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

I like how you packed some of the text of the comments into variable names. I have a couple questions though.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp:201
&gt; +            float antialiasQuad(vec3 coef1, vec3 coef2, vec3 coef3, vec3 coef4)

I think I would prefer avoiding abbreviations, as we typically do in WebKit. Isn&apos;t it useful to describe where the technique originates from?

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp:220
&gt; +                        , u_expandedQuadEdgesInScreenSpace[5]
&gt; +                        , u_expandedQuadEdgesInScreenSpace[6]
&gt; +                        , u_expandedQuadEdgesInScreenSpace[7]);
&gt; +

That&apos;s a strange use of commas. I think they typically go at the end of the previous line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788871</commentid>
    <comment_count>3</comment_count>
      <attachid>178895</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 15:35:20 -0800</bug_when>
    <thetext>Created attachment 178895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788880</commentid>
    <comment_count>4</comment_count>
      <attachid>178895</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-11 15:45:46 -0800</bug_when>
    <thetext>Comment on attachment 178895
Patch

Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789017</commentid>
    <comment_count>5</comment_count>
      <attachid>178895</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 17:19:12 -0800</bug_when>
    <thetext>Comment on attachment 178895
Patch

Clearing flags on attachment: 178895

Committed r137394: &lt;http://trac.webkit.org/changeset/137394&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789018</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 17:19:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789256</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 23:46:38 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789257</commentid>
    <comment_count>8</comment_count>
      <attachid>178980</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 23:46:41 -0800</bug_when>
    <thetext>Created attachment 178980
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789261</commentid>
    <comment_count>9</comment_count>
      <attachid>178982</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 23:49:33 -0800</bug_when>
    <thetext>Created attachment 178982
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789280</commentid>
    <comment_count>10</comment_count>
      <attachid>178982</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 00:11:45 -0800</bug_when>
    <thetext>Comment on attachment 178982
Patch for landing

Clearing flags on attachment: 178982

Committed r137428: &lt;http://trac.webkit.org/changeset/137428&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789282</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 00:11:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789289</commentid>
    <comment_count>12</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-12 00:22:04 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789290</commentid>
    <comment_count>13</comment_count>
      <attachid>178986</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-12 00:22:06 -0800</bug_when>
    <thetext>Created attachment 178986
Patch for landing</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178860</attachid>
            <date>2012-12-11 13:23:41 -0800</date>
            <delta_ts>2012-12-11 15:35:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104708-20121211132109.patch</filename>
            <type>text/plain</type>
            <size>5363</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjcwODc5ZDdlODcwMWUx
NDE5NjRmNGEyNjY5NjY5ZWJkYjJkZDg2YS4uNjg1NjRhOTI0NDJhYjdjZjdlZWViNjk3ZmQzOTI4
M2NlYjliMzFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIxIEBACiAyMDEyLTEyLTExICBObydh
bSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1RleG1hcF0gU2xpZ2h0
bHkgaW1wcm92ZSByZWFkYWJpbGl0eSBvZiB0aGUgYW50aWFsaWFzIHNoYWRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NzA4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZ5IHRoZSBhbnRpYWxp
YXNpbmcgc2hhZGVyIHRvIGluY2x1ZGUgc2VwYXJhdGUgZnVuY3Rpb24gdGhhdCBwZXJmb3JtCisg
ICAgICAgIGRpc2NyZXRlIG9wZXJhdGlvbnMsIHJhdGhlciB0aGFuIG9uZSBiaWcgZnVuY3Rpb24g
dGhhdCByZXBlYXRzIHRoZSBzYW1lCisgICAgICAgIG9wZXJhdGlvbnMuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCByZWFkYWJpbGl0eSBmaXguCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z2V0U2hhZGVyU3BlYyk6CisKKzIwMTItMTItMTEgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW1A
d2Via2l0Lm9yZz4KKwogICAgICAgICBbVGV4bWFwXSBSZW1vdmUgbG93cC9oaWdocCBpbmRpY2F0
b3JzIGFzIHRoZXkncmUgbm90IG5lZWRlZCB3aXRoIEFOR0xFLgogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NzA3CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCmluZGV4IGZiOTY2NzUyMWNiMTA1OTVjMjZjMmU3NDZi
NmUwMjhmODNiMWY4NWIuLjBiNjk1MTY2YzY3ZGNjZGViNmYyYTFjOWNiMmRkY2JjZjZlMDk2ZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcApAQCAtMTg5LDM1
ICsxODksNDIgQEAgc3RhdGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVy
TWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5nJiB2ZXIKICAgICAgICAgICAgIHZhcnlpbmcg
dmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X29wYWNp
dHk7CiAgICAgICAgICAgICB1bmlmb3JtIHZlYzMgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVu
U3BhY2VbOF07Ci0gICAgICAgICAgICB2b2lkIG1haW4oKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIHZlYzQgc2FtcGxlZENvbG9yID0gdGV4dHVyZTJEKHNfc2FtcGxlciwgY2xhbXAo
dl9zb3VyY2VUZXhDb29yZCwgMC4wLCAxLjApKTsKLSAgICAgICAgICAgICAgICB2ZWMzIHBvcyA9
IHZlYzMoZ2xfRnJhZ0Nvb3JkLnh5LCAxKTsKIAotICAgICAgICAgICAgICAgIC8vIFRoZSBkYXRh
IHBhc3NlZCBpbiB1X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZSBpcyBtZXJlbHkgdGhl
Ci0gICAgICAgICAgICAgICAgLy8gcHJlLXNjYWxlZCBjb2VmZmVjaWVudHMgb2YgdGhlIGxpbmUg
ZXF1YXRpb25zIGRlc2NyaWJpbmcgdGhlIGZvdXIgZWRnZXMKLSAgICAgICAgICAgICAgICAvLyBv
ZiB0aGUgZXhwYW5kZWQgcXVhZCBpbiBzY3JlZW4gc3BhY2UgYW5kIHRoZSByZWN0YW5ndWxhciBi
b3VuZGluZyBib3gKLSAgICAgICAgICAgICAgICAvLyBvZiB0aGUgZXhwYW5kZWQgcXVhZC4KLSAg
ICAgICAgICAgICAgICAvLworICAgICAgICAgICAgZmxvYXQgbm9ybWFsaXplZERpc3RhbmNlKHZl
YzMgZWRnZUNvZWZmaWNpZW50KQorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8vIFdl
IGFyZSBkb2luZyBhIHNpbXBsZSBkaXN0YW5jZSBjYWxjdWxhdGlvbiBoZXJlIGFjY29yZGluZyB0
byB0aGUgZm9ybXVsYToKICAgICAgICAgICAgICAgICAvLyAoQSpwLnggKyBCKnAueSArIEMpIC8g
c3FydChBXjIgKyBCXjIpID0gZGlzdGFuY2UgZnJvbSBsaW5lIHRvIHAKICAgICAgICAgICAgICAg
ICAvLyBOb3RlIHRoYXQgQSwgQiBhbmQgQyBoYXZlIGFscmVhZHkgYmVlbiBzY2FsZWQgYnkgMSAv
IHNxcnQoQV4yICsgQl4yKS4KLSAgICAgICAgICAgICAgICBmbG9hdCBhMCA9IGNsYW1wKGRvdCh1
X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVswXSwgcG9zKSwgMC4wLCAxLjApOwotICAg
ICAgICAgICAgICAgIGZsb2F0IGExID0gY2xhbXAoZG90KHVfZXhwYW5kZWRRdWFkRWRnZXNJblNj
cmVlblNwYWNlWzFdLCBwb3MpLCAwLjAsIDEuMCk7Ci0gICAgICAgICAgICAgICAgZmxvYXQgYTIg
PSBjbGFtcChkb3QodV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbMl0sIHBvcyksIDAu
MCwgMS4wKTsKLSAgICAgICAgICAgICAgICBmbG9hdCBhMyA9IGNsYW1wKGRvdCh1X2V4cGFuZGVk
UXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVszXSwgcG9zKSwgMC4wLCAxLjApOwotICAgICAgICAgICAg
ICAgIGZsb2F0IGE0ID0gY2xhbXAoZG90KHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNl
WzRdLCBwb3MpLCAwLjAsIDEuMCk7Ci0gICAgICAgICAgICAgICAgZmxvYXQgYTUgPSBjbGFtcChk
b3QodV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbNV0sIHBvcyksIDAuMCwgMS4wKTsK
LSAgICAgICAgICAgICAgICBmbG9hdCBhNiA9IGNsYW1wKGRvdCh1X2V4cGFuZGVkUXVhZEVkZ2Vz
SW5TY3JlZW5TcGFjZVs2XSwgcG9zKSwgMC4wLCAxLjApOwotICAgICAgICAgICAgICAgIGZsb2F0
IGE3ID0gY2xhbXAoZG90KHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzddLCBwb3Mp
LCAwLjAsIDEuMCk7Ci0KLSAgICAgICAgICAgICAgICAvLyBOb3cgd2Ugd2FudCB0byByZWR1Y2Ug
dGhlIGFscGhhIHZhbHVlIG9mIHRoZSBmcmFnbWVudCBpZiBpdCBpcyBjbG9zZSB0byB0aGUKLSAg
ICAgICAgICAgICAgICAvLyBlZGdlcyBvZiB0aGUgZXhwYW5kZWQgcXVhZCAob3IgcmVjdGFuZ3Vs
YXIgYm91bmRpbmcgYm94IC0tIHdoaWNoIHNlZW1zIHRvIGJlCi0gICAgICAgICAgICAgICAgLy8g
aW1wb3J0YW50IGZvciBiYWNrZmFjaW5nIHF1YWRzKS4gTm90ZSB0aGF0IHdlIGFyZSBjb21iaW5p
bmcgdGhlIGNvbnRyaWJ1dGlvbgotICAgICAgICAgICAgICAgIC8vIGZyb20gdGhlICh0b3AgfHwg
Ym90dG9tKSBhbmQgKGxlZnQgfHwgcmlnaHQpIGVkZ2UgYnkgc2ltcGx5IG11bHRpcGx5aW5nLiBU
aGlzIGZvbGxvd3MKLSAgICAgICAgICAgICAgICAvLyB0aGUgYXBwcm9hY2ggZGVzY3JpYmVkIGF0
OiBodHRwOi8vaHR0cC5kZXZlbG9wZXIubnZpZGlhLmNvbS9HUFVHZW1zMi9ncHVnZW1zMl9jaGFw
dGVyMjIuaHRtbCwKLSAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIGNhc2Ugd2l0aG91dCB1c2lu
ZyBHYXVzc2lhbiB3ZWlnaHRzLgotICAgICAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHNhbXBs
ZWRDb2xvciAqIHVfb3BhY2l0eSAqIG1pbihtaW4oYTAsIGEyKSAqIG1pbihhMSwgYTMpLCBtaW4o
YTQsIGE2KSAqIG1pbihhNSwgYTcpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2xhbXAoZG90
KGVkZ2VDb2VmZmljaWVudCwgdmVjMyhnbF9GcmFnQ29vcmQueHksIDEuKSksIDAuLCAxLik7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZsb2F0IGFudGlhbGlhc1F1YWQodmVjMyBjb2Vm
MSwgdmVjMyBjb2VmMiwgdmVjMyBjb2VmMywgdmVjMyBjb2VmNCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbWluKG5vcm1hbGl6ZWREaXN0YW5jZShjb2VmMSksIG5vcm1h
bGl6ZWREaXN0YW5jZShjb2VmMykpCisgICAgICAgICAgICAgICAgICAgICogbWluKG5vcm1hbGl6
ZWREaXN0YW5jZShjb2VmMiksIG5vcm1hbGl6ZWREaXN0YW5jZShjb2VmNCkpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmbG9hdCBhbnRpYWxpYXMoKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGZsb2F0IGFudGlhbGlhc1ZhbHVlRm9yUXVhZCA9IAorICAgICAgICAgICAg
ICAgICAgICBhbnRpYWxpYXNRdWFkKHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzBd
CisgICAgICAgICAgICAgICAgICAgICAgICAsIHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNw
YWNlWzFdCisgICAgICAgICAgICAgICAgICAgICAgICAsIHVfZXhwYW5kZWRRdWFkRWRnZXNJblNj
cmVlblNwYWNlWzJdCisgICAgICAgICAgICAgICAgICAgICAgICAsIHVfZXhwYW5kZWRRdWFkRWRn
ZXNJblNjcmVlblNwYWNlWzNdKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IGFudGlhbGlhc1Zh
bHVlRm9yQm91bmRpbmdSZWN0ID0gCisgICAgICAgICAgICAgICAgICAgIGFudGlhbGlhc1F1YWQo
dV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbNF0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICwgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbNV0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICwgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbNl0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICwgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbN10pOwor
CisgICAgICAgICAgICAgICAgcmV0dXJuIG1pbihhbnRpYWxpYXNWYWx1ZUZvclF1YWQsIGFudGlh
bGlhc1ZhbHVlRm9yQm91bmRpbmdSZWN0KTsgICAgICAgICAgIAorICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICB2b2lkIG1haW4oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZl
YzQgc2FtcGxlZENvbG9yID0gdGV4dHVyZTJEKHNfc2FtcGxlciwgY2xhbXAodl9zb3VyY2VUZXhD
b29yZCwgMC4wLCAxLjApKTsKKyAgICAgICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSBzYW1wbGVk
Q29sb3IgKiB1X29wYWNpdHkgKiBhbnRpYWxpYXMoKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178895</attachid>
            <date>2012-12-11 15:35:20 -0800</date>
            <delta_ts>2012-12-11 23:46:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104708-20121211153252.patch</filename>
            <type>text/plain</type>
            <size>5411</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjcwODc5ZDdlODcwMWUx
NDE5NjRmNGEyNjY5NjY5ZWJkYjJkZDg2YS4uNjg1NjRhOTI0NDJhYjdjZjdlZWViNjk3ZmQzOTI4
M2NlYjliMzFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIxIEBACiAyMDEyLTEyLTExICBObydh
bSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1RleG1hcF0gU2xpZ2h0
bHkgaW1wcm92ZSByZWFkYWJpbGl0eSBvZiB0aGUgYW50aWFsaWFzIHNoYWRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NzA4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZ5IHRoZSBhbnRpYWxp
YXNpbmcgc2hhZGVyIHRvIGluY2x1ZGUgc2VwYXJhdGUgZnVuY3Rpb24gdGhhdCBwZXJmb3JtCisg
ICAgICAgIGRpc2NyZXRlIG9wZXJhdGlvbnMsIHJhdGhlciB0aGFuIG9uZSBiaWcgZnVuY3Rpb24g
dGhhdCByZXBlYXRzIHRoZSBzYW1lCisgICAgICAgIG9wZXJhdGlvbnMuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCByZWFkYWJpbGl0eSBmaXguCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z2V0U2hhZGVyU3BlYyk6CisKKzIwMTItMTItMTEgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW1A
d2Via2l0Lm9yZz4KKwogICAgICAgICBbVGV4bWFwXSBSZW1vdmUgbG93cC9oaWdocCBpbmRpY2F0
b3JzIGFzIHRoZXkncmUgbm90IG5lZWRlZCB3aXRoIEFOR0xFLgogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NzA3CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCmluZGV4IGZiOTY2NzUyMWNiMTA1OTVjMjZjMmU3NDZi
NmUwMjhmODNiMWY4NWIuLjIxNzU2MjBhZTE3ZjQzZWZjNDgxZmE1NjczODM3YmY3YTE2OGZjMjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcApAQCAtMTg5LDM1
ICsxODksNTMgQEAgc3RhdGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVy
TWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5nJiB2ZXIKICAgICAgICAgICAgIHZhcnlpbmcg
dmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X29wYWNp
dHk7CiAgICAgICAgICAgICB1bmlmb3JtIHZlYzMgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVu
U3BhY2VbOF07Ci0gICAgICAgICAgICB2b2lkIG1haW4oKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIHZlYzQgc2FtcGxlZENvbG9yID0gdGV4dHVyZTJEKHNfc2FtcGxlciwgY2xhbXAo
dl9zb3VyY2VUZXhDb29yZCwgMC4wLCAxLjApKTsKLSAgICAgICAgICAgICAgICB2ZWMzIHBvcyA9
IHZlYzMoZ2xfRnJhZ0Nvb3JkLnh5LCAxKTsKIAogICAgICAgICAgICAgICAgIC8vIFRoZSBkYXRh
IHBhc3NlZCBpbiB1X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZSBpcyBtZXJlbHkgdGhl
CiAgICAgICAgICAgICAgICAgLy8gcHJlLXNjYWxlZCBjb2VmZmVjaWVudHMgb2YgdGhlIGxpbmUg
ZXF1YXRpb25zIGRlc2NyaWJpbmcgdGhlIGZvdXIgZWRnZXMKICAgICAgICAgICAgICAgICAvLyBv
ZiB0aGUgZXhwYW5kZWQgcXVhZCBpbiBzY3JlZW4gc3BhY2UgYW5kIHRoZSByZWN0YW5ndWxhciBi
b3VuZGluZyBib3gKICAgICAgICAgICAgICAgICAvLyBvZiB0aGUgZXhwYW5kZWQgcXVhZC4KICAg
ICAgICAgICAgICAgICAvLworICAgICAgICAgICAgZmxvYXQgbm9ybWFsaXplZERpc3RhbmNlKHZl
YzMgZWRnZUNvZWZmaWNpZW50KQorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8vIFdl
IGFyZSBkb2luZyBhIHNpbXBsZSBkaXN0YW5jZSBjYWxjdWxhdGlvbiBoZXJlIGFjY29yZGluZyB0
byB0aGUgZm9ybXVsYToKICAgICAgICAgICAgICAgICAvLyAoQSpwLnggKyBCKnAueSArIEMpIC8g
c3FydChBXjIgKyBCXjIpID0gZGlzdGFuY2UgZnJvbSBsaW5lIHRvIHAKICAgICAgICAgICAgICAg
ICAvLyBOb3RlIHRoYXQgQSwgQiBhbmQgQyBoYXZlIGFscmVhZHkgYmVlbiBzY2FsZWQgYnkgMSAv
IHNxcnQoQV4yICsgQl4yKS4KLSAgICAgICAgICAgICAgICBmbG9hdCBhMCA9IGNsYW1wKGRvdCh1
X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVswXSwgcG9zKSwgMC4wLCAxLjApOwotICAg
ICAgICAgICAgICAgIGZsb2F0IGExID0gY2xhbXAoZG90KHVfZXhwYW5kZWRRdWFkRWRnZXNJblNj
cmVlblNwYWNlWzFdLCBwb3MpLCAwLjAsIDEuMCk7Ci0gICAgICAgICAgICAgICAgZmxvYXQgYTIg
PSBjbGFtcChkb3QodV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbMl0sIHBvcyksIDAu
MCwgMS4wKTsKLSAgICAgICAgICAgICAgICBmbG9hdCBhMyA9IGNsYW1wKGRvdCh1X2V4cGFuZGVk
UXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVszXSwgcG9zKSwgMC4wLCAxLjApOwotICAgICAgICAgICAg
ICAgIGZsb2F0IGE0ID0gY2xhbXAoZG90KHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNl
WzRdLCBwb3MpLCAwLjAsIDEuMCk7Ci0gICAgICAgICAgICAgICAgZmxvYXQgYTUgPSBjbGFtcChk
b3QodV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbNV0sIHBvcyksIDAuMCwgMS4wKTsK
LSAgICAgICAgICAgICAgICBmbG9hdCBhNiA9IGNsYW1wKGRvdCh1X2V4cGFuZGVkUXVhZEVkZ2Vz
SW5TY3JlZW5TcGFjZVs2XSwgcG9zKSwgMC4wLCAxLjApOwotICAgICAgICAgICAgICAgIGZsb2F0
IGE3ID0gY2xhbXAoZG90KHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzddLCBwb3Mp
LCAwLjAsIDEuMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNsYW1wKGRvdChlZGdlQ29lZmZp
Y2llbnQsIHZlYzMoZ2xfRnJhZ0Nvb3JkLnh5LCAxLikpLCAwLiwgMS4pOworICAgICAgICAgICAg
fQogCisgICAgICAgICAgICBmbG9hdCBhbnRpYWxpYXNRdWFkKHZlYzMgY29lZmZpY2llbnQxLCB2
ZWMzIGNvZWZmaWNpZW50MiwgdmVjMyBjb2VmZmljaWVudDMsIHZlYzMgY29lZmZpY2llbnQ0KQor
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8vIE5vdyB3ZSB3YW50IHRvIHJlZHVjZSB0
aGUgYWxwaGEgdmFsdWUgb2YgdGhlIGZyYWdtZW50IGlmIGl0IGlzIGNsb3NlIHRvIHRoZQogICAg
ICAgICAgICAgICAgIC8vIGVkZ2VzIG9mIHRoZSBleHBhbmRlZCBxdWFkIChvciByZWN0YW5ndWxh
ciBib3VuZGluZyBib3ggLS0gd2hpY2ggc2VlbXMgdG8gYmUKICAgICAgICAgICAgICAgICAvLyBp
bXBvcnRhbnQgZm9yIGJhY2tmYWNpbmcgcXVhZHMpLiBOb3RlIHRoYXQgd2UgYXJlIGNvbWJpbmlu
ZyB0aGUgY29udHJpYnV0aW9uCiAgICAgICAgICAgICAgICAgLy8gZnJvbSB0aGUgKHRvcCB8fCBi
b3R0b20pIGFuZCAobGVmdCB8fCByaWdodCkgZWRnZSBieSBzaW1wbHkgbXVsdGlwbHlpbmcuIFRo
aXMgZm9sbG93cwogICAgICAgICAgICAgICAgIC8vIHRoZSBhcHByb2FjaCBkZXNjcmliZWQgYXQ6
IGh0dHA6Ly9odHRwLmRldmVsb3Blci5udmlkaWEuY29tL0dQVUdlbXMyL2dwdWdlbXMyX2NoYXB0
ZXIyMi5odG1sLAogICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgY2FzZSB3aXRob3V0IHVzaW5n
IEdhdXNzaWFuIHdlaWdodHMuCi0gICAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gc2FtcGxl
ZENvbG9yICogdV9vcGFjaXR5ICogbWluKG1pbihhMCwgYTIpICogbWluKGExLCBhMyksIG1pbihh
NCwgYTYpICogbWluKGE1LCBhNykpOworICAgICAgICAgICAgICAgIHJldHVybiBtaW4obm9ybWFs
aXplZERpc3RhbmNlKGNvZWZmaWNpZW50MSksIG5vcm1hbGl6ZWREaXN0YW5jZShjb2VmZmljaWVu
dDIpKQorICAgICAgICAgICAgICAgICAgICAqIG1pbihub3JtYWxpemVkRGlzdGFuY2UoY29lZmZp
Y2llbnQzKSwgbm9ybWFsaXplZERpc3RhbmNlKGNvZWZmaWNpZW50NCkpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmbG9hdCBhbnRpYWxpYXMoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGZsb2F0IGFudGlhbGlhc1ZhbHVlRm9yUXVhZCA9IAorICAgICAgICAgICAgICAg
ICAgICBhbnRpYWxpYXNRdWFkKHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzBdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2Vb
MV0sCisgICAgICAgICAgICAgICAgICAgICAgICB1X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5T
cGFjZVsyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVfZXhwYW5kZWRRdWFkRWRnZXNJblNj
cmVlblNwYWNlWzNdKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IGFudGlhbGlhc1ZhbHVlRm9y
Qm91bmRpbmdSZWN0ID0gCisgICAgICAgICAgICAgICAgICAgIGFudGlhbGlhc1F1YWQodV9leHBh
bmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbNF0sCisgICAgICAgICAgICAgICAgICAgICAgICB1
X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVs1XSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzZdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbN10pOworCisgICAgICAg
ICAgICAgICAgcmV0dXJuIG1pbihhbnRpYWxpYXNWYWx1ZUZvclF1YWQsIGFudGlhbGlhc1ZhbHVl
Rm9yQm91bmRpbmdSZWN0KTsgICAgICAgICAgIAorICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICB2b2lkIG1haW4oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZlYzQgc2FtcGxl
ZENvbG9yID0gdGV4dHVyZTJEKHNfc2FtcGxlciwgY2xhbXAodl9zb3VyY2VUZXhDb29yZCwgMC4w
LCAxLjApKTsKKyAgICAgICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSBzYW1wbGVkQ29sb3IgKiB1
X29wYWNpdHkgKiBhbnRpYWxpYXMoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178980</attachid>
            <date>2012-12-11 23:46:41 -0800</date>
            <delta_ts>2012-12-11 23:49:29 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-104708-20121211234409.patch</filename>
            <type>text/plain</type>
            <size>20558</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU5NjhlMjNmMGI5Yzdi
M2ZiNGE4YjRkNzBjNjMzNDUwN2ExNzU5ZC4uYThiYjJlYjExMDE1NWZhMzdlYjYxOTA1Nzg2MDky
MDBmNjJhZmIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEyLTExICBObydh
bSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1RleG1hcF0gQ29uc29s
aWRhdGUgcmVkdW5kYW50IGNvZGUgZm9yIEFSQl9SRUNUIHRleHR1cmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNQorCisgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIEluc3RlYWQgb2Yg
aGF2aW5nIGEgd2hvbGUgZGlmZmVyZW50IGZ1bmN0aW9uIGZvciBSRUNUIHRleHR1cmVzLAorICAg
ICAgICBrZWVwIHRoZSBleGlzdGluZyBmdW5jdGlvbnMgYW5kIHBhc3MgYSBmbGFnIHRoYXQgdGVs
bHMKKyAgICAgICAgVGV4dHVyZU1hcHBlckdMIHRvIHVzZSB0aGUgbm9uLW5vcm1hbGl6ZWQgY29v
cmRpbmF0ZXMgYW5kIHRoZQorICAgICAgICBSRUNUIHNoYWRlcnMuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCByZWZhY3RvciBvbmx5LiBUZXN0ZWQgdG8gbm90IGJyZWFrIFdlYkdMIG9uCisgICAg
ICAgIFF0LU1hYy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL21hYy9H
cmFwaGljc1N1cmZhY2VNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNl
OjpwbGF0Zm9ybVBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJHTDo6ZHJhd1F1YWQpOgorICAgICAgICAgICAgQ29tcGVuc2F0ZSBmb3IgcmVjdCB0
ZXh0dXJlcyBpbiBkcmF3UXVhZC4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
OjpkcmF3Qm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1Rl
eHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3U29saWRDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlV2l0aEFu
dGlhbGlhc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0
dXJlZFF1YWRXaXRoUHJvZ3JhbSk6CisgICAgICAgICAgICBQYXNzIGZsYWdzIHRvIFRleHR1cmVN
YXBwZXJHTDo6ZHJhd1F1YWQgaW5zdGVhZCBvZiBhIGJvb2wuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgIChUZXh0dXJlTWFw
cGVyR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
U2hhZGVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRTaGFkZXJTcGVjKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXIuaDoKKyAgICAgICAgKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKToKKyAgICAgICAgICAg
IENvbXBlbnNhdGUgZm9yIHRoZSB0ZXh0dXJlLXNpemUgaW4gdGhlIHZlcnRleAorICAgICAgICAg
ICAgc2hhZGVyIGluc3RlYWQgb2YgaW4gdGhlIGZyYWdtZW50IHNoYWRlci4KKwogMjAxMi0xMi0x
MCAgTm8nYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKHIxMzcwMDYpOiBDU1MgY2xpcCBvbiBzb2xpZCBjb2xvciBjb21wb3NpdGVkIGRpdiBicm9r
ZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvbWFjL0dyYXBoaWNzU3VyZmFjZU1hYy5jcHAKaW5kZXggNDM5YmY5YTJk
ZmQ1Yzg4YThlYTU2ZTlkNjIxNmMyZmU4NGEzMGUxNC4uZGJlNTdlM2JjYmYyYmYxYmY0MDE3ZDcw
MmI5OTlmYzgyMWFmNjEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvbWFjL0dyYXBoaWNzU3VyZmFjZU1hYy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvbWFjL0dyYXBoaWNzU3VyZmFjZU1hYy5j
cHAKQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1QYWlu
dFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLAogewogICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IGFkanVzdGVkVHJhbnNmb3JtID0gdHJhbnNmb3JtOwogICAgIGFk
anVzdGVkVHJhbnNmb3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0
KEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIG1fcHJpdmF0ZS0+c2l6ZSgpKSwgdGFyZ2V0
UmVjdCkpOwotICAgIHN0YXRpY19jYXN0PFRleHR1cmVNYXBwZXJHTCo+KHRleHR1cmVNYXBwZXIp
LT5kcmF3VGV4dHVyZVJlY3RhbmdsZUFSQihtX3ByaXZhdGUtPmZyb250QnVmZmVyVGV4dHVyZUlE
KCksIFRleHR1cmVNYXBwZXJHTDo6U3VwcG9ydHNCbGVuZGluZywgbV9wcml2YXRlLT5zaXplKCks
IHRhcmdldFJlY3QsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrKTsKKyAgICBzdGF0
aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPih0ZXh0dXJlTWFwcGVyKS0+ZHJhd1RleHR1cmUobV9w
cml2YXRlLT5mcm9udEJ1ZmZlclRleHR1cmVJRCgpLCBUZXh0dXJlTWFwcGVyR0w6OlN1cHBvcnRz
QmxlbmRpbmcgfCBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZFVzZUFSQlRleHR1cmVSZWN0LCBtX3By
aXZhdGUtPnNpemUoKSwgdGFyZ2V0UmVjdCwgYWRqdXN0ZWRUcmFuc2Zvcm0sIG9wYWNpdHksIG1h
c2spOwogfQogCiB1aW50MzJfdCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtRnJvbnRCdWZmZXIo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCBjYmQ3ZjFhODJhZjIwOGQ4MTBmZDJk
MjFhM2EyNmM0NzI1NTFmOGI5Li40ODhlOTAxY2Y3NDk5YmRmNjczYWIwOWZlMmZiYzFmNWJmNDM4
ZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgogCisjaW5jbHVkZSAiRXh0
ZW5zaW9uczNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1h
Z2UuaCIKICNpbmNsdWRlICJMZW5ndGhGdW5jdGlvbnMuaCIKQEAgLTU2LDcgKzU3LDYgQEAKIAog
I2lmICFVU0UoVEVYTUFQX09QRU5HTF9FU18yKQogLy8gRklYTUU6IE1vdmUgdG8gRXh0ZW5zaW9u
czNELmguCi0jZGVmaW5lIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQiAweDg0RjUKICNkZWZpbmUg
R0xfVU5TSUdORURfSU5UXzhfOF84XzhfUkVWIDB4ODM2NwogI2RlZmluZSBHTF9VTlBBQ0tfUk9X
X0xFTkdUSCAweDBDRjIKICNkZWZpbmUgR0xfVU5QQUNLX1NLSVBfUElYRUxTIDB4MENGNApAQCAt
MjcyLDcgKzI3Miw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjplbmRQYWludGluZygpCiAjZW5k
aWYKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdRdWFkKGNvbnN0IERyYXdRdWFkJiBx
dWFkVG9EcmF3LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSogc2hhZGVyUHJvZ3JhbSwgR0MzRGVudW0gZHJhd2lu
Z01vZGUsIGJvb2wgbmVlZHNCbGVuZGluZykKK3ZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3UXVh
ZChjb25zdCBEcmF3UXVhZCYgcXVhZFRvRHJhdywgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IG1vZGVsVmlld01hdHJpeCwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qIHNoYWRlclByb2dy
YW0sIEdDM0RlbnVtIGRyYXdpbmdNb2RlLCBGbGFncyBmbGFncykKIHsKICAgICBtX2NvbnRleHQz
RC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoc2hhZGVyUHJvZ3JhbS0+dmVydGV4TG9jYXRpb24o
KSk7CiAgICAgbV9jb250ZXh0M0QtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZ
X0JVRkZFUiwgMCk7CkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRy
YXdRdWFkKGNvbnN0IERyYXdRdWFkJiBxdWFkVG9EcmF3LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk0K
ICAgICB9OwogICAgIG1fY29udGV4dDNELT51bmlmb3JtTWF0cml4NGZ2KHNoYWRlclByb2dyYW0t
Pm1hdHJpeExvY2F0aW9uKCksIDEsIGZhbHNlLCBtNCk7CiAKLSAgICBpZiAobmVlZHNCbGVuZGlu
ZykgeworICAgIGlmIChmbGFncyAmIFNob3VsZEJsZW5kKSB7CiAgICAgICAgIG1fY29udGV4dDNE
LT5ibGVuZEZ1bmMoR3JhcGhpY3NDb250ZXh0M0Q6Ok9ORSwgR3JhcGhpY3NDb250ZXh0M0Q6Ok9O
RV9NSU5VU19TUkNfQUxQSEEpOwogICAgICAgICBtX2NvbnRleHQzRC0+ZW5hYmxlKEdyYXBoaWNz
Q29udGV4dDNEOjpCTEVORCk7CiAgICAgfSBlbHNlCkBAIC0zMjEsNyArMzIxLDcgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyR0w6OmRyYXdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCB3aWR0
aCwgY29uc3QgRmxvYXRSZWMKICAgICBtX2NvbnRleHQzRC0+dW5pZm9ybTRmKHByb2dyYW0tPmNv
bG9yTG9jYXRpb24oKSwgciwgZywgYiwgYSk7CiAgICAgbV9jb250ZXh0M0QtPmxpbmVXaWR0aCh3
aWR0aCk7CiAKLSAgICBkcmF3UXVhZCh0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIHByb2dy
YW0uZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FX0xPT1AsIGNvbG9yLmhhc0FscGhhKCkp
OworICAgIGRyYXdRdWFkKHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgcHJvZ3JhbS5nZXQo
KSwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVfTE9PUCwgY29sb3IuaGFzQWxwaGEoKSA/IFNob3Vs
ZEJsZW5kIDogMCk7CiB9CiAKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3UmVwYWludENvdW50
ZXIoaW50IHZhbHVlLCBpbnQgcG9pbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2lu
dCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCkKQEAgLTQwMiw1
NSArNDAyLDMxIEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZShjb25zdCBCaXRt
YXBUZXh0dXJlJiB0ZXh0dXJlLCBjb25zdCBGbG9hdFJlY3QmCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGNvbnN0IEJpdG1hcFRleHR1cmVHTCYgdGV4dHVyZUdMID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
Qml0bWFwVGV4dHVyZUdMJj4odGV4dHVyZSk7Ci0gICAgZHJhd1RleHR1cmUodGV4dHVyZUdMLmlk
KCksIHRleHR1cmVHTC5pc09wYXF1ZSgpID8gMCA6IFN1cHBvcnRzQmxlbmRpbmcsIHRleHR1cmVH
TC5zaXplKCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSwgbWFzaywgZXhwb3NlZEVkZ2Vz
KTsKKyAgICBkcmF3VGV4dHVyZSh0ZXh0dXJlR0wuaWQoKSwgdGV4dHVyZUdMLmlzT3BhcXVlKCkg
PyAwIDogU2hvdWxkQmxlbmQsIHRleHR1cmVHTC5zaXplKCksIHRhcmdldFJlY3QsIG1hdHJpeCwg
b3BhY2l0eSwgbWFzaywgZXhwb3NlZEVkZ2VzKTsKIH0KIAotI2lmICFVU0UoVEVYTUFQX09QRU5H
TF9FU18yKQotdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlUmVjdGFuZ2xlQVJCKHVp
bnQzMl90IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJbnRTaXplJiB0ZXh0dXJlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNr
VGV4dHVyZSkKLXsKLSAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IHByb2dy
YW07Ci0gICAgaWYgKG1hc2tUZXh0dXJlKQotICAgICAgICBwcm9ncmFtID0gZGF0YSgpLnNoYXJl
ZEdMRGF0YSgpLnRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmdldFNoYWRlclByb2dyYW0oVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6Ok1hc2tlZFJlY3QpOwotICAgIGVsc2UKLSAgICAgICAg
cHJvZ3JhbSA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS50ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdl
ci5nZXRTaGFkZXJQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpSZWN0KTsKLSAg
ICBtX2NvbnRleHQzRC0+dXNlUHJvZ3JhbShwcm9ncmFtLT5wcm9ncmFtSUQoKSk7Ci0KLSAgICBt
X2NvbnRleHQzRC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkocHJvZ3JhbS0+dmVydGV4TG9jYXRp
b24oKSk7Ci0gICAgbV9jb250ZXh0M0QtPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkUwKTsKLSAgICBtX2NvbnRleHQzRC0+YmluZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNU
QU5HTEVfQVJCLCB0ZXh0dXJlKTsKLSAgICBtX2NvbnRleHQzRC0+dW5pZm9ybTFpKHByb2dyYW0t
PnNhbXBsZXJMb2NhdGlvbigpLCAwKTsKLQotICAgIG1fY29udGV4dDNELT51bmlmb3JtMWYocHJv
Z3JhbS0+ZmxpcExvY2F0aW9uKCksICEhKGZsYWdzICYgU2hvdWxkRmxpcFRleHR1cmUpKTsKLSAg
ICBtX2NvbnRleHQzRC0+dW5pZm9ybTJmKHByb2dyYW0tPnNhbXBsZXJTaXplTG9jYXRpb24oKSwg
dGV4dHVyZVNpemUud2lkdGgoKSwgdGV4dHVyZVNpemUuaGVpZ2h0KCkpOwotICAgIG1fY29udGV4
dDNELT51bmlmb3JtMWYocHJvZ3JhbS0+b3BhY2l0eUxvY2F0aW9uKCksIG9wYWNpdHkpOwotCi0g
ICAgaWYgKG1hc2tUZXh0dXJlICYmIG1hc2tUZXh0dXJlLT5pc1ZhbGlkKCkpIHsKLSAgICAgICAg
Y29uc3QgQml0bWFwVGV4dHVyZUdMKiBtYXNrVGV4dHVyZUdMID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
Qml0bWFwVGV4dHVyZUdMKj4obWFza1RleHR1cmUpOwotICAgICAgICBtX2NvbnRleHQzRC0+YWN0
aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTEpOwotICAgICAgICBtX2NvbnRl
eHQzRC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1hc2tUZXh0
dXJlR0wtPmlkKCkpOwotICAgICAgICBtX2NvbnRleHQzRC0+dW5pZm9ybTFpKHByb2dyYW0tPm1h
c2tMb2NhdGlvbigpLCAxKTsKLSAgICAgICAgbV9jb250ZXh0M0QtPmFjdGl2ZVRleHR1cmUoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKTsKLSAgICB9Ci0KLSAgICBib29sIG5lZWRzQmxlbmRp
bmcgPSAoZmxhZ3MgJiBTdXBwb3J0c0JsZW5kaW5nKSB8fCBvcGFjaXR5IDwgMC45OSB8fCBtYXNr
VGV4dHVyZTsKLSAgICBkcmF3UXVhZCh0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIHByb2dy
YW0uZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpUUklBTkdMRV9GQU4sIG5lZWRzQmxlbmRpbmcp
OwotfQotI2VuZGlmIC8vICFVU0UoVEVYTUFQX09QRU5HTF9FU18yKQotCi12b2lkIFRleHR1cmVN
YXBwZXJHTDo6ZHJhd1RleHR1cmUodWludDMyX3QgdGV4dHVyZSwgRmxhZ3MgZmxhZ3MsIGNvbnN0
IEludFNpemUmIC8qIHRleHR1cmVTaXplICovLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3Qs
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNp
dHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1bnNpZ25lZCBleHBvc2VkRWRn
ZXMpCit2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoUGxhdGZvcm0zRE9iamVjdCB0
ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSW50U2l6ZSYgdGV4dHVyZVNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmll
d01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUs
IHVuc2lnbmVkIGV4cG9zZWRFZGdlcykKIHsKICAgICBib29sIG5lZWRzQW50aWFsaWFzaW5nID0g
bV9lbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcgJiYgIW1vZGVsVmlld01hdHJpeC5pc0lu
dGVnZXJUcmFuc2xhdGlvbigpOwotICAgIGlmIChuZWVkc0FudGlhbGlhc2luZyAmJiBkcmF3VGV4
dHVyZVdpdGhBbnRpYWxpYXNpbmcodGV4dHVyZSwgZmxhZ3MsIHRhcmdldFJlY3QsIG1vZGVsVmll
d01hdHJpeCwgb3BhY2l0eSwgbWFza1RleHR1cmUsIGV4cG9zZWRFZGdlcykpCisgICAgaWYgKG5l
ZWRzQW50aWFsaWFzaW5nICYmIGRyYXdUZXh0dXJlV2l0aEFudGlhbGlhc2luZyh0ZXh0dXJlLCBm
bGFncywgdGV4dHVyZVNpemUsIHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgb3BhY2l0eSwg
bWFza1RleHR1cmUsIGV4cG9zZWRFZGdlcykpCiAgICAgICAgcmV0dXJuOwogCisgICAgYm9vbCB1
c2VSZWN0ID0gZmxhZ3MgJiBTaG91bGRVc2VBUkJUZXh0dXJlUmVjdDsKKyAgICBib29sIG1hc2tl
ZCA9ICEhbWFza1RleHR1cmU7CisKKyAgICBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hh
ZGVyS2V5IGtleSA9IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpEZWZhdWx0OworICAgIGlm
IChtYXNrZWQgJiYgdXNlUmVjdCkKKyAgICAgICAga2V5ID0gVGV4dHVyZU1hcHBlclNoYWRlck1h
bmFnZXI6Ok1hc2tlZFJlY3Q7CisgICAgZWxzZSBpZiAobWFza2VkKQorICAgICAgICBrZXkgPSBU
ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6TWFza2VkOworICAgIGVsc2UgaWYgKHVzZVJlY3Qp
CisgICAgICAgIGtleSA9IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpSZWN0OworCiAgICAg
UmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtOwotICAgIGlmIChtYXNr
VGV4dHVyZSkKLSAgICAgICAgcHJvZ3JhbSA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS50ZXh0dXJl
TWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJN
YW5hZ2VyOjpNYXNrZWQpOwotICAgIGVsc2UKLSAgICAgICAgcHJvZ3JhbSA9IGRhdGEoKS5zaGFy
ZWRHTERhdGEoKS50ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtKFRl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpEZWZhdWx0KTsKKyAgICBwcm9ncmFtID0gZGF0YSgp
LnNoYXJlZEdMRGF0YSgpLnRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmdldFNoYWRlclByb2dy
YW0oa2V5KTsKICAgICBtX2NvbnRleHQzRC0+dXNlUHJvZ3JhbShwcm9ncmFtLT5wcm9ncmFtSUQo
KSk7CiAKLSAgICBkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0ocHJvZ3JhbS5nZXQoKSwgdGV4
dHVyZSwgZmxhZ3MsIHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgb3BhY2l0eSwgbWFza1Rl
eHR1cmUpOworICAgIGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShwcm9ncmFtLmdldCgpLCB0
ZXh0dXJlLCBmbGFncywgdGV4dHVyZVNpemUsIHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwg
b3BhY2l0eSwgbWFza1RleHR1cmUpOwogfQogCiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1Nv
bGlkQ29sb3IoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgbWF0cml4LCBjb25zdCBDb2xvciYgY29sb3IpCkBAIC00NjIsNyArNDM4LDcgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyR0w6OmRyYXdTb2xpZENvbG9yKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29u
c3QgVHJhbnNmb3JtYXRpb24KICAgICBjb2xvci5nZXRSR0JBKHIsIGcsIGIsIGEpOwogICAgIG1f
Y29udGV4dDNELT51bmlmb3JtNGYocHJvZ3JhbS0+Y29sb3JMb2NhdGlvbigpLCByLCBnLCBiLCBh
KTsKIAotICAgIGRyYXdRdWFkKHJlY3QsIG1hdHJpeCwgcHJvZ3JhbS5nZXQoKSwgR3JhcGhpY3ND
b250ZXh0M0Q6OlRSSUFOR0xFX0ZBTiwgYSA8IDEpOworICAgIGRyYXdRdWFkKHJlY3QsIG1hdHJp
eCwgcHJvZ3JhbS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlRSSUFOR0xFX0ZBTiwgYSA8IDEg
PyBTaG91bGRCbGVuZCA6IDApOwogfQogCiBzdGF0aWMgVHJhbnNmb3JtYXRpb25NYXRyaXggdmll
d3BvcnRNYXRyaXgoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzRCkKQEAgLTU0OSw3ICs1MjUs
NyBAQCBzdGF0aWMgRmxvYXRRdWFkIGluZmxhdGVRdWFkKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwg
ZmxvYXQgZGlzdGFuY2UpCiAgICAgcmV0dXJuIGV4cGFuZGVkUXVhZDsKIH0KIAotYm9vbCBUZXh0
dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlV2l0aEFudGlhbGlhc2luZyh1aW50MzJfdCB0ZXh0dXJl
LCBGbGFncyBmbGFncywgY29uc3QgRmxvYXRSZWN0JiBvcmlnaW5hbFRhcmdldFJlY3QsIGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNv
bnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpCiti
b29sIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVXaXRoQW50aWFsaWFzaW5nKHVpbnQzMl90
IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBGbG9hdFJl
Y3QmIG9yaWdpbmFsVGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVs
Vmlld01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1
cmUsIHVuc2lnbmVkIGV4cG9zZWRFZGdlcykKIHsKICAgICAvLyBUaGUgYW50aWFsaWFzaW5nIHBh
dGggZG9lcyBub3Qgc3VwcG9ydCBtYXNrIHRleHR1cmVzIGF0IHRoZSBtb21lbnQuCiAgICAgaWYg
KG1hc2tUZXh0dXJlKQpAQCAtNTkyLDE3ICs1NjgsMjAgQEAgYm9vbCBUZXh0dXJlTWFwcGVyR0w6
OmRyYXdUZXh0dXJlV2l0aEFudGlhbGlhc2luZyh1aW50MzJfdCB0ZXh0dXJlLCBGbGFncyBmbGFn
cywKICAgICBtX2NvbnRleHQzRC0+dXNlUHJvZ3JhbShwcm9ncmFtLT5wcm9ncmFtSUQoKSk7CiAg
ICAgbV9jb250ZXh0M0QtPnVuaWZvcm0zZnYocHJvZ3JhbS0+ZXhwYW5kZWRRdWFkRWRnZXNJblNj
cmVlblNwYWNlTG9jYXRpb24oKSwgOCwgdGFyZ2V0UXVhZEVkZ2VzKTsKIAotICAgIGRyYXdUZXh0
dXJlZFF1YWRXaXRoUHJvZ3JhbShwcm9ncmFtLmdldCgpLCB0ZXh0dXJlLCBmbGFncywgRHJhd1F1
YWQob3JpZ2luYWxUYXJnZXRSZWN0LCBleHBhbmRlZFF1YWRJblRleHR1cmVDb29yZGluYXRlcyks
IG1vZGVsVmlld01hdHJpeCwgb3BhY2l0eSwgMCAvKiBtYXNrVGV4dHVyZSAqLyk7CisgICAgZHJh
d1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKHByb2dyYW0uZ2V0KCksIHRleHR1cmUsIGZsYWdzLCBz
aXplLCBEcmF3UXVhZChvcmlnaW5hbFRhcmdldFJlY3QsIGV4cGFuZGVkUXVhZEluVGV4dHVyZUNv
b3JkaW5hdGVzKSwgbW9kZWxWaWV3TWF0cml4LCBvcGFjaXR5LCAwIC8qIG1hc2tUZXh0dXJlICov
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0
dXJlZFF1YWRXaXRoUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSogcHJvZ3JhbSwg
dWludDMyX3QgdGV4dHVyZSwgRmxhZ3MgZmxhZ3MsIGNvbnN0IERyYXdRdWFkJiBxdWFkVG9EcmF3
LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFj
aXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSkKK3ZvaWQgVGV4dHVyZU1hcHBl
ckdMOjpkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW0qIHByb2dyYW0sIHVpbnQzMl90IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJbnRTaXpl
JiBzaXplLCBjb25zdCBEcmF3UXVhZCYgcXVhZFRvRHJhdywgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1vZGVsVmlld01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVy
ZSogbWFza1RleHR1cmUpCiB7CiAgICAgbV9jb250ZXh0M0QtPmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KHByb2dyYW0tPnZlcnRleExvY2F0aW9uKCkpOwogICAgIG1fY29udGV4dDNELT5hY3RpdmVU
ZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFMCk7Ci0gICAgbV9jb250ZXh0M0QtPmJp
bmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCB0ZXh0dXJlKTsKKyAgICBH
QzNEZW51bSB0YXJnZXQgPSBmbGFncyAmIFNob3VsZFVzZUFSQlRleHR1cmVSZWN0ID8gRXh0ZW5z
aW9uczNEOjpURVhUVVJFX1JFQ1RBTkdMRV9BUkIgOiBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV8yRDsKKyAgICBtX2NvbnRleHQzRC0+YmluZFRleHR1cmUodGFyZ2V0LCB0ZXh0dXJlKTsKICAg
ICBtX2NvbnRleHQzRC0+dW5pZm9ybTFpKHByb2dyYW0tPnNhbXBsZXJMb2NhdGlvbigpLCAwKTsK
IAorICAgIEZsb2F0U2l6ZSBzaXplUGFyYW1ldGVyID0gZmxhZ3MgJiBTaG91bGRVc2VBUkJUZXh0
dXJlUmVjdCA/IHNpemUgOiBGbG9hdFNpemUoMSwgMSk7CisgICAgbV9jb250ZXh0M0QtPnVuaWZv
cm0yZihwcm9ncmFtLT50ZXh0dXJlU2l6ZUxvY2F0aW9uKCksIHNpemVQYXJhbWV0ZXIud2lkdGgo
KSwgc2l6ZVBhcmFtZXRlci5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0M0QtPnVuaWZvcm0xZihw
cm9ncmFtLT5mbGlwTG9jYXRpb24oKSwgISEoZmxhZ3MgJiBTaG91bGRGbGlwVGV4dHVyZSkpOwog
ICAgIG1fY29udGV4dDNELT51bmlmb3JtMWYocHJvZ3JhbS0+b3BhY2l0eUxvY2F0aW9uKCksIG9w
YWNpdHkpOwogCkBAIC02MTQsOCArNTkzLDEwIEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3
VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qIHByCiAg
ICAgICAgIG1fY29udGV4dDNELT5hY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFMCk7CiAgICAgfQogCi0gICAgYm9vbCBuZWVkc0JsZW5kaW5nID0gKGZsYWdzICYgU3VwcG9y
dHNCbGVuZGluZykgfHwgb3BhY2l0eSA8IDAuOTkgfHwgbWFza1RleHR1cmU7Ci0gICAgZHJhd1F1
YWQocXVhZFRvRHJhdywgbW9kZWxWaWV3TWF0cml4LCBwcm9ncmFtLCBHcmFwaGljc0NvbnRleHQz
RDo6VFJJQU5HTEVfRkFOLCBuZWVkc0JsZW5kaW5nKTsKKyAgICBpZiAob3BhY2l0eSA8IDEgfHwg
bWFza1RleHR1cmUpCisgICAgICAgIGZsYWdzIHw9IFNob3VsZEJsZW5kOworCisgICAgZHJhd1F1
YWQocXVhZFRvRHJhdywgbW9kZWxWaWV3TWF0cml4LCBwcm9ncmFtLCBHcmFwaGljc0NvbnRleHQz
RDo6VFJJQU5HTEVfRkFOLCBmbGFncyk7CiB9CiAKIEJpdG1hcFRleHR1cmVHTDo6Qml0bWFwVGV4
dHVyZUdMKFRleHR1cmVNYXBwZXJHTCogdGV4dHVyZU1hcHBlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApp
bmRleCA2NjQ2ZGM3MGEyMTgyNGI3NGZlMWVjNjZiYzk1YjUxMGNkMzljMTQwLi44OTlkY2Q2MDhl
YWJiNWY4Njc3OTAxMDY5ZTI1MGJlODc5NTBmZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCkBAIC00
Myw4ICs0Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyR0woKTsKIAog
ICAgIGVudW0gRmxhZyB7Ci0gICAgICAgIFN1cHBvcnRzQmxlbmRpbmcgPSAweDAxLAotICAgICAg
ICBTaG91bGRGbGlwVGV4dHVyZSA9IDB4MDIKKyAgICAgICAgU2hvdWxkQmxlbmQgPSAweDAxLAor
ICAgICAgICBTaG91bGRGbGlwVGV4dHVyZSA9IDB4MDIsCisgICAgICAgIFNob3VsZFVzZUFSQlRl
eHR1cmVSZWN0ID0gMHgwNAogICAgIH07CiAKICAgICB0eXBlZGVmIGludCBGbGFnczsKQEAgLTUz
LDEzICs1NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0JvcmRlcihjb25zdCBD
b2xvciYsIGZsb2F0IGJvcmRlcldpZHRoLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXggPSBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCgpKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlcGFpbnRDb3VudGVy
KGludCB2YWx1ZSwgaW50IHBvaW50U2l6ZSwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgp
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4
dHVyZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxv
YXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUsIHVuc2lnbmVkIGV4
cG9zZWRFZGdlcykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlKHVpbnQz
Ml90IHRleHR1cmUsIEZsYWdzLCBjb25zdCBJbnRTaXplJiB0ZXh0dXJlU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3
TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwg
dW5zaWduZWQgZXhwb3NlZEVkZ2VzID0gQWxsRWRnZXMpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3
VGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0IHRleHR1cmUsIEZsYWdzLCBjb25zdCBJbnRTaXplJiB0
ZXh0dXJlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBU
ZXh0dXJlKiBtYXNrVGV4dHVyZSwgdW5zaWduZWQgZXhwb3NlZEVkZ2VzID0gQWxsRWRnZXMpOwog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3U29saWRDb2xvcihjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IENvbG9yJikgT1ZFUlJJREU7CiAKLSNpZiAhVVNF
KFRFWE1BUF9PUEVOR0xfRVNfMikKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmVSZWN0YW5n
bGVBUkIodWludDMyX3QgdGV4dHVyZSwgRmxhZ3MsIGNvbnN0IEludFNpemUmIHRleHR1cmVTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1h
c2tUZXh0dXJlKTsKLSNlbmRpZgotCiAgICAgdmlydHVhbCB2b2lkIGJpbmRTdXJmYWNlKEJpdG1h
cFRleHR1cmUqIHN1cmZhY2UpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkNsaXAo
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5QYWludGluZyhQYWludEZsYWdzID0gMCkgT1ZFUlJJREU7
CkBAIC0xMTcsOSArMTE0LDkgQEAgcHJpdmF0ZToKIAogICAgIFRleHR1cmVNYXBwZXJHTCgpOwog
Ci0gICAgYm9vbCBkcmF3VGV4dHVyZVdpdGhBbnRpYWxpYXNpbmcodWludDMyX3QgdGV4dHVyZSwg
RmxhZ3MsIGNvbnN0IEZsb2F0UmVjdCYgb3JpZ2luYWxUYXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRt
YXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwgdW5zaWduZWQgZXhwb3NlZEVkZ2VzKTsKLSAgICB2b2lk
IGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSos
IHVpbnQzMl90IHRleHR1cmUsIEZsYWdzLCBjb25zdCBEcmF3UXVhZCYsIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1h
cFRleHR1cmUqIG1hc2tUZXh0dXJlKTsKLSAgICB2b2lkIGRyYXdRdWFkKGNvbnN0IERyYXdRdWFk
JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCwgVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0qLCBHQzNEZW51bSBkcmF3aW5nTW9kZSwgYm9vbCBuZWVkc0JsZW5k
aW5nKTsKKyAgICBib29sIGRyYXdUZXh0dXJlV2l0aEFudGlhbGlhc2luZyh1aW50MzJfdCB0ZXh0
dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYgb3JpZ2luYWxUYXJn
ZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9h
dCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwgdW5zaWduZWQgZXhw
b3NlZEVkZ2VzKTsKKyAgICB2b2lkIGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbSosIHVpbnQzMl90IHRleHR1cmUsIEZsYWdzLCBjb25zdCBJbnRT
aXplJiwgY29uc3QgRHJhd1F1YWQmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxW
aWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVy
ZSk7CisgICAgdm9pZCBkcmF3UXVhZChjb25zdCBEcmF3UXVhZCYsIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKiwg
R0MzRGVudW0gZHJhd2luZ01vZGUsIEZsYWdzKTsKIAogICAgIGJvb2wgYmVnaW5TY2lzc29yQ2xp
cChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZv
aWQgYmluZERlZmF1bHRTdXJmYWNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJN
YW5hZ2VyLmNwcAppbmRleCBkM2FlYTI2ZjEzY2JhZjc2MTFkODgxN2JhNDIwMzQ3MWU2ZjQ5NjQx
Li5lMDRmODU4NzM1YTBlZjA4OTMyYmUwMWNjNTY0NjljNDRjY2M1MGI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRl
ck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKQEAgLTE1NywxMiArMTU3LDEzIEBAIHN0
YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRl
cktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAgICAgICAgIHVu
aWZvcm0gbWF0NCB1X21hdHJpeDsKICAgICAgICAgICAgIHVuaWZvcm0gbG93cCBmbG9hdCB1X2Zs
aXA7CisgICAgICAgICAgICB1bmlmb3JtIGxvd3AgdmVjMiB1X3RleHR1cmVTaXplOwogICAgICAg
ICAgICAgYXR0cmlidXRlIHZlYzQgYV92ZXJ0ZXg7CiAgICAgICAgICAgICB2YXJ5aW5nIGhpZ2hw
IHZlYzIgdl9zb3VyY2VUZXhDb29yZDsKICAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2
X21hc2tUZXhDb29yZDsKICAgICAgICAgICAgIHZvaWQgbWFpbih2b2lkKQogICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIHZfc291cmNlVGV4Q29vcmQgPSB2ZWMyKGFfdmVydGV4LngsIG1p
eChhX3ZlcnRleC55LCAxLiAtIGFfdmVydGV4LnksIHVfZmxpcCkpOworICAgICAgICAgICAgICAg
IHZfc291cmNlVGV4Q29vcmQgPSB2ZWMyKGFfdmVydGV4LngsIG1peChhX3ZlcnRleC55LCAxLiAt
IGFfdmVydGV4LnksIHVfZmxpcCkpICogdV90ZXh0dXJlU2l6ZTsKICAgICAgICAgICAgICAgICB2
X21hc2tUZXhDb29yZCA9IHZlYzIoYV92ZXJ0ZXgpOwogICAgICAgICAgICAgICAgIGdsX1Bvc2l0
aW9uID0gdV9tYXRyaXggKiBhX3ZlcnRleDsKICAgICAgICAgICAgIH0KQEAgLTI0MiwxMiArMjQz
LDExIEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAg
ICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwogICAgICAgICAgICAgdW5pZm9ybSBzYW1w
bGVyMkRSZWN0IHNfc2FtcGxlcjsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93cCB2ZWMyIHVfc2Ft
cGxlclNpemU7CiAgICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5OwogICAg
ICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CiAgICAgICAgICAg
ICB2b2lkIG1haW4odm9pZCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZl
YzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0KHNfc2FtcGxlciwgdV9zYW1wbGVyU2l6ZSAqIHZfc291
cmNlVGV4Q29vcmQpOworICAgICAgICAgICAgICAgIGxvd3AgdmVjNCBjb2xvciA9IHRleHR1cmUy
RFJlY3Qoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKICAgICAgICAgICAgICAgICBnbF9G
cmFnQ29sb3IgPSB2ZWM0KGNvbG9yLnJnYiAqIHVfb3BhY2l0eSwgY29sb3IuYSAqIHVfb3BhY2l0
eSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICk7CkBAIC0yNTYsMTEgKzI1NiwxMiBAQCBzdGF0
aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJL
ZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAgICAgICB1bmlm
b3JtIG1hdDQgdV9tYXRyaXg7CiAgICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9mbGlw
OworICAgICAgICAgICAgdW5pZm9ybSBsb3dwIHZlYzIgdV90ZXh0dXJlU2l6ZTsKICAgICAgICAg
ICAgIGF0dHJpYnV0ZSB2ZWM0IGFfdmVydGV4OwogICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2
ZWMyIHZfc291cmNlVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICB2X3NvdXJjZVRleENvb3JkID0gdmVjMihhX3ZlcnRl
eC54LCBtaXgoYV92ZXJ0ZXgueSwgMS4gLSBhX3ZlcnRleC55LCB1X2ZsaXApKTsKKyAgICAgICAg
ICAgICAgICB2X3NvdXJjZVRleENvb3JkID0gdmVjMihhX3ZlcnRleC54LCBtaXgoYV92ZXJ0ZXgu
eSwgMS4gLSBhX3ZlcnRleC55LCB1X2ZsaXApKSAqIHVfdGV4dHVyZVNpemU7CiAgICAgICAgICAg
ICAgICAgZ2xfUG9zaXRpb24gPSB1X21hdHJpeCAqIGFfdmVydGV4OwogICAgICAgICAgICAgfQog
ICAgICAgICApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaAppbmRleCA0
OTZiN2U4MWIxMjYzNmZkMmE5ZmRmZWY3MTI4NmZhOGQ4MGY4YWM2Li42MDYwNWY0MmQwZTMyMzg3
YzQyYTRmZGQwNTMxNDI3ZTA0YWQ3MjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRl
ck1hbmFnZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBURVhNQVBfREVDTEFS
RV9VTklGT1JNKG1hdHJpeCkKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKGZsaXApCi0gICAg
VEVYTUFQX0RFQ0xBUkVfVU5JRk9STShzYW1wbGVyU2l6ZSkKKyAgICBURVhNQVBfREVDTEFSRV9V
TklGT1JNKHRleHR1cmVTaXplKQogICAgIFRFWE1BUF9ERUNMQVJFX1VOSUZPUk0ob3BhY2l0eSkK
ICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKGNvbG9yKQogICAgIFRFWE1BUF9ERUNMQVJFX1VO
SUZPUk0oZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178982</attachid>
            <date>2012-12-11 23:49:33 -0800</date>
            <delta_ts>2012-12-12 00:21:59 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-104708-20121211234702.patch</filename>
            <type>text/plain</type>
            <size>20553</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU5NjhlMjNmMGI5Yzdi
M2ZiNGE4YjRkNzBjNjMzNDUwN2ExNzU5ZC4uYThiYjJlYjExMDE1NWZhMzdlYjYxOTA1Nzg2MDky
MDBmNjJhZmIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEyLTExICBObydh
bSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1RleG1hcF0gQ29uc29s
aWRhdGUgcmVkdW5kYW50IGNvZGUgZm9yIEFSQl9SRUNUIHRleHR1cmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNQorCisgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIEluc3RlYWQgb2Yg
aGF2aW5nIGEgd2hvbGUgZGlmZmVyZW50IGZ1bmN0aW9uIGZvciBSRUNUIHRleHR1cmVzLAorICAg
ICAgICBrZWVwIHRoZSBleGlzdGluZyBmdW5jdGlvbnMgYW5kIHBhc3MgYSBmbGFnIHRoYXQgdGVs
bHMKKyAgICAgICAgVGV4dHVyZU1hcHBlckdMIHRvIHVzZSB0aGUgbm9uLW5vcm1hbGl6ZWQgY29v
cmRpbmF0ZXMgYW5kIHRoZQorICAgICAgICBSRUNUIHNoYWRlcnMuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCByZWZhY3RvciBvbmx5LiBUZXN0ZWQgdG8gbm90IGJyZWFrIFdlYkdMIG9uCisgICAg
ICAgIFF0LU1hYy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL21hYy9H
cmFwaGljc1N1cmZhY2VNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNl
OjpwbGF0Zm9ybVBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJHTDo6ZHJhd1F1YWQpOgorICAgICAgICAgICAgQ29tcGVuc2F0ZSBmb3IgcmVjdCB0
ZXh0dXJlcyBpbiBkcmF3UXVhZC4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
OjpkcmF3Qm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1Rl
eHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3U29saWRDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlV2l0aEFu
dGlhbGlhc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0
dXJlZFF1YWRXaXRoUHJvZ3JhbSk6CisgICAgICAgICAgICBQYXNzIGZsYWdzIHRvIFRleHR1cmVN
YXBwZXJHTDo6ZHJhd1F1YWQgaW5zdGVhZCBvZiBhIGJvb2wuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgIChUZXh0dXJlTWFw
cGVyR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
U2hhZGVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRTaGFkZXJTcGVjKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXIuaDoKKyAgICAgICAgKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKToKKyAgICAgICAgICAg
IENvbXBlbnNhdGUgZm9yIHRoZSB0ZXh0dXJlLXNpemUgaW4gdGhlIHZlcnRleAorICAgICAgICAg
ICAgc2hhZGVyIGluc3RlYWQgb2YgaW4gdGhlIGZyYWdtZW50IHNoYWRlci4KKwogMjAxMi0xMi0x
MCAgTm8nYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKHIxMzcwMDYpOiBDU1MgY2xpcCBvbiBzb2xpZCBjb2xvciBjb21wb3NpdGVkIGRpdiBicm9r
ZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvbWFjL0dyYXBoaWNzU3VyZmFjZU1hYy5jcHAKaW5kZXggNDM5YmY5YTJk
ZmQ1Yzg4YThlYTU2ZTlkNjIxNmMyZmU4NGEzMGUxNC4uZjRhYTRjNjZiMWVjYWY1NTA1MDFmODk4
MzhkMTkzN2UzNGFlMDdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvbWFjL0dyYXBoaWNzU3VyZmFjZU1hYy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvbWFjL0dyYXBoaWNzU3VyZmFjZU1hYy5j
cHAKQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1QYWlu
dFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLAogewogICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IGFkanVzdGVkVHJhbnNmb3JtID0gdHJhbnNmb3JtOwogICAgIGFk
anVzdGVkVHJhbnNmb3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0
KEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIG1fcHJpdmF0ZS0+c2l6ZSgpKSwgdGFyZ2V0
UmVjdCkpOwotICAgIHN0YXRpY19jYXN0PFRleHR1cmVNYXBwZXJHTCo+KHRleHR1cmVNYXBwZXIp
LT5kcmF3VGV4dHVyZVJlY3RhbmdsZUFSQihtX3ByaXZhdGUtPmZyb250QnVmZmVyVGV4dHVyZUlE
KCksIFRleHR1cmVNYXBwZXJHTDo6U3VwcG9ydHNCbGVuZGluZywgbV9wcml2YXRlLT5zaXplKCks
IHRhcmdldFJlY3QsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrKTsKKyAgICBzdGF0
aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPih0ZXh0dXJlTWFwcGVyKS0+ZHJhd1RleHR1cmUobV9w
cml2YXRlLT5mcm9udEJ1ZmZlclRleHR1cmVJRCgpLCBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJs
ZW5kIHwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGRVc2VBUkJUZXh0dXJlUmVjdCwgbV9wcml2YXRl
LT5zaXplKCksIHRhcmdldFJlY3QsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrKTsK
IH0KIAogdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUZyb250QnVmZmVyKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggY2JkN2YxYTgyYWYyMDhkODEwZmQyZDIxYTNh
MjZjNDcyNTUxZjhiOS4uNDg4ZTkwMWNmNzQ5OWJkZjY3M2FiMDlmZTJmYmMxZjViZjQzOGUyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKIAorI2luY2x1ZGUgIkV4dGVuc2lv
bnMzRC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlLmgi
CiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCkBAIC01Niw3ICs1Nyw2IEBACiAKICNpZiAh
VVNFKFRFWE1BUF9PUEVOR0xfRVNfMikKIC8vIEZJWE1FOiBNb3ZlIHRvIEV4dGVuc2lvbnMzRC5o
LgotI2RlZmluZSBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIgMHg4NEY1CiAjZGVmaW5lIEdMX1VO
U0lHTkVEX0lOVF84XzhfOF84X1JFViAweDgzNjcKICNkZWZpbmUgR0xfVU5QQUNLX1JPV19MRU5H
VEggMHgwQ0YyCiAjZGVmaW5lIEdMX1VOUEFDS19TS0lQX1BJWEVMUyAweDBDRjQKQEAgLTI3Miw3
ICsyNzIsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZW5kUGFpbnRpbmcoKQogI2VuZGlmCiB9
CiAKLXZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3UXVhZChjb25zdCBEcmF3UXVhZCYgcXVhZFRv
RHJhdywgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCwgVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0qIHNoYWRlclByb2dyYW0sIEdDM0RlbnVtIGRyYXdpbmdNb2Rl
LCBib29sIG5lZWRzQmxlbmRpbmcpCit2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1F1YWQoY29u
c3QgRHJhd1F1YWQmIHF1YWRUb0RyYXcsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2Rl
bFZpZXdNYXRyaXgsIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKiBzaGFkZXJQcm9ncmFtLCBH
QzNEZW51bSBkcmF3aW5nTW9kZSwgRmxhZ3MgZmxhZ3MpCiB7CiAgICAgbV9jb250ZXh0M0QtPmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KHNoYWRlclByb2dyYW0tPnZlcnRleExvY2F0aW9uKCkpOwog
ICAgIG1fY29udGV4dDNELT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZG
RVIsIDApOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3UXVh
ZChjb25zdCBEcmF3UXVhZCYgcXVhZFRvRHJhdywgY29uc3QgVHJhbnNmb3JtYXRpb25NCiAgICAg
fTsKICAgICBtX2NvbnRleHQzRC0+dW5pZm9ybU1hdHJpeDRmdihzaGFkZXJQcm9ncmFtLT5tYXRy
aXhMb2NhdGlvbigpLCAxLCBmYWxzZSwgbTQpOwogCi0gICAgaWYgKG5lZWRzQmxlbmRpbmcpIHsK
KyAgICBpZiAoZmxhZ3MgJiBTaG91bGRCbGVuZCkgewogICAgICAgICBtX2NvbnRleHQzRC0+Ymxl
bmRGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpPTkUsIEdyYXBoaWNzQ29udGV4dDNEOjpPTkVfTUlO
VVNfU1JDX0FMUEhBKTsKICAgICAgICAgbV9jb250ZXh0M0QtPmVuYWJsZShHcmFwaGljc0NvbnRl
eHQzRDo6QkxFTkQpOwogICAgIH0gZWxzZQpAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgVGV4dHVy
ZU1hcHBlckdMOjpkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgd2lkdGgsIGNv
bnN0IEZsb2F0UmVjCiAgICAgbV9jb250ZXh0M0QtPnVuaWZvcm00Zihwcm9ncmFtLT5jb2xvckxv
Y2F0aW9uKCksIHIsIGcsIGIsIGEpOwogICAgIG1fY29udGV4dDNELT5saW5lV2lkdGgod2lkdGgp
OwogCi0gICAgZHJhd1F1YWQodGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCBwcm9ncmFtLmdl
dCgpLCBHcmFwaGljc0NvbnRleHQzRDo6TElORV9MT09QLCBjb2xvci5oYXNBbHBoYSgpKTsKKyAg
ICBkcmF3UXVhZCh0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIHByb2dyYW0uZ2V0KCksIEdy
YXBoaWNzQ29udGV4dDNEOjpMSU5FX0xPT1AsIGNvbG9yLmhhc0FscGhhKCkgPyBTaG91bGRCbGVu
ZCA6IDApOwogfQogCiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1JlcGFpbnRDb3VudGVyKGlu
dCB2YWx1ZSwgaW50IHBvaW50U2l6ZSwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgpCkBAIC00MDIsNTUgKzQw
MiwzMSBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4
dHVyZSYgdGV4dHVyZSwgY29uc3QgRmxvYXRSZWN0JgogICAgICAgICByZXR1cm47CiAKICAgICBj
b25zdCBCaXRtYXBUZXh0dXJlR0wmIHRleHR1cmVHTCA9IHN0YXRpY19jYXN0PGNvbnN0IEJpdG1h
cFRleHR1cmVHTCY+KHRleHR1cmUpOwotICAgIGRyYXdUZXh0dXJlKHRleHR1cmVHTC5pZCgpLCB0
ZXh0dXJlR0wuaXNPcGFxdWUoKSA/IDAgOiBTdXBwb3J0c0JsZW5kaW5nLCB0ZXh0dXJlR0wuc2l6
ZSgpLCB0YXJnZXRSZWN0LCBtYXRyaXgsIG9wYWNpdHksIG1hc2ssIGV4cG9zZWRFZGdlcyk7Cisg
ICAgZHJhd1RleHR1cmUodGV4dHVyZUdMLmlkKCksIHRleHR1cmVHTC5pc09wYXF1ZSgpID8gMCA6
IFNob3VsZEJsZW5kLCB0ZXh0dXJlR0wuc2l6ZSgpLCB0YXJnZXRSZWN0LCBtYXRyaXgsIG9wYWNp
dHksIG1hc2ssIGV4cG9zZWRFZGdlcyk7CiB9CiAKLSNpZiAhVVNFKFRFWE1BUF9PUEVOR0xfRVNf
MikKLXZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZVJlY3RhbmdsZUFSQih1aW50MzJf
dCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSW50U2l6ZSYgdGV4dHVyZVNpemUsIGNvbnN0
IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVs
Vmlld01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1
cmUpCi17Ci0gICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtOwot
ICAgIGlmIChtYXNrVGV4dHVyZSkKLSAgICAgICAgcHJvZ3JhbSA9IGRhdGEoKS5zaGFyZWRHTERh
dGEoKS50ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtKFRleHR1cmVN
YXBwZXJTaGFkZXJNYW5hZ2VyOjpNYXNrZWRSZWN0KTsKLSAgICBlbHNlCi0gICAgICAgIHByb2dy
YW0gPSBkYXRhKCkuc2hhcmVkR0xEYXRhKCkudGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuZ2V0
U2hhZGVyUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6UmVjdCk7Ci0gICAgbV9j
b250ZXh0M0QtPnVzZVByb2dyYW0ocHJvZ3JhbS0+cHJvZ3JhbUlEKCkpOwotCi0gICAgbV9jb250
ZXh0M0QtPmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHByb2dyYW0tPnZlcnRleExvY2F0aW9uKCkp
OwotICAgIG1fY29udGV4dDNELT5hY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFMCk7Ci0gICAgbV9jb250ZXh0M0QtPmJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xF
X0FSQiwgdGV4dHVyZSk7Ci0gICAgbV9jb250ZXh0M0QtPnVuaWZvcm0xaShwcm9ncmFtLT5zYW1w
bGVyTG9jYXRpb24oKSwgMCk7Ci0KLSAgICBtX2NvbnRleHQzRC0+dW5pZm9ybTFmKHByb2dyYW0t
PmZsaXBMb2NhdGlvbigpLCAhIShmbGFncyAmIFNob3VsZEZsaXBUZXh0dXJlKSk7Ci0gICAgbV9j
b250ZXh0M0QtPnVuaWZvcm0yZihwcm9ncmFtLT5zYW1wbGVyU2l6ZUxvY2F0aW9uKCksIHRleHR1
cmVTaXplLndpZHRoKCksIHRleHR1cmVTaXplLmhlaWdodCgpKTsKLSAgICBtX2NvbnRleHQzRC0+
dW5pZm9ybTFmKHByb2dyYW0tPm9wYWNpdHlMb2NhdGlvbigpLCBvcGFjaXR5KTsKLQotICAgIGlm
IChtYXNrVGV4dHVyZSAmJiBtYXNrVGV4dHVyZS0+aXNWYWxpZCgpKSB7Ci0gICAgICAgIGNvbnN0
IEJpdG1hcFRleHR1cmVHTCogbWFza1RleHR1cmVHTCA9IHN0YXRpY19jYXN0PGNvbnN0IEJpdG1h
cFRleHR1cmVHTCo+KG1hc2tUZXh0dXJlKTsKLSAgICAgICAgbV9jb250ZXh0M0QtPmFjdGl2ZVRl
eHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUxKTsKLSAgICAgICAgbV9jb250ZXh0M0Qt
PmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBtYXNrVGV4dHVyZUdM
LT5pZCgpKTsKLSAgICAgICAgbV9jb250ZXh0M0QtPnVuaWZvcm0xaShwcm9ncmFtLT5tYXNrTG9j
YXRpb24oKSwgMSk7Ci0gICAgICAgIG1fY29udGV4dDNELT5hY3RpdmVUZXh0dXJlKEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFMCk7Ci0gICAgfQotCi0gICAgYm9vbCBuZWVkc0JsZW5kaW5nID0g
KGZsYWdzICYgU3VwcG9ydHNCbGVuZGluZykgfHwgb3BhY2l0eSA8IDAuOTkgfHwgbWFza1RleHR1
cmU7Ci0gICAgZHJhd1F1YWQodGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCBwcm9ncmFtLmdl
dCgpLCBHcmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVfRkFOLCBuZWVkc0JsZW5kaW5nKTsKLX0K
LSNlbmRpZiAvLyAhVVNFKFRFWE1BUF9PUEVOR0xfRVNfMikKLQotdm9pZCBUZXh0dXJlTWFwcGVy
R0w6OmRyYXdUZXh0dXJlKHVpbnQzMl90IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJbnRT
aXplJiAvKiB0ZXh0dXJlU2l6ZSAqLywgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBj
b25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwgdW5zaWduZWQgZXhwb3NlZEVkZ2VzKQor
dm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKFBsYXRmb3JtM0RPYmplY3QgdGV4dHVy
ZSwgRmxhZ3MgZmxhZ3MsIGNvbnN0IEludFNpemUmIHRleHR1cmVTaXplLCBjb25zdCBGbG9hdFJl
Y3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRy
aXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1bnNp
Z25lZCBleHBvc2VkRWRnZXMpCiB7CiAgICAgYm9vbCBuZWVkc0FudGlhbGlhc2luZyA9IG1fZW5h
YmxlRWRnZURpc3RhbmNlQW50aWFsaWFzaW5nICYmICFtb2RlbFZpZXdNYXRyaXguaXNJbnRlZ2Vy
VHJhbnNsYXRpb24oKTsKLSAgICBpZiAobmVlZHNBbnRpYWxpYXNpbmcgJiYgZHJhd1RleHR1cmVX
aXRoQW50aWFsaWFzaW5nKHRleHR1cmUsIGZsYWdzLCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRy
aXgsIG9wYWNpdHksIG1hc2tUZXh0dXJlLCBleHBvc2VkRWRnZXMpKQorICAgIGlmIChuZWVkc0Fu
dGlhbGlhc2luZyAmJiBkcmF3VGV4dHVyZVdpdGhBbnRpYWxpYXNpbmcodGV4dHVyZSwgZmxhZ3Ms
IHRleHR1cmVTaXplLCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNpdHksIG1hc2tU
ZXh0dXJlLCBleHBvc2VkRWRnZXMpKQogICAgICAgIHJldHVybjsKIAorICAgIGJvb2wgdXNlUmVj
dCA9IGZsYWdzICYgU2hvdWxkVXNlQVJCVGV4dHVyZVJlY3Q7CisgICAgYm9vbCBtYXNrZWQgPSAh
IW1hc2tUZXh0dXJlOworCisgICAgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktl
eSBrZXkgPSBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6RGVmYXVsdDsKKyAgICBpZiAobWFz
a2VkICYmIHVzZVJlY3QpCisgICAgICAgIGtleSA9IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
OjpNYXNrZWRSZWN0OworICAgIGVsc2UgaWYgKG1hc2tlZCkKKyAgICAgICAga2V5ID0gVGV4dHVy
ZU1hcHBlclNoYWRlck1hbmFnZXI6Ok1hc2tlZDsKKyAgICBlbHNlIGlmICh1c2VSZWN0KQorICAg
ICAgICBrZXkgPSBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6UmVjdDsKKwogICAgIFJlZlB0
cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbTsKLSAgICBpZiAobWFza1RleHR1
cmUpCi0gICAgICAgIHByb2dyYW0gPSBkYXRhKCkuc2hhcmVkR0xEYXRhKCkudGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXIuZ2V0U2hhZGVyUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdl
cjo6TWFza2VkKTsKLSAgICBlbHNlCi0gICAgICAgIHByb2dyYW0gPSBkYXRhKCkuc2hhcmVkR0xE
YXRhKCkudGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuZ2V0U2hhZGVyUHJvZ3JhbShUZXh0dXJl
TWFwcGVyU2hhZGVyTWFuYWdlcjo6RGVmYXVsdCk7CisgICAgcHJvZ3JhbSA9IGRhdGEoKS5zaGFy
ZWRHTERhdGEoKS50ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtKGtl
eSk7CiAgICAgbV9jb250ZXh0M0QtPnVzZVByb2dyYW0ocHJvZ3JhbS0+cHJvZ3JhbUlEKCkpOwog
Ci0gICAgZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKHByb2dyYW0uZ2V0KCksIHRleHR1cmUs
IGZsYWdzLCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNpdHksIG1hc2tUZXh0dXJl
KTsKKyAgICBkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0ocHJvZ3JhbS5nZXQoKSwgdGV4dHVy
ZSwgZmxhZ3MsIHRleHR1cmVTaXplLCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNp
dHksIG1hc2tUZXh0dXJlKTsKIH0KIAogdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdTb2xpZENv
bG9yKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1h
dHJpeCwgY29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtNDYyLDcgKzQzOCw3IEBAIHZvaWQgVGV4dHVy
ZU1hcHBlckdMOjpkcmF3U29saWRDb2xvcihjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uCiAgICAgY29sb3IuZ2V0UkdCQShyLCBnLCBiLCBhKTsKICAgICBtX2NvbnRl
eHQzRC0+dW5pZm9ybTRmKHByb2dyYW0tPmNvbG9yTG9jYXRpb24oKSwgciwgZywgYiwgYSk7CiAK
LSAgICBkcmF3UXVhZChyZWN0LCBtYXRyaXgsIHByb2dyYW0uZ2V0KCksIEdyYXBoaWNzQ29udGV4
dDNEOjpUUklBTkdMRV9GQU4sIGEgPCAxKTsKKyAgICBkcmF3UXVhZChyZWN0LCBtYXRyaXgsIHBy
b2dyYW0uZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpUUklBTkdMRV9GQU4sIGEgPCAxID8gU2hv
dWxkQmxlbmQgOiAwKTsKIH0KIAogc3RhdGljIFRyYW5zZm9ybWF0aW9uTWF0cml4IHZpZXdwb3J0
TWF0cml4KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M0QpCkBAIC01NDksNyArNTI1LDcgQEAg
c3RhdGljIEZsb2F0UXVhZCBpbmZsYXRlUXVhZChjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGZsb2F0
IGRpc3RhbmNlKQogICAgIHJldHVybiBleHBhbmRlZFF1YWQ7CiB9CiAKLWJvb2wgVGV4dHVyZU1h
cHBlckdMOjpkcmF3VGV4dHVyZVdpdGhBbnRpYWxpYXNpbmcodWludDMyX3QgdGV4dHVyZSwgRmxh
Z3MgZmxhZ3MsIGNvbnN0IEZsb2F0UmVjdCYgb3JpZ2luYWxUYXJnZXRSZWN0LCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBC
aXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwgdW5zaWduZWQgZXhwb3NlZEVkZ2VzKQorYm9vbCBU
ZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlV2l0aEFudGlhbGlhc2luZyh1aW50MzJfdCB0ZXh0
dXJlLCBGbGFncyBmbGFncywgY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBv
cmlnaW5hbFRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1
bnNpZ25lZCBleHBvc2VkRWRnZXMpCiB7CiAgICAgLy8gVGhlIGFudGlhbGlhc2luZyBwYXRoIGRv
ZXMgbm90IHN1cHBvcnQgbWFzayB0ZXh0dXJlcyBhdCB0aGUgbW9tZW50LgogICAgIGlmIChtYXNr
VGV4dHVyZSkKQEAgLTU5MiwxNyArNTY4LDIwIEBAIGJvb2wgVGV4dHVyZU1hcHBlckdMOjpkcmF3
VGV4dHVyZVdpdGhBbnRpYWxpYXNpbmcodWludDMyX3QgdGV4dHVyZSwgRmxhZ3MgZmxhZ3MsCiAg
ICAgbV9jb250ZXh0M0QtPnVzZVByb2dyYW0ocHJvZ3JhbS0+cHJvZ3JhbUlEKCkpOwogICAgIG1f
Y29udGV4dDNELT51bmlmb3JtM2Z2KHByb2dyYW0tPmV4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5T
cGFjZUxvY2F0aW9uKCksIDgsIHRhcmdldFF1YWRFZGdlcyk7CiAKLSAgICBkcmF3VGV4dHVyZWRR
dWFkV2l0aFByb2dyYW0ocHJvZ3JhbS5nZXQoKSwgdGV4dHVyZSwgZmxhZ3MsIERyYXdRdWFkKG9y
aWdpbmFsVGFyZ2V0UmVjdCwgZXhwYW5kZWRRdWFkSW5UZXh0dXJlQ29vcmRpbmF0ZXMpLCBtb2Rl
bFZpZXdNYXRyaXgsIG9wYWNpdHksIDAgLyogbWFza1RleHR1cmUgKi8pOworICAgIGRyYXdUZXh0
dXJlZFF1YWRXaXRoUHJvZ3JhbShwcm9ncmFtLmdldCgpLCB0ZXh0dXJlLCBmbGFncywgc2l6ZSwg
RHJhd1F1YWQob3JpZ2luYWxUYXJnZXRSZWN0LCBleHBhbmRlZFF1YWRJblRleHR1cmVDb29yZGlu
YXRlcyksIG1vZGVsVmlld01hdHJpeCwgb3BhY2l0eSwgMCAvKiBtYXNrVGV4dHVyZSAqLyk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZWRR
dWFkV2l0aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qIHByb2dyYW0sIHVpbnQz
Ml90IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBEcmF3UXVhZCYgcXVhZFRvRHJhdywgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCwgZmxvYXQgb3BhY2l0eSwg
Y29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUpCit2b2lkIFRleHR1cmVNYXBwZXJHTDo6
ZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKiBw
cm9ncmFtLCB1aW50MzJfdCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSW50U2l6ZSYgc2l6
ZSwgY29uc3QgRHJhd1F1YWQmIHF1YWRUb0RyYXcsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1h
c2tUZXh0dXJlKQogewogICAgIG1fY29udGV4dDNELT5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShw
cm9ncmFtLT52ZXJ0ZXhMb2NhdGlvbigpKTsKICAgICBtX2NvbnRleHQzRC0+YWN0aXZlVGV4dHVy
ZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTApOwotICAgIG1fY29udGV4dDNELT5iaW5kVGV4
dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgICAgR0MzRGVu
dW0gdGFyZ2V0ID0gZmxhZ3MgJiBTaG91bGRVc2VBUkJUZXh0dXJlUmVjdCA/IEV4dGVuc2lvbnMz
RDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCIDogR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQ7
CisgICAgbV9jb250ZXh0M0QtPmJpbmRUZXh0dXJlKHRhcmdldCwgdGV4dHVyZSk7CiAgICAgbV9j
b250ZXh0M0QtPnVuaWZvcm0xaShwcm9ncmFtLT5zYW1wbGVyTG9jYXRpb24oKSwgMCk7CiAKKyAg
ICBGbG9hdFNpemUgc2l6ZVBhcmFtZXRlciA9IGZsYWdzICYgU2hvdWxkVXNlQVJCVGV4dHVyZVJl
Y3QgPyBzaXplIDogRmxvYXRTaXplKDEsIDEpOworICAgIG1fY29udGV4dDNELT51bmlmb3JtMmYo
cHJvZ3JhbS0+dGV4dHVyZVNpemVMb2NhdGlvbigpLCBzaXplUGFyYW1ldGVyLndpZHRoKCksIHNp
emVQYXJhbWV0ZXIuaGVpZ2h0KCkpOwogICAgIG1fY29udGV4dDNELT51bmlmb3JtMWYocHJvZ3Jh
bS0+ZmxpcExvY2F0aW9uKCksICEhKGZsYWdzICYgU2hvdWxkRmxpcFRleHR1cmUpKTsKICAgICBt
X2NvbnRleHQzRC0+dW5pZm9ybTFmKHByb2dyYW0tPm9wYWNpdHlMb2NhdGlvbigpLCBvcGFjaXR5
KTsKIApAQCAtNjE0LDggKzU5MywxMCBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1
cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKiBwcgogICAgICAg
ICBtX2NvbnRleHQzRC0+YWN0aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTAp
OwogICAgIH0KIAotICAgIGJvb2wgbmVlZHNCbGVuZGluZyA9IChmbGFncyAmIFN1cHBvcnRzQmxl
bmRpbmcpIHx8IG9wYWNpdHkgPCAwLjk5IHx8IG1hc2tUZXh0dXJlOwotICAgIGRyYXdRdWFkKHF1
YWRUb0RyYXcsIG1vZGVsVmlld01hdHJpeCwgcHJvZ3JhbSwgR3JhcGhpY3NDb250ZXh0M0Q6OlRS
SUFOR0xFX0ZBTiwgbmVlZHNCbGVuZGluZyk7CisgICAgaWYgKG9wYWNpdHkgPCAxIHx8IG1hc2tU
ZXh0dXJlKQorICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKKworICAgIGRyYXdRdWFkKHF1
YWRUb0RyYXcsIG1vZGVsVmlld01hdHJpeCwgcHJvZ3JhbSwgR3JhcGhpY3NDb250ZXh0M0Q6OlRS
SUFOR0xFX0ZBTiwgZmxhZ3MpOwogfQogCiBCaXRtYXBUZXh0dXJlR0w6OkJpdG1hcFRleHR1cmVH
TChUZXh0dXJlTWFwcGVyR0wqIHRleHR1cmVNYXBwZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKaW5kZXgg
NjY0NmRjNzBhMjE4MjRiNzRmZTFlYzY2YmM5NWI1MTBjZDM5YzE0MC4uODk5ZGNkNjA4ZWFiYjVm
ODY3NzkwMTA2OWUyNTBiZTg3OTUwZmVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApAQCAtNDMsOCAr
NDMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckdMKCk7CiAKICAgICBl
bnVtIEZsYWcgewotICAgICAgICBTdXBwb3J0c0JsZW5kaW5nID0gMHgwMSwKLSAgICAgICAgU2hv
dWxkRmxpcFRleHR1cmUgPSAweDAyCisgICAgICAgIFNob3VsZEJsZW5kID0gMHgwMSwKKyAgICAg
ICAgU2hvdWxkRmxpcFRleHR1cmUgPSAweDAyLAorICAgICAgICBTaG91bGRVc2VBUkJUZXh0dXJl
UmVjdCA9IDB4MDQKICAgICB9OwogCiAgICAgdHlwZWRlZiBpbnQgRmxhZ3M7CkBAIC01MywxMyAr
NTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRyYXdCb3JkZXIoY29uc3QgQ29sb3Im
LCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3JtYXRpb25NYXRy
aXgoKSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdSZXBhaW50Q291bnRlcihpbnQg
dmFsdWUsIGludCBwb2ludFNpemUsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3JtYXRpb25NYXRyaXgoKSkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9w
YWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1bnNpZ25lZCBleHBvc2Vk
RWRnZXMpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkcmF3VGV4dHVyZSh1aW50MzJfdCB0
ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYgdGV4dHVyZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJp
eCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUsIHVuc2ln
bmVkIGV4cG9zZWRFZGdlcyA9IEFsbEVkZ2VzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1
cmUoUGxhdGZvcm0zRE9iamVjdCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYgdGV4dHVy
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1vZGVsVmlld01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVy
ZSogbWFza1RleHR1cmUsIHVuc2lnbmVkIGV4cG9zZWRFZGdlcyA9IEFsbEVkZ2VzKTsKICAgICB2
aXJ0dWFsIHZvaWQgZHJhd1NvbGlkQ29sb3IoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmLCBjb25zdCBDb2xvciYpIE9WRVJSSURFOwogCi0jaWYgIVVTRShURVhN
QVBfT1BFTkdMX0VTXzIpCi0gICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlUmVjdGFuZ2xlQVJC
KHVpbnQzMl90IHRleHR1cmUsIEZsYWdzLCBjb25zdCBJbnRTaXplJiB0ZXh0dXJlU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9k
ZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4
dHVyZSk7Ci0jZW5kaWYKLQogICAgIHZpcnR1YWwgdm9pZCBiaW5kU3VyZmFjZShCaXRtYXBUZXh0
dXJlKiBzdXJmYWNlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5DbGlwKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGJlZ2luUGFpbnRpbmcoUGFpbnRGbGFncyA9IDApIE9WRVJSSURFOwpAQCAt
MTE3LDkgKzExNCw5IEBAIHByaXZhdGU6CiAKICAgICBUZXh0dXJlTWFwcGVyR0woKTsKIAotICAg
IGJvb2wgZHJhd1RleHR1cmVXaXRoQW50aWFsaWFzaW5nKHVpbnQzMl90IHRleHR1cmUsIEZsYWdz
LCBjb25zdCBGbG9hdFJlY3QmIG9yaWdpbmFsVGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4
dHVyZSogbWFza1RleHR1cmUsIHVuc2lnbmVkIGV4cG9zZWRFZGdlcyk7Ci0gICAgdm9pZCBkcmF3
VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qLCB1aW50
MzJfdCB0ZXh0dXJlLCBGbGFncywgY29uc3QgRHJhd1F1YWQmLCBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0
dXJlKiBtYXNrVGV4dHVyZSk7Ci0gICAgdm9pZCBkcmF3UXVhZChjb25zdCBEcmF3UXVhZCYsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtKiwgR0MzRGVudW0gZHJhd2luZ01vZGUsIGJvb2wgbmVlZHNCbGVuZGluZyk7
CisgICAgYm9vbCBkcmF3VGV4dHVyZVdpdGhBbnRpYWxpYXNpbmcodWludDMyX3QgdGV4dHVyZSwg
RmxhZ3MsIGNvbnN0IEludFNpemUmLCBjb25zdCBGbG9hdFJlY3QmIG9yaWdpbmFsVGFyZ2V0UmVj
dCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCwgZmxvYXQgb3Bh
Y2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUsIHVuc2lnbmVkIGV4cG9zZWRF
ZGdlcyk7CisgICAgdm9pZCBkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0oVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW0qLCB1aW50MzJfdCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYs
IGNvbnN0IERyYXdRdWFkJiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01h
dHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUpOwor
ICAgIHZvaWQgZHJhd1F1YWQoY29uc3QgRHJhd1F1YWQmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgbW9kZWxWaWV3TWF0cml4LCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSosIEdDM0Rl
bnVtIGRyYXdpbmdNb2RlLCBGbGFncyk7CiAKICAgICBib29sIGJlZ2luU2Npc3NvckNsaXAoY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICB2b2lkIGJp
bmREZWZhdWx0U3VyZmFjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdl
ci5jcHAKaW5kZXggZDNhZWEyNmYxM2NiYWY3NjExZDg4MTdiYTQyMDM0NzFlNmY0OTY0MS4uZTA0
Zjg1ODczNWEwZWYwODkzMmJlMDFjYzU2NDY5YzQ0Y2NjNTBiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCkBAIC0xNTcsMTIgKzE1NywxMyBAQCBzdGF0aWMg
dm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkg
a2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAgICAgICB1bmlmb3Jt
IG1hdDQgdV9tYXRyaXg7CiAgICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9mbGlwOwor
ICAgICAgICAgICAgdW5pZm9ybSBsb3dwIHZlYzIgdV90ZXh0dXJlU2l6ZTsKICAgICAgICAgICAg
IGF0dHJpYnV0ZSB2ZWM0IGFfdmVydGV4OwogICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMy
IHZfc291cmNlVGV4Q29vcmQ7CiAgICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZlYzIgdl9tYXNr
VGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICB2X3NvdXJjZVRleENvb3JkID0gdmVjMihhX3ZlcnRleC54LCBtaXgoYV92
ZXJ0ZXgueSwgMS4gLSBhX3ZlcnRleC55LCB1X2ZsaXApKTsKKyAgICAgICAgICAgICAgICB2X3Nv
dXJjZVRleENvb3JkID0gdmVjMihhX3ZlcnRleC54LCBtaXgoYV92ZXJ0ZXgueSwgMS4gLSBhX3Zl
cnRleC55LCB1X2ZsaXApKSAqIHVfdGV4dHVyZVNpemU7CiAgICAgICAgICAgICAgICAgdl9tYXNr
VGV4Q29vcmQgPSB2ZWMyKGFfdmVydGV4KTsKICAgICAgICAgICAgICAgICBnbF9Qb3NpdGlvbiA9
IHVfbWF0cml4ICogYV92ZXJ0ZXg7CiAgICAgICAgICAgICB9CkBAIC0yNDIsMTIgKzI0MywxMSBA
QCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpT
aGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAgICAg
ICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJE
UmVjdCBzX3NhbXBsZXI7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgdmVjMiB1X3NhbXBsZXJT
aXplOwogICAgICAgICAgICAgdW5pZm9ybSBsb3dwIGZsb2F0IHVfb3BhY2l0eTsKICAgICAgICAg
ICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAgdm9p
ZCBtYWluKHZvaWQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbG93cCB2ZWM0IGNv
bG9yID0gdGV4dHVyZTJEUmVjdChzX3NhbXBsZXIsIHVfc2FtcGxlclNpemUgKiB2X3NvdXJjZVRl
eENvb3JkKTsKKyAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0
KHNfc2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7CiAgICAgICAgICAgICAgICAgZ2xfRnJhZ0Nv
bG9yID0gdmVjNChjb2xvci5yZ2IgKiB1X29wYWNpdHksIGNvbG9yLmEgKiB1X29wYWNpdHkpOwog
ICAgICAgICAgICAgfQogICAgICAgICApOwpAQCAtMjU2LDExICsyNTYsMTIgQEAgc3RhdGljIHZv
aWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtl
eSwgU3RyaW5nJiB2ZXIKICAgICAgICAgU1RSSU5HSUZZKAogICAgICAgICAgICAgdW5pZm9ybSBt
YXQ0IHVfbWF0cml4OwogICAgICAgICAgICAgdW5pZm9ybSBsb3dwIGZsb2F0IHVfZmxpcDsKKyAg
ICAgICAgICAgIHVuaWZvcm0gbG93cCB2ZWMyIHVfdGV4dHVyZVNpemU7CiAgICAgICAgICAgICBh
dHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsKICAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2
X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAgdm9pZCBtYWluKHZvaWQpCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgdl9zb3VyY2VUZXhDb29yZCA9IHZlYzIoYV92ZXJ0ZXgueCwg
bWl4KGFfdmVydGV4LnksIDEuIC0gYV92ZXJ0ZXgueSwgdV9mbGlwKSk7CisgICAgICAgICAgICAg
ICAgdl9zb3VyY2VUZXhDb29yZCA9IHZlYzIoYV92ZXJ0ZXgueCwgbWl4KGFfdmVydGV4LnksIDEu
IC0gYV92ZXJ0ZXgueSwgdV9mbGlwKSkgKiB1X3RleHR1cmVTaXplOwogICAgICAgICAgICAgICAg
IGdsX1Bvc2l0aW9uID0gdV9tYXRyaXggKiBhX3ZlcnRleDsKICAgICAgICAgICAgIH0KICAgICAg
ICAgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmgKaW5kZXggNDk2Yjdl
ODFiMTI2MzZmZDJhOWZkZmVmNzEyODZmYThkODBmOGFjNi4uNjA2MDVmNDJkMGUzMjM4N2M0MmE0
ZmRkMDUzMTQyN2UwNGFkNzIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5h
Z2VyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgVEVYTUFQX0RFQ0xBUkVfVU5J
Rk9STShtYXRyaXgpCiAgICAgVEVYTUFQX0RFQ0xBUkVfVU5JRk9STShmbGlwKQotICAgIFRFWE1B
UF9ERUNMQVJFX1VOSUZPUk0oc2FtcGxlclNpemUpCisgICAgVEVYTUFQX0RFQ0xBUkVfVU5JRk9S
TSh0ZXh0dXJlU2l6ZSkKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKG9wYWNpdHkpCiAgICAg
VEVYTUFQX0RFQ0xBUkVfVU5JRk9STShjb2xvcikKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JN
KGV4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178986</attachid>
            <date>2012-12-12 00:22:06 -0800</date>
            <delta_ts>2012-12-12 00:22:49 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-104708-20121212001936.patch</filename>
            <type>text/plain</type>
            <size>16244</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiYjJlYjExMDE1NWZh
MzdlYjYxOTA1Nzg2MDkyMDBmNjJhZmIyYS4uYTQ2Mzk5Yzc1NjI3ZDFlZjllNzczNTdkYzgwNzM1
NGFmZGRkYzhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDEyLTEyLTExICBObydh
bSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1RleG1hcF0gUmVtb3Zl
IGxvd3AvaGlnaHAgaW5kaWNhdG9ycyBhcyB0aGV5J3JlIG5vdCBuZWVkZWQgd2l0aCBBTkdMRS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGxvd3AvaGln
aHAgaW5kaWNhdG9yIHdlcmUgbmVlZGVkIGZvciBHTEVTMiwgYnV0IEFOR0xFIGRvZXMgbm90IHJl
cXVpcmUgdGhlbS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFNoYWRlclNwZWMpOgorCisyMDEyLTEyLTExICBO
bydhbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKICAgICAgICAgW1RleG1hcF0gQ29u
c29saWRhdGUgcmVkdW5kYW50IGNvZGUgZm9yIEFSQl9SRUNUIHRleHR1cmUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcAppbmRleCBlMDRmODU4NzM1YTBlZjA4OTMy
YmUwMWNjNTY0NjljNDRjY2M1MGI4Li4yMTc1NjIwYWUxN2Y0M2VmYzQ4MWZhNTY3MzgzN2JmN2Ex
NjhmYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKQEAg
LTEyNCwxNCArMTI0LDE0IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgICAgICBw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNf
c2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNfbWFzazsKLSAgICAgICAg
ICAgIHVuaWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhp
Z2hwIHZlYzIgdl9zb3VyY2VUZXhDb29yZDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVj
MiB2X21hc2tUZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5Owor
ICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2
YXJ5aW5nIHZlYzIgdl9tYXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJl
MkQoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKLSAgICAgICAgICAgICAgICBsb3dwIHZl
YzQgbWFza0NvbG9yID0gdGV4dHVyZTJEKHNfbWFzaywgdl9tYXNrVGV4Q29vcmQpOwotICAgICAg
ICAgICAgICAgIGxvd3AgZmxvYXQgZnJhZ21lbnRBbHBoYSA9IHVfb3BhY2l0eSAqIG1hc2tDb2xv
ci5hOworICAgICAgICAgICAgICAgIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkQoc19zYW1wbGVyLCB2
X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9IHRleHR1
cmUyRChzX21hc2ssIHZfbWFza1RleENvb3JkKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBmcmFn
bWVudEFscGhhID0gdV9vcGFjaXR5ICogbWFza0NvbG9yLmE7CiAgICAgICAgICAgICAgICAgZ2xf
RnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBmcmFnbWVudEFscGhhLCBjb2xvci5hICogZnJh
Z21lbnRBbHBoYSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICk7CkBAIC0xNDEsMTQgKzE0MSwx
NCBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
OjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICAgICAgcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CiAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRFJlY3Qgc19zYW1wbGVyOwog
ICAgICAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkRSZWN0IHNfbWFzazsKLSAgICAgICAgICAgIHVu
aWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZl
YzIgdl9zb3VyY2VUZXhDb29yZDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X21h
c2tUZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAg
ICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2YXJ5aW5n
IHZlYzIgdl9tYXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0
KHNfc2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7Ci0gICAgICAgICAgICAgICAgbG93cCB2ZWM0
IG1hc2tDb2xvciA9IHRleHR1cmUyRFJlY3Qoc19tYXNrLCB2X21hc2tUZXhDb29yZCk7Ci0gICAg
ICAgICAgICAgICAgbG93cCBmbG9hdCBmcmFnbWVudEFscGhhID0gdV9vcGFjaXR5ICogbWFza0Nv
bG9yLmE7CisgICAgICAgICAgICAgICAgdmVjNCBjb2xvciA9IHRleHR1cmUyRFJlY3Qoc19zYW1w
bGVyLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9
IHRleHR1cmUyRFJlY3Qoc19tYXNrLCB2X21hc2tUZXhDb29yZCk7CisgICAgICAgICAgICAgICAg
ZmxvYXQgZnJhZ21lbnRBbHBoYSA9IHVfb3BhY2l0eSAqIG1hc2tDb2xvci5hOwogICAgICAgICAg
ICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IucmdiICogZnJhZ21lbnRBbHBoYSwgY29s
b3IuYSAqIGZyYWdtZW50QWxwaGEpOwogICAgICAgICAgICAgfQogICAgICAgICApOwpAQCAtMTU2
LDExICsxNTYsMTEgQEAgc3RhdGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hh
ZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5nJiB2ZXIKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogdmVydGV4T3BhY2l0eUFuZE1hc2sgPQogICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAg
ICAgICB1bmlmb3JtIG1hdDQgdV9tYXRyaXg7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxv
YXQgdV9mbGlwOwotICAgICAgICAgICAgdW5pZm9ybSBsb3dwIHZlYzIgdV90ZXh0dXJlU2l6ZTsK
KyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9mbGlwOworICAgICAgICAgICAgdW5pZm9ybSB2
ZWMyIHVfdGV4dHVyZVNpemU7CiAgICAgICAgICAgICBhdHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOwotICAgICAg
ICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfbWFza1RleENvb3JkOworICAgICAgICAgICAgdmFy
eWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl9t
YXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICB2X3NvdXJjZVRleENvb3JkID0gdmVjMihhX3ZlcnRleC54LCBtaXgo
YV92ZXJ0ZXgueSwgMS4gLSBhX3ZlcnRleC55LCB1X2ZsaXApKSAqIHVfdGV4dHVyZVNpemU7CkBA
IC0xNzMsMTEgKzE3MywxMSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBw
ZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBTVFJJ
TkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAgICAgICAg
IHVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93cCBm
bG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZlYzIgdl9zb3VyY2VU
ZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAgICAg
ICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4o
dm9pZCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0
ZXh0dXJlMkQoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2
ZWM0IGNvbG9yID0gdGV4dHVyZTJEKHNfc2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7CiAgICAg
ICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IgKiB1X29wYWNpdHksIGNv
bG9yLmEgKiB1X29wYWNpdHkpOwogICAgICAgICAgICAgfQogICAgICAgICApOwpAQCAtMTg2LDgg
KzE4Niw4IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1h
bmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAg
ICAgICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwogICAgICAgICAgICAgdW5pZm9ybSBz
YW1wbGVyMkQgc19zYW1wbGVyOwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfc291
cmNlVGV4Q29vcmQ7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5Owor
ICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB1
bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTsKICAgICAgICAgICAgIHVuaWZvcm0gdmVjMyB1X2V4cGFu
ZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVs4XTsKIAogICAgICAgICAgICAgICAgIC8vIFRoZSBk
YXRhIHBhc3NlZCBpbiB1X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZSBpcyBtZXJlbHkg
dGhlCkBAIC0yNDMsMTEgKzI0MywxMSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAg
ICBTVFJJTkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAg
ICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEUmVjdCBzX3NhbXBsZXI7Ci0gICAgICAgICAgICB1bmlm
b3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5OwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMy
IHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTsK
KyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAg
dm9pZCBtYWluKHZvaWQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbG93cCB2ZWM0
IGNvbG9yID0gdGV4dHVyZTJEUmVjdChzX3NhbXBsZXIsIHZfc291cmNlVGV4Q29vcmQpOworICAg
ICAgICAgICAgICAgIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0KHNfc2FtcGxlciwgdl9zb3Vy
Y2VUZXhDb29yZCk7CiAgICAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvci5y
Z2IgKiB1X29wYWNpdHksIGNvbG9yLmEgKiB1X29wYWNpdHkpOwogICAgICAgICAgICAgfQogICAg
ICAgICApOwpAQCAtMjU1LDEwICsyNTUsMTAgQEAgc3RhdGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhU
ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5nJiB2ZXIKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogdmVydGV4U2ltcGxlID0KICAgICAgICAgU1RSSU5HSUZZKAog
ICAgICAgICAgICAgdW5pZm9ybSBtYXQ0IHVfbWF0cml4OwotICAgICAgICAgICAgdW5pZm9ybSBs
b3dwIGZsb2F0IHVfZmxpcDsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93cCB2ZWMyIHVfdGV4dHVy
ZVNpemU7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZmxpcDsKKyAgICAgICAgICAgIHVu
aWZvcm0gdmVjMiB1X3RleHR1cmVTaXplOwogICAgICAgICAgICAgYXR0cmlidXRlIHZlYzQgYV92
ZXJ0ZXg7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZlYzIgdl9zb3VyY2VUZXhDb29yZDsK
KyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAg
dm9pZCBtYWluKHZvaWQpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdl9zb3VyY2VU
ZXhDb29yZCA9IHZlYzIoYV92ZXJ0ZXgueCwgbWl4KGFfdmVydGV4LnksIDEuIC0gYV92ZXJ0ZXgu
eSwgdV9mbGlwKSkgKiB1X3RleHR1cmVTaXplOwpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRpYyB2
b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBr
ZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAgICAgICAgIGF0dHJpYnV0
ZSB2ZWM0IGFfdmVydGV4OwogICAgICAgICAgICAgYXR0cmlidXRlIHZlYzQgYV90ZXhDb29yZDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3RleENvb3JkOworICAgICAgICAgICAg
dmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB2X3RleENvb3JkID0gdmVjMihhX3RleENvb3Jk
KTsKQEAgLTMwMSwxNiArMzAxLDE2IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVy
ZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAKICNkZWZp
bmUgU1RBTkRBUkRfRklMVEVSKC4uLikgXAogICAgICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7XG4iXAotICAgICAgICAidmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7XG4iXAotICAg
ICAgICAidW5pZm9ybSBoaWdocCBmbG9hdCB1X2Ftb3VudDtcbiJcCisgICAgICAgICJ2YXJ5aW5n
IHZlYzIgdl90ZXhDb29yZDtcbiJcCisgICAgICAgICJ1bmlmb3JtIGZsb2F0IHVfYW1vdW50O1xu
IlwKICAgICAgICAgInVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjtcbiIjX19WQV9BUkdTX18g
XAogICAgICAgICAidm9pZCBtYWluKHZvaWQpXG4geyBnbF9GcmFnQ29sb3IgPSBzaGFkZSh0ZXh0
dXJlMkQoc19zYW1wbGVyLCB2X3RleENvb3JkKSk7IH0iCiAKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogZnJhZ21lbnRHcmF5c2NhbGVGaWx0ZXIgPQogICAgICAgICBTVEFOREFSRF9GSUxURVIoCi0g
ICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9yKQorICAgICAgICAgICAg
dmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgbG93cCBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKKyAgICAgICAgICAgICAgICBm
bG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKICAgICAgICAgICAgICAgICByZXR1cm4gdmVj
NCgoMC4yMTI2ICsgMC43ODc0ICogYW1vdW50KSAqIGNvbG9yLnIgKyAoMC43MTUyIC0gMC43MTUy
ICogYW1vdW50KSAqIGNvbG9yLmcgKyAoMC4wNzIyIC0gMC4wNzIyICogYW1vdW50KSAqIGNvbG9y
LmIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMjEyNiAtIDAuMjEyNiAqIGFtb3Vu
dCkgKiBjb2xvci5yICsgKDAuNzE1MiArIDAuMjg0OCAqIGFtb3VudCkgKiBjb2xvci5nICsgKDAu
MDcyMiAtIDAuMDcyMiAqIGFtb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgwLjIxMjYgLSAwLjIxMjYgKiBhbW91bnQpICogY29sb3IuciArICgwLjcxNTIgLSAw
LjcxNTIgKiBhbW91bnQpICogY29sb3IuZyArICgwLjA3MjIgKyAwLjkyNzggKiBhbW91bnQpICog
Y29sb3IuYiwKQEAgLTMyMCw5ICszMjAsOSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2VwaWFGaWx0ZXIgPQogICAgICAgICBTVEFO
REFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9y
KQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgbG93cCBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKKyAg
ICAgICAgICAgICAgICBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdmVjNCgoMC4zOTMgKyAwLjYwNyAqIGFtb3VudCkgKiBjb2xvci5yICsgKDAu
NzY5IC0gMC43NjkgKiBhbW91bnQpICogY29sb3IuZyArICgwLjE4OSAtIDAuMTg5ICogYW1vdW50
KSAqIGNvbG9yLmIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMzQ5IC0gMC4zNDkg
KiBhbW91bnQpICogY29sb3IuciArICgwLjY4NiArIDAuMzE0ICogYW1vdW50KSAqIGNvbG9yLmcg
KyAoMC4xNjggLSAwLjE2OCAqIGFtb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgwLjI3MiAtIDAuMjcyICogYW1vdW50KSAqIGNvbG9yLnIgKyAoMC41MzQgLSAw
LjUzNCAqIGFtb3VudCkgKiBjb2xvci5nICsgKDAuMTMxICsgMC44NjkgKiBhbW91bnQpICogY29s
b3IuYiwKQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2F0dXJhdGVGaWx0ZXIgPQogICAgICAgICBTVEFO
REFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9y
KQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoKDAuMjEzICsgMC43ODcgKiB1X2Ftb3VudCkg
KiBjb2xvci5yICsgKDAuNzE1IC0gMC43MTUgKiB1X2Ftb3VudCkgKiBjb2xvci5nICsgKDAuMDcy
IC0gMC4wNzIgKiB1X2Ftb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgwLjIxMyAtIDAuMjEzICogdV9hbW91bnQpICogY29sb3IuciArICgwLjcxNSArIDAuMjg1
ICogdV9hbW91bnQpICogY29sb3IuZyArICgwLjA3MiAtIDAuMDcyICogdV9hbW91bnQpICogY29s
b3IuYiwKQEAgLTM0MywxMSArMzQzLDExIEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRIdWVSb3RhdGVGaWx0ZXIgPQogICAgICAgICBT
VEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNv
bG9yKQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgaGlnaHAgZmxvYXQgcGkgPSAzLjE0MTU5MjY1MzU4OTc5MzIz
ODQ2OwotICAgICAgICAgICAgICAgIGhpZ2hwIGZsb2F0IGMgPSBjb3ModV9hbW91bnQgKiBwaSAv
IDE4MC4wKTsKLSAgICAgICAgICAgICAgICBoaWdocCBmbG9hdCBzID0gc2luKHVfYW1vdW50ICog
cGkgLyAxODAuMCk7CisgICAgICAgICAgICAgICAgZmxvYXQgcGkgPSAzLjE0MTU5MjY1MzU4OTc5
MzIzODQ2OworICAgICAgICAgICAgICAgIGZsb2F0IGMgPSBjb3ModV9hbW91bnQgKiBwaSAvIDE4
MC4wKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBzID0gc2luKHVfYW1vdW50ICogcGkgLyAxODAu
MCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoY29sb3IuciAqICgwLjIxMyArIGMgKiAw
Ljc4NyAtIHMgKiAwLjIxMykgKyBjb2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1IC0gcyAqIDAu
NzE1KSArIGNvbG9yLmIgKiAoMC4wNzIgLSBjICogMC4wNzIgKyBzICogMC45MjgpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnIgKiAoMC4yMTMgLSBjICogMC4yMTMgKyBzICog
MC4xNDMpICsgY29sb3IuZyAqICgwLjcxNSArIGMgKiAwLjI4NSArIHMgKiAwLjE0MCkgKyBjb2xv
ci5iICogKDAuMDcyIC0gYyAqIDAuMDcyIC0gcyAqIDAuMjgzKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb2xvci5yICogKDAuMjEzIC0gYyAqIDAuMjEzIC0gcyAqIDAuNzg3KSArICBj
b2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1ICsgcyAqIDAuNzE1KSArIGNvbG9yLmIgKiAoMC4w
NzIgKyBjICogMC45MjggKyBzICogMC4wNzIpLApAQCAtMzU3LDggKzM1Nyw4IEBAIHN0YXRpYyB2
b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBr
ZXksIFN0cmluZyYgdmVyCiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRJbnZlcnRG
aWx0ZXIgPQogICAgICAgICBTVEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIGZsb2F0
IGludmVydChsb3dwIGZsb2F0IG4pIHsgcmV0dXJuICgxLjAgLSBuKSAqIHVfYW1vdW50ICsgbiAq
ICgxLjAgLSB1X2Ftb3VudCk7IH0KLSAgICAgICAgICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZl
YzQgY29sb3IpCisgICAgICAgICAgICBmbG9hdCBpbnZlcnQobG93cCBmbG9hdCBuKSB7IHJldHVy
biAoMS4wIC0gbikgKiB1X2Ftb3VudCArIG4gKiAoMS4wIC0gdV9hbW91bnQpOyB9CisgICAgICAg
ICAgICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdmVjNChpbnZlcnQoY29sb3IuciksIGludmVydChjb2xvci5nKSwgaW52
ZXJ0KGNvbG9yLmIpLCBjb2xvci5hKTsKICAgICAgICAgICAgIH0KQEAgLTM2Niw3ICszNjYsNyBA
QCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpT
aGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdt
ZW50QnJpZ2h0bmVzc0ZpbHRlciA9CiAgICAgICAgIFNUQU5EQVJEX0ZJTFRFUigKLSAgICAgICAg
ICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICB2ZWM0IHNo
YWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICByZXR1
cm4gdmVjNChjb2xvci5yZ2IgKiAoMS4wICsgdV9hbW91bnQpLCBjb2xvci5hKTsKICAgICAgICAg
ICAgIH0KQEAgLTM3NCw4ICszNzQsOCBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50Q29udHJhc3RGaWx0ZXIgPQogICAgICAgICBTVEFO
REFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIGZsb2F0IGNvbnRyYXN0KGxvd3AgZmxvYXQg
bikgeyByZXR1cm4gKG4gLSAwLjUpICogdV9hbW91bnQgKyAwLjU7IH0KLSAgICAgICAgICAgIGxv
d3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICBmbG9hdCBjb250cmFz
dChsb3dwIGZsb2F0IG4pIHsgcmV0dXJuIChuIC0gMC41KSAqIHVfYW1vdW50ICsgMC41OyB9Cisg
ICAgICAgICAgICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gdmVjNChjb250cmFzdChjb2xvci5yKSwgY29udHJhc3QoY29s
b3IuZyksIGNvbnRyYXN0KGNvbG9yLmIpLCBjb2xvci5hKTsKICAgICAgICAgICAgIH0KQEAgLTM4
Myw3ICszODMsNyBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFk
ZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGZyYWdtZW50T3BhY2l0eUZpbHRlciA9CiAgICAgICAgIFNUQU5EQVJEX0ZJTFRFUigK
LSAgICAgICAgICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAg
ICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdmVjNChjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iLCBjb2xvci5hICogdV9h
bW91bnQpOwogICAgICAgICAgICAgfQpAQCAtMzk2LDEyICszOTYsMTIgQEAgc3RhdGljIHZvaWQg
Z2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwg
U3RyaW5nJiB2ZXIKICAgICAgICAgU1RSSU5HSUZZKAogICAgICAgICAgICAgLy8gQ3JlYXRlIGEg
bm9ybWFsIGRpc3RyaWJ1dGlvbiBvZiAyMSB2YWx1ZXMgYmV0d2VlbiAtMiBhbmQgMi4KICAgICAg
ICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotICAgICAgICAgICAgdmFyeWluZyBoaWdo
cCB2ZWMyIHZfdGV4Q29vcmQ7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgdmVjMiB1X2JsdXJS
YWRpdXM7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsKKyAgICAgICAgICAg
IHVuaWZvcm0gdmVjMiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIy
RCBzX3NhbXBsZXI7CiAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3NpYW5LZXJuZWxb
R0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2Ft
cGxlQ29sb3IoZmxvYXQgcmFkaXVzKQorICAgICAgICAgICAgdmVjNCBzYW1wbGVDb2xvcihmbG9h
dCByYWRpdXMpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmVjMiBjb29yZCA9IHZf
dGV4Q29vcmQgKyByYWRpdXMgKiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKSAqIGZsb2F0KGNvb3JkLnggPiAwLiAmJiBjb29y
ZC55ID4gMC4gJiYgY29vcmQueCA8IDEuICYmIGNvb3JkLnkgPCAxLik7CkBAIC00MjgsMTkgKzQy
OCwxOSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5h
Z2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBCTFVSX0NPTlNUQU5UUwog
ICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3RleENvb3JkOwotICAgICAgICAgICAg
dW5pZm9ybSBsb3dwIGZsb2F0IHVfYmx1clJhZGl1czsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93
cCB2ZWMyIHVfc2hhZG93T2Zmc2V0OworICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29v
cmQ7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfYmx1clJhZGl1czsKKyAgICAgICAgICAg
IHVuaWZvcm0gdmVjMiB1X3NoYWRvd09mZnNldDsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxl
cjJEIHNfc2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9nYXVzc2lhbktlcm5l
bFtHQVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSF07CiAKLSAgICAgICAgICAgIGxvd3AgZmxvYXQg
c2FtcGxlQWxwaGEoZmxvYXQgcmFkaXVzKQorICAgICAgICAgICAgZmxvYXQgc2FtcGxlQWxwaGEo
ZmxvYXQgcmFkaXVzKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZlYzIgY29vcmQg
PSB2X3RleENvb3JkIC0gdV9zaGFkb3dPZmZzZXQgKyB2ZWMyKHJhZGl1cyAqIHVfYmx1clJhZGl1
cywgMC4pOwogICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlMkQoc19zYW1wbGVyLCBjb29y
ZCkuYSAqIGZsb2F0KGNvb3JkLnggPiAwLiAmJiBjb29yZC55ID4gMC4gJiYgY29vcmQueCA8IDEu
ICYmIGNvb3JkLnkgPCAxLik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGxvd3AgZmxv
YXQgc2hhZG93Qmx1ckhvcml6b250YWwoKQorICAgICAgICAgICAgZmxvYXQgc2hhZG93Qmx1ckhv
cml6b250YWwoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGZsb2F0IHRvdGFsID0g
c2FtcGxlQWxwaGEoMC4pICogdV9nYXVzc2lhbktlcm5lbFswXTsKICAgICAgICAgICAgICAgICBm
b3IgKGludCBpID0gMTsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIOyBpKyspIHsKQEAg
LTQ2MiwyMCArNDYyLDIwIEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIEJMVVJf
Q09OU1RBTlRTCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAgICAgICAgIHByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7Ci0g
ICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9ibHVyUmFkaXVzOwotICAgICAgICAgICAg
dW5pZm9ybSBsb3dwIHZlYzQgdV9zaGFkb3dDb2xvcjsKKyAgICAgICAgICAgIHZhcnlpbmcgdmVj
MiB2X3RleENvb3JkOworICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X2JsdXJSYWRpdXM7Cisg
ICAgICAgICAgICB1bmlmb3JtIHZlYzQgdV9zaGFkb3dDb2xvcjsKICAgICAgICAgICAgIHVuaWZv
cm0gc2FtcGxlcjJEIHNfc2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNf
Y29udGVudFRleHR1cmU7CiAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3NpYW5LZXJu
ZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCi0gICAgICAgICAgICBsb3dwIGZsb2F0
IHNhbXBsZUFscGhhKGZsb2F0IHIpCisgICAgICAgICAgICBmbG9hdCBzYW1wbGVBbHBoYShmbG9h
dCByKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZlYzIgY29vcmQgPSB2X3RleENv
b3JkICsgdmVjMigwLiwgciAqIHVfYmx1clJhZGl1cyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKS5hICogZmxvYXQoY29vcmQueCA+IDAuICYmIGNv
b3JkLnkgPiAwLiAmJiBjb29yZC54IDwgMS4gJiYgY29vcmQueSA8IDEuKTsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgbG93cCBmbG9hdCBzaGFkb3dCbHVyVmVydGljYWwoKQorICAgICAg
ICAgICAgZmxvYXQgc2hhZG93Qmx1clZlcnRpY2FsKCkKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICBmbG9hdCB0b3RhbCA9IHNhbXBsZUFscGhhKDAuKSAqIHVfZ2F1c3NpYW5LZXJuZWxb
MF07CiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBHQVVTU0lBTl9LRVJORUxf
SEFMRl9XSURUSDsgaSsrKSB7CkBAIC00ODYsNyArNDg2LDcgQEAgc3RhdGljIHZvaWQgZ2V0U2hh
ZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5n
JiB2ZXIKICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWw7CiAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgIGxvd3AgdmVjNCBzb3VyY2VPdmVyKGxvd3AgdmVjNCBzb3VyY2UsIGxvd3AgdmVj
NCBkZXN0aW5hdGlvbikKKyAgICAgICAgICAgIHZlYzQgc291cmNlT3Zlcihsb3dwIHZlYzQgc291
cmNlLCB2ZWM0IGRlc3RpbmF0aW9uKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8v
IENvbXBvc2l0ZSB0aGUgc2hhZG93IHdpdGggdGhlIG9yaWdpbmFsIHRleHR1cmUuCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHNvdXJjZSArIGRlc3RpbmF0aW9uICogKDEuIC0gc291cmNlLmEpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>