<?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>133501</bug_id>
          
          <creation_ts>2014-06-03 22:06:37 -0700</creation_ts>
          <short_desc>Use references instead of pointers for non-optional arguments during text layout</short_desc>
          <delta_ts>2014-06-04 13:43:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1013230</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-03 22:06:37 -0700</bug_when>
    <thetext>Use references instead of pointers for non-optional arguments during text layout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013231</commentid>
    <comment_count>1</comment_count>
      <attachid>232465</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-03 22:07:33 -0700</bug_when>
    <thetext>Created attachment 232465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013366</commentid>
    <comment_count>2</comment_count>
      <attachid>232465</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-04 13:43:04 -0700</bug_when>
    <thetext>Comment on attachment 232465
Patch

Clearing flags on attachment: 232465

Committed r169593: &lt;http://trac.webkit.org/changeset/169593&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013367</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-04 13:43:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232465</attachid>
            <date>2014-06-03 22:07:33 -0700</date>
            <delta_ts>2014-06-04 13:43:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133501-20140603220704.patch</filename>
            <type>text/plain</type>
            <size>25472</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUwMDk5MDZiYTYxOTM5
MWU4NTA4MzY1MGQ4OGJjMzIxNWIxMjY1OC4uYjE3MWRjYjE2NjQ5MDIxZWI1MzE0NmI4MzRjOTk2
ODY3MzgwMWE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA2LTAzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPGxpdGhlcnVtQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgcmVmZXJl
bmNlcyBpbnN0ZWFkIG9mIHBvaW50ZXJzIGZvciBub24tb3B0aW9uYWwgYXJndW1lbnRzIGR1cmlu
ZyB0ZXh0IGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMzNTAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhcHBsaWVzIHNvbWUgY2xlYW51cCB0byBJbmxpbmVCb3ggbGF5b3V0
IGZ1bmN0aW9ucyB0byB0YWtlCisgICAgICAgIHJlZmVyZW5jZXMgaW5zdGVhZCBvZiBwb2ludGVy
cyB3aGVyZSBhcHByb3ByaWF0ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXJlIG5lY2Vzc2Fy
eSBiZWNhdXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHJlbmRl
cmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6
OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyk6IE1ha2UgdGhlIGZ1bmN0aW9uIHRha2UgYQorICAg
ICAgICByZWZlcmVuY2UgdG8gdGhlIFJvb3RJbmxpbmVCb3ggaW5zdGVhZCBvZiBhIHBvaW50ZXIu
IFRoaXMgZnVuY3Rpb24gZG9lcyBzb21lCisgICAgICAgIHJvdW5kaW5nLgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92ZXJmbG93KTogTWFrZSB0aGUg
ZnVuY3Rpb24gdGFrZSBhCisgICAgICAgIHJlZmVyZW5jZSB0byB0aGUgSW5saW5lVGV4dEJveCBp
bnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmNv
bXB1dGVPdmVyZmxvdyk6IFVwZGF0ZSBjYWxsIHRvIGFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdwor
ICAgICAgICB0byBwYXNzIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAgICAg
ICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJ
bmxpbmVCb3g6OmFsaWduQm94ZXNJbkJsb2NrRGlyZWN0aW9uKTogVXBkYXRlIGNhbGwgdG8KKyAg
ICAgICAgY29tcHV0ZUxvZ2ljYWxCb3hIZWlnaHRzIHRvIHBhc3MgYSByZWZlcmVuY2UgaW5zdGVh
ZCBvZiBhIHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94Ojphc2NlbnRB
bmREZXNjZW50Rm9yQm94KTogTWFrZSB0aGUgZnVuY3Rpb24gdGFrZSBhCisgICAgICAgIHJlZmVy
ZW5jZSB0byB0aGUgSW5saW5lQm94IGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAgICAgICAoV2Vi
Q29yZTo6Um9vdElubGluZUJveDo6aW5jbHVkZUxlYWRpbmdGb3JCb3gpOiBNYWtlIHRoZSBmdW5j
dGlvbiB0YWtlIGEgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAg
ICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6aW5jbHVkZUZvbnRGb3JCb3gpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmluY2x1ZGVHbHlwaHNGb3JCb3gpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmluY2x1ZGVNYXJnaW5Gb3JC
b3gpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5oOiBNb3ZlIGZ1
bmN0aW9ucyB0aGF0IGFyZSBub3QgZXh0ZXJuYWxseSBjYWxsZWQgaW50bworICAgICAgICBhIHBy
aXZhdGU6IHNlY3Rpb24uIEluIGFkZGl0aW9uLCB1cGRhdGUgZnVuY3Rpb24gc2lnbmF0dXJlcyB0
byB0YWtlIHJlZmVyZW5jZXMKKyAgICAgICAgaW5zdGVhZCBvZiBwb2ludGVycy4KKwogMjAxNC0w
Ni0wMyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IE5lZWQgdG8gY2hlY2sgaW52YWxpZCBzY2hlbWUgaW4gbmF2aWdhdG9yIGNvbnRlbnQgdXRpbHMg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKaW5kZXggZmZiMDdm
M2Y2ODcwOTIyYTU4NTk1NjY5ODc0MTExMTkzOGU1MGI5Zi4uYzM4NmE2ODQxODY2NTBkNmNkMjBm
Y2U4YzUwYmQ3NGE0ZTliODA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmNwcApAQCAtNTE4LDEwICs1MTgsMTAgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjphZGp1
c3RNYXhBc2NlbnRBbmREZXNjZW50KGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2NlbnQsIGkK
ICAgICB9CiB9CiAKLXZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWlnaHRz
KFJvb3RJbmxpbmVCb3gqIHJvb3RCb3gsIExheW91dFVuaXQmIG1heFBvc2l0aW9uVG9wLCBMYXlv
dXRVbml0JiBtYXhQb3NpdGlvbkJvdHRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2NlbnQsIGJvb2wmIHNl
dE1heEFzY2VudCwgYm9vbCYgc2V0TWF4RGVzY2VudCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc3RyaWN0TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZh
bGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSwgVmVydGljYWxQ
b3NpdGlvbkNhY2hlJiB2ZXJ0aWNhbFBvc2l0aW9uQ2FjaGUpCit2b2lkIElubGluZUZsb3dCb3g6
OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyhSb290SW5saW5lQm94JiByb290Qm94LCBMYXlvdXRV
bml0JiBtYXhQb3NpdGlvblRvcCwgTGF5b3V0VW5pdCYgbWF4UG9zaXRpb25Cb3R0b20sCisgICAg
aW50JiBtYXhBc2NlbnQsIGludCYgbWF4RGVzY2VudCwgYm9vbCYgc2V0TWF4QXNjZW50LCBib29s
JiBzZXRNYXhEZXNjZW50LAorICAgIGJvb2wgc3RyaWN0TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZh
bGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwLAorICAgIEZvbnRCYXNlbGluZSBiYXNlbGlu
ZVR5cGUsIFZlcnRpY2FsUG9zaXRpb25DYWNoZSYgdmVydGljYWxQb3NpdGlvbkNhY2hlKQogewog
ICAgIC8vIFRoZSBwcmltYXJ5IHB1cnBvc2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBjb21wdXRl
IHRoZSBtYXhpbWFsIGFzY2VudCBhbmQgZGVzY2VudCB2YWx1ZXMgZm9yCiAgICAgLy8gYSBsaW5l
LiBUaGVzZSB2YWx1ZXMgYXJlIGNvbXB1dGVkIGJhc2VkIG9mZiB0aGUgYmxvY2sncyBsaW5lLWJv
eC1jb250YWluIHByb3BlcnR5LCB3aGljaCBpbmRpY2F0ZXMKQEAgLTU0Niw3ICs1NDYsNyBAQCB2
b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyhSb290SW5saW5lQm94
KiByb290Qm94LCBMYXlvdXRVbml0JgogICAgICAgICAvLyBFeGFtaW5lIG91ciByb290IGJveC4K
ICAgICAgICAgaW50IGFzY2VudCA9IDA7CiAgICAgICAgIGludCBkZXNjZW50ID0gMDsKLSAgICAg
ICAgcm9vdEJveC0+YXNjZW50QW5kRGVzY2VudEZvckJveChyb290Qm94LCB0ZXh0Qm94RGF0YU1h
cCwgYXNjZW50LCBkZXNjZW50LCBhZmZlY3RzQXNjZW50LCBhZmZlY3RzRGVzY2VudCk7CisgICAg
ICAgIHJvb3RCb3guYXNjZW50QW5kRGVzY2VudEZvckJveChyb290Qm94LCB0ZXh0Qm94RGF0YU1h
cCwgYXNjZW50LCBkZXNjZW50LCBhZmZlY3RzQXNjZW50LCBhZmZlY3RzRGVzY2VudCk7CiAgICAg
ICAgIGlmIChzdHJpY3RNb2RlIHx8IGhhc1RleHRDaGlsZHJlbigpIHx8ICghY2hlY2tDaGlsZHJl
biAmJiBoYXNUZXh0RGVzY2VuZGFudHMoKSkpIHsKICAgICAgICAgICAgIGlmIChtYXhBc2NlbnQg
PCBhc2NlbnQgfHwgIXNldE1heEFzY2VudCkgewogICAgICAgICAgICAgICAgIG1heEFzY2VudCA9
IGFzY2VudDsKQEAgLTU3NCwxMSArNTc0LDExIEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0
ZUxvZ2ljYWxCb3hIZWlnaHRzKFJvb3RJbmxpbmVCb3gqIHJvb3RCb3gsIExheW91dFVuaXQmCiAg
ICAgICAgIC8vIFRoZSB2ZXJ0aWNhbFBvc2l0aW9uRm9yQm94IGZ1bmN0aW9uIHJldHVybnMgdGhl
IGRpc3RhbmNlIGJldHdlZW4gdGhlIGNoaWxkIGJveCdzIGJhc2VsaW5lCiAgICAgICAgIC8vIGFu
ZCB0aGUgcm9vdCBib3gncyBiYXNlbGluZS4gIFRoZSB2YWx1ZSBpcyBuZWdhdGl2ZSBpZiB0aGUg
Y2hpbGQgYm94J3MgYmFzZWxpbmUgaXMgYWJvdmUgdGhlCiAgICAgICAgIC8vIHJvb3QgYm94J3Mg
YmFzZWxpbmUsIGFuZCBpdCBpcyBwb3NpdGl2ZSBpZiB0aGUgY2hpbGQgYm94J3MgYmFzZWxpbmUg
aXMgYmVsb3cgdGhlIHJvb3QgYm94J3MgYmFzZWxpbmUuCi0gICAgICAgIGN1cnItPnNldExvZ2lj
YWxUb3Aocm9vdEJveC0+dmVydGljYWxQb3NpdGlvbkZvckJveChjdXJyLCB2ZXJ0aWNhbFBvc2l0
aW9uQ2FjaGUpKTsKKyAgICAgICAgY3Vyci0+c2V0TG9naWNhbFRvcChyb290Qm94LnZlcnRpY2Fs
UG9zaXRpb25Gb3JCb3goY3VyciwgdmVydGljYWxQb3NpdGlvbkNhY2hlKSk7CiAgICAgICAgIAog
ICAgICAgICBpbnQgYXNjZW50ID0gMDsKICAgICAgICAgaW50IGRlc2NlbnQgPSAwOwotICAgICAg
ICByb290Qm94LT5hc2NlbnRBbmREZXNjZW50Rm9yQm94KGN1cnIsIHRleHRCb3hEYXRhTWFwLCBh
c2NlbnQsIGRlc2NlbnQsIGFmZmVjdHNBc2NlbnQsIGFmZmVjdHNEZXNjZW50KTsKKyAgICAgICAg
cm9vdEJveC5hc2NlbnRBbmREZXNjZW50Rm9yQm94KCpjdXJyLCB0ZXh0Qm94RGF0YU1hcCwgYXNj
ZW50LCBkZXNjZW50LCBhZmZlY3RzQXNjZW50LCBhZmZlY3RzRGVzY2VudCk7CiAKICAgICAgICAg
TGF5b3V0VW5pdCBib3hIZWlnaHQgPSBhc2NlbnQgKyBkZXNjZW50OwogICAgICAgICBpZiAoY3Vy
ci0+dmVydGljYWxBbGlnbigpID09IFRPUCAmJiB2ZXJ0aWNhbEFsaWduQXBwbGllcyhjdXJyLT5y
ZW5kZXJlcigpKSkgewpAQCAtNjE2LDcgKzYxNiw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29t
cHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKFJvb3RJbmxpbmVCb3gqIHJvb3RCb3gsIExheW91dFVuaXQm
CiB9CiAKIHZvaWQgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5
b3V0VW5pdCB0b3AsIExheW91dFVuaXQgbWF4SGVpZ2h0LCBpbnQgbWF4QXNjZW50LCBib29sIHN0
cmljdE1vZGUsIExheW91dFVuaXQmIGxpbmVUb3AsIExheW91dFVuaXQmIGxpbmVCb3R0b20sIGJv
b2wmIHNldExpbmVUb3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExheW91dFVuaXQmIGxpbmVUb3BJbmNsdWRpbmdNYXJnaW5zLCBMYXlvdXRVbml0JiBs
aW5lQm90dG9tSW5jbHVkaW5nTWFyZ2lucywgYm9vbCYgaGFzQW5ub3RhdGlvbnNCZWZvcmUsIGJv
b2wmIGhhc0Fubm90YXRpb25zQWZ0ZXIsIEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUpCisgICAg
TGF5b3V0VW5pdCYgbGluZVRvcEluY2x1ZGluZ01hcmdpbnMsIExheW91dFVuaXQmIGxpbmVCb3R0
b21JbmNsdWRpbmdNYXJnaW5zLCBib29sJiBoYXNBbm5vdGF0aW9uc0JlZm9yZSwgYm9vbCYgaGFz
QW5ub3RhdGlvbnNBZnRlciwgRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSkKIHsKICAgICBib29s
IGlzUm9vdEJveCA9IGlzUm9vdElubGluZUJveCgpOwogICAgIGlmIChpc1Jvb3RCb3gpIHsKQEAg
LTg1MSwxNCArODUxLDE0IEBAIGlubGluZSB2b2lkIElubGluZUZsb3dCb3g6OmFkZEJvcmRlck91
dHNldFZpc3VhbE92ZXJmbG93KExheW91dFJlY3QmIGxvZ2ljYWxWaXN1CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpY2FsUmlnaHRWaXN1YWxPdmVyZmxvdyAtIGxv
Z2ljYWxMZWZ0VmlzdWFsT3ZlcmZsb3csIGxvZ2ljYWxCb3R0b21WaXN1YWxPdmVyZmxvdyAtIGxv
Z2ljYWxUb3BWaXN1YWxPdmVyZmxvdyk7CiB9CiAKLWlubGluZSB2b2lkIElubGluZUZsb3dCb3g6
OmFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyhJbmxpbmVUZXh0Qm94KiB0ZXh0Qm94LCBHbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXAsIExheW91dFJlY3QmIGxv
Z2ljYWxWaXN1YWxPdmVyZmxvdykKK2lubGluZSB2b2lkIElubGluZUZsb3dCb3g6OmFkZFRleHRC
b3hWaXN1YWxPdmVyZmxvdyhJbmxpbmVUZXh0Qm94JiB0ZXh0Qm94LCBHbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXAsIExheW91dFJlY3QmIGxvZ2ljYWxWaXN1
YWxPdmVyZmxvdykKIHsKLSAgICBpZiAodGV4dEJveC0+a25vd25Ub0hhdmVOb092ZXJmbG93KCkp
CisgICAgaWYgKHRleHRCb3gua25vd25Ub0hhdmVOb092ZXJmbG93KCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUgPSB0aGlzLT5saW5lU3R5bGUo
KTsKICAgICAKLSAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3Ig
aXQgPSB0ZXh0Qm94RGF0YU1hcC5maW5kKHRleHRCb3gpOworICAgIEdseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IHRleHRCb3hEYXRhTWFwLmZpbmQoJnRleHRC
b3gpOwogICAgIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBpdCA9PSB0ZXh0Qm94RGF0
YU1hcC5lbmQoKSA/IDAgOiAmaXQtPnZhbHVlLnNlY29uZDsKICAgICBib29sIGlzRmxpcHBlZExp
bmUgPSBsaW5lU3R5bGUuaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpOwogCkBAIC04NzQsNyAr
ODc0LDcgQEAgaW5saW5lIHZvaWQgSW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92ZXJm
bG93KElubGluZVRleHRCb3gqIHRleHRCb3gsIEdseXAKICAgICBpbnQgcmlnaHRHbHlwaE92ZXJm
bG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyByaWdodEdseXBoRWRnZTsKIAogICAgIGJvb2wgZW1waGFz
aXNNYXJrSXNBYm92ZTsKLSAgICBpZiAobGluZVN0eWxlLnRleHRFbXBoYXNpc01hcmsoKSAhPSBU
ZXh0RW1waGFzaXNNYXJrTm9uZSAmJiB0ZXh0Qm94LT5lbXBoYXNpc01hcmtFeGlzdHNBbmRJc0Fi
b3ZlKGxpbmVTdHlsZSwgZW1waGFzaXNNYXJrSXNBYm92ZSkpIHsKKyAgICBpZiAobGluZVN0eWxl
LnRleHRFbXBoYXNpc01hcmsoKSAhPSBUZXh0RW1waGFzaXNNYXJrTm9uZSAmJiB0ZXh0Qm94LmVt
cGhhc2lzTWFya0V4aXN0c0FuZElzQWJvdmUobGluZVN0eWxlLCBlbXBoYXNpc01hcmtJc0Fib3Zl
KSkgewogICAgICAgICBpbnQgZW1waGFzaXNNYXJrSGVpZ2h0ID0gbGluZVN0eWxlLmZvbnQoKS5l
bXBoYXNpc01hcmtIZWlnaHQobGluZVN0eWxlLnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSk7CiAg
ICAgICAgIGlmIChlbXBoYXNpc01hcmtJc0Fib3ZlID09ICFsaW5lU3R5bGUuaXNGbGlwcGVkTGlu
ZXNXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAgdG9wR2x5cGhPdmVyZmxvdyA9IHN0ZDo6bWlu
KHRvcEdseXBoT3ZlcmZsb3csIC1lbXBoYXNpc01hcmtIZWlnaHQpOwpAQCAtOTAwLDE1ICs5MDAs
MTUgQEAgaW5saW5lIHZvaWQgSW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92ZXJmbG93
KElubGluZVRleHRCb3gqIHRleHRCb3gsIEdseXAKICAgICBMYXlvdXRVbml0IGNoaWxkT3ZlcmZs
b3dMb2dpY2FsTGVmdCA9IHN0ZDo6bWluPExheW91dFVuaXQ+KHRleHRTaGFkb3dMb2dpY2FsTGVm
dCArIGxlZnRHbHlwaE92ZXJmbG93LCBsZWZ0R2x5cGhPdmVyZmxvdyk7CiAgICAgTGF5b3V0VW5p
dCBjaGlsZE92ZXJmbG93TG9naWNhbFJpZ2h0ID0gc3RkOjptYXg8TGF5b3V0VW5pdD4odGV4dFNo
YWRvd0xvZ2ljYWxSaWdodCArIHJpZ2h0R2x5cGhPdmVyZmxvdywgcmlnaHRHbHlwaE92ZXJmbG93
KTsKIAotICAgIExheW91dFVuaXQgbG9naWNhbFRvcFZpc3VhbE92ZXJmbG93ID0gc3RkOjptaW4o
dGV4dEJveC0+cGl4ZWxTbmFwcGVkTG9naWNhbFRvcCgpICsgY2hpbGRPdmVyZmxvd0xvZ2ljYWxU
b3AsIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdy55KCkpOwotICAgIExheW91dFVuaXQgbG9naWNhbEJv
dHRvbVZpc3VhbE92ZXJmbG93ID0gc3RkOjptYXgodGV4dEJveC0+cGl4ZWxTbmFwcGVkTG9naWNh
bEJvdHRvbSgpICsgY2hpbGRPdmVyZmxvd0xvZ2ljYWxCb3R0b20sIGxvZ2ljYWxWaXN1YWxPdmVy
Zmxvdy5tYXhZKCkpOwotICAgIExheW91dFVuaXQgbG9naWNhbExlZnRWaXN1YWxPdmVyZmxvdyA9
IHN0ZDo6bWluKHRleHRCb3gtPnBpeGVsU25hcHBlZExvZ2ljYWxMZWZ0KCkgKyBjaGlsZE92ZXJm
bG93TG9naWNhbExlZnQsIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdy54KCkpOwotICAgIExheW91dFVu
aXQgbG9naWNhbFJpZ2h0VmlzdWFsT3ZlcmZsb3cgPSBzdGQ6Om1heCh0ZXh0Qm94LT5waXhlbFNu
YXBwZWRMb2dpY2FsUmlnaHQoKSArIGNoaWxkT3ZlcmZsb3dMb2dpY2FsUmlnaHQsIGxvZ2ljYWxW
aXN1YWxPdmVyZmxvdy5tYXhYKCkpOworICAgIExheW91dFVuaXQgbG9naWNhbFRvcFZpc3VhbE92
ZXJmbG93ID0gc3RkOjptaW4odGV4dEJveC5waXhlbFNuYXBwZWRMb2dpY2FsVG9wKCkgKyBjaGls
ZE92ZXJmbG93TG9naWNhbFRvcCwgbG9naWNhbFZpc3VhbE92ZXJmbG93LnkoKSk7CisgICAgTGF5
b3V0VW5pdCBsb2dpY2FsQm90dG9tVmlzdWFsT3ZlcmZsb3cgPSBzdGQ6Om1heCh0ZXh0Qm94LnBp
eGVsU25hcHBlZExvZ2ljYWxCb3R0b20oKSArIGNoaWxkT3ZlcmZsb3dMb2dpY2FsQm90dG9tLCBs
b2dpY2FsVmlzdWFsT3ZlcmZsb3cubWF4WSgpKTsKKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0
VmlzdWFsT3ZlcmZsb3cgPSBzdGQ6Om1pbih0ZXh0Qm94LnBpeGVsU25hcHBlZExvZ2ljYWxMZWZ0
KCkgKyBjaGlsZE92ZXJmbG93TG9naWNhbExlZnQsIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdy54KCkp
OworICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0VmlzdWFsT3ZlcmZsb3cgPSBzdGQ6Om1heCh0
ZXh0Qm94LnBpeGVsU25hcHBlZExvZ2ljYWxSaWdodCgpICsgY2hpbGRPdmVyZmxvd0xvZ2ljYWxS
aWdodCwgbG9naWNhbFZpc3VhbE92ZXJmbG93Lm1heFgoKSk7CiAgICAgCiAgICAgbG9naWNhbFZp
c3VhbE92ZXJmbG93ID0gTGF5b3V0UmVjdChsb2dpY2FsTGVmdFZpc3VhbE92ZXJmbG93LCBsb2dp
Y2FsVG9wVmlzdWFsT3ZlcmZsb3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2dpY2FsUmlnaHRWaXN1YWxPdmVyZmxvdyAtIGxvZ2ljYWxMZWZ0VmlzdWFsT3ZlcmZs
b3csIGxvZ2ljYWxCb3R0b21WaXN1YWxPdmVyZmxvdyAtIGxvZ2ljYWxUb3BWaXN1YWxPdmVyZmxv
dyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICB0ZXh0Qm94LT5z
ZXRMb2dpY2FsT3ZlcmZsb3dSZWN0KGxvZ2ljYWxWaXN1YWxPdmVyZmxvdyk7CisgICAgdGV4dEJv
eC5zZXRMb2dpY2FsT3ZlcmZsb3dSZWN0KGxvZ2ljYWxWaXN1YWxPdmVyZmxvdyk7CiB9CiAKIGlu
bGluZSB2b2lkIElubGluZUZsb3dCb3g6OmFkZFJlcGxhY2VkQ2hpbGRPdmVyZmxvdyhjb25zdCBJ
bmxpbmVCb3gqIGlubGluZUJveCwgTGF5b3V0UmVjdCYgbG9naWNhbExheW91dE92ZXJmbG93LCBM
YXlvdXRSZWN0JiBsb2dpY2FsVmlzdWFsT3ZlcmZsb3cpCkBAIC05NTksNyArOTU5LDcgQEAgdm9p
ZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlv
dXRVbml0IGxpbmVCb3R0b20sIEcKICAgICAgICAgaWYgKGN1cnItPnJlbmRlcmVyKCkuaXNUZXh0
KCkpIHsKICAgICAgICAgICAgIElubGluZVRleHRCb3gqIHRleHQgPSB0b0lubGluZVRleHRCb3go
Y3Vycik7CiAgICAgICAgICAgICBMYXlvdXRSZWN0IHRleHRCb3hPdmVyZmxvdyhlbmNsb3NpbmdM
YXlvdXRSZWN0KHRleHQtPmxvZ2ljYWxGcmFtZVJlY3QoKSkpOwotICAgICAgICAgICAgYWRkVGV4
dEJveFZpc3VhbE92ZXJmbG93KHRleHQsIHRleHRCb3hEYXRhTWFwLCB0ZXh0Qm94T3ZlcmZsb3cp
OworICAgICAgICAgICAgYWRkVGV4dEJveFZpc3VhbE92ZXJmbG93KCp0ZXh0LCB0ZXh0Qm94RGF0
YU1hcCwgdGV4dEJveE92ZXJmbG93KTsKICAgICAgICAgICAgIGxvZ2ljYWxWaXN1YWxPdmVyZmxv
dy51bml0ZSh0ZXh0Qm94T3ZlcmZsb3cpOwogICAgICAgICB9IGVsc2UgaWYgKGN1cnItPnJlbmRl
cmVyKCkuaXNSZW5kZXJJbmxpbmUoKSkgewogICAgICAgICAgICAgSW5saW5lRmxvd0JveCogZmxv
dyA9IHRvSW5saW5lRmxvd0JveChjdXJyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5oCmluZGV4IGRlMDE1MjAxMmRiOTEwNzI0MTEwMzljMDljMzE1NGYwZDNkYzk5MDgu
LjlkYjBlM2JmNWIwOWRiNGE3MDc0M2Y4MTgzZjQwNTkzZmJiYzhjYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaApAQCAtMTg2LDEzICsxODYsMTMgQEAgcHVibGlj
OgogICAgICAgICAgICAgY2xlYXJLbm93blRvSGF2ZU5vT3ZlcmZsb3coKTsKICAgICB9CiAKLSAg
ICB2b2lkIGNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyhSb290SW5saW5lQm94KiwgTGF5b3V0VW5p
dCYgbWF4UG9zaXRpb25Ub3AsIExheW91dFVuaXQmIG1heFBvc2l0aW9uQm90dG9tLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2Nl
bnQsIGJvb2wmIHNldE1heEFzY2VudCwgYm9vbCYgc2V0TWF4RGVzY2VudCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sIHN0cmljdE1vZGUsIEdseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwJiwgRm9udEJhc2VsaW5lLCBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmKTsK
KyAgICB2b2lkIGNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyhSb290SW5saW5lQm94JiwgTGF5b3V0
VW5pdCYgbWF4UG9zaXRpb25Ub3AsIExheW91dFVuaXQmIG1heFBvc2l0aW9uQm90dG9tLAorICAg
ICAgICBpbnQmIG1heEFzY2VudCwgaW50JiBtYXhEZXNjZW50LCBib29sJiBzZXRNYXhBc2NlbnQs
IGJvb2wmIHNldE1heERlc2NlbnQsCisgICAgICAgIGJvb2wgc3RyaWN0TW9kZSwgR2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmLCBGb250QmFzZWxpbmUsIFZlcnRpY2FsUG9zaXRpb25D
YWNoZSYpOwogICAgIHZvaWQgYWRqdXN0TWF4QXNjZW50QW5kRGVzY2VudChpbnQmIG1heEFzY2Vu
dCwgaW50JiBtYXhEZXNjZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgbWF4UG9zaXRpb25Ub3AsIGludCBtYXhQb3NpdGlvbkJvdHRvbSk7CisgICAgICAgIGludCBt
YXhQb3NpdGlvblRvcCwgaW50IG1heFBvc2l0aW9uQm90dG9tKTsKICAgICB2b2lkIHBsYWNlQm94
ZXNJbkJsb2NrRGlyZWN0aW9uKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBtYXhI
ZWlnaHQsIGludCBtYXhBc2NlbnQsIGJvb2wgc3RyaWN0TW9kZSwgTGF5b3V0VW5pdCYgbGluZVRv
cCwgTGF5b3V0VW5pdCYgbGluZUJvdHRvbSwgYm9vbCYgc2V0TGluZVRvcCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFVuaXQmIGxpbmVUb3BJbmNsdWRpbmdNYXJn
aW5zLCBMYXlvdXRVbml0JiBsaW5lQm90dG9tSW5jbHVkaW5nTWFyZ2lucywgYm9vbCYgaGFzQW5u
b3RhdGlvbnNCZWZvcmUsIGJvb2wmIGhhc0Fubm90YXRpb25zQWZ0ZXIsIEZvbnRCYXNlbGluZSk7
CisgICAgICAgIExheW91dFVuaXQmIGxpbmVUb3BJbmNsdWRpbmdNYXJnaW5zLCBMYXlvdXRVbml0
JiBsaW5lQm90dG9tSW5jbHVkaW5nTWFyZ2lucywgYm9vbCYgaGFzQW5ub3RhdGlvbnNCZWZvcmUs
IGJvb2wmIGhhc0Fubm90YXRpb25zQWZ0ZXIsIEZvbnRCYXNlbGluZSk7CiAgICAgdm9pZCBmbGlw
TGluZXNJbkJsb2NrRGlyZWN0aW9uKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5l
Qm90dG9tKTsKICAgICBib29sIHJlcXVpcmVzSWRlb2dyYXBoaWNCYXNlbGluZShjb25zdCBHbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYpIGNvbnN0OwogCkBAIC0yOTksNyArMjk5LDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYWRkQm94U2hhZG93VmlzdWFsT3ZlcmZsb3coTGF5b3V0
UmVjdCYgbG9naWNhbFZpc3VhbE92ZXJmbG93KTsKICAgICB2b2lkIGFkZEJvcmRlck91dHNldFZp
c3VhbE92ZXJmbG93KExheW91dFJlY3QmIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdyk7Ci0gICAgdm9p
ZCBhZGRUZXh0Qm94VmlzdWFsT3ZlcmZsb3coSW5saW5lVGV4dEJveCosIEdseXBoT3ZlcmZsb3dB
bmRGYWxsYmFja0ZvbnRzTWFwJiwgTGF5b3V0UmVjdCYgbG9naWNhbFZpc3VhbE92ZXJmbG93KTsK
KyAgICB2b2lkIGFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyhJbmxpbmVUZXh0Qm94JiwgR2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmLCBMYXlvdXRSZWN0JiBsb2dpY2FsVmlzdWFsT3Zl
cmZsb3cpOwogICAgIHZvaWQgYWRkUmVwbGFjZWRDaGlsZE92ZXJmbG93KGNvbnN0IElubGluZUJv
eCosIExheW91dFJlY3QmIGxvZ2ljYWxMYXlvdXRPdmVyZmxvdywgTGF5b3V0UmVjdCYgbG9naWNh
bFZpc3VhbE92ZXJmbG93KTsKICAgICB2b2lkIGNvbnN0cmFpblRvTGluZVRvcEFuZEJvdHRvbUlm
TmVlZGVkKExheW91dFJlY3QmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jv
b3RJbmxpbmVCb3guY3BwCmluZGV4IDQ0NmRkNDFhNmMwMTFmMzcyMGMyMjczYzQxN2EzZTE2NWU4
M2Y5MzcuLjBhZTBhMDkwODQ0MjU3MGFlOGViMDMyYzBlYzQwOTljNTIxMzc4MDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKQEAgLTI3Miw3ICsyNzIsNyBA
QCBMYXlvdXRVbml0IFJvb3RJbmxpbmVCb3g6OmFsaWduQm94ZXNJbkJsb2NrRGlyZWN0aW9uKExh
eW91dFVuaXQgaGVpZ2h0T2ZCbG9jaywgRwogCiAgICAgbV9iYXNlbGluZVR5cGUgPSByZXF1aXJl
c0lkZW9ncmFwaGljQmFzZWxpbmUodGV4dEJveERhdGFNYXApID8gSWRlb2dyYXBoaWNCYXNlbGlu
ZSA6IEFscGhhYmV0aWNCYXNlbGluZTsKIAotICAgIGNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyh0
aGlzLCBtYXhQb3NpdGlvblRvcCwgbWF4UG9zaXRpb25Cb3R0b20sIG1heEFzY2VudCwgbWF4RGVz
Y2VudCwgc2V0TWF4QXNjZW50LCBzZXRNYXhEZXNjZW50LCBub1F1aXJrc01vZGUsCisgICAgY29t
cHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKCp0aGlzLCBtYXhQb3NpdGlvblRvcCwgbWF4UG9zaXRpb25C
b3R0b20sIG1heEFzY2VudCwgbWF4RGVzY2VudCwgc2V0TWF4QXNjZW50LCBzZXRNYXhEZXNjZW50
LCBub1F1aXJrc01vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRCb3hEYXRh
TWFwLCBiYXNlbGluZVR5cGUoKSwgdmVydGljYWxQb3NpdGlvbkNhY2hlKTsKIAogICAgIGlmICht
YXhBc2NlbnQgKyBtYXhEZXNjZW50IDwgc3RkOjptYXgobWF4UG9zaXRpb25Ub3AsIG1heFBvc2l0
aW9uQm90dG9tKSkKQEAgLTgwOSwxNyArODA5LDE3IEBAIHN0YXRpYyB2b2lkIHNldEFzY2VudEFu
ZERlc2NlbnQoaW50JiBhc2NlbnQsIGludCYgZGVzY2VudCwgaW50IG5ld0FzY2VudCwgaW50IG5l
CiAgICAgfQogfQogCi12b2lkIFJvb3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JCb3go
SW5saW5lQm94KiBib3gsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiB0ZXh0Qm94
RGF0YU1hcCwgaW50JiBhc2NlbnQsIGludCYgZGVzY2VudCwKK3ZvaWQgUm9vdElubGluZUJveDo6
YXNjZW50QW5kRGVzY2VudEZvckJveChJbmxpbmVCb3gmIGJveCwgR2x5cGhPdmVyZmxvd0FuZEZh
bGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwLCBpbnQmIGFzY2VudCwgaW50JiBkZXNjZW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wmIGFmZmVj
dHNBc2NlbnQsIGJvb2wmIGFmZmVjdHNEZXNjZW50KSBjb25zdAogewogICAgIGJvb2wgYXNjZW50
RGVzY2VudFNldCA9IGZhbHNlOwogCiAgICAgLy8gUmVwbGFjZWQgYm94ZXMgd2lsbCByZXR1cm4g
MCBmb3IgdGhlIGxpbmUtaGVpZ2h0IGlmIGxpbmUtYm94LWNvbnRhaW4gc2F5cyB0aGV5IGFyZQog
ICAgIC8vIG5vdCB0byBiZSBpbmNsdWRlZC4KLSAgICBpZiAoYm94LT5yZW5kZXJlcigpLmlzUmVw
bGFjZWQoKSkgeworICAgIGlmIChib3gucmVuZGVyZXIoKS5pc1JlcGxhY2VkKCkpIHsKICAgICAg
ICAgaWYgKGxpbmVTdHlsZSgpLmxpbmVCb3hDb250YWluKCkgJiBMaW5lQm94Q29udGFpblJlcGxh
Y2VkKSB7Ci0gICAgICAgICAgICBhc2NlbnQgPSBib3gtPmJhc2VsaW5lUG9zaXRpb24oYmFzZWxp
bmVUeXBlKCkpOwotICAgICAgICAgICAgZGVzY2VudCA9IGJveC0+bGluZUhlaWdodCgpIC0gYXNj
ZW50OworICAgICAgICAgICAgYXNjZW50ID0gYm94LmJhc2VsaW5lUG9zaXRpb24oYmFzZWxpbmVU
eXBlKCkpOworICAgICAgICAgICAgZGVzY2VudCA9IGJveC5saW5lSGVpZ2h0KCkgLSBhc2NlbnQ7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGVsZW1lbnRzIGFsd2F5cyBh
ZmZlY3QgYm90aCB0aGUgYXNjZW50IGFuZCBkZXNjZW50LgogICAgICAgICAgICAgYWZmZWN0c0Fz
Y2VudCA9IHRydWU7CkBAIC04MjgsMTAgKzgyOCwxMCBAQCB2b2lkIFJvb3RJbmxpbmVCb3g6OmFz
Y2VudEFuZERlc2NlbnRGb3JCb3goSW5saW5lQm94KiBib3gsIEdseXBoT3ZlcmZsb3dBbmRGYWxs
YgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIHVzZWRGb250cyA9IDA7Ci0gICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9
IDA7Ci0gICAgaWYgKGJveC0+aXNJbmxpbmVUZXh0Qm94KCkpIHsKLSAgICAgICAgR2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gdGV4dEJveERhdGFNYXAuZmlu
ZCh0b0lubGluZVRleHRCb3goYm94KSk7CisgICAgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4qIHVzZWRGb250cyA9IG51bGxwdHI7CisgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxv
dyA9IG51bGxwdHI7CisgICAgaWYgKGJveC5pc0lubGluZVRleHRCb3goKSkgeworICAgICAgICBH
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSB0ZXh0Qm94RGF0
YU1hcC5maW5kKHRvSW5saW5lVGV4dEJveCgmYm94KSk7CiAgICAgICAgIHVzZWRGb250cyA9IGl0
ID09IHRleHRCb3hEYXRhTWFwLmVuZCgpID8gMCA6ICZpdC0+dmFsdWUuZmlyc3Q7CiAgICAgICAg
IGdseXBoT3ZlcmZsb3cgPSBpdCA9PSB0ZXh0Qm94RGF0YU1hcC5lbmQoKSA/IDAgOiAmaXQtPnZh
bHVlLnNlY29uZDsKICAgICB9CkBAIC04NDIsOSArODQyLDkgQEAgdm9pZCBSb290SW5saW5lQm94
Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94KElubGluZUJveCogYm94LCBHbHlwaE92ZXJmbG93QW5k
RmFsbGIKICAgICBib29sIHNldFVzZWRGb250ID0gZmFsc2U7CiAgICAgYm9vbCBzZXRVc2VkRm9u
dFdpdGhMZWFkaW5nID0gZmFsc2U7CiAKLSAgICBjb25zdCBSZW5kZXJTdHlsZSYgYm94TGluZVN0
eWxlID0gYm94LT5saW5lU3R5bGUoKTsKKyAgICBjb25zdCBSZW5kZXJTdHlsZSYgYm94TGluZVN0
eWxlID0gYm94LmxpbmVTdHlsZSgpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBpZiAodXNlZEZv
bnRzICYmICF1c2VkRm9udHMtPmlzRW1wdHkoKSAmJiAoaW5jbHVkZUZvbnQgfHwgKGJveExpbmVT
dHlsZS5saW5lSGVpZ2h0KCkuaXNOZWdhdGl2ZSgpICYmIGluY2x1ZGVMZWFkaW5nKSkgJiYgIWJv
eC0+cmVuZGVyZXIoKS5kb2N1bWVudCgpLnNldHRpbmdzKCktPmFsd2F5c1VzZUJhc2VsaW5lT2ZQ
cmltYXJ5Rm9udCgpKSB7CisgICAgaWYgKHVzZWRGb250cyAmJiAhdXNlZEZvbnRzLT5pc0VtcHR5
KCkgJiYgKGluY2x1ZGVGb250IHx8IChib3hMaW5lU3R5bGUubGluZUhlaWdodCgpLmlzTmVnYXRp
dmUoKSAmJiBpbmNsdWRlTGVhZGluZykpICYmICFib3gucmVuZGVyZXIoKS5kb2N1bWVudCgpLnNl
dHRpbmdzKCktPmFsd2F5c1VzZUJhc2VsaW5lT2ZQcmltYXJ5Rm9udCgpKSB7CiAjZWxzZQogICAg
IGlmICh1c2VkRm9udHMgJiYgIXVzZWRGb250cy0+aXNFbXB0eSgpICYmIChpbmNsdWRlRm9udCB8
fCAoYm94TGluZVN0eWxlLmxpbmVIZWlnaHQoKS5pc05lZ2F0aXZlKCkgJiYgaW5jbHVkZUxlYWRp
bmcpKSkgewogI2VuZGlmCkBAIC04NjUsMzggKzg2NSwzOCBAQCB2b2lkIFJvb3RJbmxpbmVCb3g6
OmFzY2VudEFuZERlc2NlbnRGb3JCb3goSW5saW5lQm94KiBib3gsIEdseXBoT3ZlcmZsb3dBbmRG
YWxsYgogICAgICAgICAgICAgICAgIHNldFVzZWRGb250V2l0aExlYWRpbmcgPSB0cnVlOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFhZmZlY3RzQXNjZW50KQotICAgICAgICAgICAg
ICAgIGFmZmVjdHNBc2NlbnQgPSB1c2VkRm9udEFzY2VudCAtIGJveC0+bG9naWNhbFRvcCgpID4g
MDsKKyAgICAgICAgICAgICAgICBhZmZlY3RzQXNjZW50ID0gdXNlZEZvbnRBc2NlbnQgLSBib3gu
bG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgICAgIGlmICghYWZmZWN0c0Rlc2NlbnQpCi0gICAg
ICAgICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSB1c2VkRm9udERlc2NlbnQgKyBib3gtPmxvZ2lj
YWxUb3AoKSA+IDA7CisgICAgICAgICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSB1c2VkRm9udERl
c2NlbnQgKyBib3gubG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8v
IElmIGxlYWRpbmcgaXMgaW5jbHVkZWQgZm9yIHRoZSBib3gsIHRoZW4gd2UgY29tcHV0ZSB0aGF0
IGJveC4KICAgICBpZiAoaW5jbHVkZUxlYWRpbmcgJiYgIXNldFVzZWRGb250V2l0aExlYWRpbmcp
IHsKLSAgICAgICAgaW50IGFzY2VudFdpdGhMZWFkaW5nID0gYm94LT5iYXNlbGluZVBvc2l0aW9u
KGJhc2VsaW5lVHlwZSgpKTsKLSAgICAgICAgaW50IGRlc2NlbnRXaXRoTGVhZGluZyA9IGJveC0+
bGluZUhlaWdodCgpIC0gYXNjZW50V2l0aExlYWRpbmc7CisgICAgICAgIGludCBhc2NlbnRXaXRo
TGVhZGluZyA9IGJveC5iYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lVHlwZSgpKTsKKyAgICAgICAg
aW50IGRlc2NlbnRXaXRoTGVhZGluZyA9IGJveC5saW5lSGVpZ2h0KCkgLSBhc2NlbnRXaXRoTGVh
ZGluZzsKICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGFzY2Vu
dFdpdGhMZWFkaW5nLCBkZXNjZW50V2l0aExlYWRpbmcsIGFzY2VudERlc2NlbnRTZXQpOwogICAg
ICAgICAKICAgICAgICAgLy8gRXhhbWluZSB0aGUgZm9udCBib3ggZm9yIGlubGluZSBmbG93cyBh
bmQgdGV4dCBib3hlcyB0byBzZWUgaWYgYW55IHBhcnQgb2YgaXQgaXMgYWJvdmUgdGhlIGJhc2Vs
aW5lLgogICAgICAgICAvLyBJZiB0aGUgdG9wIG9mIG91ciBmb250IGJveCByZWxhdGl2ZSB0byB0
aGUgcm9vdCBib3ggYmFzZWxpbmUgaXMgYWJvdmUgdGhlIHJvb3QgYm94IGJhc2VsaW5lLCB0aGVu
CiAgICAgICAgIC8vIHdlIGFyZSBjb250cmlidXRpbmcgdG8gdGhlIG1heEFzY2VudCB2YWx1ZS4g
RGVzY2VudCBpcyBzaW1pbGFyLiBJZiBhbnkgcGFydCBvZiBvdXIgZm9udCBib3ggaXMgYmVsb3cK
ICAgICAgICAgLy8gdGhlIHJvb3QgYm94J3MgYmFzZWxpbmUsIHRoZW4gd2UgY29udHJpYnV0ZSB0
byB0aGUgbWF4RGVzY2VudCB2YWx1ZS4KLSAgICAgICAgYWZmZWN0c0FzY2VudCA9IGFzY2VudFdp
dGhMZWFkaW5nIC0gYm94LT5sb2dpY2FsVG9wKCkgPiAwOwotICAgICAgICBhZmZlY3RzRGVzY2Vu
dCA9IGRlc2NlbnRXaXRoTGVhZGluZyArIGJveC0+bG9naWNhbFRvcCgpID4gMDsgCisgICAgICAg
IGFmZmVjdHNBc2NlbnQgPSBhc2NlbnRXaXRoTGVhZGluZyAtIGJveC5sb2dpY2FsVG9wKCkgPiAw
OworICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGRlc2NlbnRXaXRoTGVhZGluZyArIGJveC5sb2dp
Y2FsVG9wKCkgPiAwOwogICAgIH0KICAgICAKICAgICBpZiAoaW5jbHVkZUZvbnRGb3JCb3goYm94
KSAmJiAhc2V0VXNlZEZvbnQpIHsKICAgICAgICAgaW50IGZvbnRBc2NlbnQgPSBib3hMaW5lU3R5
bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpOwogICAgICAgICBpbnQgZm9u
dERlc2NlbnQgPSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlw
ZSgpKTsKICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGZvbnRB
c2NlbnQsIGZvbnREZXNjZW50LCBhc2NlbnREZXNjZW50U2V0KTsKLSAgICAgICAgYWZmZWN0c0Fz
Y2VudCA9IGZvbnRBc2NlbnQgLSBib3gtPmxvZ2ljYWxUb3AoKSA+IDA7Ci0gICAgICAgIGFmZmVj
dHNEZXNjZW50ID0gZm9udERlc2NlbnQgKyBib3gtPmxvZ2ljYWxUb3AoKSA+IDA7IAorICAgICAg
ICBhZmZlY3RzQXNjZW50ID0gZm9udEFzY2VudCAtIGJveC5sb2dpY2FsVG9wKCkgPiAwOworICAg
ICAgICBhZmZlY3RzRGVzY2VudCA9IGZvbnREZXNjZW50ICsgYm94LmxvZ2ljYWxUb3AoKSA+IDA7
CiAgICAgfQogCiAgICAgaWYgKGluY2x1ZGVHbHlwaHNGb3JCb3goYm94KSAmJiBnbHlwaE92ZXJm
bG93ICYmIGdseXBoT3ZlcmZsb3ctPmNvbXB1dGVCb3VuZHMpIHsKICAgICAgICAgc2V0QXNjZW50
QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGdseXBoT3ZlcmZsb3ctPnRvcCwgZ2x5cGhPdmVy
Zmxvdy0+Ym90dG9tLCBhc2NlbnREZXNjZW50U2V0KTsKLSAgICAgICAgYWZmZWN0c0FzY2VudCA9
IGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJveC0+bG9naWNhbFRvcCgpID4gMDsKLSAgICAgICAgYWZm
ZWN0c0Rlc2NlbnQgPSBnbHlwaE92ZXJmbG93LT5ib3R0b20gKyBib3gtPmxvZ2ljYWxUb3AoKSA+
IDA7IAorICAgICAgICBhZmZlY3RzQXNjZW50ID0gZ2x5cGhPdmVyZmxvdy0+dG9wIC0gYm94Lmxv
Z2ljYWxUb3AoKSA+IDA7CisgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gZ2x5cGhPdmVyZmxvdy0+
Ym90dG9tICsgYm94LmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRv
cCA9IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPnRvcCwgc3RkOjptYXgoMCwgZ2x5cGhPdmVyZmxv
dy0+dG9wIC0gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgp
KSkpOwogICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBzdGQ6Om1pbihnbHlwaE92ZXJm
bG93LT5ib3R0b20sIHN0ZDo6bWF4KDAsIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSAtIGJveExpbmVT
dHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7CiAgICAgfQpAQCAt
OTA0LDkgKzkwNCw5IEBAIHZvaWQgUm9vdElubGluZUJveDo6YXNjZW50QW5kRGVzY2VudEZvckJv
eChJbmxpbmVCb3gqIGJveCwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiCiAgICAgaWYgKGluY2x1ZGVN
YXJnaW5Gb3JCb3goYm94KSkgewogICAgICAgICBMYXlvdXRVbml0IGFzY2VudFdpdGhNYXJnaW4g
PSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpOwogICAg
ICAgICBMYXlvdXRVbml0IGRlc2NlbnRXaXRoTWFyZ2luID0gYm94TGluZVN0eWxlLmZvbnRNZXRy
aWNzKCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSk7Ci0gICAgICAgIGlmIChib3gtPnBhcmVudCgp
ICYmICFib3gtPnJlbmRlcmVyKCkuaXNUZXh0T3JMaW5lQnJlYWsoKSkgewotICAgICAgICAgICAg
YXNjZW50V2l0aE1hcmdpbiArPSBib3gtPmJveE1vZGVsT2JqZWN0KCktPmJvcmRlckFuZFBhZGRp
bmdCZWZvcmUoKSArIGJveC0+Ym94TW9kZWxPYmplY3QoKS0+bWFyZ2luQmVmb3JlKCk7Ci0gICAg
ICAgICAgICBkZXNjZW50V2l0aE1hcmdpbiArPSBib3gtPmJveE1vZGVsT2JqZWN0KCktPmJvcmRl
ckFuZFBhZGRpbmdBZnRlcigpICsgYm94LT5ib3hNb2RlbE9iamVjdCgpLT5tYXJnaW5BZnRlcigp
OworICAgICAgICBpZiAoYm94LnBhcmVudCgpICYmICFib3gucmVuZGVyZXIoKS5pc1RleHRPckxp
bmVCcmVhaygpKSB7CisgICAgICAgICAgICBhc2NlbnRXaXRoTWFyZ2luICs9IGJveC5ib3hNb2Rl
bE9iamVjdCgpLT5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBib3guYm94TW9kZWxPYmplY3Qo
KS0+bWFyZ2luQmVmb3JlKCk7CisgICAgICAgICAgICBkZXNjZW50V2l0aE1hcmdpbiArPSBib3gu
Ym94TW9kZWxPYmplY3QoKS0+Ym9yZGVyQW5kUGFkZGluZ0FmdGVyKCkgKyBib3guYm94TW9kZWxP
YmplY3QoKS0+bWFyZ2luQWZ0ZXIoKTsKICAgICAgICAgfQogICAgICAgICBzZXRBc2NlbnRBbmRE
ZXNjZW50KGFzY2VudCwgZGVzY2VudCwgYXNjZW50V2l0aE1hcmdpbiwgZGVzY2VudFdpdGhNYXJn
aW4sIGFzY2VudERlc2NlbnRTZXQpOwogICAgICAgICAKQEAgLTk4OSwyMSArOTg5LDIxIEBAIExh
eW91dFVuaXQgUm9vdElubGluZUJveDo6dmVydGljYWxQb3NpdGlvbkZvckJveChJbmxpbmVCb3gq
IGJveCwgVmVydGljYWxQb3NpdGlvCiAgICAgcmV0dXJuIHZlcnRpY2FsUG9zaXRpb247CiB9CiAK
LWJvb2wgUm9vdElubGluZUJveDo6aW5jbHVkZUxlYWRpbmdGb3JCb3goSW5saW5lQm94KiBib3gp
IGNvbnN0Citib29sIFJvb3RJbmxpbmVCb3g6OmluY2x1ZGVMZWFkaW5nRm9yQm94KElubGluZUJv
eCYgYm94KSBjb25zdAogewotICAgIGlmIChib3gtPnJlbmRlcmVyKCkuaXNSZXBsYWNlZCgpIHx8
IChib3gtPnJlbmRlcmVyKCkuaXNUZXh0T3JMaW5lQnJlYWsoKSAmJiAhYm94LT5iZWhhdmVzTGlr
ZVRleHQoKSkpCisgICAgaWYgKGJveC5yZW5kZXJlcigpLmlzUmVwbGFjZWQoKSB8fCAoYm94LnJl
bmRlcmVyKCkuaXNUZXh0T3JMaW5lQnJlYWsoKSAmJiAhYm94LmJlaGF2ZXNMaWtlVGV4dCgpKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTGluZUJveENvbnRhaW4gbGluZUJveENvbnRh
aW4gPSByZW5kZXJlcigpLnN0eWxlKCkubGluZUJveENvbnRhaW4oKTsKLSAgICByZXR1cm4gKGxp
bmVCb3hDb250YWluICYgTGluZUJveENvbnRhaW5JbmxpbmUpIHx8IChib3ggPT0gdGhpcyAmJiAo
bGluZUJveENvbnRhaW4gJiBMaW5lQm94Q29udGFpbkJsb2NrKSk7CisgICAgcmV0dXJuIChsaW5l
Qm94Q29udGFpbiAmIExpbmVCb3hDb250YWluSW5saW5lKSB8fCAoJmJveCA9PSB0aGlzICYmIChs
aW5lQm94Q29udGFpbiAmIExpbmVCb3hDb250YWluQmxvY2spKTsKIH0KIAotYm9vbCBSb290SW5s
aW5lQm94OjppbmNsdWRlRm9udEZvckJveChJbmxpbmVCb3gqIGJveCkgY29uc3QKK2Jvb2wgUm9v
dElubGluZUJveDo6aW5jbHVkZUZvbnRGb3JCb3goSW5saW5lQm94JiBib3gpIGNvbnN0CiB7Ci0g
ICAgaWYgKGJveC0+cmVuZGVyZXIoKS5pc1JlcGxhY2VkKCkgfHwgKGJveC0+cmVuZGVyZXIoKS5p
c1RleHRPckxpbmVCcmVhaygpICYmICFib3gtPmJlaGF2ZXNMaWtlVGV4dCgpKSkKKyAgICBpZiAo
Ym94LnJlbmRlcmVyKCkuaXNSZXBsYWNlZCgpIHx8IChib3gucmVuZGVyZXIoKS5pc1RleHRPckxp
bmVCcmVhaygpICYmICFib3guYmVoYXZlc0xpa2VUZXh0KCkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCi0gICAgaWYgKCFib3gtPmJlaGF2ZXNMaWtlVGV4dCgpICYmIGJveC0+aXNJbmxp
bmVGbG93Qm94KCkgJiYgIXRvSW5saW5lRmxvd0JveChib3gpLT5oYXNUZXh0Q2hpbGRyZW4oKSkK
KyAgICBpZiAoIWJveC5iZWhhdmVzTGlrZVRleHQoKSAmJiBib3guaXNJbmxpbmVGbG93Qm94KCkg
JiYgIXRvSW5saW5lRmxvd0JveCgmYm94KS0+aGFzVGV4dENoaWxkcmVuKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vIEZvciBub3cgbWFwICJnbHlwaHMiIHRvICJmb250IiBpbiB2
ZXJ0aWNhbCB0ZXh0IG1vZGUgdW50aWwgdGhlIGJvdW5kcyByZXR1cm5lZCBieSBnbHlwaHMgYXJl
bid0IGdhcmJhZ2UuCkBAIC0xMDExLDEyICsxMDExLDEyIEBAIGJvb2wgUm9vdElubGluZUJveDo6
aW5jbHVkZUZvbnRGb3JCb3goSW5saW5lQm94KiBib3gpIGNvbnN0CiAgICAgcmV0dXJuIChsaW5l
Qm94Q29udGFpbiAmIExpbmVCb3hDb250YWluRm9udCkgfHwgKCFpc0hvcml6b250YWwoKSAmJiAo
bGluZUJveENvbnRhaW4gJiBMaW5lQm94Q29udGFpbkdseXBocykpOwogfQogCi1ib29sIFJvb3RJ
bmxpbmVCb3g6OmluY2x1ZGVHbHlwaHNGb3JCb3goSW5saW5lQm94KiBib3gpIGNvbnN0Citib29s
IFJvb3RJbmxpbmVCb3g6OmluY2x1ZGVHbHlwaHNGb3JCb3goSW5saW5lQm94JiBib3gpIGNvbnN0
CiB7Ci0gICAgaWYgKGJveC0+cmVuZGVyZXIoKS5pc1JlcGxhY2VkKCkgfHwgKGJveC0+cmVuZGVy
ZXIoKS5pc1RleHRPckxpbmVCcmVhaygpICYmICFib3gtPmJlaGF2ZXNMaWtlVGV4dCgpKSkKKyAg
ICBpZiAoYm94LnJlbmRlcmVyKCkuaXNSZXBsYWNlZCgpIHx8IChib3gucmVuZGVyZXIoKS5pc1Rl
eHRPckxpbmVCcmVhaygpICYmICFib3guYmVoYXZlc0xpa2VUZXh0KCkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgCi0gICAgaWYgKCFib3gtPmJlaGF2ZXNMaWtlVGV4dCgpICYmIGJveC0+
aXNJbmxpbmVGbG93Qm94KCkgJiYgIXRvSW5saW5lRmxvd0JveChib3gpLT5oYXNUZXh0Q2hpbGRy
ZW4oKSkKKyAgICBpZiAoIWJveC5iZWhhdmVzTGlrZVRleHQoKSAmJiBib3guaXNJbmxpbmVGbG93
Qm94KCkgJiYgIXRvSW5saW5lRmxvd0JveCgmYm94KS0+aGFzVGV4dENoaWxkcmVuKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEZJWE1FOiBXZSBjYW4ndCBmaXQgdG8gZ2x5cGhz
IHlldCBmb3IgdmVydGljYWwgdGV4dCwgc2luY2UgdGhlIGJvdW5kcyByZXR1cm5lZCBhcmUgZ2Fy
YmFnZS4KQEAgLTEwMjQsOSArMTAyNCw5IEBAIGJvb2wgUm9vdElubGluZUJveDo6aW5jbHVkZUds
eXBoc0ZvckJveChJbmxpbmVCb3gqIGJveCkgY29uc3QKICAgICByZXR1cm4gaXNIb3Jpem9udGFs
KCkgJiYgKGxpbmVCb3hDb250YWluICYgTGluZUJveENvbnRhaW5HbHlwaHMpOwogfQogCi1ib29s
IFJvb3RJbmxpbmVCb3g6OmluY2x1ZGVNYXJnaW5Gb3JCb3goSW5saW5lQm94KiBib3gpIGNvbnN0
Citib29sIFJvb3RJbmxpbmVCb3g6OmluY2x1ZGVNYXJnaW5Gb3JCb3goSW5saW5lQm94JiBib3gp
IGNvbnN0CiB7Ci0gICAgaWYgKGJveC0+cmVuZGVyZXIoKS5pc1JlcGxhY2VkKCkgfHwgKGJveC0+
cmVuZGVyZXIoKS5pc1RleHRPckxpbmVCcmVhaygpICYmICFib3gtPmJlaGF2ZXNMaWtlVGV4dCgp
KSkKKyAgICBpZiAoYm94LnJlbmRlcmVyKCkuaXNSZXBsYWNlZCgpIHx8IChib3gucmVuZGVyZXIo
KS5pc1RleHRPckxpbmVCcmVhaygpICYmICFib3guYmVoYXZlc0xpa2VUZXh0KCkpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBMaW5lQm94Q29udGFpbiBsaW5lQm94Q29udGFpbiA9IHJl
bmRlcmVyKCkuc3R5bGUoKS5saW5lQm94Q29udGFpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9Sb290SW5saW5lQm94LmgKaW5kZXggNjgxYTBjYTdlNTg2ODQwOWNmYmVmNzkwNDVjODJmYTY1
MzBhNThjNi4uOGU3NTAzZDUxZTI1NDM5NWM5NGY4MTQyNjRmYmJmYjY0ZTFiYjAwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCkBAIC0xNTgsMTIgKzE1OCw4IEBA
IHB1YmxpYzoKIAogICAgIExheW91dFJlY3QgcGFkZGVkTGF5b3V0T3ZlcmZsb3dSZWN0KExheW91
dFVuaXQgZW5kUGFkZGluZykgY29uc3Q7CiAKLSAgICB2b2lkIGFzY2VudEFuZERlc2NlbnRGb3JC
b3goSW5saW5lQm94KiwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmLCBpbnQmIGFz
Y2VudCwgaW50JiBkZXNjZW50LCBib29sJiBhZmZlY3RzQXNjZW50LCBib29sJiBhZmZlY3RzRGVz
Y2VudCkgY29uc3Q7CisgICAgdm9pZCBhc2NlbnRBbmREZXNjZW50Rm9yQm94KElubGluZUJveCYs
IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiwgaW50JiBhc2NlbnQsIGludCYgZGVz
Y2VudCwgYm9vbCYgYWZmZWN0c0FzY2VudCwgYm9vbCYgYWZmZWN0c0Rlc2NlbnQpIGNvbnN0Owog
ICAgIExheW91dFVuaXQgdmVydGljYWxQb3NpdGlvbkZvckJveChJbmxpbmVCb3gqLCBWZXJ0aWNh
bFBvc2l0aW9uQ2FjaGUmKTsKLSAgICBib29sIGluY2x1ZGVMZWFkaW5nRm9yQm94KElubGluZUJv
eCopIGNvbnN0OwotICAgIGJvb2wgaW5jbHVkZUZvbnRGb3JCb3goSW5saW5lQm94KikgY29uc3Q7
Ci0gICAgYm9vbCBpbmNsdWRlR2x5cGhzRm9yQm94KElubGluZUJveCopIGNvbnN0OwotICAgIGJv
b2wgaW5jbHVkZU1hcmdpbkZvckJveChJbmxpbmVCb3gqKSBjb25zdDsKICAgICBib29sIGZpdHNU
b0dseXBocygpIGNvbnN0OwogICAgIGJvb2wgaW5jbHVkZXNSb290TGluZUJveEZvbnRPckxlYWRp
bmcoKSBjb25zdDsKICAgICAKQEAgLTE5Niw2ICsxOTIsMTEgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgaXNSb290SW5saW5lQm94KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQogCisgICAgYm9vbCBpbmNsdWRlTGVhZGluZ0ZvckJveChJbmxpbmVC
b3gmKSBjb25zdDsKKyAgICBib29sIGluY2x1ZGVGb250Rm9yQm94KElubGluZUJveCYpIGNvbnN0
OworICAgIGJvb2wgaW5jbHVkZUdseXBoc0ZvckJveChJbmxpbmVCb3gmKSBjb25zdDsKKyAgICBi
b29sIGluY2x1ZGVNYXJnaW5Gb3JCb3goSW5saW5lQm94JikgY29uc3Q7CisKICAgICBMYXlvdXRV
bml0IGxpbmVTbmFwQWRqdXN0bWVudChMYXlvdXRVbml0IGRlbHRhID0gMCkgY29uc3Q7CiAKICAg
ICBMYXlvdXRVbml0IGJlZm9yZUFubm90YXRpb25zQWRqdXN0bWVudCgpIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>