<?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>204563</bug_id>
          
          <creation_ts>2019-11-24 19:50:37 -0800</creation_ts>
          <short_desc>[LFC] Pass UsedHorizontal/VerticalValues in by const reference</short_desc>
          <delta_ts>2019-11-25 08:19:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1593314</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-24 19:50:37 -0800</bug_when>
    <thetext>and not by value. They&apos;ve put on some bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593316</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-24 19:50:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/57464129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593319</commentid>
    <comment_count>2</comment_count>
      <attachid>384267</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-24 20:01:59 -0800</bug_when>
    <thetext>Created attachment 384267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593444</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-25 08:19:48 -0800</bug_when>
    <thetext>Committed r252862: &lt;https://trac.webkit.org/changeset/252862&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384267</attachid>
            <date>2019-11-24 20:01:59 -0800</date>
            <delta_ts>2019-11-25 07:13:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204563-20191124200132.patch</filename>
            <type>text/plain</type>
            <size>48017</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFlNmVjZTE1ZDBjYjQx
OGRhYjlhYjJkN2RjNzM5ZjZmODY0OTA0Zi4uODlkYmM0N2UxOWM3YTI0MjVmMDNmOTczYTkwNmJj
NTZiOTNmMDA2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE5LTExLTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUGFzcyBVc2VkSG9y
aXpvbnRhbC9WZXJ0aWNhbFZhbHVlcyBpbiBieSBjb25zdCByZWZlcmVuY2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDU2MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNTc0NjQxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXNlZEhvcml6b250YWwvVmVydGljYWxWYWx1ZXMgaGF2ZSBncm93biBh
IGJpdCBzbyBsZXQncyBwYXNzIHRoZW0gaW4gYnkgcmVmZXJlbmNlLgorCisgICAgICAgICogbGF5
b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OnN0YXRpY1ZlcnRpY2FsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlv
bmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpzdGF0aWNIb3Jpem9udGFsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9m
Rmxvd05vblJlcGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRp
Y2FsR2VvbWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5Ojpjb21wbGljYXRlZENhc2VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ05vblJlcGxhY2VkV2lkdGhBbmRN
YXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmZsb2F0aW5nUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nUmVw
bGFjZWRXaWR0aEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6b3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ0hlaWdodEFuZE1hcmdpbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6ZmxvYXRpbmdXaWR0aEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRIZWlnaHRBbmRNYXJn
aW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd1Bvc2l0
aW9uZWRQb3NpdGlvbk9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRQYWRkaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRl
ZEhvcml6b250YWxNYXJnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkVmVydGljYWxNYXJnaW4gY29uc3QpOgor
ICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5o
OgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4
dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OmluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93UmVwbGFj
ZWRXaWR0aEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OnN0YXRpY0hvcml6b250YWxQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNQb3NpdGlv
biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5OjppbkZsb3dIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93V2lkdGhBbmRN
YXJnaW4pOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQ6OmxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIb3Jpem9u
dGFsQW5kVmVydGljYWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlSW50cmluc2ljV2lkdGhGb3JGb3JtYXR0aW5nUm9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSG9yaXpvbnRhbE1h
cmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRI
ZWlnaHRGb3JSZXBsYWNlZElubGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Oklu
bGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb25zdHJhaW50c0ZvckxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6c2V0RGlzcGxheUJveGVzRm9y
TGluZSk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVCbG9ja1dpZHRoQW5kTWFyZ2lu
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjppbmxpbmVCbG9ja0hlaWdodEFuZE1hcmdpbiBjb25zdCk6CisKIDIwMTktMTEtMjQg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIENv
bnN0cnVjdCBvbmx5IG9uZSBMaW5lTGF5b3V0IG9iamVjdCBwZXIgaW5saW5lIGZvcm1hdHRpbmcg
Y29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCA3
Mjk1N2Y0OGE5NGQ1ZGNjNGEzMTFiZTc1NzIwYWJkMjQ3YWJjNzczLi5mNGU2MTc3NTIzZmRjMWQ1
OTQ0OWU3MWJkOTZjYmQyZTUwZmExYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0
dGluZ0NvbnRleHQuaApAQCAtMTA5LDI1ICsxMDksMjUgQEAgcHJvdGVjdGVkOgogICAgIC8vIFRo
aXMgY2xhc3MgaW1wbGVtZW50cyBnZW5lcmljIHBvc2l0aW9uaW5nIGFuZCBzaXppbmcuCiAgICAg
Y2xhc3MgR2VvbWV0cnkgewogICAgIHB1YmxpYzoKLSAgICAgICAgVmVydGljYWxHZW9tZXRyeSBv
dXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVz
LCBVc2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0OwotICAgICAgICBIb3Jpem9udGFsR2VvbWV0cnkg
b3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFs
dWVzLCBVc2VkVmVydGljYWxWYWx1ZXMpOworICAgICAgICBWZXJ0aWNhbEdlb21ldHJ5IG91dE9m
Rmxvd1ZlcnRpY2FsR2VvbWV0cnkoY29uc3QgQm94JiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1
ZXMmLCBjb25zdCBVc2VkVmVydGljYWxWYWx1ZXMmKSBjb25zdDsKKyAgICAgICAgSG9yaXpvbnRh
bEdlb21ldHJ5IG91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBV
c2VkSG9yaXpvbnRhbFZhbHVlcyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYpOwogCi0gICAg
ICAgIENvbnRlbnRIZWlnaHRBbmRNYXJnaW4gZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4oY29uc3Qg
Qm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3Q7Ci0g
ICAgICAgIENvbnRlbnRXaWR0aEFuZE1hcmdpbiBmbG9hdGluZ1dpZHRoQW5kTWFyZ2luKGNvbnN0
IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzKTsKKyAgICAgICAgQ29udGVudEhlaWdodEFuZE1h
cmdpbiBmbG9hdGluZ0hlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBVc2VkSG9yaXpv
bnRhbFZhbHVlcyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYpIGNvbnN0OworICAgICAgICBD
b250ZW50V2lkdGhBbmRNYXJnaW4gZmxvYXRpbmdXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBj
b25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYpOwogCi0gICAgICAgIENvbnRlbnRIZWlnaHRBbmRN
YXJnaW4gaW5saW5lUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiwgVXNlZEhvcml6
b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3Q7Ci0gICAgICAgIENvbnRlbnRX
aWR0aEFuZE1hcmdpbiBpbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYsIFVz
ZWRIb3Jpem9udGFsVmFsdWVzLCBPcHRpb25hbDxVc2VkVmVydGljYWxWYWx1ZXM+ID0gV1RGOjpu
dWxsb3B0KSBjb25zdDsKKyAgICAgICAgQ29udGVudEhlaWdodEFuZE1hcmdpbiBpbmxpbmVSZXBs
YWNlZEhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVl
cyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYpIGNvbnN0OworICAgICAgICBDb250ZW50V2lk
dGhBbmRNYXJnaW4gaW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25z
dCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYsIE9wdGlvbmFsPFVzZWRWZXJ0aWNhbFZhbHVlcz4gPSBX
VEY6Om51bGxvcHQpIGNvbnN0OwogCi0gICAgICAgIExheW91dFNpemUgaW5GbG93UG9zaXRpb25l
ZFBvc2l0aW9uT2Zmc2V0KGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzKSBjb25zdDsK
KyAgICAgICAgTGF5b3V0U2l6ZSBpbkZsb3dQb3NpdGlvbmVkUG9zaXRpb25PZmZzZXQoY29uc3Qg
Qm94JiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmKSBjb25zdDsKIAotICAgICAgICBDb250
ZW50SGVpZ2h0QW5kTWFyZ2luIGNvbXBsaWNhdGVkQ2FzZXMoY29uc3QgQm94JiwgVXNlZEhvcml6
b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3Q7CisgICAgICAgIENvbnRlbnRI
ZWlnaHRBbmRNYXJnaW4gY29tcGxpY2F0ZWRDYXNlcyhjb25zdCBCb3gmLCBjb25zdCBVc2VkSG9y
aXpvbnRhbFZhbHVlcyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYpIGNvbnN0OwogICAgICAg
ICBMYXlvdXRVbml0IHNocmlua1RvRml0V2lkdGgoY29uc3QgQm94JiwgTGF5b3V0VW5pdCBhdmFp
bGFibGVXaWR0aCk7CiAKICAgICAgICAgRWRnZXMgY29tcHV0ZWRCb3JkZXIoY29uc3QgQm94Jikg
Y29uc3Q7Ci0gICAgICAgIE9wdGlvbmFsPEVkZ2VzPiBjb21wdXRlZFBhZGRpbmcoY29uc3QgQm94
JiwgVXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0OworICAgICAgICBPcHRpb25hbDxFZGdlcz4g
Y29tcHV0ZWRQYWRkaW5nKGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJikg
Y29uc3Q7CiAKLSAgICAgICAgQ29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luIGNvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbihjb25zdCBCb3gmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcykgY29uc3Q7Ci0gICAg
ICAgIENvbXB1dGVkVmVydGljYWxNYXJnaW4gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbihjb25zdCBC
b3gmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcykgY29uc3Q7CisgICAgICAgIENvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbiBjb21wdXRlZEhvcml6b250YWxNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgVXNl
ZEhvcml6b250YWxWYWx1ZXMmKSBjb25zdDsKKyAgICAgICAgQ29tcHV0ZWRWZXJ0aWNhbE1hcmdp
biBjb21wdXRlZFZlcnRpY2FsTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9udGFs
VmFsdWVzJikgY29uc3Q7CiAKICAgICAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gY29tcHV0ZWRW
YWx1ZUlmTm90QXV0byhjb25zdCBMZW5ndGgmIGdlb21ldHJ5UHJvcGVydHksIExheW91dFVuaXQg
Y29udGFpbmluZ0Jsb2NrV2lkdGgpIGNvbnN0OwogICAgICAgICBPcHRpb25hbDxMYXlvdXRVbml0
PiBmaXhlZFZhbHVlKGNvbnN0IExlbmd0aCYgZ2VvbWV0cnlQcm9wZXJ0eSkgY29uc3Q7CkBAIC0x
NTYsMTkgKzE1NiwxOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0IEZvcm1hdHRpbmdDb250
ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9ybWF0dGluZ0NvbnRl
eHQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFZlcnRpY2FsR2VvbWV0cnkgb3V0T2ZGbG93
UmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVz
LCBVc2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0OwotICAgICAgICBIb3Jpem9udGFsR2VvbWV0cnkg
b3V0T2ZGbG93UmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkoY29uc3QgQm94JiwgVXNlZEhvcml6
b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3Q7CisgICAgICAgIFZlcnRpY2Fs
R2VvbWV0cnkgb3V0T2ZGbG93UmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYsIGNv
bnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJiwgY29uc3QgVXNlZFZlcnRpY2FsVmFsdWVzJikgY29u
c3Q7CisgICAgICAgIEhvcml6b250YWxHZW9tZXRyeSBvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250
YWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYsIGNvbnN0
IFVzZWRWZXJ0aWNhbFZhbHVlcyYpIGNvbnN0OwogCi0gICAgICAgIFZlcnRpY2FsR2VvbWV0cnkg
b3V0T2ZGbG93Tm9uUmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYsIFVzZWRIb3Jp
em9udGFsVmFsdWVzLCBVc2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0OwotICAgICAgICBIb3Jpem9u
dGFsR2VvbWV0cnkgb3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkoY29uc3Qg
Qm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMpOworICAgICAgICBWZXJ0aWNhbEdlb21ldHJ5IG91
dE9mRmxvd05vblJlcGxhY2VkVmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBVc2Vk
SG9yaXpvbnRhbFZhbHVlcyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYpIGNvbnN0OworICAg
ICAgICBIb3Jpem9udGFsR2VvbWV0cnkgb3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2Vv
bWV0cnkoY29uc3QgQm94JiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmKTsKIAotICAgICAg
ICBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIGZsb2F0aW5nUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4o
Y29uc3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcykgY29u
c3Q7Ci0gICAgICAgIENvbnRlbnRXaWR0aEFuZE1hcmdpbiBmbG9hdGluZ1JlcGxhY2VkV2lkdGhB
bmRNYXJnaW4oY29uc3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0OworICAgICAg
ICBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIGZsb2F0aW5nUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4o
Y29uc3QgQm94JiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmLCBjb25zdCBVc2VkVmVydGlj
YWxWYWx1ZXMmKSBjb25zdDsKKyAgICAgICAgQ29udGVudFdpZHRoQW5kTWFyZ2luIGZsb2F0aW5n
UmVwbGFjZWRXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBVc2VkSG9yaXpvbnRhbFZh
bHVlcyYpIGNvbnN0OwogCi0gICAgICAgIENvbnRlbnRXaWR0aEFuZE1hcmdpbiBmbG9hdGluZ05v
blJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMp
OworICAgICAgICBDb250ZW50V2lkdGhBbmRNYXJnaW4gZmxvYXRpbmdOb25SZXBsYWNlZFdpZHRo
QW5kTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJik7CiAKLSAg
ICAgICAgTGF5b3V0VW5pdCBzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uRm9yT3V0T2ZGbG93UG9zaXRp
b25lZChjb25zdCBCb3gmLCBVc2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0OwotICAgICAgICBMYXlv
dXRVbml0IHN0YXRpY0hvcml6b250YWxQb3NpdGlvbkZvck91dE9mRmxvd1Bvc2l0aW9uZWQoY29u
c3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0OworICAgICAgICBMYXlvdXRVbml0
IHN0YXRpY1ZlcnRpY2FsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IEJveCYs
IGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYpIGNvbnN0OworICAgICAgICBMYXlvdXRVbml0IHN0
YXRpY0hvcml6b250YWxQb3NpdGlvbkZvck91dE9mRmxvd1Bvc2l0aW9uZWQoY29uc3QgQm94Jiwg
Y29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmKSBjb25zdDsKIAogICAgICAgICBjb25zdCBGb3Jt
YXR0aW5nQ29udGV4dCYgbV9mb3JtYXR0aW5nQ29udGV4dDsKICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IDEz
MDYyMDE5MzVkYWNkZDBiYjAxNjg5OWY2NzcxZWI5M2RjMWRlMjguLmZkODc0YjkyMDc2NWZhYjU2
NWVkOGRmMDQwZjI0MGE4MGM2NmIwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCBPcHRp
b25hbDxMYXlvdXRVbml0PiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkTWF4
V2lkdGgoY29uc3QgQm94JiBsYQogICAgIHJldHVybiBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKGxh
eW91dEJveC5zdHlsZSgpLmxvZ2ljYWxNYXhXaWR0aCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7
CiB9CiAKLUxheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNWZXJ0
aWNhbFBvc2l0aW9uRm9yT3V0T2ZGbG93UG9zaXRpb25lZChjb25zdCBCb3gmIGxheW91dEJveCwg
VXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3QKK0xheW91dFVuaXQg
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uRm9yT3V0
T2ZGbG93UG9zaXRpb25lZChjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVXNlZFZlcnRpY2Fs
VmFsdWVzJiB1c2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJv
eC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CiAKQEAgLTI0Nyw3ICsyNDcsNyBAQCBMYXlvdXRV
bml0IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c3RhdGljVmVydGljYWxQb3NpdGlvbkZv
ck91dE9mRmxvd1Bvc2l0aQogICAgIHJldHVybiB0b3AgLSB1c2VkVmVydGljYWxWYWx1ZXMuY29u
c3RyYWludHMuY29udGVudEJveFRvcDsKIH0KIAotTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6OnN0YXRpY0hvcml6b250YWxQb3NpdGlvbkZvck91dE9mRmxvd1Bvc2l0aW9u
ZWQoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9u
dGFsVmFsdWVzKSBjb25zdAorTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OnN0YXRpY0hvcml6b250YWxQb3NpdGlvbkZvck91dE9mRmxvd1Bvc2l0aW9uZWQoY29uc3QgQm94
JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJiB1c2VkSG9yaXpvbnRhbFZh
bHVlcykgY29uc3QKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25l
ZCgpKTsKICAgICAvLyBTZWUgc3RhdGljVmVydGljYWxQb3NpdGlvbkZvck91dE9mRmxvd1Bvc2l0
aW9uZWQgZm9yIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzdGF0aWMgcG9zaXRpb24uCkBAIC0yOTUs
NyArMjk1LDcgQEAgTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnNocmlu
a1RvRml0V2lkdGgoY29uc3QgQm94JiBmb3JtYXR0aW5nUm8KICAgICByZXR1cm4gc3RkOjptaW4o
c3RkOjptYXgoaW50cmluc2ljV2lkdGhDb25zdHJhaW50cy5taW5pbXVtLCBhdmFpbGFibGVXaWR0
aCksIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMubWF4aW11bSk7CiB9CiAKLVZlcnRpY2FsR2Vv
bWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZFZl
cnRpY2FsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVz
IHVzZWRIb3Jpem9udGFsVmFsdWVzLCBVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZlcnRpY2FsVmFs
dWVzKSBjb25zdAorVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
Om91dE9mRmxvd05vblJlcGxhY2VkVmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJv
eCwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVzLCBjb25z
dCBVc2VkVmVydGljYWxWYWx1ZXMmIHVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3QKIHsKICAgICBB
U1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICFsYXlvdXRCb3gucmVw
bGFjZWQoKSk7CiAgICAgQVNTRVJUKHVzZWRWZXJ0aWNhbFZhbHVlcy5jb25zdHJhaW50cy5oZWln
aHQpOwpAQCAtNDE0LDcgKzQxNCw3IEBAIFZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZFZlcnRpY2FsR2VvbWV0CiAgICAgcmV0
dXJuIHsgKnRvcCwgKmJvdHRvbSwgeyAqaGVpZ2h0LCB1c2VkVmVydGljYWxNYXJnaW4gfSB9Owog
fQogCi1Ib3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRP
ZkZsb3dOb25SZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCwg
VXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6b250YWxWYWx1ZXMpCitIb3Jpem9udGFsR2Vv
bWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZEhv
cml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVXNlZEhvcml6b250
YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVzKQogewogICAgIEFTU0VSVChsYXlvdXRCb3gu
aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgIWxheW91dEJveC5yZXBsYWNlZCgpKTsKICAgICAK
QEAgLTU1Nyw3ICs1NTcsNyBAQCBIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZEhvcml6b250YWxHZQogICAgIHJldHVybiB7
ICpsZWZ0LCAqcmlnaHQsIHsgKndpZHRoLCB1c2VkSG9yaXpvbnRhbE1hcmdpbiwgY29tcHV0ZWRI
b3Jpem9udGFsTWFyZ2luIH0gfTsKIH0KIAotVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeShjb25zdCBC
b3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6b250YWxWYWx1ZXMs
IFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0CitWZXJ0aWNhbEdl
b21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRWZXJ0
aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZh
bHVlcyYgdXNlZEhvcml6b250YWxWYWx1ZXMsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYgdXNl
ZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkgJiYgbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogICAgIEFTU0VSVCh1c2Vk
VmVydGljYWxWYWx1ZXMuY29uc3RyYWludHMuaGVpZ2h0KTsKQEAgLTYzOSw3ICs2MzksNyBAQCBW
ZXJ0aWNhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVw
bGFjZWRWZXJ0aWNhbEdlb21ldHJ5KAogICAgIHJldHVybiB7ICp0b3AsICpib3R0b20sIHsgaGVp
Z2h0LCB7ICp1c2VkTWFyZ2luQmVmb3JlLCAqdXNlZE1hcmdpbkFmdGVyIH0gfSB9OwogfQogCi1I
b3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dS
ZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6
b250YWxWYWx1ZXMgdXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2Vk
VmVydGljYWxWYWx1ZXMpIGNvbnN0CitIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeShjb25zdCBC
b3gmIGxheW91dEJveCwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFs
VmFsdWVzLCBjb25zdCBVc2VkVmVydGljYWxWYWx1ZXMmIHVzZWRWZXJ0aWNhbFZhbHVlcykgY29u
c3QKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIGxh
eW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtNzQzLDcgKzc0Myw3IEBAIEhvcml6b250YWxHZW9t
ZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkSG9yaXpv
bnRhbEdlb21lCiAgICAgcmV0dXJuIHsgKmxlZnQsICpyaWdodCwgeyB3aWR0aCwgeyAqdXNlZE1h
cmdpblN0YXJ0LCAqdXNlZE1hcmdpbkVuZCB9LCBjb21wdXRlZEhvcml6b250YWxNYXJnaW4gfSB9
OwogfQogCi1Db250ZW50SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6Y29tcGxpY2F0ZWRDYXNlcyhjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxW
YWx1ZXMgdXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmVydGlj
YWxWYWx1ZXMpIGNvbnN0CitDb250ZW50SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6Y29tcGxpY2F0ZWRDYXNlcyhjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3Qg
VXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVzLCBjb25zdCBVc2VkVmVy
dGljYWxWYWx1ZXMmIHVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3QKIHsKICAgICBBU1NFUlQoIWxh
eW91dEJveC5yZXBsYWNlZCgpKTsKICAgICAvLyBUT0RPOiBVc2UgY29tcGxpY2F0ZWQtY2FzZSBm
b3IgZG9jdW1lbnQgcmVuZGVyZXIgZm9yIG5vdyAoc2VlIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjppbkZsb3dIZWlnaHRBbmRNYXJnaW4pLgpAQCAtNzc0LDcgKzc3NCw3IEBAIENv
bnRlbnRIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wbGlj
YXRlZENhc2VzKGNvbnN0IEJveCYKICAgICByZXR1cm4gQ29udGVudEhlaWdodEFuZE1hcmdpbiB7
ICpoZWlnaHQsIHVzZWRWZXJ0aWNhbE1hcmdpbiB9OwogfQogCi1Db250ZW50V2lkdGhBbmRNYXJn
aW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ05vblJlcGxhY2VkV2lkdGhB
bmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRI
b3Jpem9udGFsVmFsdWVzKQorQ29udGVudFdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYg
bGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNlZEhvcml6b250YWxWYWx1
ZXMpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpICYmICFs
YXlvdXRCb3gucmVwbGFjZWQoKSk7CiAKQEAgLTc5Niw3ICs3OTYsNyBAQCBDb250ZW50V2lkdGhB
bmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ05vblJlcGxhY2Vk
V2lkdGhBbmRNYQogICAgIHJldHVybiBDb250ZW50V2lkdGhBbmRNYXJnaW4geyAqd2lkdGgsIHVz
ZWRIb3Jpem9udGFsbE1hcmdpbiwgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luIH07CiB9CiAKLUNv
bnRlbnRIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGlu
Z1JlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpv
bnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcywgVXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRW
ZXJ0aWNhbFZhbHVlcykgY29uc3QKK0NvbnRlbnRIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ1JlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNlZEhvcml6b250YWxW
YWx1ZXMsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYgdXNlZFZlcnRpY2FsVmFsdWVzKSBjb25z
dAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSAmJiBsYXlv
dXRCb3gucmVwbGFjZWQoKSk7CiAKQEAgLTgwNiw3ICs4MDYsNyBAQCBDb250ZW50SGVpZ2h0QW5k
TWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZEhlaWdo
dEFuZE1hcgogICAgIHJldHVybiBpbmxpbmVSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihsYXlvdXRC
b3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzLCB1c2VkVmVydGljYWxWYWx1ZXMpOwogfQogCi1Db250
ZW50V2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ1Jl
cGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFs
VmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdWVzKSBjb25zdAorQ29udGVudFdpZHRoQW5kTWFyZ2lu
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZFdpZHRoQW5kTWFy
Z2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNl
ZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Zsb2F0
aW5nUG9zaXRpb25lZCgpICYmIGxheW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtODE3LDExICs4
MTcsMTEgQEAgQ29udGVudFdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6ZmxvYXRpbmdSZXBsYWNlZFdpZHRoQW5kTWFyZ2kKICAgICBhdXRvIGNvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbiA9IEdlb21ldHJ5Ojpjb21wdXRlZEhvcml6b250YWxNYXJnaW4obGF5b3V0Qm94
LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGlu
Z0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW0hlaWdodF1bTWFyZ2luXSAtPiBmbG9hdGluZyBy
ZXBsYWNlZCAtPiByZWRpcmVjdGVkIHRvIGlubGluZSByZXBsYWNlZCIpOwotICAgIHVzZWRIb3Jp
em9udGFsVmFsdWVzLm1hcmdpbiA9IFVzZWRIb3Jpem9udGFsTWFyZ2luIHsgY29tcHV0ZWRIb3Jp
em9udGFsTWFyZ2luLnN0YXJ0LnZhbHVlT3IoMCksIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5l
bmQudmFsdWVPcigwKSB9OwotICAgIHJldHVybiBpbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2lu
KGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOworICAgIGF1dG8gdXNlZE1hcmdpbiA9
IFVzZWRIb3Jpem9udGFsTWFyZ2luIHsgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luLnN0YXJ0LnZh
bHVlT3IoMCksIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5lbmQudmFsdWVPcigwKSB9OworICAg
IHJldHVybiBpbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgVXNlZEhvcml6
b250YWxWYWx1ZXMgeyB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb25zdHJhaW50cywgdXNlZEhvcml6
b250YWxWYWx1ZXMud2lkdGgsIHVzZWRNYXJnaW4gfSk7CiB9CiAKLVZlcnRpY2FsR2VvbWV0cnkg
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZh
bHVlcywgVXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3QKK1ZlcnRp
Y2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0aWNh
bEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVl
cyYgdXNlZEhvcml6b250YWxWYWx1ZXMsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYgdXNlZFZl
cnRpY2FsVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpOwogCkBAIC04MzAsNyArODMwLDcgQEAgVmVydGljYWxHZW9tZXRyeSBGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoY29uc3Qg
Qm8KICAgICByZXR1cm4gb3V0T2ZGbG93UmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGxheW91dEJv
eCwgdXNlZEhvcml6b250YWxWYWx1ZXMsIHVzZWRWZXJ0aWNhbFZhbHVlcyk7CiB9CiAKLUhvcml6
b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd0hvcml6
b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMg
dXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmVydGljYWxWYWx1
ZXMpCitIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRP
ZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRI
b3Jpem9udGFsVmFsdWVzJiB1c2VkSG9yaXpvbnRhbFZhbHVlcywgY29uc3QgVXNlZFZlcnRpY2Fs
VmFsdWVzJiB1c2VkVmVydGljYWxWYWx1ZXMpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CiAKQEAgLTgzOSw3ICs4MzksNyBAQCBIb3Jpem9udGFsR2Vv
bWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dIb3Jpem9udGFsR2Vv
bWV0cnkoY29ucwogICAgIHJldHVybiBvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxHZW9tZXRy
eShsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzLCB1c2VkVmVydGljYWxWYWx1ZXMpOwog
fQogCi1Db250ZW50SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
ZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9u
dGFsVmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdWVzLCBVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZl
cnRpY2FsVmFsdWVzKSBjb25zdAorQ29udGVudEhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNlZEhvcml6b250YWxWYWx1ZXMsIGNv
bnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYgdXNlZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewogICAg
IEFTU0VSVChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSk7CiAKQEAgLTg0OCwxNiAr
ODQ4LDE2IEBAIENvbnRlbnRIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5OjpmbG9hdGluZ0hlaWdodEFuZE1hcmdpbihjb25zCiAgICAgcmV0dXJuIGZsb2F0aW5nUmVw
bGFjZWRIZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcywgdXNl
ZFZlcnRpY2FsVmFsdWVzKTsKIH0KIAotQ29udGVudFdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91
dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZFZhbHVlcykKK0NvbnRlbnRXaWR0aEFuZE1h
cmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nV2lkdGhBbmRNYXJnaW4o
Y29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJiB1c2VkSG9y
aXpvbnRhbFZhbHVlcykKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlv
bmVkKCkpOwogCiAgICAgaWYgKCFsYXlvdXRCb3gucmVwbGFjZWQoKSkKLSAgICAgICAgcmV0dXJu
IGZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRWYWx1ZXMp
OwotICAgIHJldHVybiBmbG9hdGluZ1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCB1
c2VkVmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIGZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1h
cmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKKyAgICByZXR1cm4gZmxvYXRp
bmdSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMp
OwogfQogCi1Db250ZW50SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6aW5saW5lUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFVz
ZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdWVzLCBVc2VkVmVydGljYWxWYWx1
ZXMgdXNlZFZlcnRpY2FsVmFsdWVzKSBjb25zdAorQ29udGVudEhlaWdodEFuZE1hcmdpbiBGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNlZEhvcml6
b250YWxWYWx1ZXMsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYgdXNlZFZlcnRpY2FsVmFsdWVz
KSBjb25zdAogewogICAgIEFTU0VSVCgobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgp
IHx8IGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpIHx8IGxheW91dEJveC5pc0luRmxv
dygpKSAmJiBsYXlvdXRCb3gucmVwbGFjZWQoKSk7CiAKQEAgLTkwMyw3ICs5MDMsNyBAQCBDb250
ZW50SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVw
bGFjZWRIZWlnaHRBbmRNYXJnaQogICAgIHJldHVybiB7ICpoZWlnaHQsIHVzZWRWZXJ0aWNhbE1h
cmdpbiB9OwogfQogCi1Db250ZW50V2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjppbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcywgT3B0aW9uYWw8VXNl
ZFZlcnRpY2FsVmFsdWVzPiB1c2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0CitDb250ZW50V2lkdGhB
bmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVSZXBsYWNlZFdpZHRo
QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVl
cyYgdXNlZEhvcml6b250YWxWYWx1ZXMsIE9wdGlvbmFsPFVzZWRWZXJ0aWNhbFZhbHVlcz4gdXNl
ZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VSVCgobGF5b3V0Qm94LmlzT3V0T2ZG
bG93UG9zaXRpb25lZCgpIHx8IGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpIHx8IGxh
eW91dEJveC5pc0luRmxvdygpKSAmJiBsYXlvdXRCb3gucmVwbGFjZWQoKSk7CiAKQEAgLTk3Miw3
ICs5NzIsNyBAQCBDb250ZW50V2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5OjppbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKAogICAgIHJldHVybiB7ICp3aWR0aCwg
eyB1c2VkTWFyZ2luU3RhcnQoKSwgdXNlZE1hcmdpbkVuZCgpIH0sIGNvbXB1dGVkSG9yaXpvbnRh
bE1hcmdpbiB9OwogfQogCi1MYXlvdXRTaXplIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
aW5GbG93UG9zaXRpb25lZFBvc2l0aW9uT2Zmc2V0KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2Vk
SG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcykgY29uc3QKK0xheW91dFNpemUg
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dQb3NpdGlvbmVkUG9zaXRpb25PZmZz
ZXQoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJiB1c2Vk
SG9yaXpvbnRhbFZhbHVlcykgY29uc3QKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzSW5GbG93
UG9zaXRpb25lZCgpKTsKIApAQCAtMTA1Nyw3ICsxMDU3LDcgQEAgRWRnZXMgRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZEJvcmRlcihjb25zdCBCb3gmIGxheW91dEJveCkgY29u
c3QKICAgICB9OwogfQogCi1PcHRpb25hbDxFZGdlcz4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5Ojpjb21wdXRlZFBhZGRpbmcoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFs
VmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdWVzKSBjb25zdAorT3B0aW9uYWw8RWRnZXM+IEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRQYWRkaW5nKGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNlZEhvcml6b250YWxWYWx1ZXMpIGNv
bnN0CiB7CiAgICAgaWYgKCFsYXlvdXRCb3guaXNQYWRkaW5nQXBwbGljYWJsZSgpKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMTA3MSwxNCArMTA3MSwxNCBAQCBPcHRpb25hbDxF
ZGdlcz4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZFBhZGRpbmcoY29uc3Qg
Qm94JiBsYXlvdXRCbwogICAgIH07CiB9CiAKLUNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbiBGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbihjb25zdCBC
b3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6b250YWxWYWx1ZXMp
IGNvbnN0CitDb21wdXRlZEhvcml6b250YWxNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5Ojpjb21wdXRlZEhvcml6b250YWxNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0
IFVzZWRIb3Jpem9udGFsVmFsdWVzJiB1c2VkSG9yaXpvbnRhbFZhbHVlcykgY29uc3QKIHsKICAg
ICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwogICAgIGF1dG8gY29udGFpbmluZ0Js
b2NrV2lkdGggPSB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb25zdHJhaW50cy53aWR0aDsKICAgICBy
ZXR1cm4geyBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpblN0YXJ0KCksIGNvbnRh
aW5pbmdCbG9ja1dpZHRoKSwgY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhzdHlsZS5tYXJnaW5FbmQo
KSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpIH07CiB9CiAKLUNvbXB1dGVkVmVydGljYWxNYXJnaW4g
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZFZlcnRpY2FsTWFyZ2luKGNvbnN0
IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVl
cykgY29uc3QKK0NvbXB1dGVkVmVydGljYWxNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5Ojpjb21wdXRlZFZlcnRpY2FsTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBV
c2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0CiB7CiAgICAg
YXV0byYgc3R5bGUgPSBsYXlvdXRCb3guc3R5bGUoKTsKICAgICBhdXRvIGNvbnRhaW5pbmdCbG9j
a1dpZHRoID0gdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWludHMud2lkdGg7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDRjNzhhZjVjZjY2ZmY2YzJjYzhlMGM3YjMyYzMzNzc3
NWViZTE3N2QuLmU3ZGI0MmVmMDlhZWQ1YzIzN2ZiYzVlNTJjOGFlOTYyYTQzYzUxZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToKICAg
ICAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgcG9zaXRpb25pbmcgYW5kIHNpemluZyBmb3IgYm94
ZXMgcGFydGljaXBhdGluZyBpbiBhIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dC4KICAgICBjbGFz
cyBHZW9tZXRyeSA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnkgewogICAgIHB1
YmxpYzoKLSAgICAgICAgQ29udGVudEhlaWdodEFuZE1hcmdpbiBpbkZsb3dIZWlnaHRBbmRNYXJn
aW4oY29uc3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyk7
Ci0gICAgICAgIENvbnRlbnRXaWR0aEFuZE1hcmdpbiBpbkZsb3dXaWR0aEFuZE1hcmdpbihjb25z
dCBCb3gmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyk7CisgICAgICAgIENvbnRlbnRIZWlnaHRBbmRN
YXJnaW4gaW5GbG93SGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9u
dGFsVmFsdWVzJiwgY29uc3QgVXNlZFZlcnRpY2FsVmFsdWVzJik7CisgICAgICAgIENvbnRlbnRX
aWR0aEFuZE1hcmdpbiBpbkZsb3dXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBVc2Vk
SG9yaXpvbnRhbFZhbHVlcyYpOwogCi0gICAgICAgIFBvaW50IHN0YXRpY1Bvc2l0aW9uKGNvbnN0
IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzLCBVc2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0Owot
ICAgICAgICBMYXlvdXRVbml0IHN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiwgVXNl
ZFZlcnRpY2FsVmFsdWVzKSBjb25zdDsKLSAgICAgICAgTGF5b3V0VW5pdCBzdGF0aWNIb3Jpem9u
dGFsUG9zaXRpb24oY29uc3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0OworICAg
ICAgICBQb2ludCBzdGF0aWNQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBVc2VkSG9yaXpvbnRh
bFZhbHVlcyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYpIGNvbnN0OworICAgICAgICBMYXlv
dXRVbml0IHN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiwgY29uc3QgVXNlZFZlcnRp
Y2FsVmFsdWVzJikgY29uc3Q7CisgICAgICAgIExheW91dFVuaXQgc3RhdGljSG9yaXpvbnRhbFBv
c2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJikgY29uc3Q7CiAK
ICAgICAgICAgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBpbnRyaW5zaWNXaWR0aENvbnN0cmFp
bnRzKGNvbnN0IEJveCYpOwogCkBAIC04Nyw5ICs4Nyw5IEBAIHByaXZhdGU6CiAgICAgICAgIGZy
aWVuZCBjbGFzcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OwogICAgICAgICBHZW9tZXRyeShjb25z
dCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7CiAKLSAgICAgICAgQ29udGVudEhlaWdodEFuZE1h
cmdpbiBpbkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmLCBVc2VkSG9y
aXpvbnRhbFZhbHVlcywgVXNlZFZlcnRpY2FsVmFsdWVzKTsKLSAgICAgICAgQ29udGVudFdpZHRo
QW5kTWFyZ2luIGluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgVXNl
ZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0OwotICAgICAgICBDb250ZW50V2lkdGhBbmRNYXJnaW4g
aW5GbG93UmVwbGFjZWRXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBVc2VkSG9yaXpvbnRhbFZh
bHVlcykgY29uc3Q7CisgICAgICAgIENvbnRlbnRIZWlnaHRBbmRNYXJnaW4gaW5GbG93Tm9uUmVw
bGFjZWRIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1
ZXMmLCBjb25zdCBVc2VkVmVydGljYWxWYWx1ZXMmKTsKKyAgICAgICAgQ29udGVudFdpZHRoQW5k
TWFyZ2luIGluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3Qg
VXNlZEhvcml6b250YWxWYWx1ZXMmKSBjb25zdDsKKyAgICAgICAgQ29udGVudFdpZHRoQW5kTWFy
Z2luIGluRmxvd1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgVXNlZEhv
cml6b250YWxWYWx1ZXMmKSBjb25zdDsKICAgICAgICAgUG9pbnQgc3RhdGljUG9zaXRpb25Gb3JP
dXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IEJveCYpIGNvbnN0OwogCiAgICAgICAgIGNvbnN0IEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4g
ZG93bmNhc3Q8QmxvY2tGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5Ojpmb3JtYXR0aW5nQ29udGV4dCgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IGVkMzM0OGRkYjI5M2E5NzVmN2QyOTdiMmM5YjBkNWY4
NzI4ZjlhZDUuLmUyMWI3MTg2MDI0MzcxZjlmNGQzMzc2ZGY3Y2NlNGUyNzMwZTM5ODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTM3LDEyICsz
NywxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKLUNvbnRl
bnRIZWlnaHRBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxv
d05vblJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9y
aXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcywgVXNlZFZlcnRpY2FsVmFsdWVzIHVz
ZWRWYWx1ZXMpCitDb250ZW50SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxh
eW91dEJveCwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVz
LCBjb25zdCBVc2VkVmVydGljYWxWYWx1ZXMmIHVzZWRWZXJ0aWNhbFZhbHVlcykKIHsKICAgICBB
U1NFUlQobGF5b3V0Qm94LmlzSW5GbG93KCkgJiYgIWxheW91dEJveC5yZXBsYWNlZCgpKTsKICAg
ICBBU1NFUlQobGF5b3V0Qm94LmlzT3ZlcmZsb3dWaXNpYmxlKCkpOwogCi0gICAgYXV0byBjb21w
dXRlID0gWyZdKCkgLT4gQ29udGVudEhlaWdodEFuZE1hcmdpbiB7CisgICAgYXV0byBjb21wdXRl
ID0gWyZdKGNvbnN0IGF1dG8mIHVzZWRWZXJ0aWNhbFZhbHVlcykgLT4gQ29udGVudEhlaWdodEFu
ZE1hcmdpbiB7CiAKICAgICAgICAgLy8gMTAuNi4zIEJsb2NrLWxldmVsIG5vbi1yZXBsYWNlZCBl
bGVtZW50cyBpbiBub3JtYWwgZmxvdyB3aGVuICdvdmVyZmxvdycgY29tcHV0ZXMgdG8gJ3Zpc2li
bGUnCiAgICAgICAgIC8vCkBAIC02MSw3ICs2MSw3IEBAIENvbnRlbnRIZWlnaHRBbmRNYXJnaW4g
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkSGVpZ2h0
CiAgICAgICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IEdlb21ldHJ5Ojpjb21wdXRl
ZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgICAg
ICBhdXRvIG5vbkNvbGxhcHNlZE1hcmdpbiA9IFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFw
c2VkVmFsdWVzIHsgY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5iZWZvcmUudmFsdWVPcigwKSwgY29t
cHV0ZWRWZXJ0aWNhbE1hcmdpbi5hZnRlci52YWx1ZU9yKDApIH07IAogICAgICAgICBhdXRvIGJv
cmRlckFuZFBhZGRpbmdUb3AgPSBib3hHZW9tZXRyeS5ib3JkZXJUb3AoKSArIGJveEdlb21ldHJ5
LnBhZGRpbmdUb3AoKS52YWx1ZU9yKDApOwotICAgICAgICBhdXRvIGhlaWdodCA9IHVzZWRWYWx1
ZXMuaGVpZ2h0ID8gdXNlZFZhbHVlcy5oZWlnaHQudmFsdWUoKSA6IGNvbXB1dGVkQ29udGVudEhl
aWdodChsYXlvdXRCb3gpOworICAgICAgICBhdXRvIGhlaWdodCA9IHVzZWRWZXJ0aWNhbFZhbHVl
cy5oZWlnaHQgPyB1c2VkVmVydGljYWxWYWx1ZXMuaGVpZ2h0LnZhbHVlKCkgOiBjb21wdXRlZENv
bnRlbnRIZWlnaHQobGF5b3V0Qm94KTsKIAogICAgICAgICBpZiAoaGVpZ2h0KQogICAgICAgICAg
ICAgcmV0dXJuIHsgKmhlaWdodCwgbm9uQ29sbGFwc2VkTWFyZ2luIH07CkBAIC0xMDEsMTUgKzEw
MSwxMyBAQCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZEhlaWdodAogICAgIH07CiAKICAgICAvLyAxMC42Ljcg
J0F1dG8nIGhlaWdodHMgZm9yIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCByb290cwotICAgIGF1
dG8gaXNBdXRvSGVpZ2h0ID0gIXVzZWRWYWx1ZXMuaGVpZ2h0ICYmICFjb21wdXRlZENvbnRlbnRI
ZWlnaHQobGF5b3V0Qm94KTsKKyAgICBhdXRvIGlzQXV0b0hlaWdodCA9ICF1c2VkVmVydGljYWxW
YWx1ZXMuaGVpZ2h0ICYmICFjb21wdXRlZENvbnRlbnRIZWlnaHQobGF5b3V0Qm94KTsKICAgICBp
ZiAoaXNBdXRvSGVpZ2h0ICYmIGxheW91dEJveC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQoKSkKLSAgICAgICAgdXNlZFZhbHVlcy5oZWlnaHQgPSBjb250ZW50SGVpZ2h0Rm9yRm9y
bWF0dGluZ0NvbnRleHRSb290KGxheW91dEJveCk7Ci0gICAgYXV0byBjb250ZW50SGVpZ2h0QW5k
TWFyZ2luID0gY29tcHV0ZSgpOwotICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4
dExheW91dCwgc3RyZWFtIDw8ICJbSGVpZ2h0XVtNYXJnaW5dIC0+IGluZmxvdyBub24tcmVwbGFj
ZWQgLT4gaGVpZ2h0KCIgPDwgY29udGVudEhlaWdodEFuZE1hcmdpbi5jb250ZW50SGVpZ2h0IDw8
ICJweCkgbWFyZ2luKCIgPDwgY29udGVudEhlaWdodEFuZE1hcmdpbi5ub25Db2xsYXBzZWRNYXJn
aW4uYmVmb3JlIDw8ICJweCwgIiA8PCBjb250ZW50SGVpZ2h0QW5kTWFyZ2luLm5vbkNvbGxhcHNl
ZE1hcmdpbi5hZnRlciA8PCAicHgpIC0+IGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIiki
KTsKLSAgICByZXR1cm4gY29udGVudEhlaWdodEFuZE1hcmdpbjsKKyAgICAgICAgcmV0dXJuIGNv
bXB1dGUoIFVzZWRWZXJ0aWNhbFZhbHVlcyB7IHVzZWRWZXJ0aWNhbFZhbHVlcy5jb25zdHJhaW50
cywgY29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChsYXlvdXRCb3gpIH0pOwor
ICAgIHJldHVybiBjb21wdXRlKHVzZWRWZXJ0aWNhbFZhbHVlcyk7CiB9CiAKLUNvbnRlbnRXaWR0
aEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVw
bGFjZWRXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxW
YWx1ZXMgdXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0CitDb250ZW50V2lkdGhBbmRNYXJnaW4g
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkV2lkdGhB
bmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVz
JiB1c2VkSG9yaXpvbnRhbFZhbHVlcykgY29uc3QKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94Lmlz
SW5GbG93KCkpOwogCkBAIC0xOTksNyArMTk3LDcgQEAgQ29udGVudFdpZHRoQW5kTWFyZ2luIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZFdpZHRoQW4K
ICAgICByZXR1cm4gY29udGVudFdpZHRoQW5kTWFyZ2luOwogfQogCi1Db250ZW50V2lkdGhBbmRN
YXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxhY2VkV2lk
dGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVz
ZWRWYWx1ZXMpIGNvbnN0CitDb250ZW50V2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJiB1c2VkSG9yaXpvbnRhbFZhbHVl
cykgY29uc3QKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzSW5GbG93KCkgJiYgbGF5b3V0Qm94
LnJlcGxhY2VkKCkpOwogCkBAIC0yMDksMTUgKzIwNywxNSBAQCBDb250ZW50V2lkdGhBbmRNYXJn
aW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxhY2VkV2lkdGhB
bmRNYQogICAgIC8vIDIuIFRoZW4gdGhlIHJ1bGVzIGZvciBub24tcmVwbGFjZWQgYmxvY2stbGV2
ZWwgZWxlbWVudHMgYXJlIGFwcGxpZWQgdG8gZGV0ZXJtaW5lIHRoZSBtYXJnaW5zLgogCiAgICAg
Ly8gIzEKLSAgICB1c2VkVmFsdWVzLndpZHRoID0gaW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdp
bihsYXlvdXRCb3gsIHVzZWRWYWx1ZXMpLmNvbnRlbnRXaWR0aDsKKyAgICBhdXRvIHVzZWRXaWR0
aCA9IGlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRh
bFZhbHVlcykuY29udGVudFdpZHRoOwogICAgIC8vICMyCi0gICAgYXV0byBub25SZXBsYWNlZFdp
ZHRoQW5kTWFyZ2luID0gaW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gs
IHVzZWRWYWx1ZXMpOworICAgIGF1dG8gbm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbiA9IGluRmxv
d05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVl
cyB7IHVzZWRIb3Jpem9udGFsVmFsdWVzLmNvbnN0cmFpbnRzLCB1c2VkV2lkdGgsIHVzZWRIb3Jp
em9udGFsVmFsdWVzLm1hcmdpbiB9KTsKIAotICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5n
Q29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lkdGhdW01hcmdpbl0gLT4gaW5mbG93IHJlcGxh
Y2VkIC0+IHdpZHRoKCIgPDwgKnVzZWRWYWx1ZXMud2lkdGggPDwgInB4KSBtYXJnaW4oIiA8PCBu
b25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luLnVzZWRNYXJnaW4uc3RhcnQgPDwgInB4LCAiIDw8IG5v
blJlcGxhY2VkV2lkdGhBbmRNYXJnaW4udXNlZE1hcmdpbi5lbmQgPDwgInB4KSAtPiBsYXlvdXRC
b3goIiA8PCAmbGF5b3V0Qm94IDw8ICIpIik7Ci0gICAgcmV0dXJuIHsgKnVzZWRWYWx1ZXMud2lk
dGgsIG5vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4udXNlZE1hcmdpbiwgbm9uUmVwbGFjZWRXaWR0
aEFuZE1hcmdpbi5jb21wdXRlZE1hcmdpbiB9OworICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0
aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lkdGhdW01hcmdpbl0gLT4gaW5mbG93IHJl
cGxhY2VkIC0+IHdpZHRoKCIgPDwgdXNlZFdpZHRoICA8PCAicHgpIG1hcmdpbigiIDw8IG5vblJl
cGxhY2VkV2lkdGhBbmRNYXJnaW4udXNlZE1hcmdpbi5zdGFydCA8PCAicHgsICIgPDwgbm9uUmVw
bGFjZWRXaWR0aEFuZE1hcmdpbi51c2VkTWFyZ2luLmVuZCA8PCAicHgpIC0+IGxheW91dEJveCgi
IDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKKyAgICByZXR1cm4geyB1c2VkV2lkdGgsIG5vblJlcGxh
Y2VkV2lkdGhBbmRNYXJnaW4udXNlZE1hcmdpbiwgbm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbi5j
b21wdXRlZE1hcmdpbiB9OwogfQogCi1MYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBV
c2VkVmVydGljYWxWYWx1ZXMgdXNlZFZlcnRpY2FsVmFsdWVzKSBjb25zdAorTGF5b3V0VW5pdCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c3RhdGljVmVydGljYWxQb3NpdGlvbihj
b25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVXNlZFZlcnRpY2FsVmFsdWVzJiB1c2VkVmVydGlj
YWxWYWx1ZXMpIGNvbnN0CiB7CiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIyL3Zp
c3VyZW4uaHRtbCNibG9jay1mb3JtYXR0aW5nCiAgICAgLy8gSW4gYSBibG9jayBmb3JtYXR0aW5n
IGNvbnRleHQsIGJveGVzIGFyZSBsYWlkIG91dCBvbmUgYWZ0ZXIgdGhlIG90aGVyLCB2ZXJ0aWNh
bGx5LCBiZWdpbm5pbmcgYXQgdGhlIHRvcCBvZiBhIGNvbnRhaW5pbmcgYmxvY2suCkBAIC0yMzAs
MTkgKzIyOCwxOSBAQCBMYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjpzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYgbAogICAgIHJldHVybiB1c2VkVmVy
dGljYWxWYWx1ZXMuY29uc3RyYWludHMuY29udGVudEJveFRvcDsKIH0KIAotTGF5b3V0VW5pdCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c3RhdGljSG9yaXpvbnRhbFBvc2l0aW9u
KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRh
bFZhbHVlcykgY29uc3QKK0xheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OnN0YXRpY0hvcml6b250YWxQb3NpdGlvbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3Qg
VXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVzKSBjb25zdAogewogICAg
IC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMi92aXN1cmVuLmh0bWwjYmxvY2stZm9ybWF0
dGluZwogICAgIC8vIEluIGEgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0LCBlYWNoIGJveCdzIGxl
ZnQgb3V0ZXIgZWRnZSB0b3VjaGVzIHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIGNvbnRhaW5pbmcgYmxv
Y2sgKGZvciByaWdodC10by1sZWZ0IGZvcm1hdHRpbmcsIHJpZ2h0IGVkZ2VzIHRvdWNoKS4KICAg
ICByZXR1cm4gdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWludHMuY29udGVudEJveExlZnQg
KyBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGxheW91dEJveCkubWFyZ2luU3Rh
cnQoKTsKIH0KIAotUG9pbnQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnN0YXRp
Y1Bvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2Vk
SG9yaXpvbnRhbFZhbHVlcywgVXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRWZXJ0aWNhbFZhbHVlcykg
Y29uc3QKK1BvaW50IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNQb3Np
dGlvbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmIHVz
ZWRIb3Jpem9udGFsVmFsdWVzLCBjb25zdCBVc2VkVmVydGljYWxWYWx1ZXMmIHVzZWRWZXJ0aWNh
bFZhbHVlcykgY29uc3QKIHsKICAgICByZXR1cm4geyBzdGF0aWNIb3Jpem9udGFsUG9zaXRpb24o
bGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyksIHN0YXRpY1ZlcnRpY2FsUG9zaXRpb24o
bGF5b3V0Qm94LCB1c2VkVmVydGljYWxWYWx1ZXMpIH07CiB9CiAKLUNvbnRlbnRIZWlnaHRBbmRN
YXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd0hlaWdodEFuZE1h
cmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6
b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmVydGljYWxWYWx1ZXMpCitDb250
ZW50SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZs
b3dIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9u
dGFsVmFsdWVzJiB1c2VkSG9yaXpvbnRhbFZhbHVlcywgY29uc3QgVXNlZFZlcnRpY2FsVmFsdWVz
JiB1c2VkVmVydGljYWxWYWx1ZXMpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0luRmxvdygp
KTsKIApAQCAtMjc0LDE3ICsyNzIsMTcgQEAgQ29udGVudEhlaWdodEFuZE1hcmdpbiBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93SGVpZ2h0QW5kTWFyZ2luKGMKICAgICBy
ZXR1cm4gY29udGVudEhlaWdodEFuZE1hcmdpbjsKIH0KIAotQ29udGVudFdpZHRoQW5kTWFyZ2lu
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dXaWR0aEFuZE1hcmdpbihj
b25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6b250YWxW
YWx1ZXMpCitDb250ZW50V2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmluRmxvd1dpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBV
c2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNlZEhvcml6b250YWxWYWx1ZXMpCiB7CiAgICAgQVNTRVJU
KGxheW91dEJveC5pc0luRmxvdygpKTsKIAogICAgIGlmICghbGF5b3V0Qm94LnJlcGxhY2VkKCkp
IHsKLSAgICAgICAgaWYgKGxheW91dEJveC5lc3RhYmxpc2hlc1RhYmxlRm9ybWF0dGluZ0NvbnRl
eHQoKSkgewotICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgdGFibGUgImZpdC1jb250
ZW50IHNpemUiIGJlaGF2aW9yIGhhbmRsaW5nLiBOb3QgaW4gdGhlIHNwZWMgdGhvdWdoLgotICAg
ICAgICAgICAgLy8gVGFibGUgcmV0dXJucyBpdHMgZmluYWwgd2lkdGggYXMgbWluL21heC4gVXNl
IHRoaXMgZmluYWwgd2lkdGggdmFsdWUgdG8gY29tcHV0ZWQgaG9yaXpvbnRhbCBtYXJnaW5zIGV0
Yy4KLSAgICAgICAgICAgIHVzZWRIb3Jpem9udGFsVmFsdWVzLndpZHRoID0gdXNlZEhvcml6b250
YWxWYWx1ZXMud2lkdGggPyB1c2VkSG9yaXpvbnRhbFZhbHVlcy53aWR0aCA6IHNocmlua1RvRml0
V2lkdGgobGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb25zdHJhaW50cy53aWR0aCk7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJn
aW4obGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CisgICAgICAgIGlmICghbGF5b3V0
Qm94LmVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpKQorICAgICAgICAgICAgcmV0
dXJuIGluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCB1c2VkSG9yaXpv
bnRhbFZhbHVlcyk7CisgICAgICAgIC8vIFRoaXMgaXMgYSBzcGVjaWFsIHRhYmxlICJmaXQtY29u
dGVudCBzaXplIiBiZWhhdmlvciBoYW5kbGluZy4gTm90IGluIHRoZSBzcGVjIHRob3VnaC4KKyAg
ICAgICAgLy8gVGFibGUgcmV0dXJucyBpdHMgZmluYWwgd2lkdGggYXMgbWluL21heC4gVXNlIHRo
aXMgZmluYWwgd2lkdGggdmFsdWUgdG8gY29tcHV0ZWQgaG9yaXpvbnRhbCBtYXJnaW5zIGV0Yy4K
KyAgICAgICAgYXV0byB1c2VkV2lkdGggPSB1c2VkSG9yaXpvbnRhbFZhbHVlcy53aWR0aCA/IHVz
ZWRIb3Jpem9udGFsVmFsdWVzLndpZHRoIDogc2hyaW5rVG9GaXRXaWR0aChsYXlvdXRCb3gsIHVz
ZWRIb3Jpem9udGFsVmFsdWVzLmNvbnN0cmFpbnRzLndpZHRoKTsKKyAgICAgICAgcmV0dXJuIGlu
Rmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZh
bHVlcyB7IHVzZWRIb3Jpem9udGFsVmFsdWVzLmNvbnN0cmFpbnRzLCB1c2VkV2lkdGgsIHVzZWRI
b3Jpem9udGFsVmFsdWVzLm1hcmdpbiB9KTsKICAgICB9CiAgICAgcmV0dXJuIGluRmxvd1JlcGxh
Y2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZGY3YzUzNzlkMzY4Y2VmY2Uw
NWQzMDI4ZGIwZDBiYzhhZmNjMjgxOS4uNGJiZmUwYTMyNWFiNmMwOWNmZTZhZDczODFhZjI3ZmQ4
OTkxY2IxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtODksNyAr
ODksNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50
KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpbwogICAgIExPR19XSVRIX1NUUkVBTShGb3Jt
YXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbRW5kXSAtPiBpbmxpbmUgZm9ybWF0dGlu
ZyBjb250ZXh0IC0+IGZvcm1hdHRpbmcgcm9vdCgiIDw8ICZyb290KCkgPDwgIikiKTsKIH0KIAot
dm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGluZUxheW91dChVc2VkSG9yaXpvbnRhbFZh
bHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcykKK3ZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OmxpbmVMYXlvdXQoY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFs
dWVzKQogewogICAgIGF1dG8mIGlubGluZUl0ZW1zID0gZm9ybWF0dGluZ1N0YXRlKCkuaW5saW5l
SXRlbXMoKTsKICAgICBhdXRvIGxpbmVMb2dpY2FsVG9wID0gZ2VvbWV0cnlGb3JCb3gocm9vdCgp
KS5jb250ZW50Qm94VG9wKCk7CkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6bGluZUxheW91dChVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRh
bFZhbHUKICAgICB9CiB9CiAKLXZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZv
cm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgSW52
YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0YXRlLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1
c2VkSG9yaXpvbnRhbFZhbHVlcywgVXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRWZXJ0aWNhbFZhbHVl
cykKK3ZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0
Um9vdChjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgSW52YWxpZGF0aW9uU3RhdGUm
IGludmFsaWRhdGlvblN0YXRlLCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNlZEhvcml6
b250YWxWYWx1ZXMsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYgdXNlZFZlcnRpY2FsVmFsdWVz
KQogewogICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuaXNGbG9hdGluZ1Bvc2l0aW9u
ZWQoKSB8fCBmb3JtYXR0aW5nQ29udGV4dFJvb3QuaXNJbmxpbmVCbG9ja0JveCgpKTsKIApAQCAt
MTQ4LDcgKzE0OCw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1h
dHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmIGZvcm1hdHRpbmdDCiAgICAgICAgIGNvbXB1dGVI
ZWlnaHRBbmRNYXJnaW4oZm9ybWF0dGluZ0NvbnRleHRSb290LCB1c2VkSG9yaXpvbnRhbFZhbHVl
cywgdXNlZFZlcnRpY2FsVmFsdWVzKTsKIH0KIAotdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDo6Y29tcHV0ZUhvcml6b250YWxBbmRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcywgVXNlZFZlcnRp
Y2FsVmFsdWVzIHVzZWRWZXJ0aWNhbFZhbHVlcykKK3ZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6OmNvbXB1dGVIb3Jpem9udGFsQW5kVmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91
dEJveCwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVzLCBj
b25zdCBVc2VkVmVydGljYWxWYWx1ZXMmIHVzZWRWZXJ0aWNhbFZhbHVlcykKIHsKICAgICBpZiAo
aXM8Q29udGFpbmVyPihsYXlvdXRCb3gpKSB7CiAgICAgICAgIC8vIElubGluZSBjb250YWluZXJz
ICg8c3Bhbj4pIGNhbid0IGdldCBzaXplZC9wb3NpdGlvbmVkIHlldC4gQXQgdGhpcyBwb2ludCB3
ZSBjYW4gb25seSBjb21wdXRlIHRoZWlyIG1hcmdpbnMsIGJvcmRlcnMgYW5kIHBhZGRpbmdzLgpA
QCAtMjI4LDcgKzIyOCw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0
cmFpbnRzIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEluCiAgICAgcmV0dXJuIGNv
bnN0cmFpbnRzOwogfQogCi1MYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2Vk
SG9yaXpvbnRhbFZhbHVlcykgY29uc3QKK0xheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJhaW50KGNvbnN0IFVzZWRIb3Jpem9u
dGFsVmFsdWVzJiB1c2VkSG9yaXpvbnRhbFZhbHVlcykgY29uc3QKIHsKICAgICBhdXRvJiBpbmxp
bmVJdGVtcyA9IGZvcm1hdHRpbmdTdGF0ZSgpLmlubGluZUl0ZW1zKCk7CiAgICAgTGF5b3V0VW5p
dCBtYXhpbXVtTGluZVdpZHRoOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIExheW91dFVuaXQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJhaW50KFVz
ZWRIb3JpCiAgICAgcmV0dXJuIG1heGltdW1MaW5lV2lkdGg7CiB9CiAKLXZvaWQgSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJbnRyaW5zaWNXaWR0aEZvckZvcm1hdHRpbmdSb290KGNv
bnN0IEJveCYgZm9ybWF0dGluZ1Jvb3QsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9u
dGFsVmFsdWVzKQordm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUludHJpbnNp
Y1dpZHRoRm9yRm9ybWF0dGluZ1Jvb3QoY29uc3QgQm94JiBmb3JtYXR0aW5nUm9vdCwgY29uc3Qg
VXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVzKQogewogICAgIEFTU0VS
VChmb3JtYXR0aW5nUm9vdC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwogCkBAIC0y
NjYsNyArMjY2LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUludHJp
bnNpY1dpZHRoRm9yRm9ybWF0dGluZ1Jvb3QoY29uc3QgQm94JgogICAgIGZvcm1hdHRpbmdTdGF0
ZSgpLnNldEludHJpbnNpY1dpZHRoQ29uc3RyYWludHNGb3JCb3goZm9ybWF0dGluZ1Jvb3QsIGNv
bnN0cmFpbnRzKTsKIH0KIAotdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhv
cml6b250YWxNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVz
IHVzZWRIb3Jpem9udGFsVmFsdWVzKQordm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZUhvcml6b250YWxNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jp
em9udGFsVmFsdWVzJiB1c2VkSG9yaXpvbnRhbFZhbHVlcykKIHsKICAgICBhdXRvIGNvbXB1dGVk
SG9yaXpvbnRhbE1hcmdpbiA9IGdlb21ldHJ5KCkuY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKGxh
eW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBm
b3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCk7CkBAIC0yNzQsNyArMjc0LDcg
QEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhvcml6b250YWxNYXJnaW4o
Y29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWQKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxN
YXJnaW4oeyBjb21wdXRlZEhvcml6b250YWxNYXJnaW4uc3RhcnQudmFsdWVPcigwKSwgY29tcHV0
ZWRIb3Jpem9udGFsTWFyZ2luLmVuZC52YWx1ZU9yKDApIH0pOwogfQogCi12b2lkIElubGluZUZv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRC
b3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdWVzKQordm9pZCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYgdXNlZEhvcml6b250YWxWYWx1ZXMp
CiB7CiAgICAgQ29udGVudFdpZHRoQW5kTWFyZ2luIGNvbnRlbnRXaWR0aEFuZE1hcmdpbjsKICAg
ICBpZiAobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpCkBAIC0yOTIsNyArMjkyLDcg
QEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG8KICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxD
b21wdXRlZE1hcmdpbihjb250ZW50V2lkdGhBbmRNYXJnaW4uY29tcHV0ZWRNYXJnaW4pOwogfQog
Ci12b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZh
bHVlcywgVXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRWZXJ0aWNhbFZhbHVlcykKK3ZvaWQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlv
dXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJiB1c2VkSG9yaXpvbnRhbFZhbHVlcywg
Y29uc3QgVXNlZFZlcnRpY2FsVmFsdWVzJiB1c2VkVmVydGljYWxWYWx1ZXMpCiB7CiAgICAgQ29u
dGVudEhlaWdodEFuZE1hcmdpbiBjb250ZW50SGVpZ2h0QW5kTWFyZ2luOwogICAgIGlmIChsYXlv
dXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKQEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYg
bGF5b3V0Qm94LCBVc2VkSAogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4oeyBjb250
ZW50SGVpZ2h0QW5kTWFyZ2luLm5vbkNvbGxhcHNlZE1hcmdpbiwgeyB9IH0pOwogfQogCi12b2lk
IElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRIZWlnaHRGb3JSZXBsYWNl
ZElubGluZUJveChjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNl
ZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmVydGljYWxWYWx1ZXMp
Cit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRIZWlnaHRGb3JS
ZXBsYWNlZElubGluZUJveChjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVXNlZEhvcml6b250
YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVzLCBjb25zdCBVc2VkVmVydGljYWxWYWx1ZXMm
IHVzZWRWZXJ0aWNhbFZhbHVlcykKIHsKICAgICBBU1NFUlQoIWxheW91dEJveC5pc0NvbnRhaW5l
cigpKTsKICAgICBBU1NFUlQoIWxheW91dEJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0
KCkpOwpAQCAtMzcxLDcgKzM3MSw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bGxlY3RJbmxpbmVDb250ZW50SWZOZWVkZWQoKQogICAgIH0KIH0KIAotTGluZTo6Q29uc3RyYWlu
dHMgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbnN0cmFpbnRzRm9yTGluZShVc2VkSG9yaXpv
bnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcywgY29uc3QgTGF5b3V0VW5pdCBsaW5lTG9n
aWNhbFRvcCkKK0xpbmU6OkNvbnN0cmFpbnRzIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb25z
dHJhaW50c0ZvckxpbmUoY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFs
VmFsdWVzLCBjb25zdCBMYXlvdXRVbml0IGxpbmVMb2dpY2FsVG9wKQogewogICAgIGF1dG8gbGlu
ZUxvZ2ljYWxMZWZ0ID0gZ2VvbWV0cnlGb3JCb3gocm9vdCgpKS5jb250ZW50Qm94TGVmdCgpOwog
ICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb25zdHJhaW50
cy53aWR0aDsKQEAgLTQwNyw3ICs0MDcsNyBAQCBMaW5lOjpDb25zdHJhaW50cyBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6Y29uc3RyYWludHNGb3JMaW5lKFVzZWRIb3Jpem9udGFsVmFsdQogICAg
IHJldHVybiBMaW5lOjpDb25zdHJhaW50cyB7IHsgbGluZUxvZ2ljYWxMZWZ0LCBsaW5lTG9naWNh
bFRvcCB9LCBhdmFpbGFibGVXaWR0aCwgbGluZUlzQ29uc3RyYWluZWRCeUZsb2F0LCBxdWlya3Mo
KS5saW5lSGVpZ2h0Q29uc3RyYWludHMocm9vdCgpKSB9OwogfQogCi12b2lkIElubGluZUZvcm1h
dHRpbmdDb250ZXh0OjpzZXREaXNwbGF5Qm94ZXNGb3JMaW5lKGNvbnN0IExpbmVMYXlvdXQ6Okxp
bmVDb250ZW50JiBsaW5lQ29udGVudCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6b250
YWxWYWx1ZXMpCit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpzZXREaXNwbGF5Qm94ZXNG
b3JMaW5lKGNvbnN0IExpbmVMYXlvdXQ6OkxpbmVDb250ZW50JiBsaW5lQ29udGVudCwgY29uc3Qg
VXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVzKQogewogICAgIGF1dG8m
IGZvcm1hdHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1hdHRpbmdTdGF0ZSgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCA2MjAxNGZlYmJiYTQ3YTE2MWUzMmI5MzNjZDlmZGZj
MDQ3NjFkZDg1Li42OGM3MDc1YmY4NzFlY2Q2YzU4OWE1Y2U1MTQzM2NhZWE0N2JhMTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTY0LDggKzY0LDggQEAgcHJpdmF0ZToK
IAogICAgIGNsYXNzIEdlb21ldHJ5IDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eSB7CiAgICAgcHVibGljOgotICAgICAgICBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIGlubGluZUJs
b2NrSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzLCBVc2Vk
VmVydGljYWxWYWx1ZXMpIGNvbnN0OwotICAgICAgICBDb250ZW50V2lkdGhBbmRNYXJnaW4gaW5s
aW5lQmxvY2tXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyk7
CisgICAgICAgIENvbnRlbnRIZWlnaHRBbmRNYXJnaW4gaW5saW5lQmxvY2tIZWlnaHRBbmRNYXJn
aW4oY29uc3QgQm94JiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmLCBjb25zdCBVc2VkVmVy
dGljYWxWYWx1ZXMmKSBjb25zdDsKKyAgICAgICAgQ29udGVudFdpZHRoQW5kTWFyZ2luIGlubGlu
ZUJsb2NrV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1
ZXMmKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDsKQEAgLTc2LDIxICs3NiwyMSBAQCBwcml2YXRlOgogICAgIH07CiAgICAgSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5IGdlb21ldHJ5KCkgY29uc3QgeyByZXR1cm4g
R2VvbWV0cnkoKnRoaXMpOyB9CiAKLSAgICB2b2lkIGxpbmVMYXlvdXQoVXNlZEhvcml6b250YWxW
YWx1ZXMpOwotICAgIHZvaWQgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KGNvbnN0IEJveCYs
IEludmFsaWRhdGlvblN0YXRlJiwgVXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZh
bHVlcyk7Ci0gICAgdm9pZCBjb21wdXRlSG9yaXpvbnRhbEFuZFZlcnRpY2FsR2VvbWV0cnkoY29u
c3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyk7CisgICAg
dm9pZCBsaW5lTGF5b3V0KGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJik7CisgICAgdm9pZCBs
YXlvdXRGb3JtYXR0aW5nQ29udGV4dFJvb3QoY29uc3QgQm94JiwgSW52YWxpZGF0aW9uU3RhdGUm
LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlcyYp
OworICAgIHZvaWQgY29tcHV0ZUhvcml6b250YWxBbmRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJv
eCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJiwgY29uc3QgVXNlZFZlcnRpY2FsVmFsdWVz
Jik7CiAKLSAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNXaWR0aEZvckZvcm1hdHRpbmdSb290KGNv
bnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzKTsKLSAgICB2b2lkIGNvbXB1dGVXaWR0aEFu
ZEhlaWdodEZvclJlcGxhY2VkSW5saW5lQm94KGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFs
dWVzLCBVc2VkVmVydGljYWxWYWx1ZXMpOwotICAgIExheW91dFVuaXQgY29tcHV0ZWRJbnRyaW5z
aWNXaWR0aEZvckNvbnN0cmFpbnQoVXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0OworICAgIHZv
aWQgY29tcHV0ZUludHJpbnNpY1dpZHRoRm9yRm9ybWF0dGluZ1Jvb3QoY29uc3QgQm94JiwgY29u
c3QgVXNlZEhvcml6b250YWxWYWx1ZXMmKTsKKyAgICB2b2lkIGNvbXB1dGVXaWR0aEFuZEhlaWdo
dEZvclJlcGxhY2VkSW5saW5lQm94KGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFs
dWVzJiwgY29uc3QgVXNlZFZlcnRpY2FsVmFsdWVzJik7CisgICAgTGF5b3V0VW5pdCBjb21wdXRl
ZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYp
IGNvbnN0OwogCi0gICAgdm9pZCBjb21wdXRlSG9yaXpvbnRhbE1hcmdpbihjb25zdCBCb3gmLCBV
c2VkSG9yaXpvbnRhbFZhbHVlcyk7Ci0gICAgdm9pZCBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNv
bnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzLCBVc2VkVmVydGljYWxWYWx1ZXMpOwotICAg
IHZvaWQgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFs
dWVzKTsKKyAgICB2b2lkIGNvbXB1dGVIb3Jpem9udGFsTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0
IFVzZWRIb3Jpem9udGFsVmFsdWVzJik7CisgICAgdm9pZCBjb21wdXRlSGVpZ2h0QW5kTWFyZ2lu
KGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzJiwgY29uc3QgVXNlZFZlcnRp
Y2FsVmFsdWVzJik7CisgICAgdm9pZCBjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94Jiwg
Y29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmKTsKIAogICAgIHZvaWQgY29sbGVjdElubGluZUNv
bnRlbnRJZk5lZWRlZCgpOwotICAgIExpbmU6OkNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzRm9yTGlu
ZShVc2VkSG9yaXpvbnRhbFZhbHVlcywgY29uc3QgTGF5b3V0VW5pdCBsaW5lTG9naWNhbFRvcCk7
Ci0gICAgdm9pZCBzZXREaXNwbGF5Qm94ZXNGb3JMaW5lKGNvbnN0IExpbmVMYXlvdXQ6OkxpbmVD
b250ZW50JiwgVXNlZEhvcml6b250YWxWYWx1ZXMpOworICAgIExpbmU6OkNvbnN0cmFpbnRzIGNv
bnN0cmFpbnRzRm9yTGluZShjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyYsIGNvbnN0IExheW91
dFVuaXQgbGluZUxvZ2ljYWxUb3ApOworICAgIHZvaWQgc2V0RGlzcGxheUJveGVzRm9yTGluZShj
b25zdCBMaW5lTGF5b3V0OjpMaW5lQ29udGVudCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVz
Jik7CiAgICAgdm9pZCBpbnZhbGlkYXRlRm9ybWF0dGluZ1N0YXRlKGNvbnN0IEludmFsaWRhdGlv
blN0YXRlJik7CiAKICAgICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4oRm9y
bWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCA2MjZlZTRlYmU2MjIzMmJmMDZi
MzkyMjY4OWQzOGIxMWI2OWJlODA3Li5iOWY3NGJhZjRlYTI4MDZmYjUxNTNkZjM1MWI4OTEyOTE4
ZGUwODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExh
eW91dCB7CiAKLUNvbnRlbnRXaWR0aEFuZE1hcmdpbiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBmb3JtYXR0aW5n
Q29udGV4dFJvb3QsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdWVzKQor
Q29udGVudFdpZHRoQW5kTWFyZ2luIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
aW5saW5lQmxvY2tXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9v
dCwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXMmIHVzZWRIb3Jpem9udGFsVmFsdWVzKQogewog
ICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuaXNJbkZsb3coKSk7CiAKQEAgLTYwLDcg
KzYwLDcgQEAgQ29udGVudFdpZHRoQW5kTWFyZ2luIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6aW5saW5lQmxvY2tXaWR0aEFuZE1hcmcKICAgICByZXR1cm4gQ29udGVudFdpZHRo
QW5kTWFyZ2luIHsgKndpZHRoLCB7IGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5zdGFydC52YWx1
ZU9yKDBfbHUpLCBjb21wdXRlZEhvcml6b250YWxNYXJnaW4uZW5kLnZhbHVlT3IoMF9sdSkgfSwg
Y29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luIH07CiB9CiAKLUNvbnRlbnRIZWlnaHRBbmRNYXJnaW4g
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVCbG9ja0hlaWdodEFuZE1h
cmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6
b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0
CitDb250ZW50SGVpZ2h0QW5kTWFyZ2luIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6aW5saW5lQmxvY2tIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0
IFVzZWRIb3Jpem9udGFsVmFsdWVzJiB1c2VkSG9yaXpvbnRhbFZhbHVlcywgY29uc3QgVXNlZFZl
cnRpY2FsVmFsdWVzJiB1c2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxh
eW91dEJveC5pc0luRmxvdygpKTsKIAo=
</data>
<flag name="review"
          id="400077"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>