From 0803aae4bb1a593cbfd97a73a8648ec8ee5f1f76 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@d688527b-c9ab-4aba-bd8d-4036d912da1d> Date: Fri, 7 Nov 2003 17:58:36 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'Build-SPSS_1_1_0'. git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/tags/Build-SPSS_1_1_0@42 d688527b-c9ab-4aba-bd8d-4036d912da1d --- .../ixsil/init/properties/algorithms.properties | 94 ----- .../ixsil/init/properties/init.properties | 214 ----------- .../ixsil/init/properties/keyManager.properties | 74 ---- .../abnahme-test/ixsil/init/schemas/Signature.xsd | 328 ----------------- .../abnahme-test/ixsil/init/schemas/XMLSchema.dtd | 402 --------------------- .../abnahme-test/ixsil/init/schemas/datatypes.dtd | 203 ----------- 6 files changed, 1315 deletions(-) delete mode 100644 id.server/data/abnahme-test/ixsil/init/properties/algorithms.properties delete mode 100644 id.server/data/abnahme-test/ixsil/init/properties/init.properties delete mode 100644 id.server/data/abnahme-test/ixsil/init/properties/keyManager.properties delete mode 100644 id.server/data/abnahme-test/ixsil/init/schemas/Signature.xsd delete mode 100644 id.server/data/abnahme-test/ixsil/init/schemas/XMLSchema.dtd delete mode 100644 id.server/data/abnahme-test/ixsil/init/schemas/datatypes.dtd (limited to 'id.server/data/abnahme-test/ixsil/init') diff --git a/id.server/data/abnahme-test/ixsil/init/properties/algorithms.properties b/id.server/data/abnahme-test/ixsil/init/properties/algorithms.properties deleted file mode 100644 index 35a41cfdd..000000000 --- a/id.server/data/abnahme-test/ixsil/init/properties/algorithms.properties +++ /dev/null @@ -1,94 +0,0 @@ -# IXSIL algorithm properties -# -# This file contains the properties which IXSIL uses to maintain the available algorithms. - - - -#---------------------------------------------------------------------------------------------------------- -# Canonicalization algorithms -# -# The following properties (starting with "Canonicalization.") are associations between canonicalization -# algorithm URIs and their corresponding implementation classes. -# -# For instance, if you would like to specify the implementation class for the canonicalization algorithm -# with the identifying URI "http://www.w3.org/TR/2001/REC-xml-c14n-20010315", the name of the algorithm -# property is "Canonicalization.http://www.w3.org/TR/2001/REC-xml-c14n-20010315", i.e. the identifying URI, -# prepended by the canonicalization algorithm property identifier ("Canonicalization."). The value of the -# property is the fully qualified class name of the implementation for this algorithm, for instance the -# standard impl. shipped with IXSIL, "iaik.ixsil.algorithms.CanonicalizationAlgorithmImplCanonicalXML". -# -# PLEASE NOTE: The colon character (":") must be escaped by a leading backslash, if it appears in the -# property name. - -Canonicalization.http\://www.w3.org/TR/2001/REC-xml-c14n-20010315 = iaik.ixsil.algorithms.CanonicalizationAlgorithmImplCanonicalXML -Canonicalization.http\://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments = iaik.ixsil.algorithms.CanonicalizationAlgorithmImplCanonicalXMLWithComments -Canonicalization.http\://www.w3.org/2001/10/xml-exc-c14n# = iaik.ixsil.algorithms.CanonicalizationAlgorithmImplExclusiveCanonicalXML -Canonicalization.http\://www.w3.org/2001/10/xml-exc-c14n#WithComments = iaik.ixsil.algorithms.CanonicalizationAlgorithmImplExclusiveCanonicalXMLWithComments - -#---------------------------------------------------------------------------------------------------------- -# Signature algorithms -# -# The following properties (starting with "Signature.") are associations between signature algorithm URIs and -# their corresponding implementation classes. -# -# For instance, if you would like to specify the implementation class for the signature algorithm -# with the identifying URI "http://www.w3.org/2000/09/xmldsig#rsa-sha1", the name of the algorithm -# property is "Signature.http://www.w3.org/2000/09/xmldsig#rsa-sha1", i.e. the identifying URI, -# prepended by the signature algorithm property identifier ("Signature."). The value of the -# property is the fully qualified class name of the implementation for this algorithm, for instance the -# standard implementation shipped with IXSIL, "iaik.ixsil.algorithms.SignatureAlgorithmImplRSA". -# -# PLEASE NOTE: The colon character (":") must be escaped by a leading backslash, if it appears in the -# property name. - -Signature.http\://www.w3.org/2000/09/xmldsig#rsa-sha1 = iaik.ixsil.algorithms.SignatureAlgorithmImplRSA -Signature.http\://www.w3.org/2000/09/xmldsig#dsa-sha1 = iaik.ixsil.algorithms.SignatureAlgorithmImplDSA -Signature.http\://www.w3.org/2000/09/xmldsig#hmac-sha1 = iaik.ixsil.algorithms.SignatureAlgorithmImplHMAC - - - -#---------------------------------------------------------------------------------------------------------- -# Digest algorithms -# -# The following properties (starting with "Digest.") are associations between digest algorithm URIs and -# their corresponding implementation classes. -# -# For instance, if you would like to specify the implementation class for the digest algorithm -# with the identifying URI "http://www.w3.org/2000/09/xmldsig#sha1", the name of the algorithm -# property is "Digest.http://www.w3.org/2000/09/xmldsig#sha1", i.e. the identifying URI, -# prepended by the digest algorithm property identifier ("Digest."). The value of the -# property is the fully qualified class name of the implementation for this algorithm, for instance the -# standard implementation shipped with IXSIL, "iaik.ixsil.algorithms.DigestAlgorithmImplSHA1". -# -# PLEASE NOTE: The colon character (":") must be escaped by a leading backslash, if it appears in the -# property name. - -Digest.http\://www.w3.org/2000/09/xmldsig#sha1 = iaik.ixsil.algorithms.DigestAlgorithmImplSHA1 - - - -#---------------------------------------------------------------------------------------------------------- -# Transform algorithms -# -# The following properties (starting with "Transform.") are associations between digest algorithm URIs and -# their corresponding implementation classes. -# -# For instance, if you would like to specify the implementation class for the transform algorithm -# with the identifying URI "http://www.w3.org/2000/09/xmldsig#base64", the name of the algorithm -# property is "Transform.http://www.w3.org/2000/09/xmldsig#base64", i.e. the identifying URI, -# prepended by the transform algorithm property identifier ("Transform."). The value of the -# property is the fully qualified class name of the implementation for this algorithm, for instance the -# standard implementation shipped with IXSIL, "iaik.ixsil.algorithms.TransformImplBase64Decode". -# -# PLEASE NOTE: The colon character (":") must be escaped by a leading backslash, if it appears in the -# property name. - -Transform.http\://www.w3.org/TR/2001/REC-xml-c14n-20010315 = iaik.ixsil.algorithms.TransformImplCanonicalXML -Transform.http\://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments = iaik.ixsil.algorithms.TransformImplCanonicalXMLWithComments -Transform.http\://www.w3.org/2001/10/xml-exc-c14n# = iaik.ixsil.algorithms.TransformImplExclusiveCanonicalXML -Transform.http\://www.w3.org/2001/10/xml-exc-c14n#WithComments = iaik.ixsil.algorithms.TransformImplExclusiveCanonicalXMLWithComments -Transform.http\://www.w3.org/2000/09/xmldsig#base64 = iaik.ixsil.algorithms.TransformImplBase64Decode -Transform.http\://www.w3.org/TR/1999/REC-xpath-19991116 = iaik.ixsil.algorithms.TransformImplXPath -Transform.http\://www.w3.org/2000/09/xmldsig#enveloped-signature = iaik.ixsil.algorithms.TransformImplEnvelopedSignature -Transform.http\://www.w3.org/TR/1999/REC-xslt-19991116 = iaik.ixsil.algorithms.TransformImplXSLT -Transform.http\://www.w3.org/2002/06/xmldsig-filter2 = iaik.ixsil.algorithms.TransformImplXPath2 diff --git a/id.server/data/abnahme-test/ixsil/init/properties/init.properties b/id.server/data/abnahme-test/ixsil/init/properties/init.properties deleted file mode 100644 index a309959cc..000000000 --- a/id.server/data/abnahme-test/ixsil/init/properties/init.properties +++ /dev/null @@ -1,214 +0,0 @@ -# IXSIL init properties -# -# This file contains the basic initialization properties for IXSIL. - -#---------------------------------------------------------------------------------------------------------- -# Properties for localizing exeption messages - -# This property specifies the ISO language code, which is used to select the appropriate exception message -# file. Please see the documentation for Java class "java.util.RessourceBundle" for further information. - -IXSILException.ISOLanguageCode = "en" - - - -# This property specifies the ISO country code, which is used to select the appropriate exception message -# file. Please see the documentation for Java class "java.util.RessourceBundle" for further information. - -IXSILException.ISOCountryCode = "US" - - -#---------------------------------------------------------------------------------------------------------- -# Other property files - -# This property contains a URI specifying the (virtual) location of the IXSIL init properties file (i. e. -# this file). The URI MUST be absolute. -# -# The use of this property is optional. It is only needed by IXSIL, if the library will be initialized using -# the method IXSILInit.init(Properties, Properties, Properties). In this case it is used by IXSIL as the -# base URI for absolutizing other property URIs, such as "DOMUtils.SignatureSchema" (see below). -# -# PLEASE NOTE: Contrary to URIs under e.g. http or ftp scheme, URIs under file and jar scheme do not have an -# authority component. This means that the part following the scheme identifier starts with "/" -# (single slash character), and not with "//" (two slash characters). -# -# Example 1 (absolute URI under file scheme): "file:/c:/path1/path2/init.properties" -# Example 2 (absolute URI under jar scheme): "jar:/file:/c:/path1/path2/archive.jar!/init.properties" -# Example 3 (absolute URI under http scheme): "http://somewhere.org/path1/path2/init.properties" - -location.initProperties = file:data/abnahme/test/ixsil/init/properties/init.properties - - - -# This property contains a URI specifying the location of the IXSIL algorithm properties file. The URI can -# be absolute or relative. If a relative URI is used, it will be absolutized using this init property file's -# URI as the base. -# -# PLEASE NOTE: Contrary to URIs under e.g. http or ftp scheme, URIs under file and jar scheme do not have an -# authority component. This means that the part following the scheme identifier starts with "/" -# (single slash character), and not with "//" (two slash characters). -# -# Example 1 (absolute URI under file scheme): "file:/c:/path1/path2/algorithms.properties" -# Example 2 (absolute URI under jar scheme): "jar:/file:/c:/path1/path2/archive.jar!/algorithms.properties" -# Example 3 (absolute URI under http scheme): "http://somewhere.org/path1/path2/algorithms.properties" -# Example 4 (relative URI): "../otherpath/algorithms.properties" -# Example 5 (relative URI): "algorithms.properties" - -location.algorithmsProperties = file:data/abnahme/test/ixsil/init/properties/algorithms.properties - - - -# This property contains a URI specifying the location of the IXSIL keyManager properties file. The URI can -# be absolute or relative. If a relative URI is used, it will be absolutized using this init property file's -# URI as the base. -# -# PLEASE NOTE: Contrary to URIs under e.g. http or ftp scheme, URIs under file and jar scheme do not have an -# authority component. This means that the part following the scheme identifier starts with "/" -# (single slash character), and not with "//" (two slash characters). -# -# Example 1 (absolute URI under file scheme): "file:/c:/path1/path2/keyManager.properties" -# Example 2 (absolute URI under jar scheme): "jar:/file:/c:/path1/path2/archive.jar!/keyManager.properties" -# Example 3 (absolute URI under http scheme): "http://somewhere.org/path1/path2/keyManager.properties" -# Example 4 (relative URI): "../otherpath/keyManager.properties" -# Example 5 (relative URI): "keyManager.properties" - -location.keyManagerProperties = file:data/abnahme/test/ixsil/init/properties/keyManager.properties - - - -#---------------------------------------------------------------------------------------------------------- -# AlgorithmFactory properties - - - -This property specifies the extension class for the abstract class -iaik.ixsil.algorithms.AlgorithmFactory, which is instantiated at invokation of method -iaik.ixsil.algorithms.AlgorithmFactory.createFactory(). -Please specifiy the fully qualified java class name for the class to be instantiated. - -AlgorithmFactory.ImplementingClass = iaik.ixsil.algorithms.AlgorithmFactoryDefaultImpl - - - -#---------------------------------------------------------------------------------------------------------- -# VerifierKeyManager properties - -# This property specifies the implementation class for the interface -# iaik.ixsil.keyinfo.VerifierKeyManager, which is instantiated by IXSIL in the verification use case, if the -# signature algorithm does not know about the verification key, and if the XML signature bears a KeyInfo -# element which contains hints that can be used to deduce the verification key. -# Please specifiy the fully qualified java class name for the class to be instantiated. - -VerifierKeyManager.ImplementingClass = iaik.ixsil.keyinfo.KeyManagerImpl - - - -#---------------------------------------------------------------------------------------------------------- -# XML namespace prefix properties - -# This property specifies the namespace prefix used for XML elements from the XML-Signature namespace. -# -# PLEASE NOTE: The prefix must not be empty. - -namespacePrefix.XMLSignature = dsig: - - - -# This property specifies the namespace prefix used for XML elements from the XML Schema instance namespace. -# -# PLEASE NOTE: The prefix must not be empty. - -namespacePrefix.XMLSchemaInstance = xsi: - - -#---------------------------------------------------------------------------------------------------------- -# DOMUtils properties - - - -# This property specifies the implementation class IXSIL should use for the interface -# iaik.ixsil.util.DOMUtilsInterface, which contains a couple of DOM utility methods, which IXSIL relies -# on. If you would like to employ a parser different from Apache Xerces, you must implement the -# DOMUtilsInterface and specify your implementation class using this property. -# Please specifiy the fully qualified java class name for the class to be instantiated. - -DOMUtils.ImplementingClass = iaik.ixsil.util.DOMUtilsImpl - - - -# This property is used by the standard implementation class for the interface -# iaik.ixsil.util.DOMUtilsInterface, namely iaik.ixsil.util.DOMUtilsImpl, which ships with IXSIL. -# It specifies, wheter WARNINGS generated by the Apache Xerces parser should lead to a parser exception -# or not. - -DOMUtils.ErrorHandler.reportWarnings = true - - - -# This property is used by the standard implementation class for the interface -# iaik.ixsil.util.DOMUtilsInterface, namely iaik.ixsil.util.DOMUtilsImpl, which ships with IXSIL. -# It specifies, wheter ERRORS generated by the Apache Xerces parser should lead to a parser exception -# or not. - -DOMUtils.ErrorHandler.reportErrors = true - - - -# This property is used by the standard implementation class for the interface -# iaik.ixsil.util.DOMUtilsInterface, namely iaik.ixsil.util.DOMUtilsImpl, which ships with IXSIL. -# It specifies, wheter FATAL ERRORS generated by the Apache Xerces parser should lead to a parser -# exception or not. - -DOMUtils.ErrorHandler.reportFatalErrors = true - - - -# This property is used by the standard implementation class for the interface -# iaik.ixsil.util.DOMUtilsInterface, namely iaik.ixsil.util.DOMUtilsImpl, which ships with IXSIL. -# It specifies an URI for the location of the XML schema for an XML signature, which is used as the -# reference grammar in method iaik.ixsil.util.DOMUtilsImpl.schemaValidateSignatureElement. -# The URI can be absolute or relative. If the URI is relative, it will be absolutized using the URI for -# this init property file as the base. - -DOMUtils.SignatureSchema = ../schemas/Signature.xsd - - - -#---------------------------------------------------------------------------------------------------------- -# XPathUtils properties - -# This property specifies the implementation class IXSIL should use for the interface -# iaik.ixsil.util.XPathUtilsInterface, which contains a couple of XPath utility methods, which IXSIL relies -# on. If you would like to employ a XPath engine different from Apache Xalan, you must implement the -# XPathUtilsInterface and specify your implementation class using this property. -# Please specifiy the fully qualified java class name for the class to be instantiated. - -XPathUtils.ImplementingClass = iaik.ixsil.util.XPathUtilsImpl - - - -#---------------------------------------------------------------------------------------------------------- -# CanonicalXMLSerializer properties - - - -# This property specifies the implementation class IXSIL should use for the interface -# iaik.ixsil.util.CanonicalXMLSerialierInterface. IXSIL relies on this interface to serialize XML according -# to "Canonical XML" (see http://www.w3.org/TR/2001/REC-xml-c14n-20010315). If you would like to employ an -# implemenation different from the standard implementation shipped with IXSIL, you must implement the -# CanonicalXMLSerialierInterface and specify your implementation class using this property. -# Please specifiy the fully qualified java class name for the class to be instantiated. - -CanonicalXMLSerializer.CanonicalXMLImplementingClass = iaik.ixsil.util.CanonicalXMLSerializerImpl - - - -# This property specifies the implementation class IXSIL should use for the interface -# iaik.ixsil.util.ExclusiveCanonicalXMLSerialierInterface. IXSIL relies on this interface to serialize XML -# according to "Exclusive XML Canonicalization" (see http://www.w3.org/TR/2001/WD-xml-exc-c14n-20011120). -# If you would like to employ an implemenation different from the standard implementation shipped with -# IXSIL, you must implement the ExclusiveCanonicalXMLSerialierInterface and specify your implementation -# class using this property. -# Please specifiy the fully qualified java class name for the class to be instantiated. - -CanonicalXMLSerializer.ExclusiveCanonicalXMLImplementingClass = iaik.ixsil.util.CanonicalXMLSerializerImpl diff --git a/id.server/data/abnahme-test/ixsil/init/properties/keyManager.properties b/id.server/data/abnahme-test/ixsil/init/properties/keyManager.properties deleted file mode 100644 index 24ece437a..000000000 --- a/id.server/data/abnahme-test/ixsil/init/properties/keyManager.properties +++ /dev/null @@ -1,74 +0,0 @@ -# IXSIL algorithm properties -# -# This file contains the properties which IXSIL uses in context of key management. - - - -#---------------------------------------------------------------------------------------------------------- -# -# The following properties are associations between the fully qualified XMLname of a "KeyInfo" subelement, -# as used in an XML signature to specify hints how the verifier can obtain the verification key, and that -# implementation class of the interface iaik.ixsil.keyinfo.KeyProviderInterface, which will manage -# subelements of that type. -# -# These properties are only of interest, if you are using the standard key manager shipped with IXISL -# (which is class iaik.ixsil.keyInfo.KeyManagerImpl). -# -# For instance, if you would like to specify the key provider implementation for "KeyValue" subelements, -# the property name is the fully qualified XML name for the "KeyValue" element, namely -# "http://www.w3.org/2000/09/xmldsig#:KeyValue". The value of the property is the fully qualified class -# name of the key provider implementation class, for instance the standard implementation which ships with -# IXSIL: "iaik.ixsil.keyinfo.KeyProviderImplKeyValue". -# -# PLEASE NOTE (I): A fully qualified name for an XML element consists of an URI indicating the namespace the -# element belongs to (e.g. "http://www.w3.org/2000/09/xmldsig#") and the local name of the -# element (e.g. "KeyValue"). Both components are seperated by a colon. -# -# PLEASE NOTE (II): The colon character (":") must be escaped by a leading backslash, if it appears in the -# property name. - -http\://www.w3.org/2000/09/xmldsig#\:KeyValue = iaik.ixsil.keyinfo.KeyProviderImplKeyValue -http\://www.w3.org/2000/09/xmldsig#\:X509Data = iaik.ixsil.keyinfo.x509.KeyProviderImplX509Data -http\://www.w3.org/2000/09/xmldsig#\:RetrievalMethod = iaik.ixsil.keyinfo.retrieval.KeyProviderImplRetrievalMethod - - - -#---------------------------------------------------------------------------------------------------------- -# -# The following properties specify the order in which the different types of "KeyInfo" subelements are used -# by the key manager to deduce the verification key. -# -# These properties are only of interest, if you are using the standard key manager shipped with IXISL -# (which is class iaik.ixsil.keyInfo.KeyManagerImpl). -# -# The properties are associations between a two digit number and the fully qualified XML name of a "KeyInfo" -# subelement. The lower the number, the more important is the associated "KeyInfo" sublement. Consider an -# example configuration: -# -# Subelement.01 = http://www.w3.org/2000/09/xmldsig#:KeyValue -# Subelement.02 = http://www.w3.org/2000/09/xmldsig#:X509Data -# -# In this configuration, the key manager first tries to use "KeyValue" subelements to deduce the -# verification key. Only if this does not succeed, the key manager uses "X509Data" subelements as a second -# chance. Of course you can specify more than only two different subelement types. -# -# PLEASE NOTE: A fully qualified name for an XML element consists of an URI indicating the namespace the -# element belongs to (e.g. "http://www.w3.org/2000/09/xmldsig#") and the local name of the -# element (e.g. "KeyValue"). Both components are seperated by a colon. - -Subelement.01 = http://www.w3.org/2000/09/xmldsig#:KeyValue -Subelement.02 = http://www.w3.org/2000/09/xmldsig#:X509Data -Subelement.03 = http://www.w3.org/2000/09/xmldsig#:RetrievalMethod - - - -#---------------------------------------------------------------------------------------------------------- -# -# The following property is used by standard implementation of the "X509Data" key provider, which ships -# with IXSIL, namely "KeyProviderImplX509Data". It specifies the implementation class for the interface -# iaik.ixsil.keyinfo.x509.X509TrustManagerInterface, which is to be instantiated as the backbone trust -# manager for this key provider. -# Please specifiy the fully qualified java class name for the class to be instantiated. - -KeyProviderImplX509Data.X509TrustManagerDefaultImplementingClass = iaik.ixsil.keyinfo.x509.X509TrustManagerDummyImpl - diff --git a/id.server/data/abnahme-test/ixsil/init/schemas/Signature.xsd b/id.server/data/abnahme-test/ixsil/init/schemas/Signature.xsd deleted file mode 100644 index ed7719dfb..000000000 --- a/id.server/data/abnahme-test/ixsil/init/schemas/Signature.xsd +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - ]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/id.server/data/abnahme-test/ixsil/init/schemas/XMLSchema.dtd b/id.server/data/abnahme-test/ixsil/init/schemas/XMLSchema.dtd deleted file mode 100644 index c55a9a819..000000000 --- a/id.server/data/abnahme-test/ixsil/init/schemas/XMLSchema.dtd +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -%xs-datatypes; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/id.server/data/abnahme-test/ixsil/init/schemas/datatypes.dtd b/id.server/data/abnahme-test/ixsil/init/schemas/datatypes.dtd deleted file mode 100644 index 59bf31d52..000000000 --- a/id.server/data/abnahme-test/ixsil/init/schemas/datatypes.dtd +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit v1.2.3