<?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>230639</bug_id>
          
          <creation_ts>2021-09-22 14:14:41 -0700</creation_ts>
          <short_desc>[iOS] Transcode videos selected from UIImagePickerController</short_desc>
          <delta_ts>2021-10-05 17:42:46 -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>Forms</component>
          <version>Other</version>
          <rep_platform>iPhone / iPad</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="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>aestes</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796200</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-22 14:14:41 -0700</bug_when>
    <thetext>UIImagePickerController with multiple selection does not transcode video, making it impossible to upload videos on Twitter&apos;s web client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796201</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-22 14:15:05 -0700</bug_when>
    <thetext>rdar://79665678</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796205</commentid>
    <comment_count>2</comment_count>
      <attachid>438976</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-22 14:27:42 -0700</bug_when>
    <thetext>Created attachment 438976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798686</commentid>
    <comment_count>3</comment_count>
      <attachid>438976</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-09-29 17:02:55 -0700</bug_when>
    <thetext>Comment on attachment 438976
Patch

The part that freaks me out the most is the filename construction, but since this is from the local device it&apos;s probably sufficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800906</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-05 17:42:42 -0700</bug_when>
    <thetext>Committed r283592 (242548@main): &lt;https://commits.webkit.org/242548@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438976.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438976</attachid>
            <date>2021-09-22 14:27:42 -0700</date>
            <delta_ts>2021-10-05 17:42:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230639-20210922172740.patch</filename>
            <type>text/plain</type>
            <size>33586</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIyNjUzYmU0YTRiYTU3
