<?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>136630</bug_id>
          
          <creation_ts>2014-09-08 07:21:22 -0700</creation_ts>
          <short_desc>[CSS Grid Layout] RenderGrid methods should take RenderBox references</short_desc>
          <delta_ts>2014-10-15 04:44:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>60731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jfernandez</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rego</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1033846</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-09-08 07:21:22 -0700</bug_when>
    <thetext>[CSS Grid Layout] RenderGrid methods should take RenderBox references</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033847</commentid>
    <comment_count>1</comment_count>
      <attachid>237784</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-09-08 07:29:17 -0700</bug_when>
    <thetext>Created attachment 237784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033854</commentid>
    <comment_count>2</comment_count>
      <attachid>237784</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-09-08 08:02:37 -0700</bug_when>
    <thetext>Comment on attachment 237784
Patch

Separate thought: Can the type be more specific than RenderBox?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034100</commentid>
    <comment_count>3</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-09-09 03:31:09 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 237784 [details])
&gt; Separate thought: Can the type be more specific than RenderBox?

I don&apos;t think so,  if I am not wrong any RenderBox can be a child.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034103</commentid>
    <comment_count>4</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-09-09 04:39:59 -0700</bug_when>
    <thetext>Committed r173427: &lt;http://trac.webkit.org/changeset/173427&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237784</attachid>
            <date>2014-09-08 07:29:17 -0700</date>
            <delta_ts>2014-09-08 08:02:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136630-20140908162910.patch</filename>
            <type>text/plain</type>
            <size>25496</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg2OTNjMmYzMTRjYjhl
