Bug 964128
| Summary: | LDAP upload CA cert sometimes double-encodes the value | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Libor Miksik <lmiksik> |
| Component: | ipa | Assignee: | Rob Crittenden <rcritten> |
| Status: | CLOSED ERRATA | QA Contact: | Namita Soman <nsoman> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 6.5 | CC: | dpal, lmiksik, mkosek, nc, nsoman, pm-eus, rcritten, sgoveas |
| Target Milestone: | rc | Keywords: | Regression, ZStream |
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | ipa-3.0.0-26.el6_4.3 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2013-06-13 08:09:37 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 948928 | ||
| Bug Blocks: | |||
|
Description
Libor Miksik
2013-05-17 10:24:41 UTC
Verified with version ipa-server-3.0.0-26.el6_4.4.x86_64 * With unpatched version [root@server1 ~]# rpm -q ipa-server ipa-server-3.0.0-26.el6_4.2.x86_64 [root@server1 ~]# ldapsearch -x -D "cn=Directory Manager" -w Secret123 -h localhost -p 389 -b "cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe" # extended LDIF # # LDAPv3 # base <cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe> with scope subtree # filter: (objectclass=*) # requesting: ALL # # CAcert, ipa, etc, ipalab.qe dn: cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe objectClass: nsContainer objectClass: pkiCA objectClass: top cn: CAcert cACertificate;binary:: MIIDiTCCAnGgAwIBAgIBATANBgkqhkiG9w0BAQsFADA0MRIwEAYDVQQ KEwlJUEFMQUIuUUUxHjAcBgNVBAMTFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xMzA1MjMxMjUw MjBaFw0zMzA1MjMxMjUwMjBaMDQxEjAQBgNVBAoTCUlQQUxBQi5RRTEeMBwGA1UEAxMVQ2VydGlma WNhdGUgQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyIIJFaTShx1oMT 9HeEFpWs2qqYnNRMd5MXHMJsP8glgWVY5PbBrBNdS5dbL7oTjKyPC1A4eWUBna4uOR2R5dY6QIFDJ q4+fgDcJrOXyQtK3YLBBfaAQDDyJhe6sCnknF6mrn2bGVANVzk1oTgPw+pO1fQqd3AgfqOUslTa73 PAzwOgf5Dz/jxpCsJS3LdpudGFKZ5GlIUw1SB+8kj1gsWnDk7v3e0Kk86ZAssE1jEG3V5jTK2gs4A oBzfSSo2KD9/oJYubZBkrcBdxsY1phm4PjC262igc9CZ2neqMD4j33Kf6bccn55VaxlN23mv2doIF 4fxwp94VdLUnyARH/tmwIDAQABo4GlMIGiMB8GA1UdIwQYMBaAFDhkGGK/l2StSpzn77Yh2cCbAAy wMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQ4ZBhiv5dkrUqc5++2 IdnAmwAMsDA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAGGI2h0dHA6Ly9zZXJ2ZXIxLmlwYWxhY i5xZTo4MC9jYS9vY3NwMA0GCSqGSIb3DQEBCwUAA4IBAQBrBBmAdUB3uja87ZK0YhrExjkjApBMPy tvbIJeQuzxD41h6O7YLSCj0McDPlqoGuP34FRRWqXE3pAJLSr5t6muqctNPBQ7XvEetVZpSOWXqMX 1fN9mbtZbMAiIRB4K9kpXLp48q7qFfwtzJYomOFAwxKwDlU/AfOyewmQqUyvNaroc75tvmyB+9Yo2 2oGQUGluO7PAStZHbZMH8mQVc9+XEqpUk5xwrz6zWa6D+CFWHKhfNYPABoBigJAumAVb08QOG5hq/ fACqm/dbQkFnKwcwyM5D17Agf/NkYTfczKZmXucRJoixptINGe6py4pSM7Ja7ZaMRtvUKPGeEskgj Je # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 * Delete CAcert [root@server1 ~]# ldapdelete -x -D "cn=Directory Manager" -w Secret123 "cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe" [root@server1 log]# ldapsearch -x -D "cn=Directory Manager" -w Secret123 -h localhost -p 389 -b "cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe" # extended LDIF # # LDAPv3 # base <cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object matchedDN: cn=ipa,cn=etc,dc=ipalab,dc=qe # numResponses: 1 * Running updater [root@server1 ~]# ipa-ldap-updater --plugins Directory Manager password: [root@server1 ~]# echo $? 0 * CAcert is double encoded after update plugin. Checked from a f18 server where ldapsearch supports ldif-wrap in general options (openldap-clients-2.4.35-4.fc18.1.x86_64) [root@f18-server1 ~]# ldapsearch -o ldif-wrap=no -x -D "cn=Directory Manager" -w Secret123 -b "cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe" -h 10.16.65.2 -p 389 # extended LDIF # # LDAPv3 # base <cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe> with scope subtree # filter: (objectclass=*) # requesting: ALL # # CACert, ipa, etc, ipalab.qe dn: cn=CACert,cn=ipa,cn=etc,dc=ipalab,dc=qe objectClass: nsContainer objectClass: pkiCA objectClass: top cn: CAcert cACertificate;binary:: TUlJRGlUQ0NBbkdnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQTBNUkl3RUFZRFZRUUtFd2xKVUVGTVFVSXVVVVV4SGpBY0JnTlZCQU1URlVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVUQWVGdzB4TXpBMU1qTXhNalV3TWpCYUZ3MHpNekExTWpNeE1qVXdNakJhTURReEVqQVFCZ05WQkFvVENVbFFRVXhCUWk1UlJURWVNQndHQTFVRUF4TVZRMlZ5ZEdsbWFXTmhkR1VnUVhWMGFHOXlhWFI1TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF5SUlKRmFUU2h4MW9NVDlIZUVGcFdzMnFxWW5OUk1kNU1YSE1Kc1A4Z2xnV1ZZNVBiQnJCTmRTNWRiTDdvVGpLeVBDMUE0ZVdVQm5hNHVPUjJSNWRZNlFJRkRKcTQrZmdEY0pyT1h5UXRLM1lMQkJmYUFRRER5SmhlNnNDbmtuRjZtcm4yYkdWQU5Wemsxb1RnUHcrcE8xZlFxZDNBZ2ZxT1VzbFRhNzNQQXp3T2dmNUR6L2p4cENzSlMzTGRwdWRHRktaNUdsSVV3MVNCKzhrajFnc1duRGs3djNlMEtrODZaQXNzRTFqRUczVjVqVEsyZ3M0QW9CemZTU28yS0Q5L29KWXViWkJrcmNCZHhzWTFwaG00UGpDMjYyaWdjOUNaMm5lcU1ENGozM0tmNmJjY241NVZheGxOMjNtdjJkb0lGNGZ4d3A5NFZkTFVueUFSSC90bXdJREFRQUJvNEdsTUlHaU1COEdBMVVkSXdRWU1CYUFGRGhrR0dLL2wyU3RTcHpuNzdZaDJjQ2JBQXl3TUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3RGdZRFZSMFBBUUgvQkFRREFnSEdNQjBHQTFVZERnUVdCQlE0WkJoaXY1ZGtyVXFjNSsrMklkbkFtd0FNc0RBL0JnZ3JCZ0VGQlFjQkFRUXpNREV3THdZSUt3WUJCUVVITUFHR0kyaDBkSEE2THk5elpYSjJaWEl4TG1sd1lXeGhZaTV4WlRvNE1DOWpZUzl2WTNOd01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQnJCQm1BZFVCM3VqYTg3WkswWWhyRXhqa2pBcEJNUHl0dmJJSmVRdXp4RDQxaDZPN1lMU0NqME1jRFBscW9HdVAzNEZSUldxWEUzcEFKTFNyNXQ2bXVxY3ROUEJRN1h2RWV0VlpwU09XWHFNWDFmTjltYnRaYk1BaUlSQjRLOWtwWExwNDhxN3FGZnd0ekpZb21PRkF3eEt3RGxVL0FmT3lld21RcVV5dk5hcm9jNzV0dm15Qis5WW8yMm9HUVVHbHVPN1BBU3RaSGJaTUg4bVFWYzkrWEVxcFVrNXh3cno2eldhNkQrQ0ZXSEtoZk5ZUEFCb0JpZ0pBdW1BVmIwOFFPRzVocS9mQUNxbS9kYlFrRm5Ld2N3eU01RDE3QWdmL05rWVRmY3pLWm1YdWNSSm9peHB0SU5HZTZweTRwU003SmE3WmFNUnR2VUtQR2VFc2tnakpl # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 * Delete CAcert again [root@server1 ~]# ldapdelete -x -D "cn=Directory Manager" -w Secret123 "cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe" [root@server1 ~]# ldapsearch -x -D "cn=Directory Manager" -w Secret123 -h localhost -p 389 -b "cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe" # extended LDIF # # LDAPv3 # base <cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object matchedDN: cn=ipa,cn=etc,dc=ipalab,dc=qe # numResponses: 1 * Update to patched rpms [root@server1 ~]# yum update ipa-server Loaded plugins: product-id, rhnplugin, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. This system is receiving updates from RHN Classic or RHN Satellite. ipa-latest | 1.3 kB 00:00 Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package ipa-server.x86_64 0:3.0.0-26.el6_4.2 will be updated --> Processing Dependency: ipa-server = 3.0.0-26.el6_4.2 for package: ipa-server-selinux-3.0.0-26.el6_4.2.x86_64 --> Processing Dependency: ipa-server = 3.0.0-26.el6_4.2 for package: ipa-server-selinux-3.0.0-26.el6_4.2.x86_64 ---> Package ipa-server.x86_64 0:3.0.0-26.el6_4.4 will be an update --> Processing Dependency: ipa-python = 3.0.0-26.el6_4.4 for package: ipa-server-3.0.0-26.el6_4.4.x86_64 --> Processing Dependency: ipa-client = 3.0.0-26.el6_4.4 for package: ipa-server-3.0.0-26.el6_4.4.x86_64 --> Processing Dependency: ipa-admintools = 3.0.0-26.el6_4.4 for package: ipa-server-3.0.0-26.el6_4.4.x86_64 --> Running transaction check ---> Package ipa-admintools.x86_64 0:3.0.0-26.el6_4.2 will be updated ---> Package ipa-admintools.x86_64 0:3.0.0-26.el6_4.4 will be an update ---> Package ipa-client.x86_64 0:3.0.0-26.el6_4.2 will be updated ---> Package ipa-client.x86_64 0:3.0.0-26.el6_4.4 will be an update ---> Package ipa-python.x86_64 0:3.0.0-26.el6_4.2 will be updated ---> Package ipa-python.x86_64 0:3.0.0-26.el6_4.4 will be an update ---> Package ipa-server-selinux.x86_64 0:3.0.0-26.el6_4.2 will be updated ---> Package ipa-server-selinux.x86_64 0:3.0.0-26.el6_4.4 will be an update --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================== Package Arch Version Repository Size ======================================================================================================== Updating: ipa-server x86_64 3.0.0-26.el6_4.4 ipa-latest 1.1 M Updating for dependencies: ipa-admintools x86_64 3.0.0-26.el6_4.4 ipa-latest 62 k ipa-client x86_64 3.0.0-26.el6_4.4 ipa-latest 139 k ipa-python x86_64 3.0.0-26.el6_4.4 ipa-latest 921 k ipa-server-selinux x86_64 3.0.0-26.el6_4.4 ipa-latest 61 k Transaction Summary ======================================================================================================== Upgrade 5 Package(s) Total download size: 2.3 M Is this ok [y/N]: y Downloading Packages: (1/5): ipa-admintools-3.0.0-26.el6_4.4.x86_64.rpm | 62 kB 00:00 (2/5): ipa-client-3.0.0-26.el6_4.4.x86_64.rpm | 139 kB 00:00 (3/5): ipa-python-3.0.0-26.el6_4.4.x86_64.rpm | 921 kB 00:04 (4/5): ipa-server-3.0.0-26.el6_4.4.x86_64.rpm | 1.1 MB 00:04 (5/5): ipa-server-selinux-3.0.0-26.el6_4.4.x86_64.rpm | 61 kB 00:00 -------------------------------------------------------------------------------------------------------- Total 160 kB/s | 2.3 MB 00:14 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : ipa-python-3.0.0-26.el6_4.4.x86_64 1/10 Updating : ipa-client-3.0.0-26.el6_4.4.x86_64 2/10 Updating : ipa-admintools-3.0.0-26.el6_4.4.x86_64 3/10 Updating : ipa-server-3.0.0-26.el6_4.4.x86_64 4/10 Updating : ipa-server-selinux-3.0.0-26.el6_4.4.x86_64 5/10 Cleanup : ipa-server-selinux-3.0.0-26.el6_4.2.x86_64 6/10 Cleanup : ipa-server-3.0.0-26.el6_4.2.x86_64 7/10 Cleanup : ipa-admintools-3.0.0-26.el6_4.2.x86_64 8/10 Cleanup : ipa-client-3.0.0-26.el6_4.2.x86_64 9/10 Cleanup : ipa-python-3.0.0-26.el6_4.2.x86_64 10/10 Verifying : ipa-server-selinux-3.0.0-26.el6_4.4.x86_64 1/10 Verifying : ipa-python-3.0.0-26.el6_4.4.x86_64 2/10 Verifying : ipa-client-3.0.0-26.el6_4.4.x86_64 3/10 Verifying : ipa-admintools-3.0.0-26.el6_4.4.x86_64 4/10 Verifying : ipa-server-3.0.0-26.el6_4.4.x86_64 5/10 Verifying : ipa-server-3.0.0-26.el6_4.2.x86_64 6/10 Verifying : ipa-python-3.0.0-26.el6_4.2.x86_64 7/10 Verifying : ipa-server-selinux-3.0.0-26.el6_4.2.x86_64 8/10 Verifying : ipa-admintools-3.0.0-26.el6_4.2.x86_64 9/10 Verifying : ipa-client-3.0.0-26.el6_4.2.x86_64 10/10 Updated: ipa-server.x86_64 0:3.0.0-26.el6_4.4 Dependency Updated: ipa-admintools.x86_64 0:3.0.0-26.el6_4.4 ipa-client.x86_64 0:3.0.0-26.el6_4.4 ipa-python.x86_64 0:3.0.0-26.el6_4.4 ipa-server-selinux.x86_64 0:3.0.0-26.el6_4.4 Complete! * CAcert is not double encoded [root@server1 ~]# ldapsearch -x -D "cn=Directory Manager" -w Secret123 -h localhost -p 389 -b "cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe" # extended LDIF # # LDAPv3 # base <cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe> with scope subtree # filter: (objectclass=*) # requesting: ALL # # CACert, ipa, etc, ipalab.qe dn: cn=CACert,cn=ipa,cn=etc,dc=ipalab,dc=qe objectClass: nsContainer objectClass: pkiCA objectClass: top cn: CAcert cACertificate;binary:: MIIDiTCCAnGgAwIBAgIBATANBgkqhkiG9w0BAQsFADA0MRIwEAYDVQQ KEwlJUEFMQUIuUUUxHjAcBgNVBAMTFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xMzA1MjMxMjUw MjBaFw0zMzA1MjMxMjUwMjBaMDQxEjAQBgNVBAoTCUlQQUxBQi5RRTEeMBwGA1UEAxMVQ2VydGlma WNhdGUgQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyIIJFaTShx1oMT 9HeEFpWs2qqYnNRMd5MXHMJsP8glgWVY5PbBrBNdS5dbL7oTjKyPC1A4eWUBna4uOR2R5dY6QIFDJ q4+fgDcJrOXyQtK3YLBBfaAQDDyJhe6sCnknF6mrn2bGVANVzk1oTgPw+pO1fQqd3AgfqOUslTa73 PAzwOgf5Dz/jxpCsJS3LdpudGFKZ5GlIUw1SB+8kj1gsWnDk7v3e0Kk86ZAssE1jEG3V5jTK2gs4A oBzfSSo2KD9/oJYubZBkrcBdxsY1phm4PjC262igc9CZ2neqMD4j33Kf6bccn55VaxlN23mv2doIF 4fxwp94VdLUnyARH/tmwIDAQABo4GlMIGiMB8GA1UdIwQYMBaAFDhkGGK/l2StSpzn77Yh2cCbAAy wMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQ4ZBhiv5dkrUqc5++2 IdnAmwAMsDA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAGGI2h0dHA6Ly9zZXJ2ZXIxLmlwYWxhY i5xZTo4MC9jYS9vY3NwMA0GCSqGSIb3DQEBCwUAA4IBAQBrBBmAdUB3uja87ZK0YhrExjkjApBMPy tvbIJeQuzxD41h6O7YLSCj0McDPlqoGuP34FRRWqXE3pAJLSr5t6muqctNPBQ7XvEetVZpSOWXqMX 1fN9mbtZbMAiIRB4K9kpXLp48q7qFfwtzJYomOFAwxKwDlU/AfOyewmQqUyvNaroc75tvmyB+9Yo2 2oGQUGluO7PAStZHbZMH8mQVc9+XEqpUk5xwrz6zWa6D+CFWHKhfNYPABoBigJAumAVb08QOG5hq/ fACqm/dbQkFnKwcwyM5D17Agf/NkYTfczKZmXucRJoixptINGe6py4pSM7Ja7ZaMRtvUKPGeEskgj Je # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 [root@f18-server1 ~]# ldapsearch -o ldif-wrap=no -x -D "cn=Directory Manager" -w Secret123 -b "cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe" -h 10.16.65.2 -p 389 # extended LDIF # # LDAPv3 # base <cn=CAcert,cn=ipa,cn=etc,dc=ipalab,dc=qe> with scope subtree # filter: (objectclass=*) # requesting: ALL # # CACert, ipa, etc, ipalab.qe dn: cn=CACert,cn=ipa,cn=etc,dc=ipalab,dc=qe objectClass: nsContainer objectClass: pkiCA objectClass: top cn: CAcert cACertificate;binary:: MIIDiTCCAnGgAwIBAgIBATANBgkqhkiG9w0BAQsFADA0MRIwEAYDVQQKEwlJUEFMQUIuUUUxHjAcBgNVBAMTFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xMzA1MjMxMjUwMjBaFw0zMzA1MjMxMjUwMjBaMDQxEjAQBgNVBAoTCUlQQUxBQi5RRTEeMBwGA1UEAxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyIIJFaTShx1oMT9HeEFpWs2qqYnNRMd5MXHMJsP8glgWVY5PbBrBNdS5dbL7oTjKyPC1A4eWUBna4uOR2R5dY6QIFDJq4+fgDcJrOXyQtK3YLBBfaAQDDyJhe6sCnknF6mrn2bGVANVzk1oTgPw+pO1fQqd3AgfqOUslTa73PAzwOgf5Dz/jxpCsJS3LdpudGFKZ5GlIUw1SB+8kj1gsWnDk7v3e0Kk86ZAssE1jEG3V5jTK2gs4AoBzfSSo2KD9/oJYubZBkrcBdxsY1phm4PjC262igc9CZ2neqMD4j33Kf6bccn55VaxlN23mv2doIF4fxwp94VdLUnyARH/tmwIDAQABo4GlMIGiMB8GA1UdIwQYMBaAFDhkGGK/l2StSpzn77Yh2cCbAAywMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQ4ZBhiv5dkrUqc5++2IdnAmwAMsDA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAGGI2h0dHA6Ly9zZXJ2ZXIxLmlwYWxhYi5xZTo4MC9jYS9vY3NwMA0GCSqGSIb3DQEBCwUAA4IBAQBrBBmAdUB3uja87ZK0YhrExjkjApBMPytvbIJeQuzxD41h6O7YLSCj0McDPlqoGuP34FRRWqXE3pAJLSr5t6muqctNPBQ7XvEetVZpSOWXqMX1fN9mbtZbMAiIRB4K9kpXLp48q7qFfwtzJYomOFAwxKwDlU/AfOyewmQqUyvNaroc75tvmyB+9Yo22oGQUGluO7PAStZHbZMH8mQVc9+XEqpUk5xwrz6zWa6D+CFWHKhfNYPABoBigJAumAVb08QOG5hq/fACqm/dbQkFnKwcwyM5D17Agf/NkYTfczKZmXucRJoixptINGe6py4pSM7Ja7ZaMRtvUKPGeEskgjJe # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-0945.html |