YTg4ODZmMzdlYzJiY2UwN2ZmZjM4NWI4Yy4uYzU2NDZlYjNkMzkyYzU2NDM4M2E1OWVhNDZmYjEy
ZDY2ZWM1NmYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA5LTIyICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBUcmFuc2Nv
ZGUgdmlkZW9zIHNlbGVjdGVkIGZyb20gVUlJbWFnZVBpY2tlckNvbnRyb2xsZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDYzOQorICAgICAgICBy
ZGFyOi8vNzk2NjU2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKKyAgICAgICAgQWRkIGEg
bG9jYWxpemFibGUgc3RyaW5nIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5ZWQgd2hpbGUgdHJhbnNj
b2RpbmcKKyAgICAgICAgdmlkZW8uCisKIDIwMjEtMDktMTYgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRqdXN0IEFSS0lUX0lOTElORV9QUkVWSUVX
KiBjb21waWxlIHRpbWUgZmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGY5MGEyZGM2MzVhOTRk
Yjc3MTdhZTkxZjU5NmQ5ZmVjNGE0ZDM2Y2IuLmE0OGYyYTE5YTZmN2M2ZWRjOTlmMGNmYWJiMmU5
M2Y4ZDY4YjZhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA5
LTIyICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9T
XSBUcmFuc2NvZGUgdmlkZW9zIHNlbGVjdGVkIGZyb20gVUlJbWFnZVBpY2tlckNvbnRyb2xsZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDYzOQor
ICAgICAgICByZGFyOi8vNzk2NjU2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgQVZGb3VuZGF0aW9uIEFQSSBuZWVkZWQgdG8gdHJhbnNjb2Rl
IHZpZGVvLgorCisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6Cisg
ICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tOgorCiAyMDIxLTA5LTE2
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkanVz
dCBBUktJVF9JTkxJTkVfUFJFVklFVyogY29tcGlsZSB0aW1lIGZsYWdzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg4
YTNmOGM5N2Q4NDFmMDA2OWUwZGQyYzkzM2Y3ZTBlZjhlNzkxYmYuLjY2NzYxNDJjOThiMGQ0M2Y4
ZWRmZDg0NjI3NTJiNWZkZmI2MDYxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODMgQEAKKzIwMjEt
MDktMjIgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtp
T1NdIFRyYW5zY29kZSB2aWRlb3Mgc2VsZWN0ZWQgZnJvbSBVSUltYWdlUGlja2VyQ29udHJvbGxl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjM5
CisgICAgICAgIHJkYXI6Ly83OTY2NTY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpbGUgaW5wdXRzIG9uIGlPUyBhbGxvdyB1c2VycyB0byBjaG9v
c2UgaW1hZ2VzL3ZpZGVvcyBmcm9tIHRoZSBzeXN0ZW0KKyAgICAgICAgcGhvdG8gcGlja2VyLCB1
c2luZyBVSUltYWdlUGlja2VyQ29udHJvbGxlci4gSW4gc2luZ2xlIHNlbGVjdGlvbiBtb2RlLAor
ICAgICAgICBVSUltYWdlUGlja2VyQ29udHJvbGxlciB0cmFuc2NvZGVzIHRoZSBzZWxlY3RlZCB2
aWRlbyB0byBILjI2NC4gSG93ZXZlciwKKyAgICAgICAgaW4gbXVsdGlwbGUgc2VsZWN0aW9uIG1v
ZGUsIHZpZGVvIGlzIG5vdCB0cmFuc2NvZGVkIGFuZCBpcyBsZWZ0IGluIGl0cworICAgICAgICBv
cmlnaW5hbCBmb3JtYXQuCisKKyAgICAgICAgVG9kYXksIHZpZGVvcyBvbiBtb3N0IGlPUyBkZXZp
Y2VzIGFyZSBlbmNvZGVkIHdpdGggSEVWQyBieSBkZWZhdWx0LgorICAgICAgICBIb3dldmVyLCBz
b21lIHNpdGVzLCBzdWNoIGFzIFR3aXR0ZXIsIG9ubHkgYWNjZXB0IEguMjY0IGVuY29kZWQgdmlk
ZW8uCisgICAgICAgIFRodXMsIHRoZSBjdXJyZW50IHZpZGVvIHVwbG9hZCBiZWhhdmlvciBpcyBw
cm9ibGVtYXRpYywgYXMgdXNlcnMgbWF5IGJlCisgICAgICAgIHVuYWJsZSB0byB1cGxvYWQgdmlk
ZW8uCisKKyAgICAgICAgVW5mb3J0dW5hdGVseSwgdGhlIHBob3RvIHBpY2tpbmcgZnVuY3Rpb25h
bGl0eSBvZiBVSUltYWdlUGlja2VyQ29udHJvbGxlcgorICAgICAgICBpcyBkZXByZWNhdGVkLiBU
aGUgYmVzdCBzb2x1dGlvbiB3b3VsZCBiZSB0byBhZG9wdCBQSFBpY2tlclZpZXdDb250cm9sbGVy
LAorICAgICAgICB0aGUgcmVwbGFjZW1lbnQgQVBJLCB3aGljaCBwZXJmb3JtcyB0cmFuc2NvZGlu
ZyB3aGVuIHJldHJpZXZpbmcgc2VsZWN0ZWQKKyAgICAgICAgaXRlbXMgKHJlZ2FyZGxlc3Mgb2Yg
c2luZ2xlL211bHRpcGxlIHNlbGVjdGlvbikuIEhvd2V2ZXIsCisgICAgICAgIFBIUGlja2VyVmll
d0NvbnRyb2xsZXIgY3VycmVudGx5IGxhY2tzIG90aGVyIGZ1bmN0aW9uYWxpdHkgdGhhdCBXZWJL
aXQKKyAgICAgICAgcmVxdWlyZXMsIHByZXZlbnRpbmcgYWRvcHRpb24uCisKKyAgICAgICAgQ29u
c2VxdWVudGx5LCB0aGUgc2hvcnQgdGVybSBzb2x1dGlvbiBpcyB0byB0cmFuc2NvZGUgdGhlIHZp
ZGVvcyBpbgorICAgICAgICBXZWJLaXQsIGVuc3VyaW5nIEguMjY0IGVuY29kZWQgdmlkZW8gaXMg
YWx3YXlzIHByb3ZpZGVkIHRvIHNpdGVzLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIGltcGxlbWVu
dGF0aW9uIGRldGFpbHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1Bob3Rvc1VJU1BJ
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFu
ZWwubW06CisgICAgICAgICgtW19XS0ZpbGVVcGxvYWRJdGVtIHNldEZpbGVVUkw6XSk6CisKKyAg
ICAgICAgQWRkIGEgc2V0dGVyIHRvIHVwZGF0ZSB0aGUgZmlsZSBVUkwuIENhbGxlZCBhZnRlciB0
cmFuc2NvZGluZyBhIF9XS0ZpbGVVcGxvYWRJdGVtLgorCisgICAgICAgICgtW1dLRmlsZVVwbG9h
ZE1lZGlhVHJhbnNjb2RlciBpbml0V2l0aEl0ZW1zOnZpZGVvQ291bnQ6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisKKyAgICAgICAgSW50cm9kdWNlIFdLRmlsZVVwbG9hZE1lZGlhVHJhbnNjb2RlciB0
byBtYW5hZ2UgdHJhbnNjb2Rpbmcgb2YgdmlkZW9zCisgICAgICAgIGFuZCB0aGUgZGlzcGxheSBv
ZiBwcm9ncmVzcyBVSS4gVHJhbnNjb2RpbmcgaXMgcGVyZm9ybWVkIHNlcmlhbGx5CisgICAgICAg
IChvbmUgdmlkZW8gYXQgYSB0aW1lKSwgYnV0IG9jY3VycyBvZmYgdGhlIG1haW4gdGhyZWFkLgor
CisgICAgICAgICgtW1dLRmlsZVVwbG9hZE1lZGlhVHJhbnNjb2RlciBzdGFydF0pOgorCisgICAg
ICAgIEJlZ2luIHRyYW5zY29kaW5nLiBSdW4gYSB0aW1lciB0byB1cGRhdGUgdGhlIHByb2dyZXNz
IFVJLCBhcworICAgICAgICBBVkFzc2V0RXhwb3J0U2Vzc2lvbiBkb2VzIG5vdCBwcm92aWRlIHBy
b2dyZXNzIHVwZGF0ZXMgb24gaXRzIG93bi4KKworICAgICAgICBUaGUgcHJvZ3Jlc3MgVUkgaXMg
aW1wbGVtZW50ZWQgdXNpbmcgUFVBY3Rpdml0eVByb2dyZXNzQ29udHJvbGxlciwgdG8KKyAgICAg
ICAgbWF0Y2ggc3lzdGVtIFBob3RvcyBVSS4KKworICAgICAgICAoLVtXS0ZpbGVVcGxvYWRNZWRp
YVRyYW5zY29kZXIgX3Byb2Nlc3NJdGVtQXRJbmRleDpdKToKKworICAgICAgICBUcmFuc2NvZGUg
YSBzaW5nbGUgdmlkZW8sIHVzaW5nIEFWQXNzZXRFeHBvcnRTZXNzaW9uLiBJZiB0cmFuc2NvZGlu
ZworICAgICAgICBmYWlscyBmb3IgYW55IHJlYXNvbiwgdGhlIG9yaWdpbmFsIHZpZGVvIGlzIHVz
ZWQgYXMgYSBmYWxsYmFjay4KKyAgICAgICAgVHJhbnNjb2RpbmcgY2FuIGFsc28gYmUgY2FuY2Vs
bGVkIHVzaW5nIHRoZSBwcm9ncmVzcyBVSSwgaW4gd2hpY2ggY2FzZQorICAgICAgICBubyBtb3Jl
IHZpZGVvcyBhcmUgcHJvY2Vzc2VkLgorCisgICAgICAgICgtW1dLRmlsZVVwbG9hZE1lZGlhVHJh
bnNjb2RlciBfZmluaXNoZWRQcm9jZXNzaW5nXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZE1l
ZGlhVHJhbnNjb2RlciBfZGlzbWlzc1Byb2dyZXNzXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9h
ZE1lZGlhVHJhbnNjb2RlciBfdXBkYXRlUHJvZ3Jlc3M6XSk6CisgICAgICAgICgtW1dLRmlsZVVw
bG9hZE1lZGlhVHJhbnNjb2RlciBfdGVtcG9yYXJ5RGlyZWN0b3J5Q3JlYXRlSWZOZWNlc3Nhcnld
KToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2Nob29zZU1lZGlhSXRlbXM6XSk6CisK
KyAgICAgICAgUmVmYWN0b3IgdGhlIGNvbW1vbiBhc3BlY3RzIG9mIHNpbmdsZS9tdWx0aXBsZSBt
ZWRpYSBzZWxlY3Rpb24gaW50byBhCisgICAgICAgIHNpbmdsZSBtZXRob2QuCisKKyAgICAgICAg
KC1bV0tGaWxlVXBsb2FkUGFuZWwgaW1hZ2VQaWNrZXJDb250cm9sbGVyOmRpZEZpbmlzaFBpY2tp
bmdNZWRpYVdpdGhJbmZvOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBpbWFnZVBp
Y2tlckNvbnRyb2xsZXI6ZGlkRmluaXNoUGlja2luZ011bHRpcGxlTWVkaWFXaXRoSW5mbzpdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3Byb2Nlc3NNZWRpYUluZm9EaWN0aW9uYXJp
ZXM6c3VjY2Vzc0Jsb2NrOmZhaWx1cmVCbG9jazpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2Fk
UGFuZWwgX3Byb2Nlc3NNZWRpYUluZm9EaWN0aW9uYXJpZXM6YXRJbmRleDpwcm9jZXNzZWRSZXN1
bHRzOnN1Y2Nlc3NCbG9jazpmYWlsdXJlQmxvY2s6XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9h
ZFBhbmVsIF91cGxvYWRJdGVtRnJvbU1lZGlhSW5mbzpzdWNjZXNzQmxvY2s6ZmFpbHVyZUJsb2Nr
Ol0pOgorCisgICAgICAgIFJlbW92ZSByZWR1bmRhbnQgcGxhdGZvcm0gY29uZGl0aW9uYWwuCisK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3VwbG9hZE1lZGlhSXRlbXNUcmFuc2NvZGlu
Z1ZpZGVvOl0pOgorCisgICAgICAgIElmIGFueSB2aWRlb3Mgd2VyZSBzZWxlY3RlZCwgdHJhbnNj
b2RlIHRoZW0gcHJpb3IgdG8gdXBsb2FkaW5nLgorCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDktMTYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRqdXN0IEFSS0lUX0lOTElORV9QUkVWSUVXKiBj
b21waWxlIHRpbWUgZmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsuaAppbmRleCA3MDBlOWMzMmM0Y2ZiMWJkYzMwZWNmNDdhMDAw
NjMwNzIwNTI2OTBjLi5jNmFhMjg4ZmI2NmZmOTExYTNiYzg1MjIzNzI1ZjBiMDcyYjdmODM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5oCkBAIC0zOCw2ICszOCw3IEBAIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVkFz
c2V0Q2FjaGUpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWQXNzZXRDb2xsZWN0
aW9uKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVkFzc2V0RXhwb3J0U2Vzc2lv
bikKIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZBc3NldEltYWdlR2VuZXJhdG9y
KQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVkFzc2V0UmVhZGVyKQogU09GVF9M
SU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVkFzc2V0UmVhZGVyU2FtcGxlUmVmZXJlbmNlT3V0
cHV0KQpAQCAtMTg1LDYgKzE4Niw4IEBAIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
SEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvQ29kZWNUeXBlSEVWQ1dpCiAjZGVmaW5l
IEFWVmlkZW9Db2RlY1R5cGVIRVZDV2l0aEFscGhhIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlZp
ZGVvQ29kZWNUeXBlSEVWQ1dpdGhBbHBoYSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIEFWRm91bmRhdGlvbiwgQVZGaWxlVHlwZU1QRUc0LCBOU1N0cmluZyAqKQogI2RlZmlu
ZSBBVkZpbGVUeXBlTVBFRzQgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWRmlsZVR5cGVNUEVHNCgp
CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZGaWxl
VHlwZVF1aWNrVGltZU1vdmllLCBOU1N0cmluZyAqKQorI2RlZmluZSBBVkZpbGVUeXBlUXVpY2tU
aW1lTW92aWUgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWRmlsZVR5cGVRdWlja1RpbWVNb3ZpZSgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRl
b0NvZGVjS2V5LCBOU1N0cmluZyAqKQogI2RlZmluZSBBVlZpZGVvQ29kZWNLZXkgUEFMOjpnZXRf
QVZGb3VuZGF0aW9uX0FWVmlkZW9Db2RlY0tleSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hF
QURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb0NvZGVjSDI2NCwgTlNTdHJpbmcgKikKQEAg
LTMzMSw0ICszMzQsNyBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWQXVkaW9D
b21wcmVzc2VkQnVmZmVyKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVkF1ZGlv
UENNQnVmZmVyKQogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCitTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZBc3NldEV4cG9ydFByZXNldEhpZ2hl
c3RRdWFsaXR5LCBOU1N0cmluZyAqKQorI2RlZmluZSBBVkFzc2V0RXhwb3J0UHJlc2V0SGlnaGVz
dFF1YWxpdHkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWQXNzZXRFeHBvcnRQcmVzZXRIaWdoZXN0
UXVhbGl0eSgpCisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggNzMz
OTg0NWUwNzI2NTgwMWUwNjQwMzAzYjJlMjkxYTAxMjRlODcwZi4uZjBjMzBkOGJiZDNhYWJjNGZk
Zjg0ZTQ4MjY1YTU0ODZlNDM4NjMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC02Myw2ICs2Myw3IEBAIHZvaWQq
IEFWRm91bmRhdGlvbkxpYnJhcnkoYm9vbCBpc09wdGlvbmFsKQogI2VuZGlmCiAKIFNPRlRfTElO
S19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkFzc2V0
Q2FjaGUsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZBc3NldEV4cG9ydFNlc3Npb24sIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwg
QVZBc3NldEltYWdlR2VuZXJhdG9yLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXNzZXRSZWFkZXIsIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91
bmRhdGlvbiwgQVZBc3NldFdyaXRlciwgUEFMX0VYUE9SVCkKQEAgLTEzMyw2ICsxMzQsNyBAQCBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlv
biwgQVZBdWRpb1RpbWVQaXRjaEFsZwogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZVdhc0Nvbm5lY3RlZE5v
dGlmaWNhdGlvbiwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVEZXZpY2VX
YXNEaXNjb25uZWN0ZWROb3RpZmljYXRpb24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwg
QVZGaWxlVHlwZU1QRUc0LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWRmlsZVR5cGVR
dWlja1RpbWVNb3ZpZSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkxheWVyVmlkZW9H
cmF2aXR5UmVzaXplLCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dy
YXZpdHlSZXNpemVBc3BlY3QsIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZMYXllclZp
ZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwsIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCkBAIC0y
NTEsNCArMjUzLDYgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBBVkZvdW5kYXRpb24sIEFWQXVkaW9Db21wcmVzc2VkQnVmZmUKIFNPRlRfTElOS19DTEFTU19G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvUENNQnVmZmVy
LCBQQUxfRVhQT1JUKQogI2VuZGlmCiAKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkFzc2V0RXhwb3J0UHJlc2V0SGlnaGVzdFF1
YWxpdHksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFU
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXgg
OTE4OTlmZmYxODM3MTBlYjQzNGJmNzljNGU2NzcwMDlhYjI0NDliMi4uZTEyOWNjYTk4M2I5ZWZk
NGY4M2U3NGIyMmI0YmYzNjc0OThhMTVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZW4u
bHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9M
b2NhbGl6YWJsZS5zdHJpbmdzCkBAIC03NTQsNiArNzU0LDkgQEAKIC8qIERlc2NyaXB0aW9uIG9m
IHRoZSBQb3N0U2NyaXB0IHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBQREYgcHNldWRvIHBsdWctaW4u
IFZpc2libGUgaW4gdGhlIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4gKi8KICJQ
b3N0U2NyaXB0IiA9ICJQb3N0U2NyaXB0IjsKIAorLyogVGl0bGUgZm9yIGZpbGUgdXBsb2FkIHBy
b2dyZXNzIHZpZXcgKi8KKyJQcmVwYXJpbmcgKGZpbGUgdXBsb2FkKSIgPSAiUHJlcGFyaW5n4oCm
IjsKKwogLyogVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0aW9uIGJ1dHRvbiAqLwogIlF1aWNrIExv
b2siID0gIlF1aWNrIExvb2siOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9pb3MvUGhvdG9zVUlTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Q
aG90b3NVSVNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1OTM5MGIxNjhkNjM5YjM5ODE5MGRhYWYxYTI3YzFi
MzZmY2NlNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvUGhvdG9zVUlTUEkuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPFBob3Rvc1VJL1BVQWN0aXZpdHlQcm9ncmVz
c0NvbnRyb2xsZXIuaD4KKworI2Vsc2UKKworI2ltcG9ydCAiVUlLaXRTUEkuaCIKKworQGludGVy
ZmFjZSBQVUFjdGl2aXR5UHJvZ3Jlc3NDb250cm9sbGVyIDogTlNPYmplY3QKKworQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICp0aXRsZTsKKworQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIHZvaWQgKF5jYW5jZWxsYXRpb25IYW5kbGVyKSh2b2lkKTsKKworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlzQ2FuY2VsbGVkOworCistICh2b2lkKXNldEZy
YWN0aW9uQ29tcGxldGVkOihkb3VibGUpZnJhY3Rpb25Db21wbGV0ZWQ7CisKKy0gKHZvaWQpc2hv
d0FuaW1hdGVkOihCT09MKWFuaW1hdGVkIGFsbG93RGVsYXk6KEJPT0wpYWxsb3dEZWxheTsKKy0g
KHZvaWQpaGlkZUFuaW1hdGVkOihCT09MKWFuaW1hdGVkIGFsbG93RGVsYXk6KEJPT0wpYWxsb3dE
ZWxheTsKKworQGVuZAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5l
bC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5l
bC5tbQppbmRleCBhYTNmZTdjMDIwODMwNDU2YTAxYTlkNWYyNmQwOTlmN2Y3YzEzZTJlLi5lYzFh
MmQxNTE0NGUzM2FlNTQ2NzVhZTEzYTc5M2E0MzcwYzIxMWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCkBAIC0z
Miw2ICszMiw3IEBACiAjaW1wb3J0ICJBUElEYXRhLmgiCiAjaW1wb3J0ICJBUElPcGVuUGFuZWxQ
YXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJBUElTdHJpbmcuaCIKKyNpbXBvcnQgIlBob3Rvc1VJU1BJ
LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgi
CiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCIKQEAgLTQ1LDExICs0NiwxNyBA
QAogI2ltcG9ydCA8VW5pZm9ybVR5cGVJZGVudGlmaWVycy9Vbmlmb3JtVHlwZUlkZW50aWZpZXJz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBv
cnQgPHd0Zi9PcHRpb25TZXQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQg
PHd0Zi9XZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCisj
aW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKworU09GVF9MSU5LX0ZS
QU1FV09SSyhQaG90b3NVSSkKK1NPRlRfTElOS19DTEFTUyhQaG90b3NVSSwgUFVBY3Rpdml0eVBy
b2dyZXNzQ29udHJvbGxlcikKKwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogZW51bSBjbGFz
cyBXS0ZpbGVVcGxvYWRQYW5lbEltYWdlUGlja2VyVHlwZSA6IHVpbnQ4X3QgewpAQCAtNzksNyAr
ODYsNiBAQCBzdGF0aWMgYm9vbCBzZXRDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKE5TU2V0PE5T
U3RyaW5nICo+ICp0eXBlSWRlbnRpZmllcnMsIFVUVAogQGludGVyZmFjZSBfV0tGaWxlVXBsb2Fk
SXRlbSA6IE5TT2JqZWN0CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGaWxlVVJMOihOU1VSTCAq
KWZpbGVVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1ZpZGVv
KSBCT09MIHZpZGVvOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqZmls
ZVVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgUmV0YWluUHRyPFVJSW1hZ2U+
IGRpc3BsYXlJbWFnZTsKIEBlbmQKIApAQCAtMTA5LDYgKzExNSwxMSBAQCBzdGF0aWMgYm9vbCBz
ZXRDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKE5TU2V0PE5TU3RyaW5nICo+ICp0eXBlSWRlbnRp
ZmllcnMsIFVUVAogICAgIHJldHVybiBfZmlsZVVSTC5nZXQoKTsKIH0KIAorLSAodm9pZClzZXRG
aWxlVVJMOihOU1VSTCAqKWZpbGVVUkwKK3sKKyAgICBfZmlsZVVSTCA9IGZpbGVVUkw7Cit9CisK
IC0gKFJldGFpblB0cjxVSUltYWdlPilkaXNwbGF5SW1hZ2UKIHsKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTE1Myw5ICsxNjQsMTY0IEBAIHN0YXRpYyBib29sIHNldENvbnRhaW5zVVRJ
VGhhdENvbmZvcm1zVG8oTlNTZXQ8TlNTdHJpbmcgKj4gKnR5cGVJZGVudGlmaWVycywgVVRUCiAK
IEBlbmQKIAorI3ByYWdtYSBtYXJrIC0gV0tGaWxlVXBsb2FkTWVkaWFUcmFuc2NvZGVyCiAKLSNw
cmFnbWEgbWFyayAtIFdLRmlsZVVwbG9hZFBhbmVsCitAaW50ZXJmYWNlIFdLRmlsZVVwbG9hZE1l
ZGlhVHJhbnNjb2RlciA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEl0ZW1z
OihOU0FycmF5ICopaXRlbXMgdmlkZW9Db3VudDooTlNVSW50ZWdlcil2aWRlb0NvdW50IGNvbXBs
ZXRpb25IYW5kbGVyOihXVEY6OkZ1bmN0aW9uPHZvaWQoTlNBcnJheTxfV0tGaWxlVXBsb2FkSXRl
bSAqPiAqKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKKworLSAodm9pZClzdGFydDsKKworQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV0tGaWxlVXBsb2FkTWVkaWFUcmFuc2NvZGVyIHsKKyAgICBSZXRh
aW5QdHI8TlNUaW1lcj4gX3Byb2dyZXNzVGltZXI7CisgICAgUmV0YWluUHRyPFBVQWN0aXZpdHlQ
cm9ncmVzc0NvbnRyb2xsZXI+IF9wcm9ncmVzc0NvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPEFW
QXNzZXRFeHBvcnRTZXNzaW9uPiBfZXhwb3J0U2Vzc2lvbjsKKyAgICBSZXRhaW5QdHI8TlNBcnJh
eTxfV0tGaWxlVXBsb2FkSXRlbSAqPj4gX2l0ZW1zOworICAgIFJldGFpblB0cjxOU1N0cmluZz4g
X3RlbXBvcmFyeURpcmVjdG9yeVBhdGg7CisKKyAgICAvLyBPbmx5IGNhbGxlZCBpZiB0aGUgdHJh
bnNjb2RpbmcgaXMgbm90IGNhbmNlbGxlZC4KKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoTlNBcnJh
eTxfV0tGaWxlVXBsb2FkSXRlbSAqPiAqKT4gX2NvbXBsZXRpb25IYW5kbGVyOworCisgICAgTlNV
SW50ZWdlciBfdmlkZW9Db3VudDsKKyAgICBOU1VJbnRlZ2VyIF9wcm9jZXNzZWRWaWRlb0NvdW50
OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJdGVtczooTlNBcnJheTxfV0tGaWxlVXBs
b2FkSXRlbSAqPiAqKWl0ZW1zIHZpZGVvQ291bnQ6KE5TVUludGVnZXIpdmlkZW9Db3VudCBjb21w
bGV0aW9uSGFuZGxlcjooV1RGOjpGdW5jdGlvbjx2b2lkKE5TQXJyYXk8X1dLRmlsZVVwbG9hZEl0
ZW0gKj4gKik+JiYpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9pdGVtcyA9IGl0ZW1zOworICAg
IF9wcm9jZXNzZWRWaWRlb0NvdW50ID0gMDsKKyAgICBfdmlkZW9Db3VudCA9IHZpZGVvQ291bnQ7
CisKKyAgICBfY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsK
KworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXN0YXJ0Cit7CisgICAgX3Byb2dyZXNz
Q29udHJvbGxlciA9IGFkb3B0TlMoW2FsbG9jUFVBY3Rpdml0eVByb2dyZXNzQ29udHJvbGxlcklu
c3RhbmNlKCkgaW5pdF0pOworICAgIFtfcHJvZ3Jlc3NDb250cm9sbGVyIHNldFRpdGxlOldFQl9V
SV9TVFJJTkdfS0VZKCJQcmVwYXJpbmfigKYiLCAiUHJlcGFyaW5nIChmaWxlIHVwbG9hZCkiLCAi
VGl0bGUgZm9yIGZpbGUgdXBsb2FkIHByb2dyZXNzIHZpZXciKV07CisgICAgW19wcm9ncmVzc0Nv
bnRyb2xsZXIgc2hvd0FuaW1hdGVkOllFUyBhbGxvd0RlbGF5OllFU107CisKKyAgICBbX3Byb2dy
ZXNzQ29udHJvbGxlciBzZXRDYW5jZWxsYXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbd2Vha1Nl
bGYgPSBXZWFrT2JqQ1B0cjxXS0ZpbGVVcGxvYWRNZWRpYVRyYW5zY29kZXI+KHNlbGYpXSB7Cisg
ICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0
cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgW3N0cm9uZ1NlbGYtPl9l
eHBvcnRTZXNzaW9uIGNhbmNlbEV4cG9ydF07CisgICAgICAgIFtzdHJvbmdTZWxmIF9kaXNtaXNz
UHJvZ3Jlc3NdOworICAgIH0pLmdldCgpXTsKKworICAgIF9wcm9ncmVzc1RpbWVyID0gW05TVGlt
ZXIgc2NoZWR1bGVkVGltZXJXaXRoVGltZUludGVydmFsOjAuMWYgdGFyZ2V0OnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKF91cGRhdGVQcm9ncmVzczopIHVzZXJJbmZvOm5pbCByZXBlYXRzOllFU107
CisKKyAgICBbc2VsZiBfcHJvY2Vzc0l0ZW1BdEluZGV4OjBdOworfQorCistICh2b2lkKV9wcm9j
ZXNzSXRlbUF0SW5kZXg6KE5TVUludGVnZXIpaW5kZXgKK3sKKyAgICBpZiAoW19wcm9ncmVzc0Nv
bnRyb2xsZXIgaXNDYW5jZWxsZWRdKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaW5kZXgg
Pj0gW19pdGVtcyBjb3VudF0pIHsKKyAgICAgICAgW3NlbGYgX2ZpbmlzaGVkUHJvY2Vzc2luZ107
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBfV0tGaWxlVXBsb2FkSXRlbSAqaXRlbSA9
IFtfaXRlbXMgb2JqZWN0QXRJbmRleDppbmRleF07CisKKyAgICB3aGlsZSAoIWl0ZW0uaXNWaWRl
bykgeworICAgICAgICBpbmRleCsrOwogCisgICAgICAgIGlmIChpbmRleCA9PSBbX2l0ZW1zIGNv
dW50XSkgeworICAgICAgICAgICAgW3NlbGYgX2ZpbmlzaGVkUHJvY2Vzc2luZ107CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpdGVtID0gW19pdGVtcyBvYmplY3RB
dEluZGV4OmluZGV4XTsKKyAgICB9CisKKyAgICBOU1N0cmluZyAqdGVtcG9yYXJ5RGlyZWN0b3J5
ID0gW3NlbGYgX3RlbXBvcmFyeURpcmVjdG9yeUNyZWF0ZUlmTmVjZXNzYXJ5XTsKKyAgICBpZiAo
IXRlbXBvcmFyeURpcmVjdG9yeSkgeworICAgICAgICBMT0dfRVJST1IoIldLRmlsZVVwbG9hZE1l
ZGlhVHJhbnNjb2RlcjogRmFpbGVkIHRvIG1ha2UgdGVtcG9yYXJ5IGRpcmVjdG9yeSIpOworICAg
ICAgICBbc2VsZiBfZmluaXNoZWRQcm9jZXNzaW5nXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIE5TU3RyaW5nICpmaWxlTmFtZSA9IFtpdGVtLmZpbGVVUkwubGFzdFBhdGhDb21wb25l
bnQuc3RyaW5nQnlEZWxldGluZ1BhdGhFeHRlbnNpb24gc3RyaW5nQnlBcHBlbmRpbmdQYXRoRXh0
ZW5zaW9uOlVUVHlwZVF1aWNrVGltZU1vdmllLnByZWZlcnJlZEZpbGVuYW1lRXh0ZW5zaW9uLnVw
cGVyY2FzZVN0cmluZ107CisgICAgTlNTdHJpbmcgKmZpbGVQYXRoID0gW3RlbXBvcmFyeURpcmVj
dG9yeSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6ZmlsZU5hbWVdOworICAgIE5TVVJM
ICpvdXRwdXRVUkwgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOmZpbGVQYXRoIGlzRGlyZWN0b3J5
Ok5PXTsKKworICAgIFJldGFpblB0cjxBVlVSTEFzc2V0PiBhc3NldCA9IGFkb3B0TlMoW1BBTDo6
YWxsb2NBVlVSTEFzc2V0SW5zdGFuY2UoKSBpbml0V2l0aFVSTDppdGVtLmZpbGVVUkwgb3B0aW9u
czpuaWxdKTsKKyAgICBfZXhwb3J0U2Vzc2lvbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkFzc2V0
RXhwb3J0U2Vzc2lvbkluc3RhbmNlKCkgaW5pdFdpdGhBc3NldDphc3NldC5nZXQoKSBwcmVzZXRO
YW1lOkFWQXNzZXRFeHBvcnRQcmVzZXRIaWdoZXN0UXVhbGl0eV0pOworICAgIFtfZXhwb3J0U2Vz
c2lvbiBzZXRPdXRwdXRVUkw6b3V0cHV0VVJMXTsKKyAgICBbX2V4cG9ydFNlc3Npb24gc2V0T3V0
cHV0RmlsZVR5cGU6QVZGaWxlVHlwZVF1aWNrVGltZU1vdmllXTsKKworICAgIFtfZXhwb3J0U2Vz
c2lvbiBleHBvcnRBc3luY2hyb25vdXNseVdpdGhDb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQ
dHIoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tGaWxlVXBsb2FkTWVkaWFUcmFuc2NvZGVyPihz
ZWxmKSwgaW5kZXhdICgpIG11dGFibGUgeworICAgICAgICBlbnN1cmVPbk1haW5SdW5Mb29wKFt3
ZWFrU2VsZiA9IFdURk1vdmUod2Vha1NlbGYpLCBpbmRleF0geworICAgICAgICAgICAgYXV0byBz
dHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgICAgICBpZiAoIXN0cm9uZ1NlbGYp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBBVkFzc2V0RXhwb3J0U2Vz
c2lvblN0YXR1cyBzdGF0dXMgPSBbc3Ryb25nU2VsZi0+X2V4cG9ydFNlc3Npb24gc3RhdHVzXTsK
KworICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBBVkFzc2V0RXhwb3J0U2Vzc2lvblN0YXR1c0Nh
bmNlbGxlZCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmIChzdGF0
dXMgPT0gQVZBc3NldEV4cG9ydFNlc3Npb25TdGF0dXNDb21wbGV0ZWQpIHsKKyAgICAgICAgICAg
ICAgICBfV0tGaWxlVXBsb2FkSXRlbSAqaXRlbSA9IFtzdHJvbmdTZWxmLT5faXRlbXMgb2JqZWN0
QXRJbmRleDppbmRleF07CisgICAgICAgICAgICAgICAgW2l0ZW0gc2V0RmlsZVVSTDpbc3Ryb25n
U2VsZi0+X2V4cG9ydFNlc3Npb24gb3V0cHV0VVJMXV07CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHN0cm9uZ1NlbGYtPl9leHBvcnRTZXNzaW9uID0gbmlsOworCisgICAgICAgICAgICBz
dHJvbmdTZWxmLT5fcHJvY2Vzc2VkVmlkZW9Db3VudCsrOworICAgICAgICAgICAgW3N0cm9uZ1Nl
bGYgX3Byb2Nlc3NJdGVtQXRJbmRleDppbmRleCArIDFdOworICAgICAgICB9KTsKKyAgICB9KS5n
ZXQoKV07Cit9CisKKy0gKHZvaWQpX2ZpbmlzaGVkUHJvY2Vzc2luZworeworICAgIFtzZWxmIF9k
aXNtaXNzUHJvZ3Jlc3NdOworCisgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6
OmV4Y2hhbmdlKF9jb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpCisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKF9pdGVtcy5nZXQoKSk7Cit9CisKKy0gKHZvaWQpX2Rpc21pc3NQcm9ncmVzcwor
eworICAgIFtfcHJvZ3Jlc3NUaW1lciBpbnZhbGlkYXRlXTsKKyAgICBbX3Byb2dyZXNzQ29udHJv
bGxlciBoaWRlQW5pbWF0ZWQ6Tk8gYWxsb3dEZWxheTpOT107Cit9CisKKy0gKHZvaWQpX3VwZGF0
ZVByb2dyZXNzOihOU1RpbWVyICopdGltZXIKK3sKKyAgICBhdXRvIGN1cnJlbnRTZXNzaW9uUHJv
Z3Jlc3MgPSBbX2V4cG9ydFNlc3Npb24gcHJvZ3Jlc3NdOworICAgIFtfcHJvZ3Jlc3NDb250cm9s
bGVyIHNldEZyYWN0aW9uQ29tcGxldGVkOihjdXJyZW50U2Vzc2lvblByb2dyZXNzICsgX3Byb2Nl
c3NlZFZpZGVvQ291bnQpIC8gX3ZpZGVvQ291bnRdOworfQorCistIChOU1N0cmluZyAqKV90ZW1w
b3JhcnlEaXJlY3RvcnlDcmVhdGVJZk5lY2Vzc2FyeQoreworICAgIGlmIChfdGVtcG9yYXJ5RGly
ZWN0b3J5UGF0aCkgeworICAgICAgICBCT09MIGlzRGlyZWN0b3J5ID0gTk87CisgICAgICAgIEJP
T0wgZXhpc3RzID0gW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQ
YXRoOl90ZW1wb3JhcnlEaXJlY3RvcnlQYXRoLmdldCgpIGlzRGlyZWN0b3J5OiZpc0RpcmVjdG9y
eV07CisKKyAgICAgICAgaWYgKGV4aXN0cyAmJiBpc0RpcmVjdG9yeSkKKyAgICAgICAgICAgIHJl
dHVybiBfdGVtcG9yYXJ5RGlyZWN0b3J5UGF0aC5nZXQoKTsKKyAgICB9CisKKyAgICBfdGVtcG9y
YXJ5RGlyZWN0b3J5UGF0aCA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShA
IldLVmlkZW9VcGxvYWQiKTsKKyAgICByZXR1cm4gX3RlbXBvcmFyeURpcmVjdG9yeVBhdGguZ2V0
KCk7Cit9CisKK0BlbmQKKworI3ByYWdtYSBtYXJrIC0gV0tGaWxlVXBsb2FkUGFuZWwKIAogQGlu
dGVyZmFjZSBXS0ZpbGVVcGxvYWRQYW5lbCAoKSA8VUlQb3BvdmVyQ29udHJvbGxlckRlbGVnYXRl
LCBVSU5hdmlnYXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVy
RGVsZWdhdGUsIFVJRG9jdW1lbnRQaWNrZXJEZWxlZ2F0ZSwgVUlBZGFwdGl2ZVByZXNlbnRhdGlv
bkNvbnRyb2xsZXJEZWxlZ2F0ZQogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQpAQCAtMTcyLDYgKzMz
OCw3IEBAIHN0YXRpYyBib29sIHNldENvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8oTlNTZXQ8TlNT
dHJpbmcgKj4gKnR5cGVJZGVudGlmaWVycywgVVRUCiAgICAgQ0dQb2ludCBfaW50ZXJhY3Rpb25Q
b2ludDsKICAgICBCT09MIF9hbGxvd011bHRpcGxlRmlsZXM7CiAgICAgQk9PTCBfdXNpbmdDYW1l
cmE7CisgICAgUmV0YWluUHRyPFdLRmlsZVVwbG9hZE1lZGlhVHJhbnNjb2Rlcj4gX21lZGlhVHJh
bnNjb2RlcjsKICAgICBSZXRhaW5QdHI8VUlJbWFnZVBpY2tlckNvbnRyb2xsZXI+IF9pbWFnZVBp
Y2tlcjsKICAgICBSZXRhaW5QdHI8VUlWaWV3Q29udHJvbGxlcj4gX3ByZXNlbnRhdGlvblZpZXdD
b250cm9sbGVyOyAvLyBpUGhvbmUgYWx3YXlzLiBpUGFkIGZvciBGdWxsc2NyZWVuIENhbWVyYS4K
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgpAQCAtMjIwLDYgKzM4Nywz
MCBAQCBzdGF0aWMgYm9vbCBzZXRDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKE5TU2V0PE5TU3Ry
aW5nICo+ICp0eXBlSWRlbnRpZmllcnMsIFVUVAogICAgIFtzZWxmIF9kaXNwYXRjaERpZERpc21p
c3NdOwogfQogCistICh2b2lkKV9jaG9vc2VNZWRpYUl0ZW1zOihOU0FycmF5PF9XS0ZpbGVVcGxv
YWRJdGVtICo+ICopbWVkaWFJdGVtcworeworICAgIFJldGFpblB0cjxVSUltYWdlPiBpY29uSW1h
Z2UgPSBuaWw7CisgICAgTlNNdXRhYmxlQXJyYXkgKmZpbGVVUkxzID0gW05TTXV0YWJsZUFycmF5
IGFycmF5XTsKKyAgICBOU1VJbnRlZ2VyIHZpZGVvQ291bnQgPSAwOworCisgICAgZm9yIChfV0tG
aWxlVXBsb2FkSXRlbSAqaXRlbSBpbiBtZWRpYUl0ZW1zKSB7CisgICAgICAgIFtmaWxlVVJMcyBh
ZGRPYmplY3Q6aXRlbS5maWxlVVJMXTsKKworICAgICAgICBpZiAoIWljb25JbWFnZSkKKyAgICAg
ICAgICAgIGljb25JbWFnZSA9IGl0ZW0uZGlzcGxheUltYWdlOworCisgICAgICAgIGlmIChpdGVt
LmlzVmlkZW8pCisgICAgICAgICAgICB2aWRlb0NvdW50Kys7CisgICAgfQorCisgICAgTlNVSW50
ZWdlciBpbWFnZUNvdW50ID0gbWVkaWFJdGVtcy5jb3VudCAtIHZpZGVvQ291bnQ7CisKKyAgICBO
U1N0cmluZyAqZGlzcGxheVN0cmluZyA9IChpbWFnZUNvdW50IHx8IHZpZGVvQ291bnQpID8gW05T
U3RyaW5nIGxvY2FsaXplZFN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX05TU1RSSU5HKEAiJWx1IHBo
b3RvKHMpIGFuZCAlbHUgdmlkZW8ocykiLCAibGFiZWwgbmV4dCB0byBmaWxlIHVwbG9hZCBjb250
cm9sOyBwYXJhbWV0ZXJzIGFyZSB0aGUgbnVtYmVyIG9mIHBob3RvcyBhbmQgdGhlIG51bWJlciBv
ZiB2aWRlb3MiKSwgKHVuc2lnbmVkIGxvbmcpaW1hZ2VDb3VudCwgKHVuc2lnbmVkIGxvbmcpdmlk
ZW9Db3VudF0gOiBuaWw7CisKKyAgICBbc2VsZiBfZGlzbWlzc0Rpc3BsYXlBbmltYXRlZDpZRVNd
OworICAgIFtzZWxmIF9jaG9vc2VGaWxlczpmaWxlVVJMcyBkaXNwbGF5U3RyaW5nOmRpc3BsYXlT
dHJpbmcgaWNvbkltYWdlOmljb25JbWFnZS5nZXQoKV07Cit9CisKIC0gKHZvaWQpX2Nob29zZUZp
bGVzOihOU0FycmF5ICopZmlsZVVSTHMgZGlzcGxheVN0cmluZzooTlNTdHJpbmcgKilkaXNwbGF5
U3RyaW5nIGljb25JbWFnZTooVUlJbWFnZSAqKWljb25JbWFnZQogewogICAgIE5TVUludGVnZXIg
Y291bnQgPSBbZmlsZVVSTHMgY291bnRdOwpAQCAtNzI5LDE4ICs5MjAsMTYgQEAgc3RhdGljIE5T
U3RyaW5nICpkaXNwbGF5U3RyaW5nRm9yRG9jdW1lbnRzQXRVUkxzKE5TQXJyYXk8TlNVUkwgKj4g
KnVybHMpCiAgICAgaWYgKFtzZWxmIF93aWxsTXVsdGlwbGVTZWxlY3Rpb25EZWxlZ2F0ZUJlQ2Fs
bGVkXSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0
ZWQ6WUVTXTsKLQogICAgIFtzZWxmIF9wcm9jZXNzTWVkaWFJbmZvRGljdGlvbmFyaWVzOkBbaW5m
b10KLSAgICAgICAgc3VjY2Vzc0Jsb2NrOl4oTlNBcnJheSAqcHJvY2Vzc2VkUmVzdWx0cywgTlNT
dHJpbmcgKmRpc3BsYXlTdHJpbmcpIHsKLSAgICAgICAgICAgIEFTU0VSVChbcHJvY2Vzc2VkUmVz
dWx0cyBjb3VudF0gPT0gMSk7Ci0gICAgICAgICAgICBfV0tGaWxlVXBsb2FkSXRlbSAqcmVzdWx0
ID0gW3Byb2Nlc3NlZFJlc3VsdHMgb2JqZWN0QXRJbmRleDowXTsKLSAgICAgICAgICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbc2VsZiwgc3Ryb25nU2VsZiA9IHJldGFpblB0cihzZWxmKSwg
cmVzdWx0ID0gcmV0YWluUHRyKHJlc3VsdCksIGRpc3BsYXlTdHJpbmcgPSByZXRhaW5QdHIoZGlz
cGxheVN0cmluZyldIHsKLSAgICAgICAgICAgICAgICBbc2VsZiBfY2hvb3NlRmlsZXM6QFtyZXN1
bHQuZ2V0KCkuZmlsZVVSTF0gZGlzcGxheVN0cmluZzpkaXNwbGF5U3RyaW5nLmdldCgpIGljb25J
bWFnZTpyZXN1bHQuZ2V0KCkuZGlzcGxheUltYWdlLmdldCgpXTsKKyAgICAgICAgc3VjY2Vzc0Js
b2NrOl4oTlNBcnJheTxfV0tGaWxlVXBsb2FkSXRlbSAqPiAqaXRlbXMpIHsKKyAgICAgICAgICAg
IEFTU0VSVChbaXRlbXMgY291bnRdID09IDEpOworICAgICAgICAgICAgZW5zdXJlT25NYWluUnVu
TG9vcChbc2VsZiwgc3Ryb25nU2VsZiA9IHJldGFpblB0cihzZWxmKSwgaXRlbXMgPSByZXRhaW5Q
dHIoaXRlbXMpXSB7CisgICAgICAgICAgICAgICAgW3NlbGYgX2Nob29zZU1lZGlhSXRlbXM6aXRl
bXMuZ2V0KCldOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICAgICAgZmFpbHVyZUJs
b2NrOl57Ci0gICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3NlbGYsIHN0cm9u
Z1NlbGYgPSByZXRhaW5QdHIoc2VsZildIHsKKyAgICAgICAgICAgIGVuc3VyZU9uTWFpblJ1bkxv
b3AoW3NlbGYsIHN0cm9uZ1NlbGYgPSByZXRhaW5QdHIoc2VsZildIHsKKyAgICAgICAgICAgICAg
ICBbc2VsZiBfZGlzbWlzc0Rpc3BsYXlBbmltYXRlZDpZRVNdOwogICAgICAgICAgICAgICAgIFtz
ZWxmIF9jYW5jZWxdOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KQEAgLTc0OSwyNyArOTM4
LDEzIEBAIHN0YXRpYyBOU1N0cmluZyAqZGlzcGxheVN0cmluZ0ZvckRvY3VtZW50c0F0VVJMcyhO
U0FycmF5PE5TVVJMICo+ICp1cmxzKQogCiAtICh2b2lkKWltYWdlUGlja2VyQ29udHJvbGxlcjoo
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXIgKilpbWFnZVBpY2tlciBkaWRGaW5pc2hQaWNraW5nTXVs
dGlwbGVNZWRpYVdpdGhJbmZvOihOU0FycmF5ICopaW5mb3MKIHsKLSAgICBbc2VsZiBfZGlzbWlz
c0Rpc3BsYXlBbmltYXRlZDpZRVNdOwotCiAgICAgW3NlbGYgX3Byb2Nlc3NNZWRpYUluZm9EaWN0
aW9uYXJpZXM6aW5mb3MKLSAgICAgICAgc3VjY2Vzc0Jsb2NrOl4oTlNBcnJheSAqcHJvY2Vzc2Vk
UmVzdWx0cywgTlNTdHJpbmcgKmRpc3BsYXlTdHJpbmcpIHsKLSAgICAgICAgICAgIFJldGFpblB0
cjxVSUltYWdlPiBpY29uSW1hZ2UgPSBuaWw7Ci0gICAgICAgICAgICBOU011dGFibGVBcnJheSAq
ZmlsZVVSTHMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOwotICAgICAgICAgICAgZm9yIChfV0tG
aWxlVXBsb2FkSXRlbSAqcmVzdWx0IGluIHByb2Nlc3NlZFJlc3VsdHMpIHsKLSAgICAgICAgICAg
ICAgICBOU1VSTCAqZmlsZVVSTCA9IHJlc3VsdC5maWxlVVJMOwotICAgICAgICAgICAgICAgIGlm
ICghZmlsZVVSTCkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAg
ICAgW2ZpbGVVUkxzIGFkZE9iamVjdDpyZXN1bHQuZmlsZVVSTF07Ci0gICAgICAgICAgICAgICAg
aWYgKCFpY29uSW1hZ2UpCi0gICAgICAgICAgICAgICAgICAgIGljb25JbWFnZSA9IHJlc3VsdC5k
aXNwbGF5SW1hZ2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbc2VsZiwgc3Ryb25nU2VsZiA9IHJldGFpblB0cihzZWxmKSwgZmlsZVVSTHMg
PSByZXRhaW5QdHIoZmlsZVVSTHMpLCBkaXNwbGF5U3RyaW5nID0gcmV0YWluUHRyKGRpc3BsYXlT
dHJpbmcpLCBpY29uSW1hZ2VdIHsKLSAgICAgICAgICAgICAgICBbc2VsZiBfY2hvb3NlRmlsZXM6
ZmlsZVVSTHMuZ2V0KCkgZGlzcGxheVN0cmluZzpkaXNwbGF5U3RyaW5nLmdldCgpIGljb25JbWFn
ZTppY29uSW1hZ2UuZ2V0KCldOwotICAgICAgICAgICAgfSk7CisgICAgICAgIHN1Y2Nlc3NCbG9j
azpeKE5TQXJyYXk8X1dLRmlsZVVwbG9hZEl0ZW0gKj4gKml0ZW1zKSB7CisgICAgICAgICAgICBb
c2VsZiBfdXBsb2FkTWVkaWFJdGVtc1RyYW5zY29kaW5nVmlkZW86aXRlbXNdOwogICAgICAgICB9
CiAgICAgICAgIGZhaWx1cmVCbG9jazpeewotICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFtzZWxmLCBzdHJvbmdTZWxmID0gcmV0YWluUHRyKHNlbGYpXSB7CisgICAgICAgICAg
ICBlbnN1cmVPbk1haW5SdW5Mb29wKFtzZWxmLCBzdHJvbmdTZWxmID0gcmV0YWluUHRyKHNlbGYp
XSB7CisgICAgICAgICAgICAgICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6WUVTXTsK
ICAgICAgICAgICAgICAgICBbc2VsZiBfY2FuY2VsXTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9CkBAIC03ODQsMTcgKzk1OSwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmRpc3BsYXlTdHJpbmdG
b3JEb2N1bWVudHNBdFVSTHMoTlNBcnJheTxOU1VSTCAqPiAqdXJscykKIAogI3ByYWdtYSBtYXJr
IC0gUHJvY2VzcyBVSUltYWdlUGlja2VyIHJlc3VsdHMKIAotLSAodm9pZClfcHJvY2Vzc01lZGlh
SW5mb0RpY3Rpb25hcmllczooTlNBcnJheSAqKWluZm9zIHN1Y2Nlc3NCbG9jazoodm9pZCAoXiko
TlNBcnJheSAqcHJvY2Vzc2VkUmVzdWx0cywgTlNTdHJpbmcgKmRpc3BsYXlTdHJpbmcpKXN1Y2Nl
c3NCbG9jayBmYWlsdXJlQmxvY2s6KHZvaWQgKF4pKHZvaWQpKWZhaWx1cmVCbG9jaworLSAodm9p
ZClfcHJvY2Vzc01lZGlhSW5mb0RpY3Rpb25hcmllczooTlNBcnJheSAqKWluZm9zIHN1Y2Nlc3NC
bG9jazoodm9pZCAoXikoTlNBcnJheTxfV0tGaWxlVXBsb2FkSXRlbSAqPiAqcHJvY2Vzc2VkUmVz
dWx0cykpc3VjY2Vzc0Jsb2NrIGZhaWx1cmVCbG9jazoodm9pZCAoXikodm9pZCkpZmFpbHVyZUJs
b2NrCiB7Ci0gICAgW3NlbGYgX3Byb2Nlc3NNZWRpYUluZm9EaWN0aW9uYXJpZXM6aW5mb3MgYXRJ
bmRleDowIHByb2Nlc3NlZFJlc3VsdHM6W05TTXV0YWJsZUFycmF5IGFycmF5XSBwcm9jZXNzZWRJ
bWFnZUNvdW50OjAgcHJvY2Vzc2VkVmlkZW9Db3VudDowIHN1Y2Nlc3NCbG9jazpzdWNjZXNzQmxv
Y2sgZmFpbHVyZUJsb2NrOmZhaWx1cmVCbG9ja107CisgICAgW3NlbGYgX3Byb2Nlc3NNZWRpYUlu
Zm9EaWN0aW9uYXJpZXM6aW5mb3MgYXRJbmRleDowIHByb2Nlc3NlZFJlc3VsdHM6W05TTXV0YWJs
ZUFycmF5IGFycmF5XSBzdWNjZXNzQmxvY2s6c3VjY2Vzc0Jsb2NrIGZhaWx1cmVCbG9jazpmYWls
dXJlQmxvY2tdOwogfQogCi0tICh2b2lkKV9wcm9jZXNzTWVkaWFJbmZvRGljdGlvbmFyaWVzOihO
U0FycmF5ICopaW5mb3MgYXRJbmRleDooTlNVSW50ZWdlcilpbmRleCBwcm9jZXNzZWRSZXN1bHRz
OihOU011dGFibGVBcnJheSAqKXByb2Nlc3NlZFJlc3VsdHMgcHJvY2Vzc2VkSW1hZ2VDb3VudDoo
TlNVSW50ZWdlcilwcm9jZXNzZWRJbWFnZUNvdW50IHByb2Nlc3NlZFZpZGVvQ291bnQ6KE5TVUlu
dGVnZXIpcHJvY2Vzc2VkVmlkZW9Db3VudCBzdWNjZXNzQmxvY2s6KHZvaWQgKF4pKE5TQXJyYXkg
KnByb2Nlc3NlZFJlc3VsdHMsIE5TU3RyaW5nICpkaXNwbGF5U3RyaW5nKSlzdWNjZXNzQmxvY2sg
ZmFpbHVyZUJsb2NrOih2b2lkICheKSh2b2lkKSlmYWlsdXJlQmxvY2sKKy0gKHZvaWQpX3Byb2Nl
c3NNZWRpYUluZm9EaWN0aW9uYXJpZXM6KE5TQXJyYXkgKilpbmZvcyBhdEluZGV4OihOU1VJbnRl
Z2VyKWluZGV4IHByb2Nlc3NlZFJlc3VsdHM6KE5TTXV0YWJsZUFycmF5PF9XS0ZpbGVVcGxvYWRJ
dGVtICo+ICopcHJvY2Vzc2VkUmVzdWx0cyBzdWNjZXNzQmxvY2s6KHZvaWQgKF4pKE5TQXJyYXk8
X1dLRmlsZVVwbG9hZEl0ZW0gKj4gKnByb2Nlc3NlZFJlc3VsdHMpKXN1Y2Nlc3NCbG9jayBmYWls
dXJlQmxvY2s6KHZvaWQgKF4pKHZvaWQpKWZhaWx1cmVCbG9jawogewogICAgIE5TVUludGVnZXIg
Y291bnQgPSBbaW5mb3MgY291bnRdOwogICAgIGlmIChpbmRleCA9PSBjb3VudCkgewotICAgICAg
ICBOU1N0cmluZyAqZGlzcGxheVN0cmluZyA9IChwcm9jZXNzZWRJbWFnZUNvdW50IHx8IHByb2Nl
c3NlZFZpZGVvQ291bnQpID8gW05TU3RyaW5nIGxvY2FsaXplZFN0cmluZ1dpdGhGb3JtYXQ6V0VC
X1VJX05TU1RSSU5HKEAiJWx1IHBob3RvKHMpIGFuZCAlbHUgdmlkZW8ocykiLCAibGFiZWwgbmV4
dCB0byBmaWxlIHVwbG9hZCBjb250cm9sOyBwYXJhbWV0ZXJzIGFyZSB0aGUgbnVtYmVyIG9mIHBo
b3RvcyBhbmQgdGhlIG51bWJlciBvZiB2aWRlb3MiKSwgKHVuc2lnbmVkIGxvbmcpcHJvY2Vzc2Vk
SW1hZ2VDb3VudCwgKHVuc2lnbmVkIGxvbmcpcHJvY2Vzc2VkVmlkZW9Db3VudF0gOiBuaWw7Ci0g
ICAgICAgIHN1Y2Nlc3NCbG9jayhwcm9jZXNzZWRSZXN1bHRzLCBkaXNwbGF5U3RyaW5nKTsKKyAg
ICAgICAgc3VjY2Vzc0Jsb2NrKHByb2Nlc3NlZFJlc3VsdHMpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC04MDMsMTAgKzk3Nyw4IEBAIHN0YXRpYyBOU1N0cmluZyAqZGlzcGxheVN0cmlu
Z0ZvckRvY3VtZW50c0F0VVJMcyhOU0FycmF5PE5TVVJMICo+ICp1cmxzKQogICAgIGluZGV4Kys7
CiAKICAgICBhdXRvIHVwbG9hZEl0ZW1TdWNjZXNzQmxvY2sgPSBeKF9XS0ZpbGVVcGxvYWRJdGVt
ICp1cGxvYWRJdGVtKSB7Ci0gICAgICAgIE5TVUludGVnZXIgbmV3UHJvY2Vzc2VkVmlkZW9Db3Vu
dCA9IHByb2Nlc3NlZFZpZGVvQ291bnQgKyAodXBsb2FkSXRlbS5pc1ZpZGVvID8gMSA6IDApOwot
ICAgICAgICBOU1VJbnRlZ2VyIG5ld1Byb2Nlc3NlZEltYWdlQ291bnQgPSBwcm9jZXNzZWRJbWFn
ZUNvdW50ICsgKHVwbG9hZEl0ZW0uaXNWaWRlbyA/IDAgOiAxKTsKICAgICAgICAgW3Byb2Nlc3Nl
ZFJlc3VsdHMgYWRkT2JqZWN0OnVwbG9hZEl0ZW1dOwotICAgICAgICBbc2VsZiBfcHJvY2Vzc01l
ZGlhSW5mb0RpY3Rpb25hcmllczppbmZvcyBhdEluZGV4OmluZGV4IHByb2Nlc3NlZFJlc3VsdHM6
cHJvY2Vzc2VkUmVzdWx0cyBwcm9jZXNzZWRJbWFnZUNvdW50Om5ld1Byb2Nlc3NlZEltYWdlQ291
bnQgcHJvY2Vzc2VkVmlkZW9Db3VudDpuZXdQcm9jZXNzZWRWaWRlb0NvdW50IHN1Y2Nlc3NCbG9j
azpzdWNjZXNzQmxvY2sgZmFpbHVyZUJsb2NrOmZhaWx1cmVCbG9ja107CisgICAgICAgIFtzZWxm
IF9wcm9jZXNzTWVkaWFJbmZvRGljdGlvbmFyaWVzOmluZm9zIGF0SW5kZXg6aW5kZXggcHJvY2Vz
c2VkUmVzdWx0czpwcm9jZXNzZWRSZXN1bHRzIHN1Y2Nlc3NCbG9jazpzdWNjZXNzQmxvY2sgZmFp
bHVyZUJsb2NrOmZhaWx1cmVCbG9ja107CiAgICAgfTsKIAogICAgIFtzZWxmIF91cGxvYWRJdGVt
RnJvbU1lZGlhSW5mbzppbmZvIHN1Y2Nlc3NCbG9jazp1cGxvYWRJdGVtU3VjY2Vzc0Jsb2NrIGZh
aWx1cmVCbG9jazpmYWlsdXJlQmxvY2tdOwpAQCAtODkwLDcgKzEwNjIsNiBAQCBzdGF0aWMgTlNT
dHJpbmcgKmRpc3BsYXlTdHJpbmdGb3JEb2N1bWVudHNBdFVSTHMoTlNBcnJheTxOU1VSTCAqPiAq
dXJscykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgaWYgKE5TVVJMICppbWFnZVVSTCA9IGluZm9bVUlJbWFnZVBpY2tlckNvbnRyb2xsZXJJ
bWFnZVVSTF0pIHsKICAgICAgICAgaWYgKCFpbWFnZVVSTC5pc0ZpbGVVUkwpIHsKICAgICAgICAg
ICAgIExPR19FUlJPUigiV0tGaWxlVXBsb2FkUGFuZWw6IEV4cGVjdGVkIGltYWdlIFVSTCB0byBi
ZSBhIGZpbGUgcGF0aCwgaXQgd2FzIG5vdCIpOwpAQCAtOTAyLDcgKzEwNzMsNiBAQCBzdGF0aWMg
TlNTdHJpbmcgKmRpc3BsYXlTdHJpbmdGb3JEb2N1bWVudHNBdFVSTHMoTlNBcnJheTxOU1VSTCAq
PiAqdXJscykKICAgICAgICAgc3VjY2Vzc0Jsb2NrKGFkb3B0TlMoW1tfV0tJbWFnZUZpbGVVcGxv
YWRJdGVtIGFsbG9jXSBpbml0V2l0aEZpbGVVUkw6aW1hZ2VVUkxdKS5nZXQoKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIFVJSW1hZ2UgKm9yaWdpbmFsSW1hZ2UgPSBb
aW5mbyBvYmplY3RGb3JLZXk6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJPcmlnaW5hbEltYWdlXTsK
ICAgICBpZiAoIW9yaWdpbmFsSW1hZ2UpIHsKQEAgLTkxNiw2ICsxMDg2LDMwIEBAIHN0YXRpYyBO
U1N0cmluZyAqZGlzcGxheVN0cmluZ0ZvckRvY3VtZW50c0F0VVJMcyhOU0FycmF5PE5TVVJMICo+
ICp1cmxzKQogICAgIFtzZWxmIF91cGxvYWRJdGVtRm9ySlBFR1JlcHJlc2VudGF0aW9uT2ZJbWFn
ZTpvcmlnaW5hbEltYWdlIHN1Y2Nlc3NCbG9jazpzdWNjZXNzQmxvY2sgZmFpbHVyZUJsb2NrOmZh
aWx1cmVCbG9ja107CiB9CiAKKy0gKHZvaWQpX3VwbG9hZE1lZGlhSXRlbXNUcmFuc2NvZGluZ1Zp
ZGVvOihOU0FycmF5PF9XS0ZpbGVVcGxvYWRJdGVtICo+ICopaXRlbXMKK3sKKyAgICBhdXRvIHZp
ZGVvQ291bnQgPSBbW2l0ZW1zIGluZGV4ZXNPZk9iamVjdHNQYXNzaW5nVGVzdDpeKF9XS0ZpbGVV
cGxvYWRJdGVtICppdGVtLCBOU1VJbnRlZ2VyLCBCT09MKikgeworICAgICAgICByZXR1cm4gaXRl
bS5pc1ZpZGVvOworICAgIH1dIGNvdW50XTsKKworICAgIGVuc3VyZU9uTWFpblJ1bkxvb3AoW3Nl
bGYsIHN0cm9uZ1NlbGYgPSByZXRhaW5QdHIoc2VsZiksIGl0ZW1zID0gcmV0YWluUHRyKGl0ZW1z
KSwgdmlkZW9Db3VudF0geworICAgICAgICBpZiAoIXZpZGVvQ291bnQpIHsKKyAgICAgICAgICAg
IFtzZWxmIF9jaG9vc2VNZWRpYUl0ZW1zOml0ZW1zLmdldCgpXTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIF9tZWRpYVRyYW5zY29kZXIgPSBhZG9wdE5TKFtbV0tG
aWxlVXBsb2FkTWVkaWFUcmFuc2NvZGVyIGFsbG9jXSBpbml0V2l0aEl0ZW1zOml0ZW1zLmdldCgp
IHZpZGVvQ291bnQ6dmlkZW9Db3VudCBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFr
T2JqQ1B0cjxXS0ZpbGVVcGxvYWRQYW5lbD4oc2VsZildIChOU0FycmF5PF9XS0ZpbGVVcGxvYWRJ
dGVtICo+ICppdGVtcykgeworICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYu
Z2V0KCk7CisgICAgICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICBbc3Ryb25nU2VsZiBfY2hvb3NlTWVkaWFJdGVtczppdGVtc107
CisgICAgICAgIH1dKTsKKworICAgICAgICBbX21lZGlhVHJhbnNjb2RlciBzdGFydF07CisgICAg
fSk7Cit9CisKIC0gKEJPT0wpcGxhdGZvcm1TdXBwb3J0c1BpY2tlclZpZXdDb250cm9sbGVyCiB7
CiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwODFiODQzZjdlYzA1Mjk2NjJlZmYzMzg4NzFjNzA2
YzU4YWE5NmIuLjQxM2RmNGE1OTllNTVjYjhjMmFmYTliYTg4NDAzYTZhYTcwMDJlNGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAy
Myw2ICsyMDIzLDcgQEAKIAkJRTU5NkRENkEyNTFFNzFENDAwQzI3NUE3IC8qIFdLQ29udGFjdFBp
Y2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU5
NkRENjgyNTFFNzFEMzAwQzI3NUE3IC8qIFdLQ29udGFjdFBpY2tlci5oICovOyB9OwogCQlFNUJF
RjY4MjIxMzBDNDgwMDBGMzExMTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9T
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUJFRjY4
MDIxMzBDNDdGMDBGMzExMTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmgg
Ki87IH07CiAJCUU1Q0IwN0RDMjBFMTY3OEYwMDIyQzE4MyAvKiBXS0Zvcm1Db2xvckNvbnRyb2wu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0IwN0RB
MjBFMTY3OEYwMDIyQzE4MyAvKiBXS0Zvcm1Db2xvckNvbnRyb2wuaCAqLzsgfTsKKwkJRTVERUZB
NjgyNkY4RjQyNjAwQUI2OERCIC8qIFBob3Rvc1VJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIgLyogUGhv
dG9zVUlTUEkuaCAqLzsgfTsKIAkJRUQ4MkE3RjIxMjhDNkZBRjAwNDQ3N0IzIC8qIFdLQnVuZGxl
UGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBMjJGMEZGMTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQwOTRDQkQy
NTUzMDUzRDAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5NENCQjI1NTMwNEFGMDAzRDcz
RTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuaCAqLzsgfTsKIAkJRjQwOTRDQkUyNTUzMDU0
MDAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5NENCOTI1NTMwNDdFMDAzRDczRTMgLyog
RGlzcGxheUxpc3RXcml0ZXJIYW5kbGUuaCAqLzsgfTsKQEAgLTYwNDMsNiArNjA0NCw3IEBACiAJ
CUU1QkVGNjgxMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW07IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUNC
MDdEQTIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLRm9ybUNvbG9yQ29udHJvbC5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29u
dHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUNCMDdEQjIwRTE2NzhGMDAy
MkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tG
b3JtQ29sb3JDb250cm9sLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVERUZBNjcyNkY4RjQyNjAwQUI2OERC
IC8qIFBob3Rvc1VJU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBob3Rvc1VJU1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVDQTY4MEQzMUU2OTA0QjUwMDczMUQyMCAvKiBFeHRyYVBy
aXZhdGVTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFQ0JGQzFEQjFFNkE0RDY2MDAwMzAwQzcgLyogRXh0cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFeHRyYVB1YmxpY1N5bWJvbHNGb3JUQVBJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBp
Y2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvclBp
Y2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTczMSw2ICsxMTczMyw3
IEBACiAJCQkJMkQ0QUYwODgyMDQ0QzNDNDAwNkM4ODE3IC8qIEZyb250Qm9hcmRTZXJ2aWNlc1NQ
SS5oICovLAogCQkJCUExM0IzREExMjA3RjM5REUwMDkwQzU4RCAvKiBNb2JpbGVXaUZpU1BJLmgg
Ki8sCiAJCQkJMzE3OEFGOTcyMEUyQTdGODAwNzRERTk0IC8qIFBERktpdFNQSS5oICovLAorCQkJ
CUU1REVGQTY3MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oICovLAogCQkJCTJEMjc5
RTE4MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oICovLAogCQkJCTQ2RjM4
RThCMjQxNkU2NkQwMDU5Mzc1QSAvKiBSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oICovLAogCQkJ
CTA3OUQxRDk5MjY5NjBDRDMwMDg4MzU3NyAvKiBTeXN0ZW1TdGF0dXNTUEkuaCAqLywKQEAgLTEy
MzkzLDYgKzEyMzk2LDcgQEAKIAkJCQk1QzI5OERBMDFDM0RGMDIxMDA0NzBBRkUgLyogUGVuZGlu
Z0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzJFRDE4QzFFMkZFMTU3MDA2QkE2NEEg
LyogUGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0FGQkQzNkYyMUU1NDZGODAwNURCQUNCIC8qIFBlcnNpc3RlbmN5VXRpbHMuaCBpbiBIZWFkZXJz
ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEU1REVGQTY4MjZGOEY0MjYwMEFCNjhE
QiAvKiBQaG90b3NVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNFODVCMjAxQzg4RTY0QjAw
NzBCRkNFIC8qIFBpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVFMjAwNDE4RTc3MDUx
MDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkRBMDQ5QjQxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIGlu
IEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>