NmI3NGQ3ZDQ4NWU2ZWZlMDg1MGU1YmQzZi4uOWM4YzhiMDIxZWMwNmQ4N2I0OWI0MjBkMmYyYzdh
MzcwYWMxN2JkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA5LTA4ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIFJlbmRlckdyaWQgbWV0aG9kcyBzaG91bGQgdGFrZSBSZW5kZXJCb3ggcmVmZXJl
bmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2
NjMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
ZGVyR3JpZCBoYXMgc2V2ZXJhbCBtZXRob2RzIHRoYXQgdGFrZSBwb2ludGVycyB0byBSZW5kZXJC
b3gKKyAgICAgICAgaW5zdGFuY2VzIGJ1dCB0aGUgYm9keSBvZiB0aG9zZSBtZXRob2RzIGFzc3Vt
ZXMgdGhhdCB0aGUgb2JqZWN0cworICAgICAgICB3aWxsIG5ldmVyIGJlIE5VTEwuIFdlIHNob3Vs
ZCByZXBsYWNlIHRoZW0gYnkgcmVmZXJlbmNlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVVc2VkQnJl
YWR0aE9mR3JpZFRyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpsb2dpY2Fs
Q29udGVudEhlaWdodEZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6Om1p
bkNvbnRlbnRGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjptYXhDb250
ZW50Rm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRl
bnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OnJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckdyaWQ6OmNyZWF0ZUVtcHR5R3JpZEFyZWFBdFNwZWNpZmllZFBvc2l0aW9uc091
dHNpZGVHcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVk
TWFqb3JBeGlzSXRlbXNPbkdyaWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxh
Y2VBdXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6
Y2FjaGVkR3JpZENvb3JkaW5hdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3Jp
ZEFyZWFCcmVhZHRoRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Zmlu
ZENoaWxkTG9naWNhbFBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5o
OgorCiAyMDE0LTA5LTA0ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGZvciBFRkwgYW5kIEdUSyBwb3J0cyBz
aW5jZSByMTczMjcyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4
IDk1N2ZlZWM1NmQ3ZjFkNzlmZWU0YzgwZjIxZGYwOTFkMTc2ZWQ3NDIuLjQ5M2QxZDA1MzM4YjNk
YjhiYzE3ZDA4M2NjM2YyMjNkYTZjNjE4ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKQEAgLTM2MCwxNCArMzYwLDE0IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0
ZVVzZWRCcmVhZHRoT2ZHcmlkVHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rp
CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmxleGlibGVTaXplZFRyYWNrc0luZGV4
LnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBHcmlkSXRlcmF0b3IgaXRlcmF0b3IobV9ncmlk
LCBkaXJlY3Rpb24sIGZsZXhpYmxlU2l6ZWRUcmFja3NJbmRleFtpXSk7CiAgICAgICAgICAgICB3
aGlsZSAoUmVuZGVyQm94KiBncmlkSXRlbSA9IGl0ZXJhdG9yLm5leHRHcmlkSXRlbSgpKSB7Ci0g
ICAgICAgICAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUgY29vcmRpbmF0ZSA9IGNhY2hlZEdy
aWRDb29yZGluYXRlKGdyaWRJdGVtKTsKKyAgICAgICAgICAgICAgICBjb25zdCBHcmlkQ29vcmRp
bmF0ZSBjb29yZGluYXRlID0gY2FjaGVkR3JpZENvb3JkaW5hdGUoKmdyaWRJdGVtKTsKICAgICAg
ICAgICAgICAgICBjb25zdCBHcmlkU3BhbiBzcGFuID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5z
KSA/IGNvb3JkaW5hdGUuY29sdW1ucyA6IGNvb3JkaW5hdGUucm93czsKIAogICAgICAgICAgICAg
ICAgIC8vIERvIG5vdCBpbmNsdWRlIGFscmVhZHkgcHJvY2Vzc2VkIGl0ZW1zLgogICAgICAgICAg
ICAgICAgIGlmIChpID4gMCAmJiBzcGFuLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkg
PD0gZmxleGlibGVTaXplZFRyYWNrc0luZGV4W2kgLSAxXSkKICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgICAgICAgICBkb3VibGUgaXRlbU5vcm1hbGl6ZWRGbGV4QnJl
YWR0aCA9IGNvbXB1dGVOb3JtYWxpemVkRnJhY3Rpb25CcmVhZHRoKHRyYWNrcywgc3BhbiwgZGly
ZWN0aW9uLCBtYXhDb250ZW50Rm9yQ2hpbGQoZ3JpZEl0ZW0sIGRpcmVjdGlvbiwgc2l6aW5nRGF0
YS5jb2x1bW5UcmFja3MpKTsKKyAgICAgICAgICAgICAgICBkb3VibGUgaXRlbU5vcm1hbGl6ZWRG
bGV4QnJlYWR0aCA9IGNvbXB1dGVOb3JtYWxpemVkRnJhY3Rpb25CcmVhZHRoKHRyYWNrcywgc3Bh
biwgZGlyZWN0aW9uLCBtYXhDb250ZW50Rm9yQ2hpbGQoKmdyaWRJdGVtLCBkaXJlY3Rpb24sIHNp
emluZ0RhdGEuY29sdW1uVHJhY2tzKSk7CiAgICAgICAgICAgICAgICAgbm9ybWFsaXplZEZyYWN0
aW9uQnJlYWR0aCA9IHN0ZDo6bWF4KG5vcm1hbGl6ZWRGcmFjdGlvbkJyZWFkdGgsIGl0ZW1Ob3Jt
YWxpemVkRmxleEJyZWFkdGgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC00ODQsMjQg
KzQ4NCwyNCBAQCBjb25zdCBHcmlkVHJhY2tTaXplJiBSZW5kZXJHcmlkOjpncmlkVHJhY2tTaXpl
KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3RpbwogICAgIHJldHVybiB0cmFja1NpemU7
CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyR3JpZDo6bG9naWNhbENvbnRlbnRIZWlnaHRGb3JDaGls
ZChSZW5kZXJCb3gqIGNoaWxkLCBWZWN0b3I8R3JpZFRyYWNrPiYgY29sdW1uVHJhY2tzKQorTGF5
b3V0VW5pdCBSZW5kZXJHcmlkOjpsb2dpY2FsQ29udGVudEhlaWdodEZvckNoaWxkKFJlbmRlckJv
eCYgY2hpbGQsIFZlY3RvcjxHcmlkVHJhY2s+JiBjb2x1bW5UcmFja3MpCiB7Ci0gICAgTGF5b3V0
VW5pdCBvbGRPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGggPSBjaGls
ZC0+aGFzT3ZlcnJpZGVDb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGgoKSA/IGNoaWxkLT5vdmVy
cmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSA6IExheW91dFVuaXQoKTsK
KyAgICBMYXlvdXRVbml0IG9sZE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxX
aWR0aCA9IGNoaWxkLmhhc092ZXJyaWRlQ29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoKCkgPyBj
aGlsZC5vdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSA6IExheW91
dFVuaXQoKTsKICAgICBMYXlvdXRVbml0IG92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExv
Z2ljYWxXaWR0aCA9IGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNoaWxkLCBGb3JDb2x1bW5zLCBj
b2x1bW5UcmFja3MpOwotICAgIGlmIChjaGlsZC0+c3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNQ
ZXJjZW50KCkgfHwgb2xkT3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRo
ICE9IG92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCkKLSAgICAgICAg
Y2hpbGQtPnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgaWYgKGNoaWxkLnN0eWxl
KCkubG9naWNhbEhlaWdodCgpLmlzUGVyY2VudCgpIHx8IG9sZE92ZXJyaWRlQ29udGFpbmluZ0Js
b2NrQ29udGVudExvZ2ljYWxXaWR0aCAhPSBvdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRM
b2dpY2FsV2lkdGgpCisgICAgICAgIGNoaWxkLnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7
CiAKLSAgICBjaGlsZC0+c2V0T3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdp
ZHRoKG92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCk7CisgICAgY2hp
bGQuc2V0T3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKG92ZXJyaWRl
Q29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCk7CiAgICAgLy8gSWYgfGNoaWxkfCBo
YXMgYSBwZXJjZW50YWdlIGxvZ2ljYWwgaGVpZ2h0LCB3ZSBzaG91bGRuJ3QgbGV0IGl0IG92ZXJy
aWRlIGl0cyBpbnRyaW5zaWMgaGVpZ2h0LCB3aGljaCBpcwogICAgIC8vIHdoYXQgd2UgYXJlIGlu
dGVyZXN0ZWQgaW4gaGVyZS4gVGh1cyB3ZSBuZWVkIHRvIHNldCB0aGUgb3ZlcnJpZGUgbG9naWNh
bCBoZWlnaHQgdG8gLTEgKG5vIHBvc3NpYmxlIHJlc29sdXRpb24pLgotICAgIGNoaWxkLT5zZXRP
dmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KC0xKTsKLSAgICBjaGls
ZC0+bGF5b3V0SWZOZWVkZWQoKTsKLSAgICByZXR1cm4gY2hpbGQtPmxvZ2ljYWxIZWlnaHQoKSAr
IGNoaWxkLT5tYXJnaW5Mb2dpY2FsSGVpZ2h0KCk7CisgICAgY2hpbGQuc2V0T3ZlcnJpZGVDb250
YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgtMSk7CisgICAgY2hpbGQubGF5b3V0SWZO
ZWVkZWQoKTsKKyAgICByZXR1cm4gY2hpbGQubG9naWNhbEhlaWdodCgpICsgY2hpbGQubWFyZ2lu
TG9naWNhbEhlaWdodCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckdyaWQ6Om1pbkNvbnRlbnRG
b3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0
aW9uLCBWZWN0b3I8R3JpZFRyYWNrPiYgY29sdW1uVHJhY2tzKQorTGF5b3V0VW5pdCBSZW5kZXJH
cmlkOjptaW5Db250ZW50Rm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uIGRpcmVjdGlvbiwgVmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVtblRyYWNrcykKIHsK
LSAgICBib29sIGhhc09ydGhvZ29uYWxXcml0aW5nTW9kZSA9IGNoaWxkLT5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpICE9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CisgICAgYm9vbCBoYXNP
cnRob2dvbmFsV3JpdGluZ01vZGUgPSBjaGlsZC5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpICE9
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CiAgICAgLy8gRklYTUU6IFByb3Blcmx5IHN1cHBv
cnQgb3J0aG9nb25hbCB3cml0aW5nIG1vZGUuCiAgICAgaWYgKGhhc09ydGhvZ29uYWxXcml0aW5n
TW9kZSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC01MDksMTUgKzUwOSwxNSBAQCBMYXlvdXRVbml0
IFJlbmRlckdyaWQ6Om1pbkNvbnRlbnRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBHcmlkVHJh
Y2tTaXppbmdEaXJlYwogICAgIGlmIChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgewogICAgICAg
ICAvLyBGSVhNRTogSXQncyB1bmNsZWFyIGlmIHdlIHNob3VsZCByZXR1cm4gdGhlIGludHJpbnNp
YyB3aWR0aCBvciB0aGUgcHJlZmVycmVkIHdpZHRoLgogICAgICAgICAvLyBTZWUgaHR0cDovL2xp
c3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTNKYW4vMDI0NS5odG1sCi0g
ICAgICAgIHJldHVybiBjaGlsZC0+bWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCkgKyBtYXJnaW5J
bnRyaW5zaWNMb2dpY2FsV2lkdGhGb3JDaGlsZCgqY2hpbGQpOworICAgICAgICByZXR1cm4gY2hp
bGQubWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCkgKyBtYXJnaW5JbnRyaW5zaWNMb2dpY2FsV2lk
dGhGb3JDaGlsZChjaGlsZCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGxvZ2ljYWxDb250ZW50SGVp
Z2h0Rm9yQ2hpbGQoY2hpbGQsIGNvbHVtblRyYWNrcyk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVy
R3JpZDo6bWF4Q29udGVudEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiBkaXJlY3Rpb24sIFZlY3RvcjxHcmlkVHJhY2s+JiBjb2x1bW5UcmFja3MpCitM
YXlvdXRVbml0IFJlbmRlckdyaWQ6Om1heENvbnRlbnRGb3JDaGlsZChSZW5kZXJCb3gmIGNoaWxk
LCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBWZWN0b3I8R3JpZFRyYWNrPiYg
Y29sdW1uVHJhY2tzKQogewotICAgIGJvb2wgaGFzT3J0aG9nb25hbFdyaXRpbmdNb2RlID0gY2hp
bGQtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgIT0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KTsKKyAgICBib29sIGhhc09ydGhvZ29uYWxXcml0aW5nTW9kZSA9IGNoaWxkLmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgIT0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKICAgICAvLyBGSVhN
RTogUHJvcGVybHkgc3VwcG9ydCBvcnRob2dvbmFsIHdyaXRpbmcgbW9kZS4KICAgICBpZiAoaGFz
T3J0aG9nb25hbFdyaXRpbmdNb2RlKQogICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCgpOwpAQCAt
NTI1LDcgKzUyNSw3IEBAIExheW91dFVuaXQgUmVuZGVyR3JpZDo6bWF4Q29udGVudEZvckNoaWxk
KFJlbmRlckJveCogY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjCiAgICAgaWYgKGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJdCdzIHVuY2xlYXIgaWYgd2Ug
c2hvdWxkIHJldHVybiB0aGUgaW50cmluc2ljIHdpZHRoIG9yIHRoZSBwcmVmZXJyZWQgd2lkdGgu
CiAgICAgICAgIC8vIFNlZSBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ct
c3R5bGUvMjAxM0phbi8wMjQ1Lmh0bWwKLSAgICAgICAgcmV0dXJuIGNoaWxkLT5tYXhQcmVmZXJy
ZWRMb2dpY2FsV2lkdGgoKSArIG1hcmdpbkludHJpbnNpY0xvZ2ljYWxXaWR0aEZvckNoaWxkKCpj
aGlsZCk7CisgICAgICAgIHJldHVybiBjaGlsZC5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSAr
IG1hcmdpbkludHJpbnNpY0xvZ2ljYWxXaWR0aEZvckNoaWxkKGNoaWxkKTsKICAgICB9CiAKICAg
ICByZXR1cm4gbG9naWNhbENvbnRlbnRIZWlnaHRGb3JDaGlsZChjaGlsZCwgY29sdW1uVHJhY2tz
KTsKQEAgLTUzOCwxMCArNTM4LDEwIEBAIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRC
YXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzaXppbmdEYXRhLmNvbnRlbnRTaXplZFRyYWNrc0luZGV4LnNp
emUoKTsgKytpKSB7CiAgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRvcihtX2dyaWQsIGRpcmVj
dGlvbiwgc2l6aW5nRGF0YS5jb250ZW50U2l6ZWRUcmFja3NJbmRleFtpXSk7CiAgICAgICAgIHdo
aWxlIChSZW5kZXJCb3gqIGdyaWRJdGVtID0gaXRlcmF0b3IubmV4dEdyaWRJdGVtKCkpIHsKLSAg
ICAgICAgICAgIHJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1z
KGRpcmVjdGlvbiwgc2l6aW5nRGF0YSwgZ3JpZEl0ZW0sICZHcmlkVHJhY2tTaXplOjpoYXNNaW5P
ck1heENvbnRlbnRNaW5UcmFja0JyZWFkdGgsICZSZW5kZXJHcmlkOjptaW5Db250ZW50Rm9yQ2hp
bGQsICZHcmlkVHJhY2s6OnVzZWRCcmVhZHRoLCAmR3JpZFRyYWNrOjpncm93VXNlZEJyZWFkdGgp
OwotICAgICAgICAgICAgcmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9y
SXRlbXMoZGlyZWN0aW9uLCBzaXppbmdEYXRhLCBncmlkSXRlbSwgJkdyaWRUcmFja1NpemU6Omhh
c01heENvbnRlbnRNaW5UcmFja0JyZWFkdGgsICZSZW5kZXJHcmlkOjptYXhDb250ZW50Rm9yQ2hp
bGQsICZHcmlkVHJhY2s6OnVzZWRCcmVhZHRoLCAmR3JpZFRyYWNrOjpncm93VXNlZEJyZWFkdGgp
OwotICAgICAgICAgICAgcmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9y
SXRlbXMoZGlyZWN0aW9uLCBzaXppbmdEYXRhLCBncmlkSXRlbSwgJkdyaWRUcmFja1NpemU6Omhh
c01pbk9yTWF4Q29udGVudE1heFRyYWNrQnJlYWR0aCwgJlJlbmRlckdyaWQ6Om1pbkNvbnRlbnRG
b3JDaGlsZCwgJkdyaWRUcmFjazo6bWF4QnJlYWR0aElmTm90SW5maW5pdGUsICZHcmlkVHJhY2s6
Omdyb3dNYXhCcmVhZHRoKTsKLSAgICAgICAgICAgIHJlc29sdmVDb250ZW50QmFzZWRUcmFja1Np
emluZ0Z1bmN0aW9uc0Zvckl0ZW1zKGRpcmVjdGlvbiwgc2l6aW5nRGF0YSwgZ3JpZEl0ZW0sICZH
cmlkVHJhY2tTaXplOjpoYXNNYXhDb250ZW50TWF4VHJhY2tCcmVhZHRoLCAmUmVuZGVyR3JpZDo6
bWF4Q29udGVudEZvckNoaWxkLCAmR3JpZFRyYWNrOjptYXhCcmVhZHRoSWZOb3RJbmZpbml0ZSwg
JkdyaWRUcmFjazo6Z3Jvd01heEJyZWFkdGgpOworICAgICAgICAgICAgcmVzb2x2ZUNvbnRlbnRC
YXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMoZGlyZWN0aW9uLCBzaXppbmdEYXRhLCAq
Z3JpZEl0ZW0sICZHcmlkVHJhY2tTaXplOjpoYXNNaW5Pck1heENvbnRlbnRNaW5UcmFja0JyZWFk
dGgsICZSZW5kZXJHcmlkOjptaW5Db250ZW50Rm9yQ2hpbGQsICZHcmlkVHJhY2s6OnVzZWRCcmVh
ZHRoLCAmR3JpZFRyYWNrOjpncm93VXNlZEJyZWFkdGgpOworICAgICAgICAgICAgcmVzb2x2ZUNv
bnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMoZGlyZWN0aW9uLCBzaXppbmdE
YXRhLCAqZ3JpZEl0ZW0sICZHcmlkVHJhY2tTaXplOjpoYXNNYXhDb250ZW50TWluVHJhY2tCcmVh
ZHRoLCAmUmVuZGVyR3JpZDo6bWF4Q29udGVudEZvckNoaWxkLCAmR3JpZFRyYWNrOjp1c2VkQnJl
YWR0aCwgJkdyaWRUcmFjazo6Z3Jvd1VzZWRCcmVhZHRoKTsKKyAgICAgICAgICAgIHJlc29sdmVD
b250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKGRpcmVjdGlvbiwgc2l6aW5n
RGF0YSwgKmdyaWRJdGVtLCAmR3JpZFRyYWNrU2l6ZTo6aGFzTWluT3JNYXhDb250ZW50TWF4VHJh
Y2tCcmVhZHRoLCAmUmVuZGVyR3JpZDo6bWluQ29udGVudEZvckNoaWxkLCAmR3JpZFRyYWNrOjpt
YXhCcmVhZHRoSWZOb3RJbmZpbml0ZSwgJkdyaWRUcmFjazo6Z3Jvd01heEJyZWFkdGgpOworICAg
ICAgICAgICAgcmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMo
ZGlyZWN0aW9uLCBzaXppbmdEYXRhLCAqZ3JpZEl0ZW0sICZHcmlkVHJhY2tTaXplOjpoYXNNYXhD
b250ZW50TWF4VHJhY2tCcmVhZHRoLCAmUmVuZGVyR3JpZDo6bWF4Q29udGVudEZvckNoaWxkLCAm
R3JpZFRyYWNrOjptYXhCcmVhZHRoSWZOb3RJbmZpbml0ZSwgJkdyaWRUcmFjazo6Z3Jvd01heEJy
ZWFkdGgpOwogICAgICAgICB9CiAKICAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJlY3Rp
b24gPT0gRm9yQ29sdW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1tpXSA6IHNpemluZ0Rh
dGEucm93VHJhY2tzW2ldOwpAQCAtNTUwLDcgKzU1MCw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cmVz
b2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvCiAgICAgfQogfQogCi12b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50QmFzZWRUcmFj
a1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rp
b24sIEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhLCBSZW5kZXJCb3gqIGdyaWRJdGVtLCBGaWx0
ZXJGdW5jdGlvbiBmaWx0ZXJGdW5jdGlvbiwgU2l6aW5nRnVuY3Rpb24gc2l6aW5nRnVuY3Rpb24s
IEFjY3VtdWxhdG9yR2V0dGVyIHRyYWNrR2V0dGVyLCBBY2N1bXVsYXRvckdyb3dGdW5jdGlvbiB0
cmFja0dyb3d0aEZ1bmN0aW9uKQordm9pZCBSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2Vk
VHJhY2tTaXppbmdGdW5jdGlvbnNGb3JJdGVtcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGly
ZWN0aW9uLCBHcmlkU2l6aW5nRGF0YSYgc2l6aW5nRGF0YSwgUmVuZGVyQm94JiBncmlkSXRlbSwg
RmlsdGVyRnVuY3Rpb24gZmlsdGVyRnVuY3Rpb24sIFNpemluZ0Z1bmN0aW9uIHNpemluZ0Z1bmN0
aW9uLCBBY2N1bXVsYXRvckdldHRlciB0cmFja0dldHRlciwgQWNjdW11bGF0b3JHcm93RnVuY3Rp
b24gdHJhY2tHcm93dGhGdW5jdGlvbikKIHsKICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSBjb29y
ZGluYXRlID0gY2FjaGVkR3JpZENvb3JkaW5hdGUoZ3JpZEl0ZW0pOwogICAgIGNvbnN0IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uIGluaXRpYWxUcmFja1Bvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JD
b2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA6IGNv
b3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKQEAgLTY0NSwxNSArNjQ1LDE1
IEBAIHZvaWQgUmVuZGVyR3JpZDo6ZW5zdXJlR3JpZFNpemUoc2l6ZV90IG1heGltdW1Sb3dJbmRl
eCwgc2l6ZV90IG1heGltdW1Db2x1bW5JbmRlCiAgICAgfQogfQogCi12b2lkIFJlbmRlckdyaWQ6
Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBHcmlkQ29vcmRpbmF0
ZSYgY29vcmRpbmF0ZSkKK3ZvaWQgUmVuZGVyR3JpZDo6aW5zZXJ0SXRlbUludG9HcmlkKFJlbmRl
ckJveCYgY2hpbGQsIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRlKQogewogICAgIGVu
c3VyZUdyaWRTaXplKGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb24udG9JbnQo
KSwgY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbi50b0ludCgpKTsKIAog
ICAgIGZvciAoYXV0byByb3cgOiBjb29yZGluYXRlLnJvd3MpIHsKICAgICAgICAgZm9yIChhdXRv
IGNvbHVtbiA6IGNvb3JkaW5hdGUuY29sdW1ucykKLSAgICAgICAgICAgIG1fZ3JpZFtyb3cudG9J
bnQoKV1bY29sdW1uLnRvSW50KCldLmFwcGVuZChjaGlsZCk7CisgICAgICAgICAgICBtX2dyaWRb
cm93LnRvSW50KCldW2NvbHVtbi50b0ludCgpXS5hcHBlbmQoJmNoaWxkKTsKICAgICB9Ci0gICAg
bV9ncmlkSXRlbUNvb3JkaW5hdGUuc2V0KGNoaWxkLCBjb29yZGluYXRlKTsKKyAgICBtX2dyaWRJ
dGVtQ29vcmRpbmF0ZS5zZXQoJmNoaWxkLCBjb29yZGluYXRlKTsKIH0KIAogdm9pZCBSZW5kZXJH
cmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKQEAgLTY3OCw3ICs2NzgsNyBAQCB2b2lkIFJlbmRlckdy
aWQ6OnBsYWNlSXRlbXNPbkdyaWQoKQogICAgICAgICAgICAgICAgIHNwZWNpZmllZE1ham9yQXhp
c0F1dG9HcmlkSXRlbXMuYXBwZW5kKGNoaWxkKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9Ci0gICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChjaGlsZCwgR3JpZENvb3JkaW5hdGUo
KnJvd1Bvc2l0aW9ucywgKmNvbHVtblBvc2l0aW9ucykpOworICAgICAgICBpbnNlcnRJdGVtSW50
b0dyaWQoKmNoaWxkLCBHcmlkQ29vcmRpbmF0ZSgqcm93UG9zaXRpb25zLCAqY29sdW1uUG9zaXRp
b25zKSk7CiAgICAgfQogCiAgICAgQVNTRVJUKGdyaWRSb3dDb3VudCgpID49IHN0eWxlKCkuZ3Jp
ZFJvd3MoKS5zaXplKCkpOwpAQCAtNzMyLDExICs3MzIsMTEgQEAgdm9pZCBSZW5kZXJHcmlkOjpw
b3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogICAgICAgICBtX2dyaWRbaV0u
Z3JvdyhtYXhpbXVtQ29sdW1uSW5kZXgpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8R3JpZENvb3Jk
aW5hdGU+IFJlbmRlckdyaWQ6OmNyZWF0ZUVtcHR5R3JpZEFyZWFBdFNwZWNpZmllZFBvc2l0aW9u
c091dHNpZGVHcmlkKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0sIEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiBzcGVjaWZpZWREaXJlY3Rpb24sIGNvbnN0IEdyaWRTcGFuJiBzcGVjaWZpZWRQb3Np
dGlvbnMpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IFJlbmRlckdyaWQ6
OmNyZWF0ZUVtcHR5R3JpZEFyZWFBdFNwZWNpZmllZFBvc2l0aW9uc091dHNpZGVHcmlkKGNvbnN0
IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBzcGVjaWZpZWRE
aXJlY3Rpb24sIGNvbnN0IEdyaWRTcGFuJiBzcGVjaWZpZWRQb3NpdGlvbnMpIGNvbnN0CiB7CiAg
ICAgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGNyb3NzRGlyZWN0aW9uID0gc3BlY2lmaWVkRGly
ZWN0aW9uID09IEZvckNvbHVtbnMgPyBGb3JSb3dzIDogRm9yQ29sdW1uczsKICAgICBjb25zdCBz
aXplX3QgZW5kT2ZDcm9zc0RpcmVjdGlvbiA9IGNyb3NzRGlyZWN0aW9uID09IEZvckNvbHVtbnMg
PyBncmlkQ29sdW1uQ291bnQoKSA6IGdyaWRSb3dDb3VudCgpOwotICAgIEdyaWRTcGFuIGNyb3Nz
RGlyZWN0aW9uUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9z
aXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihzdHlsZSgpLCAqZ3JpZEl0ZW0sIGNyb3Nz
RGlyZWN0aW9uLCBHcmlkUmVzb2x2ZWRQb3NpdGlvbihlbmRPZkNyb3NzRGlyZWN0aW9uKSk7Cisg
ICAgR3JpZFNwYW4gY3Jvc3NEaXJlY3Rpb25Qb3NpdGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKHN0eWxlKCks
IGdyaWRJdGVtLCBjcm9zc0RpcmVjdGlvbiwgR3JpZFJlc29sdmVkUG9zaXRpb24oZW5kT2ZDcm9z
c0RpcmVjdGlvbikpOwogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRDb29yZGluYXRl
PihzcGVjaWZpZWREaXJlY3Rpb24gPT0gRm9yQ29sdW1ucyA/IGNyb3NzRGlyZWN0aW9uUG9zaXRp
b25zIDogc3BlY2lmaWVkUG9zaXRpb25zLCBzcGVjaWZpZWREaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cyA/IHNwZWNpZmllZFBvc2l0aW9ucyA6IGNyb3NzRGlyZWN0aW9uUG9zaXRpb25zKTsKIH0KIApA
QCAtNzQ5LDggKzc0OSw4IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4
aXNJdGVtc09uR3JpZChjb25zdCBWZWN0b3I8UmVuZGVyQm94Kj4mIGF1CiAgICAgICAgIEdyaWRJ
dGVyYXRvciBpdGVyYXRvcihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24o
KSwgbWFqb3JBeGlzUG9zaXRpb25zLT5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpKTsK
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0g
aXRlcmF0b3IubmV4dEVtcHR5R3JpZEFyZWEobWFqb3JBeGlzUG9zaXRpb25zLT5pbnRlZ2VyU3Bh
bigpLCBtaW5vckF4aXNQb3NpdGlvbnMuaW50ZWdlclNwYW4oKSk7CiAgICAgICAgIGlmICghZW1w
dHlHcmlkQXJlYSkKLSAgICAgICAgICAgIGVtcHR5R3JpZEFyZWEgPSBjcmVhdGVFbXB0eUdyaWRB
cmVhQXRTcGVjaWZpZWRQb3NpdGlvbnNPdXRzaWRlR3JpZChhdXRvR3JpZEl0ZW0sIGF1dG9QbGFj
ZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgKm1ham9yQXhpc1Bvc2l0aW9ucyk7Ci0gICAgICAg
IGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW0sICplbXB0eUdyaWRBcmVhKTsKKyAgICAg
ICAgICAgIGVtcHR5R3JpZEFyZWEgPSBjcmVhdGVFbXB0eUdyaWRBcmVhQXRTcGVjaWZpZWRQb3Np
dGlvbnNPdXRzaWRlR3JpZCgqYXV0b0dyaWRJdGVtLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGly
ZWN0aW9uKCksICptYWpvckF4aXNQb3NpdGlvbnMpOworICAgICAgICBpbnNlcnRJdGVtSW50b0dy
aWQoKmF1dG9HcmlkSXRlbSwgKmVtcHR5R3JpZEFyZWEpOwogICAgIH0KIH0KIApAQCAtNzYwLDcg
Kzc2MCw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQo
Y29uc3QgVmVjdG9yPFJlbmRlckJveCo+JiBhdXRvR3JpCiAgICAgYm9vbCBpc0dyaWRBdXRvRmxv
d0RlbnNlID0gc3R5bGUoKS5pc0dyaWRBdXRvRmxvd0FsZ29yaXRobURlbnNlKCk7CiAKICAgICBm
b3IgKGF1dG8mIGF1dG9HcmlkSXRlbSA6IGF1dG9HcmlkSXRlbXMpIHsKLSAgICAgICAgcGxhY2VB
dXRvTWFqb3JBeGlzSXRlbU9uR3JpZChhdXRvR3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRDdXJzb3Ip
OworICAgICAgICBwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25HcmlkKCphdXRvR3JpZEl0ZW0sIGF1
dG9QbGFjZW1lbnRDdXJzb3IpOwogCiAgICAgICAgIGlmIChpc0dyaWRBdXRvRmxvd0RlbnNlKSB7
CiAgICAgICAgICAgICBhdXRvUGxhY2VtZW50Q3Vyc29yLmZpcnN0ID0gMDsKQEAgLTc2OSwxMSAr
NzY5LDExIEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQo
Y29uc3QgVmVjdG9yPFJlbmRlckJveCo+JiBhdXRvR3JpCiAgICAgfQogfQogCi12b2lkIFJlbmRl
ckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94KiBncmlkSXRlbSwg
QXV0b1BsYWNlbWVudEN1cnNvciYgYXV0b1BsYWNlbWVudEN1cnNvcikKK3ZvaWQgUmVuZGVyR3Jp
ZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZChSZW5kZXJCb3gmIGdyaWRJdGVtLCBBdXRv
UGxhY2VtZW50Q3Vyc29yJiBhdXRvUGxhY2VtZW50Q3Vyc29yKQogewotICAgIHN0ZDo6dW5pcXVl
X3B0cjxHcmlkU3Bhbj4gbWlub3JBeGlzUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246
OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpncmlkSXRlbSwgYXV0b1Bs
YWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpKTsKLSAgICBBU1NFUlQoIUdyaWRSZXNvbHZlZFBv
c2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqZ3JpZEl0ZW0s
IGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSkpOwotICAgIEdyaWRTcGFuIG1ham9y
QXhpc1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9u
c0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oc3R5bGUoKSwgKmdyaWRJdGVtLCBhdXRvUGxhY2Vt
ZW50TWFqb3JBeGlzRGlyZWN0aW9uKCksIEdyaWRSZXNvbHZlZFBvc2l0aW9uKDApKTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IG1pbm9yQXhpc1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZl
ZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCBncmlkSXRl
bSwgYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpKTsKKyAgICBBU1NFUlQoIUdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCBn
cmlkSXRlbSwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKSk7CisgICAgR3JpZFNw
YW4gbWFqb3JBeGlzUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlk
UG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihzdHlsZSgpLCBncmlkSXRlbSwgYXV0
b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpLCBHcmlkUmVzb2x2ZWRQb3NpdGlvbigwKSk7
CiAKICAgICBjb25zdCBzaXplX3QgZW5kT2ZNYWpvckF4aXMgPSAoYXV0b1BsYWNlbWVudE1ham9y
QXhpc0RpcmVjdGlvbigpID09IEZvckNvbHVtbnMpID8gZ3JpZENvbHVtbkNvdW50KCkgOiBncmlk
Um93Q291bnQoKTsKICAgICBzaXplX3QgbWFqb3JBeGlzQXV0b1BsYWNlbWVudEN1cnNvciA9IGF1
dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSA9PSBGb3JDb2x1bW5zID8gYXV0b1BsYWNl
bWVudEN1cnNvci5zZWNvbmQgOiBhdXRvUGxhY2VtZW50Q3Vyc29yLmZpcnN0OwpAQCAtNzkzLDcg
Kzc5Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZChS
ZW5kZXJCb3gqIGdyaWRJdGVtLCBBdXRvUGxhY2VtZW50CiAgICAgICAgIGlmICghZW1wdHlHcmlk
QXJlYSkKICAgICAgICAgICAgIGVtcHR5R3JpZEFyZWEgPSBjcmVhdGVFbXB0eUdyaWRBcmVhQXRT
cGVjaWZpZWRQb3NpdGlvbnNPdXRzaWRlR3JpZChncmlkSXRlbSwgYXV0b1BsYWNlbWVudE1pbm9y
QXhpc0RpcmVjdGlvbigpLCAqbWlub3JBeGlzUG9zaXRpb25zKTsKICAgICB9IGVsc2UgewotICAg
ICAgICBHcmlkU3BhbiBtaW5vckF4aXNQb3NpdGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKHN0eWxlKCksICpn
cmlkSXRlbSwgYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpLCBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbigwKSk7CisgICAgICAgIEdyaWRTcGFuIG1pbm9yQXhpc1Bvc2l0aW9ucyA9IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9z
aXRpb24oc3R5bGUoKSwgZ3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24o
KSwgR3JpZFJlc29sdmVkUG9zaXRpb24oMCkpOwogCiAgICAgICAgIGZvciAoc2l6ZV90IG1ham9y
QXhpc0luZGV4ID0gbWFqb3JBeGlzQXV0b1BsYWNlbWVudEN1cnNvcjsgbWFqb3JBeGlzSW5kZXgg
PCBlbmRPZk1ham9yQXhpczsgKyttYWpvckF4aXNJbmRleCkgewogICAgICAgICAgICAgR3JpZEl0
ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigp
LCBtYWpvckF4aXNJbmRleCwgbWlub3JBeGlzQXV0b1BsYWNlbWVudEN1cnNvcik7CkBAIC04NTgs
OCArODU4LDggQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogICAgICAgICBM
YXlvdXRVbml0IG9sZE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCA9
IGNoaWxkLT5oYXNPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aCgpID8gY2hpbGQt
Pm92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCgpIDogTGF5b3V0VW5p
dCgpOwogICAgICAgICBMYXlvdXRVbml0IG9sZE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVu
dExvZ2ljYWxIZWlnaHQgPSBjaGlsZC0+aGFzT3ZlcnJpZGVDb250YWluaW5nQmxvY2tMb2dpY2Fs
SGVpZ2h0KCkgPyBjaGlsZC0+b3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhl
aWdodCgpIDogTGF5b3V0VW5pdCgpOwogCi0gICAgICAgIExheW91dFVuaXQgb3ZlcnJpZGVDb250
YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoID0gZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQo
Y2hpbGQsIEZvckNvbHVtbnMsIHNpemluZ0RhdGEuY29sdW1uVHJhY2tzKTsKLSAgICAgICAgTGF5
b3V0VW5pdCBvdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0ID0gZ3Jp
ZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY2hpbGQsIEZvclJvd3MsIHNpemluZ0RhdGEucm93VHJhY2tz
KTsKKyAgICAgICAgTGF5b3V0VW5pdCBvdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dp
Y2FsV2lkdGggPSBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZCgqY2hpbGQsIEZvckNvbHVtbnMsIHNp
emluZ0RhdGEuY29sdW1uVHJhY2tzKTsKKyAgICAgICAgTGF5b3V0VW5pdCBvdmVycmlkZUNvbnRh
aW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0ID0gZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQo
KmNoaWxkLCBGb3JSb3dzLCBzaXppbmdEYXRhLnJvd1RyYWNrcyk7CiAgICAgICAgIGlmIChvbGRP
dmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGggIT0gb3ZlcnJpZGVDb250
YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoIHx8IChvbGRPdmVycmlkZUNvbnRhaW5pbmdC
bG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0ICE9IG92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVu
dExvZ2ljYWxIZWlnaHQgJiYgY2hpbGQtPmhhc1JlbGF0aXZlTG9naWNhbEhlaWdodCgpKSkKICAg
ICAgICAgICAgIGNoaWxkLT5zZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOwogCkBAIC04NzMs
NyArODczLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogICAgICAgICAv
LyBub3csIGp1c3Qgc2l6ZSBhcyBpZiB3ZSB3ZXJlIGEgcmVndWxhciBjaGlsZC4KICAgICAgICAg
Y2hpbGQtPmxheW91dElmTmVlZGVkKCk7CiAKLSAgICAgICAgY2hpbGQtPnNldExvZ2ljYWxMb2Nh
dGlvbihmaW5kQ2hpbGRMb2dpY2FsUG9zaXRpb24oY2hpbGQsIHNpemluZ0RhdGEpKTsKKyAgICAg
ICAgY2hpbGQtPnNldExvZ2ljYWxMb2NhdGlvbihmaW5kQ2hpbGRMb2dpY2FsUG9zaXRpb24oKmNo
aWxkLCBzaXppbmdEYXRhKSk7CiAKICAgICAgICAgLy8gSWYgdGhlIGNoaWxkIG1vdmVkLCB3ZSBo
YXZlIHRvIHJlcGFpbnQgaXQgYXMgd2VsbCBhcyBhbnkgZmxvYXRpbmcvcG9zaXRpb25lZAogICAg
ICAgICAvLyBkZXNjZW5kYW50cy4gQW4gZXhjZXB0aW9uIGlzIGlmIHdlIG5lZWQgYSBsYXlvdXQu
IEluIHRoaXMgY2FzZSwgd2Uga25vdyB3ZSdyZSBnb2luZyB0bwpAQCAtODkwLDEzICs4OTAsMTMg
QEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogICAgIGNsZWFyR3JpZCgpOwog
fQogCi1HcmlkQ29vcmRpbmF0ZSBSZW5kZXJHcmlkOjpjYWNoZWRHcmlkQ29vcmRpbmF0ZShjb25z
dCBSZW5kZXJCb3gqIGdyaWRJdGVtKSBjb25zdAorR3JpZENvb3JkaW5hdGUgUmVuZGVyR3JpZDo6
Y2FjaGVkR3JpZENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSkgY29uc3QKIHsK
LSAgICBBU1NFUlQobV9ncmlkSXRlbUNvb3JkaW5hdGUuY29udGFpbnMoZ3JpZEl0ZW0pKTsKLSAg
ICByZXR1cm4gbV9ncmlkSXRlbUNvb3JkaW5hdGUuZ2V0KGdyaWRJdGVtKTsKKyAgICBBU1NFUlQo
bV9ncmlkSXRlbUNvb3JkaW5hdGUuY29udGFpbnMoJmdyaWRJdGVtKSk7CisgICAgcmV0dXJuIG1f
Z3JpZEl0ZW1Db29yZGluYXRlLmdldCgmZ3JpZEl0ZW0pOwogfQogCi1MYXlvdXRVbml0IFJlbmRl
ckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCogY2hpbGQsIEdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2s+
JiB0cmFja3MpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZv
ckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBk
aXJlY3Rpb24sIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2s+JiB0cmFja3MpIGNvbnN0CiB7CiAgICAg
Y29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShj
aGlsZCk7CiAgICAgY29uc3QgR3JpZFNwYW4mIHNwYW4gPSAoZGlyZWN0aW9uID09IEZvckNvbHVt
bnMpID8gY29vcmRpbmF0ZS5jb2x1bW5zIDogY29vcmRpbmF0ZS5yb3dzOwpAQCAtOTE5LDE0ICs5
MTksMTQgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUdyaWRQb3NpdGlvbnMoY29uc3QgR3Jp
ZFNpemluZ0RhdGEmIHNpemluZ0RhdGEpCiAgICAgICAgIG1fcm93UG9zaXRpb25zW2kgKyAxXSA9
IG1fcm93UG9zaXRpb25zW2ldICsgc2l6aW5nRGF0YS5yb3dUcmFja3NbaV0ubV91c2VkQnJlYWR0
aDsKIH0KIAotTGF5b3V0UG9pbnQgUmVuZGVyR3JpZDo6ZmluZENoaWxkTG9naWNhbFBvc2l0aW9u
KFJlbmRlckJveCogY2hpbGQsIGNvbnN0IEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhKQorTGF5
b3V0UG9pbnQgUmVuZGVyR3JpZDo6ZmluZENoaWxkTG9naWNhbFBvc2l0aW9uKFJlbmRlckJveCYg
Y2hpbGQsIGNvbnN0IEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhKQogewogICAgIGNvbnN0IEdy
aWRDb29yZGluYXRlJiBjb29yZGluYXRlID0gY2FjaGVkR3JpZENvb3JkaW5hdGUoY2hpbGQpOwog
ICAgIEFTU0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPCBzaXppbmdEYXRhLmNvbHVtblRyYWNrcy5zaXplKCkp
OwogICAgIEFTU0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPCBzaXppbmdEYXRhLnJvd1RyYWNrcy5zaXplKCkpOwog
CiAgICAgLy8gVGhlIGdyaWQgaXRlbXMgc2hvdWxkIGJlIGluc2lkZSB0aGUgZ3JpZCBjb250YWlu
ZXIncyBib3JkZXIgYm94LCB0aGF0J3Mgd2h5IHRoZXkgbmVlZCB0byBiZSBzaGlmdGVkLgotICAg
IHJldHVybiBMYXlvdXRQb2ludChtX2NvbHVtblBvc2l0aW9uc1tjb29yZGluYXRlLmNvbHVtbnMu
cmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKV0gKyBtYXJnaW5TdGFydEZvckNoaWxkKCpj
aGlsZCksIG1fcm93UG9zaXRpb25zW2Nvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3Np
dGlvbi50b0ludCgpXSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKCpjaGlsZCkpOworICAgIHJldHVy
biBMYXlvdXRQb2ludChtX2NvbHVtblBvc2l0aW9uc1tjb29yZGluYXRlLmNvbHVtbnMucmVzb2x2
ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKV0gKyBtYXJnaW5TdGFydEZvckNoaWxkKGNoaWxkKSwg
bV9yb3dQb3NpdGlvbnNbY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRv
SW50KCldICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGQpKTsKIH0KIAogdm9pZCBSZW5kZXJH
cmlkOjpwYWludENoaWxkcmVuKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggOTgyNjc4ZTBjZGJmZDQ1N2Nl
ZDQzYjc3N2UwOTBiY2RhZGY1YWExMS4uOTBmM2QwZjllZDk5YjQwYWNkMzc4YTVhYmQ4NTgyNjli
N2FlOWY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC03MSwxNCAr
NzEsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc29sdmVDb250ZW50QmFzZWRUcmFja1Npemlu
Z0Z1bmN0aW9ucyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIEdyaWRTaXppbmdEYXRhJik7CiAK
ICAgICB2b2lkIGVuc3VyZUdyaWRTaXplKHNpemVfdCBtYXhpbXVtUm93SW5kZXgsIHNpemVfdCBt
YXhpbXVtQ29sdW1uSW5kZXgpOwotICAgIHZvaWQgaW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJv
eCosIGNvbnN0IEdyaWRDb29yZGluYXRlJik7CisgICAgdm9pZCBpbnNlcnRJdGVtSW50b0dyaWQo
UmVuZGVyQm94JiwgY29uc3QgR3JpZENvb3JkaW5hdGUmKTsKICAgICB2b2lkIHBsYWNlSXRlbXNP
bkdyaWQoKTsKICAgICB2b2lkIHBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigp
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4gY3JlYXRlRW1wdHlHcmlkQXJl
YUF0U3BlY2lmaWVkUG9zaXRpb25zT3V0c2lkZUdyaWQoY29uc3QgUmVuZGVyQm94KiwgR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBHcmlkU3BhbiYpIGNvbnN0OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4gY3JlYXRlRW1wdHlHcmlkQXJlYUF0U3BlY2lmaWVkUG9z
aXRpb25zT3V0c2lkZUdyaWQoY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uLCBjb25zdCBHcmlkU3BhbiYpIGNvbnN0OwogICAgIHZvaWQgcGxhY2VTcGVjaWZpZWRNYWpv
ckF4aXNJdGVtc09uR3JpZChjb25zdCBWZWN0b3I8UmVuZGVyQm94Kj4mKTsKICAgICB2b2lkIHBs
YWNlQXV0b01ham9yQXhpc0l0ZW1zT25HcmlkKGNvbnN0IFZlY3RvcjxSZW5kZXJCb3gqPiYpOwog
ICAgIHR5cGVkZWYgc3RkOjpwYWlyPHNpemVfdCwgc2l6ZV90PiBBdXRvUGxhY2VtZW50Q3Vyc29y
OwotICAgIHZvaWQgcGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZChSZW5kZXJCb3gqLCBBdXRv
UGxhY2VtZW50Q3Vyc29yJik7CisgICAgdm9pZCBwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25Hcmlk
KFJlbmRlckJveCYsIEF1dG9QbGFjZW1lbnRDdXJzb3ImKTsKICAgICBHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24gYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpIGNvbnN0OwogICAgIEdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiBhdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCkg
Y29uc3Q7CiAKQEAgLTg2LDI0ICs4NiwyNCBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9wdWxhdGVH
cmlkUG9zaXRpb25zKGNvbnN0IEdyaWRTaXppbmdEYXRhJik7CiAgICAgdm9pZCBjbGVhckdyaWQo
KTsKIAotICAgIHR5cGVkZWYgTGF5b3V0VW5pdCAoUmVuZGVyR3JpZDo6KiBTaXppbmdGdW5jdGlv
bikoUmVuZGVyQm94KiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBWZWN0b3I8R3JpZFRyYWNr
PiYpOworICAgIHR5cGVkZWYgTGF5b3V0VW5pdCAoUmVuZGVyR3JpZDo6KiBTaXppbmdGdW5jdGlv
bikoUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBWZWN0b3I8R3JpZFRyYWNr
PiYpOwogICAgIHR5cGVkZWYgTGF5b3V0VW5pdCAoR3JpZFRyYWNrOjoqIEFjY3VtdWxhdG9yR2V0
dGVyKSgpIGNvbnN0OwogICAgIHR5cGVkZWYgdm9pZCAoR3JpZFRyYWNrOjoqIEFjY3VtdWxhdG9y
R3Jvd0Z1bmN0aW9uKShMYXlvdXRVbml0KTsKICAgICB0eXBlZGVmIGJvb2wgKEdyaWRUcmFja1Np
emU6OiogRmlsdGVyRnVuY3Rpb24pKCkgY29uc3Q7Ci0gICAgdm9pZCByZXNvbHZlQ29udGVudEJh
c2VkVHJhY2tTaXppbmdGdW5jdGlvbnNGb3JJdGVtcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24s
IEdyaWRTaXppbmdEYXRhJiwgUmVuZGVyQm94KiwgRmlsdGVyRnVuY3Rpb24sIFNpemluZ0Z1bmN0
aW9uLCBBY2N1bXVsYXRvckdldHRlciwgQWNjdW11bGF0b3JHcm93RnVuY3Rpb24pOworICAgIHZv
aWQgcmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uLCBHcmlkU2l6aW5nRGF0YSYsIFJlbmRlckJveCYsIEZpbHRlckZ1
bmN0aW9uLCBTaXppbmdGdW5jdGlvbiwgQWNjdW11bGF0b3JHZXR0ZXIsIEFjY3VtdWxhdG9yR3Jv
d0Z1bmN0aW9uKTsKICAgICB2b2lkIGRpc3RyaWJ1dGVTcGFjZVRvVHJhY2tzKFZlY3RvcjxHcmlk
VHJhY2sqPiYsIFZlY3RvcjxHcmlkVHJhY2sqPiogdHJhY2tzRm9yR3Jvd3RoQWJvdmVNYXhCcmVh
ZHRoLCBBY2N1bXVsYXRvckdldHRlciwgQWNjdW11bGF0b3JHcm93RnVuY3Rpb24sIEdyaWRTaXpp
bmdEYXRhJiwgTGF5b3V0VW5pdCYgYXZhaWxhYmxlTG9naWNhbFNwYWNlKTsKIAogICAgIGRvdWJs
ZSBjb21wdXRlTm9ybWFsaXplZEZyYWN0aW9uQnJlYWR0aChWZWN0b3I8R3JpZFRyYWNrPiYsIGNv
bnN0IEdyaWRTcGFuJiB0cmFja3NTcGFuLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIExheW91
dFVuaXQgYXZhaWxhYmxlTG9naWNhbFNwYWNlKSBjb25zdDsKIAogICAgIGNvbnN0IEdyaWRUcmFj
a1NpemUmIGdyaWRUcmFja1NpemUoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBzaXplX3QpIGNv
bnN0OwogCi0gICAgTGF5b3V0VW5pdCBsb2dpY2FsQ29udGVudEhlaWdodEZvckNoaWxkKFJlbmRl
ckJveCosIFZlY3RvcjxHcmlkVHJhY2s+Jik7Ci0gICAgTGF5b3V0VW5pdCBtaW5Db250ZW50Rm9y
Q2hpbGQoUmVuZGVyQm94KiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBWZWN0b3I8R3JpZFRy
YWNrPiYgY29sdW1uVHJhY2tzKTsKLSAgICBMYXlvdXRVbml0IG1heENvbnRlbnRGb3JDaGlsZChS
ZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIFZlY3RvcjxHcmlkVHJhY2s+JiBj
b2x1bW5UcmFja3MpOwotICAgIExheW91dFBvaW50IGZpbmRDaGlsZExvZ2ljYWxQb3NpdGlvbihS
ZW5kZXJCb3gqLCBjb25zdCBHcmlkU2l6aW5nRGF0YSYpOwotICAgIEdyaWRDb29yZGluYXRlIGNh
Y2hlZEdyaWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCopIGNvbnN0OworICAgIExheW91dFVu
aXQgbG9naWNhbENvbnRlbnRIZWlnaHRGb3JDaGlsZChSZW5kZXJCb3gmLCBWZWN0b3I8R3JpZFRy
YWNrPiYpOworICAgIExheW91dFVuaXQgbWluQ29udGVudEZvckNoaWxkKFJlbmRlckJveCYsIEdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiwgVmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVtblRyYWNrcyk7
CisgICAgTGF5b3V0VW5pdCBtYXhDb250ZW50Rm9yQ2hpbGQoUmVuZGVyQm94JiwgR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uLCBWZWN0b3I8R3JpZFRyYWNrPiYgY29sdW1uVHJhY2tzKTsKKyAgICBM
YXlvdXRQb2ludCBmaW5kQ2hpbGRMb2dpY2FsUG9zaXRpb24oUmVuZGVyQm94JiwgY29uc3QgR3Jp
ZFNpemluZ0RhdGEmKTsKKyAgICBHcmlkQ29vcmRpbmF0ZSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShj
b25zdCBSZW5kZXJCb3gmKSBjb25zdDsKIAotICAgIExheW91dFVuaXQgZ3JpZEFyZWFCcmVhZHRo
Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
LCBjb25zdCBWZWN0b3I8R3JpZFRyYWNrPiYpIGNvbnN0OworICAgIExheW91dFVuaXQgZ3JpZEFy
ZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uLCBjb25zdCBWZWN0b3I8R3JpZFRyYWNrPiYpIGNvbnN0OwogCiAgICAgdmlydHVh
bCB2b2lkIHBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KSBv
dmVycmlkZSBmaW5hbDsKIAo=
</data>
<flag name="review"
          id="262516"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>