summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVance Shipley <vances@motivity.ca>2011-03-09 03:06:05 +0100
committerVance Shipley <vances@motivity.ca>2011-03-09 03:06:05 +0100
commit794624ca474a50c042554b5dc668558b1adb5288 (patch)
tree568b437213df9e438d6d64ae41788533f7a66e7f
parent2c7a40e5bae5e1966936212f77fb354f122a4e60 (diff)
Initial import of MAP project from Motivity.
-rw-r--r--MAP/Makefile17
-rw-r--r--MAP/asn_src/GSM/MAP-ApplicationContexts.asn168
-rw-r--r--MAP/asn_src/GSM/MAP-BS-Code.asn165
-rw-r--r--MAP/asn_src/GSM/MAP-CH-DataTypes.asn393
-rw-r--r--MAP/asn_src/GSM/MAP-CallHandlingOperations.asn123
-rw-r--r--MAP/asn_src/GSM/MAP-CommonDataTypes.asn449
-rw-r--r--MAP/asn_src/GSM/MAP-DialogueInformation.asn114
-rw-r--r--MAP/asn_src/GSM/MAP-ER-DataTypes.asn332
-rw-r--r--MAP/asn_src/GSM/MAP-Errors.asn358
-rw-r--r--MAP/asn_src/GSM/MAP-ExtensionDataTypes.asn39
-rw-r--r--MAP/asn_src/GSM/MAP-GR-DataTypes.asn101
-rw-r--r--MAP/asn_src/GSM/MAP-Group-Call-Operations.asn45
-rw-r--r--MAP/asn_src/GSM/MAP-LCS-DataTypes.asn370
-rw-r--r--MAP/asn_src/GSM/MAP-LocationServiceOperations.asn56
-rw-r--r--MAP/asn_src/GSM/MAP-MS-DataTypes.asn2123
-rw-r--r--MAP/asn_src/GSM/MAP-MobileServiceOperations.asn287
-rw-r--r--MAP/asn_src/GSM/MAP-OM-DataTypes.asn49
-rw-r--r--MAP/asn_src/GSM/MAP-OperationAndMaintenanceOperations.asn51
-rw-r--r--MAP/asn_src/GSM/MAP-OperationPackages.asn371
-rw-r--r--MAP/asn_src/GSM/MAP-Protocol.asn106
-rw-r--r--MAP/asn_src/GSM/MAP-SM-DataTypes.asn189
-rw-r--r--MAP/asn_src/GSM/MAP-SS-Code.asn260
-rw-r--r--MAP/asn_src/GSM/MAP-SS-DataTypes.asn270
-rw-r--r--MAP/asn_src/GSM/MAP-ST-DataTypes.asn84
-rw-r--r--MAP/asn_src/GSM/MAP-SecureTransportOperations.asn52
-rw-r--r--MAP/asn_src/GSM/MAP-ShortMessageServiceOperations.asn88
-rw-r--r--MAP/asn_src/GSM/MAP-SupplementaryServiceOperations.asn154
-rw-r--r--MAP/asn_src/GSM/MAP-TS-Code.asn108
-rw-r--r--MAP/asn_src/GSM/Makefile119
-rw-r--r--MAP/asn_src/GSM/MobileDomainDefinitions.asn35
-rw-r--r--MAP/asn_src/GSM/README7
-rw-r--r--MAP/asn_src/Makefile5
-rw-r--r--MAP/doc/Makefile13
-rw-r--r--MAP/doc/html/Makefile31
-rw-r--r--MAP/doc/html/index.html106
-rw-r--r--MAP/doc/html/map_messaging.pngbin0 -> 89579 bytes
-rw-r--r--MAP/doc/html/map_supervision.pngbin0 -> 127410 bytes
-rw-r--r--MAP/doc/map_messaging.graffle4860
-rw-r--r--MAP/doc/map_supervision.graffle3602
-rw-r--r--MAP/ebin/map.app9
-rw-r--r--MAP/src/Makefile36
-rw-r--r--MAP/src/gsm/Makefile35
-rw-r--r--MAP/src/gsm/map_dsm_fsm.erl684
-rw-r--r--MAP/src/gsm/map_load_fsm.erl92
-rw-r--r--MAP/src/map.erl116
-rw-r--r--MAP/src/map_app.erl80
-rw-r--r--MAP/src/map_pm_sup.erl44
-rw-r--r--MAP/src/map_sup.erl45
48 files changed, 16841 insertions, 0 deletions
diff --git a/MAP/Makefile b/MAP/Makefile
new file mode 100644
index 0000000..1c09b39
--- /dev/null
+++ b/MAP/Makefile
@@ -0,0 +1,17 @@
+
+.PHONY: all
+all:
+ cd asn_src && $(MAKE)
+ cd src && $(MAKE)
+ cd doc && $(MAKE)
+
+.PHONY: doc
+doc:
+ cd doc && $(MAKE) $@
+
+.PHONY: clean
+clean:
+ cd asn_src && $(MAKE) $@
+ cd src && $(MAKE) $@
+ cd doc && $(MAKE) $@
+
diff --git a/MAP/asn_src/GSM/MAP-ApplicationContexts.asn b/MAP/asn_src/GSM/MAP-ApplicationContexts.asn
new file mode 100644
index 0000000..ad6b096
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-ApplicationContexts.asn
@@ -0,0 +1,168 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-ApplicationContexts {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ApplicationContexts(2)
+ version8(8)} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS everything
+IMPORTS
+ gsm-NetworkId, ac-Id
+ FROM MobileDomainDefinitions {itu-t(0) identified-organization(4)
+ etsi(0) mobileDomain(0) mobileDomainDefinitions(0) version1(1)};
+
+-- application-context-names
+map-ac OBJECT IDENTIFIER ::= {gsm-NetworkId ac-Id}
+
+networkLocUpContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac networkLocUp(1) version3(3)}
+
+locationCancellationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationCancel(2) version3(3)}
+
+roamingNumberEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac roamingNbEnquiry(3) version3(3)}
+
+authenticationFailureReportContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac authenticationFailureReport(39) version3(3)}
+
+locationInfoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locInfoRetrieval(5) version3(3)}
+
+resetContext-v2 OBJECT IDENTIFIER ::= {map-ac reset(10) version2(2)}
+
+handoverControlContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac handoverControl(11) version3(3)}
+
+equipmentMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac equipmentMngt(13) version3(3)}
+
+infoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac infoRetrieval(14) version3(3)}
+
+interVlrInfoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac interVlrInfoRetrieval(15) version3(3)}
+
+subscriberDataMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberDataMngt(16) version3(3)}
+
+tracingContext-v3 OBJECT IDENTIFIER ::= {map-ac tracing(17) version3(3)}
+
+networkFunctionalSsContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac networkFunctionalSs(18) version2(2)}
+
+networkUnstructuredSsContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac networkUnstructuredSs(19) version2(2)}
+
+shortMsgGatewayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgGateway(20) version3(3)}
+
+shortMsgMO-RelayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgMO-Relay(21) version3(3)}
+
+shortMsgAlertContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgAlert(23) version2(2)}
+
+mwdMngtContext-v3 OBJECT IDENTIFIER ::= {map-ac mwdMngt(24) version3(3)}
+
+shortMsgMT-RelayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgMT-Relay(25) version3(3)}
+
+imsiRetrievalContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac imsiRetrieval(26) version2(2)}
+
+msPurgingContext-v3 OBJECT IDENTIFIER ::= {map-ac msPurging(27) version3(3)}
+
+subscriberInfoEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberInfoEnquiry(28) version3(3)}
+
+anyTimeInfoEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac anyTimeInfoEnquiry(29) version3(3)}
+
+callControlTransferContext-v4 OBJECT IDENTIFIER ::=
+ {map-ac callControlTransfer(6) version4(4)}
+
+ss-InvocationNotificationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac ss-InvocationNotification(36) version3(3)}
+
+sIWFSAllocationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac sIWFSAllocation(12) version3(3)}
+
+groupCallControlContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac groupCallControl(31) version3(3)}
+
+gprsLocationUpdateContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac gprsLocationUpdate(32) version3(3)}
+
+gprsLocationInfoRetrievalContext-v4 OBJECT IDENTIFIER ::=
+ {map-ac gprsLocationInfoRetrieval(33) version4(4)}
+
+failureReportContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac failureReport(34) version3(3)}
+
+gprsNotifyContext-v3 OBJECT IDENTIFIER ::= {map-ac gprsNotify(35) version3(3)}
+
+reportingContext-v3 OBJECT IDENTIFIER ::= {map-ac reporting(7) version3(3)}
+
+callCompletionContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac callCompletion(8) version3(3)}
+
+istAlertingContext-v3 OBJECT IDENTIFIER ::= {map-ac istAlerting(4) version3(3)}
+
+serviceTerminationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac immediateTermination(9) version3(3)}
+
+locationSvcGatewayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationSvcGateway(37) version3(3)}
+
+locationSvcEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationSvcEnquiry(38) version3(3)}
+
+mm-EventReportingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac mm-EventReporting(42) version3(3)}
+
+anyTimeInfoHandlingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac anyTimeInfoHandling(43) version3(3)}
+
+subscriberDataModificationNotificationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberDataModificationNotification(22) version3(3)}
+
+secureTransportHandlingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac secureTransportHandling(40) version3(3)}
+
+-- The following Object Identifiers are reserved for application-contexts
+-- existing in previous versions of the protocol
+-- AC Name & Version Object Identifier
+--
+-- networkLocUpContext-v1 map-ac networkLocUp (1) version1 (1)
+-- networkLocUpContext-v2 map-ac networkLocUp (1) version2 (2)
+-- locationCancellationContext-v1 map-ac locationCancellation (2) version1 (1)
+-- locationCancellationContext-v2 map-ac locationCancellation (2) version2 (2)
+-- roamingNumberEnquiryContext-v1 map-ac roamingNumberEnquiry (3) version1 (1)
+-- roamingNumberEnquiryContext-v2 map-ac roamingNumberEnquiry (3) version2 (2)
+-- locationInfoRetrievalContext-v1 map-ac locationInfoRetrieval (5) version1 (1)
+-- locationInfoRetrievalContext-v2 map-ac locationInfoRetrieval (5) version2 (2)
+-- resetContext-v1 map-ac reset (10) version1 (1)
+-- handoverControlContext-v1 map-ac handoverControl (11) version1 (1)
+-- handoverControlContext-v2 map-ac handoverControl (11) version2 (2)
+-- equipmentMngtContext-v1 map-ac equipmentMngt (13) version1 (1)
+-- equipmentMngtContext-v2 map-ac equipmentMngt (13) version2 (2)
+-- infoRetrievalContext-v1 map-ac infoRetrieval (14) version1 (1)
+-- infoRetrievalContext-v2 map-ac infoRetrieval (14) version2 (2)
+-- interVlrInfoRetrievalContext-v2 map-ac interVlrInfoRetrieval (15) version2 (2)
+-- subscriberDataMngtContext-v1 map-ac subscriberDataMngt (16) version1 (1)
+-- subscriberDataMngtContext-v2 map-ac subscriberDataMngt (16) version2 (2)
+-- tracingContext-v1 map-ac tracing (17) version1 (1)
+-- tracingContext-v2 map-ac tracing (17) version2 (2)
+-- networkFunctionalSsContext-v1 map-ac networkFunctionalSs (18) version1 (1)
+-- shortMsgGatewayContext-v1 map-ac shortMsgGateway (20) version1 (1)
+-- shortMsgGatewayContext-v2 map-ac shortMsgGateway (20) version2 (2)
+-- shortMsgRelayContext-v1 map-ac shortMsgRelay (21) version1 (1)
+-- shortMsgAlertContext-v1 map-ac shortMsgAlert (23) version1 (1)
+-- mwdMngtContext-v1 map-ac mwdMngt (24) version1 (1)
+-- mwdMngtContext-v2 map-ac mwdMngt (24) version2 (2)
+-- shortMsgMT-RelayContext-v2 map-ac shortMsgMT-Relay (25) version2 (2)
+-- msPurgingContext-v2 map-ac msPurging (27) version2 (2)
+-- callControlTransferContext-v3 map-ac callControlTransferContext (6) version3 (3)
+-- gprsLocationInfoRetrievalContext-v3 map-ac gprsLocationInfoRetrievalContext (33) version3 (3)
+END
+
diff --git a/MAP/asn_src/GSM/MAP-BS-Code.asn b/MAP/asn_src/GSM/MAP-BS-Code.asn
new file mode 100644
index 0000000..d370773
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-BS-Code.asn
@@ -0,0 +1,165 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-BS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-BS-Code(20) version8(8)} DEFINITIONS ::=
+BEGIN
+
+BearerServiceCode ::= OCTET STRING(SIZE (1))
+
+-- This type is used to represent the code identifying a single
+-- bearer service, a group of bearer services, or all bearer
+-- services. The services are defined in TS 3GPP TS 22.002 [3].
+-- The internal structure is defined as follows:
+--
+-- plmn-specific bearer services:
+-- bits 87654321: defined by the HPLMN operator
+-- rest of bearer services:
+-- bit 8: 0 (unused)
+-- bits 7654321: group (bits 7654), and rate, if applicable
+-- (bits 321)
+Ext-BearerServiceCode ::= OCTET STRING(SIZE (1..5))
+
+-- This type is used to represent the code identifying a single
+-- bearer service, a group of bearer services, or all bearer
+-- services. The services are defined in TS 3GPP TS 22.002 [3].
+-- The internal structure is defined as follows:
+--
+-- OCTET 1:
+-- plmn-specific bearer services:
+-- bits 87654321: defined by the HPLMN operator
+--
+-- rest of bearer services:
+-- bit 8: 0 (unused)
+-- bits 7654321: group (bits 7654), and rate, if applicable
+-- (bits 321)
+-- OCTETS 2-5: reserved for future use. If received the
+-- Ext-TeleserviceCode shall be
+-- treated according to the exception handling defined for the
+-- operation that uses this type.
+-- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+allBearerServices BearerServiceCode ::=
+ '00000000'B
+
+allDataCDA-Services BearerServiceCode ::= '00010000'B
+
+dataCDA-300bps BearerServiceCode ::= '00010001'B
+
+dataCDA-1200bps BearerServiceCode ::= '00010010'B
+
+dataCDA-1200-75bps BearerServiceCode ::= '00010011'B
+
+dataCDA-2400bps BearerServiceCode ::= '00010100'B
+
+dataCDA-4800bps BearerServiceCode ::= '00010101'B
+
+dataCDA-9600bps BearerServiceCode ::= '00010110'B
+
+general-dataCDA BearerServiceCode ::= '00010111'B
+
+allDataCDS-Services BearerServiceCode ::= '00011000'B
+
+dataCDS-1200bps BearerServiceCode ::= '00011010'B
+
+dataCDS-2400bps BearerServiceCode ::= '00011100'B
+
+dataCDS-4800bps BearerServiceCode ::= '00011101'B
+
+dataCDS-9600bps BearerServiceCode ::= '00011110'B
+
+general-dataCDS BearerServiceCode ::= '00011111'B
+
+allPadAccessCA-Services BearerServiceCode ::= '00100000'B
+
+padAccessCA-300bps BearerServiceCode ::= '00100001'B
+
+padAccessCA-1200bps BearerServiceCode ::= '00100010'B
+
+padAccessCA-1200-75bps BearerServiceCode ::= '00100011'B
+
+padAccessCA-2400bps BearerServiceCode ::= '00100100'B
+
+padAccessCA-4800bps BearerServiceCode ::= '00100101'B
+
+padAccessCA-9600bps BearerServiceCode ::= '00100110'B
+
+general-padAccessCA BearerServiceCode ::= '00100111'B
+
+allDataPDS-Services BearerServiceCode ::= '00101000'B
+
+dataPDS-2400bps BearerServiceCode ::= '00101100'B
+
+dataPDS-4800bps BearerServiceCode ::= '00101101'B
+
+dataPDS-9600bps BearerServiceCode ::= '00101110'B
+
+general-dataPDS BearerServiceCode ::= '00101111'B
+
+allAlternateSpeech-DataCDA BearerServiceCode ::= '00110000'B
+
+allAlternateSpeech-DataCDS BearerServiceCode ::= '00111000'B
+
+allSpeechFollowedByDataCDA BearerServiceCode ::= '01000000'B
+
+allSpeechFollowedByDataCDS BearerServiceCode ::= '01001000'B
+
+-- The following non-hierarchical Compound Bearer Service
+-- Groups are defined in TS 3GPP TS 22.030:
+allDataCircuitAsynchronous BearerServiceCode ::=
+ '01010000'B
+
+-- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and
+-- "allSpeechFollowedByDataCDA"
+allAsynchronousServices BearerServiceCode ::=
+ '01100000'B
+
+-- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA",
+-- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services"
+allDataCircuitSynchronous BearerServiceCode ::=
+ '01011000'B
+
+-- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and
+-- "allSpeechFollowedByDataCDS"
+allSynchronousServices BearerServiceCode ::=
+ '01101000'B
+
+-- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS",
+-- "allSpeechFollowedByDataCDS" and "allDataPDS-Services"
+--
+-- Compound Bearer Service Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+allPLMN-specificBS BearerServiceCode ::=
+ '11010000'B
+
+plmn-specificBS-1 BearerServiceCode ::= '11010001'B
+
+plmn-specificBS-2 BearerServiceCode ::= '11010010'B
+
+plmn-specificBS-3 BearerServiceCode ::= '11010011'B
+
+plmn-specificBS-4 BearerServiceCode ::= '11010100'B
+
+plmn-specificBS-5 BearerServiceCode ::= '11010101'B
+
+plmn-specificBS-6 BearerServiceCode ::= '11010110'B
+
+plmn-specificBS-7 BearerServiceCode ::= '11010111'B
+
+plmn-specificBS-8 BearerServiceCode ::= '11011000'B
+
+plmn-specificBS-9 BearerServiceCode ::= '11011001'B
+
+plmn-specificBS-A BearerServiceCode ::= '11011010'B
+
+plmn-specificBS-B BearerServiceCode ::= '11011011'B
+
+plmn-specificBS-C BearerServiceCode ::= '11011100'B
+
+plmn-specificBS-D BearerServiceCode ::= '11011101'B
+
+plmn-specificBS-E BearerServiceCode ::= '11011110'B
+
+plmn-specificBS-F BearerServiceCode ::= '11011111'B
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-CH-DataTypes.asn b/MAP/asn_src/GSM/MAP-CH-DataTypes.asn
new file mode 100644
index 0000000..0e5fef0
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-CH-DataTypes.asn
@@ -0,0 +1,393 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-CH-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-CH-DataTypes(13) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ SendRoutingInfoArg, SendRoutingInfoRes, ProvideRoamingNumberArg,
+ ProvideRoamingNumberRes, ResumeCallHandlingArg, ResumeCallHandlingRes,
+ NumberOfForwarding, SuppressionOfAnnouncement, CallReferenceNumber,
+ ProvideSIWFSNumberArg, ProvideSIWFSNumberRes, SIWFSSignallingModifyArg,
+ SIWFSSignallingModifyRes, SetReportingStateArg, SetReportingStateRes,
+ StatusReportArg, StatusReportRes, RemoteUserFreeArg, RemoteUserFreeRes,
+ IST-AlertArg, IST-AlertRes, IST-CommandArg, IST-CommandRes;
+
+IMPORTS
+ SubscriberInfo, SupportedCamelPhases, OfferedCamel4CSIs, CUG-Interlock,
+ O-CSI, D-CSI, O-BcsmCamelTDPCriteriaList, T-BCSM-CAMEL-TDP-CriteriaList,
+ IST-SupportIndicator, IST-AlertTimerValue, T-CSI
+ FROM MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-MS-DataTypes(11)
+ version8(8)}
+ ForwardingOptions, SS-List, CCBS-Feature
+ FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14)
+ version8(8)}
+ ISDN-AddressString, ISDN-SubaddressString, FTN-AddressString,
+ ExternalSignalInfo, Ext-ExternalSignalInfo, IMSI, LMSI,
+ Ext-BasicServiceCode, AlertingPattern, NAEA-PreferredCI
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)};
+
+CUG-CheckInfo ::= SEQUENCE {
+ cug-Interlock CUG-Interlock,
+ cug-OutgoingAccess NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NumberOfForwarding ::= INTEGER(1..5)
+
+SendRoutingInfoArg ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ cug-CheckInfo [1] CUG-CheckInfo OPTIONAL,
+ numberOfForwarding [2] NumberOfForwarding OPTIONAL,
+ interrogationType [3] InterrogationType,
+ or-Interrogation [4] NULL OPTIONAL,
+ or-Capability [5] OR-Phase OPTIONAL,
+ gmsc-OrGsmSCF-Address [6] ISDN-AddressString,
+ callReferenceNumber [7] CallReferenceNumber OPTIONAL,
+ forwardingReason [8] ForwardingReason OPTIONAL,
+ basicServiceGroup [9] Ext-BasicServiceCode OPTIONAL,
+ networkSignalInfo [10] ExternalSignalInfo OPTIONAL,
+ camelInfo [11] CamelInfo OPTIONAL,
+ suppressionOfAnnouncement [12] SuppressionOfAnnouncement OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...,
+ alertingPattern [14] AlertingPattern OPTIONAL,
+ ccbs-Call [15] NULL OPTIONAL,
+ supportedCCBS-Phase [16] SupportedCCBS-Phase OPTIONAL,
+ additionalSignalInfo [17] Ext-ExternalSignalInfo OPTIONAL,
+ istSupportIndicator [18] IST-SupportIndicator OPTIONAL,
+ pre-pagingSupported [19] NULL OPTIONAL,
+ callDiversionTreatmentIndicator
+ [20] CallDiversionTreatmentIndicator OPTIONAL,
+ longFTN-Supported [21] NULL OPTIONAL,
+ suppress-VT-CSI [22] NULL OPTIONAL,
+ suppressIncomingCallBarring [23] NULL OPTIONAL,
+ gsmSCF-InitiatedCall [24] NULL OPTIONAL}
+
+SuppressionOfAnnouncement ::= NULL
+
+InterrogationType ::= ENUMERATED {basicCall(0), forwarding(1)}
+
+OR-Phase ::= INTEGER(1..127)
+
+CallReferenceNumber ::= OCTET STRING(SIZE (1..8))
+
+ForwardingReason ::= ENUMERATED {notReachable(0), busy(1), noReply(2)}
+
+SupportedCCBS-Phase ::= INTEGER(1..127)
+
+-- exception handling:
+-- Only value 1 is used.
+-- Values in the ranges 2-127 are reserved for future use.
+-- If received values 2-127 shall be mapped on to value 1.
+CallDiversionTreatmentIndicator ::= OCTET STRING(SIZE (1))
+
+-- callDiversionAllowed (xxxx xx01)
+-- callDiversionNotAllowed (xxxx xx10)
+-- network default is call diversion allowed
+SendRoutingInfoRes ::= [3] SEQUENCE {
+ imsi [9] IMSI OPTIONAL,
+ -- IMSI must be present if SendRoutingInfoRes is not segmented.
+ -- If the TC-Result-NL segmentation option is taken the IMSI must be
+ -- present in one segmented transmission of SendRoutingInfoRes.
+ extendedRoutingInfo ExtendedRoutingInfo OPTIONAL,
+ cug-CheckInfo [3] CUG-CheckInfo OPTIONAL,
+ cugSubscriptionFlag [6] NULL OPTIONAL,
+ subscriberInfo [7] SubscriberInfo OPTIONAL,
+ ss-List [1] SS-List OPTIONAL,
+ basicService [5] Ext-BasicServiceCode OPTIONAL,
+ forwardingInterrogationRequired [4] NULL OPTIONAL,
+ vmsc-Address [2] ISDN-AddressString OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...,
+ naea-PreferredCI [10] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ ccbs-Indicators [11] CCBS-Indicators OPTIONAL,
+ msisdn [12] ISDN-AddressString OPTIONAL,
+ numberPortabilityStatus [13] NumberPortabilityStatus OPTIONAL,
+ istAlertTimer [14] IST-AlertTimerValue OPTIONAL,
+ supportedCamelPhasesInVMSC [15] SupportedCamelPhases OPTIONAL,
+ offeredCamel4CSIsInVMSC [16] OfferedCamel4CSIs OPTIONAL}
+
+NumberPortabilityStatus ::= ENUMERATED {
+ notKnownToBePorted(0), ownNumberPortedOut(1),
+ foreignNumberPortedToForeignNetwork(2), ...
+ }
+
+-- exception handling:
+-- reception of other values than the ones listed the receiver shall ignore the
+-- whole NumberPortabilityStatus
+CCBS-Indicators ::= SEQUENCE {
+ ccbs-Possible [0] NULL OPTIONAL,
+ keepCCBS-CallIndicator [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RoutingInfo ::= CHOICE {
+ roamingNumber ISDN-AddressString,
+ forwardingData ForwardingData}
+
+ForwardingData ::= SEQUENCE {
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this datatype is sent from an HLR which supports CAMEL Phase 2
+ -- to a GMSC which supports CAMEL Phase 2 the GMSC shall not check the
+ -- format of the number
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [8] FTN-AddressString OPTIONAL}
+
+ProvideRoamingNumberArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msc-Number [1] ISDN-AddressString,
+ msisdn [2] ISDN-AddressString OPTIONAL,
+ lmsi [4] LMSI OPTIONAL,
+ gsm-BearerCapability [5] ExternalSignalInfo OPTIONAL,
+ networkSignalInfo [6] ExternalSignalInfo OPTIONAL,
+ suppressionOfAnnouncement
+ [7] SuppressionOfAnnouncement OPTIONAL,
+ gmsc-Address [8] ISDN-AddressString OPTIONAL,
+ callReferenceNumber [9] CallReferenceNumber OPTIONAL,
+ or-Interrogation [10] NULL OPTIONAL,
+ extensionContainer [11] ExtensionContainer OPTIONAL,
+ ...,
+ alertingPattern [12] AlertingPattern OPTIONAL,
+ ccbs-Call [13] NULL OPTIONAL,
+ supportedCamelPhasesInInterrogatingNode
+ [15] SupportedCamelPhases OPTIONAL,
+ additionalSignalInfo
+ [14] Ext-ExternalSignalInfo OPTIONAL,
+ orNotSupportedInGMSC [16] NULL OPTIONAL,
+ pre-pagingSupported [17] NULL OPTIONAL,
+ longFTN-Supported [18] NULL OPTIONAL,
+ suppress-VT-CSI [19] NULL OPTIONAL,
+ offeredCamel4CSIsInInterrogatingNode [20] OfferedCamel4CSIs OPTIONAL}
+
+ProvideRoamingNumberRes ::= SEQUENCE {
+ roamingNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ResumeCallHandlingArg ::= SEQUENCE {
+ callReferenceNumber [0] CallReferenceNumber OPTIONAL,
+ basicServiceGroup [1] Ext-BasicServiceCode OPTIONAL,
+ forwardingData [2] ForwardingData OPTIONAL,
+ imsi [3] IMSI OPTIONAL,
+ cug-CheckInfo [4] CUG-CheckInfo OPTIONAL,
+ o-CSI [5] O-CSI OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ccbs-Possible [8] NULL OPTIONAL,
+ msisdn [9] ISDN-AddressString OPTIONAL,
+ uu-Data [10] UU-Data OPTIONAL,
+ allInformationSent [11] NULL OPTIONAL,
+ ...,
+ d-csi [12] D-CSI OPTIONAL,
+ o-BcsmCamelTDPCriteriaList [13] O-BcsmCamelTDPCriteriaList OPTIONAL}
+
+UU-Data ::= SEQUENCE {
+ uuIndicator [0] UUIndicator OPTIONAL,
+ uui [1] UUI OPTIONAL,
+ uusCFInteraction [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+UUIndicator ::= OCTET STRING(SIZE (1))
+
+-- Octets are coded according to ETS 300 356
+UUI ::= OCTET STRING(SIZE (1..131))
+
+-- Octets are coded according to ETS 300 356
+ResumeCallHandlingRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CamelInfo ::= SEQUENCE {
+ supportedCamelPhases SupportedCamelPhases,
+ suppress-T-CSI NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ offeredCamel4CSIs [0] OfferedCamel4CSIs OPTIONAL}
+
+ExtendedRoutingInfo ::= CHOICE {
+ routingInfo RoutingInfo,
+ camelRoutingInfo [8] CamelRoutingInfo}
+
+CamelRoutingInfo ::= SEQUENCE {
+ forwardingData ForwardingData OPTIONAL,
+ gmscCamelSubscriptionInfo [0] GmscCamelSubscriptionInfo,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+GmscCamelSubscriptionInfo ::= SEQUENCE {
+ t-CSI [0] T-CSI OPTIONAL,
+ o-CSI [1] O-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ o-BcsmCamelTDP-CriteriaList [3] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-csi [5] D-CSI OPTIONAL}
+
+ProvideSIWFSNumberArg ::= SEQUENCE {
+ gsm-BearerCapability [0] ExternalSignalInfo,
+ isdn-BearerCapability [1] ExternalSignalInfo,
+ call-Direction [2] CallDirection,
+ b-Subscriber-Address [3] ISDN-AddressString,
+ chosenChannel [4] ExternalSignalInfo,
+ lowerLayerCompatibility [5] ExternalSignalInfo OPTIONAL,
+ highLayerCompatibility [6] ExternalSignalInfo OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+CallDirection ::= OCTET STRING(SIZE (1))
+
+-- OCTET 1
+-- bit 1 (direction of call)
+-- 0 Mobile Originated Call (MOC)
+-- 1 Mobile Terminated Call (MTC)
+ProvideSIWFSNumberRes ::= SEQUENCE {
+ sIWFSNumber [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+SIWFSSignallingModifyArg ::= SEQUENCE {
+ channelType [0] ExternalSignalInfo OPTIONAL,
+ chosenChannel [1] ExternalSignalInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+SIWFSSignallingModifyRes ::= SEQUENCE {
+ chosenChannel [0] ExternalSignalInfo OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+SetReportingStateArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ lmsi [1] LMSI OPTIONAL,
+ ccbs-Monitoring [2] ReportingState OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ReportingState ::= ENUMERATED {stopMonitoring(0), startMonitoring(1), ...
+ }
+
+-- exception handling:
+-- reception of values 2-10 shall be mapped to 'stopMonitoring'
+-- reception of values > 10 shall be mapped to 'startMonitoring'
+SetReportingStateRes ::= SEQUENCE {
+ ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+CCBS-SubscriberStatus ::= ENUMERATED {
+ ccbsNotIdle(0), ccbsIdle(1), ccbsNotReachable(2), ...
+ }
+
+-- exception handling:
+-- reception of values 3-10 shall be mapped to 'ccbsNotIdle'
+-- reception of values 11-20 shall be mapped to 'ccbsIdle'
+-- reception of values > 20 shall be mapped to 'ccbsNotReachable'
+StatusReportArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ eventReportData [1] EventReportData OPTIONAL,
+ callReportdata [2] CallReportData OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+EventReportData ::= SEQUENCE {
+ ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+CallReportData ::= SEQUENCE {
+ monitoringMode [0] MonitoringMode OPTIONAL,
+ callOutcome [1] CallOutcome OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+MonitoringMode ::= ENUMERATED {a-side(0), b-side(1), ...
+ }
+
+-- exception handling:
+-- reception of values 2-10 shall be mapped 'a-side'
+-- reception of values > 10 shall be mapped to 'b-side'
+CallOutcome ::= ENUMERATED {success(0), failure(1), busy(2), ...
+ }
+
+-- exception handling:
+-- reception of values 3-10 shall be mapped to 'success'
+-- reception of values 11-20 shall be mapped to 'failure'
+-- reception of values > 20 shall be mapped to 'busy'
+StatusReportRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RemoteUserFreeArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ callInfo [1] ExternalSignalInfo,
+ ccbs-Feature [2] CCBS-Feature,
+ translatedB-Number [3] ISDN-AddressString,
+ replaceB-Number [4] NULL OPTIONAL,
+ alertingPattern [5] AlertingPattern OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+RemoteUserFreeRes ::= SEQUENCE {
+ ruf-Outcome [0] RUF-Outcome,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+RUF-Outcome ::= ENUMERATED {
+ accepted(0), rejected(1),
+ noResponseFromFreeMS(2), -- T4 Expiry
+ noResponseFromBusyMS(3), -- T10 Expiry
+ udubFromFreeMS(4), udubFromBusyMS(5), ...
+ }
+
+-- exception handling:
+-- reception of values 6-20 shall be mapped to 'accepted'
+-- reception of values 21-30 shall be mapped to 'rejected'
+-- reception of values 31-40 shall be mapped to 'noResponseFromFreeMS'
+-- reception of values 41-50 shall be mapped to 'noResponseFromBusyMS'
+-- reception of values 51-60 shall be mapped to 'udubFromFreeMS'
+-- reception of values > 60 shall be mapped to 'udubFromBusyMS'
+IST-AlertArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-AlertRes ::= SEQUENCE {
+ istAlertTimer [0] IST-AlertTimerValue OPTIONAL,
+ istInformationWithdraw [1] NULL OPTIONAL,
+ callTerminationIndicator [2] CallTerminationIndicator OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-CommandArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-CommandRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CallTerminationIndicator ::= ENUMERATED {
+ terminateCallActivityReferred(0), terminateAllCallActivities(1), ...
+ }
+
+-- exception handling:
+-- reception of values 2-10 shall be mapped to ' terminateCallActivityReferred '
+-- reception of values > 10 shall be mapped to ' terminateAllCallActivities '
+-- In MSCs not supporting linkage of all call activities, any value received shall
+-- be interpreted as ' terminateCallActivityReferred '
+END
+
diff --git a/MAP/asn_src/GSM/MAP-CallHandlingOperations.asn b/MAP/asn_src/GSM/MAP-CallHandlingOperations.asn
new file mode 100644
index 0000000..6926a75
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-CallHandlingOperations.asn
@@ -0,0 +1,123 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-CallHandlingOperations {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CallHandlingOperations(7)
+ version8(8)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ sendRoutingInfo, provideRoamingNumber, resumeCallHandling,
+ provideSIWFSNumber, siwfs-SignallingModify, setReportingState,
+ statusReport, remoteUserFree, ist-Alert, ist-Command;
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported,
+ or-NotAllowed, unknownSubscriber, numberChanged,
+ bearerServiceNotProvisioned, teleserviceNotProvisioned,
+ noRoamingNumberAvailable, absentSubscriber, busySubscriber,
+ noSubscriberReply, callBarred, forwardingViolation, forwardingFailed,
+ cug-Reject, resourceLimitation, incompatibleTerminal,
+ unidentifiedSubscriber
+ FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Errors(10) version8(8)}
+ SendRoutingInfoArg, SendRoutingInfoRes, ProvideRoamingNumberArg,
+ ProvideRoamingNumberRes, ResumeCallHandlingArg, ResumeCallHandlingRes,
+ ProvideSIWFSNumberArg, ProvideSIWFSNumberRes, SIWFSSignallingModifyArg,
+ SIWFSSignallingModifyRes, SetReportingStateArg, SetReportingStateRes,
+ StatusReportArg, StatusReportRes, RemoteUserFreeArg, RemoteUserFreeRes,
+ IST-AlertArg, IST-AlertRes, IST-CommandArg, IST-CommandRes
+ FROM MAP-CH-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CH-DataTypes(13)
+ version8(8)};
+
+sendRoutingInfo OPERATION ::= { --Timer m
+ -- The timer is set to the upper limit of the range if the GMSC supports pre-paging.
+ ARGUMENT SendRoutingInfoArg
+ RESULT SendRoutingInfoRes
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported |
+ or-NotAllowed | unknownSubscriber | numberChanged |
+ bearerServiceNotProvisioned | teleserviceNotProvisioned |
+ absentSubscriber | busySubscriber | noSubscriberReply | callBarred |
+ cug-Reject | forwardingViolation}
+ CODE local:22}
+
+provideRoamingNumber OPERATION ::= { --Timer m
+ -- The timer is set to the upper limit of the range if the HLR supports pre-paging.
+ ARGUMENT ProvideRoamingNumberArg
+ RESULT ProvideRoamingNumberRes
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported |
+ or-NotAllowed | absentSubscriber | noRoamingNumberAvailable}
+ CODE local:4}
+
+resumeCallHandling OPERATION ::= { --Timer m
+ ARGUMENT ResumeCallHandlingArg
+ RESULT ResumeCallHandlingRes
+ -- optional
+ ERRORS
+ {forwardingFailed | or-NotAllowed | unexpectedDataValue | dataMissing}
+ CODE local:6}
+
+provideSIWFSNumber OPERATION ::= { --Timer m
+ ARGUMENT ProvideSIWFSNumberArg
+ RESULT ProvideSIWFSNumberRes
+ ERRORS
+ {resourceLimitation | dataMissing | unexpectedDataValue | systemFailure}
+ CODE local:31}
+
+siwfs-SignallingModify OPERATION ::= { --Timer m
+ ARGUMENT SIWFSSignallingModifyArg
+ RESULT SIWFSSignallingModifyRes
+ -- optional
+ ERRORS
+ {resourceLimitation | dataMissing | unexpectedDataValue | systemFailure}
+ CODE local:32}
+
+setReportingState OPERATION ::= { --Timer m
+ ARGUMENT SetReportingStateArg
+ RESULT SetReportingStateRes
+ -- optional
+ ERRORS
+ {systemFailure | unidentifiedSubscriber | unexpectedDataValue | dataMissing
+ | resourceLimitation | facilityNotSupported}
+ CODE local:73}
+
+statusReport OPERATION ::= { --Timer m
+ ARGUMENT StatusReportArg
+ RESULT StatusReportRes
+ -- optional
+ ERRORS
+ {unknownSubscriber | systemFailure | unexpectedDataValue | dataMissing}
+ CODE local:74}
+
+remoteUserFree OPERATION ::= { --Timer ml
+ ARGUMENT RemoteUserFreeArg
+ RESULT RemoteUserFreeRes
+ ERRORS
+ {unexpectedDataValue | dataMissing | incompatibleTerminal |
+ absentSubscriber | systemFailure | busySubscriber}
+ CODE local:75}
+
+ist-Alert OPERATION ::= { --Timer m
+ ARGUMENT IST-AlertArg
+ RESULT IST-AlertRes
+ -- optional
+ ERRORS
+ {unexpectedDataValue | resourceLimitation | unknownSubscriber |
+ systemFailure | facilityNotSupported}
+ CODE local:87}
+
+ist-Command OPERATION ::= { --Timer m
+ ARGUMENT IST-CommandArg
+ RESULT IST-CommandRes
+ -- optional
+ ERRORS
+ {unexpectedDataValue | resourceLimitation | unknownSubscriber |
+ systemFailure | facilityNotSupported}
+ CODE local:88}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-CommonDataTypes.asn b/MAP/asn_src/GSM/MAP-CommonDataTypes.asn
new file mode 100644
index 0000000..8a75251
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-CommonDataTypes.asn
@@ -0,0 +1,449 @@
+MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-CommonDataTypes(18) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ -- general data types and values
+ AddressString, ISDN-AddressString, maxISDN-AddressLength, FTN-AddressString,
+ ISDN-SubaddressString, ExternalSignalInfo, Ext-ExternalSignalInfo,
+ AccessNetworkSignalInfo, SignalInfo, maxSignalInfoLength,
+ AlertingPattern,
+ -- data types for numbering and identification
+ IMSI, TMSI, Identity, SubscriberId, IMEI, HLR-List, LMSI, GlobalCellId,
+ NetworkResource, NAEA-PreferredCI, NAEA-CIC, ASCI-CallReference,
+ SubscriberIdentity,
+ -- data types for CAMEL
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ -- data types for subscriber management
+ BasicServiceCode, Ext-BasicServiceCode, EMLPP-Info, EMLPP-Priority,
+ MC-SS-Info, MaxMC-Bearers, MC-Bearers,
+ Ext-SS-Status,
+ -- data types for geographic location
+ AgeOfLocationInformation, LCSClientExternalID, LCSClientInternalID,
+ LCSServiceTypeID;
+
+IMPORTS
+ TeleserviceCode, Ext-TeleserviceCode
+ FROM MAP-TS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-TS-Code(19) version8(8)}
+ BearerServiceCode, Ext-BearerServiceCode
+ FROM MAP-BS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-BS-Code(20) version8(8)}
+ SS-Code
+ FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-SS-Code(15) version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)};
+
+-- general data types
+TBCD-STRING ::= OCTET STRING
+
+-- This type (Telephony Binary Coded Decimal String) is used to
+-- represent several digits from 0 through 9, *, #, a, b, c, two
+-- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+-- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+-- as filler when there is an odd number of digits.
+-- bits 8765 of octet n encoding digit 2n
+-- bits 4321 of octet n encoding digit 2(n-1) +1
+AddressString ::= OCTET STRING(SIZE (1..maxAddressLength))
+
+-- This type is used to represent a number for addressing
+-- purposes. It is composed of
+-- a) one octet for nature of address, and numbering plan
+-- indicator.
+-- b) digits of an address encoded as TBCD-String.
+-- a) The first octet includes a one bit extension indicator, a
+-- 3 bits nature of address indicator and a 4 bits numbering
+-- plan indicator, encoded as follows:
+-- bit 8: 1 (no extension)
+-- bits 765: nature of address indicator
+-- 000 unknown
+-- 001 international number
+-- 010 national significant number
+-- 011 network specific number
+-- 100 subscriber number
+-- 101 reserved
+-- 110 abbreviated number
+-- 111 reserved for extension
+-- bits 4321: numbering plan indicator
+-- 0000 unknown
+-- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164)
+-- 0010 spare
+-- 0011 data numbering plan (ITU-T Rec X.121)
+-- 0100 telex numbering plan (ITU-T Rec F.69)
+-- 0101 spare
+-- 0110 land mobile numbering plan (ITU-T Rec E.212)
+-- 0111 spare
+-- 1000 national numbering plan
+-- 1001 private numbering plan
+-- 1111 reserved for extension
+-- all other values are reserved.
+-- b) The following octets representing digits of an address
+-- encoded as a TBCD-STRING.
+maxAddressLength INTEGER ::= 20
+
+-- vances@motivity.ca Mon Dec 20 2004
+-- There apears to be a bug in asn1 which we need to work around here
+--- ISDN-AddressString ::= AddressString(SIZE (1..maxISDN-AddressLength))
+ISDN-AddressString ::= AddressString(SIZE (1..9))
+
+-- This type is used to represent ISDN numbers.
+maxISDN-AddressLength INTEGER ::= 9
+
+-- vances@motivity.ca Mon Dec 20 2004
+-- There apears to be a bug in asn1 which we need to work around here
+-- FTN-AddressString ::= AddressString(SIZE (1..maxFTN-AddressLength))
+FTN-AddressString ::= AddressString(SIZE (1..15))
+
+-- This type is used to represent forwarded-to numbers.
+-- For long forwarded-to numbers (longer than 15 digits) NPI shall be unknown;
+-- if NAI = international the first digits represent the country code (CC)
+-- and the network destination code (NDC) as for E.164.
+maxFTN-AddressLength INTEGER ::= 15
+
+ISDN-SubaddressString ::= OCTET STRING(SIZE (1..maxISDN-SubaddressLength))
+
+-- This type is used to represent ISDN subaddresses.
+-- It is composed of
+-- a) one octet for type of subaddress and odd/even indicator.
+-- b) 20 octets for subaddress information.
+-- a) The first octet includes a one bit extension indicator, a
+-- 3 bits type of subaddress and a one bit odd/even indicator,
+-- encoded as follows:
+-- bit 8: 1 (no extension)
+-- bits 765: type of subaddress
+-- 000 NSAP (X.213/ISO 8348 AD2)
+-- 010 User Specified
+-- All other values are reserved
+-- bit 4: odd/even indicator
+-- 0 even number of address signals
+-- 1 odd number of address signals
+-- The odd/even indicator is used when the type of subaddress
+-- is "user specified" and the coding is BCD.
+-- bits 321: 000 (unused)
+-- b) Subaddress information.
+-- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+-- by octet 4 which contains the Authority and Format Identifier
+-- (AFI). The encoding is made according to the "preferred binary
+-- encoding" as defined in X.213/ISO834AD2. For the definition
+-- of this type of subaddress, see ITU-T Rec I.334.
+-- For User-specific subaddress, this field is encoded according
+-- to the user specification, subject to a maximum length of 20
+-- octets. When interworking with X.25 networks BCD coding should
+-- be applied.
+maxISDN-SubaddressLength INTEGER ::= 21
+
+ExternalSignalInfo ::= SEQUENCE {
+ protocolId ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- clause 7.6.9.
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ ...}
+
+SignalInfo ::= OCTET STRING(SIZE (1..maxSignalInfoLength))
+
+maxSignalInfoLength INTEGER ::= 200
+
+-- This NamedValue represents the theoretical maximum number of octets which is
+-- available to carry a single instance of the SignalInfo data type,
+-- without requiring segmentation to cope with the network layer service.
+-- However, the actual maximum size available for an instance of the data
+-- type may be lower, especially when other information elements
+-- have to be included in the same component.
+ProtocolId ::= ENUMERATED {
+ gsm-0408(1), gsm-0806(2),
+ gsm-BSSMAP(3),
+ -- Value 3 is reserved and must not be used
+ ets-300102-1(4)}
+
+Ext-ExternalSignalInfo ::= SEQUENCE {
+ ext-ProtocolId Ext-ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- clause 7.6.9.10
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ProtocolId ::= ENUMERATED {ets-300356(1), ... }
+
+-- exception handling:
+-- For Ext-ExternalSignalInfo sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- Ext-ExternalSignalInfo sequence.
+AccessNetworkSignalInfo ::= SEQUENCE {
+ accessNetworkProtocolId AccessNetworkProtocolId,
+ signalInfo LongSignalInfo,
+ -- Information about the internal structure is given in clause 7.6.9.1
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+LongSignalInfo ::= OCTET STRING(SIZE (1..maxLongSignalInfoLength))
+
+maxLongSignalInfoLength INTEGER ::= 2560
+
+-- This Named Value represents the maximum number of octets which is available
+-- to carry a single instance of the LongSignalInfo data type using
+-- White Book SCCP with the maximum number of segments.
+-- It takes account of the octets used by the lower layers of the protocol, and
+-- other information elements which may be included in the same component.
+AccessNetworkProtocolId ::= ENUMERATED {ts3G-48006(1), ts3G-25413(2), ... }
+
+-- exception handling:
+-- For AccessNetworkSignalInfo sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- AccessNetworkSignalInfo sequence.
+AlertingPattern ::= OCTET STRING(SIZE (1))
+
+-- This type is used to represent Alerting Pattern
+-- bits 8765 : 0000 (unused)
+-- bits 43 : type of Pattern
+-- 00 level
+-- 01 category
+-- 10 category
+-- all other values are reserved.
+-- bits 21 : type of alerting
+alertingLevel-0 AlertingPattern ::= '00000000'B
+
+alertingLevel-1 AlertingPattern ::= '00000001'B
+
+alertingLevel-2 AlertingPattern ::= '00000010'B
+
+-- all other values of Alerting level are reserved
+-- Alerting Levels are defined in GSM 02.07
+alertingCategory-1 AlertingPattern ::= '00000100'B
+
+alertingCategory-2 AlertingPattern ::= '00000101'B
+
+alertingCategory-3 AlertingPattern ::= '00000110'B
+
+alertingCategory-4 AlertingPattern ::= '00000111'B
+
+alertingCategory-5 AlertingPattern ::= '00001000'B
+
+-- all other values of Alerting Category are reserved
+-- Alerting categories are defined in GSM 02.07
+-- data types for numbering and identification
+IMSI ::= TBCD-STRING(SIZE (3..8))
+
+-- digits of MCC, MNC, MSIN are concatenated in this order.
+Identity ::= CHOICE {imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+ASCI-CallReference ::= TBCD-STRING(SIZE (1..8))
+
+-- digits of VGCS/VBC-area,Group-ID are concatenated in this order.
+TMSI ::= OCTET STRING(SIZE (1..4))
+
+SubscriberId ::= CHOICE {imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+IMEI ::= TBCD-STRING(SIZE (8))
+
+-- Refers to International Mobile Station Equipment Identity
+-- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17].
+-- If the SVN is not present the last octet shall contain the
+-- digit 0 and a filler.
+-- If present the SVN shall be included in the last octet.
+HLR-Id ::= IMSI
+
+-- leading digits of IMSI, i.e. (MCC, MNC, leading digits of
+-- MSIN) forming HLR Id defined in TS 3GPP TS 23.003 [17].
+HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF HLR-Id
+
+maxNumOfHLR-Id INTEGER ::= 50
+
+LMSI ::= OCTET STRING(SIZE (4))
+
+GlobalCellId ::= OCTET STRING(SIZE (5..7))
+
+-- Refers to Cell Global Identification defined in TS 3GPP TS 23.003 [17].
+-- The internal structure is defined as follows:
+-- octet 1 bits 4321 Mobile Country Code 1st digit
+-- bits 8765 Mobile Country Code 2nd digit
+-- octet 2 bits 4321 Mobile Country Code 3rd digit
+-- bits 8765 Mobile Network Code 3rd digit
+-- or filler (1111) for 2 digit MNCs
+-- octet 3 bits 4321 Mobile Network Code 1st digit
+-- bits 8765 Mobile Network Code 2nd digit
+-- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35]
+-- octets 6 and 7 Cell Identity (CI) according to TS 3GPP TS 24.008 [35]
+NetworkResource ::= ENUMERATED {
+ plmn(0), hlr(1), vlr(2), pvlr(3), controllingMSC(4), vmsc(5), eir(6), rss(7)
+}
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING(SIZE (3))
+
+-- The internal structure is defined by the Carrier Identification
+-- parameter in ANSI T1.113.3. Carrier codes between “000” and “999” may
+-- be encoded as 3 digits using “000” to “999” or as 4 digits using
+-- “0000” to “0999”. Carrier codes between “1000” and “9999” are encoded
+-- using 4 digits.
+SubscriberIdentity ::= CHOICE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString}
+
+LCSClientExternalID ::= SEQUENCE {
+ externalAddress [0] ISDN-AddressString OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+LCSClientInternalID ::= ENUMERATED {
+ broadcastService(0), o-andM-HPLMN(1), o-andM-VPLMN(2), anonymousLocation(3),
+ targetMSsubscribedService(4), ...
+ }
+
+-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used
+LCSServiceTypeID ::= INTEGER(0..127)
+
+-- the integer values 0-63 are reserved for Standard LCS service types
+-- the integer values 64-127 are reserved for Non Standard LCS service types
+emergencyServices LCSServiceTypeID ::= 0
+
+emergencyAlertServices LCSServiceTypeID ::= 1
+
+personTracking LCSServiceTypeID ::= 2
+
+fleetManagement LCSServiceTypeID ::= 3
+
+assetManagement LCSServiceTypeID ::= 4
+
+trafficCongestionReporting LCSServiceTypeID ::= 5
+
+roadsideAssistance LCSServiceTypeID ::= 6
+
+routingToNearestCommercialEnterprise LCSServiceTypeID ::= 7
+
+navigation LCSServiceTypeID ::= 8
+
+citySightseeing LCSServiceTypeID ::= 9
+
+localizedAdvertising LCSServiceTypeID ::= 10
+
+mobileYellowPages LCSServiceTypeID ::= 11
+
+-- The values of LCSServiceTypeID are defined according to 3GPP TS 22.071.
+-- data types for CAMEL
+CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
+ cellGlobalIdOrServiceAreaIdFixedLength
+ [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ laiFixedLength [1] LAIFixedLength}
+
+CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING(SIZE (7))
+
+-- Refers to Cell Global Identification or Service Are Identification
+-- defined in 3GPP TS 23.003.
+-- The internal structure is defined as follows:
+-- octet 1 bits 4321 Mobile Country Code 1st digit
+-- bits 8765 Mobile Country Code 2nd digit
+-- octet 2 bits 4321 Mobile Country Code 3rd digit
+-- bits 8765 Mobile Network Code 3rd digit
+-- or filler (1111) for 2 digit MNCs
+-- octet 3 bits 4321 Mobile Network Code 1st digit
+-- bits 8765 Mobile Network Code 2nd digit
+-- octets 4 and 5 Location Area Code according to 3GPP TS 24.008
+-- octets 6 and 7 Cell Identity (CI) value or
+-- Service Area Code (SAC) value
+-- according to 3GPP TS 23.003
+LAIFixedLength ::= OCTET STRING(SIZE (5))
+
+-- Refers to Location Area Identification defined in TS 3GPP TS 23.003 [17].
+-- The internal structure is defined as follows:
+-- octet 1 bits 4321 Mobile Country Code 1st digit
+-- bits 8765 Mobile Country Code 2nd digit
+-- octet 2 bits 4321 Mobile Country Code 3rd digit
+-- bits 8765 Mobile Network Code 3rd digit
+-- or filler (1111) for 2 digit MNCs
+-- octet 3 bits 4321 Mobile Network Code 1st digit
+-- bits 8765 Mobile Network Code 2nd digit
+-- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35]
+-- data types for subscriber management
+BasicServiceCode ::= CHOICE {
+ bearerService [2] BearerServiceCode,
+ teleservice [3] TeleserviceCode}
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER(0..15)
+
+-- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+-- specified as follows where A is the highest and 4 is the lowest
+-- priority level
+-- the integer values 7-15 are spare and shall be mapped to value 4
+priorityLevelA EMLPP-Priority ::= 6
+
+priorityLevelB EMLPP-Priority ::= 5
+
+priorityLevel0 EMLPP-Priority ::= 0
+
+priorityLevel1 EMLPP-Priority ::= 1
+
+priorityLevel2 EMLPP-Priority ::= 2
+
+priorityLevel3 EMLPP-Priority ::= 3
+
+priorityLevel4 EMLPP-Priority ::= 4
+
+MC-SS-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] Ext-SS-Status,
+ nbrSB [2] MaxMC-Bearers,
+ nbrUser [3] MC-Bearers,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+MaxMC-Bearers ::= INTEGER(2..maxNumOfMC-Bearers)
+
+MC-Bearers ::= INTEGER(1..maxNumOfMC-Bearers)
+
+maxNumOfMC-Bearers INTEGER ::= 7
+
+Ext-SS-Status ::= OCTET STRING(SIZE (1..5))
+
+-- OCTET 1:
+--
+-- bits 8765: 0000 (unused)
+-- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+-- representing supplementary service state information
+-- as defined in TS 3GPP TS 23.011 [22]
+-- bit 4: "Q bit"
+-- bit 3: "P bit"
+-- bit 2: "R bit"
+-- bit 1: "A bit"
+-- OCTETS 2-5: reserved for future use. They shall be discarded if
+-- received and not understood.
+-- data types for geographic location
+AgeOfLocationInformation ::= INTEGER(0..32767)
+
+-- the value represents the elapsed time in minutes since the last
+-- network contact of the mobile station (i.e. the actuality of the
+-- location information).
+-- value “0” indicates that the MS is currently in contact with the
+-- network
+-- value “32767” indicates that the location information is at least
+-- 32767 minutes old
+END
+
diff --git a/MAP/asn_src/GSM/MAP-DialogueInformation.asn b/MAP/asn_src/GSM/MAP-DialogueInformation.asn
new file mode 100644
index 0000000..8869374
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-DialogueInformation.asn
@@ -0,0 +1,114 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-DialogueInformation {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-DialogueInformation(3)
+ version8(8)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ map-DialogueAS, MAP-DialoguePDU, map-ProtectedDialogueAS,
+ MAP-ProtectedDialoguePDU;
+
+IMPORTS
+ gsm-NetworkId, as-Id
+ FROM MobileDomainDefinitions {itu-t(0) identified-organization(4)
+ etsi(0) mobileDomain(0) mobileDomainDefinitions(0) version1(1)}
+ AddressString
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)}
+ SecurityHeader, ProtectedPayload
+ FROM MAP-ST-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ST-DataTypes(27)
+ version8(8)};
+
+-- abstract syntax name for MAP-DialoguePDU
+map-DialogueAS OBJECT IDENTIFIER ::=
+ {gsm-NetworkId as-Id map-DialoguePDU(1) version1(1)}
+
+MAP-DialoguePDU ::= CHOICE {
+ map-open [0] MAP-OpenInfo,
+ map-accept [1] MAP-AcceptInfo,
+ map-close [2] MAP-CloseInfo,
+ map-refuse [3] MAP-RefuseInfo,
+ map-userAbort [4] MAP-UserAbortInfo,
+ map-providerAbort [5] MAP-ProviderAbortInfo}
+
+MAP-OpenInfo ::= SEQUENCE {
+ destinationReference [0] AddressString OPTIONAL,
+ originationReference [1] AddressString OPTIONAL,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL}
+ -- extensionContainer must not be used in version 2
+
+MAP-AcceptInfo ::= SEQUENCE {
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL}
+ -- extensionContainer must not be used in version 2
+
+MAP-CloseInfo ::= SEQUENCE {
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL}
+ -- extensionContainer must not be used in version 2
+
+MAP-RefuseInfo ::= SEQUENCE {
+ reason Reason,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ alternativeApplicationContext OBJECT IDENTIFIER OPTIONAL}
+ -- alternativeApplicationContext must not be used in version 2
+
+Reason ::= ENUMERATED {
+ noReasonGiven(0), invalidDestinationReference(1),
+ invalidOriginatingReference(2), encapsulatedAC-NotSupported(3),
+ transportProtectionNotAdequate(4)}
+
+-- encapsulatedAC-NotSupported and transportProtectionNotAdequate must not be used in
+-- dialogues with an AC different from secureTransportHandling
+MAP-UserAbortInfo ::= SEQUENCE {
+ map-UserAbortChoice MAP-UserAbortChoice,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL}
+ -- extensionContainer must not be used in version 2
+
+MAP-UserAbortChoice ::= CHOICE {
+ userSpecificReason [0] NULL,
+ userResourceLimitation [1] NULL,
+ resourceUnavailable [2] ResourceUnavailableReason,
+ applicationProcedureCancellation [3] ProcedureCancellationReason}
+
+ResourceUnavailableReason ::= ENUMERATED {
+ shortTermResourceLimitation(0), longTermResourceLimitation(1)}
+
+ProcedureCancellationReason ::= ENUMERATED {
+ handoverCancellation(0), radioChannelRelease(1), networkPathRelease(2),
+ callRelease(3), associatedProcedureFailure(4), tandemDialogueRelease(5),
+ remoteOperationsFailure(6)}
+
+MAP-ProviderAbortInfo ::= SEQUENCE {
+ map-ProviderAbortReason MAP-ProviderAbortReason,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL}
+ -- extensionContainer must not be used in version 2
+
+MAP-ProviderAbortReason ::= ENUMERATED {abnormalDialogue(0), invalidPDU(1)}
+
+-- abstract syntax name for MAP-ProtectedDialoguePDU
+map-ProtectedDialogueAS OBJECT IDENTIFIER ::=
+ {gsm-NetworkId as-Id map-ProtectedDialoguePDU(3) version1(1)}
+
+MAP-ProtectedDialoguePDU ::= SEQUENCE {
+ encapsulatedAC OBJECT IDENTIFIER,
+ securityHeader SecurityHeader OPTIONAL,
+ protectedPayload ProtectedPayload OPTIONAL,
+ ...}
+
+-- The protectedPayload carries the result of applying the security function
+-- defined in 3GPP TS 33.200 to the encoding of the securely transported
+-- MAP-DialoguePDU
+END
+
diff --git a/MAP/asn_src/GSM/MAP-ER-DataTypes.asn b/MAP/asn_src/GSM/MAP-ER-DataTypes.asn
new file mode 100644
index 0000000..5772e23
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-ER-DataTypes.asn
@@ -0,0 +1,332 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-ER-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-ER-DataTypes(17) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ RoamingNotAllowedParam, CallBarredParam, CUG-RejectParam,
+ SS-IncompatibilityCause, PW-RegistrationFailureCause,
+ SM-DeliveryFailureCause, SystemFailureParam, DataMissingParam,
+ UnexpectedDataParam, FacilityNotSupParam, OR-NotAllowedParam,
+ UnknownSubscriberParam, NumberChangedParam, UnidentifiedSubParam,
+ IllegalSubscriberParam, IllegalEquipmentParam, BearerServNotProvParam,
+ TeleservNotProvParam, TracingBufferFullParam, NoRoamingNbParam,
+ AbsentSubscriberParam, BusySubscriberParam, NoSubscriberReplyParam,
+ ForwardingViolationParam, ForwardingFailedParam, ATI-NotAllowedParam,
+ SubBusyForMT-SMS-Param, MessageWaitListFullParam, AbsentSubscriberSM-Param,
+ AbsentSubscriberDiagnosticSM, ResourceLimitationParam, NoGroupCallNbParam,
+ IncompatibleTerminalParam, ShortTermDenialParam, LongTermDenialParam,
+ UnauthorizedRequestingNetwork-Param, UnauthorizedLCSClient-Param,
+ PositionMethodFailure-Param, UnknownOrUnreachableLCSClient-Param,
+ MM-EventNotSupported-Param, SecureTransportErrorParam,
+ ATSI-NotAllowedParam, ATM-NotAllowedParam, IllegalSS-OperationParam,
+ SS-NotAvailableParam, SS-SubscriptionViolationParam,
+ InformationNotAvailableParam, TargetCellOutsideGCA-Param;
+
+IMPORTS
+ SS-Status
+ FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14)
+ version8(8)}
+ SignalInfo, BasicServiceCode, NetworkResource
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)}
+ SecurityHeader, ProtectedPayload
+ FROM MAP-ST-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ST-DataTypes(27)
+ version8(8)}
+ SS-Code
+ FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-SS-Code(15) version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)};
+
+RoamingNotAllowedParam ::= SEQUENCE {
+ roamingNotAllowedCause RoamingNotAllowedCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RoamingNotAllowedCause ::= ENUMERATED {
+ plmnRoamingNotAllowed(0), operatorDeterminedBarring(3)}
+
+CallBarredParam ::= CHOICE {
+ callBarringCause CallBarringCause,
+ -- call BarringCause must not be used in version 3 and higher
+ extensibleCallBarredParam ExtensibleCallBarredParam}
+ -- extensibleCallBarredParam must not be used in version <3
+
+CallBarringCause ::= ENUMERATED {barringServiceActive(0), operatorBarring(1)}
+
+ExtensibleCallBarredParam ::= SEQUENCE {
+ callBarringCause CallBarringCause OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ unauthorisedMessageOriginator [1] NULL OPTIONAL}
+
+CUG-RejectParam ::= SEQUENCE {
+ cug-RejectCause CUG-RejectCause OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-RejectCause ::= ENUMERATED {
+ incomingCallsBarredWithinCUG(0), subscriberNotMemberOfCUG(1),
+ requestedBasicServiceViolatesCUG-Constraints(5),
+ calledPartySS-InteractionViolation(7)}
+
+SS-IncompatibilityCause ::= SEQUENCE {
+ ss-Code [1] SS-Code OPTIONAL,
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+PW-RegistrationFailureCause ::= ENUMERATED {
+ undetermined(0), invalidFormat(1), newPasswordsMismatch(2)}
+
+SM-EnumeratedDeliveryFailureCause ::= ENUMERATED {
+ memoryCapacityExceeded(0), equipmentProtocolError(1),
+ equipmentNotSM-Equipped(2), unknownServiceCentre(3), sc-Congestion(4),
+ invalidSME-Address(5), subscriberNotSC-Subscriber(6)}
+
+SM-DeliveryFailureCause ::= SEQUENCE {
+ sm-EnumeratedDeliveryFailureCause SM-EnumeratedDeliveryFailureCause,
+ diagnosticInfo SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AbsentSubscriberSM-Param ::= SEQUENCE {
+ absentSubscriberDiagnosticSM
+ AbsentSubscriberDiagnosticSM OPTIONAL,
+ -- AbsentSubscriberDiagnosticSM can be either for non-GPRS
+ -- or for GPRS
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ additionalAbsentSubscriberDiagnosticSM
+ [0] AbsentSubscriberDiagnosticSM OPTIONAL}
+
+-- if received, additionalAbsentSubscriberDiagnosticSM
+-- is for GPRS and absentSubscriberDiagnosticSM is
+-- for non-GPRS
+AbsentSubscriberDiagnosticSM ::= INTEGER(0..255)
+
+-- AbsentSubscriberDiagnosticSM values are defined in 3GPP TS 23.040
+SystemFailureParam ::= CHOICE {
+ networkResource NetworkResource,
+ -- networkResource must not be used in version 3
+ extensibleSystemFailureParam ExtensibleSystemFailureParam}
+ -- extensibleSystemFailureParam must not be used in version <3
+
+ExtensibleSystemFailureParam ::= SEQUENCE {
+ networkResource NetworkResource OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+DataMissingParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnexpectedDataParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FacilityNotSupParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ shapeOfLocationEstimateNotSupported [0] NULL OPTIONAL,
+ neededLcsCapabilityNotSupportedInServingNode [1] NULL OPTIONAL}
+
+OR-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnknownSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL}
+
+UnknownSubscriberDiagnostic ::= ENUMERATED {
+ imsiUnknown(0), gprsSubscriptionUnknown(1), ...,
+ npdbMismatch(2)}
+
+-- if unknown values are received in
+-- UnknownSubscriberDiagnostic they shall be discarded
+NumberChangedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnidentifiedSubParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalEquipmentParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+BearerServNotProvParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TeleservNotProvParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TracingBufferFullParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoRoamingNbParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AbsentSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ absentSubscriberReason [0] AbsentSubscriberReason OPTIONAL}
+
+AbsentSubscriberReason ::= ENUMERATED {
+ imsiDetach(0), restrictedArea(1), noPageResponse(2), ...,
+ purgedMS(3)}
+
+-- exception handling: at reception of other values than the ones listed the
+-- AbsentSubscriberReason shall be ignored.
+-- The AbsentSubscriberReason: purgedMS is defined for the Super-Charger feature
+-- (see TS 23.116). If this value is received in a Provide Roaming Number response
+-- it shall be mapped to the AbsentSubscriberReason: imsiDetach in the Send Routeing
+-- Information response
+BusySubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ ccbs-Possible [0] NULL OPTIONAL,
+ ccbs-Busy [1] NULL OPTIONAL}
+
+NoSubscriberReplyParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardingViolationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardingFailedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATI-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATSI-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATM-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalSS-OperationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-NotAvailableParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-SubscriptionViolationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InformationNotAvailableParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubBusyForMT-SMS-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ gprsConnectionSuspended NULL OPTIONAL}
+
+-- If GprsConnectionSuspended is not understood it shall
+-- be discarded
+MessageWaitListFullParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ResourceLimitationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoGroupCallNbParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IncompatibleTerminalParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ShortTermDenialParam ::= SEQUENCE {...}
+
+LongTermDenialParam ::= SEQUENCE {...}
+
+UnauthorizedRequestingNetwork-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnauthorizedLCSClient-Param ::= SEQUENCE {
+ unauthorizedLCSClient-Diagnostic
+ [0] UnauthorizedLCSClient-Diagnostic OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+UnauthorizedLCSClient-Diagnostic ::= ENUMERATED {
+ noAdditionalInformation(0), clientNotInMSPrivacyExceptionList(1),
+ callToClientNotSetup(2), privacyOverrideNotApplicable(3),
+ disallowedByLocalRegulatoryRequirements(4), ...,
+ unauthorizedPrivacyClass(5),
+ unauthorizedCallSessionUnrelatedExternalClient(6),
+ unauthorizedCallSessionRelatedExternalClient(7)}
+
+-- exception handling:
+-- any unrecognized value shall be ignored
+PositionMethodFailure-Param ::= SEQUENCE {
+ positionMethodFailure-Diagnostic
+ [0] PositionMethodFailure-Diagnostic OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+PositionMethodFailure-Diagnostic ::= ENUMERATED {
+ congestion(0), insufficientResources(1), insufficientMeasurementData(2),
+ inconsistentMeasurementData(3), locationProcedureNotCompleted(4),
+ locationProcedureNotSupportedByTargetMS(5), qoSNotAttainable(6),
+ positionMethodNotAvailableInNetwork(7),
+ positionMethodNotAvailableInLocationArea(8), ...
+ }
+
+-- exception handling:
+-- any unrecognized value shall be ignored
+UnknownOrUnreachableLCSClient-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MM-EventNotSupported-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TargetCellOutsideGCA-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SecureTransportErrorParam ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL}
+
+-- The protectedPayload carries the result of applying the security function
+-- defined in 3GPP TS 33.200 to the encoding of the securely transported error
+-- parameter
+END
+
diff --git a/MAP/asn_src/GSM/MAP-Errors.asn b/MAP/asn_src/GSM/MAP-Errors.asn
new file mode 100644
index 0000000..7f7cd69
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-Errors.asn
@@ -0,0 +1,358 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Errors(10) version8(8)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ -- generic errors
+ systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported,
+ incompatibleTerminal,
+ resourceLimitation,
+ -- identification and numbering errors
+ unknownSubscriber, numberChanged, unknownMSC, unidentifiedSubscriber,
+ unknownEquipment,
+ -- subscription errors
+ roamingNotAllowed, illegalSubscriber, illegalEquipment,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ -- handover errors
+ noHandoverNumberAvailable, subsequentHandoverFailure,
+ targetCellOutsideGroupCallArea,
+ -- operation and maintenance errors
+ tracingBufferFull,
+ -- call handling errors
+ or-NotAllowed, noRoamingNumberAvailable, busySubscriber, noSubscriberReply,
+ absentSubscriber, callBarred, forwardingViolation, forwardingFailed,
+ cug-Reject,
+ -- any time interrogation errors
+ ati-NotAllowed,
+ -- any time information handling errors
+ atsi-NotAllowed, atm-NotAllowed,
+ informationNotAvailable,
+ -- supplementary service errors
+ illegalSS-Operation, ss-ErrorStatus, ss-NotAvailable,
+ ss-SubscriptionViolation, ss-Incompatibility, unknownAlphabet, ussd-Busy,
+ pw-RegistrationFailure, negativePW-Check, numberOfPW-AttemptsViolation,
+ shortTermDenial,
+ longTermDenial,
+ -- short message service errors
+ subscriberBusyForMT-SMS, sm-DeliveryFailure, messageWaitingListFull,
+ absentSubscriberSM,
+ -- Group Call errors
+ noGroupCallNumberAvailable,
+ -- location service errors
+ unauthorizedRequestingNetwork, unauthorizedLCSClient,
+ positionMethodFailure,
+ unknownOrUnreachableLCSClient,
+ -- Mobility Management errors
+ mm-EventNotSupported,
+ -- Secure transport errors
+ secureTransportError;
+
+IMPORTS
+ ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ SS-Status
+ FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14)
+ version8(8)}
+ SS-IncompatibilityCause, PW-RegistrationFailureCause,
+ SM-DeliveryFailureCause, SystemFailureParam, DataMissingParam,
+ UnexpectedDataParam, FacilityNotSupParam, UnknownSubscriberParam,
+ NumberChangedParam, UnidentifiedSubParam, RoamingNotAllowedParam,
+ IllegalSubscriberParam, IllegalEquipmentParam, BearerServNotProvParam,
+ TeleservNotProvParam, TracingBufferFullParam, NoRoamingNbParam,
+ OR-NotAllowedParam, AbsentSubscriberParam, BusySubscriberParam,
+ NoSubscriberReplyParam, CallBarredParam, ForwardingViolationParam,
+ ForwardingFailedParam, CUG-RejectParam, ATI-NotAllowedParam,
+ SubBusyForMT-SMS-Param, MessageWaitListFullParam, AbsentSubscriberSM-Param,
+ ResourceLimitationParam, NoGroupCallNbParam, IncompatibleTerminalParam,
+ ShortTermDenialParam, LongTermDenialParam,
+ UnauthorizedRequestingNetwork-Param, UnauthorizedLCSClient-Param,
+ PositionMethodFailure-Param, UnknownOrUnreachableLCSClient-Param,
+ MM-EventNotSupported-Param, ATSI-NotAllowedParam, ATM-NotAllowedParam,
+ IllegalSS-OperationParam, SS-NotAvailableParam,
+ SS-SubscriptionViolationParam, InformationNotAvailableParam,
+ TargetCellOutsideGCA-Param, SecureTransportErrorParam
+ FROM MAP-ER-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ER-DataTypes(17)
+ version8(8)};
+
+-- generic errors
+systemFailure ERROR ::= {
+ PARAMETER SystemFailureParam
+ -- optional
+ CODE local:34}
+
+dataMissing ERROR ::= {
+ PARAMETER DataMissingParam
+ -- optional
+ -- DataMissingParam must not be used in version <3
+ CODE local:35}
+
+unexpectedDataValue ERROR ::= {
+ PARAMETER UnexpectedDataParam
+ -- optional
+ -- UnexpectedDataParam must not be used in version <3
+ CODE local:36}
+
+facilityNotSupported ERROR ::= {
+ PARAMETER FacilityNotSupParam
+ -- optional
+ -- FacilityNotSupParam must not be used in version <3
+ CODE local:21}
+
+incompatibleTerminal ERROR ::= {
+ PARAMETER IncompatibleTerminalParam
+ -- optional
+ CODE local:28}
+
+resourceLimitation ERROR ::= {
+ PARAMETER ResourceLimitationParam
+ -- optional
+ CODE local:51}
+
+-- identification and numbering errors
+unknownSubscriber ERROR ::= {
+ PARAMETER UnknownSubscriberParam
+ -- optional
+ -- UnknownSubscriberParam must not be used in version <3
+ CODE local:1}
+
+numberChanged ERROR ::= {
+ PARAMETER NumberChangedParam
+ -- optional
+ CODE local:44}
+
+unknownMSC ERROR ::= {CODE local:3}
+
+unidentifiedSubscriber ERROR ::= {
+ PARAMETER UnidentifiedSubParam
+ -- optional
+ -- UunidentifiedSubParam must not be used in version <3
+ CODE local:5}
+
+unknownEquipment ERROR ::= {CODE local:7}
+
+-- subscription errors
+roamingNotAllowed ERROR ::= {
+ PARAMETER RoamingNotAllowedParam
+ CODE local:8}
+
+illegalSubscriber ERROR ::= {
+ PARAMETER IllegalSubscriberParam
+ -- optional
+ -- IllegalSubscriberParam must not be used in version <3
+ CODE local:9}
+
+illegalEquipment ERROR ::= {
+ PARAMETER IllegalEquipmentParam
+ -- optional
+ -- IllegalEquipmentParam must not be used in version <3
+ CODE local:12}
+
+bearerServiceNotProvisioned ERROR ::= {
+ PARAMETER BearerServNotProvParam
+ -- optional
+ -- BearerServNotProvParam must not be used in version <3
+ CODE local:10}
+
+teleserviceNotProvisioned ERROR ::= {
+ PARAMETER TeleservNotProvParam
+ -- optional
+ -- TeleservNotProvParam must not be used in version <3
+ CODE local:11}
+
+-- handover errors
+noHandoverNumberAvailable ERROR ::= {CODE local:25}
+
+subsequentHandoverFailure ERROR ::= {CODE local:26}
+
+targetCellOutsideGroupCallArea ERROR ::= {
+ PARAMETER TargetCellOutsideGCA-Param
+ -- optional
+ CODE local:42}
+
+-- operation and maintenance errors
+tracingBufferFull ERROR ::= {
+ PARAMETER TracingBufferFullParam
+ -- optional
+ CODE local:40}
+
+-- call handling errors
+noRoamingNumberAvailable ERROR ::= {
+ PARAMETER NoRoamingNbParam
+ -- optional
+ CODE local:39}
+
+absentSubscriber ERROR ::= {
+ PARAMETER AbsentSubscriberParam
+ -- optional
+ -- AbsentSubscriberParam must not be used in version <3
+ CODE local:27}
+
+busySubscriber ERROR ::= {
+ PARAMETER BusySubscriberParam
+ -- optional
+ CODE local:45}
+
+noSubscriberReply ERROR ::= {
+ PARAMETER NoSubscriberReplyParam
+ -- optional
+ CODE local:46}
+
+callBarred ERROR ::= {PARAMETER CallBarredParam
+ -- optional
+ CODE local:13}
+
+forwardingViolation ERROR ::= {
+ PARAMETER ForwardingViolationParam
+ -- optional
+ CODE local:14}
+
+forwardingFailed ERROR ::= {
+ PARAMETER ForwardingFailedParam
+ -- optional
+ CODE local:47}
+
+cug-Reject ERROR ::= {PARAMETER CUG-RejectParam
+ -- optional
+ CODE local:15}
+
+or-NotAllowed ERROR ::= {
+ PARAMETER OR-NotAllowedParam
+ -- optional
+ CODE local:48}
+
+-- any time interrogation errors
+ati-NotAllowed ERROR ::= {
+ PARAMETER ATI-NotAllowedParam
+ -- optional
+ CODE local:49}
+
+-- any time information handling errors
+atsi-NotAllowed ERROR ::= {
+ PARAMETER ATSI-NotAllowedParam
+ -- optional
+ CODE local:60}
+
+atm-NotAllowed ERROR ::= {
+ PARAMETER ATM-NotAllowedParam
+ -- optional
+ CODE local:61}
+
+informationNotAvailable ERROR ::= {
+ PARAMETER InformationNotAvailableParam
+ -- optional
+ CODE local:62}
+
+-- supplementary service errors
+illegalSS-Operation ERROR ::= {
+ PARAMETER IllegalSS-OperationParam
+ -- optional
+ -- IllegalSS-OperationParam must not be used in version <3
+ CODE local:16}
+
+ss-ErrorStatus ERROR ::= {PARAMETER SS-Status
+ -- optional
+ CODE local:17}
+
+ss-NotAvailable ERROR ::= {
+ PARAMETER SS-NotAvailableParam
+ -- optional
+ -- SS-NotAvailableParam must not be used in version <3
+ CODE local:18}
+
+ss-SubscriptionViolation ERROR ::= {
+ PARAMETER SS-SubscriptionViolationParam
+ -- optional
+ -- SS-SubscriptionViolationParam must not be used in version <3
+ CODE local:19}
+
+ss-Incompatibility ERROR ::= {
+ PARAMETER SS-IncompatibilityCause
+ -- optional
+ CODE local:20}
+
+unknownAlphabet ERROR ::= {CODE local:71}
+
+ussd-Busy ERROR ::= {CODE local:72}
+
+pw-RegistrationFailure ERROR ::= {
+ PARAMETER PW-RegistrationFailureCause
+ CODE local:37}
+
+negativePW-Check ERROR ::= {CODE local:38}
+
+numberOfPW-AttemptsViolation ERROR ::= {CODE local:43}
+
+shortTermDenial ERROR ::= {
+ PARAMETER ShortTermDenialParam
+ -- optional
+ CODE local:29}
+
+longTermDenial ERROR ::= {
+ PARAMETER LongTermDenialParam
+ -- optional
+ CODE local:30}
+
+-- short message service errors
+subscriberBusyForMT-SMS ERROR ::= {
+ PARAMETER SubBusyForMT-SMS-Param
+ -- optional
+ CODE local:31}
+
+sm-DeliveryFailure ERROR ::= {
+ PARAMETER SM-DeliveryFailureCause
+ CODE local:32}
+
+messageWaitingListFull ERROR ::= {
+ PARAMETER MessageWaitListFullParam
+ -- optional
+ CODE local:33}
+
+absentSubscriberSM ERROR ::= {
+ PARAMETER AbsentSubscriberSM-Param
+ -- optional
+ CODE local:6}
+
+-- Group Call errors
+noGroupCallNumberAvailable ERROR ::= {
+ PARAMETER NoGroupCallNbParam
+ -- optional
+ CODE local:50}
+
+-- location service errors
+unauthorizedRequestingNetwork ERROR ::= {
+ PARAMETER UnauthorizedRequestingNetwork-Param
+ -- optional
+ CODE local:52}
+
+unauthorizedLCSClient ERROR ::= {
+ PARAMETER UnauthorizedLCSClient-Param
+ -- optional
+ CODE local:53}
+
+positionMethodFailure ERROR ::= {
+ PARAMETER PositionMethodFailure-Param
+ -- optional
+ CODE local:54}
+
+unknownOrUnreachableLCSClient ERROR ::= {
+ PARAMETER UnknownOrUnreachableLCSClient-Param
+ -- optional
+ CODE local:58}
+
+mm-EventNotSupported ERROR ::= {
+ PARAMETER MM-EventNotSupported-Param
+ -- optional
+ CODE local:59}
+
+-- Secure transport errors
+secureTransportError ERROR ::= {
+ PARAMETER SecureTransportErrorParam
+ CODE local:4}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-ExtensionDataTypes.asn b/MAP/asn_src/GSM/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000..48e1988
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,39 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS PrivateExtension, ExtensionContainer;
+
+-- IOC for private MAP extensions
+MAP-EXTENSION ::= CLASS {
+ &ExtensionType OPTIONAL,
+ &extensionId OBJECT IDENTIFIER}
+
+-- The length of the Object Identifier shall not exceed 16 octets and the
+-- number of components of the Object Identifier shall not exceed 16
+-- data types
+ExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0] PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1] PCS-Extensions OPTIONAL,
+ ...}
+
+PrivateExtensionList ::=
+ SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF PrivateExtension
+
+PrivateExtension ::= SEQUENCE {
+ extId MAP-EXTENSION.&extensionId({ExtensionSet}),
+ extType MAP-EXTENSION.&ExtensionType({ExtensionSet}{@extId}) OPTIONAL}
+
+maxNumOfPrivateExtensions INTEGER ::= 10
+
+ExtensionSet MAP-EXTENSION ::=
+ {...}
+ -- ExtensionSet is the set of all defined private extensions
+
+-- Unsupported private extensions shall be discarded if received.
+PCS-Extensions ::= SEQUENCE {...}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-GR-DataTypes.asn b/MAP/asn_src/GSM/MAP-GR-DataTypes.asn
new file mode 100644
index 0000000..a248eb5
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-GR-DataTypes.asn
@@ -0,0 +1,101 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-GR-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-GR-DataTypes(23) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ PrepareGroupCallArg, PrepareGroupCallRes, SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes, ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg;
+
+IMPORTS
+ ISDN-AddressString, IMSI, EMLPP-Priority, ASCI-CallReference
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)}
+ Ext-TeleserviceCode
+ FROM MAP-TS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-TS-Code(19) version8(8)}
+ Kc
+ FROM MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-MS-DataTypes(11)
+ version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)};
+
+PrepareGroupCallArg ::= SEQUENCE {
+ teleservice Ext-TeleserviceCode,
+ asciCallReference ASCI-CallReference,
+ codec-Info CODEC-Info,
+ cipheringAlgorithm CipheringAlgorithm,
+ groupKeyNumber [0] GroupKeyNumber OPTIONAL,
+ groupKey [1] Kc OPTIONAL,
+ priority [2] EMLPP-Priority OPTIONAL,
+ uplinkFree [3] NULL OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareGroupCallRes ::= SEQUENCE {
+ groupCallNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendGroupCallEndSignalArg ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendGroupCallEndSignalRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardGroupCallSignallingArg ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ uplinkRequestAck [0] NULL OPTIONAL,
+ uplinkReleaseIndication [1] NULL OPTIONAL,
+ uplinkRejectCommand [2] NULL OPTIONAL,
+ uplinkSeizedCommand [3] NULL OPTIONAL,
+ uplinkReleaseCommand [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ stateAttributes [5] StateAttributes OPTIONAL}
+
+ProcessGroupCallSignallingArg ::= SEQUENCE {
+ uplinkRequest [0] NULL OPTIONAL,
+ uplinkReleaseIndication [1] NULL OPTIONAL,
+ releaseGroupCall [2] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupKeyNumber ::= INTEGER(0..15)
+
+CODEC-Info ::= OCTET STRING(SIZE (5..10))
+
+-- Refers to channel type
+-- coded according to 3GPP TS 48.008 [49] and including Element identifier and Length
+CipheringAlgorithm ::= OCTET STRING(SIZE (1))
+
+-- Refers to 'permitted algorithms' in 'encryption information'
+-- coded according to 3GPP TS 48.008 [49]:
+-- Bits 8-1
+-- 8765 4321
+-- 0000 0001 No encryption
+-- 0000 0010 GSM A5/1
+-- 0000 0100 GSM A5/2
+-- 0000 1000 GSM A5/3
+-- 0001 0000 GSM A5/4
+-- 0010 0000 GSM A5/5
+-- 0100 0000 GSM A5/6
+-- 1000 0000 GSM A5/7
+StateAttributes ::= SEQUENCE {
+ downlinkAttached [5] NULL OPTIONAL,
+ uplinkAttached [6] NULL OPTIONAL,
+ dualCommunication [7] NULL OPTIONAL,
+ callOriginator [8] NULL OPTIONAL}
+
+-- Refers to 3GPP TS 44.068 for definitions of StateAttributes fields.
+END
+
diff --git a/MAP/asn_src/GSM/MAP-Group-Call-Operations.asn b/MAP/asn_src/GSM/MAP-Group-Call-Operations.asn
new file mode 100644
index 0000000..f91b847
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-Group-Call-Operations.asn
@@ -0,0 +1,45 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-Group-Call-Operations {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-Group-Call-Operations(22)
+ version8(8)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ prepareGroupCall, sendGroupCallEndSignal, forwardGroupCallSignalling,
+ processGroupCallSignalling;
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ systemFailure, unexpectedDataValue, noGroupCallNumberAvailable
+ FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Errors(10) version8(8)}
+ PrepareGroupCallArg, PrepareGroupCallRes, SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes, ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg
+ FROM MAP-GR-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-GR-DataTypes(23)
+ version8(8)};
+
+prepareGroupCall OPERATION ::= { --Timer m
+ ARGUMENT PrepareGroupCallArg
+ RESULT PrepareGroupCallRes
+ ERRORS {systemFailure | noGroupCallNumberAvailable | unexpectedDataValue}
+ CODE local:39}
+
+sendGroupCallEndSignal OPERATION ::= { --Timer l
+ ARGUMENT SendGroupCallEndSignalArg
+ RESULT SendGroupCallEndSignalRes
+ CODE local:40}
+
+processGroupCallSignalling OPERATION ::= { --Timer s
+ ARGUMENT ProcessGroupCallSignallingArg
+ CODE local:41}
+
+forwardGroupCallSignalling OPERATION ::= { --Timer s
+ ARGUMENT ForwardGroupCallSignallingArg
+ CODE local:42}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-LCS-DataTypes.asn b/MAP/asn_src/GSM/MAP-LCS-DataTypes.asn
new file mode 100644
index 0000000..81acb8d
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-LCS-DataTypes.asn
@@ -0,0 +1,370 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-LCS-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-LCS-DataTypes(25) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ RoutingInfoForLCS-Arg, RoutingInfoForLCS-Res, ProvideSubscriberLocation-Arg,
+ ProvideSubscriberLocation-Res, SubscriberLocationReport-Arg,
+ SubscriberLocationReport-Res, LocationType, LCSClientName, LCS-QoS,
+ Horizontal-Accuracy, ResponseTime, Ext-GeographicalInformation,
+ SupportedGADShapes, Add-GeographicalInformation, LCSRequestorID,
+ LCSCodeword;
+
+IMPORTS
+ AddressString, ISDN-AddressString, IMEI, IMSI, LMSI, SubscriberIdentity,
+ AgeOfLocationInformation, LCSClientExternalID, LCSClientInternalID,
+ LCSServiceTypeID
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)}
+ USSD-DataCodingScheme, USSD-String
+ FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14)
+ version8(8)}
+ APN
+ FROM MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-MS-DataTypes(11)
+ version8(8)}
+ Additional-Number
+ FROM MAP-SM-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-SM-DataTypes(16)
+ version8(8)};
+
+RoutingInfoForLCS-Arg ::= SEQUENCE {
+ mlcNumber [0] ISDN-AddressString,
+ targetMS [1] SubscriberIdentity,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RoutingInfoForLCS-Res ::= SEQUENCE {
+ targetMS [0] SubscriberIdentity,
+ lcsLocationInfo [1] LCSLocationInfo,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+LCSLocationInfo ::= SEQUENCE {
+ networkNode-Number ISDN-AddressString,
+ -- NetworkNode-number can be either msc-number or sgsn-number
+ lmsi [0] LMSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ gprsNodeIndicator [2] NULL OPTIONAL,
+ -- gprsNodeIndicator is set only if the SGSN number is sent as the Network Node Number
+ additional-Number [3] Additional-Number OPTIONAL}
+
+ProvideSubscriberLocation-Arg ::= SEQUENCE {
+ locationType LocationType,
+ mlc-Number ISDN-AddressString,
+ lcs-ClientID [0] LCS-ClientID OPTIONAL,
+ privacyOverride [1] NULL OPTIONAL,
+ imsi [2] IMSI OPTIONAL,
+ msisdn [3] ISDN-AddressString OPTIONAL,
+ lmsi [4] LMSI OPTIONAL,
+ imei [5] IMEI OPTIONAL,
+ lcs-Priority [6] LCS-Priority OPTIONAL,
+ lcs-QoS [7] LCS-QoS OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ...,
+ supportedGADShapes [9] SupportedGADShapes OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ lcsServiceTypeID [11] LCSServiceTypeID OPTIONAL,
+ lcsCodeword [12] LCSCodeword OPTIONAL}
+
+-- one of imsi or msisdn is mandatory
+-- If a location estimate type indicates activate deferred location or cancel deferred
+-- location, a lcs-Reference number shall be included.
+LocationType ::= SEQUENCE {
+ locationEstimateType [0] LocationEstimateType,
+ ...,
+ deferredLocationEventType [1] DeferredLocationEventType OPTIONAL}
+
+LocationEstimateType ::= ENUMERATED {
+ currentLocation(0), currentOrLastKnownLocation(1), initialLocation(2), ...,
+ activateDeferredLocation(3), cancelDeferredLocation(4)}
+
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing an unrecognized LocationEstimateType
+-- shall be rejected by the receiver with a return error cause of unexpected data value
+DeferredLocationEventType ::= BIT STRING {msAvailable(0)}(SIZE (1..16))
+
+-- exception handling
+-- a ProvideSubscriberLocation-Arg containing other values than listed above in
+-- DeferredLocationEventType shall be rejected by the receiver with a return error cause of
+-- unexpected data value.
+LCS-ClientID ::= SEQUENCE {
+ lcsClientType [0] LCSClientType,
+ lcsClientExternalID [1] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [2] AddressString OPTIONAL,
+ lcsClientInternalID [3] LCSClientInternalID OPTIONAL,
+ lcsClientName [4] LCSClientName OPTIONAL,
+ ...,
+ lcsAPN [5] APN OPTIONAL,
+ lcsRequestorID [6] LCSRequestorID OPTIONAL}
+
+LCSClientType ::= ENUMERATED {
+ emergencyServices(0), valueAddedServices(1), plmnOperatorServices(2),
+ lawfulInterceptServices(3), ...
+ }
+
+-- exception handling:
+-- unrecognized values may be ignored if the LCS client uses the privacy override
+-- otherwise, an unrecognized value shall be treated as unexpected data by a receiver
+-- a return error shall then be returned if received in a MAP invoke
+LCSClientName ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ nameString [2] NameString,
+ ...}
+
+-- The USSD-DataCodingScheme shall indicate use of the default alphabet through the
+-- following encoding
+-- bit 7 6 5 4 3 2 1 0
+-- 0 0 0 0 1 1 1 1
+NameString ::= USSD-String(SIZE (1..maxNameStringLength))
+
+maxNameStringLength INTEGER ::= 63
+
+LCSRequestorID ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ requestorIDString [1] RequestorIDString,
+ ...}
+
+RequestorIDString ::= USSD-String(SIZE (1..maxRequestorIDStringLength))
+
+maxRequestorIDStringLength INTEGER ::= 127
+
+LCS-Priority ::= OCTET STRING(SIZE (1))
+
+-- 0 = highest priority
+-- 1 = normal priority
+-- all other values treated as 1
+LCS-QoS ::= SEQUENCE {
+ horizontal-accuracy [0] Horizontal-Accuracy OPTIONAL,
+ verticalCoordinateRequest [1] NULL OPTIONAL,
+ vertical-accuracy [2] Vertical-Accuracy OPTIONAL,
+ responseTime [3] ResponseTime OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+Horizontal-Accuracy ::= OCTET STRING(SIZE (1))
+
+-- bit 8 = 0
+-- bits 7-1 = 7 bit Uncertainty Code defined in 3GPP TS 23.032. The horizontal location
+-- error should be less than the error indicated by the uncertainty code with 67%
+-- confidence.
+Vertical-Accuracy ::= OCTET STRING(SIZE (1))
+
+-- bit 8 = 0
+-- bits 7-1 = 7 bit Vertical Uncertainty Code defined in 3GPP TS 23.032.
+-- The vertical location error should be less than the error indicated
+-- by the uncertainty code with 67% confidence.
+ResponseTime ::= SEQUENCE {responseTimeCategory ResponseTimeCategory,
+ ...}
+
+-- note: an expandable SEQUENCE simplifies later addition of a numeric response time.
+ResponseTimeCategory ::= ENUMERATED {lowdelay(0), delaytolerant(1), ...
+ }
+
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 1 (delaytolerant)
+SupportedGADShapes ::= BIT STRING {
+ ellipsoidPoint(0), ellipsoidPointWithUncertaintyCircle(1),
+ ellipsoidPointWithUncertaintyEllipse(2), polygon(3),
+ ellipsoidPointWithAltitude(4),
+ ellipsoidPointWithAltitudeAndUncertaintyElipsoid(5), ellipsoidArc(6)
+}(SIZE (7..16))
+
+-- A node shall mark in the BIT STRING all Shapes defined in 3GPP TS 23.032 it supports.
+-- exception handling: bits 7 to 15 shall be ignored if received.
+LCS-ReferenceNumber ::= OCTET STRING(SIZE (1))
+
+LCSCodeword ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ lcsCodewordString [1] LCSCodewordString,
+ ...}
+
+LCSCodewordString ::= USSD-String(SIZE (1..maxLCSCodewordStringLength))
+
+maxLCSCodewordStringLength INTEGER ::= 127
+
+ProvideSubscriberLocation-Res ::= SEQUENCE {
+ locationEstimate Ext-GeographicalInformation,
+ ageOfLocationEstimate [0] AgeOfLocationInformation OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ add-LocationEstimate [2] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrResponseIndicator [3] NULL OPTIONAL,
+ positioningData [4] PositioningDataInformation OPTIONAL}
+
+-- if deferredmt-lrResponseIndicator is set, locationEstimate is ignored.
+-- the add-LocationEstimate parameter shall not be sent to a node that did not indicate the
+-- geographic shapes supported in the ProvideSubscriberLocation-Arg
+-- The locationEstimate and the add-locationEstimate parameters shall not be sent if
+-- the supportedGADShapes parameter has been received in ProvideSubscriberLocation-Arg
+-- and the shape encoded in locationEstimate or add-LocationEstimate is not marked
+-- as supported in supportedGADShapes. In such a case ProvideSubscriberLocation
+-- shall be rejected with error FacilityNotSupported with additional indication
+-- shapeOfLocationEstimateNotSupported
+Ext-GeographicalInformation ::=
+ OCTET STRING(SIZE (1..maxExt-GeographicalInformation))
+
+-- Refers to geographical Information defined in 3GPP TS 23.032.
+-- This is composed of 1 or more octets with an internal structure according to
+-- 3GPP TS 23.032
+-- Octet 1: Type of shape, only the following shapes in 3GPP TS 23.032 are allowed:
+-- (a) Ellipsoid point with uncertainty circle
+-- (b) Ellipsoid point with uncertainty ellipse
+-- (c) Ellipsoid point with altitude and uncertainty ellipsoid
+-- (d) Ellipsoid Arc
+-- (e) Ellipsoid Point
+-- Any other value in octet 1 shall be treated as invalid
+-- Octets 2 to 8 for case (a) – Ellipsoid point with uncertainty circle
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+-- Octets 2 to 11 for case (b) – Ellipsoid point with uncertainty ellipse:
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty semi-major axis 1 octet
+-- Uncertainty semi-minor axis 1 octet
+-- Angle of major axis 1 octet
+-- Confidence 1 octet
+-- Octets 2 to 14 for case (c) – Ellipsoid point with altitude and uncertainty ellipsoid
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Altitude 2 octets
+-- Uncertainty semi-major axis 1 octet
+-- Uncertainty semi-minor axis 1 octet
+-- Angle of major axis 1 octet
+-- Uncertainty altitude 1 octet
+-- Confidence 1 octet
+-- Octets 2 to 13 for case (d) – Ellipsoid Arc
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Inner radius 2 octets
+-- Uncertainty radius 1 octet
+-- Offset angle 1 octet
+-- Included angle 1 octet
+-- Confidence 1 octet
+-- Octets 2 to 7 for case (e) – Ellipsoid Point
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+--
+-- An Ext-GeographicalInformation parameter comprising more than one octet and
+-- containing any other shape or an incorrect number of octets or coding according
+-- to 3GPP TS 23.032 shall be treated as invalid data by a receiver.
+--
+-- An Ext-GeographicalInformation parameter comprising one octet shall be discarded
+-- by the receiver if an Add-GeographicalInformation parameter is received
+-- in the same message.
+--
+-- An Ext-GeographicalInformation parameter comprising one octet shall be treated as
+-- invalid data by the receiver if an Add-GeographicalInformation parameter is not
+-- received in the same message.
+maxExt-GeographicalInformation INTEGER ::=
+ 20
+
+-- the maximum length allows for further shapes in 3GPP TS 23.032 to be included in later
+-- versions of 3GPP TS 29.002
+PositioningDataInformation ::=
+ OCTET STRING(SIZE (2..maxPositioningDataInformation))
+
+-- Refers to the Positioning Data defined in 3GPP TS 49.031.
+-- This is composed of 2 or more octets with an internal structure according to
+-- 3GPP TS 49.031.
+maxPositioningDataInformation INTEGER ::=
+ 10
+
+--
+Add-GeographicalInformation ::=
+ OCTET STRING(SIZE (1..maxAdd-GeographicalInformation))
+
+-- Refers to geographical Information defined in 3GPP TS 23.032.
+-- This is composed of 1 or more octets with an internal structure according to
+-- 3GPP TS 23.032
+-- Octet 1: Type of shape, all the shapes defined in 3GPP TS 23.032 are allowed:
+-- Octets 2 to n (where n is the total number of octets necessary to encode the shape
+-- according to 3GPP TS 23.032) are used to encode the shape itself in accordance with the
+-- encoding defined in 3GPP TS 23.032
+--
+-- An Add-GeographicalInformation parameter, whether valid or invalid, received
+-- together with a valid Ext-GeographicalInformation parameter in the same message
+-- shall be discarded.
+--
+-- An Add-GeographicalInformation parameter containing any shape not defined in
+-- 3GPP TS 23.032 or an incorrect number of octets or coding according to
+-- 3GPP TS 23.032 shall be treated as invalid data by a receiver if not received
+-- together with a valid Ext-GeographicalInformation parameter in the same message.
+maxAdd-GeographicalInformation INTEGER ::=
+ 91
+
+-- the maximum length allows support for all the shapes currently defined in 3GPP TS 23.032
+SubscriberLocationReport-Arg ::= SEQUENCE {
+ lcs-Event LCS-Event,
+ lcs-ClientID LCS-ClientID,
+ lcsLocationInfo LCSLocationInfo,
+ msisdn [0] ISDN-AddressString OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ imei [2] IMEI OPTIONAL,
+ na-ESRD [3] ISDN-AddressString OPTIONAL,
+ na-ESRK [4] ISDN-AddressString OPTIONAL,
+ locationEstimate [5] Ext-GeographicalInformation OPTIONAL,
+ ageOfLocationEstimate [6] AgeOfLocationInformation OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...,
+ add-LocationEstimate [8] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrData [9] Deferredmt-lrData OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ positioningData [11] PositioningDataInformation OPTIONAL}
+
+-- one of msisdn or imsi is mandatory
+-- a location estimate that is valid for the locationEstimate parameter should
+-- be transferred in this parameter in preference to the add-LocationEstimate.
+-- the deferredmt-lrData parameter shall be included if and only if the lcs-Event
+-- indicates a deferredmt-lrResponse.
+-- if the lcs-Event indicates a deferredmt-lrResponse then the locationEstimate
+-- and the add-locationEstimate parameters shall not be sent if the
+-- supportedGADShapes parameter had been received in ProvideSubscriberLocation-Arg
+-- and the shape encoded in locationEstimate or add-LocationEstimate was not marked
+-- as supported in supportedGADShapes. In such a case terminationCause
+-- in deferredmt-lrData shall be present with value
+-- shapeOfLocationEstimateNotSupported.
+-- If a lcs event indicates deferred mt-lr response, the lcs-Reference number shall be
+-- included.
+Deferredmt-lrData ::= SEQUENCE {
+ deferredLocationEventType DeferredLocationEventType,
+ terminationCause [0] TerminationCause OPTIONAL,
+ lcsLocationInfo [1] LCSLocationInfo OPTIONAL,
+ ...}
+
+-- lcsLocationInfo may be included only if a terminationCause is present
+-- indicating mt-lrRestart.
+LCS-Event ::= ENUMERATED {
+ emergencyCallOrigination(0), emergencyCallRelease(1), mo-lr(2), ...,
+ deferredmt-lrResponse(3)}
+
+-- exception handling:
+-- a SubscriberLocationReport-Arg containing an unrecognized LCS-Event
+-- shall be rejected by a receiver with a return error cause of unexpected data value
+TerminationCause ::= ENUMERATED {
+ normal(0), errorundefined(1), internalTimeout(2), congestion(3),
+ mt-lrRestart(4), privacyViolation(5), ...,
+ shapeOfLocationEstimateNotSupported(6)}
+
+-- mt-lrRestart shall be used to trigger the GMLC to restart the location procedure,
+-- either because the sending node knows that the terminal has moved under coverage
+-- of another MSC or SGSN (e.g. Send Identification received), or because the subscriber
+-- has been deregistered due to a Cancel Location received from HLR.
+--
+-- exception handling
+-- an unrecognized value shall be treated the same as value 1 (errorundefined)
+SubscriberLocationReport-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+END
diff --git a/MAP/asn_src/GSM/MAP-LocationServiceOperations.asn b/MAP/asn_src/GSM/MAP-LocationServiceOperations.asn
new file mode 100644
index 0000000..8075528
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-LocationServiceOperations.asn
@@ -0,0 +1,56 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-LocationServiceOperations {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-LocationServiceOperations(24)
+ version8(8)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ provideSubscriberLocation, sendRoutingInfoForLCS, subscriberLocationReport;
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported,
+ unknownSubscriber, absentSubscriber, unauthorizedRequestingNetwork,
+ unauthorizedLCSClient, positionMethodFailure, resourceLimitation,
+ unknownOrUnreachableLCSClient, unidentifiedSubscriber, illegalEquipment,
+ illegalSubscriber
+ FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Errors(10) version8(8)}
+ RoutingInfoForLCS-Arg, RoutingInfoForLCS-Res, ProvideSubscriberLocation-Arg,
+ ProvideSubscriberLocation-Res, SubscriberLocationReport-Arg,
+ SubscriberLocationReport-Res
+ FROM MAP-LCS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-LCS-DataTypes(25)
+ version8(8)};
+
+sendRoutingInfoForLCS OPERATION ::= { --Timer m
+ ARGUMENT RoutingInfoForLCS-Arg
+ RESULT RoutingInfoForLCS-Res
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported |
+ unknownSubscriber | absentSubscriber | unauthorizedRequestingNetwork}
+ CODE local:85}
+
+provideSubscriberLocation OPERATION ::= { --Timer ml
+ ARGUMENT ProvideSubscriberLocation-Arg
+ RESULT ProvideSubscriberLocation-Res
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported |
+ unidentifiedSubscriber | illegalSubscriber | illegalEquipment |
+ absentSubscriber | unauthorizedRequestingNetwork | unauthorizedLCSClient
+ | positionMethodFailure}
+ CODE local:83}
+
+subscriberLocationReport OPERATION ::= { --Timer m
+ ARGUMENT SubscriberLocationReport-Arg
+ RESULT SubscriberLocationReport-Res
+ ERRORS
+ {systemFailure | dataMissing | resourceLimitation | unexpectedDataValue |
+ unknownSubscriber | unauthorizedRequestingNetwork |
+ unknownOrUnreachableLCSClient}
+ CODE local:86}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-MS-DataTypes.asn b/MAP/asn_src/GSM/MAP-MS-DataTypes.asn
new file mode 100644
index 0000000..97e7359
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-MS-DataTypes.asn
@@ -0,0 +1,2123 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-MS-DataTypes(11) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ -- location registration types
+ UpdateLocationArg, UpdateLocationRes, CancelLocationArg, CancelLocationRes,
+ PurgeMS-Arg, PurgeMS-Res, SendIdentificationArg, SendIdentificationRes,
+ UpdateGprsLocationArg, UpdateGprsLocationRes, IST-SupportIndicator,
+ SupportedLCS-CapabilitySets,
+ -- gprs location registration types
+ GSN-Address,
+ -- handover types
+ ForwardAccessSignalling-Arg, PrepareHO-Arg, PrepareHO-Res,
+ PrepareSubsequentHO-Arg, PrepareSubsequentHO-Res,
+ ProcessAccessSignalling-Arg, SendEndSignal-Arg,
+ SendEndSignal-Res,
+ -- authentication management types
+ SendAuthenticationInfoArg, SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+ -- security management types
+ Kc,
+ -- equipment management types
+ CheckIMEI-Arg,
+ CheckIMEI-Res,
+ -- subscriber management types
+ InsertSubscriberDataArg, InsertSubscriberDataRes, LSAIdentity,
+ DeleteSubscriberDataArg, DeleteSubscriberDataRes, Ext-QoS-Subscribed,
+ SubscriberData, ODB-Data, SubscriberStatus, ZoneCodeList,
+ maxNumOfZoneCodes, O-CSI, D-CSI, O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList, SS-CSI, ServiceKey, DefaultCallHandling,
+ CamelCapabilityHandling, BasicServiceCriteria, SupportedCamelPhases,
+ OfferedCamel4CSIs, OfferedCamel4Functionalities, maxNumOfCamelTDPData,
+ CUG-Index, CUG-Info, CUG-Interlock, InterCUG-Restrictions,
+ IntraCUG-Options, NotificationToMSUser, QoS-Subscribed,
+ IST-AlertTimerValue, T-CSI, T-BcsmTriggerDetectionPoint,
+ APN,
+ -- fault recovery types
+ ResetArg, RestoreDataArg,
+ RestoreDataRes,
+ -- provide subscriber info types
+ GeographicalInformation, MS-Classmark2,
+ GPRSMSClass,
+ -- subscriber information enquiry types
+ ProvideSubscriberInfoArg, ProvideSubscriberInfoRes, SubscriberInfo,
+ LocationInformation, LocationInformationGPRS, RAIdentity, SubscriberState,
+ GPRSChargingID,
+ -- any time information enquiry types
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+ -- any time information handling types
+ AnyTimeSubscriptionInterrogationArg, AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+ -- subscriber data modification notification types
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+ -- gprs location information retrieval types
+ SendRoutingInfoForGprsArg,
+ SendRoutingInfoForGprsRes,
+ -- failure reporting types
+ FailureReportArg,
+ FailureReportRes,
+ -- gprs notification types
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+ -- Mobility Management types
+ NoteMM-EventArg, NoteMM-EventRes;
+
+IMPORTS
+ maxNumOfSS, SS-SubscriptionOption, SS-List, SS-ForBS-Code, Password
+ FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14)
+ version8(8)}
+ SS-Code
+ FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-SS-Code(15) version8(8)}
+ Ext-BearerServiceCode
+ FROM MAP-BS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-BS-Code(20) version8(8)}
+ Ext-TeleserviceCode
+ FROM MAP-TS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-TS-Code(19) version8(8)}
+ AddressString, ISDN-AddressString, ISDN-SubaddressString, FTN-AddressString,
+ AccessNetworkSignalInfo, IMSI, IMEI, TMSI, HLR-List, LMSI, Identity,
+ GlobalCellId, CellGlobalIdOrServiceAreaIdOrLAI, Ext-BasicServiceCode,
+ NAEA-PreferredCI, EMLPP-Info, MC-SS-Info, SubscriberIdentity,
+ AgeOfLocationInformation, LCSClientExternalID, LCSClientInternalID,
+ Ext-SS-Status, LCSServiceTypeID, ASCI-CallReference
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)}
+ AbsentSubscriberDiagnosticSM
+ FROM MAP-ER-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ER-DataTypes(17)
+ version8(8)};
+
+-- location registration types
+UpdateLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ msc-Number [1] ISDN-AddressString,
+ vlr-Number ISDN-AddressString,
+ lmsi [10] LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ vlr-Capability [6] VLR-Capability OPTIONAL,
+ informPreviousNetworkEntity [11] NULL OPTIONAL,
+ cs-LCS-NotSupportedByUE [12] NULL OPTIONAL}
+
+VLR-Capability ::= SEQUENCE {
+ supportedCamelPhases
+ [0] SupportedCamelPhases OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ solsaSupportIndicator [2] NULL OPTIONAL,
+ istSupportIndicator
+ [1] IST-SupportIndicator OPTIONAL,
+ superChargerSupportedInServingNetworkEntity
+ [3] SuperChargerInfo OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ supportedLCS-CapabilitySets
+ [5] SupportedLCS-CapabilitySets OPTIONAL,
+ offeredCamel4CSIs
+ [6] OfferedCamel4CSIs OPTIONAL}
+
+SuperChargerInfo ::= CHOICE {
+ sendSubscriberData [0] NULL,
+ subscriberDataStored [1] AgeIndicator}
+
+AgeIndicator ::= OCTET STRING(SIZE (1..6))
+
+-- The internal structure of this parameter is implementation specific.
+IST-SupportIndicator ::= ENUMERATED {
+ basicISTSupported(0), istCommandSupported(1), ...
+ }
+
+-- exception handling:
+-- reception of values > 1 shall be mapped to ' istCommandSupported '
+SupportedLCS-CapabilitySets ::= BIT STRING {
+ lcsCapabilitySet1(0), lcsCapabilitySet2(1), lcsCapabilitySet3(2)
+}(SIZE (2..16))
+
+-- Core network signalling capability set1 indicates LCS Release98 or Release99 version.
+-- Core network signalling capability set2 indicates LCS Release4.
+-- Core network signalling capability set3 indicates LCS Release5 or later version.
+-- A node shall mark in the BIT STRING all LCS capability sets it supports.
+-- If no bit is set then the sending node does not support LCS.
+-- If the parameter is not sent by an VLR then the VLR may support at most capability set1.
+-- If the parameter is not sent by an SGSN then no support for LCS is assumed.
+-- An SGSN is not allowed to indicate support of capability set1.
+-- Other bits than listed above shall be discarded.
+UpdateLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Identity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CancellationType ::= ENUMERATED {
+ updateProcedure(0), subscriptionWithdraw(1), ...
+ }
+
+-- The HLR shall not send values other than listed above
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Arg ::= [3] SEQUENCE {
+ imsi IMSI,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Res ::= SEQUENCE {
+ freezeTMSI [0] NULL OPTIONAL,
+ freezeP-TMSI [1] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationArg ::= SEQUENCE {
+ tmsi TMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors OPTIONAL,
+ -- within a dialogue numberOfRequestedVectors shall be present in
+ -- the first service request and shall not be present in subsequent service requests.
+ -- If received in a subsequent service request it shall be discarded.
+ segmentationProhibited NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationRes ::= [3] SEQUENCE {
+ imsi IMSI OPTIONAL,
+ -- IMSI shall be present in the first (or only) service response of a dialogue.
+ -- If multiple service requests are present in a dialogue then IMSI
+ -- shall not be present in any service response other than the first one.
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ currentSecurityContext [2] CurrentSecurityContext OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- authentication management types
+AuthenticationSetList ::= CHOICE {
+ tripletList [0] TripletList,
+ quintupletList [1] QuintupletList}
+
+TripletList ::= SEQUENCE SIZE (1..5) OF AuthenticationTriplet
+
+QuintupletList ::= SEQUENCE SIZE (1..5) OF AuthenticationQuintuplet
+
+AuthenticationTriplet ::= SEQUENCE {rand RAND,
+ sres SRES,
+ kc Kc,
+ ...}
+
+AuthenticationQuintuplet ::= SEQUENCE {
+ rand RAND,
+ xres XRES,
+ ck CK,
+ ik IK,
+ autn AUTN,
+ ...}
+
+CurrentSecurityContext ::= CHOICE {
+ gsm-SecurityContextData [0] GSM-SecurityContextData,
+ umts-SecurityContextData [1] UMTS-SecurityContextData}
+
+GSM-SecurityContextData ::= SEQUENCE {kc Kc,
+ cksn Cksn,
+ ...}
+
+UMTS-SecurityContextData ::= SEQUENCE {ck CK,
+ ik IK,
+ ksi KSI,
+ ...}
+
+RAND ::= OCTET STRING(SIZE (16))
+
+SRES ::= OCTET STRING(SIZE (4))
+
+Kc ::= OCTET STRING(SIZE (8))
+
+XRES ::= OCTET STRING(SIZE (4..16))
+
+CK ::= OCTET STRING(SIZE (16))
+
+IK ::= OCTET STRING(SIZE (16))
+
+AUTN ::= OCTET STRING(SIZE (16))
+
+AUTS ::= OCTET STRING(SIZE (14))
+
+Cksn ::= OCTET STRING(SIZE (1))
+
+-- The internal structure is defined in 3GPP TS 24.008
+KSI ::= OCTET STRING(SIZE (1))
+
+-- The internal structure is defined in 3GPP TS 24.008
+AuthenticationFailureReportArg ::= SEQUENCE {
+ imsi IMSI,
+ failureCause FailureCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ re-attempt BOOLEAN OPTIONAL,
+ accessType AccessType OPTIONAL,
+ rand RAND OPTIONAL,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL}
+
+AccessType ::= ENUMERATED {
+ call(0), emergencyCall(1), locationUpdating(2), supplementaryService(3),
+ shortMessage(4), gprsAttach(5), routingAreaUpdating(6), serviceRequest(7),
+ pdpContextActivation(8), pdpContextDeactivation(9), ...,
+ gprsDetach(10)}
+
+-- exception handling:
+-- received values greater than 10 shall be ignored.
+AuthenticationFailureReportRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FailureCause ::= ENUMERATED {wrongUserResponse(0), wrongNetworkSignature(1)}
+
+-- gprs location registration types
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ sgsn-Capability [0] SGSN-Capability OPTIONAL,
+ informPreviousNetworkEntity [1] NULL OPTIONAL,
+ ps-LCS-NotSupportedByUE [2] NULL OPTIONAL}
+
+SGSN-Capability ::= SEQUENCE {
+ solsaSupportIndicator NULL OPTIONAL,
+ extensionContainer
+ [1] ExtensionContainer OPTIONAL,
+ ...,
+ superChargerSupportedInServingNetworkEntity
+ [2] SuperChargerInfo OPTIONAL,
+ gprsEnhancementsSupportIndicator [3] NULL OPTIONAL,
+ supportedCamelPhases
+ [4] SupportedCamelPhases OPTIONAL,
+ supportedLCS-CapabilitySets
+ [5] SupportedLCS-CapabilitySets OPTIONAL,
+ offeredCamel4CSIs
+ [6] OfferedCamel4CSIs OPTIONAL}
+
+GSN-Address ::= OCTET STRING(SIZE (5..17))
+
+-- Octets are coded according to TS 3GPP TS 23.003 [17]
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- handover types
+ForwardAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ integrityProtectionInfo [0] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [1] EncryptionInformation OPTIONAL,
+ keyStatus [2] KeyStatus OPTIONAL,
+ allowedGSM-Algorithms [4] AllowedGSM-Algorithms OPTIONAL,
+ allowedUMTS-Algorithms [5] AllowedUMTS-Algorithms OPTIONAL,
+ radioResourceInformation [6] RadioResourceInformation OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ radioResourceList [7] RadioResourceList OPTIONAL,
+ bssmap-ServiceHandover [9] BSSMAP-ServiceHandover OPTIONAL,
+ ranap-ServiceHandover [8] RANAP-ServiceHandover OPTIONAL,
+ bssmap-ServiceHandoverList [10] BSSMAP-ServiceHandoverList OPTIONAL,
+ currentlyUsedCodec [11] Codec OPTIONAL,
+ availableCodecsList [12] AvailableCodecsList OPTIONAL,
+ rab-ConfigurationIndicator [13] NULL OPTIONAL}
+
+AllowedGSM-Algorithms ::= OCTET STRING(SIZE (1))
+
+-- internal structure is coded as Algorithm identifier octet from
+-- Permitted Algorithms defined in 3GPP TS 48.008
+-- A node shall mark all GSM algorithms that are allowed in MSC-B
+AllowedUMTS-Algorithms ::= SEQUENCE {
+ integrityProtectionAlgorithms
+ [0] PermittedIntegrityProtectionAlgorithms OPTIONAL,
+ encryptionAlgorithms [1] PermittedEncryptionAlgorithms OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+PermittedIntegrityProtectionAlgorithms ::=
+ OCTET STRING(SIZE (1..maxPermittedIntegrityProtectionAlgorithmsLength))
+
+-- Octets contain a complete PermittedIntegrityProtectionAlgorithms data type
+-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+-- mandated by 3GPP TS 25.413.
+-- Padding bits are included, if needed, in the least significant bits of the
+-- last octet of the octet string.
+maxPermittedIntegrityProtectionAlgorithmsLength INTEGER ::=
+ 9
+
+PermittedEncryptionAlgorithms ::=
+ OCTET STRING(SIZE (1..maxPermittedEncryptionAlgorithmsLength))
+
+-- Octets contain a complete PermittedEncryptionAlgorithms data type
+-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+-- mandated by 3GPP TS 25.413
+-- Padding bits are included, if needed, in the least significant bits of the
+-- last octet of the octet string.
+maxPermittedEncryptionAlgorithmsLength INTEGER ::=
+ 9
+
+KeyStatus ::= ENUMERATED {old(0), new(1), ...
+ }
+
+-- exception handling:
+-- received values in range 2-31 shall be treated as "old"
+-- received values greater than 31 shall be treated as "new"
+PrepareHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ ho-NumberNotRequired NULL OPTIONAL,
+ targetRNCId [1] RNCId OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multipleBearerRequested [3] NULL OPTIONAL,
+ imsi [4] IMSI OPTIONAL,
+ integrityProtectionInfo [5] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [6] EncryptionInformation OPTIONAL,
+ radioResourceInformation [7] RadioResourceInformation OPTIONAL,
+ allowedGSM-Algorithms [9] AllowedGSM-Algorithms OPTIONAL,
+ allowedUMTS-Algorithms [10] AllowedUMTS-Algorithms OPTIONAL,
+ radioResourceList [11] RadioResourceList OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ...,
+ rab-Id [12] RAB-Id OPTIONAL,
+ bssmap-ServiceHandover [13] BSSMAP-ServiceHandover OPTIONAL,
+ ranap-ServiceHandover [14] RANAP-ServiceHandover OPTIONAL,
+ bssmap-ServiceHandoverList [15] BSSMAP-ServiceHandoverList OPTIONAL,
+ asciCallReference [20] ASCI-CallReference OPTIONAL,
+ geran-classmark [16] GERAN-Classmark OPTIONAL,
+ currentlyUsedCodec [17] Codec OPTIONAL,
+ availableCodecsList [18] AvailableCodecsList OPTIONAL,
+ rab-ConfigurationIndicator [19] NULL OPTIONAL,
+ uesbi [21] UESBI OPTIONAL}
+
+BSSMAP-ServiceHandoverList ::=
+ SEQUENCE SIZE (1..maxNumOfServiceHandovers) OF BSSMAP-ServiceHandoverInfo
+
+BSSMAP-ServiceHandoverInfo ::= SEQUENCE {
+ bssmap-ServiceHandover BSSMAP-ServiceHandover,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the service handovers with the radio access bearers.
+ ...}
+
+maxNumOfServiceHandovers INTEGER ::= 7
+
+BSSMAP-ServiceHandover ::= OCTET STRING(SIZE (1))
+
+-- Octets are coded according the Service Handover information element in
+-- 3GPP TS 48.008.
+RANAP-ServiceHandover ::= OCTET STRING(SIZE (1))
+
+-- Octet contains a complete Service-Handover data type
+-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+-- mandated by 3GPP TS 25.413
+-- Padding bits are included in the least significant bits.
+RadioResourceList ::=
+ SEQUENCE SIZE (1..maxNumOfRadioResources) OF RadioResource
+
+RadioResource ::= SEQUENCE {
+ radioResourceInformation RadioResourceInformation,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the radio resources with the radio access bearers.
+ ...}
+
+maxNumOfRadioResources INTEGER ::= 7
+
+PrepareHO-Res ::= [3] SEQUENCE {
+ handoverNumber [0] ISDN-AddressString OPTIONAL,
+ relocationNumberList [1] RelocationNumberList OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multicallBearerInfo [3] MulticallBearerInfo OPTIONAL,
+ multipleBearerNotSupported NULL OPTIONAL,
+ selectedUMTS-Algorithms [5] SelectedUMTS-Algorithms OPTIONAL,
+ chosenRadioResourceInformation [6] ChosenRadioResourceInformation OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ selectedCodec [7] Codec OPTIONAL}
+
+SelectedUMTS-Algorithms ::= SEQUENCE {
+ integrityProtectionAlgorithm
+ [0] ChosenIntegrityProtectionAlgorithm OPTIONAL,
+ encryptionAlgorithm [1] ChosenEncryptionAlgorithm OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ChosenIntegrityProtectionAlgorithm ::= OCTET STRING(SIZE (1))
+
+-- Octet contains a complete IntegrityProtectionAlgorithm data type
+-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+-- mandated by 3GPP TS 25.413
+-- Padding bits are included in the least significant bits.
+ChosenEncryptionAlgorithm ::= OCTET STRING(SIZE (1))
+
+-- Octet contains a complete EncryptionAlgorithm data type
+-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+-- mandated by 3GPP TS 25.413
+-- Padding bits are included in the least significant bits.
+ChosenRadioResourceInformation ::= SEQUENCE {
+ chosenChannelInfo [0] ChosenChannelInfo OPTIONAL,
+ chosenSpeechVersion [1] ChosenSpeechVersion OPTIONAL,
+ ...}
+
+ChosenChannelInfo ::= OCTET STRING(SIZE (1))
+
+-- Octets are coded according the Chosen Channel information element in 3GPP TS 48.008
+ChosenSpeechVersion ::= OCTET STRING(SIZE (1))
+
+-- Octets are coded according the Speech Version (chosen) information element in 3GPP TS
+-- 48.008
+PrepareSubsequentHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ targetMSC-Number [1] ISDN-AddressString,
+ targetRNCId [2] RNCId OPTIONAL,
+ an-APDU [3] AccessNetworkSignalInfo OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ geran-classmark [6] GERAN-Classmark OPTIONAL,
+ rab-ConfigurationIndicator [7] NULL OPTIONAL}
+
+PrepareSubsequentHO-Res ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ProcessAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ selectedUMTS-Algorithms [1] SelectedUMTS-Algorithms OPTIONAL,
+ selectedGSM-Algorithm [2] SelectedGSM-Algorithm OPTIONAL,
+ chosenRadioResourceInformation [3] ChosenRadioResourceInformation OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...,
+ selectedCodec [5] Codec OPTIONAL}
+
+AvailableCodecsList ::= SEQUENCE {
+ utranCodecList [0] CodecList OPTIONAL,
+ geranCodecList [1] CodecList OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+CodecList ::= SEQUENCE {
+ codec1 [1] Codec,
+ codec2 [2] Codec OPTIONAL,
+ codec3 [3] Codec OPTIONAL,
+ codec4 [4] Codec OPTIONAL,
+ codec5 [5] Codec OPTIONAL,
+ codec6 [6] Codec OPTIONAL,
+ codec7 [7] Codec OPTIONAL,
+ codec8 [8] Codec OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...}
+
+-- Codecs are sent in priority order where codec1 has highest priority
+Codec ::= OCTET STRING(SIZE (1..4))
+
+-- The internal structure is defined as follows:
+-- octet 1 Coded as Codec Identification code in 3GPP TS 26.103
+-- octets 2,3,4 Parameters for the Codec as defined in 3GPP TS
+-- 26.103, if available, length depending on the codec
+GERAN-Classmark ::= OCTET STRING(SIZE (2..87))
+
+-- Octets are coded according the GERAN Classmark information element in 3GPP TS 48.008
+SelectedGSM-Algorithm ::= OCTET STRING(SIZE (1))
+
+-- internal structure is coded as Algorithm identifier octet from Chosen Encryption
+-- Algorithm defined in 3GPP TS 48.008
+-- A node shall mark only the selected GSM algorithm
+SendEndSignal-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Res ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RNCId ::= OCTET STRING(SIZE (7))
+
+-- The internal structure is defined as follows:
+-- octet 1 bits 4321 Mobile Country Code 1st digit
+-- bits 8765 Mobile Country Code 2nd digit
+-- octet 2 bits 4321 Mobile Country Code 3rd digit
+-- bits 8765 Mobile Network Code 3rd digit
+-- or filler (1111) for 2 digit MNCs
+-- octet 3 bits 4321 Mobile Network Code 1st digit
+-- bits 8765 Mobile Network Code 2nd digit
+-- octets 4 and 5 Location Area Code according to 3GPP TS 24.008
+-- octets 6 and 7 RNC Id value according to 3GPP TS 25.413
+RelocationNumberList ::=
+ SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF RelocationNumber
+
+MulticallBearerInfo ::= INTEGER(1..maxNumOfRelocationNumber)
+
+RelocationNumber ::= SEQUENCE {
+ handoverNumber ISDN-AddressString,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the calls with the radio access bearers.
+ ...}
+
+RAB-Id ::= INTEGER(1..maxNrOfRABs)
+
+maxNrOfRABs INTEGER ::= 255
+
+maxNumOfRelocationNumber INTEGER ::= 7
+
+RadioResourceInformation ::= OCTET STRING(SIZE (3..13))
+
+-- Octets are coded according the Channel Type information element in 3GPP TS 48.008
+IntegrityProtectionInformation ::=
+ OCTET STRING(SIZE (18..maxNumOfIntegrityInfo))
+
+-- Octets contain a complete IntegrityProtectionInformation data type
+-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+-- mandated by 3GPP TS 25.413
+-- Padding bits are included, if needed, in the least significant bits of the
+-- last octet of the octet string.
+maxNumOfIntegrityInfo INTEGER ::=
+ 100
+
+EncryptionInformation ::= OCTET STRING(SIZE (18..maxNumOfEncryptionInfo))
+
+-- Octets contain a complete EncryptionInformation data type
+-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+-- mandated by 3GPP TS 25.413
+-- Padding bits are included, if needed, in the least significant bits of the
+-- last octet of the octet string.
+maxNumOfEncryptionInfo INTEGER ::=
+ 100
+
+-- authentication management types
+SendAuthenticationInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors,
+ segmentationProhibited NULL OPTIONAL,
+ immediateResponsePreferred [1] NULL OPTIONAL,
+ re-synchronisationInfo Re-synchronisationInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ requestingNodeType [3] RequestingNodeType OPTIONAL}
+
+NumberOfRequestedVectors ::= INTEGER(1..5)
+
+Re-synchronisationInfo ::= SEQUENCE {rand RAND,
+ auts AUTS,
+ ...}
+
+SendAuthenticationInfoRes ::= [3] SEQUENCE {
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RequestingNodeType ::= ENUMERATED {vlr(0), sgsn(1), ...
+ }
+
+-- exception handling:
+-- received values in the range 2-15 shall be treated as "vlr"
+-- received values greater than 15 shall be treated as "sgsn"
+-- equipment management types
+CheckIMEI-Arg ::= SEQUENCE {
+ imei IMEI,
+ requestedEquipmentInfo RequestedEquipmentInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CheckIMEI-Res ::= SEQUENCE {
+ equipmentStatus EquipmentStatus OPTIONAL,
+ bmuef UESBI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedEquipmentInfo ::= BIT STRING {equipmentStatus(0), bmuef(1)
+}(SIZE (2..8))
+
+-- exception handling: reception of unknown bit assignments in the
+-- RequestedEquipmentInfo data type shall be discarded by the receiver
+UESBI ::= OCTET STRING(SIZE (10))
+
+-- Octets are coded according the UESBI information element in 3GPP TS 25.413.
+EquipmentStatus ::= ENUMERATED {whiteListed(0), blackListed(1), greyListed(2)
+}
+
+-- subscriber management types
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ COMPONENTS OF SubscriberData,
+ extensionContainer
+ [14] ExtensionContainer OPTIONAL,
+ ...,
+ naea-PreferredCI
+ [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData
+ [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL OPTIONAL,
+ networkAccessMode
+ [24] NetworkAccessMode OPTIONAL,
+ lsaInformation
+ [25] LSAInformation OPTIONAL,
+ lmu-Indicator [21] NULL OPTIONAL,
+ lcsInformation
+ [22] LCSInformation OPTIONAL,
+ istAlertTimer
+ [26] IST-AlertTimerValue OPTIONAL,
+ superChargerSupportedInHLR
+ [27] AgeIndicator OPTIONAL,
+ mc-SS-Info [28] MC-SS-Info OPTIONAL,
+ cs-AllocationRetentionPriority
+ [29] CS-AllocationRetentionPriority OPTIONAL,
+ sgsn-CAMEL-SubscriptionInfo
+ [17] SGSN-CAMEL-SubscriptionInfo OPTIONAL,
+ chargingCharacteristics
+ [18] ChargingCharacteristics OPTIONAL}
+
+-- If the Network Access Mode parameter is sent, it shall be present only in
+-- the first sequence if seqmentation is used
+CS-AllocationRetentionPriority ::= OCTET STRING(SIZE (1))
+
+-- This data type encodes each priority level defined in TS 23.107 as the binary value
+-- of the priority level.
+IST-AlertTimerValue ::= INTEGER(15..255)
+
+LCSInformation ::= SEQUENCE {
+ gmlc-List [0] GMLC-List OPTIONAL,
+ lcs-PrivacyExceptionList [1] LCS-PrivacyExceptionList OPTIONAL,
+ molr-List [2] MOLR-List OPTIONAL,
+ ...,
+ add-lcs-PrivacyExceptionList [3] LCS-PrivacyExceptionList OPTIONAL}
+
+-- add-lcs-PrivacyExceptionList may be sent only if lcs-PrivacyExceptionList is
+-- present and contains four instances of LCS-PrivacyClass. If the mentioned condition
+-- is not satisfied the receiving node shall discard add-lcs-PrivacyExceptionList.
+-- If an LCS-PrivacyClass is received both in lcs-PrivacyExceptionList and in
+-- add-lcs-PrivacyExceptionList with the same SS-Code, then the error unexpected
+-- data value shall be returned.
+GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF ISDN-AddressString
+
+-- if segmentation is used, the complete GMLC-List shall be sent in one segment
+maxNumOfGMLC INTEGER ::=
+ 5
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN(0), onlyMSC(1), onlySGSN(2), ...
+ }
+
+-- if unknown values are received in NetworkAccessMode
+-- they shall be discarded.
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ...,
+ ext-QoS-Subscribed [0] Ext-QoS-Subscribed OPTIONAL,
+ pdp-ChargingCharacteristics [1] ChargingCharacteristics OPTIONAL}
+
+ContextId ::= INTEGER(1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE {
+ gprs-CSI [0] GPRS-CSI OPTIONAL,
+ mo-sms-CSI [1] SMS-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ mt-sms-CSI [3] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [4] MT-smsCAMELTDP-CriteriaList OPTIONAL,
+ mg-csi [5] MG-CSI OPTIONAL}
+
+GPRS-CSI ::= SEQUENCE {
+ gprs-CamelTDPDataList [0] GPRS-CamelTDPDataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+
+-- notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- GPRS-CamelTDPData and camelCapabilityHandling shall be present in
+-- the GPRS-CSI sequence.
+-- If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be
+-- present in the first segment
+GPRS-CamelTDPDataList ::=
+ SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF GPRS-CamelTDPData
+
+-- GPRS-CamelTDPDataList shall not contain more than one instance of
+-- GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint.
+GPRS-CamelTDPData ::= SEQUENCE {
+ gprs-TriggerDetectionPoint [0] GPRS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSessionHandling [3] DefaultGPRS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction(0), releaseTransaction(1), ...
+ }
+
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+GPRS-TriggerDetectionPoint ::= ENUMERATED {
+ attach(1), attachChangeOfPosition(2), pdp-ContextEstablishment(11),
+ pdp-ContextEstablishmentAcknowledgement(12), pdp-ContextChangeOfPosition(14),
+ ...
+ }
+
+-- exception handling:
+-- For GPRS-CamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- GPRS-CamelTDPDatasequence.
+APN ::= OCTET STRING(SIZE (2..63))
+
+-- Octets are coded according to TS 3GPP TS 23.003 [17]
+PDP-Type ::= OCTET STRING(SIZE (2))
+
+-- Octets are coded according to TS 3GPP TS 29.060 [105]
+PDP-Address ::= OCTET STRING(SIZE (1..16))
+
+-- Octets are coded according to TS 3GPP TS 29.060 [105]
+-- The possible size values are:
+-- 1-7 octets X.25 address type
+-- 4 octets IPv4 address type
+-- 16 octets Ipv6 address type
+QoS-Subscribed ::= OCTET STRING(SIZE (3))
+
+-- Octets are coded according to TS 3GPP TS 24.008 [35] Quality of Service Octets
+-- 3-5.
+Ext-QoS-Subscribed ::= OCTET STRING(SIZE (1..9))
+
+-- OCTET 1:
+-- Allocation/Retention Priority (This octet encodes each priority level defined in
+-- 23.107 as the binary value of the priority level, declaration in 29.060)
+-- Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
+-- 6-13.
+ChargingCharacteristics ::= OCTET STRING(SIZE (2))
+
+-- Octets are coded according to 3GPP TS 32.015.
+LSAOnlyAccessIndicator ::= ENUMERATED {
+ accessOutsideLSAsAllowed(0), accessOutsideLSAsRestricted(1)}
+
+LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF LSAData
+
+maxNumOfLSAs INTEGER ::= 20
+
+LSAData ::= SEQUENCE {
+ lsaIdentity [0] LSAIdentity,
+ lsaAttributes [1] LSAAttributes,
+ lsaActiveModeIndicator [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAInformation ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ lsaOnlyAccessIndicator [1] LSAOnlyAccessIndicator OPTIONAL,
+ lsaDataList [2] LSADataList OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAIdentity ::= OCTET STRING(SIZE (3))
+
+-- Octets are coded according to TS 3GPP TS 23.003 [17]
+LSAAttributes ::= OCTET STRING(SIZE (1))
+
+-- Octets are coded according to TS 3GPP TS 48.008 [49]
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 8.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 8.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo
+ [13] VlrCamelSubscriptionInfo OPTIONAL}
+
+Category ::= OCTET STRING(SIZE (1))
+
+-- The internal structure is defined in ITU-T Rec Q.763.
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted(0), operatorDeterminedBarring(1)}
+
+BearerServiceList ::=
+ SEQUENCE SIZE (1..maxNumOfBearerServices) OF Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::=
+ SEQUENCE SIZE (1..maxNumOfTeleservices) OF Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred(0), internationalOGCallsBarred(1),
+ internationalOGCallsNotToHPLMN-CountryBarred(2), interzonalOGCallsBarred(6),
+ interzonalOGCallsNotToHPLMN-CountryBarred(7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred(8),
+ premiumRateInformationOGCallsBarred(3),
+ premiumRateEntertainementOGCallsBarred(4), ss-AccessBarred(5),
+ allECT-Barred(9), chargeableECT-Barred(10), internationalECT-Barred(11),
+ interzonalECT-Barred(12), doublyChargeableECT-Barred(13),
+ multipleECT-Barred(14), allPacketOrientedServicesBarred(15),
+ roamerAccessToHPLMN-AP-Barred(16), roamerAccessToVPLMN-AP-Barred(17),
+ roamingOutsidePLMNOG-CallsBarred(18), allIC-CallsBarred(19),
+ roamingOutsidePLMNIC-CallsBarred(20),
+ roamingOutsidePLMNICountryIC-CallsBarred(21), roamingOutsidePLMN-Barred(22),
+ roamingOutsidePLMN-CountryBarred(23), registrationAllCF-Barred(24),
+ registrationCFNotToHPLMN-Barred(25), registrationInterzonalCF-Barred(26),
+ registrationInterzonalCFNotToHPLMN-Barred(27),
+ registrationInternationalCF-Barred(28)}(SIZE (15..32))
+
+-- exception handling: reception of unknown bit assignments in the
+-- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+-- When the ODB-GeneralData type is removed from the HLR for a given subscriber,
+-- in NoteSubscriberDataModified operation sent toward the gsmSCF
+-- all bits shall be set to “O“.
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1(0), plmn-SpecificBarringType2(1),
+ plmn-SpecificBarringType3(2), plmn-SpecificBarringType4(3)}(SIZE (4..32))
+
+-- exception handling: reception of unknown bit assignments in the
+-- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+-- When the ODB-HPLMN-Data type is removed from the HLR for a given subscriber,
+-- in NoteSubscriberDataModified operation sent toward the gsmSCF
+-- all bits shall be set to “O“.
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [10] FTN-AddressString OPTIONAL}
+
+Ext-ForwOptions ::= OCTET STRING(SIZE (1..5))
+
+-- OCTET 1:
+-- bit 8: notification to forwarding party
+-- 0 no notification
+-- 1 notification
+-- bit 7: redirecting presentation
+-- 0 no presentation
+-- 1 presentation
+-- bit 6: notification to calling party
+-- 0 no notification
+-- 1 notification
+-- bit 5: 0 (unused)
+-- bits 43: forwarding reason
+-- 00 ms not reachable
+-- 01 ms busy
+-- 10 no reply
+-- 11 unconditional
+-- bits 21: 00 (unused)
+-- OCTETS 2-5: reserved for future use. They shall be discarded if
+-- received and not understood.
+Ext-NoRepCondTime ::= INTEGER(1..100)
+
+-- Only values 5-30 are used.
+-- Values in the ranges 1-4 and 31-100 are reserved for future use
+-- If received:
+-- values 1-4 shall be mapped on to value 5
+-- values 31-100 shall be mapped on to value 30
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER(0..32767)
+
+-- The internal structure is defined in ETS 300 138.
+CUG-Interlock ::= OCTET STRING(SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions(0), cugIC-CallBarred(1), cugOG-CallBarred(2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF CUG-Feature
+
+Ext-BasicServiceGroupList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions ::= OCTET STRING(SIZE (1))
+
+-- bits 876543: 000000 (unused)
+-- Exception handling:
+-- bits 876543 shall be ignored if received and not understood
+-- bits 21
+-- 00 CUG only facilities
+-- 01 CUG with outgoing access
+-- 10 CUG with incoming access
+-- 11 CUG with both outgoing and incoming access
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+LCS-PrivacyExceptionList ::=
+ SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF LCS-PrivacyClass
+
+maxNumOfPrivacyClass INTEGER ::= 4
+
+LCS-PrivacyClass ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ notificationToMSUser [0] NotificationToMSUser OPTIONAL,
+ -- notificationToMSUser may be sent only for SS-codes callSessionRelated
+ -- and callSessionUnrelated. If not received for SS-codes callSessionRelated
+ -- and callSessionUnrelated,
+ -- the default values according to 3GPP TS 23.271 shall be assumed.
+ externalClientList [1] ExternalClientList OPTIONAL,
+ -- externalClientList may be sent only for SS-code callSessionUnrelated to a
+ -- visited node that does not support LCS Release 4 or later versions.
+ -- externalClientList may be sent only for SS-codes callSessionUnrelated and
+ -- callSessionRelated to a visited node that supports LCS Release 4 or later versions.
+ plmnClientList [2] PLMNClientList OPTIONAL,
+ -- plmnClientList may be sent only for SS-code plmnoperator.
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ ext-externalClientList [4] Ext-ExternalClientList OPTIONAL,
+ -- Ext-externalClientList may be sent only if the visited node supports LCS Release 4 or
+ -- later versions, the user did specify more than 5 clients, and White Book SCCP is used.
+ serviceTypeList [5] ServiceTypeList OPTIONAL}
+ -- serviceTypeList may be sent only for SS-code serviceType and if the visited node
+ -- supports LCS Release 5 or later versions.
+ --
+ -- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment
+
+ExternalClientList ::=
+ SEQUENCE SIZE (0..maxNumOfExternalClient) OF ExternalClient
+
+maxNumOfExternalClient INTEGER ::= 5
+
+PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF LCSClientInternalID
+
+maxNumOfPLMNClient INTEGER ::= 5
+
+Ext-ExternalClientList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-ExternalClient) OF ExternalClient
+
+maxNumOfExt-ExternalClient INTEGER ::= 35
+
+ExternalClient ::= SEQUENCE {
+ clientIdentity LCSClientExternalID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ -- If notificationToMSUser is not received, the default value according to
+ -- 3GPP TS 23.271 shall be assumed.
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+GMLC-Restriction ::= ENUMERATED {gmlc-List(0), home-Country(1), ...
+ }
+
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- GMLC-Restriction.
+NotificationToMSUser ::= ENUMERATED {
+ notifyLocationAllowed(0), notifyAndVerify-LocationAllowedIfNoResponse(1),
+ notifyAndVerify-LocationNotAllowedIfNoResponse(2), ...,
+ locationNotAllowed(3)}
+
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- NotificationToMSUser.
+ServiceTypeList ::= SEQUENCE SIZE (1..maxNumOfServiceType) OF ServiceType
+
+maxNumOfServiceType INTEGER ::= 32
+
+ServiceType ::= SEQUENCE {
+ serviceTypeIdentity LCSServiceTypeID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ -- If notificationToMSUser is not received, the default value according to
+ -- 3GPP TS 23.271 shall be assumed.
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF MOLR-Class
+
+maxNumOfMOLR-Class INTEGER ::= 3
+
+MOLR-Class ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes) OF ZoneCode
+
+ZoneCode ::= OCTET STRING(SIZE (2))
+
+-- internal structure is defined in TS 3GPP TS 23.003 [17]
+maxNumOfZoneCodes INTEGER ::=
+ 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...,
+ offeredCamel4CSIs [8] OfferedCamel4CSIs OPTIONAL}
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted(0), tooManyZoneCodes(1), zoneCodesConflict(2),
+ regionalSubscNotSupported(3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList
+ [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer
+ [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw
+ [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL,
+ lsaInformationWithdraw
+ [12] LSAInformationWithdraw OPTIONAL,
+ gmlc-ListWithdraw [13] NULL OPTIONAL,
+ istInformationWithdraw [14] NULL OPTIONAL,
+ specificCSI-Withdraw
+ [15] SpecificCSI-Withdraw OPTIONAL}
+
+SpecificCSI-Withdraw ::= BIT STRING {
+ o-csi(0), ss-csi(1), tif-csi(2), d-csi(3), vt-csi(4), mo-sms-csi(5),
+ m-csi(6), gprs-csi(7), t-csi(8), mt-sms-csi(9), mg-csi(10), o-IM-CSI(11),
+ d-IM-CSI(12), vt-IM-CSI(13)}(SIZE (8..32))
+
+-- exception handling:
+-- bits 11 to 31 shall be ignored if received by a non-IP Multimedia Core Network entity.
+-- bits 0-10 and 14-31 shall be ignored if received by an IP Multimedia Core Network entity.
+-- bits 11-13 are only applicable in an IP Multimedia Core Network.
+-- Bit 8 and bits 11-13 are only applicable for the NoteSubscriberDataModified operation.
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF ContextId
+
+LSAInformationWithdraw ::= CHOICE {
+ allLSAData NULL,
+ lsaIdentityList LSAIdentityList}
+
+LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF LSAIdentity
+
+BasicServiceList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServices) OF Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [4] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ tif-CSI [3] NULL OPTIONAL,
+ m-CSI [5] M-CSI OPTIONAL,
+ mo-sms-CSI [6] SMS-CSI OPTIONAL,
+ vt-CSI [7] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [8] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-CSI [9] D-CSI OPTIONAL,
+ mt-sms-CSI [10] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [11] MT-smsCAMELTDP-CriteriaList OPTIONAL}
+
+MT-smsCAMELTDP-CriteriaList ::=
+ SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF MT-smsCAMELTDP-Criteria
+
+MT-smsCAMELTDP-Criteria ::= SEQUENCE {
+ sms-TriggerDetectionPoint SMS-TriggerDetectionPoint,
+ tpdu-TypeCriterion [0] TPDU-TypeCriterion OPTIONAL,
+ ...}
+
+TPDU-TypeCriterion ::= SEQUENCE SIZE (1..maxNumOfTPDUTypes) OF MT-SMS-TPDU-Type
+
+maxNumOfTPDUTypes INTEGER ::= 5
+
+MT-SMS-TPDU-Type ::= ENUMERATED {
+ sms-DELIVER(0), sms-SUBMIT-REPORT(1), sms-STATUS-REPORT(2), ...
+ }
+
+-- exception handling:
+-- For TPDU-TypeCriterion sequences containing this parameter with any
+-- other value than the ones listed above the receiver shall ignore
+-- the whole TPDU-TypeCriterion sequence.
+-- In CAMEL phase 4, sms-SUBMIT-REPORT shall not be used and a received TPDU-TypeCriterion
+-- sequence containing sms-SUBMIT-REPORT shall be wholly ignored.
+D-CSI ::= SEQUENCE {
+ dp-AnalysedInfoCriteriaList [0] DP-AnalysedInfoCriteriaList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+
+-- notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- DP-AnalysedInfoCriteria and camelCapabilityHandling shall be present in
+-- the D-CSI sequence.
+-- If D-CSI is segmented, dp-AnalysedInfoCriteriaList and camelCapabilityHandling shall be
+-- present in the first segment
+DP-AnalysedInfoCriteriaList ::=
+ SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF
+ DP-AnalysedInfoCriterium
+
+maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10
+
+DP-AnalysedInfoCriterium ::= SEQUENCE {
+ dialledNumber ISDN-AddressString,
+ serviceKey ServiceKey,
+ gsmSCF-Address ISDN-AddressString,
+ defaultCallHandling DefaultCallHandling,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ notificationToCSE [0] NULL OPTIONAL,
+ csi-Active [1] NULL OPTIONAL}
+ -- notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR.
+ -- They may only be included in ATSI/ATM ack/NSDC message.
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+
+-- Actions for the following SS-Code values are defined in CAMEL Phase 3:
+-- ect SS-Code ::= '00110001'B
+-- multiPTY SS-Code ::= '01010001'B
+-- cd SS-Code ::= '00100100'B
+-- ccbs SS-Code ::= '01000100'B
+-- all other SS codes shall be ignored
+-- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs.
+-- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the
+-- ccbs marking in SS-CSI.
+maxNumOfCamelSSEvents INTEGER ::=
+ 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csiActive [2] NULL OPTIONAL}
+
+-- notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- O-CSI shall not be segmented.
+O-BcsmCamelTDPDataList ::=
+ SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF O-BcsmCamelTDPData
+
+-- O-BcsmCamelTDPDataList shall not contain more than one instance of
+-- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint.
+-- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed
+-- with o-BcsmTriggerDetectionPoint being equal to DP2.
+maxNumOfCamelTDPData INTEGER ::=
+ 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ServiceKey ::= INTEGER(0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo(2), ...,
+ routeSelectFailure(4)}
+
+-- exception handling:
+-- For O-BcsmCamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- O-BcsmCamelTDPDatasequence.
+-- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- O-BcsmCamelTDP-Criteria sequence.
+O-BcsmCamelTDPCriteriaList ::=
+ SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF O-BcsmCamelTDP-Criteria
+
+T-BCSM-CAMEL-TDP-CriteriaList ::=
+ SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF T-BCSM-CAMEL-TDP-Criteria
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ...,
+ o-CauseValueCriteria [3] O-CauseValueCriteria OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL}
+
+T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE {
+ t-BCSM-TriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ basicServiceCriteria [0] BasicServiceCriteria OPTIONAL,
+ t-CauseValueCriteria [1] T-CauseValueCriteria OPTIONAL,
+ ...}
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ -- one or both of destinationNumberList and destinationNumberLengthList
+ -- shall be present
+ ...}
+
+DestinationNumberList ::=
+ SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF ISDN-AddressString
+
+-- The receiving entity shall not check the format of a number in
+-- the dialled number list
+DestinationNumberLengthList ::=
+ SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths) OF
+ INTEGER(1..maxNumOfISDN-AddressDigits)
+
+BasicServiceCriteria ::=
+ SEQUENCE SIZE (1..maxNumOfCamelBasicServiceCriteria) OF Ext-BasicServiceCode
+
+maxNumOfISDN-AddressDigits INTEGER ::= 15
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {forwarded(0), notForwarded(1)}
+
+MatchType ::= ENUMERATED {inhibiting(0), enabling(1)}
+
+O-CauseValueCriteria ::=
+ SEQUENCE SIZE (1..maxNumOfCAMEL-O-CauseValueCriteria) OF CauseValue
+
+T-CauseValueCriteria ::=
+ SEQUENCE SIZE (1..maxNumOfCAMEL-T-CauseValueCriteria) OF CauseValue
+
+maxNumOfCAMEL-O-CauseValueCriteria INTEGER ::= 5
+
+maxNumOfCAMEL-T-CauseValueCriteria INTEGER ::= 5
+
+CauseValue ::= OCTET STRING(SIZE (1))
+
+-- Type extracted from Cause parameter in ITU-T Recommendation Q.763.
+-- For the use of cause value refer to ITU-T Recommendation Q.850.
+DefaultCallHandling ::= ENUMERATED {continueCall(0), releaseCall(1), ...
+ }
+
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueCall"
+-- reception of values greater than 31 shall be treated as "releaseCall"
+CamelCapabilityHandling ::= INTEGER(1..16)
+
+-- value 1 = CAMEL phase 1,
+-- value 2 = CAMEL phase 2,
+-- value 3 = CAMEL Phase 3,
+-- value 4 = CAMEL phase 4:
+-- reception of values greater than 4 shall be treated as CAMEL phase 4.
+SupportedCamelPhases ::= BIT STRING {phase1(0), phase2(1), phase3(2), phase4(3)
+}(SIZE (1..16))
+
+-- A node shall mark in the BIT STRING all CAMEL Phases it supports.
+-- Other values than listed above shall be discarded.
+OfferedCamel4CSIs ::= BIT STRING {
+ o-csi(0), d-csi(1), vt-csi(2), t-csi(3), mt-sms-csi(4), mg-csi(5),
+ psi-enhancements(6)}(SIZE (7..16))
+
+-- A node supporting Camel phase 4 shall mark in the BIT STRING all Camel4 CSIs
+-- it offers.
+-- Other values than listed above shall be discarded.
+OfferedCamel4Functionalities ::= BIT STRING {
+ initiateCallAttempt(0), splitLeg(1), moveLeg(2), disconnectLeg(3),
+ entityReleased(4), dfc-WithArgument(5), playTone(6), dtmf-MidCall(7),
+ chargingIndicator(8), alertingDP(9), locationAtAlerting(10),
+ changeOfPositionDP(11), or-Interactions(12), warningToneEnhancements(13),
+ cf-Enhancements(14)}(SIZE (15..32))
+
+-- A node supporting Camel phase 4 shall mark in the BIT STRING all Camel4
+-- functionalities it offers.
+-- Other values than listed above shall be discarded.
+SMS-CSI ::= SEQUENCE {
+ sms-CAMEL-TDP-DataList [0] SMS-CAMEL-TDP-DataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+
+-- notificationToCSE and csi-Active shall not be present
+-- when MO-SMS-CSI or MT-SMS-CSI is sent to VLR or SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- SMS-CAMEL-TDP-Data and camelCapabilityHandling shall be present in
+-- the SMS-CSI sequence.
+-- If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be
+-- present in the first segment
+SMS-CAMEL-TDP-DataList ::=
+ SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF SMS-CAMEL-TDP-Data
+
+-- SMS-CAMEL-TDP-DataList shall not contain more than one instance of
+-- SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint.
+SMS-CAMEL-TDP-Data ::= SEQUENCE {
+ sms-TriggerDetectionPoint [0] SMS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSMS-Handling [3] DefaultSMS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+SMS-TriggerDetectionPoint ::= ENUMERATED {
+ sms-CollectedInfo(1), ...,
+ sms-DeliveryRequest(2)}
+
+-- exception handling:
+-- For SMS-CAMEL-TDP-Data and MT-smsCAMELTDP-Criteria sequences containing this
+-- parameter with any other value than the ones listed the receiver shall ignore
+-- the whole sequence.
+--
+-- If this parameter is received with any other value than sms-CollectedInfo
+-- in an SMS-CAMEL-TDP-Data sequence contained in mo-sms-CSI, then the receiver shall
+-- ignore the whole SMS-CAMEL-TDP-Data sequence.
+--
+-- If this parameter is received with any other value than sms-DeliveryRequest
+-- in an SMS-CAMEL-TDP-Data sequence contained in mt-sms-CSI then the receiver shall
+-- ignore the whole SMS-CAMEL-TDP-Data sequence.
+--
+-- If this parameter is received with any other value than sms-DeliveryRequest
+-- in an MT-smsCAMELTDP-Criteria sequence then the receiver shall
+-- ignore the whole MT-smsCAMELTDP-Criteria sequence.
+DefaultSMS-Handling ::= ENUMERATED {
+ continueTransaction(0), releaseTransaction(1), ...
+ }
+
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+M-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+
+-- notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+MG-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+
+-- notificationToCSE and csi-Active shall not be present when MG-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+MobilityTriggers ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF MM-Code
+
+maxNumOfMobilityTriggers INTEGER ::= 10
+
+MM-Code ::= OCTET STRING(SIZE (1))
+
+-- This type is used to indicate a Mobility Management event.
+-- Actions for the following MM-Code values are defined in CAMEL Phase 4:
+--
+-- CS domain MM events:
+-- Location-update-in-same-VLR MM-Code ::= '00000000'B
+-- Location-update-to-other-VLR MM-Code ::= '00000001'B
+-- IMSI-Attach MM-Code ::= '00000010'B
+-- MS-initiated-IMSI-Detach MM-Code ::= '00000011'B
+-- Network-initiated-IMSI-Detach MM-Code ::= '00000100'B
+--
+-- PS domain MM events:
+-- Routeing-Area-update-in-same-SGSN MM-Code ::= '10000000'B
+-- Routeing-Area-update-to-other-SGSN-update-from-new-SGSN
+-- MM-Code ::= '10000001'B
+-- Routeing-Area-update-to-other-SGSN-disconnect-by-detach
+-- MM-Code ::= '10000010'B
+-- GPRS-Attach MM-Code ::= '10000011'B
+-- MS-initiated-GPRS-Detach MM-Code ::= '10000100'B
+-- Network-initiated-GPRS-Detach MM-Code ::= '10000101'B
+-- Network-initiated-transfer-to-MS-not-reachable-for-paging
+-- MM-Code ::= '10000110'B
+--
+-- If the MSC receives any other MM-code than the ones listed above for the
+-- CS domain, then the MSC shall ignore that MM-code.
+-- If the SGSN receives any other MM-code than the ones listed above for the
+-- PS domain, then the SGSN shall ignore that MM-code.
+T-CSI ::= SEQUENCE {
+ t-BcsmCamelTDPDataList T-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csi-Active [2] NULL OPTIONAL}
+
+-- notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent
+-- to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- T-CSI shall not be segmented.
+T-BcsmCamelTDPDataList ::=
+ SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF T-BcsmCamelTDPData
+
+--= T-BcsmCamelTDPDataList shall not contain more than one instance of
+--= T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint.
+--= For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is allowed
+--= with t-BcsmTriggerDetectionPoint being equal to DP12.
+--= For CAMEL Phase 3, more TDP’s are allowed.
+T-BcsmCamelTDPData ::= SEQUENCE {
+ t-BcsmTriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+T-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ termAttemptAuthorized(12), ...,
+ tBusy(13), tNoAnswer(14)}
+
+-- exception handling:
+-- For T-BcsmCamelTDPData sequences containing this parameter with any other
+-- value than the ones listed above, the receiver shall ignore the whole
+-- T-BcsmCamelTDPData sequence.
+-- gprs location information retrieval types
+SendRoutingInfoForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Address [1] GSN-Address OPTIONAL,
+ ggsn-Number [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+SendRoutingInfoForGprsRes ::= SEQUENCE {
+ sgsn-Address [0] GSN-Address,
+ ggsn-Address [1] GSN-Address OPTIONAL,
+ mobileNotReachableReason [2] AbsentSubscriberDiagnosticSM OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- failure report types
+FailureReportArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Number [1] ISDN-AddressString,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+FailureReportRes ::= SEQUENCE {
+ ggsn-Address [0] GSN-Address OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+-- gprs notification types
+NoteMsPresentForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ sgsn-Address [1] GSN-Address,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMsPresentForGprsRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+-- fault recovery types
+ResetArg ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ hlr-List HLR-List OPTIONAL,
+ ...}
+
+RestoreDataArg ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ vlr-Capability [6] VLR-Capability OPTIONAL}
+
+RestoreDataRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ msNotReachable NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- VBS/VGCS types
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= OCTET STRING(SIZE (3))
+
+-- Refers to the Group Identification as specified in GSM TS 03.03
+-- and 03.68/ 03.69
+-- provide subscriber info types
+ProvideSubscriberInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI OPTIONAL,
+ requestedInfo [2] RequestedInfo,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ProvideSubscriberInfoRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubscriberInfo ::= SEQUENCE {
+ locationInformation [0] LocationInformation OPTIONAL,
+ subscriberState [1] SubscriberState OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ locationInformationGPRS [3] LocationInformationGPRS OPTIONAL,
+ ps-SubscriberState [4] PS-SubscriberState OPTIONAL,
+ imei [5] IMEI OPTIONAL,
+ ms-Classmark2 [6] MS-Classmark2 OPTIONAL,
+ gprs-MS-Class [7] GPRSMSClass OPTIONAL}
+
+-- If the HLR receives locationInformation, subscriberState or ms-Classmark2 from an SGSN
+-- it shall discard them.
+-- If the HLR receives locationInformationGPRS, ps-SubscriberState or gprs-MS-Class from
+-- a VLR it shall discard them.
+-- If the HLR receives parameters which it has not requested, it shall discard them.
+MS-Classmark2 ::= OCTET STRING(SIZE (3))
+
+-- This parameter carries the value part of the MS Classmark 2 IE defined in
+-- 3GPP TS 24.008 [35].
+GPRSMSClass ::= SEQUENCE {
+ mSNetworkCapability [0] MSNetworkCapability,
+ mSRadioAccessCapability [1] MSRadioAccessCapability OPTIONAL}
+
+MSNetworkCapability ::= OCTET STRING(SIZE (1..8))
+
+-- This parameter carries the value part of the MS Network Capability IE defined in
+-- 3GPP TS 24.008 [35].
+MSRadioAccessCapability ::= OCTET STRING(SIZE (1..50))
+
+-- This parameter carries the value part of the MS Radio Access Capability IE defined in
+-- 3GPP TS 24.008 [35].
+RequestedInfo ::= SEQUENCE {
+ locationInformation [0] NULL OPTIONAL,
+ subscriberState [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ currentLocation [3] NULL OPTIONAL,
+ requestedDomain [4] DomainType OPTIONAL,
+ imei [6] NULL OPTIONAL,
+ ms-classmark [5] NULL OPTIONAL}
+
+-- currentLocation shall be absent if locationInformation is absent
+DomainType ::= ENUMERATED {cs-Domain(0), ps-Domain(1), ...
+ }
+
+-- exception handling:
+-- reception of values > 1 shall be mapped to 'cs-Domain'
+LocationInformation ::= SEQUENCE {
+ ageOfLocationInformation AgeOfLocationInformation OPTIONAL,
+ geographicalInformation [0] GeographicalInformation OPTIONAL,
+ vlr-number [1] ISDN-AddressString OPTIONAL,
+ locationNumber [2] LocationNumber OPTIONAL,
+ cellGlobalIdOrServiceAreaIdOrLAI
+ [3] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ selectedLSA-Id [5] LSAIdentity OPTIONAL,
+ msc-Number [6] ISDN-AddressString OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ sai-Present [9] NULL OPTIONAL}
+
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present
+-- if the location information were retrieved after a successfull paging.
+LocationInformationGPRS ::= SEQUENCE {
+ cellGlobalIdOrServiceAreaIdOrLAI
+ [0] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ routeingAreaIdentity [1] RAIdentity OPTIONAL,
+ geographicalInformation [2] GeographicalInformation OPTIONAL,
+ sgsn-Number [3] ISDN-AddressString OPTIONAL,
+ selectedLSAIdentity [4] LSAIdentity OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ sai-Present [6] NULL OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ ageOfLocationInformation [9] AgeOfLocationInformation OPTIONAL}
+
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present if the location information
+-- was retrieved after successful paging.
+RAIdentity ::= OCTET STRING(SIZE (6))
+
+-- Routing Area Identity is coded in accordance with 3GPP TS 29.060 [105].
+-- It shall contain the value part defined in 3GPP TS 29.060 only. I.e. the 3GPP TS 29.060
+-- type identifier octet shall not be included.
+GeographicalInformation ::= OCTET STRING(SIZE (8))
+
+-- Refers to geographical Information defined in 3GPP TS 23.032.
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in 3GPP TS 23.032 is allowed to be used
+-- The internal structure according to 3GPP TS 23.032 is as follows:
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+GeodeticInformation ::= OCTET STRING(SIZE (10))
+
+-- Refers to Calling Geodetic Location defined in Q.763 (1999).
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in Q.763 (1999) is allowed to be used
+-- The internal structure according to Q.763 (1999) is as follows:
+-- Screening and presentation indicators 1 octet
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+-- Confidence 1 octet
+LocationNumber ::= OCTET STRING(SIZE (2..10))
+
+-- the internal structure is defined in ITU-T Rec Q.763
+SubscriberState ::= CHOICE {
+ assumedIdle [0] NULL,
+ camelBusy [1] NULL,
+ netDetNotReachable NotReachableReason,
+ notProvidedFromVLR [2] NULL}
+
+PS-SubscriberState ::= CHOICE {
+ notProvidedFromSGSN [0] NULL,
+ ps-Detached [1] NULL,
+ ps-AttachedNotReachableForPaging [2] NULL,
+ ps-AttachedReachableForPaging [3] NULL,
+ ps-PDP-ActiveNotReachableForPaging [4] PDP-ContextInfoList,
+ ps-PDP-ActiveReachableForPaging [5] PDP-ContextInfoList,
+ netDetNotReachable NotReachableReason}
+
+PDP-ContextInfoList ::=
+ SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF PDP-ContextInfo
+
+PDP-ContextInfo ::= SEQUENCE {
+ pdp-ContextIdentifier [0] ContextId,
+ pdp-ContextActive [1] NULL OPTIONAL,
+ pdp-Type [2] PDP-Type,
+ pdp-Address [3] PDP-Address OPTIONAL,
+ apn-Subscribed [4] APN OPTIONAL,
+ apn-InUse [5] APN OPTIONAL,
+ nsapi [6] NSAPI OPTIONAL,
+ transactionId [7] TransactionId OPTIONAL,
+ teid-ForGnAndGp [8] TEID OPTIONAL,
+ teid-ForIu [9] TEID OPTIONAL,
+ ggsn-Address [10] GSN-Address OPTIONAL,
+ qos-Subscribed [11] Ext-QoS-Subscribed OPTIONAL,
+ qos-Requested [12] Ext-QoS-Subscribed OPTIONAL,
+ qos-Negotiated [13] Ext-QoS-Subscribed OPTIONAL,
+ chargingId [14] GPRSChargingID OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics OPTIONAL,
+ rnc-Address [16] GSN-Address OPTIONAL,
+ extensionContainer [17] ExtensionContainer OPTIONAL,
+ ...}
+
+NSAPI ::= INTEGER(0..15)
+
+-- This type is used to indicate the Network layer Service Access Point
+TransactionId ::= OCTET STRING(SIZE (1..2))
+
+-- This type carries the value part of the transaction identifier which is used in the
+-- session management messages on the access interface. The encoding is defined in
+-- 3GPP TS 24.008
+TEID ::= OCTET STRING(SIZE (4))
+
+-- This type carries the value part of the Tunnel Endpoint Identifier which is used to
+-- distinguish between different tunnels between the same pair of entities which communicate
+-- using the GPRS Tunnelling Protocol The encoding is defined in 3GPP TS 29.060.
+GPRSChargingID ::= OCTET STRING(SIZE (4))
+
+-- The Charging ID is a unique four octet value generated by the GGSN when
+-- a PDP Context is activated. A Charging ID is generated for each activated context.
+-- The encoding is defined in 3GPP TS 29.060.
+NotReachableReason ::= ENUMERATED {
+ msPurged(0), imsiDetached(1), restrictedArea(2), notRegistered(3)}
+
+-- any time interrogation info types
+AnyTimeInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedInfo [1] RequestedInfo,
+ gsmSCF-Address [3] ISDN-AddressString,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeInterrogationRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- any time information handling types
+AnyTimeSubscriptionInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedSubscriptionInfo [1] RequestedSubscriptionInfo,
+ gsmSCF-Address [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ ...}
+
+AnyTimeSubscriptionInterrogationRes ::= SEQUENCE {
+ callForwardingData [1] CallForwardingData OPTIONAL,
+ callBarringData [2] CallBarringData OPTIONAL,
+ odb-Info [3] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [4] CAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [5] SupportedCamelPhases OPTIONAL,
+ supportedSGSN-CAMEL-Phases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...,
+ offeredCamel4CSIsInVLR [8] OfferedCamel4CSIs OPTIONAL,
+ offeredCamel4CSIsInSGSN [9] OfferedCamel4CSIs OPTIONAL}
+
+RequestedSubscriptionInfo ::= SEQUENCE {
+ requestedSS-Info [1] SS-ForBS-Code OPTIONAL,
+ odb [2] NULL OPTIONAL,
+ requestedCAMEL-SubscriptionInfo
+ [3] RequestedCAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [4] NULL OPTIONAL,
+ supportedSGSN-CAMEL-Phases [5] NULL OPTIONAL,
+ extensionContainer
+ [6] ExtensionContainer OPTIONAL,
+ ...,
+ additionalRequestedCAMEL-SubscriptionInfo
+ [7] AdditionalRequestedCAMEL-SubscriptionInfo OPTIONAL}
+
+RequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ o-CSI(0), t-CSI(1), vt-CSI(2), tif-CSI(3), gprs-CSI(4), mo-sms-CSI(5),
+ ss-CSI(6), m-CSI(7), d-csi(8)}
+
+AdditionalRequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ mt-sms-CSI(0), mg-csi(1), o-IM-CSI(2), d-IM-CSI(3), vt-IM-CSI(4), ...
+ }
+
+-- exception handling: unknown values shall be discarded by the receiver.
+CallForwardingData ::= SEQUENCE {
+ forwardingFeatureList Ext-ForwFeatureList,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CallBarringData ::= SEQUENCE {
+ callBarringFeatureList Ext-CallBarFeatureList,
+ password Password OPTIONAL,
+ wrongPasswordAttemptsCounter WrongPasswordAttemptsCounter OPTIONAL,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+WrongPasswordAttemptsCounter ::= INTEGER(0..4)
+
+ODB-Info ::= SEQUENCE {
+ odb-Data ODB-Data,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CAMEL-SubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList
+ [1] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-CSI [2] D-CSI OPTIONAL,
+ t-CSI [3] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList
+ [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ vt-CSI [5] T-CSI OPTIONAL,
+ vt-BCSM-CAMEL-TDP-CriteriaList
+ [6] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ tif-CSI [7] NULL OPTIONAL,
+ tif-CSI-NotificationToCSE [8] NULL OPTIONAL,
+ gprs-CSI [9] GPRS-CSI OPTIONAL,
+ mo-sms-CSI [10] SMS-CSI OPTIONAL,
+ ss-CSI [11] SS-CSI OPTIONAL,
+ m-CSI [12] M-CSI OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...,
+ specificCSIDeletedList [14] SpecificCSI-Withdraw OPTIONAL,
+ mt-sms-CSI [15] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList
+ [16] MT-smsCAMELTDP-CriteriaList OPTIONAL,
+ mg-csi [17] MG-CSI OPTIONAL,
+ o-IM-CSI [18] O-CSI OPTIONAL,
+ o-IM-BcsmCamelTDP-CriteriaList
+ [19] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-IM-CSI [20] D-CSI OPTIONAL,
+ vt-IM-CSI [21] T-CSI OPTIONAL,
+ vt-IM-BCSM-CAMEL-TDP-CriteriaList
+ [22] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL}
+
+AnyTimeModificationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ gsmSCF-Address [1] ISDN-AddressString,
+ modificationRequestFor-CF-Info
+ [2] ModificationRequestFor-CF-Info OPTIONAL,
+ modificationRequestFor-CB-Info
+ [3] ModificationRequestFor-CB-Info OPTIONAL,
+ modificationRequestFor-CSI [4] ModificationRequestFor-CSI OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ longFTN-Supported [6] NULL OPTIONAL,
+ ...,
+ modificationRequestFor-ODB-data
+ [7] ModificationRequestFor-ODB-data OPTIONAL}
+
+AnyTimeModificationRes ::= SEQUENCE {
+ ss-InfoFor-CSE [0] Ext-SS-InfoFor-CSE OPTIONAL,
+ camel-SubscriptionInfo [1] CAMEL-SubscriptionInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ odb-Info [3] ODB-Info OPTIONAL}
+
+ModificationRequestFor-CF-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ forwardedToNumber [3] AddressString OPTIONAL,
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] Ext-NoRepCondTime OPTIONAL,
+ modifyNotificationToCSE [6] ModificationInstruction OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CB-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ password [3] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [4] WrongPasswordAttemptsCounter OPTIONAL,
+ modifyNotificationToCSE [5] ModificationInstruction OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-ODB-data ::= SEQUENCE {
+ odb-data [0] ODB-Data OPTIONAL,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CSI ::= SEQUENCE {
+ requestedCamel-SubscriptionInfo
+ [0] RequestedCAMEL-SubscriptionInfo,
+ modifyNotificationToCSE
+ [1] ModificationInstruction OPTIONAL,
+ modifyCSI-State
+ [2] ModificationInstruction OPTIONAL,
+ extensionContainer
+ [3] ExtensionContainer OPTIONAL,
+ ...,
+ additionalRequestedCAMEL-SubscriptionInfo
+ [4] AdditionalRequestedCAMEL-SubscriptionInfo OPTIONAL}
+
+-- requestedCamel-SubscriptionInfo shall be discarded if
+-- additionalRequestedCAMEL-SubscriptionInfo is received
+ModificationInstruction ::= ENUMERATED {deactivate(0), activate(1)}
+
+-- subscriber data modification notification types
+NoteSubscriberDataModifiedArg ::= SEQUENCE {
+ imsi IMSI,
+ msisdn ISDN-AddressString,
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE OPTIONAL,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE OPTIONAL,
+ odb-Info [2] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [3] CAMEL-SubscriptionInfo OPTIONAL,
+ allInformationSent [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoteSubscriberDataModifiedRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- mobility management event notificatioon info types
+NoteMM-EventArg ::= SEQUENCE {
+ serviceKey ServiceKey,
+ eventMet [0] MM-Code,
+ imsi [1] IMSI,
+ msisdn [2] ISDN-AddressString,
+ locationInformation [3] LocationInformation OPTIONAL,
+ supportedCAMELPhases [5] SupportedCamelPhases OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ locationInformationGPRS [7] LocationInformationGPRS OPTIONAL,
+ offeredCamel4Functionalities [8] OfferedCamel4Functionalities OPTIONAL}
+
+NoteMM-EventRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-InfoFor-CSE ::= CHOICE {
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE}
+
+Ext-ForwardingInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ forwardingFeatureList [1] Ext-ForwFeatureList,
+ notificationToCSE [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarringInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ callBarringFeatureList [1] Ext-CallBarFeatureList,
+ password [2] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [3] WrongPasswordAttemptsCounter OPTIONAL,
+ notificationToCSE [4] NULL OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-MobileServiceOperations.asn b/MAP/asn_src/GSM/MAP-MobileServiceOperations.asn
new file mode 100644
index 0000000..9304077
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-MobileServiceOperations.asn
@@ -0,0 +1,287 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-MobileServiceOperations {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-MobileServiceOperations(5)
+ version8(8)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ -- location registration operations
+ updateLocation, cancelLocation, purgeMS,
+ sendIdentification,
+ -- gprs location registration operations
+ updateGprsLocation,
+ -- subscriber information enquiry operations
+ provideSubscriberInfo,
+ -- any time information enquiry operations
+ anyTimeInterrogation,
+ -- any time information handling operations
+ anyTimeSubscriptionInterrogation,
+ anyTimeModification,
+ -- subscriber data modification notification operations
+ noteSubscriberDataModified,
+ -- handover operations
+ prepareHandover, sendEndSignal, processAccessSignalling,
+ forwardAccessSignalling,
+ prepareSubsequentHandover,
+ -- authentication management operations
+ sendAuthenticationInfo,
+ authenticationFailureReport,
+ -- IMEI management operations
+ checkIMEI,
+ -- subscriber management operations
+ insertSubscriberData,
+ deleteSubscriberData,
+ -- fault recovery operations
+ reset, forwardCheckSS-Indication,
+ restoreData,
+ -- gprs location information retrieval operations
+ sendRoutingInfoForGprs,
+ -- failure reporting operations
+ failureReport,
+ -- gprs notification operations
+ noteMsPresentForGprs,
+ -- Mobility Management operations
+ noteMM-Event;
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ systemFailure, dataMissing, unexpectedDataValue, unknownSubscriber,
+ unknownMSC, unidentifiedSubscriber, unknownEquipment, roamingNotAllowed,
+ ati-NotAllowed, noHandoverNumberAvailable, subsequentHandoverFailure,
+ absentSubscriber, mm-EventNotSupported, atsi-NotAllowed, atm-NotAllowed,
+ bearerServiceNotProvisioned, teleserviceNotProvisioned, callBarred,
+ illegalSS-Operation, ss-ErrorStatus, ss-NotAvailable, ss-Incompatibility,
+ ss-SubscriptionViolation, informationNotAvailable,
+ targetCellOutsideGroupCallArea
+ FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Errors(10) version8(8)}
+ UpdateLocationArg, UpdateLocationRes, CancelLocationArg, CancelLocationRes,
+ PurgeMS-Arg, PurgeMS-Res, SendIdentificationArg, SendIdentificationRes,
+ UpdateGprsLocationArg, UpdateGprsLocationRes, PrepareHO-Arg, PrepareHO-Res,
+ ForwardAccessSignalling-Arg, ProcessAccessSignalling-Arg,
+ SendEndSignal-Arg, SendEndSignal-Res, PrepareSubsequentHO-Res,
+ PrepareSubsequentHO-Arg, SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes, AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes, CheckIMEI-Arg, CheckIMEI-Res,
+ InsertSubscriberDataArg, InsertSubscriberDataRes, DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes, ResetArg, RestoreDataArg, RestoreDataRes,
+ ProvideSubscriberInfoArg, ProvideSubscriberInfoRes,
+ AnyTimeSubscriptionInterrogationArg, AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg, AnyTimeModificationRes,
+ NoteSubscriberDataModifiedArg, NoteSubscriberDataModifiedRes,
+ AnyTimeInterrogationArg, AnyTimeInterrogationRes,
+ SendRoutingInfoForGprsArg, SendRoutingInfoForGprsRes, FailureReportArg,
+ FailureReportRes, NoteMsPresentForGprsArg, NoteMsPresentForGprsRes,
+ NoteMM-EventArg, NoteMM-EventRes
+ FROM MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-MS-DataTypes(11)
+ version8(8)};
+
+-- location registration operations
+updateLocation OPERATION ::= { --Timer m
+ ARGUMENT UpdateLocationArg
+ RESULT UpdateLocationRes
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber |
+ roamingNotAllowed}
+ CODE local:2}
+
+cancelLocation OPERATION ::= { --Timer m
+ ARGUMENT CancelLocationArg
+ RESULT CancelLocationRes
+ -- optional
+ ERRORS {dataMissing | unexpectedDataValue}
+ CODE local:3}
+
+purgeMS OPERATION ::= { --Timer m
+ ARGUMENT PurgeMS-Arg
+ RESULT PurgeMS-Res
+ -- optional
+ ERRORS {dataMissing | unexpectedDataValue | unknownSubscriber}
+ CODE local:67}
+
+sendIdentification OPERATION ::= { --Timer s
+ ARGUMENT SendIdentificationArg
+ RESULT SendIdentificationRes
+ ERRORS {dataMissing | unidentifiedSubscriber}
+ CODE local:55}
+
+-- gprs location registration operations
+updateGprsLocation OPERATION ::= { --Timer m
+ ARGUMENT UpdateGprsLocationArg
+ RESULT UpdateGprsLocationRes
+ ERRORS
+ {systemFailure | unexpectedDataValue | unknownSubscriber |
+ roamingNotAllowed}
+ CODE local:23}
+
+-- subscriber information enquiry operations
+provideSubscriberInfo OPERATION ::= { --Timer m
+ ARGUMENT ProvideSubscriberInfoArg
+ RESULT ProvideSubscriberInfoRes
+ ERRORS {dataMissing | unexpectedDataValue}
+ CODE local:70}
+
+-- any time information enquiry operations
+anyTimeInterrogation OPERATION ::= { --Timer m
+ ARGUMENT AnyTimeInterrogationArg
+ RESULT AnyTimeInterrogationRes
+ ERRORS
+ {systemFailure | ati-NotAllowed | dataMissing | unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:71}
+
+-- any time information handling operations
+anyTimeSubscriptionInterrogation OPERATION ::= { --Timer m
+ ARGUMENT AnyTimeSubscriptionInterrogationArg
+ RESULT AnyTimeSubscriptionInterrogationRes
+ ERRORS
+ {atsi-NotAllowed | dataMissing | unexpectedDataValue | unknownSubscriber |
+ bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred |
+ illegalSS-Operation | ss-NotAvailable | informationNotAvailable}
+ CODE local:62}
+
+anyTimeModification OPERATION ::= { --Timer m
+ ARGUMENT AnyTimeModificationArg
+ RESULT AnyTimeModificationRes
+ ERRORS
+ {atm-NotAllowed | dataMissing | unexpectedDataValue | unknownSubscriber |
+ bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred |
+ illegalSS-Operation | ss-SubscriptionViolation | ss-ErrorStatus |
+ ss-Incompatibility | informationNotAvailable}
+ CODE local:65}
+
+-- subscriber data modification notification operations
+noteSubscriberDataModified OPERATION ::= { --Timer m
+ ARGUMENT NoteSubscriberDataModifiedArg
+ RESULT NoteSubscriberDataModifiedRes
+ -- optional
+ ERRORS {dataMissing | unexpectedDataValue | unknownSubscriber}
+ CODE local:5}
+
+-- handover operations
+prepareHandover OPERATION ::= { --Timer m
+ ARGUMENT PrepareHO-Arg
+ RESULT PrepareHO-Res
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue |
+ noHandoverNumberAvailable | targetCellOutsideGroupCallArea}
+ CODE local:68}
+
+sendEndSignal OPERATION ::= { --Timer l
+ ARGUMENT SendEndSignal-Arg
+ RESULT SendEndSignal-Res
+ CODE local:29}
+
+processAccessSignalling OPERATION ::= { --Timer s
+ ARGUMENT ProcessAccessSignalling-Arg
+ CODE local:33}
+
+forwardAccessSignalling OPERATION ::= { --Timer s
+ ARGUMENT ForwardAccessSignalling-Arg
+ CODE local:34}
+
+prepareSubsequentHandover OPERATION ::= { --Timer m
+ ARGUMENT PrepareSubsequentHO-Arg
+ RESULT PrepareSubsequentHO-Res
+ ERRORS
+ {unexpectedDataValue | dataMissing | unknownMSC |
+ subsequentHandoverFailure}
+ CODE local:69}
+
+-- authentication management operations
+sendAuthenticationInfo OPERATION ::= { --Timer m
+ ARGUMENT SendAuthenticationInfoArg
+ -- optional
+ -- within a dialogue sendAuthenticationInfoArg shall not be present in
+ -- subsequent invoke components. If received in a subsequent invoke component
+ -- it shall be discarded.
+ RESULT SendAuthenticationInfoRes
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber}
+ CODE local:56}
+
+authenticationFailureReport OPERATION ::= { --Timer m
+ ARGUMENT AuthenticationFailureReportArg
+ RESULT AuthenticationFailureReportRes
+ -- optional
+ ERRORS {systemFailure | unexpectedDataValue | unknownSubscriber}
+ CODE local:15}
+
+-- IMEI management operations
+checkIMEI OPERATION ::= { --Timer m
+ ARGUMENT CheckIMEI-Arg
+ RESULT CheckIMEI-Res
+ ERRORS {systemFailure | dataMissing | unknownEquipment}
+ CODE local:43}
+
+-- subscriber management operations
+insertSubscriberData OPERATION ::= { --Timer m
+ ARGUMENT InsertSubscriberDataArg
+ RESULT InsertSubscriberDataRes
+ -- optional
+ ERRORS {dataMissing | unexpectedDataValue | unidentifiedSubscriber}
+ CODE local:7}
+
+deleteSubscriberData OPERATION ::= { --Timer m
+ ARGUMENT DeleteSubscriberDataArg
+ RESULT DeleteSubscriberDataRes
+ -- optional
+ ERRORS {dataMissing | unexpectedDataValue | unidentifiedSubscriber}
+ CODE local:8}
+
+-- fault recovery operations
+reset OPERATION ::= { --Timer m
+ ARGUMENT ResetArg
+ CODE local:37}
+
+forwardCheckSS-Indication OPERATION ::= { --Timer s
+ CODE local:38}
+
+restoreData OPERATION ::= { --Timer m
+ ARGUMENT RestoreDataArg
+ RESULT RestoreDataRes
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber}
+ CODE local:57}
+
+-- gprs location information retrieval operations
+sendRoutingInfoForGprs OPERATION ::= { --Timer m
+ ARGUMENT SendRoutingInfoForGprsArg
+ RESULT SendRoutingInfoForGprsRes
+ ERRORS
+ {absentSubscriber | systemFailure | dataMissing | unexpectedDataValue |
+ unknownSubscriber | callBarred}
+ CODE local:24}
+
+-- failure reporting operations
+failureReport OPERATION ::= { --Timer m
+ ARGUMENT FailureReportArg
+ RESULT FailureReportRes
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber}
+ CODE local:25}
+
+-- gprs notification operations
+noteMsPresentForGprs OPERATION ::= { --Timer m
+ ARGUMENT NoteMsPresentForGprsArg
+ RESULT NoteMsPresentForGprsRes
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber}
+ CODE local:26}
+
+noteMM-Event OPERATION ::= { --Timer m
+ ARGUMENT NoteMM-EventArg
+ RESULT NoteMM-EventRes
+ ERRORS
+ {dataMissing | unexpectedDataValue | unknownSubscriber |
+ mm-EventNotSupported}
+ CODE local:89}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-OM-DataTypes.asn b/MAP/asn_src/GSM/MAP-OM-DataTypes.asn
new file mode 100644
index 0000000..7569174
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-OM-DataTypes.asn
@@ -0,0 +1,49 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-OM-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-OM-DataTypes(12) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ ActivateTraceModeArg, ActivateTraceModeRes, DeactivateTraceModeArg,
+ DeactivateTraceModeRes;
+
+IMPORTS
+ AddressString, IMSI
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)};
+
+ActivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ traceType [2] TraceType,
+ omc-Id [3] AddressString OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+TraceReference ::= OCTET STRING(SIZE (1..2))
+
+TraceType ::= INTEGER(0..255)
+
+-- Trace types are fully defined in TS GSM 12.08.
+ActivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+DeactivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+DeactivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-OperationAndMaintenanceOperations.asn b/MAP/asn_src/GSM/MAP-OperationAndMaintenanceOperations.asn
new file mode 100644
index 0000000..5650b76
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-OperationAndMaintenanceOperations.asn
@@ -0,0 +1,51 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-OperationAndMaintenanceOperations {itu-t identified-organization(4)
+ etsi(0) mobileDomain(0) gsm-Network(1) modules(3)
+ map-OperationAndMaintenanceOperations(6) version8(8)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS activateTraceMode, deactivateTraceMode, sendIMSI;
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported,
+ unknownSubscriber, unidentifiedSubscriber, tracingBufferFull
+ FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Errors(10) version8(8)}
+ ActivateTraceModeArg, ActivateTraceModeRes, DeactivateTraceModeArg,
+ DeactivateTraceModeRes
+ FROM MAP-OM-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-OM-DataTypes(12)
+ version8(8)}
+ ISDN-AddressString, IMSI
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)};
+
+activateTraceMode OPERATION ::= { --Timer m
+ ARGUMENT ActivateTraceModeArg
+ RESULT ActivateTraceModeRes
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported |
+ unidentifiedSubscriber | tracingBufferFull}
+ CODE local:50}
+
+deactivateTraceMode OPERATION ::= { --Timer m
+ ARGUMENT DeactivateTraceModeArg
+ RESULT DeactivateTraceModeRes
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported |
+ unidentifiedSubscriber}
+ CODE local:51}
+
+sendIMSI OPERATION ::= { --Timer m
+ ARGUMENT ISDN-AddressString
+ RESULT IMSI ERRORS {dataMissing | unexpectedDataValue | unknownSubscriber}
+ CODE local:58}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-OperationPackages.asn b/MAP/asn_src/GSM/MAP-OperationPackages.asn
new file mode 100644
index 0000000..56969fe
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-OperationPackages.asn
@@ -0,0 +1,371 @@
+
+MAP-OperationPackages {ccitt (0) identified-organization (4) etsi (0)
+ mobileDomain (0) gsm-Network (1) modules (3 ) ??? (?)}
+
+OPERATION-PACKAGE ::= CLASS {
+&Both OPERATION OPTIONAL,
+&Consumer OPERATION OPTIONAL,
+&Supplier OPERATION OPTIONAL,
+&id OBJECT IDENTIFIER UNIQUE OPTIONAL }
+WITH SYNTAX {
+[ OPERATIONS &Both ]
+[ CONSUMER INVOKES &Supplier ]
+[ SUPPLIER INVOKES &Consumer ]
+[ ID &id ] }
+
+locationUpdatingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+CONSUMER INVOKES {
+updateLocation}
+SUPPLIER INVOKES {
+forwardCheckSs-Indication} }
+
+locationCancellationPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR or SGSN if Consumer is HLR
+CONSUMER INVOKES {
+cancelLocation} }
+
+roamingNumberEnquiryPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR if Consumer is HLR
+CONSUMER INVOKES {
+provideRoamingNumber} }
+
+infoRetrievalPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+-- Supplier is HLR if Consumer is SGSN
+CONSUMER INVOKES {
+sendAuthenticationInfo} }
+
+infoRetrievalPackage-v2 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+-- Supplier is HLR if Consumer is SGSN
+CONSUMER INVOKES {
+sendAuthenticationInfo} }
+
+infoRetrievalPackage-v1 OPERATION-PACKAGE ::= {
+-- Supplier is HLR or VLR if Consumer is VLR
+-- Supplier is HLR if Consumer is SGSN
+CONSUMER INVOKES {
+sendParameters} }
+
+interVlrInfoRetrievalPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR if Consumer is VLR
+CONSUMER INVOKES {
+sendIdentification} }
+
+interVlrInfoRetrievalPackage-v2 OPERATION-PACKAGE ::= {
+-- Supplier is VLR if Consumer is VLR
+CONSUMER INVOKES {
+sendIdentification} }
+
+imsiRetrievalPackage-v2 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+CONSUMER INVOKES {
+sendIMSI} }
+
+callControlTransferPackage-v4 OPERATION-PACKAGE ::= {
+-- Supplier is GMSC if Consumer is VMSC
+CONSUMER INVOKES {
+resumeCallHandling} }
+
+secureTransportHandlingPackage-v3 OPERATION-PACKAGE ::= {
+CONSUMER INVOKES {
+secureTransportClass1 | -- to be used if the original operation is a
+-- TCAP class 1 operation
+secureTransportClass2 | -- to be used if the original operation is a
+-- TCAP class 2 operation
+secureTransportClass3 | -- to be used if the original operation is a
+-- TCAP class 3 operation
+secureTransportClass4} -- to be used if the original operation is a
+-- TCAP class 4 operation
+}
+
+interrogationPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR or NPLR if Consumer is MSC
+-- Supplier is HLR if Consumer is gsmSCF
+CONSUMER INVOKES {
+sendRoutingInfo} }
+
+handoverControlPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is MSCB if Consumer is MSCA
+CONSUMER INVOKES {
+prepareHandover |
+forwardAccessSignalling}
+SUPPLIER INVOKES {
+sendEndSignal |
+processAccessSignalling |
+prepareSubsequentHandover} }
+
+handoverControlPackage-v1 OPERATION-PACKAGE ::= {
+-- Supplier is MSCB if Consumer is MSCA
+CONSUMER INVOKES {
+performHandover |
+forwardAccessSignalling |
+traceSubscriberActivity}
+SUPPLIER INVOKES {
+sendEndSignal |
+noteInternalHandover |
+processAccessSignalling |
+performSubsequentHandover} }
+
+subscriberDataMngtStandAlonePackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR or SGSN if Consumer is HLR
+CONSUMER INVOKES {
+insertSubscriberData |
+deleteSubscriberData} }
+
+equipmentMngtPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is EIR if Consumer is MSC
+-- Supplier is EIR if Consumer is SGSN
+CONSUMER INVOKES {
+checkIMEI} }
+
+subscriberDataMngtPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR or SGSN if Consumer is HLR
+CONSUMER INVOKES {
+insertSubscriberData} }
+
+resetPackage-v2 OPERATION-PACKAGE ::= {
+-- Supplier is VLR or SGSN if Consumer is HLR
+CONSUMER INVOKES {
+reset} }
+
+tracingStandAlonePackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR or SGSN if Consumer is HLR
+CONSUMER INVOKES {
+activateTraceMode |
+deactivateTraceMode} }
+
+functionalSsPackage-v2 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+CONSUMER INVOKES {
+registerSS |
+eraseSS |
+activateSS |
+deactivateSS |
+registerPassword |
+interrogateSS}
+SUPPLIER INVOKES {
+getPassword} }
+
+tracingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR or SGSN if Consumer is HLR
+CONSUMER INVOKES {
+activateTraceMode} }
+
+bindingPackage-v1 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+-- Supplier is gsmSCF if Consumer is HLR
+CONSUMER INVOKES {
+beginSubscriberActivity} }
+
+unstructuredSsPackage-v2 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+-- Supplier is gsmSCF or HLR if Consumer is HLR
+CONSUMER INVOKES {
+processUnstructuredSS-Request}
+SUPPLIER INVOKES {
+unstructuredSS-Request |
+unstructuredSS-Notify} }
+
+unstructuredSsPackage-v1 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+-- Supplier is gsmSCF if Consumer is HLR
+CONSUMER INVOKES {
+processUnstructuredSS-Data} }
+
+mo-ShortMsgRelayPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is IWMSC if Consumer is MSC
+-- Supplier is IWMSC if Consumer is SGSN
+CONSUMER INVOKES {
+mo-forwardSM} }
+
+shortMsgRelayPackage-v2 OPERATION-PACKAGE ::= {
+-- Supplier is IWMSC if Consumer is MSC
+-- Supplier is MSC or SGSN if Consumer is GMSC
+-- Supplier is IWMSC if Consumer is SGSN
+CONSUMER INVOKES {
+forwardSM} }
+
+shortMsgGatewayPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is GMSC
+CONSUMER INVOKES {
+sendRoutingInfoForSM |
+reportSM-DeliveryStatus}
+SUPPLIER INVOKES {
+informServiceCentre} }
+
+shortMsgGatewayPackage-v1 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is GMSC
+CONSUMER INVOKES {
+sendRoutingInfoForSM |
+reportSMDeliveryStatus} }
+
+mt-ShortMsgRelayPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is MSC or SGSN if Consumer is GMSC
+CONSUMER INVOKES {
+mt-forwardSM} }
+
+mwdMngtPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is SGSN
+-- Supplier is HLR if Consumer is VLR
+CONSUMER INVOKES {
+readyForSM} }
+
+mwdMngtPackage-v1 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+CONSUMER INVOKES {
+noteSubscriberPresent} }
+
+alertingPackage-v2 OPERATION-PACKAGE ::= {
+-- Supplier is IWMSC if Consumer is HLR
+CONSUMER INVOKES {
+alertServiceCentre} }
+
+alertingPackage-v1 OPERATION-PACKAGE ::= {
+-- Supplier is IWMSC if Consumer is HLR
+CONSUMER INVOKES {
+alertServiceCentreWithoutResult} }
+
+dataRestorationPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+CONSUMER INVOKES {
+restoreData} }
+
+purgingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+-- Supplier is HLR if Consumer is SGSN
+CONSUMER INVOKES {
+purgeMS} }
+
+subscriberInformationEnquiryPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR or SGSN if Consumer is HLR
+CONSUMER INVOKES {
+provideSubscriberInfo} }
+
+anyTimeInformationEnquiryPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR or GMLC if Consumer is gsmSCF
+CONSUMER INVOKES {
+anyTimeInterrogation} }
+
+groupCallControlPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is relay MSC if Consumer is anchor MSC
+CONSUMER INVOKES {
+prepareGroupCall |
+forwardGroupCallSignalling}
+SUPPLIER INVOKES {
+sendGroupCallEndSignal |
+processGroupCallSignalling} }
+
+provideSIWFSNumberPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is SIWF if Consumer is VMSC
+CONSUMER INVOKES {
+provideSIWFSNumber} }
+
+siwfs-SignallingModifyPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is SIWF if Consumer is VMSC
+CONSUMER INVOKES {
+siwfs-SignallingModify} }
+
+gprsLocationUpdatingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is SGSN
+CONSUMER INVOKES {
+updateGprsLocation} }
+
+gprsInterrogationPackage-v4 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is GGSN
+CONSUMER INVOKES {
+sendRoutingInfoForGprs} }
+
+gprsInterrogationPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is GGSN
+CONSUMER INVOKES {
+sendRoutingInfoForGprs} }
+
+failureReportingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is GGSN
+CONSUMER INVOKES {
+failureReport} }
+
+gprsNotifyingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is GGSN if Consumer is HLR
+CONSUMER INVOKES {
+noteMsPresentForGprs} }
+
+ss-InvocationNotificationPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is gsmSCF if Consumer is MSC
+-- Supplier is gsmSCF if Consumer is HLR
+CONSUMER INVOKES {
+ss-InvocationNotification} }
+
+setReportingStatePackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR if Consumer is HLR
+CONSUMER INVOKES {
+setReportingState} }
+
+statusReportPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+CONSUMER INVOKES {
+statusReport} }
+
+remoteUserFreePackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VLR if Consumer is HLR
+CONSUMER INVOKES {
+remoteUserFree} }
+
+callCompletionPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+CONSUMER INVOKES {
+registerCC-Entry |
+eraseCC-Entry} }
+
+locationSvcGatewayPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is GMLC
+CONSUMER INVOKES {
+sendRoutingInfoForLCS} }
+
+locationSvcEnquiryPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is MSC or SGSN if Consumer is GMLC
+CONSUMER INVOKES {
+provideSubscriberLocation} }
+
+locationSvcReportingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is GMLC if Consumer is MSC
+-- Supplier is GMLC if Consumer is SGSN
+CONSUMER INVOKES {
+subscriberLocationReport} }
+
+ist-AlertingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VMSC
+-- Supplier is HLR if Consumer is GMSC
+CONSUMER INVOKES {
+istAlert} }
+
+serviceTerminationPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is VMSC or GMSC if Consumer is HLR
+CONSUMER INVOKES {
+istCommand} }
+
+mm-EventReportingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is gsmSCF if Consumer is VLR
+CONSUMER INVOKES {
+noteMM-Event} }
+
+anyTimeInformationHandlingPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is gsmSCF
+CONSUMER INVOKES {
+anyTimeSubscriptionInterrogation |
+anyTimeModification} }
+
+subscriberDataModificationNotificationPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is gsmSCF if Consumer is HLR
+CONSUMER INVOKES {
+noteSubscriberDataModified} }
+
+authenticationFailureReportPackage-v3 OPERATION-PACKAGE ::= {
+-- Supplier is HLR if Consumer is VLR
+-- Supplier is HLR if Consumer is SGSN
+CONSUMER INVOKES {
+authenticationFailureReport} }
+
+
diff --git a/MAP/asn_src/GSM/MAP-Protocol.asn b/MAP/asn_src/GSM/MAP-Protocol.asn
new file mode 100644
index 0000000..7c3c8de
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-Protocol.asn
@@ -0,0 +1,106 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-Protocol {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Protocol(4) version8(8)} DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ updateLocation, cancelLocation, purgeMS, sendIdentification,
+ updateGprsLocation, prepareHandover, sendEndSignal,
+ processAccessSignalling, forwardAccessSignalling,
+ prepareSubsequentHandover, sendAuthenticationInfo,
+ authenticationFailureReport, checkIMEI, insertSubscriberData,
+ deleteSubscriberData, reset, forwardCheckSS-Indication, restoreData,
+ provideSubscriberInfo, anyTimeInterrogation,
+ anyTimeSubscriptionInterrogation, anyTimeModification,
+ sendRoutingInfoForGprs, failureReport, noteMsPresentForGprs, noteMM-Event,
+ noteSubscriberDataModified
+ FROM MAP-MobileServiceOperations {itu-t identified-organization(4)
+ etsi(0) mobileDomain(0) gsm-Network(1) modules(3)
+ map-MobileServiceOperations(5) version8(8)}
+ activateTraceMode, deactivateTraceMode, sendIMSI
+ FROM MAP-OperationAndMaintenanceOperations {itu-t
+ identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1)
+ modules(3) map-OperationAndMaintenanceOperations(6) version8(8)}
+ sendRoutingInfo, provideRoamingNumber, resumeCallHandling,
+ provideSIWFSNumber, siwfs-SignallingModify, setReportingState,
+ statusReport, remoteUserFree, ist-Alert, ist-Command
+ FROM MAP-CallHandlingOperations {itu-t identified-organization(4)
+ etsi(0) mobileDomain(0) gsm-Network(1) modules(3)
+ map-CallHandlingOperations(7) version8(8)}
+ registerSS, eraseSS, activateSS, deactivateSS, interrogateSS,
+ processUnstructuredSS-Request, unstructuredSS-Request,
+ unstructuredSS-Notify, registerPassword, getPassword,
+ ss-InvocationNotification, registerCC-Entry, eraseCC-Entry
+ FROM MAP-SupplementaryServiceOperations {itu-t identified-organization(4)
+ etsi(0) mobileDomain(0) gsm-Network(1) modules(3)
+ map-SupplementaryServiceOperations(8) version8(8)}
+ sendRoutingInfoForSM, mo-ForwardSM, mt-ForwardSM, reportSM-DeliveryStatus,
+ alertServiceCentre, informServiceCentre, readyForSM
+ FROM MAP-ShortMessageServiceOperations {itu-t identified-organization(4)
+ etsi(0) mobileDomain(0) gsm-Network(1) modules(3)
+ map-ShortMessageServiceOperations(9) version8(8)}
+ prepareGroupCall, processGroupCallSignalling, forwardGroupCallSignalling,
+ sendGroupCallEndSignal
+ FROM MAP-Group-Call-Operations {itu-t identified-organization(4)
+ etsi(0) mobileDomain(0) gsm-Network(1) modules(3)
+ map-Group-Call-Operations(22) version8(8)}
+ provideSubscriberLocation, sendRoutingInfoForLCS, subscriberLocationReport
+ FROM MAP-LocationServiceOperations {itu-t identified-organization(4)
+ etsi(0) mobileDomain(0) gsm-Network(1) modules(3)
+ map-LocationServiceOperations(24) version8(8)}
+ secureTransportClass1, secureTransportClass2, secureTransportClass3,
+ secureTransportClass4
+ FROM MAP-SecureTransportOperations {itu-t identified-organization(4)
+ etsi(0) mobileDomain(0) gsm-Network(1) modules(3)
+ map-SecureTransportOperations(26) version8(8)};
+
+Supported-MAP-Operations OPERATION ::=
+ {updateLocation | cancelLocation | purgeMS | sendIdentification |
+ updateGprsLocation | prepareHandover | sendEndSignal |
+ processAccessSignalling | forwardAccessSignalling |
+ prepareSubsequentHandover | sendAuthenticationInfo |
+ authenticationFailureReport | checkIMEI | insertSubscriberData |
+ deleteSubscriberData | reset | forwardCheckSS-Indication | restoreData |
+ provideSubscriberInfo | anyTimeInterrogation |
+ anyTimeSubscriptionInterrogation | anyTimeModification |
+ sendRoutingInfoForGprs | failureReport | noteMsPresentForGprs | noteMM-Event
+ | noteSubscriberDataModified | activateTraceMode | deactivateTraceMode |
+ sendIMSI | sendRoutingInfo | provideRoamingNumber | resumeCallHandling |
+ provideSIWFSNumber | siwfs-SignallingModify | setReportingState |
+ statusReport | remoteUserFree | ist-Alert | ist-Command | registerSS |
+ eraseSS | activateSS | deactivateSS | interrogateSS |
+ processUnstructuredSS-Request | unstructuredSS-Request |
+ unstructuredSS-Notify | registerPassword | getPassword |
+ ss-InvocationNotification | registerCC-Entry | eraseCC-Entry |
+ sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM | reportSM-DeliveryStatus
+ | alertServiceCentre | informServiceCentre | readyForSM | prepareGroupCall |
+ processGroupCallSignalling | forwardGroupCallSignalling |
+ sendGroupCallEndSignal | provideSubscriberLocation | sendRoutingInfoForLCS |
+ subscriberLocationReport | secureTransportClass1 | secureTransportClass2 |
+ secureTransportClass3 | secureTransportClass4}
+
+-- The following operation codes are reserved for operations
+-- existing in previous versions of the protocol
+-- Operation Name AC used Oper. Code
+--
+-- sendParameters map-ac infoRetrieval (14) version1 (1) local:9
+-- processUnstructuredSS-Data map-ac networkFunctionalSs (18) version1 (1) local:19
+-- performHandover map-ac handoverControl (11) version1 (1) local:28
+-- performSubsequentHandover map-ac handoverControl (11) version1 (1) local:30
+-- noteInternalHandover map-ac handoverControl (11) version1 (1) local:35
+-- noteSubscriberPresent map-ac mwdMngt (24) version1 (1) local:48
+-- alertServiceCentreWithoutResult map-ac shortMsgAlert (23) version1 (1) local:49
+-- traceSubscriberActivity map-ac handoverControl (11) version1 (1) local:52
+-- beginSubscriberActivity map-ac networkFunctionalSs (18) version1 (1) local:54
+-- The following error codes are reserved for errors
+-- existing in previous versions of the protocol
+-- Error Name AC used Error Code
+--
+-- unknownBaseStation map-ac handoverControl (11) version1 (1) local:2
+-- invalidTargetBaseStation map-ac handoverControl (11) version1 (1) local:23
+-- noRadioResourceAvailable map-ac handoverControl (11) version1 (1) local:24
+END
+
diff --git a/MAP/asn_src/GSM/MAP-SM-DataTypes.asn b/MAP/asn_src/GSM/MAP-SM-DataTypes.asn
new file mode 100644
index 0000000..157663a
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-SM-DataTypes.asn
@@ -0,0 +1,189 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-SM-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-SM-DataTypes(16) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ RoutingInfoForSM-Arg, RoutingInfoForSM-Res, MO-ForwardSM-Arg,
+ MO-ForwardSM-Res, MT-ForwardSM-Arg, MT-ForwardSM-Res,
+ ReportSM-DeliveryStatusArg, ReportSM-DeliveryStatusRes,
+ AlertServiceCentreArg, InformServiceCentreArg, ReadyForSM-Arg,
+ ReadyForSM-Res, SM-DeliveryOutcome, AlertReason, Additional-Number;
+
+IMPORTS
+ AddressString, ISDN-AddressString, SignalInfo, IMSI, LMSI
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)}
+ AbsentSubscriberDiagnosticSM
+ FROM MAP-ER-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ER-DataTypes(17)
+ version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)};
+
+RoutingInfoForSM-Arg ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ sm-RP-PRI [1] BOOLEAN,
+ serviceCentreAddress [2] AddressString,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSupportIndicator [7] NULL OPTIONAL,
+ -- gprsSupportIndicator is set only if the SMS-GMSC supports
+ -- receiving of two numbers from the HLR
+ sm-RP-MTI [8] SM-RP-MTI OPTIONAL,
+ sm-RP-SMEA [9] SM-RP-SMEA OPTIONAL}
+
+SM-RP-MTI ::= INTEGER(0..10)
+
+-- 0 SMS Deliver
+-- 1 SMS Status Report
+-- other values are reserved for future use and shall be discarded if
+-- received
+SM-RP-SMEA ::= OCTET STRING(SIZE (1..12))
+
+-- this parameter contains an address field which is encoded
+-- as defined in 3GPP TS 23.040. An address field contains 3 elements :
+-- address-length
+-- type-of-address
+-- address-value
+RoutingInfoForSM-Res ::= SEQUENCE {
+ imsi IMSI,
+ locationInfoWithLMSI [0] LocationInfoWithLMSI,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+LocationInfoWithLMSI ::= SEQUENCE {
+ networkNode-Number [1] ISDN-AddressString,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ gprsNodeIndicator [5] NULL OPTIONAL,
+ -- gprsNodeIndicator is set only if the SGSN number is sent as the
+ -- Network Node Number
+ additional-Number [6] Additional-Number OPTIONAL}
+ -- NetworkNode-number can be either msc-number or sgsn-number
+
+Additional-Number ::= CHOICE {
+ msc-Number [0] ISDN-AddressString,
+ sgsn-Number [1] ISDN-AddressString}
+
+-- additional-number can be either msc-number or sgsn-number
+-- if received networkNode-number is msc-number then the
+-- additional number is sgsn-number
+-- if received networkNode-number is sgsn-number then the
+-- additional number is msc-number
+MO-ForwardSM-Arg ::= SEQUENCE {
+ sm-RP-DA SM-RP-DA,
+ sm-RP-OA SM-RP-OA,
+ sm-RP-UI SignalInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ imsi IMSI OPTIONAL}
+
+MO-ForwardSM-Res ::= SEQUENCE {
+ sm-RP-UI SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MT-ForwardSM-Arg ::= SEQUENCE {
+ sm-RP-DA SM-RP-DA,
+ sm-RP-OA SM-RP-OA,
+ sm-RP-UI SignalInfo,
+ moreMessagesToSend NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MT-ForwardSM-Res ::= SEQUENCE {
+ sm-RP-UI SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SM-RP-DA ::= CHOICE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI,
+ serviceCentreAddressDA [4] AddressString,
+ noSM-RP-DA [5] NULL}
+
+SM-RP-OA ::= CHOICE {
+ msisdn [2] ISDN-AddressString,
+ serviceCentreAddressOA [4] AddressString,
+ noSM-RP-OA [5] NULL}
+
+ReportSM-DeliveryStatusArg ::= SEQUENCE {
+ msisdn ISDN-AddressString,
+ serviceCentreAddress AddressString,
+ sm-DeliveryOutcome SM-DeliveryOutcome,
+ absentSubscriberDiagnosticSM
+ [0] AbsentSubscriberDiagnosticSM OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSupportIndicator [2] NULL OPTIONAL,
+ -- gprsSupportIndicator is set only if the SMS-GMSC supports
+ -- handling of two delivery outcomes
+ deliveryOutcomeIndicator [3] NULL OPTIONAL,
+ -- DeliveryOutcomeIndicator is set when the SM-DeliveryOutcome
+ -- is for GPRS
+ additionalSM-DeliveryOutcome [4] SM-DeliveryOutcome OPTIONAL,
+ -- If received, additionalSM-DeliveryOutcome is for GPRS
+ -- If DeliveryOutcomeIndicator is set, then AdditionalSM-DeliveryOutcome shall be absent
+ additionalAbsentSubscriberDiagnosticSM
+ [5] AbsentSubscriberDiagnosticSM OPTIONAL}
+ -- If received additionalAbsentSubscriberDiagnosticSM is for GPRS
+ -- If DeliveryOutcomeIndicator is set, then AdditionalAbsentSubscriberDiagnosticSM
+ -- shall be absent
+
+SM-DeliveryOutcome ::= ENUMERATED {
+ memoryCapacityExceeded(0), absentSubscriber(1), successfulTransfer(2)
+}
+
+ReportSM-DeliveryStatusRes ::= SEQUENCE {
+ storedMSISDN ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AlertServiceCentreArg ::= SEQUENCE {
+ msisdn ISDN-AddressString,
+ serviceCentreAddress AddressString,
+ ...}
+
+InformServiceCentreArg ::= SEQUENCE {
+ storedMSISDN ISDN-AddressString OPTIONAL,
+ mw-Status MW-Status OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ absentSubscriberDiagnosticSM
+ AbsentSubscriberDiagnosticSM OPTIONAL,
+ additionalAbsentSubscriberDiagnosticSM
+ [0] AbsentSubscriberDiagnosticSM OPTIONAL}
+
+-- additionalAbsentSubscriberDiagnosticSM may be present only if
+-- absentSubscriberDiagnosticSM is present.
+-- if included, additionalAbsentSubscriberDiagnosticSM is for GPRS and
+-- absentSubscriberDiagnosticSM is for non-GPRS
+MW-Status ::= BIT STRING {
+ sc-AddressNotIncluded(0), mnrf-Set(1), mcef-Set(2), mnrg-Set(3)
+}(SIZE (6..16))
+
+-- exception handling:
+-- bits 4 to 15 shall be ignored if received and not understood
+ReadyForSM-Arg ::= SEQUENCE {
+ imsi [0] IMSI,
+ alertReason AlertReason,
+ alertReasonIndicator NULL OPTIONAL,
+ -- alertReasonIndicator is set only when the alertReason
+ -- sent to HLR is for GPRS
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ReadyForSM-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AlertReason ::= ENUMERATED {ms-Present(0), memoryAvailable(1)}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-SS-Code.asn b/MAP/asn_src/GSM/MAP-SS-Code.asn
new file mode 100644
index 0000000..1914b96
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-SS-Code.asn
@@ -0,0 +1,260 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-SS-Code(15) version8(8)} DEFINITIONS ::=
+BEGIN
+
+SS-Code ::= OCTET STRING(SIZE (1))
+
+-- This type is used to represent the code identifying a single
+-- supplementary service, a group of supplementary services, or
+-- all supplementary services. The services and abbreviations
+-- used are defined in TS 3GPP TS 22.004 [5]. The internal structure is
+-- defined as follows:
+--
+-- bits 87654321: group (bits 8765), and specific service
+-- (bits 4321)
+allSS SS-Code ::=
+ '00000000'B
+
+-- reserved for possible future use
+-- all SS
+allLineIdentificationSS SS-Code ::=
+ '00010000'B
+
+-- reserved for possible future use
+-- all line identification SS
+clip SS-Code ::=
+ '00010001'B
+
+-- calling line identification presentation
+clir SS-Code ::= '00010010'B
+
+-- calling line identification restriction
+colp SS-Code ::= '00010011'B
+
+-- connected line identification presentation
+colr SS-Code ::= '00010100'B
+
+-- connected line identification restriction
+mci SS-Code ::= '00010101'B
+
+-- reserved for possible future use
+-- malicious call identification
+allNameIdentificationSS SS-Code ::=
+ '00011000'B
+
+-- all name identification SS
+cnap SS-Code ::= '00011001'B
+
+-- calling name presentation
+-- SS-Codes '00011010'B to '00011111'B are reserved for future
+-- NameIdentification Supplementary Service use.
+allForwardingSS SS-Code ::=
+ '00100000'B
+
+-- all forwarding SS
+cfu SS-Code ::= '00100001'B
+
+-- call forwarding unconditional
+allCondForwardingSS SS-Code ::= '00101000'B
+
+-- all conditional forwarding SS
+cfb SS-Code ::= '00101001'B
+
+-- call forwarding on mobile subscriber busy
+cfnry SS-Code ::= '00101010'B
+
+-- call forwarding on no reply
+cfnrc SS-Code ::= '00101011'B
+
+-- call forwarding on mobile subscriber not reachable
+cd SS-Code ::= '00100100'B
+
+-- call deflection
+allCallOfferingSS SS-Code ::= '00110000'B
+
+-- reserved for possible future use
+-- all call offering SS includes also all forwarding SS
+ect SS-Code ::=
+ '00110001'B
+
+-- explicit call transfer
+mah SS-Code ::= '00110010'B
+
+-- reserved for possible future use
+-- mobile access hunting
+allCallCompletionSS SS-Code ::=
+ '01000000'B
+
+-- reserved for possible future use
+-- all Call completion SS
+cw SS-Code ::=
+ '01000001'B
+
+-- call waiting
+hold SS-Code ::= '01000010'B
+
+-- call hold
+ccbs-A SS-Code ::= '01000011'B
+
+-- completion of call to busy subscribers, originating side
+ccbs-B SS-Code ::=
+ '01000100'B
+
+-- completion of call to busy subscribers, destination side
+-- this SS-Code is used only in InsertSubscriberData and DeleteSubscriberData
+mc SS-Code ::=
+ '01000101'B
+
+-- multicall
+allMultiPartySS SS-Code ::= '01010000'B
+
+-- reserved for possible future use
+-- all multiparty SS
+multiPTY SS-Code ::=
+ '01010001'B
+
+-- multiparty
+allCommunityOfInterest-SS SS-Code ::= '01100000'B
+
+-- reserved for possible future use
+-- all community of interest SS
+cug SS-Code ::=
+ '01100001'B
+
+-- closed user group
+allChargingSS SS-Code ::= '01110000'B
+
+-- reserved for possible future use
+-- all charging SS
+aoci SS-Code ::=
+ '01110001'B
+
+-- advice of charge information
+aocc SS-Code ::= '01110010'B
+
+-- advice of charge charging
+allAdditionalInfoTransferSS SS-Code ::= '10000000'B
+
+-- reserved for possible future use
+-- all additional information transfer SS
+uus1 SS-Code ::=
+ '10000001'B
+
+-- UUS1 user-to-user signalling
+uus2 SS-Code ::= '10000010'B
+
+-- UUS2 user-to-user signalling
+uus3 SS-Code ::= '10000011'B
+
+-- UUS3 user-to-user signalling
+allBarringSS SS-Code ::= '10010000'B
+
+-- all barring SS
+barringOfOutgoingCalls SS-Code ::= '10010001'B
+
+-- barring of outgoing calls
+baoc SS-Code ::= '10010010'B
+
+-- barring of all outgoing calls
+boic SS-Code ::= '10010011'B
+
+-- barring of outgoing international calls
+boicExHC SS-Code ::= '10010100'B
+
+-- barring of outgoing international calls except those directed
+-- to the home PLMN
+barringOfIncomingCalls SS-Code ::=
+ '10011001'B
+
+-- barring of incoming calls
+baic SS-Code ::= '10011010'B
+
+-- barring of all incoming calls
+bicRoam SS-Code ::= '10011011'B
+
+-- barring of incoming calls when roaming outside home PLMN
+-- Country
+allPLMN-specificSS SS-Code ::=
+ '11110000'B
+
+plmn-specificSS-1 SS-Code ::= '11110001'B
+
+plmn-specificSS-2 SS-Code ::= '11110010'B
+
+plmn-specificSS-3 SS-Code ::= '11110011'B
+
+plmn-specificSS-4 SS-Code ::= '11110100'B
+
+plmn-specificSS-5 SS-Code ::= '11110101'B
+
+plmn-specificSS-6 SS-Code ::= '11110110'B
+
+plmn-specificSS-7 SS-Code ::= '11110111'B
+
+plmn-specificSS-8 SS-Code ::= '11111000'B
+
+plmn-specificSS-9 SS-Code ::= '11111001'B
+
+plmn-specificSS-A SS-Code ::= '11111010'B
+
+plmn-specificSS-B SS-Code ::= '11111011'B
+
+plmn-specificSS-C SS-Code ::= '11111100'B
+
+plmn-specificSS-D SS-Code ::= '11111101'B
+
+plmn-specificSS-E SS-Code ::= '11111110'B
+
+plmn-specificSS-F SS-Code ::= '11111111'B
+
+allCallPrioritySS SS-Code ::= '10100000'B
+
+-- reserved for possible future use
+-- all call priority SS
+emlpp SS-Code ::=
+ '10100001'B
+
+-- enhanced Multilevel Precedence Pre-emption (EMLPP) service
+allLCSPrivacyException SS-Code ::=
+ '10110000'B
+
+-- all LCS Privacy Exception Classes
+universal SS-Code ::= '10110001'B
+
+-- allow location by any LCS client
+callSessionRelated SS-Code ::= '10110010'B
+
+-- allow location by any value added LCS client to which a call/session
+-- is established from the target MS
+callSessionUnrelated SS-Code ::=
+ '10110011'B
+
+-- allow location by designated external value added LCS clients
+plmnoperator SS-Code ::=
+ '10110100'B
+
+-- allow location by designated PLMN operator LCS clients
+serviceType SS-Code ::=
+ '10110101'B
+
+-- allow location by LCS clients of a designated LCS service type
+allMOLR-SS SS-Code ::=
+ '11000000'B
+
+-- all Mobile Originating Location Request Classes
+basicSelfLocation SS-Code ::=
+ '11000001'B
+
+-- allow an MS to request its own location
+autonomousSelfLocation SS-Code ::=
+ '11000010'B
+
+-- allow an MS to perform self location without interaction
+-- with the PLMN for a predetermined period of time
+transferToThirdParty SS-Code ::=
+ '11000011'B
+
+-- allow an MS to request transfer of its location to another LCS client
+END
+
diff --git a/MAP/asn_src/GSM/MAP-SS-DataTypes.asn b/MAP/asn_src/GSM/MAP-SS-DataTypes.asn
new file mode 100644
index 0000000..ab8558f
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-SS-DataTypes.asn
@@ -0,0 +1,270 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-SS-DataTypes(14) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ RegisterSS-Arg, SS-Info, SS-Status, SS-SubscriptionOption, SS-ForBS-Code,
+ InterrogateSS-Res, USSD-Arg, USSD-Res, USSD-DataCodingScheme, USSD-String,
+ Password, GuidanceInfo, SS-List, SS-InfoList, OverrideCategory,
+ CliRestrictionOption, NoReplyConditionTime, ForwardingOptions, maxNumOfSS,
+ SS-Data, SS-InvocationNotificationArg, SS-InvocationNotificationRes,
+ CCBS-Feature, RegisterCC-EntryArg, RegisterCC-EntryRes, EraseCC-EntryArg,
+ EraseCC-EntryRes;
+
+IMPORTS
+ AddressString, ISDN-AddressString, ISDN-SubaddressString, FTN-AddressString,
+ IMSI, BasicServiceCode, AlertingPattern, EMLPP-Priority, MaxMC-Bearers,
+ MC-Bearers, ExternalSignalInfo
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)}
+ ExtensionContainer
+ FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
+ version8(8)}
+ SS-Code
+ FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-SS-Code(15) version8(8)};
+
+RegisterSS-Arg ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ forwardedToNumber [4] AddressString OPTIONAL,
+ forwardedToSubaddress [6] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] NoReplyConditionTime OPTIONAL,
+ ...,
+ defaultPriority [7] EMLPP-Priority OPTIONAL,
+ nbrUser [8] MC-Bearers OPTIONAL,
+ longFTN-Supported [9] NULL OPTIONAL}
+
+NoReplyConditionTime ::= INTEGER(5..30)
+
+SS-Info ::= CHOICE {
+ forwardingInfo [0] ForwardingInfo,
+ callBarringInfo [1] CallBarringInfo,
+ ss-Data [3] SS-Data}
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList,
+ ...}
+
+ForwardingFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] NoReplyConditionTime OPTIONAL,
+ ...,
+ longForwardedToNumber [9] FTN-AddressString OPTIONAL}
+
+SS-Status ::= OCTET STRING(SIZE (1))
+
+-- bits 8765: 0000 (unused)
+-- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+-- representing supplementary service state information
+-- as defined in TS 3GPP TS 23.011 [22]
+-- bit 4: "Q bit"
+-- bit 3: "P bit"
+-- bit 2: "R bit"
+-- bit 1: "A bit"
+ForwardingOptions ::= OCTET STRING(SIZE (1))
+
+-- bit 8: notification to forwarding party
+-- 0 no notification
+-- 1 notification
+-- bit 7: redirecting presentation
+-- 0 no presentation
+-- 1 presentation
+-- bit 6: notification to calling party
+-- 0 no notification
+-- 1 notification
+-- bit 5: 0 (unused)
+-- bits 43: forwarding reason
+-- 00 ms not reachable
+-- 01 ms busy
+-- 10 no reply
+-- 11 unconditional when used in a SRI Result,
+-- or call deflection when used in a RCH Argument
+-- bits 21: 00 (unused)
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList,
+ ...}
+
+CallBarringFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+SS-Data ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList BasicServiceGroupList OPTIONAL,
+ ...,
+ defaultPriority EMLPP-Priority OPTIONAL,
+ nbrUser [5] MC-Bearers OPTIONAL}
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent(0), temporaryDefaultRestricted(1), temporaryDefaultAllowed(2)
+}
+
+OverrideCategory ::= ENUMERATED {overrideEnabled(0), overrideDisabled(1)}
+
+SS-ForBS-Code ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ ...,
+ longFTN-Supported [4] NULL OPTIONAL}
+
+GenericServiceInfo ::= SEQUENCE {
+ ss-Status SS-Status,
+ cliRestrictionOption CliRestrictionOption OPTIONAL,
+ ...,
+ maximumEntitledPriority [0] EMLPP-Priority OPTIONAL,
+ defaultPriority [1] EMLPP-Priority OPTIONAL,
+ ccbs-FeatureList [2] CCBS-FeatureList OPTIONAL,
+ nbrSB [3] MaxMC-Bearers OPTIONAL,
+ nbrUser [4] MC-Bearers OPTIONAL,
+ nbrSN [5] MC-Bearers OPTIONAL}
+
+CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF CCBS-Feature
+
+maxNumOfCCBS-Requests INTEGER ::= 5
+
+CCBS-Feature ::= SEQUENCE {
+ ccbs-Index [0] CCBS-Index OPTIONAL,
+ b-subscriberNumber [1] ISDN-AddressString OPTIONAL,
+ b-subscriberSubaddress [2] ISDN-SubaddressString OPTIONAL,
+ basicServiceGroup [3] BasicServiceCode OPTIONAL,
+ ...}
+
+CCBS-Index ::= INTEGER(1..maxNumOfCCBS-Requests)
+
+InterrogateSS-Res ::= CHOICE {
+ ss-Status [0] SS-Status,
+ basicServiceGroupList [2] BasicServiceGroupList,
+ forwardingFeatureList [3] ForwardingFeatureList,
+ genericServiceInfo [4] GenericServiceInfo}
+
+USSD-Arg ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ...,
+ alertingPattern AlertingPattern OPTIONAL,
+ msisdn [0] ISDN-AddressString OPTIONAL}
+
+USSD-Res ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ...}
+
+USSD-DataCodingScheme ::= OCTET STRING(SIZE (1))
+
+-- The structure of the USSD-DataCodingScheme is defined by
+-- the Cell Broadcast Data Coding Scheme as described in
+-- TS 3GPP TS 23.038 [25]
+USSD-String ::= OCTET STRING(SIZE (1..maxUSSD-StringLength))
+
+-- The structure of the contents of the USSD-String is dependent
+-- on the USSD-DataCodingScheme as described in TS 3GPP TS 23.038 [25].
+maxUSSD-StringLength INTEGER ::=
+ 160
+
+Password ::=
+ NumericString
+ (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"))
+ (SIZE (4))
+
+GuidanceInfo ::= ENUMERATED {enterPW(0), enterNewPW(1), enterNewPW-Again(2)}
+
+-- How this information is really delivered to the subscriber
+-- (display, announcement, ...) is not part of this
+-- specification.
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF SS-Info
+
+BasicServiceGroupList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF BasicServiceCode
+
+maxNumOfBasicServiceGroups INTEGER ::= 13
+
+SS-InvocationNotificationArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString,
+ ss-Event [2] SS-Code,
+ -- The following SS-Code values are allowed :
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ ss-EventSpecification [3] SS-EventSpecification OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ b-subscriberNumber [5] ISDN-AddressString OPTIONAL,
+ ccbs-RequestState [6] CCBS-RequestState OPTIONAL}
+
+CCBS-RequestState ::= ENUMERATED {
+ request(0), recall(1), active(2), completed(3), suspended(4), frozen(5),
+ deleted(6)}
+
+SS-InvocationNotificationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-EventSpecification ::=
+ SEQUENCE SIZE (1..maxEventSpecification) OF AddressString
+
+maxEventSpecification INTEGER ::= 2
+
+RegisterCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Data [1] CCBS-Data OPTIONAL,
+ ...}
+
+CCBS-Data ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature,
+ translatedB-Number [1] ISDN-AddressString,
+ serviceIndicator [2] ServiceIndicator OPTIONAL,
+ callInfo [3] ExternalSignalInfo,
+ networkSignalInfo [4] ExternalSignalInfo,
+ ...}
+
+ServiceIndicator ::= BIT STRING {clir-invoked(0), camel-invoked(1)
+}(SIZE (2..32))
+
+-- exception handling:
+-- bits 2 to 31 shall be ignored if received and not understood
+RegisterCC-EntryRes ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature OPTIONAL,
+ ...}
+
+EraseCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Index [1] CCBS-Index OPTIONAL,
+ ...}
+
+EraseCC-EntryRes ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] SS-Status OPTIONAL,
+ ...}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-ST-DataTypes.asn b/MAP/asn_src/GSM/MAP-ST-DataTypes.asn
new file mode 100644
index 0000000..b8c1f2a
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-ST-DataTypes.asn
@@ -0,0 +1,84 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-ST-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-ST-DataTypes(27) version8(8)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ SecureTransportArg, SecureTransportRes, SecurityHeader, ProtectedPayload;
+
+IMPORTS
+ IMSI
+ FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
+ version8(8)};
+
+SecureTransportArg ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL}
+
+-- The protectedPayload carries the result of applying the security function
+-- defined in 3GPP TS 33.200 to the encoding of the argument of the securely
+-- transported operation
+SecureTransportRes ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL}
+
+-- The protectedPayload carries the result of applying the security function
+-- defined in 3GPP TS 33.200 to the encoding of the result of the securely
+-- transported operation
+SecurityHeader ::= SEQUENCE {
+ securityParametersIndex SecurityParametersIndex,
+ originalComponentIdentifier OriginalComponentIdentifier,
+ initialisationVector InitialisationVector OPTIONAL,
+ ...}
+
+ProtectedPayload ::= OCTET STRING(SIZE (1..3438))
+
+-- In protection mode 0 (noProtection) the ProtectedPayload carries the transfer
+-- syntax value of the component parameter identified by the
+-- originalComponentIdentifier.
+-- In protection mode 1 (integrityAuthenticity) the protectedPayload carries
+-- the transfer syntax value of the component
+-- parameter identified by the originalComponentIdentifier, followed by
+-- the 32 bit integrity check value.
+-- The integrity check value is the result of applying the hash algorithm
+-- to the concatenation of the transfer syntax value of the SecurityHeader,
+-- and the transfer syntax value of the component parameter.
+-- In protection mode 2 (confidentialityIntegrityAuthenticity) the protected
+-- payload carries the encrypted transfer syntax
+-- value of the component parameter identified by the
+-- originalComponentIdentifier, followed by the 32 bit integrity check value.
+-- The integrity check value is the result of applying the hash algorithm
+-- to the concatenation of the transfer syntax value of the SecurityHeader,
+-- and the encrypted transfer syntax value of the component parameter.
+-- See 33.200.
+-- The length of the protectedPayload is adjusted according to the capabilities of
+-- the lower protocol layers
+SecurityParametersIndex ::= OCTET STRING(SIZE (4))
+
+InitialisationVector ::= OCTET STRING(SIZE (14))
+
+-- the internal structure is defined as follows:
+-- Octets 1 to 4 : TVP. The TVP is a 32 bit time stamp. Its value is binary coded
+-- and indicates the number of intervals of 100 milliseconds
+-- elapsed since 1st January 2002, 0:00:00 UTC
+-- Octets 5 to 10: NE-Id. The NE-Id uniquely identifies the sending network entity
+-- within the PLMN. It is the entity's E.164 number without CC and
+-- NDC. It is TBCD-coded, padded with zeros.
+-- Octets 11 to 14: PROP. This 32 bit value is used to make the
+-- InitialisationVector unique within the same TVP period.
+-- The content is not standardized.
+OriginalComponentIdentifier ::= CHOICE {
+ operationCode [0] OperationCode,
+ errorCode [1] ErrorCode,
+ userInfo [2] NULL}
+
+OperationCode ::= CHOICE {localValue INTEGER,
+ globalValue OBJECT IDENTIFIER}
+
+ErrorCode ::= CHOICE {localValue INTEGER,
+ globalValue OBJECT IDENTIFIER}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-SecureTransportOperations.asn b/MAP/asn_src/GSM/MAP-SecureTransportOperations.asn
new file mode 100644
index 0000000..a94a4c2
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-SecureTransportOperations.asn
@@ -0,0 +1,52 @@
+MAP-SecureTransportOperations
+ {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-SecureTransportOperations(26)
+ version8(8)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ secureTransportClass1, secureTransportClass2, secureTransportClass3,
+ secureTransportClass4;
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ dataMissing, secureTransportError, unexpectedDataValue
+ FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Errors(10) version8(8)}
+ SecureTransportArg, SecureTransportRes
+ FROM MAP-ST-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-ST-DataTypes(27)
+ version8(8)};
+
+secureTransportClass1 OPERATION ::= {
+ --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT SecureTransportArg
+ RESULT SecureTransportRes
+ ERRORS {secureTransportError | dataMissing | unexpectedDataValue}
+ CODE local:78}
+
+secureTransportClass2 OPERATION ::= {
+ --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT SecureTransportArg
+ ERRORS {secureTransportError | dataMissing | unexpectedDataValue}
+ CODE local:79}
+
+secureTransportClass3 OPERATION ::= {
+ --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT SecureTransportArg
+ RESULT SecureTransportRes
+ CODE local:80}
+
+secureTransportClass4 OPERATION ::= {
+ --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT SecureTransportArg
+ CODE local:81}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-ShortMessageServiceOperations.asn b/MAP/asn_src/GSM/MAP-ShortMessageServiceOperations.asn
new file mode 100644
index 0000000..b9c6422
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-ShortMessageServiceOperations.asn
@@ -0,0 +1,88 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-ShortMessageServiceOperations {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3)
+ map-ShortMessageServiceOperations(9) version8(8)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ sendRoutingInfoForSM, mo-ForwardSM, mt-ForwardSM, reportSM-DeliveryStatus,
+ alertServiceCentre, informServiceCentre, readyForSM;
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported,
+ unknownSubscriber, unidentifiedSubscriber, illegalSubscriber,
+ illegalEquipment, teleserviceNotProvisioned, callBarred,
+ subscriberBusyForMT-SMS, sm-DeliveryFailure, messageWaitingListFull,
+ absentSubscriberSM
+ FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Errors(10) version8(8)}
+ RoutingInfoForSM-Arg, RoutingInfoForSM-Res, MO-ForwardSM-Arg,
+ MO-ForwardSM-Res, MT-ForwardSM-Arg, MT-ForwardSM-Res,
+ ReportSM-DeliveryStatusArg, ReportSM-DeliveryStatusRes,
+ AlertServiceCentreArg, InformServiceCentreArg, ReadyForSM-Arg,
+ ReadyForSM-Res
+ FROM MAP-SM-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-SM-DataTypes(16)
+ version8(8)};
+
+sendRoutingInfoForSM OPERATION ::= { --Timer m
+ ARGUMENT RoutingInfoForSM-Arg
+ RESULT RoutingInfoForSM-Res
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported |
+ unknownSubscriber | teleserviceNotProvisioned | callBarred |
+ absentSubscriberSM}
+ CODE local:45}
+
+mo-ForwardSM OPERATION ::= { --Timer ml
+ ARGUMENT MO-ForwardSM-Arg
+ RESULT MO-ForwardSM-Res
+ -- optional
+ ERRORS
+ {systemFailure | unexpectedDataValue | facilityNotSupported |
+ sm-DeliveryFailure}
+ CODE local:46}
+
+mt-ForwardSM OPERATION ::= { --Timer ml
+ ARGUMENT MT-ForwardSM-Arg
+ RESULT MT-ForwardSM-Res
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported |
+ unidentifiedSubscriber | illegalSubscriber | illegalEquipment |
+ subscriberBusyForMT-SMS | sm-DeliveryFailure | absentSubscriberSM}
+ CODE local:44}
+
+reportSM-DeliveryStatus OPERATION ::= { --Timer s
+ ARGUMENT ReportSM-DeliveryStatusArg
+ RESULT ReportSM-DeliveryStatusRes
+ -- optional
+ ERRORS
+ {dataMissing | unexpectedDataValue | unknownSubscriber |
+ messageWaitingListFull}
+ CODE local:47}
+
+alertServiceCentre OPERATION ::= { --Timer s
+ ARGUMENT AlertServiceCentreArg
+ RETURN RESULT TRUE
+ ERRORS {systemFailure | dataMissing | unexpectedDataValue}
+ CODE local:64}
+
+informServiceCentre OPERATION ::= { --Timer s
+ ARGUMENT InformServiceCentreArg
+ CODE local:63}
+
+readyForSM OPERATION ::= { --Timer m
+ ARGUMENT ReadyForSM-Arg
+ RESULT ReadyForSM-Res
+ -- optional
+ ERRORS
+ {dataMissing | unexpectedDataValue | facilityNotSupported |
+ unknownSubscriber}
+ CODE local:66}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-SupplementaryServiceOperations.asn b/MAP/asn_src/GSM/MAP-SupplementaryServiceOperations.asn
new file mode 100644
index 0000000..65aec22
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-SupplementaryServiceOperations.asn
@@ -0,0 +1,154 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-SupplementaryServiceOperations {itu-t identified-organization(4)
+ etsi(0) mobileDomain(0) gsm-Network(1) modules(3)
+ map-SupplementaryServiceOperations(8) version8(8)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ registerSS, eraseSS, activateSS, deactivateSS, interrogateSS,
+ processUnstructuredSS-Request, unstructuredSS-Request,
+ unstructuredSS-Notify, registerPassword, getPassword,
+ ss-InvocationNotification, registerCC-Entry, eraseCC-Entry;
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ systemFailure, dataMissing, unexpectedDataValue, unknownSubscriber,
+ bearerServiceNotProvisioned, teleserviceNotProvisioned, callBarred,
+ illegalSS-Operation, ss-ErrorStatus, ss-NotAvailable,
+ ss-SubscriptionViolation, ss-Incompatibility, pw-RegistrationFailure,
+ negativePW-Check, numberOfPW-AttemptsViolation, unknownAlphabet,
+ ussd-Busy, absentSubscriber, illegalSubscriber, illegalEquipment,
+ shortTermDenial, longTermDenial, facilityNotSupported
+ FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-Errors(10) version8(8)}
+ RegisterSS-Arg, SS-Info, SS-ForBS-Code, InterrogateSS-Res, USSD-Arg,
+ USSD-Res, Password, GuidanceInfo, SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes, RegisterCC-EntryArg, RegisterCC-EntryRes,
+ EraseCC-EntryArg, EraseCC-EntryRes
+ FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0)
+ mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14)
+ version8(8)}
+ SS-Code
+ FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-SS-Code(15) version8(8)};
+
+-- supplementary service handling operations
+registerSS OPERATION ::= { --Timer m
+ ARGUMENT RegisterSS-Arg
+ RESULT SS-Info
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue |
+ bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred |
+ illegalSS-Operation | ss-ErrorStatus | ss-Incompatibility}
+ CODE local:10}
+
+eraseSS OPERATION ::= { --Timer m
+ ARGUMENT SS-ForBS-Code
+ RESULT SS-Info
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue |
+ bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred |
+ illegalSS-Operation | ss-ErrorStatus}
+ CODE local:11}
+
+activateSS OPERATION ::= { --Timer m
+ ARGUMENT SS-ForBS-Code
+ RESULT SS-Info
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue |
+ bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred |
+ illegalSS-Operation | ss-ErrorStatus | ss-SubscriptionViolation |
+ ss-Incompatibility | negativePW-Check | numberOfPW-AttemptsViolation}
+ CODE local:12}
+
+deactivateSS OPERATION ::= { --Timer m
+ ARGUMENT SS-ForBS-Code
+ RESULT SS-Info
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue |
+ bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred |
+ illegalSS-Operation | ss-ErrorStatus | ss-SubscriptionViolation |
+ negativePW-Check | numberOfPW-AttemptsViolation}
+ CODE local:13}
+
+interrogateSS OPERATION ::= { --Timer m
+ ARGUMENT SS-ForBS-Code
+ RESULT InterrogateSS-Res
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue |
+ bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred |
+ illegalSS-Operation | ss-NotAvailable}
+ CODE local:14}
+
+processUnstructuredSS-Request OPERATION ::= { --Timer 10 minutes
+ ARGUMENT USSD-Arg
+ RESULT USSD-Res
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | unknownAlphabet |
+ callBarred}
+ CODE local:59}
+
+unstructuredSS-Request OPERATION ::= { --Timer ml
+ ARGUMENT USSD-Arg
+ RESULT USSD-Res
+ -- optional
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | absentSubscriber |
+ illegalSubscriber | illegalEquipment | unknownAlphabet | ussd-Busy}
+ CODE local:60}
+
+unstructuredSS-Notify OPERATION ::= { --Timer ml
+ ARGUMENT USSD-Arg
+ RETURN RESULT TRUE
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | absentSubscriber |
+ illegalSubscriber | illegalEquipment | unknownAlphabet | ussd-Busy}
+ CODE local:61}
+
+registerPassword OPERATION ::= { --Timer ml
+ ARGUMENT SS-Code
+ RESULT Password
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | callBarred |
+ ss-SubscriptionViolation | pw-RegistrationFailure | negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ LINKED {getPassword}
+ CODE local:17}
+
+getPassword OPERATION ::= { --Timer m
+ ARGUMENT GuidanceInfo
+ RESULT Password
+ CODE local:18}
+
+ss-InvocationNotification OPERATION ::= { --Timer m
+ ARGUMENT SS-InvocationNotificationArg
+ RESULT SS-InvocationNotificationRes
+ -- optional
+ ERRORS {dataMissing | unexpectedDataValue | unknownSubscriber}
+ CODE local:72}
+
+registerCC-Entry OPERATION ::= { --Timer m
+ ARGUMENT RegisterCC-EntryArg
+ RESULT RegisterCC-EntryRes
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | callBarred |
+ illegalSS-Operation | ss-ErrorStatus | ss-Incompatibility |
+ shortTermDenial | longTermDenial | facilityNotSupported}
+ CODE local:76}
+
+eraseCC-Entry OPERATION ::= { --Timer m
+ ARGUMENT EraseCC-EntryArg
+ RESULT EraseCC-EntryRes
+ ERRORS
+ {systemFailure | dataMissing | unexpectedDataValue | callBarred |
+ illegalSS-Operation | ss-ErrorStatus}
+ CODE local:77}
+
+END
+
diff --git a/MAP/asn_src/GSM/MAP-TS-Code.asn b/MAP/asn_src/GSM/MAP-TS-Code.asn
new file mode 100644
index 0000000..c89f93e
--- /dev/null
+++ b/MAP/asn_src/GSM/MAP-TS-Code.asn
@@ -0,0 +1,108 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MAP-TS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
+ gsm-Network(1) modules(3) map-TS-Code(19) version8(8)} DEFINITIONS ::=
+BEGIN
+
+TeleserviceCode ::= OCTET STRING(SIZE (1))
+
+-- This type is used to represent the code identifying a single
+-- teleservice, a group of teleservices, or all teleservices. The
+-- services are defined in TS GSM 22.003 [4].
+-- The internal structure is defined as follows:
+-- bits 87654321: group (bits 8765) and specific service
+-- (bits 4321)
+Ext-TeleserviceCode ::= OCTET STRING(SIZE (1..5))
+
+-- This type is used to represent the code identifying a single
+-- teleservice, a group of teleservices, or all teleservices. The
+-- services are defined in TS GSM 22.003 [4].
+-- The internal structure is defined as follows:
+-- OCTET 1:
+-- bits 87654321: group (bits 8765) and specific service
+-- (bits 4321)
+-- OCTETS 2-5: reserved for future use. If received the
+-- Ext-TeleserviceCode shall be
+-- treated according to the exception handling defined for the
+-- operation that uses this type.
+-- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+allTeleservices TeleserviceCode ::=
+ '00000000'B
+
+allSpeechTransmissionServices TeleserviceCode ::= '00010000'B
+
+telephony TeleserviceCode ::= '00010001'B
+
+emergencyCalls TeleserviceCode ::= '00010010'B
+
+allShortMessageServices TeleserviceCode ::= '00100000'B
+
+shortMessageMT-PP TeleserviceCode ::= '00100001'B
+
+shortMessageMO-PP TeleserviceCode ::= '00100010'B
+
+allFacsimileTransmissionServices TeleserviceCode ::= '01100000'B
+
+facsimileGroup3AndAlterSpeech TeleserviceCode ::= '01100001'B
+
+automaticFacsimileGroup3 TeleserviceCode ::= '01100010'B
+
+facsimileGroup4 TeleserviceCode ::= '01100011'B
+
+-- The following non-hierarchical Compound Teleservice Groups
+-- are defined in TS 3GPP TS 22.030:
+allDataTeleservices TeleserviceCode ::=
+ '01110000'B
+
+-- covers Teleservice Groups 'allFacsimileTransmissionServices'
+-- and 'allShortMessageServices'
+allTeleservices-ExeptSMS TeleserviceCode ::=
+ '10000000'B
+
+-- covers Teleservice Groups 'allSpeechTransmissionServices' and
+-- 'allFacsimileTransmissionServices'
+--
+-- Compound Teleservice Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+allVoiceGroupCallServices TeleserviceCode ::=
+ '10010000'B
+
+voiceGroupCall TeleserviceCode ::= '10010001'B
+
+voiceBroadcastCall TeleserviceCode ::= '10010010'B
+
+allPLMN-specificTS TeleserviceCode ::= '11010000'B
+
+plmn-specificTS-1 TeleserviceCode ::= '11010001'B
+
+plmn-specificTS-2 TeleserviceCode ::= '11010010'B
+
+plmn-specificTS-3 TeleserviceCode ::= '11010011'B
+
+plmn-specificTS-4 TeleserviceCode ::= '11010100'B
+
+plmn-specificTS-5 TeleserviceCode ::= '11010101'B
+
+plmn-specificTS-6 TeleserviceCode ::= '11010110'B
+
+plmn-specificTS-7 TeleserviceCode ::= '11010111'B
+
+plmn-specificTS-8 TeleserviceCode ::= '11011000'B
+
+plmn-specificTS-9 TeleserviceCode ::= '11011001'B
+
+plmn-specificTS-A TeleserviceCode ::= '11011010'B
+
+plmn-specificTS-B TeleserviceCode ::= '11011011'B
+
+plmn-specificTS-C TeleserviceCode ::= '11011100'B
+
+plmn-specificTS-D TeleserviceCode ::= '11011101'B
+
+plmn-specificTS-E TeleserviceCode ::= '11011110'B
+
+plmn-specificTS-F TeleserviceCode ::= '11011111'B
+
+END
+
diff --git a/MAP/asn_src/GSM/Makefile b/MAP/asn_src/GSM/Makefile
new file mode 100644
index 0000000..4c7b405
--- /dev/null
+++ b/MAP/asn_src/GSM/Makefile
@@ -0,0 +1,119 @@
+
+## I found it necessary to copy Remote-Operations-* here
+## TCAPINCLUDES = -I ../../../TCAP/itu/asn_src
+TCAPINCLUDES =
+
+ERLC = erlc
+ERLCFLAGS = -b beam -W -v
+
+ASNC = $(ERLC)
+ASNCFLAGS = -W -b ber_bin $(TCAPINCLUDES) +optimize +driver
+
+%.beam:%.erl
+ $(ERLC) $(ERLCFLAGS) $<
+
+.SECONDARY: %.erl
+%.erl:%.asn
+ $(ASNC) $(ASNCFLAGS) $<
+
+default: all
+
+all: MAP-SecureTransportOperations.beam \
+ MAP-MobileServiceOperations.beam \
+ MAP-LocationServiceOperations.beam \
+ MAP-OperationAndMaintenanceOperations.beam \
+ MAP-CallHandlingOperations.beam \
+ MAP-SupplementaryServiceOperations.beam \
+ MAP-ShortMessageServiceOperations.beam \
+ MAP-Group-Call-Operations.beam \
+ MAP-ApplicationContexts.beam \
+ MAP-DialogueInformation.beam \
+ MAP-Protocol.beam
+
+
+MAP-CommonDataTypes.erl: MAP-ExtensionDataTypes.erl \
+ MAP-TS-Code.erl MAP-BS-Code.erl MAP-SS-Code.erl
+MAP-ER-DataTypes.erl: MAP-ExtensionDataTypes.erl \
+ MAP-SS-DataTypes.erl MAP-CommonDataTypes.erl \
+ MAP-ST-DataTypes.erl MAP-SS-Code.erl
+MAP-ST-DataTypes.erl: MAP-CommonDataTypes.erl
+MAP-MS-DataTypes.erl: MAP-ER-DataTypes.erl \
+ MAP-SS-DataTypes.erl MAP-SS-Code.erl \
+ MAP-BS-Code.erl MAP-TS-Code.erl \
+ MAP-CommonDataTypes.erl MAP-ExtensionDataTypes.erl
+MAP-LCS-DataTypes.erl: MAP-SM-DataTypes.erl \
+ MAP-CommonDataTypes.erl MAP-ExtensionDataTypes.erl \
+ MAP-SS-DataTypes.erl MAP-MS-DataTypes.erl
+MAP-CH-DataTypes.erl: MAP-ExtensionDataTypes.erl \
+ MAP-MS-DataTypes.erl MAP-SS-DataTypes.erl \
+ MAP-CommonDataTypes.erl
+MAP-OM-DataTypes.erl: MAP-ExtensionDataTypes.erl \
+ MAP-CommonDataTypes.erl
+MAP-SS-DataTypes.erl: MAP-SS-Code.erl \
+ MAP-CommonDataTypes.erl MAP-ExtensionDataTypes.erl
+MAP-SM-DataTypes.erl: MAP-ExtensionDataTypes.erl \
+ MAP-CommonDataTypes.erl MAP-ER-DataTypes.erl
+MAP-GR-DataTypes.erl: MAP-ExtensionDataTypes.erl \
+ MAP-CommonDataTypes.erl MAP-TS-Code.erl \
+ MAP-MS-DataTypes.erl
+
+MAP-Errors.erl: MAP-ER-DataTypes.erl \
+ MAP-SS-DataTypes.erl
+
+MAP-SecureTransportOperations.erl: MAP-ST-DataTypes.erl \
+ MAP-Errors.erl
+MAP-MobileServiceOperations.erl: MAP-MS-DataTypes.erl \
+ MAP-Errors.erl
+MAP-LocationServiceOperations.erl: MAP-LCS-DataTypes.erl \
+ MAP-Errors.erl
+MAP-OperationAndMaintenanceOperations.erl: MAP-CommonDataTypes.erl \
+ MAP-Errors.erl MAP-OM-DataTypes.erl
+MAP-CallHandlingOperations.erl: MAP-CH-DataTypes.erl \
+ MAP-Errors.erl
+MAP-SupplementaryServiceOperations.erl: MAP-SS-Code.erl \
+ MAP-Errors.erl MAP-SS-DataTypes.erl
+MAP-ShortMessageServiceOperations.erl: MAP-SM-DataTypes.erl \
+ MAP-Errors.erl
+MAP-Group-Call-Operations.erl: MAP-GR-DataTypes.erl \
+ MAP-Errors.erl
+
+MAP-ApplicationContexts.erl: MobileDomainDefinitions.erl
+MAP-DialogueInformation.erl: MAP-ST-DataTypes.erl \
+ MobileDomainDefinitions.erl MAP-CommonDataTypes.erl \
+ MAP-ExtensionDataTypes.erl
+MAP-Protocol.erl: MAP-MobileServiceOperations.erl \
+ MAP-OperationAndMaintenanceOperations.erl \
+ MAP-CallHandlingOperations.erl \
+ MAP-SupplementaryServiceOperations.erl \
+ MAP-ShortMessageServiceOperations.erl \
+ MAP-Group-Call-Operations.erl \
+ MAP-LocationServiceOperations.erl \
+ MAP-SecureTransportOperations.erl
+
+.PHONY: clean
+clean:
+ rm -rf *.asn1db
+ rm -rf MobileDomainDefinitions.erl \
+ MAP-ApplicationContexts.erl MAP-BS-Code.erl \
+ MAP-CH-DataTypes.erl MAP-CallHandlingOperations.erl \
+ MAP-CommonDataTypes.erl MAP-DialogueInformation.erl \
+ MAP-ER-DataTypes.erl MAP-Errors.erl MAP-ExtensionDataTypes.erl \
+ MAP-GR-DataTypes.erl MAP-Group-Call-Operations.erl \
+ MAP-LCS-DataTypes.erl MAP-LocationServiceOperations.erl \
+ MAP-MS-DataTypes.erl MAP-MobileServiceOperations.erl \
+ MAP-OM-DataTypes.erl MAP-OperationAndMaintenanceOperations.erl \
+ MAP-Protocol.erl MAP-SM-DataTypes.erl \
+ MAP-SS-Code.erl MAP-SS-DataTypes.erl MAP-ST-DataTypes.erl \
+ MAP-SecureTransportOperations.erl \
+ MAP-ShortMessageServiceOperations.erl \
+ MAP-SupplementaryServiceOperations.erl MAP-TS-Code.erl
+ rm -rf MAP-ApplicationContexts.hrl MAP-MS-DataTypes.hrl \
+ MAP-CH-DataTypes.hrl MAP-OM-DataTypes.hrl \
+ MAP-DialogueInformation.hrl MAP-SM-DataTypes.hrl \
+ MAP-GR-DataTypes.hrl MobileDomainDefinitions.hrl \
+ MAP-LCS-DataTypes.hrl MAP-BS-Code.hrl \
+ MAP-CommonDataTypes.hrl MAP-ER-DataTypes.hrl \
+ MAP-ExtensionDataTypes.hrl MAP-SS-Code.hrl \
+ MAP-SS-DataTypes.hrl MAP-ST-DataTypes.hrl \
+ MAP-TS-Code.hrl
+ rm -rf *.beam
diff --git a/MAP/asn_src/GSM/MobileDomainDefinitions.asn b/MAP/asn_src/GSM/MobileDomainDefinitions.asn
new file mode 100644
index 0000000..3448725
--- /dev/null
+++ b/MAP/asn_src/GSM/MobileDomainDefinitions.asn
@@ -0,0 +1,35 @@
+-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+MobileDomainDefinitions {ccitt(0) identified-organization(4) etsi(0)
+ mobileDomain(0) mobileDomainDefinitions(0) version1(1)} DEFINITIONS ::=
+BEGIN
+
+-- Mobile DomainId
+mobileDomainId OBJECT IDENTIFIER ::=
+ {ccitt(0) identified-organization(4) etsi(0) mobileDomain(0)}
+
+-- Mobile Subdomains
+gsm-NetworkId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Network(1)}
+
+gsm-AccessId OBJECT IDENTIFIER ::= {mobileDomainId gsm-Access(2)}
+
+gsm-OperationAndMaintenanceId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Operation-Maintenance(3)}
+
+gsm-MessagingId OBJECT IDENTIFIER ::= {mobileDomainId gsm-Messaging(4)}
+
+-- Common Component Ids for structuring Mobile Subdomains
+CommonComponentId ::= INTEGER(0..9)
+
+ac-Id CommonComponentId ::= 0
+
+as-Id CommonComponentId ::= 1
+
+ase-Id CommonComponentId ::= 2
+
+moduleId CommonComponentId ::= 3
+
+er-Id CommonComponentId ::= 4
+
+END -- MobileDomainDefinitions
+
diff --git a/MAP/asn_src/GSM/README b/MAP/asn_src/GSM/README
new file mode 100644
index 0000000..2a31d09
--- /dev/null
+++ b/MAP/asn_src/GSM/README
@@ -0,0 +1,7 @@
+
+The ASN.1 modules here were derived from the following version
+of the Mobile Application Part (MAP) Specification:
+
+ ETSI TS 129 002 V5.6.2 (2003-07)
+
+
diff --git a/MAP/asn_src/Makefile b/MAP/asn_src/Makefile
new file mode 100644
index 0000000..f21d4e3
--- /dev/null
+++ b/MAP/asn_src/Makefile
@@ -0,0 +1,5 @@
+
+all:
+ cd gsm && $(MAKE)
+ cd ansi && $(MAKE)
+
diff --git a/MAP/doc/Makefile b/MAP/doc/Makefile
new file mode 100644
index 0000000..daa3ced
--- /dev/null
+++ b/MAP/doc/Makefile
@@ -0,0 +1,13 @@
+
+.PHONY: all
+all:
+ cd html && $(MAKE)
+
+.PHONY: doc
+doc:
+ cd html && $(MAKE) $@
+
+.PHONY: clean
+clean:
+ cd html && $(MAKE) $@
+
diff --git a/MAP/doc/html/Makefile b/MAP/doc/html/Makefile
new file mode 100644
index 0000000..e067c3e
--- /dev/null
+++ b/MAP/doc/html/Makefile
@@ -0,0 +1,31 @@
+## $Id: Makefile,v 1.2 2005/02/13 00:42:12 vances Exp $
+
+ERL = erl
+
+SRC = ../../src
+
+DOCS = map.html
+
+%.html:${SRC}/%.erl
+ ${ERL} -noshell -run edoc_run file '"$<"' '[{dir,"."}]' -s init stop
+
+%.html:${SRC}/ansi/%.erl
+ ${ERL} -noshell -run edoc_run file '"$<"' '[{dir,"."}]' -s init stop
+
+%.html:${SRC}/gsm/%.erl
+ ${ERL} -noshell -run edoc_run file '"$<"' '[{dir,"."}]' -s init stop
+
+
+.PHONY: all
+all: doc
+
+
+.PHONY: doc
+doc: ${DOCS}
+
+.PHONY: clean
+clean:
+ - rm ${DOCS}
+
+tcap.html: ${ESRC}/tcap.erl
+
diff --git a/MAP/doc/html/index.html b/MAP/doc/html/index.html
new file mode 100644
index 0000000..ec4523e
--- /dev/null
+++ b/MAP/doc/html/index.html
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>MAP User's Guide</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css">
+</head>
+<body bgcolor="white">
+ <h1>MAP User's Guide</h1>
+ <p>Copyright &#169; 2003-2005 Motivity Telecom Inc.</p>
+ <p><b>Version:</b> 1.0</p>
+ <p><b>Authors:</b> Vance Shipley (<a href="mailto:vances@motivity.ca"><tt>vances@motivity.ca</tt></a>).</p>
+
+ <p>The MAP application is a protocol stack implementation of the Mobile Application Part procedures.</p>
+
+ <h3>Application</h3>
+
+ <h3>Requirements</h3>
+ <p>This application includes only the MAP procedures and must be used with a seperate application providing the TCAP service.
+ The <a href="http://www.motivity.ca/tcap"><tt>tcap</tt></a> application may be used in conjunction with the
+ <a href="http://www.motivity.ca/sccp"><tt>sccp</tt></a> and
+ <a href="http://www.motivity.ca/nms"><tt>nms</tt></a> applications for a complete system.</p>
+
+ <h3>Process Communication</h3>
+ <p>
+ <a href="#figure1-1">Figure 1-1</a> depicts the message paths between processes.</p>
+
+ Figure 1-1<br>
+ <img alt="diagram of process communication" name="figure1-1" src="map_messaging.png"><br>
+
+ <h3>Modules</h3>
+
+ <h5><tt>map</tt></h5>
+ <p>This library module implements the user API for the application.</p>
+
+ <h5><tt>map_sup</tt></h5>
+ <p>This <tt>supervisor</tt> behaviour callback module implements the top level supervisor for the application.</p>
+
+ <h5><tt>map_load_fsm</tt></h5>
+ <p>This <tt>gen_fsm</tt> behaviour callback module implements the load control process.</p>
+
+ <h5><tt>map_sap_sup</tt></h5>
+ <p>This <tt>supervisor</tt> behaviour callback module implements the service access point (SAP) supervisors.</p>
+
+ <h5><tt>map_pm_sup</tt></h5>
+ <p>This <tt>supervisor</tt> behaviour callback module implements the protocol machine (PM) supervisors.</p>
+
+ <h5><tt>map_dsm_dsm</tt></h5>
+ <p>This <tt>gen_fsm</tt> behaviour callback module implements the dialogue state machines (DSM).</p>
+
+ <h5><tt>map_psm_fsm</tt></h5>
+ <p>This <tt>gen_fsm</tt> behaviour callback module implements the performing state machines (PSM).</p>
+
+ <h5><tt>map_rsm_fsm</tt></h5>
+ <p>This <tt>gen_fsm</tt> behaviour callback module implements the requesting state machines (RSM).</p>
+
+
+ <h3>Supervision Tree</h3>
+
+ <p>The processes which make up the MAP application are all instantiated under a single supervisor.
+ <a href="#figure1-2">Figure 1-2</a> shows the structure of the supervision tree.</p>
+
+ Figure 1-2<br>
+ <img alt="diagram of supervision tree" name="figure1-2" src="map_supervision.png"><br>
+
+ <h3>Common Primitives</h3>
+
+ <h4>MAP-User &#8594 MAP</h4>
+ <tt>{'MAP', 'OPEN', request, Parms}</tt><br>
+ <tt>{'MAP', 'CLOSE', request, Parms}</tt><br>
+ <tt>{'MAP', 'DELIMITER', request, Parms}</tt><br>
+ <tt>{'MAP', 'U-ABORT', request, Parms}</tt><br>
+
+ <h4>MAP &#8592 MAP-User</h4>
+ <tt>{'MAP', 'OPEN', indication, Parms}</tt><br>
+ <tt>{'MAP', 'CLOSE', indication, Parms}</tt><br>
+ <tt>{'MAP', 'DELIMITER', indication, Parms}</tt><br>
+ <tt>{'MAP', 'U-ABORT', indication, Parms}</tt><br>
+ <tt>{'MAP', 'P-ABORT', indication, Parms}</tt><br>
+ <tt>{'MAP', 'NOTICE', indication, Parms}</tt><br>
+
+ <h3>GSM Primitives</h3>
+
+ <h4>MAP-User &#8594 MAP</h4>
+ <tt>{'MAP', 'UPDATE_LOCATION', request, Parms}</tt><br>
+ <tt>{'MAP', 'CANCEL_LOCATION', request, Parms}</tt><br>
+ ...<br>
+
+ <h4>MAP &#8592 MAP-User</h4>
+ <tt>{'MAP', 'UPDATE_LOCATION', indication, Parms}</tt><br>
+ <tt>{'MAP', 'CANCEL_LOCATION', indication, Parms}</tt><br>
+ ...<br>
+
+ <h3>ANSI Primitives</h3>
+
+ <h4>MAP-User &#8594 MAP</h4>
+ <tt>{'MAP', 'REGNOT', request, Parms}</tt><br>
+ <tt>{'MAP', 'REGCANC', request, Parms}</tt><br>
+ ...<br>
+
+ <h4>MAP &#8592 MAP-User</h4>
+ <tt>{'MAP', 'REGNOT', indication, Parms}</tt><br>
+ <tt>{'MAP', 'REGCANC', indication, Parms}</tt><br>
+ ...<br>
+
+</body>
+</html>
diff --git a/MAP/doc/html/map_messaging.png b/MAP/doc/html/map_messaging.png
new file mode 100644
index 0000000..49d1dd9
--- /dev/null
+++ b/MAP/doc/html/map_messaging.png
Binary files differ
diff --git a/MAP/doc/html/map_supervision.png b/MAP/doc/html/map_supervision.png
new file mode 100644
index 0000000..1be3d11
--- /dev/null
+++ b/MAP/doc/html/map_supervision.png
Binary files differ
diff --git a/MAP/doc/map_messaging.graffle b/MAP/doc/map_messaging.graffle
new file mode 100644
index 0000000..f287e28
--- /dev/null
+++ b/MAP/doc/map_messaging.graffle
@@ -0,0 +1,4860 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>ApplicationVersion</key>
+ <array>
+ <string>com.omnigroup.OmniGrafflePro</string>
+ <string>138.17.0.133677</string>
+ </array>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {756, 553}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>CreationDate</key>
+ <string>2011-03-07 15:09:56 +0100</string>
+ <key>Creator</key>
+ <string>Vance Shipley</string>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>GraphDocumentVersion</key>
+ <integer>6</integer>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>71</integer>
+ </dict>
+ <key>ID</key>
+ <integer>75</integer>
+ <key>Points</key>
+ <array>
+ <string>{647.845, 168.342}</string>
+ <string>{468.154, 69.1424}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>11</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>70</integer>
+ </dict>
+ <key>ID</key>
+ <integer>74</integer>
+ <key>Points</key>
+ <array>
+ <string>{108.155, 168.342}</string>
+ <string>{287.845, 69.1424}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>3</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>9</integer>
+ </dict>
+ <key>ID</key>
+ <integer>73</integer>
+ <key>Points</key>
+ <array>
+ <string>{310.499, 74.6357}</string>
+ <string>{310.5, 162.849}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>70</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>10</integer>
+ </dict>
+ <key>ID</key>
+ <integer>72</integer>
+ <key>Points</key>
+ <array>
+ <string>{445.499, 74.6357}</string>
+ <string>{445.5, 162.849}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>71</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{413.999, 38.6357}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>71</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.2</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>12</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 PSM}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{278.999, 38.6357}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>70</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.2</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>12</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 RSM}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{25.2606, 30.2215}, {705.478, 60.627}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>50</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.8</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Align</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+
+\f0\fs24 \cf0 MAP}</string>
+ </dict>
+ <key>TextPlacement</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>9</integer>
+ </dict>
+ <key>ID</key>
+ <integer>48</integer>
+ <key>Points</key>
+ <array>
+ <string>{357.154, 150.647}</string>
+ <string>{331.347, 167.354}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>46</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>10</integer>
+ </dict>
+ <key>ID</key>
+ <integer>47</integer>
+ <key>Points</key>
+ <array>
+ <string>{398.847, 150.647}</string>
+ <string>{424.654, 167.354}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>46</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{346.5, 119.152}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>46</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 LOAD}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>4</integer>
+ </dict>
+ <key>ID</key>
+ <integer>40</integer>
+ <key>Points</key>
+ <array>
+ <string>{280.264, 399.986}</string>
+ <string>{303.139, 345.59}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>30</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>12</integer>
+ </dict>
+ <key>ID</key>
+ <integer>39</integer>
+ <key>Points</key>
+ <array>
+ <string>{475.736, 399.986}</string>
+ <string>{452.861, 345.59}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>29</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>4</integer>
+ </dict>
+ <key>ID</key>
+ <integer>37</integer>
+ <key>Points</key>
+ <array>
+ <string>{365.559, 453.57}</string>
+ <string>{318.162, 345.548}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>28</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>12</integer>
+ </dict>
+ <key>ID</key>
+ <integer>36</integer>
+ <key>Points</key>
+ <array>
+ <string>{381.967, 453.736}</string>
+ <string>{436.755, 345.382}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>28</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>28</integer>
+ </dict>
+ <key>ID</key>
+ <integer>35</integer>
+ <key>Points</key>
+ <array>
+ <string>{295.924, 429.777}</string>
+ <string>{350.2, 458.745}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>30</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>29</integer>
+ </dict>
+ <key>ID</key>
+ <integer>34</integer>
+ <key>Points</key>
+ <array>
+ <string>{397.191, 459.352}</string>
+ <string>{459.127, 429.171}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>28</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{241.403, 399.491}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>30</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 TSM}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{451.597, 399.491}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>29</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 TSM}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{341.721, 453.032}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>28</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 TCO}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>13</integer>
+ </dict>
+ <key>ID</key>
+ <integer>27</integer>
+ <key>Points</key>
+ <array>
+ <string>{207.644, 274.479}</string>
+ <string>{116.357, 285.219}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>15</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>12</integer>
+ </dict>
+ <key>ID</key>
+ <integer>26</integer>
+ <key>Points</key>
+ <array>
+ <string>{639.477, 308.51}</string>
+ <string>{476.523, 324.955}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>14</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>4</integer>
+ </dict>
+ <key>ID</key>
+ <integer>25</integer>
+ <key>Points</key>
+ <array>
+ <string>{115.634, 294.104}</string>
+ <string>{280.366, 322.831}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>13</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>13</integer>
+ </dict>
+ <key>ID</key>
+ <integer>24</integer>
+ <key>Points</key>
+ <array>
+ <string>{286.379, 192.427}</string>
+ <string>{109.621, 277.271}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>9</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>14</integer>
+ </dict>
+ <key>ID</key>
+ <integer>23</integer>
+ <key>Points</key>
+ <array>
+ <string>{468.127, 193.372}</string>
+ <string>{647.873, 292.856}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>10</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>12</integer>
+ </dict>
+ <key>ID</key>
+ <integer>22</integer>
+ <key>Points</key>
+ <array>
+ <string>{445.5, 198.849}</string>
+ <string>{445.5, 310.086}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>10</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>4</integer>
+ </dict>
+ <key>ID</key>
+ <integer>21</integer>
+ <key>Points</key>
+ <array>
+ <string>{310.5, 198.849}</string>
+ <string>{310.5, 310.086}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>9</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>9</integer>
+ </dict>
+ <key>ID</key>
+ <integer>20</integer>
+ <key>Points</key>
+ <array>
+ <string>{251.6, 254.474}</string>
+ <string>{297.4, 197.224}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>15</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>14</integer>
+ </dict>
+ <key>ID</key>
+ <integer>19</integer>
+ <key>Points</key>
+ <array>
+ <string>{670.5, 198.849}</string>
+ <string>{670.5, 287.379}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>11</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>11</integer>
+ </dict>
+ <key>ID</key>
+ <integer>18</integer>
+ <key>Points</key>
+ <array>
+ <string>{477, 180.849}</string>
+ <string>{639, 180.849}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>10</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>13</integer>
+ </dict>
+ <key>ID</key>
+ <integer>17</integer>
+ <key>Points</key>
+ <array>
+ <string>{85.5002, 198.849}</string>
+ <string>{85.5002, 270.849}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>3</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>3</integer>
+ </dict>
+ <key>ID</key>
+ <integer>16</integer>
+ <key>Points</key>
+ <array>
+ <string>{279, 180.849}</string>
+ <string>{117, 180.849}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>9</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{207, 252.849}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>15</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 ISM}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{639, 287.379}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>14</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 CCO}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{54.0002, 270.849}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>13</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 CCO}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{414, 310.086}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>12</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 DHA}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{639, 162.849}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>11</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 PSM}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{414, 162.849}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>10</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 DSM}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{279, 162.849}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>9</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 DSM}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{279, 310.086}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>4</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 DHA}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{54.0002, 162.849}, {63, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>3</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>8</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 RSM}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{25.2614, 106.662}, {705.478, 113.905}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>41</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.8</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Align</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+
+\f0\fs24 \cf0 MAP}</string>
+ </dict>
+ <key>TextPlacement</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{38.5806, 385.909}, {678.838, 113.905}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>44</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Align</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+
+\f0\fs24 \cf0 Transaction Sub-layer}</string>
+ </dict>
+ <key>TextPlacement</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{38.5806, 247.088}, {678.838, 125.881}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>45</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Align</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+
+\f0\fs24 \cf0 Component Sub-layer}</string>
+ </dict>
+ <key>TextPlacement</key>
+ <integer>2</integer>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{25.2608, 235.898}, {705.478, 286.881}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>42</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.8</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.8</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Align</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+
+\f0\fs24 \cf0 TCAP}</string>
+ </dict>
+ <key>TextPlacement</key>
+ <integer>2</integer>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict>
+ <key>ShowsGrid</key>
+ <string>YES</string>
+ </dict>
+ <key>GuidesLocked</key>
+ <string>NO</string>
+ <key>GuidesVisible</key>
+ <string>YES</string>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>ImageCounter</key>
+ <integer>1</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>LinksVisible</key>
+ <string>NO</string>
+ <key>MagnetsVisible</key>
+ <string>NO</string>
+ <key>MasterSheets</key>
+ <array/>
+ <key>ModificationDate</key>
+ <string>2011-03-08 00:14:07 +0100</string>
+ <key>Modifier</key>
+ <string>Vance Shipley</string>
+ <key>NotesVisible</key>
+ <string>NO</string>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>OriginVisible</key>
+ <string>NO</string>
+ <key>PageBreaks</key>
+ <string>YES</string>
+ <key>PrintInfo</key>
+ <dict>
+ <key>NSBottomMargin</key>
+ <array>
+ <string>float</string>
+ <string>41</string>
+ </array>
+ <key>NSLeftMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSPaperSize</key>
+ <array>
+ <string>size</string>
+ <string>{792, 612}</string>
+ </array>
+ <key>NSRightMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSTopMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ </dict>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>QuickLookPreview</key>
+ <data>
+ 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
+ dCA0IDAgUiAvUmVzb3VyY2VzIDcgMCBSIC9Db250ZW50cyA1IDAgUiAvTWVkaWFCb3gg
+ WzAgMCA3NTYgNTUzXQo+PgplbmRvYmoKNyAwIG9iago8PCAvUHJvY1NldCBbIC9QREYg
+ L1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgXSAvQ29sb3JTcGFjZSA8PCAvQ3My
+ IDI3IDAgUgovQ3MxIDggMCBSID4+IC9Gb250IDw8IC9GMS4wIDI4IDAgUiA+PiAvWE9i
+ amVjdCA8PCAvSW02IDE5IDAgUiAvSW04IDIzIDAgUgovSW05IDI1IDAgUiAvSW0xIDkg
+ MCBSIC9JbTUgMTcgMCBSIC9JbTIgMTEgMCBSIC9JbTMgMTMgMCBSIC9JbTcgMjEgMCBS
+ IC9JbTQKMTUgMCBSID4+IC9TaGFkaW5nIDw8IC9TaDEgMjkgMCBSIC9TaDQgMzIgMCBS
+ IC9TaDExIDM5IDAgUiAvU2gxNCA0MiAwIFIgL1NoMTUKNDMgMCBSIC9TaDcgMzUgMCBS
+ IC9TaDYgMzQgMCBSIC9TaDUgMzMgMCBSIC9TaDkgMzcgMCBSIC9TaDMgMzEgMCBSIC9T
+ aDEyIDQwIDAgUgovU2gxMyA0MSAwIFIgL1NoOCAzNiAwIFIgL1NoMiAzMCAwIFIgL1No
+ MTAgMzggMCBSID4+ID4+CmVuZG9iagoyOSAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAw
+ IFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9E
+ b21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNDUg
+ MCBSID4+CmVuZG9iagozMiAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRp
+ bmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAw
+ IDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNDYgMCBSID4+CmVu
+ ZG9iagozOSAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMg
+ L0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0
+ ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNDcgMCBSID4+CmVuZG9iago0MiAw
+ IG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBb
+ IDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFs
+ c2UgZmFsc2UgXSAvRnVuY3Rpb24gNDggMCBSID4+CmVuZG9iago0MyAwIG9iago8PCAv
+ Q29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAg
+ MCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2Ug
+ XSAvRnVuY3Rpb24gNDkgMCBSID4+CmVuZG9iagozNSAwIG9iago8PCAvQ29sb3JTcGFj
+ ZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4
+ MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rp
+ b24gNTAgMCBSID4+CmVuZG9iagozNCAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIg
+ L1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21h
+ aW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTEgMCBS
+ ID4+CmVuZG9iagozMyAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdU
+ eXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEg
+ XSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTIgMCBSID4+CmVuZG9i
+ agozNyAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nv
+ b3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5k
+ IFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTMgMCBSID4+CmVuZG9iagozMSAwIG9i
+ ago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAg
+ MCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2Ug
+ ZmFsc2UgXSAvRnVuY3Rpb24gNTQgMCBSID4+CmVuZG9iago0MCAwIG9iago8PCAvQ29s
+ b3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAz
+ Ni45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAv
+ RnVuY3Rpb24gNTUgMCBSID4+CmVuZG9iago0MSAwIG9iago8PCAvQ29sb3JTcGFjZSA0
+ NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBd
+ IC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24g
+ NTYgMCBSID4+CmVuZG9iagozNiAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1No
+ YWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4K
+ WyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTcgMCBSID4+
+ CmVuZG9iagozMCAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBl
+ IDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAv
+ RXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTggMCBSID4+CmVuZG9iagoz
+ OCAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3Jk
+ cyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsg
+ ZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTkgMCBSID4+CmVuZG9iagoxOSAwIG9iago8
+ PCAvTGVuZ3RoIDIwIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dp
+ ZHRoIDE2MiAvSGVpZ2h0IDEwOCAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA2
+ MCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNjEgMCBSIC9CaXRzUGVyQ29t
+ cG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg
+ 9U9tCy+IQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAwHtgzQgAAQplbmRzdHJlYW0KZW5k
+ b2JqCjIwIDAgb2JqCjI1MgplbmRvYmoKMjMgMCBvYmoKPDwgL0xlbmd0aCAyNCAwIFIg
+ L1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxNjQgL0hlaWdodCAx
+ MDggL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgNjAgMCBSIC9JbnRlbnQgL1Bl
+ cmNlcHR1YWwgL1NNYXNrIDYzIDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIg
+ L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3QgQAAAADDoPlTH+SFUGHAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDjwMDz5AAAQplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqCjI1
+ NAplbmRvYmoKMjUgMCBvYmoKPDwgL0xlbmd0aCAyNiAwIFIgL1R5cGUgL1hPYmplY3Qg
+ L1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxNDQ4IC9IZWlnaHQgMTU4IC9JbnRlcnBvbGF0
+ ZQp0cnVlIC9Db2xvclNwYWNlIDYwIDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFz
+ ayA2NSAwIFIgL0JpdHNQZXJDb21wb25lbnQKOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+
+ PgpzdHJlYW0KeAHt0DEBAAAAwqD1T20JT4hAYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAgc/AAHmmAAEKZW5kc3RyZWFtCmVuZG9iagoyNiAwIG9iagozMDE3CmVu
+ ZG9iago5IDAgb2JqCjw8IC9MZW5ndGggMTAgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0
+ eXBlIC9JbWFnZSAvV2lkdGggMTQ0OCAvSGVpZ2h0IDYxMCAvSW50ZXJwb2xhdGUKdHJ1
+ ZSAvQ29sb3JTcGFjZSA2MCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNjcg
+ MCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3Ry
+ ZWFtCngB7dABDQAAAMKg909tDjeIQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBv4G
+ BnFIAAEKZW5kc3RyZWFtCmVuZG9iagoxMCAwIG9iagoxMTU3OAplbmRvYmoKMTcgMCBv
+ YmoKPDwgL0xlbmd0aCAxOCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdl
+ IC9XaWR0aCAxNjIgL0hlaWdodCAxMDggL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3Bh
+ Y2UgNjAgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNrIDY5IDAgUiAvQml0c1Bl
+ ckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3QMQEA
+ AADCoPVPbQsviEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwMB7YM0IAAEKZW5kc3RyZWFt
+ CmVuZG9iagoxOCAwIG9iagoyNTIKZW5kb2JqCjExIDAgb2JqCjw8IC9MZW5ndGggMTIg
+ MCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTM5NCAvSGVp
+ Z2h0IDI4OCAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA2MCAwIFIgL0ludGVu
+ dCAvUGVyY2VwdHVhbCAvU01hc2sgNzEgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0Zp
+ bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tCU+IQGHAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgIHPwABhzgAB
+ CmVuZHN0cmVhbQplbmRvYmoKMTIgMCBvYmoKNTI3NgplbmRvYmoKMTMgMCBvYmoKPDwg
+ L0xlbmd0aCAxNCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0
+ aCAxMzk0IC9IZWlnaHQgMjY0IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xvclNwYWNlIDYw
+ IDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayA3MyAwIFIgL0JpdHNQZXJDb21w
+ b25lbnQKOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0DEBAAAAwqD1
+ T20IX4hAYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDLwDA9mgAAEKZW5kc3RyZWFtCmVuZG9iagox
+ NCAwIG9iago0ODM4CmVuZG9iagoyMSAwIG9iago8PCAvTGVuZ3RoIDIyIDAgUiAvVHlw
+ ZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE2MiAvSGVpZ2h0IDExMCAv
+ SW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA2MCAwIFIgL0ludGVudCAvUGVyY2Vw
+ dHVhbCAvU01hc2sgNzUgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxh
+ dGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tB2+IQGHAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgw8AwPQ1AABCmVuZHN0cmVhbQplbmRvYmoKMjIgMCBvYmoKMjU3
+ CmVuZG9iagoxNSAwIG9iago8PCAvTGVuZ3RoIDE2IDAgUiAvVHlwZSAvWE9iamVjdCAv
+ U3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE0NDggL0hlaWdodCAyNjQgL0ludGVycG9sYXRl
+ CnRydWUgL0NvbG9yU3BhY2UgNjAgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNr
+ IDc3IDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+
+ CnN0cmVhbQp4Ae3QAQ0AAADCoPdP7ewBESgMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg4AMDgL8AAQplbmRzdHJlYW0KZW5kb2Jq
+ CjE2IDAgb2JqCjUwMjQKZW5kb2JqCjczIDAgb2JqCjw8IC9MZW5ndGggNzQgMCBSIC9U
+ eXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTM5NCAvSGVpZ2h0IDI2
+ NCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1Bl
+ ckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3c2VeU
+ V5eA8SjzVFBQUFBMBcgMFqVoCYqCGBREcUJJVEQxRAxKghJn1DigRCUOBJxQI8aI4pgY
+ p6z+1/q8OAQSO7vy9b7p1c+5SVa2a1/8Lp6cdXjxk084CCCAAAIIIIAAAgj8fxCYwkEA
+ AQQQ+E8F/P3fhNk/9c8TwEEAAQQQ+BcCf/bTqvU/lfddbQMCAgMDgzgIIIAAAv+hQGBg
+ QMB4e//H6L693JraBgUFB4eEhL49YRwEEEAAAf8E3nUzJCQ42KT6bXU/3tzx4AZYuTWx
+ DQsPj4iIiIyMjOIggAACCPgrYKpp2hkRHhYWGhpiqhto3XQ/0lwruFZvQ0xtTWujbLbo
+ mBg7BwEEEEDgXwnExETbbFEmvCa675r7t+SOB9fcb63eRtmi7fbYOIcjPj4hwclBAAEE
+ EPBTICEhPt7hiIu1m+xGRoRb91zrmvuXn6BZwQ203hOs3tpjHY4EZ2KSy5WckpLKQQAB
+ BBDwTyAlJTnZ5UpyOuMdcfYY09yw0JCPJNd6UjAX3NCISFtMrCMh0ZWcmprudmdkZnEQ
+ QAABBPwWyMxwu9NSU0x14x32aJt1zf17cqeY4AaFhFkXXKu3praZWdk5uXn5+QUFhRwE
+ EEAAAVmgoKAgPz8vNyc7K9OdluJyxseZa+675E58Vxh/UwgJjYiKtjucrlR3ZnZOfkFR
+ scfj9XpncBBAAAEE/BLweks804uLCvJysjLSU5ISHHYrucFBAZNecq0rbrAV3FiHMzk9
+ MzuvsNjjnTnL5ysrLy+fy0EAAQQQkAVML8vm+GaXzvR6igpyp2WkupwmueZhIdj89GzC
+ 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
+ 15OsCmVuZHN0cmVhbQplbmRvYmoKNzQgMCBvYmoKNTgyNAplbmRvYmoKNjMgMCBvYmoK
+ PDwgL0xlbmd0aCA2NCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9X
+ aWR0aCAxNjQgL0hlaWdodCAxMDggL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVy
+ cG9sYXRlIHRydWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29k
+ ZSA+PgpzdHJlYW0KeAHtm/k/W/kax7vMtbVaY99rjURCRG2l1NKxK0JK0YhSW1NbG9Wq
+ tNSaQVBBG0ttRWnRKr0zc1/zr93Pc05CYpiaqd4br3ufH5zVOW+fz/M8iXO+31On/h8m
+ psDp3TApMIbqzKHBHP7vAeP2LNrZs2d/QPxjX9A+HGLPwcn/YVIdHgNHZGZm5ubmFvsC
+ u8zM6Ogu6n8MlOUj6QiOQbO0tLI6x8Z5JnQbVlaWlgAHq44Umn5/TsZe8DF4uL0lsZ23
+ tr5w4cLFixdtED8iaIlN7LS2Po8TrBhSBpTx/vv5rhNQz0d454kNWLa2dvYUDrvBbNrZ
+ 2gKYWEFKoKyglKLfRU5WQQCaIfEIz5roiM3B0cnJ2dnFlcJNF8yGi7Ozk5Ojg729nS2R
+ kqRWLOcPLOaxVpEhIPSDfAwe6MDm5u7h4el5yQvh7e3tg8CCti55enp4uLu5ujgTKYGS
+ oNCT5DxmTCKkFISCAIR+JB/wXF3dPcDm7ePr6+fP4QQEcLk8XXC5AQEcjr+fr6+PN1g9
+ 3F1dAUqc0NMQ8/SxtCRqgkS4B2jvAD43D0+i8+cEcHmBfIEgKFiICNEFrQcHCQT8QB43
+ gONPpJ4ebuB0sN/D1Iv5rZbrCElCWAwFIaAL8REel8cXBAlDRKLLYWHhEZGRkVFRUVcQ
+ WGAjIjws7LJIFCIMEvB5XAIlThfISZjnzzGes5Z/C6WekKrE+oINAULAS96+/gG8QEGw
+ UBQaFh4ZdSU65mps3LX4+PiEhIREBBbYuBYXezUm+kpUZHhYqEgYLAjkBfj7el+CnIRp
+ Q55bWJjpEvPvUury0AyEJKGdAyno5ePH4QYKhCGhYRGRV2Ji4+ITEpOuJyenpKalpWdk
+ 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
+ amVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE2MiAvSGVpZ2h0IDEwOCAvQ29sb3JT
+ cGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVu
+ dCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2b+VsTaRaFXXrYFKXZ
+ d1lDAoEQZEeQxWZHIBBBwBAE2UQ2DaBIFGRNAwEkgIZFdhAVUASnu+fpf23OrUogYVAZ
+ xZnqZ+b+QK1UvZxz702o+r5Tp/4fHFLg9H5wDerMZ4NB/m/h4uYs2NmzZ39C/O1Q0D4c
+ Ys/Byf9RTh0cg0ZcJiampqZmhwK7TEzo6D7ofwiTpSPZCI0BMze3sDjHxnkmdBsWFubm
+ wAapjhN6/mhKxljQMXC4uTmRnbe0vHDhwsWLF60QPyNoiU3stLQ8jxMsGE4Gk3H9Rzmu
+ E09PR3DniQxQ1tY2thR2+8Fs2lhbA5dIwUmYrJiUmj9ASlY94Jkg4QjOktiIzM7ewcHR
+ 0cmZwkUXzIaTo6ODg72dra2NNXGSnBYs5U8s5AnWjiEetIN0DBzYQObi6ubm7n7JA+Hp
+ 6emFwIK2Lrm7u7m5ujg7ORInYZKY0JKkPFFI4qPUg3rAg3YkHeCcnV3dQObp5e3t48vj
+ +fnx+QJd8Pl+fjyer4+3t5cnSN1cnZ2BSZTQ0hDy9Ak0IWp6xHeAZ2sHOhc3d2Lz5fnx
+ Bf4BQmFgkAgRrAtaDwoUCgP8BXw/ni9xuru5gNLO9gBSL+T3ma3jI/lgLtSDeE5ER3B8
+ QYAwUBQsFl8ODQ0Lj4iIiIyMjEJggY3wsNDQy2JxsChQGCDgEyZROkFKgjx/jnGbNfvb
+ GfV8VBuWF6wID+Jd8vT29RP4C4NE4pDQsIjIqOiYK7FxV+Pj4xMSEhIRWGDjalzslZjo
+ qMiIsNAQsShI6C/w8/X2vAQpCdKK3DYzM9El5Lcx6vLPBHwkn40dqefh5cPj+wtFwSGh
+ 4RFRMbFx8QmJSdeSk1NS09LSMzIyMhFYpKelpaYkJ19LSkyIj4uNiYoIDw0JFgn9+Twf
+ Lw9S0s6GhNxn/JZ8NOKz+tnW3tGZ1OMJAgJF4tDwyOjYq/FAS0nLyMzKzs6VSPLypRQ3
+ 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
+ ZePDLtXYi7nl15uQkJJQ/4d/XaLjnKG/Gn2+QMTN18tzL8ZUXQ8bK0skqXFhQZSIF5GI
+ B8XMEFKh+Iki4tPyZTXN7d2MySjkXZJQf8nj3P445+ivRz7D5jeMzd3tzTWy/DQkop+u
+ VIwJz1vZoRsGRyakS+VIw95hzfTC6tst1mTdFY9z8+Odo7sgEe7tbL1dXZjWDPciEeXS
+ 9ITIYJSKHXq2oYZoh+fRr70EwVGJmTfkdxXKPvXEDKXhx0+/7Ut4vJsf76x9xN8+faRE
+ nJlQ9ykVd+U3MhOjggVe6NkgPGiI1LBB6OolEBNhGbphn3pyBr3mvQHh8W593LNYxD/+
+ AOF79JuZSSKsKyNCscDL9a9KyGWX0W04XinUDznfbTjfsTn+qXeK898cQMj5b1/0HZvT
+ 32C5/1/AX+A/Kc7/N3qK8//RnyKbuf1U5K/wZIl5iM3hp3OwGQ+JufyEE4TsmwDuPiVm
+ Rfzsk3a86flvP2lnRGRemXH2bcW+z5x94wNC5o0Kh9+a6X3m7pvHU3rEr729nfuet7dz
+ 3/P2lvUZozBYRC6+ATdC/NZRBJubzFgCo1EEyyc1ioB8RrWQilwdiXGAaMnV0SwGiFwd
+ EaRDxMBDzo6q2kc0p6F9nByZxiCe8Oi+tpMd3cciUkkfGiEZzpkRkkBkug6HR5niTRAQ
+ OT1Sl0VE82at5uRoZ9ZpRkZqPFwcMU4y6q3m6Kh7ei0JRDYdjWYueHzPzAWMZT+5mQuG
+ jIazP5i5Kd86+4PBO7nZHwaMqBn9BB9uzaBhGNl85OwsJD0jJaQOknMzuYiRKWw9JOqG
+ a7PhdIy60mbn7HFuRiEDqVOS/GZmFlLxcGhWJssISEZKrs5sNaI8w9HZwTpIqh0Skz51
+ ODjDep+S4dSTsrzGP/FnHHtqkcFVf9gqw8M1qB/21/7/wv9jCvwTR1N/hQplbmRzdHJl
+ YW0KZW5kb2JqCjcwIDAgb2JqCjQwMzcKZW5kb2JqCjY3IDAgb2JqCjw8IC9MZW5ndGgg
+ NjggMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTQ0OCAv
+ SGVpZ2h0IDYxMCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1
+ ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh
+ bQp4Ae3d7ZvPBd7/8VyMwYwxw5hhGMZMLkY0Jmo0JRNSwko1shXJtEqRXTWlVaJV4qyk
+ ONGF0kEtrbLZlC6O81/7fb60Z7rY892N37f3ncfnxt55bfvueNx4Hp/jM8NedZWHAAEC
+ BAgQIECAAIH/vwIDPAQIECDw+wr81owX/1YDf3wGeQgQIECg3AI/Rndg0eD/M9c/NHrQ
+ oMGDB1d4CBAgQOD3FCjKO2hQKdn/OdWXX6SLRldUDBlSWTn08jPMQ4AAAQLlFPihtpWV
+ Q4ZUVBStvlTqX32rvpTpQaVIF4keNnx4VVVVdXX1CA8BAgQIlFegaG1R3OHDhw0dWllK
+ 9eVS//LzRynTpUpXFo0uCj2ipmZkbW2dhwABAgTKL1BbO7KmZkRR6+FFqi+X+pcfPy5l
+ uniXLlV6RM3IurpRo+vrx4xpaGj0ECBAgEA5BRoaxoyprx89qq6I9YhSqYt36uKV+ueh
+ LmV6cOmLR6nSdaPq6xsax45raho/YUKzhwABAgTKKTBhwvimpnFjGxvq60fVXip16ZX6
+ F6EuffQoXqaHVlXX1I6qbxjbNL65eVJLy+TWNg8BAgQIlFegdXJLy6Tm5vFNYxtKpa4e
+ Xvr2UXqj/skn6gFFpisqh5VepkuVLhrd2jZl6rTp7e0zZlzjIUCAAIEyCcyYMaO9ffq0
+ qVPaWotWF6UeXVdTXXU51D/p9KWvHpVDq0aMrKtvbGpuaZ0ytX3GzFkdHZ2dndd5CBAg
+ QKB8AkVnOzpmzZzRPvXq1pbmpsb6upEjSqEuffm44oW69Do9pJTpUfWN4ye1Tpl+zayO
+ zjnXd3Xd2N3dfZOHAAECBMokUES2+8auruvndHbMumb6lNZJ40uhLj59DCm+fPy004Mr
+ hg6vLt6mx05oaZt2TUfn3K4bb5q/oGfhokWLFnsIECBAoEwCRWQXLexZMP+mG7vmdnZc
+ M63tUqhL36iLF+orOv3D63TxbbrI9NXtszqvn3fzglsXL7lj6bLlK/7gIUCAAIHyCaxY
+ vmzpHUsW37rg5nnXd85qb2spvVHXVP3shXpA8Tt5Q4ePqC0+ehSZ7pjTdXPPotvvXLHy
+ 7nt7V6/xECBAgEA5BVb33nv3yhV33r6o5+auOde2l96oR9eO+NkLddHp4ut0zaiGpklt
+ 7R1zu3sWL12xqnfNA2vXrd/Q1/eIhwABAgTKJNDX17dh/bq1D6zpXbVi6eKe7rlFqCc2
+ NVx6ob7yw8eAgRWVpdfpsc2t02bN6e5ZsmxV7x/Xre/buOmJzVue3OohQIAAgTIJPPnk
+ ls1PbNrYt37dH3vvWrakp3vOzGmtzWPrixfqyoorPlAXv+1RvE7XNTS1TL2ms6tnyfK7
+ 16x9eOOmzVu3Pd3/7HYPAQIECJRP4Nn+p7dt3bxp48Nr19y9fMmCrs5rprQ0jSm9UBe/
+ 8fG/v5h3qdMjRzc2t07vuP7mxUWm1/Vt2rKtf/uOF3bu2u0hQIAAgfIJ7Nr5wo7t/du2
+ bOpbt+buZYtumnvt9NbmxtEjf97pIcOqa+ubJl19Tee8nqV3rVn3yONb+597YdffXt67
+ b7+HAAECBMonsG/vy3/b9cJz/Vsff2Tdmrvu6JnXOePqiePqa6uHDbnyfXpw5bARdQ3j
+ W6bOmnvzohW9a/se//MzO3bt2bv/9QNvvuUhQIAAgfIJvHng9f179+za8cyfN/Wt7V1e
+ vFDPmtpS/CRxxLDKwVd89xhcObxmVOOE1vaOrgW3r/rjw49t7d+x+5X9bxw8dPjo0WMe
+ AgQIECiTwNGjRw8fOvjG/ld27+jf+tjDa+5acssNHe2tExpH1Qz/WaeraorP020zOm+8
+ 9c7etX/aXGR672tvHjryznvHP/jQQ4AAAQJlEvjgg+PvvXPk0Juv7d294+nNf1p779LS
+ h4+24gN1TdVPOl38usfI+nGTpsyce9OiFWvWb/rL9hdfee3g4WPvf/jRyVMfewgQIECg
+ TAKnTp386MP3jx0++NorL27/y6b19y1fVPxqXukDdekHiVd897jU6eK38mZdP3/Jyvv7
+ Nve/sGf/m4ffOX7i1Cenz3zqIUCAAIEyCZw5c/qTUyeOv3P4zf17nu/f3Hf/ytvmFx+o
+ JzX9SqeLX/domVZ8nr7j7rUbt27ftfeNQ8eOf/TxmU/Pfn7OQ4AAAQJlEvj887Ofnvn4
+ o+PHDr2x98XtWzc+uOr24gN18YPE+tqfv09X145pmjy9o6tn6T0Pbdr217/tP3jk/SLT
+ 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
+ gWXLli1devuSxQt75nd3zZk9s5TpxvraEcXr9JU/Rryq9OGj+EJdfPkoQj2xbWr7rNnX
+ Xd/VfdP8W3p6bl3oIUCAAIHyCdza03PL/Ju6u66/rmNm+9TWUqaLrx7F1+krP3uUOj2o
+ YsjQ4dWXQt08+eqp7TOvnd05Z+4NXV3z5t3oIUCAAIEyCcybN6+r64a5czpnX1tU+uqW
+ 5kuZrh5+6XX6x88epU6XXqiHVpVC3TBuwsTJbVOmtc+YOevajo7Zszs9BAgQIFAmgdmz
+ Z3d0XDtr5oz2aVPaJk+cMK5hdF1NkenS6/QVn6eL3/soXqhLoS7eqGtHjWlsmtA8aXJr
+ 25SpU6dNb/cQIECAQDkFpk+bOnVKW2vLpOYJTY1jRtX+kOkrf4pY+vW84oV6UEUp1FU1
+ I+vqxzSObRo/oXnipJaWyZNbPQQIECBQPoHJk1taJk1snjC+aWzjmNF1I0dUld6mix8i
+ /vR1+sdQDyu+fdTWjaqvb2hsHDuuqalpvIcAAQIEyilQlHbc2MbGhvr6UXUja6qrhpU+
+ evwy01cNKL1RD64YUjm0VOripbpu1Oj64hnjIUCAAIHyCpRiO3pUXRHpy5UecjnTV/4U
+ sfTh49+hvlTq4VVV1SNqilqPrK2trfMQIECAQPkEis6OLApdM6K6qmp48S49pOI/ZPpy
+ qEuv1EWpK4cOHTasiPWlp9pDgAABAuUT+KG1w4cNG1pE+odKDxzwi7fp/32lHjiolOoi
+ 1kWti1x7CBAgQOB3ECiKW0r05Vfp4ieIv17pyx8/is/UxYfqItbFU/pHPAQIECDwOwiU
+ olu0t5TgAf9HpS+9VBcfqks/U/QQIECAwO8uUArw5RT/xv8s/QMeAgQIEPgdBH5jl/3X
+ CBAgQIAAAQIECBAgQIAAAQIECBAgQIDA7yfw/wCvW3pbCmVuZHN0cmVhbQplbmRvYmoK
+ NjggMCBvYmoKOTMxMwplbmRvYmoKNjUgMCBvYmoKPDwgL0xlbmd0aCA2NiAwIFIgL1R5
+ cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxNDQ4IC9IZWlnaHQgMTU4
+ IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVy
+ 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
+ tcFojom1xztdmxLdSckez+YUBgEEEEBATYHNHk9ykjtxk8sRb4+NMRvfZVpsp1d9iii+
+ R71xZfOhvKijjCZzjNVmj3M4nAkul2sTgwACCCCgpoAobYLT4Yiz26wx5mij+AhRvKaV
+ rcfaTisParGiFh8mKqWONpktVmuszS4mjkEAAQQQUFNASa0t1mq1mE2i0mLnEaZTMr3u
+ Oa28qIOUHbUuVCm1SLXSajEWSwyDAAIIIKCmgMWi5FY0WkRaqXSoTtlNf5jp96EWT2pR
+ 6vCISL2ItcFgMDIIIIAAAmoLiNqKROsjI8JXKq08pj+W6ZUdtXhSK9uPUKXVotZiIhkE
+ EEAAAXUFlNgq0Q0LFU/pkOCVSq/bTf/++zEpyw8l1aLVyoQyCCCAAAJ/hMC76Ia8i/QH
+ nyD+u9Irf7JRfPPj3QSvTAiDAAIIIKCuwLvcvm+vqPDaLH/8r8Q/tjLvfxV/QAABBBBQ
+ V+C37H48yvxdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAYL3A/wGhKsgi
+ CmVuZHN0cmVhbQplbmRvYmoKNjYgMCBvYmoKNDcwMAplbmRvYmoKNzEgMCBvYmoKPDwg
+ L0xlbmd0aCA3MiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0
+ aCAxMzk0IC9IZWlnaHQgMjg4IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBv
+ bGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUg
+ Pj4Kc3RyZWFtCngB7dzZU9RXt4DhKPNMQ0NDM4M0g2DTijaiIIqiIAZRQZwQxRAxKBEl
+ 4hAcgqIkihMRoxJNMCoG5xCn1PnXzv6hn2Lil9VJrYtTdd59k4tlrYvn4s2u3d188gkH
+ AQQQQAABBBBAAIH/DwLTOAgggAAC/1bA1/9NmP3T3x8/DgIIIIDAPxB430+r1n9X3re1
+ 9fPz9/cP4CCAAAII/EsBf38/v8n2/tfovrncmtoGBAQGBgUFvzkhHAQQQAAB3wTedjMo
+ KDDQpPpNdT/e3Mng+lm5NbENCQ0NCwsLDw+P4CCAAAII+CpgqmnaGRYaEhIcHGSq62/d
+ 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
+ +fNmu/NdmSnO+Ngo64o75Rn3E5Ncf/OSa94VTHJTs1x5hUWz53pLF5SVV1QsXsJBAAEE
+ EPBFYHFFxaLystL53mKPuyAvO8MKbnREWHDQ1EcFq7jWJTc0fDK5KRkzXHkFs4o8c4rn
+ eb0lJfM5CCCAAAKyQElJiXfe3OI5HnfhzDxXVnpKYnzsmzcF/+nvn3Gt4lqX3OAwK7nx
+ icmpGVnZOXn5BYWz3O6iIg8HAQQQQEAWKCoqcrtnFRTk5bqyTW+TEuJio80jbnDgh1fc
+ yUuulVxzy42OiXM4k1PSMjKzsl2unNw8DgIIIICAbwK5uTku14yszPS0lKREhz3GBDfU
+ BPfDK+7kJdcvwEpuWGSUzR7nSHAmJaekpqWnZ2RkchBAAAEEfBHIyMhIT09LTUl2OhPi
+ 7eZFIWLyhus/5athb37qa94VJpMbYl4Wom0xdnu8w5GQ6HQ6kzgIIIAAAj4KmGgmJjgc
+ cfbYGFuUueBaTwomuFNfca3mTrOS6x8QGBRsNddcdG0xsXZz4jgIIIAAAj4LmGya2Nqi
+ o8z91lxwgwI+Ftx3yZ1sbmhYWHhEpOluVHR0tI2DAAIIIOCLgClmdFSUiWdEeJh1vw16
+ c8GdPu3d783ePCq8veVa11zT3KDg4JAQk93JE85BAAEEEPBJ4E01Q0NDQoKt3Jr7rXlR
+ +POTwtvqWi8L0/2s6Jrsmu6a8HIQQAABBP6ZgIlnoKltgL/1gGt6+9cL7rvmWtE11fXz
+ N8cqLwcBBBBA4J8JWP2cvNxauf2vvX2TXfMPJrNrpZeDAAIIIPDvBKyWvr3M+vQf699z
+ EEAAAQT+kYBPfeUfIYAAAggggAACCCCAAAIIIIAAAggggAACCPzfFPhfFA5tRwplbmRz
+ dHJlYW0KZW5kb2JqCjcyIDAgb2JqCjYxMDUKZW5kb2JqCjYxIDAgb2JqCjw8IC9MZW5n
+ dGggNjIgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTYy
+ IC9IZWlnaHQgMTA4IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0
+ cnVlIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3Ry
+ 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
+ j3Pz452juyAR7u5sv1lbmtWM9iMR5dKMxKgQlIo9erahhmiHFujX3oKQ6KSs6/I7CuWA
+ emqO0vDj51/3JDzezY931h7ir58/UiLOTakHlIo78utZSdEhAm/0bBDuN0Rq2CB08xaI
+ ibAc3XBAPT2HXvPegPB4tz7uWSzi77+D8D36zdw0EdaXE6FY4O32dyXkssvoNhyvFOqH
+ nO82nO/YHP/UO8X5bw4g5Py3L/qOzelvsNz/L+Bv8J8U5/8bPcX5/+hPkc3cfiryd3iy
+ xDzE5vDTOdiMh8RcfsIJQvZNAHefErMiHvmkHW96Tv5Ju/ZPPWlnRGRemXH2bcWez5x9
+ 4wNC5o0Kh9+a6X3m7pvHU3rEr729XfiWt7cL3/L2lvUZozBYRC6+ATdCPMlRBKsnNYqA
+ fEa1kIpcHYmxj2jJ1dEsBohcHRGkQ8TAQ86OqtpDNKOhfZwcmcYgnvDovvaTHd3HIlJJ
+ HxghGXGSIyQjvmWEJBCZrsPhUaZ4EwRETo/UZRHRvFmrOTnamXWakZEaDxdHjJOMeqs5
+ OuqeXksCkU1Ho5kLnt8ycwFj2U9u5oIho+HsD2Zuyl+d/cHgndzsDwNG1Ix+gg+3ZtAw
+ jGw+cnYWkp6RElIHybmZXMTIFLYeEnXDtdlwOkZdabNz9jg3o5CB1ClJfjMzC6l4ODQr
+ k2UEJCMlV2e2GlGe4ejsYB0k1Q6JSZ86HJxhvUfJcOpJWV7jn/gzjj21yOCq322V4eEa
+ 1Hf7a/9/4f8xBf4F0kB/iQplbmRzdHJlYW0KZW5kb2JqCjYyIDAgb2JqCjQwNDEKZW5k
+ b2JqCjc1IDAgb2JqCjw8IC9MZW5ndGggNzYgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0
+ eXBlIC9JbWFnZSAvV2lkdGggMTYyIC9IZWlnaHQgMTEwIC9Db2xvclNwYWNlCi9EZXZp
+ Y2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRl
+ ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7Zv5O1t5+8e7zEMpaux7rZEQImorpUjH
+ rggpRSNKbVVbG6UqLbVmEFTQxlJbUW1pq9VnZp5r/rXv+z4nIfGlNa0+z5nrmvsHZ3XO
+ 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
+ LSv5YpjAFz0bhHsNkRo2CD18BWIiLEc37NdMzaLXvDciPNqtj3oWi/jHHyB8j34zO0WE
+ 9eVEKBb4evxdCbnsMroNxyuF+iHnuw3nOzbHP/VOcP6bAwg5/+2LvmNz+hss9/8L+Bv8
+ J8X5/0ZPcP4/+hNkM7efivwdniwxD7E5/HQONuMhMZefcIKQfRPA3afErIiHPmnHm57/
+ 9ZN2RkTmlRln31bs+szZNz4gZN6ocPitmcFn7r55PGFA/Nrb2/nveXs7/z1vb1mfMQqD
+ ReTiG3ATxG8dRbC5yYwlMBlFsHJcowjIZ1QLqcjVkRh7iNZcHc1ihMjVEUF6RAw85Oyo
+ ql1ECxrax8mRaQziMY/uazve0X0sIpX0vhGSUZwZIQlEputweJQp3gQBkdMjdVlENG/W
+ ak6OdmadZmSkxsPFEeMko8Fqjo66p9eSQGTT0WTmgvf3zFzAWPbjm7lgzGg8+4OZm/Kt
+ sz8YvOOb/WHEiJoxTPDh1gwahpHNR87OQjIwUkLqITk3k4sYmcI2QKJuuDYbTs+oL212
+ zh7nZhQykHolyW9mZiEVD4dmZbKMgGSk5OrMVhPKUxydHayHpNohMelTh4MzrHcpGU4D
+ Kctr+hN/xpGnFhld9YetMjxcg/phf+0/F/5HgX8U+IsK/B+1Fn+FCmVuZHN0cmVhbQpl
+ bmRvYmoKNzYgMCBvYmoKNDA0MwplbmRvYmoKNzcgMCBvYmoKPDwgL0xlbmd0aCA3OCAw
+ IFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxNDQ4IC9IZWln
+ aHQgMjY0IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9C
+ aXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB
+ 7d3pV5RXtoBxlXkqKCgoLEAmBQpBKEVLcADFoAjGESUxELSMEUUxKkpEEROVSKs4EcAB
+ hwZtMcQp0Taa1f/aPS/aEdS+uz/c130/POdDVrK2K9v1+/Css04VOmUKBwEEEEAAAQQQ
+ QAABBP5vBaZyEEAAAQQ+rcB/m3Hzu5r27gRxEEAAAQTsFngX3Wmmwf9rrt82OigoODg4
+ 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
+ in0cBBBAAAH7BIqLiuYUFsz25uZkZ6anTk8yt2mTaes6PeF52vw51OaTRCvU1o06IdHt
+ SU3LyMyeOSsnNy/Py0EAAQQQsFMgLy83Z9bM7MyMtFSPOzEh7m2mJ36KaP11AeZCHRRi
+ hTrKEet0Jbqne1LS0tIzMjIzszgIIIAAAnYKZGZmZKSnpaV4kt2JLmesI8q6TZsPESdf
+ p9+FOsK8fcQ5412JSe7k6R6PJyUlJZWDAAIIIGCTgIlsimnt9GR3UqIr3mku01ERH8/0
+ lKnWjTo4JNS6Ukc7TKqd8QkulysxMTGJgwACCCBgn4DprKltQrzTRNpU2lymQ0OCrdv0
+ uy9PW88e5rwNtVXqCJPqmBiHIzY2Ls4Em4MAAgggYKOAKW1srMMRE2Mibe7SoSH/IdNv
+ Qm1dqa1Sh5tWR0ZZJ5qDAAIIIGCvwHhtI02jw/+q9Edu039dqacFWakOCQ0NDbNyzUEA
+ AQQQ+BQCYWGh5iJtXaXNk8d/qvSbxw/zTG0eqk2sg61ccxBAAAEEPo2Aqa5pr5XgqR++
+ TI/fpd/9w/wK6xdyEEAAAQQ+uYDc6He1Nv9mfjkHAQQQQODTCEzqL/+BAAIIIIAAAggg
+ gAACCCCAAAIIIIAAAggggMD/A4H/AeBQ5V4KZW5kc3RyZWFtCmVuZG9iago3OCAwIG9i
+ ago1ODQyCmVuZG9iago3OSAwIG9iago8PCAvTGVuZ3RoIDgwIDAgUiAvTiAzIC9BbHRl
+ cm5hdGUgL0RldmljZVJHQiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGF
+ VM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi
+ 0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWA
+ BOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoH
+ hP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhT
+ zSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHC
+ CxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJK
+ gnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQ
+ EEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8
+ Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwa
+ P+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdW
+ m5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinS
+ bZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIv
+ bODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOW
+ ls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw
+ /bBS+fmsUtl+ThrWgZf6b8C8/UUKZW5kc3RyZWFtCmVuZG9iago4MCAwIG9iago3MzcK
+ ZW5kb2JqCjggMCBvYmoKWyAvSUNDQmFzZWQgNzkgMCBSIF0KZW5kb2JqCjgxIDAgb2Jq
+ Cjw8IC9MZW5ndGggODIgMCBSIC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0
+ ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AdVZeThVbde/9z6j4xzzPB7zPM9knsk8
+ izjmeSZUUkmhiCIhRSKZQplKZpIGGjQbijIlFRHKt+nped7vet/3v++f776uc+/fWWvd
+ 615nr7XXvtc6ALAvUCIiQmA6AELDYqJsjfXIzi6uZNxrAAE8YAAEgKV4R0foWlvvBv91
+ fB9FpJHxRGpb138V+88Meh/faG8AIGuE7eUT7R2K4BsAwHreEVExAKDWEPrwvpgIBKPv
+ IpgpCjEQwW+2sf9vvLSNvXYwBr0jY2+rDwCGDQA8kUKJ8geAJIjQyXHe/ogekgEAWIYw
+ n8AwABidEazlHUDxAYA9H5GRDA0N38a9CBb1+hc9/v+CKRSvv3VSKP5/49+/BVmJbGwQ
+ GB0RQknY+fJ/OYWGxCL3a2cwIDMxLMRy2zcsyGfGh2Jgjly5kM+viJAdnyEyEIdvmIMd
+ QtvGkmFellZ/YS2/KCNbBCNrIeuIGL1tjNwzyC8ixtr+L3pSYoC+JYKJCP2sb7ThHz2X
+ gihm2z6jQegNUbG2DggWRHBndJydIYKRiIKmEgPsnf6SWfbxNfiLDsN+gUamv2VghsAY
+ 0+29mBCf8weHm2/bgOwFKwNzEAJ8QSyIQuYwIAV2A31g8NcsBfwABeHEIbxoEAw+IDgU
+ WRGOrAlHMPkvOf1/oxjtrPNH1v1vjWTgjcjG/r3n793IyJ5/dAYCHwT/oVOQPbZ529ZF
+ ewQe+WfPPxLb+naska2SnZXd/GMTWhgtj1ZC66E10VpoNUBGs6A5gBRaEa2K1kVrozUQ
+ nhowAlOIZv8/Nm7rD23wi8sPT1B3DEC427/d6w8XOO5IB/79/d8sAIEPF5oX/lgAQIxv
+ PPIcAKAfHpEQFegfEEPWRZ5cX0myaZi3tCRZXlZObpv9/2Zs56zfxn6z3clFEMujf2i+
+ rwFQNwKAquwfWsAQANVVAHCU/EMTlUWee1oAame8Y6PifutDb18wSB6kRSKUHfAAASCK
+ 3Gd5oAw0gA4wBGbACtgDF7AXiZ8AJAajwD5wABwGqSADnAa5oABcBJfBVVADGkAzuA26
+ QD8YAsPgGXgNJsA0mAdL4DvYgCAIB5EgRogd4oWEIAlIHlKFtCBDaDdkC7lAnpA/FAbF
+ Qgego1AGlAMVQCVQJVQPtUJd0CA0Ar2EJqFZ6Cu0DqNgIswEc8PCsAysCuvC5rA97A77
+ w5FwIpwCZ8L5cClcDTfBXfAQ/AyegOfhFRRAUaNYUHwoKZQqSh9lhXJF+aGiUEmodFQe
+ qhRVi2pDDaCeoCZQC6gfaCyaEU1GSyFxaoJ2QHujI9FJ6JPoAvRVdBO6F/0EPYleQv/C
+ kDBcGAmMOsYU44zxx+zDpGLyMOWYm5g+zDPMNOY7FotlwYpgVbAmWBdsEHY/9iT2ArYO
+ 24kdwb7HruBwOHacBE4TZ4Wj4GJwqbjzuGpcB+4xbhq3hqfG8+Ll8UZ4V3wY/gg+D38N
+ fwf/GP8Rv0FFRyVEpU5lReVDlUCVRVVG1Ub1iGqaaoNATxAhaBLsCUGEw4R8Qi2hj/CG
+ 8I2ampqfWo3ahjqQOpk6n/o69V3qSeofRAaiOFGf6EaMJWYSK4idxJfEbyQSSZikQ3Il
+ xZAySZWkHtIYaY2GkUaaxpTGh+YQTSFNE81jmkVaKlohWl3avbSJtHm0jbSPaBfoqOiE
+ 6fTpKHRJdIV0rXTP6VboGenl6K3oQ+lP0l+jH6SfYcAxCDMYMvgwpDBcZuhheM+IYhRg
+ 1Gf0ZjzKWMbYxzjNhGUSYTJlCmLKYKphesi0xMzArMjsyBzPXMjczjzBgmIRZjFlCWHJ
+ YmlgGWVZZ+Vm1WX1ZU1jrWV9zLrKxsmmw+bLls5Wx/aMbZ2dzG7IHsyezd7M/pYDzSHO
+ YcOxj6OYo49jgZOJU4PTmzOds4HzFRfMJc5ly7Wf6zLXfa4Vbh5uY+4I7vPcPdwLPCw8
+ OjxBPGd57vDM8jLyavEG8p7l7eCdIzOTdckh5HxyL3mJj4vPhC+Wr4TvId8Gvwi/A/8R
+ /jr+twIEAVUBP4GzAt0CS4K8ghaCBwSrBF8JUQmpCgUInRMaEFoVFhF2Ej4u3Cw8I8Im
+ YiqSKFIl8kaUJKotGilaKvpUDCumKhYsdkFsWBwWVxIPEC8UfyQBSyhLBEpckBiRxEiq
+ SYZJlko+lyJK6UrFSVVJTUqzSO+WPiLdLL0oIyjjKpMtMyDzS1ZJNkS2TPa1HIOcmdwR
+ uTa5r/Li8t7yhfJPFUgKRgqHFFoUvihKKPoqFiu+UGJUslA6rtSt9FNZRTlKuVZ5VkVQ
+ xVOlSOW5KpOqtepJ1btqGDU9tUNqt9V+qCurx6g3qH/WkNII1rimMbNLZJfvrrJd7zX5
+ NSmaJZoTWmQtT61LWhPafNoU7VLtdzoCOj465TofdcV0g3SrdRf1ZPWi9G7qreqr6x/U
+ 7zRAGRgbpBs8NGQwdDAsMBwz4jfyN6oyWjJWMt5v3GmCMTE3yTZ5bspt6m1aabpkpmJ2
+ 0KzXnGhuZ15g/m63+O6o3W0WsIWZxRmLN5ZClmGWzVbAytTqjNVbaxHrSOtbNlgba5tC
+ mw+2crYHbAfsGO087K7ZfbfXs8+yf+0g6hDr0O1I6+jmWOm46mTglOM04SzjfNB5yIXD
+ JdClxRXn6uha7rqyx3BP7p5pNyW3VLdRdxH3ePfBvRx7Q/a2e9B6UDwaPTGeTp7XPDcp
+ VpRSyoqXqVeR15K3vvc573kfHZ+zPrO+mr45vh/9NP1y/Gb8Nf3P+M8GaAfkBSwE6gcW
+ BH4JMgm6GLQabBVcEbwV4hRSF4oP9QxtDWMICw7rDecJjw8fiZCISI2YiFSPzI1cijKP
+ Ko+Got2jW2KYkMPh/VjR2GOxk3FacYVxa/sc9zXG08eHxd9PEE9IS/iYaJR4ZT96v/f+
+ 7gN8Bw4fmDyoe7AkCUrySuo+JHAo5dB0snHy1cOEw8GHHxyRPZJzZPmo09G2FO6U5JT3
+ x4yPVaXSpEalPj+ucfziCfSJwBMP0xTSzqf9SvdJv5chm5GXsXnS++S9U3Kn8k9tZfpl
+ PsxSzio+jT0ddno0Wzv7ag59TmLO+zMWZ5rOks+mn13O9cgdzFPMu3iOcC723ET+7vyW
+ 84LnT5/fLAgoeFaoV1hXxFWUVrR6wefC42Kd4tqL3BczLq5fCrz0osS4pKlUuDTvMvZy
+ 3OUPZY5lA1dUr1SWc5RnlP+sCKuYuGp7tbdSpbLyGte1rCq4KrZqttqterjGoKalVqq2
+ pI6lLuM6uB57fa7es360wbyhu1G1sfaG0I2im4w305ugpoSmpeaA5okWl5aRVrPW7jaN
+ tpu3pG9V3Oa7XdjO3J51h3An5c5WR2LHSmdE50KXf9f7bo/u1z3OPU97bXof9pn33e03
+ 6u8Z0B3ouKt59/ag+mDrPdV7zUPKQ033le7ffKD04OZD5YdNj1QetQyrDbeN7Bq581j7
+ cdcTgyf9T02fDj2zfDYy6jD64rnb84kXPi9mXoa8/PIq7tXG6+Q3mDfpb+ne5o1xjZWO
+ i43XTShPtE8aTN5/Z/fu9Xvv9/NT0VOb0ykfSB/yPvJ+rJyRn7k9azQ7PLdnbno+Yn5j
+ IfUT/aeiRdHFG591Pt9fcl6a/hL1ZevryW/s3yqWFZe7V6xXxr6Hft9YTV9jX7v6Q/XH
+ wLrT+seNfZu4zfyfYj/bfpn/erMVurUVQYmi7JwFUMgM+/kB8LUCqSFckNphGABC5++a
+ YkcCKVcgRAbBaOT8K4qcR/eDFgiG7KB6mAvORjGj6tGeGH7MMnYUdw8/SrVKzUsMInXT
+ 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
+ vEdOl96YK5gZrBQ2GnsLh8HZ4kpwX/GG+EL8NyoLqioCNSGM8JR6F3U1kZOYRcKSkkm/
+ aJJpYdp0Ola6Unop+lYGY4Y3jJFM1ExXmA2ZZ1iyWTVYP7CdYzfngJD3UByXCtca9y2e
+ g7wGZGryKN9F/mABS0FNIUVhcRF+UW4xLnFuCR5JESlpaXUZU1kXuQj5Ewrlij1KUyoE
+ VUU1b/VCjVXNQK0JHR/daf0oQ8goz0TStN/cY/e6ZZa1qM1tO3P7Ccdwp18ux/YwuF3a
+ q+oxRPH22vIp8dPxfx+YHqwQ8i4sI0Itcjo6P9YwbiX+aqL7AfTBskNmyYtHclIUj705
+ fjRNML3/ZHAmKasm2yRn8mxSHs+5W+cdCr4UZRZLXOwuoZRulOWWK1c8rvSvwlSfr1Wo
+ G6oPbFi7kdsk2dzb6t62fDvjjmjHYJd/D663rN9q4Mdg8dDuB/DDC8OcI8VPxJ92jPq/
+ wL9sfR38lmasdsJpcuF96NTUB7uPrbNMc9bzRxdqPvUvjnx+utT/5ebX099CliWX51eK
+ v5t8/7p6Yo1rre6HzI9r64LrxRvwht/GvU3pzeObIz85f/r+rPu5/sviV+uW8FbOtv+j
+ /RTkt98eACLqIe3Hsa2tb8IA4HIA+Jm9tbVRurX18zJSbCD/gXSG/P6/YlsYi/Tci1K2
+ 0X8a/wOh8o8aCmVuZHN0cmVhbQplbmRvYmoKODIgMCBvYmoKNTk1MAplbmRvYmoKNjAg
+ MCBvYmoKWyAvSUNDQmFzZWQgODEgMCBSIF0KZW5kb2JqCjgzIDAgb2JqCjw8IC9MZW5n
+ dGggODQgMCBSIC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIgL0ZsYXRl
+ RGVjb2RlID4+CnN0cmVhbQp4AYVUz2sTQRT+Nm6p0CIIWmsOsniQIklZq2hF1Db9EWJr
+ DNsftkWQZDNJ1m426+4mtaWI5OLRKt5F7aEH/4AeevBkL0qFWkUo3qsoYqEXLfHNbky2
+ perAzn7z3jfvfW923wANctI09YAE5A3HUqIRaWx8Qmr8iACOoglBNCVV2+xOJAZBg3P5
+ e+fYeg+BW1bDe/t3snetmtK2mgeE/UDgR5rZKrDvF3EKWRICiDzfoSnHdAjf49jy7I85
+ Tnl4wbUPKz3EWSJ8QDUtzn9NuFPNJdNAg0g4lPVxUj6c14uU1x0HaW5mxsgQvU+QprvM
+ 7qtioZxO9g6QvZ30fk6z3j7CIcILGa0/RriNnvWM1T/iYeGk5sSGPRwYNfT4YBW3Gqn4
+ NcIUXxBNJ6JUcdkuDfGYrv1W8kqCcJA4ymRhgHNaSE/XTG74uocFfSbXE6/id1ZR4XmP
+ E2fe1N3vRdoCrzAOHQwaDJoNSFAQRQRhmLBQQIY8GjE0snI/I6sGG5N7MnUkart0YkSx
+ QXs23D23UaTdPP4oInGUQ7UIkvxB/iqvyU/lefnLXLDYVveUrZuauvLgO8XlmbkaHtfT
+ yONzTV58ldR2k1dHlqx5erya7Bo/7FeXMeaCNY/Ec7D78S1flcyXKYwUxeNV8+pLhHVa
+ MTffn2x/Oz3iLs8utdZzrYmLN1abl2f9akj77qq8k+ZV+U9e9fH8Z83EY+IpMSZ2iuch
+ iZfFLvGS2EurC+JgbccInZWGKdJtkfok1WBgmrz1L10/W3i9Rn8M9VGUGczSVIn3f8Iq
+ ZDSduQ5v+o/bx/wX5PeK558oAi9s4MiZum1Tce8QoWWlbnOuAhe/0X3wtm5ro344/ARY
+ PKsWrVI1nyC8ARx2h3oe6CmY05aWzTlShyyfk7rpymJSzFDbQ1JS1yXXZUsWs5lVYul2
+ 2JnTHW4coTlC98SnSmWT+q/xEbD9sFL5+axS2X5OGtaBl/pvwLz9RQplbmRzdHJlYW0K
+ ZW5kb2JqCjg0IDAgb2JqCjczNwplbmRvYmoKNDQgMCBvYmoKWyAvSUNDQmFzZWQgODMg
+ MCBSIF0KZW5kb2JqCjg1IDAgb2JqCjw8IC9MZW5ndGggODYgMCBSIC9OIDEgL0FsdGVy
+ bmF0ZSAvRGV2aWNlR3JheSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGF
+ Uk9IFFEc/s02EoSIQYV4iHcKCZUprKyg2nZ1WZVtW5XSohhn37qjszPTm9k1xZMEXaI8
+ dQ+iY3Ts0KGbl6LArEvXIKkgCDx16PvN7OoohG95O9/7/f1+33tEbZ2m7zspQVRzQ5Ur
+ paduTk2Lgx8pRR3UTlimFfjpYnGMseu5kr+719Zn0tiy3se1dvv2PbWVZWAh6i22txD6
+ IZFmAB+ZnyhlgLPAHZav2D4BPFgOrBrwI6IDD5q5MNPRnHSlsi2RU+aiKCqvYjtJrvv5
+ uca+i7WJg/5cj2bWjr2z6qrRTNS090ShvA+uRBnPX1T2bDUUpw3jnEhDGinyrtXfK0zH
+ EZErEEoGUjVkuZ9qTp114HUYu126k+P49hClPslgqIm16bKZHYV9AHYqy+wQ8AXo8bJi
+ D+eBe2H/W1HDk8AnYT9kh3nWrR/2F65T4HuEPTXgzhSuxfHaih9eLQFD91QjaIxzTcTT
+ 1zlzpIjvMdQZmPdGOaYLMXeWqhM3gDthH1mqZgqxXfuu6iXuewJ30+M70Zs5C1ygHEly
+ sRXZFNA8CVgUfYuwSQ48Ps4eVeB3qJjAHLmJ3M0o9x7VERtno1KBVnqNV8ZP47nxxfhl
+ bBjPgH6sdtd7fP/p4xV117Y+PPmNetw5rr2dG1VhVnFlC93/xzKEj9knOabB06FZWGvY
+ duQPmsxMsAwoxH8FPpf6khNV3NXu7bhFEsxQPixsJbpLVG4p1Oo9g0qsHCvYAHZwksQs
+ Why4U2u6OXh32CJ6bflNV7Lrhv769nr72vIebcqoKSgTzbNEZpSxW6Pk3Xjb/WaREZ84
+ Or7nvYpayf5JRRA/hTlaKvIUVfRWUNbEb2cOfhu2flw/pef1Qf08CT2tn9Gv6KMRvgx0
+ Sc/Cc1Efo0nwsGkh4hKgioMz1E5UY40D4inx8rRbZJH9D0AZ/WYKZW5kc3RyZWFtCmVu
+ ZG9iago4NiAwIG9iago3MDQKZW5kb2JqCjI3IDAgb2JqClsgL0lDQ0Jhc2VkIDg1IDAg
+ UiBdCmVuZG9iago0IDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvTWVkaWFCb3ggWzAgMCA2
+ MTIgNzkyXSAvQ291bnQgMSAvS2lkcyBbIDMgMCBSIF0gPj4KZW5kb2JqCjg3IDAgb2Jq
+ Cjw8IC9UeXBlIC9DYXRhbG9nIC9PdXRsaW5lcyAyIDAgUiAvUGFnZXMgNCAwIFIgL1Zl
+ cnNpb24gLzEuNCA+PgplbmRvYmoKNTkgMCBvYmoKPDwgL0xlbmd0aCA4OCAwIFIgL09y
+ ZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAvQml0c1BlclNh
+ bXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAwIDEgXSAvUmFu
+ Z2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIgL0ZsYXRlRGVj
+ b2RlID4+CnN0cmVhbQp4AY3CVVYVAABAwUXR3d3dDa+7u7s7LJQ0wAAFAwxUBGVRLoCf
+ O2fKd+XyvaV/Jbj4t0gWbgtk/iYP5/7kyOx1lsz8zsDpX2ky9TMFJ6+SZOJHgox/j8Ox
+ bzEy+jVKRi4jcPgiTIa+hODg5yAZ+BQg/R/9sO/cR3rPvKTngwd2v3eTrlMX7Dxxko53
+ DtL+1g7b3thI62sraTm2wOYjM2l6ZSKNL42w4YWB1D/Xw7pDHak90JKafQ2s3lOTql0V
+ qdxRwopnClL+VA7LtmWk9ImUlDyWwOJHYlL0UEQKHwhhQVlAbpW24M3iJrlR2CDX8+vw
+ Wm6NXM2ukiuZFXg5vUwupZbgxeQiuZBYIOfj8/BcbI6cjc6SM5EZeDo8TU6FpuDJ4CQ5
+ EZggx/3j8JhvjBz1jpIjnhF42D1MDrmG4EHnIDngGCD77f1wn62P7LX2kj2WHrjb3E12
+ mbrITmMn3GHoINv17XCbro1s1baSLZoWuFndTDapmshGZSPcoGgg6+X1cJ2sjqyV1pI1
+ khq4WlxNVomqyEphJVwhqLj/Px8Fb/YKZW5kc3RyZWFtCmVuZG9iago4OCAwIG9iago0
+ MTcKZW5kb2JqCjU4IDAgb2JqCjw8IC9MZW5ndGggODkgMCBSIC9PcmRlciAxIC9FbmNv
+ ZGUgWyAwIDEzNjQgXSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVj
+ b2RlIFsgMCAxIDAgMSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAg
+ MSAwIDEgXSAvU2l6ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJl
+ YW0KeAGNwlVWFQAAQMFF0d3d3Q2vu7u7OyyUNMAABQMMVARlUS6Anztnynfl8r2lfyW4
+ +LdIFm4LZP4mD+f+5MjsdZbM/M7A6V9pMvUzBSevkmTiR4KMf4/DsW8xMvo1SkYuI3D4
+ IkyGvoTg4OcgGfgUIP0f/bDv3Ed6z7yk54MHdr93k65TF+w8cZKOdw7S/tYO297YSOtr
+ K2k5tsDmIzNpemUijS+NsOGFgdQ/18O6Qx2pPdCSmn0NrN5Tk6pdFancUcKKZwpS/lQO
+ y7ZlpPSJlJQ8lsDiR2JS9FBECh8IYUFZQG6VtuDN4ia5Udgg1/Pr8FpujVzNrpIrmRV4
+ Ob1MLqWW4MXkIrmQWCDn4/PwXGyOnI3OkjORGXg6PE1OhabgyeAkORGYIMf94/CYb4wc
+ 9Y6SI54ReNg9TA65huBB5yA54Bgg++39cJ+tj+y19pI9lh6429xNdpm6yE5jJ9xh6CDb
+ 9e1wm66NbNW2ki2aFrhZ3Uw2qZrIRmUj3KBoIOvl9XCdrI6sldaSNZIauFpcTVaJqshK
+ YSVcIai4/z8fBW/2CmVuZHN0cmVhbQplbmRvYmoKODkgMCBvYmoKNDE3CmVuZG9iago1
+ NyAwIG9iago8PCAvTGVuZ3RoIDkwIDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0
+ IF0gL0Z1bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAw
+ IDEgMCAxIF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1Np
+ emUgWyAxMzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBjcJVVhUA
+ AEDBRdHd3d0Nr7u7uzsslDTAAAUDDFQEZVEugJ87Z8p35fK9pX8luPi3SBZuC2T+Jg/n
+ /uTI7HWWzPzOwOlfaTL1MwUnr5Jk4keCjH+Pw7FvMTL6NUpGLiNw+CJMhr6E4ODnIBn4
+ FCD9H/2w79xHes+8pOeDB3a/d5OuUxfsPHGSjncO0v7WDtve2EjraytpObbA5iMzaXpl
+ Io0vjbDhhYHUP9fDukMdqT3Qkpp9DazeU5OqXRWp3FHCimcKUv5UDsu2ZaT0iZSUPJbA
+ 4kdiUvRQRAofCGFBWUBulbbgzeImuVHYINfz6/Babo1cza6SK5kVeDm9TC6lluDF5CK5
+ kFgg5+Pz8FxsjpyNzpIzkRl4OjxNToWm4MngJDkRmCDH/ePwmG+MHPWOkiOeEXjYPUwO
+ uYbgQecgOeAYIPvt/XCfrY/stfaSPZYeuNvcTXaZushOYyfcYegg2/XtcJuujWzVtpIt
+ mha4Wd1MNqmayEZlI9ygaCDr5fVwnayOrJXWkjWSGrhaXE1WiarISmElXCGouP8/HwVv
+ 9gplbmRzdHJlYW0KZW5kb2JqCjkwIDAgb2JqCjQxNwplbmRvYmoKNTYgMCBvYmoKPDwg
+ L0xlbmd0aCA5MSAwIFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlv
+ blR5cGUgMCAvQml0c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9E
+ b21haW4gWyAwIDEgXSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpd
+ IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aa3CVRaCAAAAwduKYmNhYGML
+ qFinXa/gx84bvl/+/Pngfr8Rv164n0/cZYn78UB8v+O+3XAXBe48R5xluK9X3JcL7vMZ
+ 8emE+3jEfTjg3u8R73a40xT3dot7s0G8XuNerXAvl7gXC8TzOe4kwT2bIZ5OcU8muMdj
+ 3HGMeDTCPRziHgxw9/uIez3cUYS728Xd6SBut3G3WribTdyNBuJ6HXcY4q7VcFeriIMA
+ d6XCf39Sbp/uCmVuZHN0cmVhbQplbmRvYmoKOTEgMCBvYmoKMTgxCmVuZG9iago1NSAw
+ IG9iago8PCAvTGVuZ3RoIDkyIDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0g
+ L0Z1bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEg
+ MCAxIF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUg
+ WyAxMzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBjcJVVhUAAEDB
+ RdHd3d0Nr7u7uzsslDTAAAUDDFQEZVEugJ87Z8p35fK9pX8luPi3SBZuC2T+Jg/n/uTI
+ 7HWWzPzOwOlfaTL1MwUnr5Jk4keCjH+Pw7FvMTL6NUpGLiNw+CJMhr6E4ODnIBn4FCD9
+ H/2w79xHes+8pOeDB3a/d5OuUxfsPHGSjncO0v7WDtve2EjraytpObbA5iMzaXplIo0v
+ jbDhhYHUP9fDukMdqT3Qkpp9DazeU5OqXRWp3FHCimcKUv5UDsu2ZaT0iZSUPJbA4kdi
+ UvRQRAofCGFBWUBulbbgzeImuVHYINfz6/Babo1cza6SK5kVeDm9TC6lluDF5CK5kFgg
+ 5+Pz8FxsjpyNzpIzkRl4OjxNToWm4MngJDkRmCDH/ePwmG+MHPWOkiOeEXjYPUwOuYbg
+ QecgOeAYIPvt/XCfrY/stfaSPZYeuNvcTXaZushOYyfcYegg2/XtcJuujWzVtpItmha4
+ Wd1MNqmayEZlI9ygaCDr5fVwnayOrJXWkjWSGrhaXE1WiarISmElXCGouP8/HwVv9gpl
+ bmRzdHJlYW0KZW5kb2JqCjkyIDAgb2JqCjQxNwplbmRvYmoKNTQgMCBvYmoKPDwgL0xl
+ bmd0aCA5MyAwIFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5
+ cGUgMCAvQml0c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21h
+ aW4gWyAwIDEgXSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9G
+ aWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aa3CVRaCAAAAwduKYmNhYGMLqFin
+ Xa/gx84bvl/+/Pngfr8Rv164n0/cZYn78UB8v+O+3XAXBe48R5xluK9X3JcL7vMZ8emE
+ +3jEfTjg3u8R73a40xT3dot7s0G8XuNerXAvl7gXC8TzOe4kwT2bIZ5OcU8muMdj3HGM
+ eDTCPRziHgxw9/uIez3cUYS728Xd6SBut3G3WribTdyNBuJ6HXcY4q7VcFeriIMAd6XC
+ f39Sbp/uCmVuZHN0cmVhbQplbmRvYmoKOTMgMCBvYmoKMTgxCmVuZG9iago1MyAwIG9i
+ ago8PCAvTGVuZ3RoIDk0IDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1
+ bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAx
+ IF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAx
+ MzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBjcJVVhUAAEDBRdHd
+ 3d0Nr7u7uzsslDTAAAUDDFQEZVEugJ87Z8p35fK9pX8luPi3SBZuC2T+Jg/n/uTI7HWW
+ zPzOwOlfaTL1MwUnr5Jk4keCjH+Pw7FvMTL6NUpGLiNw+CJMhr6E4ODnIBn4FCD9H/2w
+ 79xHes+8pOeDB3a/d5OuUxfsPHGSjncO0v7WDtve2EjraytpObbA5iMzaXplIo0vjbDh
+ hYHUP9fDukMdqT3Qkpp9DazeU5OqXRWp3FHCimcKUv5UDsu2ZaT0iZSUPJbA4kdiUvRQ
+ RAofCGFBWUBulbbgzeImuVHYINfz6/Babo1cza6SK5kVeDm9TC6lluDF5CK5kFgg5+Pz
+ 8FxsjpyNzpIzkRl4OjxNToWm4MngJDkRmCDH/ePwmG+MHPWOkiOeEXjYPUwOuYbgQecg
+ OeAYIPvt/XCfrY/stfaSPZYeuNvcTXaZushOYyfcYegg2/XtcJuujWzVtpItmha4Wd1M
+ NqmayEZlI9ygaCDr5fVwnayOrJXWkjWSGrhaXE1WiarISmElXCGouP8/HwVv9gplbmRz
+ dHJlYW0KZW5kb2JqCjk0IDAgb2JqCjQxNwplbmRvYmoKNTIgMCBvYmoKPDwgL0xlbmd0
+ aCA5NSAwIFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUg
+ MCAvQml0c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4g
+ WyAwIDEgXSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0
+ ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aa3CVRaCAAAAwduKYmNhYGMLqFinXa/g
+ x84bvl/+/Pngfr8Rv164n0/cZYn78UB8v+O+3XAXBe48R5xluK9X3JcL7vMZ8emE+3jE
+ fTjg3u8R73a40xT3dot7s0G8XuNerXAvl7gXC8TzOe4kwT2bIZ5OcU8muMdj3HGMeDTC
+ PRziHgxw9/uIez3cUYS728Xd6SBut3G3WribTdyNBuJ6HXcY4q7VcFeriIMAd6XCf39S
+ bp/uCmVuZHN0cmVhbQplbmRvYmoKOTUgMCBvYmoKMTgxCmVuZG9iago1MSAwIG9iago8
+ PCAvTGVuZ3RoIDk2IDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1bmN0
+ aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAxIF0g
+ L0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAxMzY1
+ Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBjcJVVhUAAEDBRdHd3d0N
+ r7u7uzsslDTAAAUDDFQEZVEugJ87Z8p35fK9pX8luPi3SBZuC2T+Jg/n/uTI7HWWzPzO
+ wOlfaTL1MwUnr5Jk4keCjH+Pw7FvMTL6NUpGLiNw+CJMhr6E4ODnIBn4FCD9H/2w79xH
+ es+8pOeDB3a/d5OuUxfsPHGSjncO0v7WDtve2EjraytpObbA5iMzaXplIo0vjbDhhYHU
+ P9fDukMdqT3Qkpp9DazeU5OqXRWp3FHCimcKUv5UDsu2ZaT0iZSUPJbA4kdiUvRQRAof
+ CGFBWUBulbbgzeImuVHYINfz6/Babo1cza6SK5kVeDm9TC6lluDF5CK5kFgg5+Pz8Fxs
+ jpyNzpIzkRl4OjxNToWm4MngJDkRmCDH/ePwmG+MHPWOkiOeEXjYPUwOuYbgQecgOeAY
+ IPvt/XCfrY/stfaSPZYeuNvcTXaZushOYyfcYegg2/XtcJuujWzVtpItmha4Wd1MNqma
+ yEZlI9ygaCDr5fVwnayOrJXWkjWSGrhaXE1WiarISmElXCGouP8/HwVv9gplbmRzdHJl
+ YW0KZW5kb2JqCjk2IDAgb2JqCjQxNwplbmRvYmoKNTAgMCBvYmoKPDwgL0xlbmd0aCA5
+ NyAwIFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAv
+ Qml0c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAw
+ IDEgXSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIg
+ L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AY3CVVYVAABAwUXR3d3dDa+7u7s7LJQ0wAAF
+ AwxUBGVRLoCfO2fKd+XyvaV/Jbj4t0gWbgtk/iYP5/7kyOx1lsz8zsDpX2ky9TMFJ6+S
+ ZOJHgox/j8OxbzEy+jVKRi4jcPgiTIa+hODg5yAZ+BQg/R/9sO/cR3rPvKTngwd2v3eT
+ rlMX7Dxxko53DtL+1g7b3thI62sraTm2wOYjM2l6ZSKNL42w4YWB1D/Xw7pDHak90JKa
+ fQ2s3lOTql0VqdxRwopnClL+VA7LtmWk9ImUlDyWwOJHYlL0UEQKHwhhQVlAbpW24M3i
+ JrlR2CDX8+vwWm6NXM2ukiuZFXg5vUwupZbgxeQiuZBYIOfj8/BcbI6cjc6SM5EZeDo8
+ TU6FpuDJ4CQ5EZggx/3j8JhvjBz1jpIjnhF42D1MDrmG4EHnIDngGCD77f1wn62P7LX2
+ kj2WHrjb3E12mbrITmMn3GHoINv17XCbro1s1baSLZoWuFndTDapmshGZSPcoGgg6+X1
+ cJ2sjqyV1pI1khq4WlxNVomqyEphJVwhqLj/Px8Fb/YKZW5kc3RyZWFtCmVuZG9iago5
+ NyAwIG9iago0MTcKZW5kb2JqCjQ5IDAgb2JqCjw8IC9MZW5ndGggOTggMCBSIC9PcmRl
+ ciAxIC9FbmNvZGUgWyAwIDEzNjQgXSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1w
+ bGUKOCAvRGVjb2RlIFsgMCAxIDAgMSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1Jhbmdl
+ IFsgMCAxIDAgMSAwIDEgXSAvU2l6ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29k
+ ZSA+PgpzdHJlYW0KeAGtwtdVAgAAwMBt7Sh2UewVCzZQ2Sk7xRX4yL1b4GK5f9j+xfAP
+ tufYnmH7G8Nf2P7E9ge23zE8xfYbtl+x/YLhZ2xPsP2E7UcMP2D7Htt32L7F8A22r7F9
+ he1LDF9g+xzbYwyfYfsU2yNsn2D4GNtH2D7E9gGG97G9h+1dbA8xvIPtbWwPsL2F4U1s
+ b2B7HdtrGF7F9gou+R/97DfyCmVuZHN0cmVhbQplbmRvYmoKOTggMCBvYmoKMTU5CmVu
+ ZG9iago0OCAwIG9iago8PCAvTGVuZ3RoIDk5IDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsg
+ MCAxMzY0IF0gL0Z1bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBb
+ IDAgMSAwIDEgMCAxIF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAx
+ IF0gL1NpemUgWyAxMzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB
+ rcLXVQIAAMDAbe0odlHsFQs2UNkpO8UV+Mi9W+BiuX/Y/sXwD7bn2J5h+xvDX9j+xPYH
+ tt8xPMX2G7Zfsf2C4WdsT7D9hO1HDD9g+x7bd9i+xfANtq+xfYXtSwxfYPsc22MMn2H7
+ FNsjbJ9g+BjbR9g+xPYBhvexvYftXWwPMbyD7W1sD7C9heFNbG9gex3baxhexfYKLvkf
+ /ew38gplbmRzdHJlYW0KZW5kb2JqCjk5IDAgb2JqCjE1OQplbmRvYmoKNDcgMCBvYmoK
+ PDwgL0xlbmd0aCAxMDAgMCBSIC9PcmRlciAxIC9FbmNvZGUgWyAwIDEzNjQgXSAvRnVu
+ Y3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVjb2RlIFsgMCAxIDAgMSAwIDEg
+ XSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEgXSAvU2l6ZSBbIDEz
+ NjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGNwlVWFQAAQMFF0d3d
+ 3Q2vu7u7OyyUNMAABQMMVARlUS6Anztnynfl8r2lfyW4+LdIFm4LZP4mD+f+5MjsdZbM
+ /M7A6V9pMvUzBSevkmTiR4KMf4/DsW8xMvo1SkYuI3D4IkyGvoTg4OcgGfgUIP0f/bDv
+ 3Ed6z7yk54MHdr93k65TF+w8cZKOdw7S/tYO297YSOtrK2k5tsDmIzNpemUijS+NsOGF
+ gdQ/18O6Qx2pPdCSmn0NrN5Tk6pdFancUcKKZwpS/lQOy7ZlpPSJlJQ8lsDiR2JS9FBE
+ Ch8IYUFZQG6VtuDN4ia5Udgg1/Pr8FpujVzNrpIrmRV4Ob1MLqWW4MXkIrmQWCDn4/Pw
+ XGyOnI3OkjORGXg6PE1OhabgyeAkORGYIMf94/CYb4wc9Y6SI54ReNg9TA65huBB5yA5
+ 4Bgg++39cJ+tj+y19pI9lh6429xNdpm6yE5jJ9xh6CDb9e1wm66NbNW2ki2aFrhZ3Uw2
+ qZrIRmUj3KBoIOvl9XCdrI6sldaSNZIauFpcTVaJqshKYSVcIai4/z8fBW/2CmVuZHN0
+ cmVhbQplbmRvYmoKMTAwIDAgb2JqCjQxNwplbmRvYmoKNDYgMCBvYmoKPDwgL0xlbmd0
+ aCAxMDEgMCBSIC9PcmRlciAxIC9FbmNvZGUgWyAwIDEzNjQgXSAvRnVuY3Rpb25UeXBl
+ IDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVjb2RlIFsgMCAxIDAgMSAwIDEgXSAvRG9tYWlu
+ IFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEgXSAvU2l6ZSBbIDEzNjUKXSAvRmls
+ dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGtwlUWggAAAMHbimJjYWBjC6hYp12v
+ 4MfOG75f/vz54H6/Eb9euJ9P3GWJ+/FAfL/jvt1wFwXuPEecZbivV9yXC+7zGfHphPt4
+ xH044N7vEe92uNMU93aLe7NBvF7jXq1wL5e4FwvE8znuJME9myGeTnFPJrjHY9xxjHg0
+ wj0c4h4McPf7iHs93FGEu9vF3ekgbrdxt1q4m03cjQbieh13GOKu1XBXq4iDAHelwn9/
+ Um6f7gplbmRzdHJlYW0KZW5kb2JqCjEwMSAwIG9iagoxODEKZW5kb2JqCjQ1IDAgb2Jq
+ Cjw8IC9MZW5ndGggMTAyIDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1
+ bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAx
+ IF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAx
+ MzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBrcJVFoIAAADB24pi
+ Y2FgYwuoWKddr+DHzhu+X/78+eB+vxG/XrifT9xlifvxQHy/477dcBcF7jxHnGW4r1fc
+ lwvu8xnx6YT7eMR9OODe7xHvdrjTFPd2i3uzQbxe416tcC+XuBcLxPM57iTBPZshnk5x
+ Tya4x2PccYx4NMI9HOIeDHD3+4h7PdxRhLvbxd3pIG63cbdauJtN3I0G4noddxjirtVw
+ V6uIgwB3pcJ/f1Jun+4KZW5kc3RyZWFtCmVuZG9iagoxMDIgMCBvYmoKMTgxCmVuZG9i
+ agoyIDAgb2JqCjw8IC9MYXN0IDEwMyAwIFIgL0ZpcnN0IDEwNCAwIFIgPj4KZW5kb2Jq
+ CjEwNCAwIG9iago8PCAvUGFyZW50IDEwNSAwIFIgL0NvdW50IDAgL0Rlc3QgWyAzIDAg
+ UiAvWFlaIDAgNTUzIDAgXSAvVGl0bGUgKENhbnZhcyAxKQo+PgplbmRvYmoKMTA1IDAg
+ b2JqCjw8ID4+CmVuZG9iagoxMDMgMCBvYmoKPDwgL1BhcmVudCAxMDUgMCBSIC9Db3Vu
+ dCAwIC9EZXN0IFsgMyAwIFIgL1hZWiAwIDU1MyAwIF0gL1RpdGxlIChDYW52YXMgMSkK
+ Pj4KZW5kb2JqCjEwNiAwIG9iago8PCAvTGVuZ3RoIDEwNyAwIFIgL0xlbmd0aDEgMTIx
+ MjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvXp5fFRFtnBV3bWXdLo7
+ ve83ne7OvkIgJJAmJCEsiSFhSZBgAgQIggLGKMzAFxVFIqKILIobLhBATRN40IDwGAYF
+ 3nNGdBCUUUdHcHwz5jkzHzoO0N3fqdshQj6dn3/4m3v7VNWpqlv31KmzVfVtX3p3K0pA
+ nYhBtdNbFs9F8pXFIkRmzF7UsjiOJ2VC/vbsjnZPHOdSEWIWzl08b1EcF59ESOmct3BZ
+ //OG4QhZqua3tsyJt6NrkBfOh4o4jodAnjJ/Ufu9cVy/D/J7F945u7896TvARy1qubf/
+ /egjwD13tCxqjffP/BTylMV33tXej3dC3rx4aWt/f9wA9L2DMNS60J1IgW5HAiJIC3cT
+ QsKXSidioZW2wzUnU7XhtsSSb5BOlPHbqh+T87ekN85913otoFov/hMqFNf705xPi6Yh
+ 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
+ RmxhZ3MgMzIKL0ZvbnRCQm94IFstOTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9udE5hbWUg
+ L1dQRlBOUitIZWx2ZXRpY2EgL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01heFdpZHRo
+ IDE1MDAgL1hIZWlnaHQgNjM3IC9Gb250RmlsZTIgMTA2IDAgUiA+PgplbmRvYmoKMTA5
+ IDAgb2JqClsgMjc4IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDMzMyAwIDAgMCAwIDAg
+ MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDY2NwowIDcyMiA3MjIgMCAwIDAgNzIy
+ IDI3OCAwIDAgNTU2IDgzMyAwIDc3OCA2NjcgMCA3MjIgNjY3IDYxMSAwIDAgMCAwIDAg
+ MCAwCjAgMCAwIDAgMCA1NTYgNTU2IDUwMCAwIDU1NiAwIDAgMCAyMjIgMCAwIDIyMiA4
+ MzMgNTU2IDU1NiA1NTYgMCAzMzMgNTAwIDI3OAo1NTYgMCAwIDAgNTAwIF0KZW5kb2Jq
+ CjI4IDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVlVHlwZSAvQmFzZUZv
+ bnQgL1dQRlBOUitIZWx2ZXRpY2EgL0ZvbnREZXNjcmlwdG9yCjEwOCAwIFIgL1dpZHRo
+ cyAxMDkgMCBSIC9GaXJzdENoYXIgMzIgL0xhc3RDaGFyIDEyMSAvRW5jb2RpbmcgL01h
+ Y1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjExMCAwIG9iagooTWFjIE9TIFggMTAuNi42
+ IFF1YXJ0eiBQREZDb250ZXh0KQplbmRvYmoKMTExIDAgb2JqCihEOjIwMTEwMzA3MjMx
+ NDM3WjAwJzAwJykKZW5kb2JqCjEgMCBvYmoKPDwgL1Byb2R1Y2VyIDExMCAwIFIgL0Ny
+ ZWF0aW9uRGF0ZSAxMTEgMCBSIC9Nb2REYXRlIDExMSAwIFIgPj4KZW5kb2JqCnhyZWYK
+ MCAxMTIKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMTE3NzI3IDAwMDAwIG4gCjAwMDAx
+ MDg1ODEgMDAwMDAgbiAKMDAwMDAwNjA0MCAwMDAwMCBuIAowMDAwMTAwMzI4IDAwMDAw
+ IG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwNjAyMCAwMDAwMCBuIAowMDAwMDA2
+ MTQ0IDAwMDAwIG4gCjAwMDAwOTI0MTkgMDAwMDAgbiAKMDAwMDAxMzAxMCAwMDAwMCBu
+ IAowMDAwMDI0ODA5IDAwMDAwIG4gCjAwMDAwMjUzMjQgMDAwMDAgbiAKMDAwMDAzMDgy
+ MiAwMDAwMCBuIAowMDAwMDMwODQzIDAwMDAwIG4gCjAwMDAwMzU5MDMgMDAwMDAgbiAK
+ MDAwMDAzNjQyMiAwMDAwMCBuIAowMDAwMDQxNjY4IDAwMDAwIG4gCjAwMDAwMjQ4MzEg
+ MDAwMDAgbiAKMDAwMDAyNTMwNCAwMDAwMCBuIAowMDAwMDA4NzYyIDAwMDAwIG4gCjAw
+ MDAwMDkyMzUgMDAwMDAgbiAKMDAwMDAzNTkyNCAwMDAwMCBuIAowMDAwMDM2NDAyIDAw
+ MDAwIG4gCjAwMDAwMDkyNTUgMDAwMDAgbiAKMDAwMDAwOTczMCAwMDAwMCBuIAowMDAw
+ MDA5NzUwIDAwMDAwIG4gCjAwMDAwMTI5ODkgMDAwMDAgbiAKMDAwMDEwMDI5MSAwMDAw
+ MCBuIAowMDAwMTE3NDU0IDAwMDAwIG4gCjAwMDAwMDY2MDIgMDAwMDAgbiAKMDAwMDAw
+ ODQ3NCAwMDAwMCBuIAowMDAwMDA3ODk4IDAwMDAwIG4gCjAwMDAwMDY3NDYgMDAwMDAg
+ biAKMDAwMDAwNzYxMCAwMDAwMCBuIAowMDAwMDA3NDY2IDAwMDAwIG4gCjAwMDAwMDcz
+ MjIgMDAwMDAgbiAKMDAwMDAwODMzMCAwMDAwMCBuIAowMDAwMDA3NzU0IDAwMDAwIG4g
+ CjAwMDAwMDg2MTggMDAwMDAgbiAKMDAwMDAwNjg5MCAwMDAwMCBuIAowMDAwMDA4MDQy
+ IDAwMDAwIG4gCjAwMDAwMDgxODYgMDAwMDAgbiAKMDAwMDAwNzAzNCAwMDAwMCBuIAow
+ MDAwMDA3MTc4IDAwMDAwIG4gCjAwMDAwOTk0MjYgMDAwMDAgbiAKMDAwMDEwODE2MyAw
+ MDAwMCBuIAowMDAwMTA3NzQ1IDAwMDAwIG4gCjAwMDAxMDcwOTEgMDAwMDAgbiAKMDAw
+ MDEwNjY5NyAwMDAwMCBuIAowMDAwMTA2MzAzIDAwMDAwIG4gCjAwMDAxMDU2NTEgMDAw
+ MDAgbiAKMDAwMDEwNDk5OSAwMDAwMCBuIAowMDAwMTA0NTgzIDAwMDAwIG4gCjAwMDAx
+ MDM5MzEgMDAwMDAgbiAKMDAwMDEwMzUxNSAwMDAwMCBuIAowMDAwMTAyODYzIDAwMDAw
+ IG4gCjAwMDAxMDI0NDcgMDAwMDAgbiAKMDAwMDEwMTc5NSAwMDAwMCBuIAowMDAwMTAx
+ MTQzIDAwMDAwIG4gCjAwMDAxMDA0OTEgMDAwMDAgbiAKMDAwMDA5ODUyOSAwMDAwMCBu
+ IAowMDAwMDc2OTkzIDAwMDAwIG4gCjAwMDAwODEyMjYgMDAwMDAgbiAKMDAwMDA0Nzcy
+ NyAwMDAwMCBuIAowMDAwMDUxOTYyIDAwMDAwIG4gCjAwMDAwNjU3NjAgMDAwMDAgbiAK
+ MDAwMDA3MDY1MyAwMDAwMCBuIAowMDAwMDU2MjMzIDAwMDAwIG4gCjAwMDAwNjU3Mzkg
+ MDAwMDAgbiAKMDAwMDA1MTk4MyAwMDAwMCBuIAowMDAwMDU2MjEyIDAwMDAwIG4gCjAw
+ MDAwNzA2NzQgMDAwMDAgbiAKMDAwMDA3Njk3MiAwMDAwMCBuIAowMDAwMDQxNjg5IDAw
+ MDAwIG4gCjAwMDAwNDc3MDYgMDAwMDAgbiAKMDAwMDA4MTI0NyAwMDAwMCBuIAowMDAw
+ MDg1NDgyIDAwMDAwIG4gCjAwMDAwODU1MDMgMDAwMDAgbiAKMDAwMDA5MTUzOCAwMDAw
+ MCBuIAowMDAwMDkxNTU5IDAwMDAwIG4gCjAwMDAwOTIzOTkgMDAwMDAgbiAKMDAwMDA5
+ MjQ1NSAwMDAwMCBuIAowMDAwMDk4NTA4IDAwMDAwIG4gCjAwMDAwOTg1NjYgMDAwMDAg
+ biAKMDAwMDA5OTQwNiAwMDAwMCBuIAowMDAwMDk5NDYzIDAwMDAwIG4gCjAwMDAxMDAy
+ NzEgMDAwMDAgbiAKMDAwMDEwMDQxMSAwMDAwMCBuIAowMDAwMTAxMTIzIDAwMDAwIG4g
+ CjAwMDAxMDE3NzUgMDAwMDAgbiAKMDAwMDEwMjQyNyAwMDAwMCBuIAowMDAwMTAyODQz
+ IDAwMDAwIG4gCjAwMDAxMDM0OTUgMDAwMDAgbiAKMDAwMDEwMzkxMSAwMDAwMCBuIAow
+ MDAwMTA0NTYzIDAwMDAwIG4gCjAwMDAxMDQ5NzkgMDAwMDAgbiAKMDAwMDEwNTYzMSAw
+ MDAwMCBuIAowMDAwMTA2MjgzIDAwMDAwIG4gCjAwMDAxMDY2NzcgMDAwMDAgbiAKMDAw
+ MDEwNzA3MSAwMDAwMCBuIAowMDAwMTA3NzI0IDAwMDAwIG4gCjAwMDAxMDgxNDIgMDAw
+ MDAgbiAKMDAwMDEwODU2MCAwMDAwMCBuIAowMDAwMTA4NzQ5IDAwMDAwIG4gCjAwMDAx
+ MDg2MzEgMDAwMDAgbiAKMDAwMDEwODcyNiAwMDAwMCBuIAowMDAwMTA4ODQ0IDAwMDAw
+ IG4gCjAwMDAxMTY5NDYgMDAwMDAgbiAKMDAwMDExNjk2OCAwMDAwMCBuIAowMDAwMTE3
+ MTk1IDAwMDAwIG4gCjAwMDAxMTc2MzEgMDAwMDAgbiAKMDAwMDExNzY4NCAwMDAwMCBu
+ IAp0cmFpbGVyCjw8IC9TaXplIDExMiAvUm9vdCA4NyAwIFIgL0luZm8gMSAwIFIgL0lE
+ IFsgPGNkMmE3Njg5M2EzMjViYjEyMmEyYzYzNzk3YTVlYmUyPgo8Y2QyYTc2ODkzYTMy
+ NWJiMTIyYTJjNjM3OTdhNWViZTI+IF0gPj4Kc3RhcnR4cmVmCjExNzgwNQolJUVPRgox
+ IDAgb2JqCjw8L0F1dGhvciAoVmFuY2UgU2hpcGxleSkvQ3JlYXRpb25EYXRlIChEOjIw
+ MTEwMzA3MTQwOTAwWikvQ3JlYXRvciAoT21uaUdyYWZmbGUgUHJvZmVzc2lvbmFsIDUu
+ Mi4zKS9Nb2REYXRlIChEOjIwMTEwMzA3MjMxNDAwWikvUHJvZHVjZXIgMTEwIDAgUiAv
+ VGl0bGUgKHRjYXBfbWVzc2FnaW5nLmdyYWZmbGUpPj4KZW5kb2JqCnhyZWYKMSAxCjAw
+ MDAxMjAyMDYgMDAwMDAgbiAKdHJhaWxlcgo8PC9JRCBbPGNkMmE3Njg5M2EzMjViYjEy
+ MmEyYzYzNzk3YTVlYmUyPiA8Y2QyYTc2ODkzYTMyNWJiMTIyYTJjNjM3OTdhNWViZTI+
+ XSAvSW5mbyAxIDAgUiAvUHJldiAxMTc4MDUgL1Jvb3QgODcgMCBSIC9TaXplIDExMj4+
+ CnN0YXJ0eHJlZgoxMjA0MDAKJSVFT0YK
+ </data>
+ <key>QuickLookThumbnail</key>
+ <data>
+ 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
+ YXkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAABIAAAAMbmxO
+ TAAAABYAAADoZGFESwAAABwAAAD+cGxQTAAAABIAAAEaZW5VUwAAABIAAAEsbmJOTwAA
+ ABIAAAE+ZnJGUgAAABYAAAFQcHRCUgAAABgAAAFmcHRQVAAAABYAAAF+emhDTgAAAAwA
+ AAGUZXNFUwAAABIAAAGgamFKUAAAAA4AAAGycnVSVQAAACQAAAHAc3ZTRQAAABAAAAHk
+ emhUVwAAAA4AAAH0ZGVERQAAABAAAAICZmlGSQAAABAAAAISaXRJVAAAABQAAAIia29L
+ UgAAAAwAAAI2AEsAbABlAHUAcgBlAG4ALQBMAEMARABMAEMARAAtAGYAYQByAHYAZQBz
+ AGsA5gByAG0ASwBvAGwAbwByACAATABDAEQAQwBvAGwAbwByACAATABDAEQARgBhAHIA
+ ZwBlAC0ATABDAEQATABDAEQAIABjAG8AdQBsAGUAdQByAEwAQwBEACAAQwBvAGwAbwBy
+ AGkAZABvAEwAQwBEACAAYQAgAEMAbwByAGUAc19pgnIAIABMAEMARABMAEMARAAgAGMA
+ bwBsAG8AcjCrMOkw/AAgAEwAQwBEBCYEMgQ1BEIEPQQ+BDkAIAQWBBoALQQ0BDgEQQQ/
+ BDsENQQ5AEYA5AByAGcALQBMAEMARF9pgnJtsmZ2mG95OlZoAEYAYQByAGIALQBMAEMA
+ RABWAOQAcgBpAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIAac7st+wAIABMAEMARAAA
+ dGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMTEAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAFhZWiAAAAAAAADzUgABAAAAARbPWFlaIAAAAAAAAGXbAAA6RgAACaRYWVogAAAA
+ AAAAaMsAAKyrAAAaoVhZWiAAAAAAAAAoMAAAGQ8AAK7oY3VydgAAAAAAAAQAAAAABQAK
+ AA8AFAAZAB4AIwAoAC0AMgA2ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYA
+ iwCQAJUAmgCfAKMAqACtALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN
+ ARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkB
+ wQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKi
+ AqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oD
+ xwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUc
+ BSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8G
+ wAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiW
+ CKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4K
+ xQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0m
+ DUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P
+ 7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLj
+ EwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYW
+ SRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxnd
+ GgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd
+ 7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yIn
+ IlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm
+ 6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvR
+ LAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIx
+ SjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp
+ NyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9
+ Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9
+ Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdK
+ fUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGb
+ UeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZ
+ aVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFP
+ YaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp
+ 8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3Km
+ cwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8
+ IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wr
+ hg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56Q
+ BpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/Jpo
+ mtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTil
+ qaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDq
+ sWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9
+ Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6
+ ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHW
+ VdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj
+ 4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXx
+ cvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t
+ //9wYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKwHZjZ3QAAAAAAAAAAAADAQAA
+ AgAAAAQAEAAoAEsAewC4AQIBUwGxAhwCkQMVA7EEYAUiBfQG1gfKCNYJ9wsfDGoNwg8k
+ EJoSIxOsFT8W9BibGlAcDR3NH4ohVSMbJNsmoyhkKiUr3i2ILx8wsTJHM981dDcLOKA6
+ NTvAPUY+0EBTQdBDS0TBRjBHm0kDSmZLw00XTm9PuFEEUkxTj1TPVhJXUliIWcBa9Vwh
+ XUxedV+WYLxh3WMBZCFlPmZXZ21ohmmcaq9rwWzPbd9u7m/4cQJyDHMZdCV1MnY+d0l4
+ WXlpemt7RnwbfO99xn6if3yAWoE4ghqDAIPohNGFwIaxh6aInomaipeLmoybjaKOrY+5
+ kMeR1ZLlk/OU9ZXqltqXzZjBmbWaspuwnK2drp6xn7WgvKHCosmj0aTWpd6m5qfpqO2p
+ 8qr1q/Ss8q3vrvOwD7Ewsk6za7SDtZ62trfLuNu567r7vAm9Fb4gvynAMsE+wkrDWMRm
+ xXbGiceeyLTJy8q/y6LMgM1czjjPE8/u0MXRmtJx00XUFtTp1bvWjtdi2DTZBdnX2qzb
+ gNxV3SzeBN7V33vgH+DA4WTiCeKw41vkB+Sy5WHmD+a852roGOjH6XTqIOrK63fsI+zM
+ 7XXuHe7C72vwFPC48Vzx//Kk80rz8fSS9TH1z/Ze9un3V/fC+Br4YPim+Oz5c/ob+67+
+ I///AAAABAASACwAUgCGAMgBFQFjAb4CJwKhAycDtwRgBSAF6gbEB7QIuAnNCuoMIA1o
+ DsMQIxGNEwgUihYdF7sZXRsDHKseVyAOIcEjfCUpJt4okiozK6stDy5rL8kxLTKPM/U1
+ WTa/OCI5fzrfPD49mj72QFFBpkL6RElFmEbiSCdJb0qrS+lNI05bT5FQx1H7UyhUVFWA
+ VqNXxljmWgNbIlw7XVlec1+IYJxhrmLBY9Nk42XxZv9oDmkcaihrNGxBbVJuZW90cIlx
+ mnKyc8t00XW2dpJ3a3hIeSh6CHrqe818sX2bfoR/boBbgUqCOoMshB6FEoYHhvyH8ojr
+ ieSK3YvVjM2Nw466j6qQm5GOkoGTdZRulWeWYJdcmFiZV5pWm1WcVZ1VnlSfVaBVoVSi
+ U6NVpFOlT6ZNp0moUKl2qqarzqz6rh+vSLBvsZSys7PTtPW2FbczuFK5cLqOu7K81r37
+ vyTATsF8wq3D4MUMxhvHFMgHyPrJ78rly9zM0M3Fzr3Ps9Cn0ZvSj9OE1HjVadZX10TY
+ M9kf2gra9Nvf3MPdkt5d3yjf9eDD4ZDiXOMp4/bkweWI5k7nE+fX6JrpWeoX6tbrkOxL
+ 7QXtve5x7yXv3vCP8UDx8PKk81j0CvS29WL2D/a791X35/iJ+Tj5//rt/Av9Z/66/zP/
+ d/+7//8AAAACAAsAGgAxAFAAdwCnAOABHwFhAa0CAQJgAsgDOwO5BEIE2AV+BjEG6ge4
+ CIwJbApcC1IMTw1VDmIPdxCTEbMS0hP1FRUWOxdaGH0ZnBq6G9Mc6x37HwcgFyEpIjoj
+ TSRfJW4meieGKJApmSqgK6YsqS2pLqgvpDCgMZUyhjN6NGk1VzZENy44FTkAOec6yjuw
+ PJs9iT55P2hAUkE/QihDFUP9ROVFyUatR5NIekldSj9LI0wGTOlNy06tT5FQdlFfUkZT
+ L1QXVQNV8FbRV6VYdVlBWhBa4FuxXINdVF4lXvlfzGCeYXNiR2MbY/BkxWWYZm1nQGgW
+ aOtpwWqVa2lsPG0MbdFujG8/b/JwpHFTcgVyt3NndBd0yHV5dit23neReEZ4/Hm1enB7
+ K3vpfKt9b34yfvl/woCNgV2CLYL9g82Em4Vthj6HD4fgiLCJhIpXiyqL/YzRjaSOe49S
+ kCqRA5HckrmTlZRylU+WM5ccmAiY85nhmtCbwpyynaSem5+ToIuhhqKEo4aki6WQppWn
+ nKinqbOqv6vNrOCt8a8FsBqxL7JJs2S0g7WitsO35LkMujG7WbyCva2+2sAFwS/CW8OK
+ xLPF3ccKyDLJYcqsy/vNQ85/z7rQ7dIk02XUpNXy11fYydpM2/Tdv9+44ebkUecj6mzu
+ avN2+ln//wAAbmRpbgAAAAAAAAY2AACVRgAAVs8AAFKpAACRTgAAKHIAABcKAABQDQAA
+ VDkAAtwoAAKo9QABczMAAwEAAAIAAAAYADIATQBmAH4AlgCuAMYA3QD0AQwBIgE6AVAB
+ aAF/AZcBrgHGAd8B+AIQAigCQgJcAnYCkAKrAsYC4gL/AxsDOANVA3QDkwOzA9MD8wQV
+ BDcEWgR9BKMEyQTyBRwFRwVzBZ8FzAX5BigGVwaHBrgG6QccB1AHhge9B/QILAhmCKII
+ 3gkcCVsJnAnfCiMKaQqwCvkLQwuSC+EMMAyFDNoNMA2JDeQOQQ6gDv4PYA/GEC0QlBEA
+ EXAR4RJUEs0TRBO/FDwUuRU7Fb8WRxbSF10X6xh9GREZqRpDGt4bfRwhHMUdbB4SHrwf
+ ZyAVIMUhdCIlIuIjxiSyJaEmiid5KGcpVypEKzAsIC0LLfYu4S/KMLMxnDKDM200VTU7
+ NiI3Cjf0ON45yzq+O8c82z3uPwFAGUEpQjlDTURfRXJGhUeYSK5JxUrdS/tNGU41T15Q
+ hVGwUtpUEVVIVoVXxFjmWf9bIFxBXWhelV/AYPBiJmNkZKRl5WcraHZpxWsWbG9txW8a
+ cHRxy3MmdIB113cweIl543tyfSN+4oClgm6EO4YVh/WJ1YvGjbiPr5Gmk6GVp5etmbGb
+ uJ3Dn8Oh36SSp1uqGKzTr4CyNLTft5m6VL0Uv9/CvMWQyH7LcM570XXUkde72t3eA+FJ
+ 5Kfohu2W9XX5NPrX++382f2m/qH//wAAABYAMQBLAGYAfgCXALAAyADgAPgBEQEpAUEB
+ WQFxAYoBowG9AdYB8AIKAiQCPgJZAnQCkAKsAskC5gMEAyIDQANfA38DngPAA+IEBAQn
+ BEoEbwSWBMAE7wUfBVEFhAW3BesGIAZWBowGxAb8BzYHcQeuB+wIKghqCKsI7gkxCXYJ
+ vQoFCk8KmwroCzYLiAvbDC4MhgzfDTkNlg31DlUOuA8aD4EP6xBWEMIRNBGnEhwSlRMQ
+ E4sUDBSLFQ4VlRYeFqsXORfIGFsY8BmJGiMavhtcG/4coR1FHekejh83H94giyE0Id8i
+ iyNeJD8lKCYOJvQn3ijHKbQqnCuILHYtYy5RL0AwLzEiMhQzCTQBNPc17zbqN+g46Tnu
+ OvQ8BT0YPis/QEBYQWtCgUOaRLFFzEblSAFJH0o/S2FMiE2sTtZQBFEzUmBTl1TSVgtX
+ TVh4WYRak1urXL5d3F78YBZhOmJgY45kvWXqZxxoUmmKasJsAW0+bndvs3DwcihzZ3Sh
+ ddl3EnhLeYV633xiffd/j4Engr+EWIX5h5uJO4rhjI6OPI/tkaCTV5UZluWYrpp+nFWe
+ MqAOof6kKKZfqJKqxa0Br0Kxg7PQti+4krsCvXnAB8KUxTbH3sqSzV/QHtL81ebYxNut
+ 3rnhxuTf6I/r2e6c8Ofy1PRz9fj3tP//AAAAJQBPAHgAoADHAOwBEgE2AVwBgAGlAcsB
+ 8QIYAj8CZwKPArkC5AMQAz4DbAOdA84EAgQ3BG4EqATjBSIFYwWlBegGLQZzBrsHBQdS
+ B6EH8ghFCJsI8wlNCasKCwpuCtQLPAusDBsMjw0GDYAN/g6ADwIPihAXEKIRLRG5EkcS
+ 3BNxFAsUpRVFFegWkRc7F+YYlxlLGgEauht2HDcc+B27Hn0fRCALINYhnyJrI04kPSU0
+ JionIigdKRwqHSseLCctLi46L0kwWTFwMogzpjTDNeQ3Cjg0OWM6mzv3PWk+4EBkQeVD
+ ckUBRpZILEnGS19M+k6PUChRvFNLVOBWb1f+WYVbElygXjhfy2FjYv9koWZAZ+Npimsz
+ bOJui3A5ceVzmHVFdvV4qHpdfAR9pH9KgO6CkoQ0hdyHg4kkisaMa44Nj62RSJLhlH6W
+ Hpe7mVWa8ZyOniufwqFhovuklaY2p9KpZ6sFrJmuM6/LsWmy+LSVtiy3xLlduvS8i74o
+ v8nBZ8MHxKTGT8f5yZ7LTM0Czp3QG9Ge0yrUv9Zn2AjZudtr3Q7eruBX4ezjbeTk5lPn
+ uekU6lDrg+yt7cbu0e/U8MbxtfKQ82z0LPTr9Z72SPby94j4HPiv+S/5qvok+p77Avtm
+ +8r8LvyH/NH9G/1l/a/9+v5N/rn/Jv+S//8AAHNmMzIAAAAAAAEMQgAABd7///MmAAAH
+ kgAA/ZH///ui///9owAAA9wAAMBsbW1vZAAAAAAAAAYQAACchAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAA==
+ </data>
+ <key>ReadOnly</key>
+ <string>NO</string>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 1</string>
+ <key>SmartAlignmentGuidesActive</key>
+ <string>YES</string>
+ <key>SmartDistanceGuidesActive</key>
+ <string>YES</string>
+ <key>UniqueID</key>
+ <integer>1</integer>
+ <key>UseEntirePage</key>
+ <false/>
+ <key>VPages</key>
+ <integer>1</integer>
+ <key>WindowInfo</key>
+ <dict>
+ <key>CurrentSheet</key>
+ <integer>0</integer>
+ <key>ExpandedCanvases</key>
+ <array>
+ <dict>
+ <key>name</key>
+ <string>Canvas 1</string>
+ </dict>
+ </array>
+ <key>FitInWindow</key>
+ <true/>
+ <key>Frame</key>
+ <string>{{9, 4}, {957, 874}}</string>
+ <key>ListView</key>
+ <true/>
+ <key>OutlineWidth</key>
+ <integer>142</integer>
+ <key>RightSidebar</key>
+ <false/>
+ <key>ShowRuler</key>
+ <true/>
+ <key>Sidebar</key>
+ <true/>
+ <key>SidebarWidth</key>
+ <integer>120</integer>
+ <key>VisibleRegion</key>
+ <string>{{0, -54}, {755.081, 661.385}}</string>
+ <key>Zoom</key>
+ <real>1.0886243581771851</real>
+ <key>ZoomValues</key>
+ <array>
+ <array>
+ <string>Canvas 1</string>
+ <real>0.0</real>
+ <real>1</real>
+ </array>
+ </array>
+ </dict>
+ <key>saveQuickLookFiles</key>
+ <string>YES</string>
+</dict>
+</plist>
diff --git a/MAP/doc/map_supervision.graffle b/MAP/doc/map_supervision.graffle
new file mode 100644
index 0000000..ae06d4b
--- /dev/null
+++ b/MAP/doc/map_supervision.graffle
@@ -0,0 +1,3602 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>ApplicationVersion</key>
+ <array>
+ <string>com.omnigroup.OmniGrafflePro</string>
+ <string>138.17.0.133677</string>
+ </array>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {756, 553}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>CreationDate</key>
+ <string>2011-01-30 20:48:12 +0100</string>
+ <key>Creator</key>
+ <string>Vance Shipley</string>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>GraphDocumentVersion</key>
+ <integer>6</integer>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{273.585, 386.41}, {8, 12}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>84</integer>
+ <key>Line</key>
+ <dict>
+ <key>ID</key>
+ <integer>83</integer>
+ <key>Position</key>
+ <real>0.77357888221740723</real>
+ <key>RotationType</key>
+ <integer>0</integer>
+ </dict>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs20 \cf2 N}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>82</integer>
+ </dict>
+ <key>ID</key>
+ <integer>83</integer>
+ <key>Points</key>
+ <array>
+ <string>{249.523, 354.182}</string>
+ <string>{285.799, 403.599}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ <key>Width</key>
+ <real>2</real>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>78</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{246.659, 402.092}, {116.358, 55}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>9</real>
+ </dict>
+ <key>ID</key>
+ <integer>82</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.8</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.8</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs18 \cf2 permanent
+\fs22 \cf0 \
+map_rsm_fsm}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{181.574, 386.33}, {6, 12}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>81</integer>
+ <key>Line</key>
+ <dict>
+ <key>ID</key>
+ <integer>80</integer>
+ <key>Position</key>
+ <real>0.77357888221740723</real>
+ <key>RotationType</key>
+ <integer>0</integer>
+ </dict>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs20 \cf2 1}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>79</integer>
+ </dict>
+ <key>ID</key>
+ <integer>80</integer>
+ <key>Points</key>
+ <array>
+ <string>{211.242, 354.255}</string>
+ <string>{176.769, 403.474}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ <key>Width</key>
+ <real>2</real>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>78</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{100.337, 402.092}, {116.358, 55}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>9</real>
+ </dict>
+ <key>ID</key>
+ <integer>79</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.8</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.8</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs18 \cf2 permanent
+\fs22 \cf0 \
+map_dsm_fsm}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{150.793, 300.031}, {158.332, 55}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>11</real>
+ </dict>
+ <key>ID</key>
+ <integer>78</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs18 \cf2 temporary
+\fs22 \cf0 \
+map_pm_sup\
+
+\fs18 \cf2 \{one_for_all,0,1\}}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{276.515, 284.481}, {8, 12}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>86</integer>
+ <key>Line</key>
+ <dict>
+ <key>ID</key>
+ <integer>85</integer>
+ <key>Position</key>
+ <real>0.76724845170974731</real>
+ <key>RotationType</key>
+ <integer>0</integer>
+ </dict>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs20 \cf2 N}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>78</integer>
+ </dict>
+ <key>ID</key>
+ <integer>85</integer>
+ <key>Points</key>
+ <array>
+ <string>{335.43, 250.297}</string>
+ <string>{263.856, 302.671}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ <key>Width</key>
+ <real>2</real>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>19</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{566.231, 386.41}, {8, 12}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>75</integer>
+ <key>Line</key>
+ <dict>
+ <key>ID</key>
+ <integer>74</integer>
+ <key>Position</key>
+ <real>0.77357888221740723</real>
+ <key>RotationType</key>
+ <integer>0</integer>
+ </dict>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs20 \cf2 N}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>73</integer>
+ </dict>
+ <key>ID</key>
+ <integer>74</integer>
+ <key>Points</key>
+ <array>
+ <string>{542.168, 354.182}</string>
+ <string>{578.444, 403.599}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ <key>Width</key>
+ <real>2</real>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>64</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{539.305, 402.092}, {116.358, 55}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>9</real>
+ </dict>
+ <key>ID</key>
+ <integer>73</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.8</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.8</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs18 \cf2 permanent
+\fs22 \cf0 \
+map_psm_fsm}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{474.21, 386.328}, {6, 12}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>72</integer>
+ <key>Line</key>
+ <dict>
+ <key>ID</key>
+ <integer>71</integer>
+ <key>Position</key>
+ <real>0.77357888221740723</real>
+ <key>RotationType</key>
+ <integer>0</integer>
+ </dict>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs20 \cf2 1}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>70</integer>
+ </dict>
+ <key>ID</key>
+ <integer>71</integer>
+ <key>Points</key>
+ <array>
+ <string>{503.882, 354.255}</string>
+ <string>{469.403, 403.472}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ <key>Width</key>
+ <real>2</real>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>64</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{392.982, 402.092}, {116.358, 55}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>9</real>
+ </dict>
+ <key>ID</key>
+ <integer>70</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.8</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.8</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs18 \cf2 permanent
+\fs22 \cf0 \
+map_dsm_fsm}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{443.438, 300.031}, {158.332, 55}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>11</real>
+ </dict>
+ <key>ID</key>
+ <integer>64</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs18 \cf2 temporary
+\fs22 \cf0 \
+map_pm_sup\
+
+\fs18 \cf2 \{one_for_all,0,1\}}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{463.383, 284.729}, {8, 12}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>48</integer>
+ <key>Line</key>
+ <dict>
+ <key>ID</key>
+ <integer>47</integer>
+ <key>Position</key>
+ <real>0.76724845170974731</real>
+ <key>RotationType</key>
+ <integer>0</integer>
+ </dict>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs20 \cf2 N}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>64</integer>
+ </dict>
+ <key>ID</key>
+ <integer>47</integer>
+ <key>Points</key>
+ <array>
+ <string>{405.954, 249.832}</string>
+ <string>{486.018, 303.135}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ <key>Width</key>
+ <real>2</real>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>19</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{212.266, 184.939}, {6, 12}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>22</integer>
+ <key>Line</key>
+ <dict>
+ <key>ID</key>
+ <integer>8</integer>
+ <key>Position</key>
+ <real>0.17890661954879761</real>
+ <key>RotationType</key>
+ <integer>0</integer>
+ </dict>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs20 \cf2 1}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{330.573, 183.024}, {8, 12}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>21</integer>
+ <key>Line</key>
+ <dict>
+ <key>ID</key>
+ <integer>20</integer>
+ <key>Position</key>
+ <real>0.20757196843624115</real>
+ <key>RotationType</key>
+ <integer>0</integer>
+ </dict>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs20 \cf2 N}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>7</integer>
+ </dict>
+ <key>ID</key>
+ <integer>20</integer>
+ <key>Points</key>
+ <array>
+ <string>{344.452, 199.373}</string>
+ <string>{296.862, 149.515}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ <key>Width</key>
+ <real>2</real>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>19</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{290.569, 197.969}, {157.582, 55}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>11</real>
+ </dict>
+ <key>ID</key>
+ <integer>19</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs18 \cf2 permanent
+\fs22 \cf0 \
+map_sap_sup\
+
+\fs18 \cf2 \{one_for_one,10,60\}}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>7</integer>
+ </dict>
+ <key>ID</key>
+ <integer>8</integer>
+ <key>Points</key>
+ <array>
+ <string>{207.748, 199.9}</string>
+ <string>{249.767, 149.814}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.6</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ <key>Width</key>
+ <real>2</real>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>3</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{192.76, 95.9081}, {158.332, 55}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>11</real>
+ </dict>
+ <key>ID</key>
+ <integer>7</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.6</string>
+ <key>r</key>
+ <string>0.4</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs18 \cf2 permanent
+\fs22 \cf0 \
+map_sup\
+
+\fs18 \cf2 \{one_for_one,1060\}}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{128.117, 197.969}, {116.358, 55}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>9</real>
+ </dict>
+ <key>ID</key>
+ <integer>3</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.8</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.8</string>
+ </dict>
+ <key>FillType</key>
+ <integer>3</integer>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.4</string>
+ <key>g</key>
+ <string>0.8</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red102\green102\blue102;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs18 \cf2 permanent
+\fs22 \cf0 \
+map_load_fsm}</string>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict/>
+ <key>GuidesLocked</key>
+ <string>NO</string>
+ <key>GuidesVisible</key>
+ <string>YES</string>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>ImageCounter</key>
+ <integer>1</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>LinksVisible</key>
+ <string>NO</string>
+ <key>MagnetsVisible</key>
+ <string>NO</string>
+ <key>MasterSheets</key>
+ <array/>
+ <key>ModificationDate</key>
+ <string>2011-03-08 00:24:54 +0100</string>
+ <key>Modifier</key>
+ <string>Vance Shipley</string>
+ <key>NotesVisible</key>
+ <string>NO</string>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>OriginVisible</key>
+ <string>NO</string>
+ <key>PageBreaks</key>
+ <string>YES</string>
+ <key>PrintInfo</key>
+ <dict>
+ <key>NSBottomMargin</key>
+ <array>
+ <string>float</string>
+ <string>41</string>
+ </array>
+ <key>NSLeftMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSPaperSize</key>
+ <array>
+ <string>size</string>
+ <string>{792, 612}</string>
+ </array>
+ <key>NSRightMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSTopMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ </dict>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>QuickLookPreview</key>
+ <data>
+ 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
+ o/45gOI5sF6h5gfD/I1ZSEAHja+qQGuh5nItvQamUnPF5TILWVPzr/4H2U+nfAplbmRz
+ dHJlYW0KZW5kb2JqCjYgMCBvYmoKMjU2OQplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAv
+ UGFnZSAvUGFyZW50IDQgMCBSIC9SZXNvdXJjZXMgNyAwIFIgL0NvbnRlbnRzIDUgMCBS
+ IC9NZWRpYUJveCBbMCAwIDc1NiA1NTNdCj4+CmVuZG9iago3IDAgb2JqCjw8IC9Qcm9j
+ U2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdIC9Db2xvclNw
+ YWNlIDw8IC9DczEgOCAwIFIKL0NzMiAyMSAwIFIgPj4gL0ZvbnQgPDwgL0YyLjAgMjIg
+ MCBSIC9GMS4wIDIwIDAgUiA+PiAvWE9iamVjdCA8PCAvSW01IDE3IDAgUgovSW00IDE1
+ IDAgUiAvSW0zIDEzIDAgUiAvSW0yIDExIDAgUiAvSW0xIDkgMCBSID4+IC9TaGFkaW5n
+ IDw8IC9TaDQgMjUgMCBSCi9TaDcgMjggMCBSIC9TaDEgMTkgMCBSIC9TaDggMjkgMCBS
+ IC9TaDIgMjMgMCBSIC9TaDUgMjYgMCBSIC9TaDMgMjQgMCBSIC9TaDYKMjcgMCBSIC9T
+ aDkgMzAgMCBSID4+ID4+CmVuZG9iagoyNSAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAw
+ IFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA4NC40NDMzMSBdIC9E
+ b21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzIg
+ MCBSID4+CmVuZG9iagoyOCAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRp
+ bmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA4NC40NDMzMSBdIC9Eb21haW4KWyAw
+ IDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzMgMCBSID4+CmVu
+ ZG9iagoxOSAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMg
+ L0Nvb3JkcyBbIDAgMCAwIDAgMCA2NS4wMTcxMSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0
+ ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzQgMCBSID4+CmVuZG9iagoyOSAw
+ IG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBb
+ IDAgMCAwIDAgMCA2NS4wMTcxMSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFs
+ c2UgZmFsc2UgXSAvRnVuY3Rpb24gMzUgMCBSID4+CmVuZG9iagoyMyAwIG9iago8PCAv
+ Q29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAg
+ MCA4NC40NDMzMSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2Ug
+ XSAvRnVuY3Rpb24gMzYgMCBSID4+CmVuZG9iagoyNiAwIG9iago8PCAvQ29sb3JTcGFj
+ ZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA2NS4wMTcx
+ MSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rp
+ b24gMzcgMCBSID4+CmVuZG9iagoyNCAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIg
+ L1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA4NC4wODk2MSBdIC9Eb21h
+ aW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzggMCBS
+ ID4+CmVuZG9iagoyNyAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdU
+ eXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA2NS4wMTcxMSBdIC9Eb21haW4KWyAwIDEg
+ XSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzkgMCBSID4+CmVuZG9i
+ agozMCAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nv
+ b3JkcyBbIDAgMCAwIDAgMCA2NS4wMTcxMSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5k
+ IFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNDAgMCBSID4+CmVuZG9iagoxNyAwIG9i
+ ago8PCAvTGVuZ3RoIDE4IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2Ug
+ L1dpZHRoIDM1NCAvSGVpZ2h0IDE0NiAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFj
+ ZSA0MSAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNDIgMCBSIC9CaXRzUGVy
+ Q29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dCBAAAA
+ AMOg+VMf5IVQYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBj4HRhdygABCmVuZHN0cmVhbQplbmRvYmoKMTggMCBv
+ YmoKNjk4CmVuZG9iagoxNSAwIG9iago8PCAvTGVuZ3RoIDE2IDAgUiAvVHlwZSAvWE9i
+ amVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDM1NCAvSGVpZ2h0IDE0NiAvSW50ZXJw
+ b2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA0MSAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAv
+ U01hc2sgNDQgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNv
+ ZGUgPj4Kc3RyZWFtCngB7dCBAAAAAMOg+VMf5IVQYcCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBj4HRhdygABCmVu
+ ZHN0cmVhbQplbmRvYmoKMTYgMCBvYmoKNjk4CmVuZG9iagoxMyAwIG9iago8PCAvTGVu
+ Z3RoIDE0IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDM1
+ MiAvSGVpZ2h0IDE0NiAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA0MSAwIFIg
+ L0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNDYgMCBSIC9CaXRzUGVyQ29tcG9uZW50
+ CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tDQ+I
+ QGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDjwMDWl4AAQplbmRzdHJlYW0KZW5kb2JqCjE0IDAgb2JqCjY5NgplbmRv
+ YmoKMTEgMCBvYmoKPDwgL0xlbmd0aCAxMiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5
+ cGUgL0ltYWdlIC9XaWR0aCAzNTQgL0hlaWdodCAxNDYgL0ludGVycG9sYXRlCnRydWUg
+ L0NvbG9yU3BhY2UgNDEgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNrIDQ4IDAg
+ UiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh
+ bQp4Ae3QgQAAAADDoPlTH+SFUGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY+B0YXcoAAQplbmRzdHJlYW0KZW5k
+ b2JqCjEyIDAgb2JqCjY5OAplbmRvYmoKOSAwIG9iago8PCAvTGVuZ3RoIDEwIDAgUiAv
+ VHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDI3MCAvSGVpZ2h0IDE0
+ NiAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA0MSAwIFIgL0ludGVudCAvUGVy
+ Y2VwdHVhbCAvU01hc2sgNTAgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAv
+ RmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tCj+IQGHAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDgOzDOAwAB
+ CmVuZHN0cmVhbQplbmRvYmoKMTAgMCBvYmoKNTM5CmVuZG9iago0OCAwIG9iago8PCAv
+ TGVuZ3RoIDQ5IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRo
+ IDM1NCAvSGVpZ2h0IDE0NiAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xh
+ dGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+
+ CnN0cmVhbQp4Ae3d519UWboF4O7p29pmRSUnRaKIoGQkK0hQkCwoUVGSZJQsiiAgGEEw
+ B8xO23acmb7zu//aXevd51QgKCAGtPYHW06dKoqH1WvvAuvs776zDIuAReBjCnz/7vEx
+ P/XX+Nia5j9mGz9wzHaj/q34GmE+6GtSMEY2UfwfGT/ObaiTp+jLw37QE1vqdxYBzZU4
+ YNI9l2Es5/hpTkNO5X2WaQ9AcTyi/k3jZ1rqWvN6/vh6jbA6qzJVoCtWrFiJscowVs82
+ DGes4h1wP/UAINe5Ta2/fmkDrSGwElWqiCm9YLlmzZq1MtZhrOfYMNuQW3maugPuuXq1
+ qBu4aS3JNqb6q4TWbUnLr5eyAquSSlUaEZSYVlZWGzdu3CRjM4f1zIM3qbM24XwrK/lG
+ rF+vwDVtWvNTadJm0PP6X+9LPXmKrUaLFmBexVWp0hRYxLTBsLW1tbOzV8OBw3H6kOPq
+ FDs7O1tb3s/G2lrM4U1uha2CraSRaX6LCc2qwtP7UuXm8LwMuJJb2LINSIvISl6ZVmEV
+ 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
+ wN1UVaxwRRsQlqFlalEJ6ATmlq2w0UpProbL3v3SdXV5g7IeZq4yTJ3ZGza2SLRIM9Og
+ Zqo9PIkNbUTbd8cOPxQJhj8G4GYauEVO8fPbAVKiQlVYlevWLZosUiu0zC1t10ktKFxO
+ apjVPuuiTLebx39VL6vpTzpDmDXn9RsYaIEWaaF2coa16xbRBje8MUDuRXR9+KihfwhN
+ Ly9PTwQVUXXfhrC6baWqqwsTy6o1yhpoWbmw5ZRmjvvF9e57vbUw68xcZ8CZeZbiwDyo
+ pEGNUMMasbZ3YLBRIs4uLhSnOdQ5wGc65Bhuk5NISlMnR0cHYWVibaw3M7MMraRWaE1t
+ 9eR+UWuG97JOPcHALKu5H5ctW26ARqJR0ZgKhdpqI2K9abPStrG1VeAwBzqG4/Qhx3kC
+ gmpnZ0tTqFpDVXcFLPoAskitotVyy87VamHpJXcqsXw8xVmHVpGWUNN67TqlvcHKCt4E
+ x9jMYT3z4E3qLER1oxXDirgq1rVrNFgpBL6GYN8KrdgiuF8Jrom47syfy/H1CVZ1iDQz
+ /RMWHewPYiPZwk1wkmOI3Ex/yK08jd8fhFVTRWDhiqaVrhVZc9qvz9aE+Tv8FJ+/KuH4
+ gdSUprWOTW56CzjRqT7LkJvlD95BQyUrEqvDog9UaJnar5zWzJnQptR6rDVueqt4M4nv
+ HnIqSDVUVgF7Vof95mTNnfGRUOuxlmBLtskk8X7/HzxVmWpp5f8g8rDTPtk3f0BpG7lJ
+ ZTIYTEM0TY6rv2p3/qaaYDESo7vN8t/F+BSWx7AIWAQsAhaBr1rg/wGkJicMCmVuZHN0
+ cmVhbQplbmRvYmoKNDkgMCBvYmoKOTY3NgplbmRvYmoKNDIgMCBvYmoKPDwgL0xlbmd0
+ aCA0MyAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAzNTQg
+ L0hlaWdodCAxNDYgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRy
+ dWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJl
+ YW0KeAHt3edfVFm6BeDu6dvaZkUlJ0WiiKBkJCtIUJAsKFFRkmSULIogIBhBMAfMTtt2
+ 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
+ Ug2VVcCe1WG/OVlzZ3wk1HqsJdiSbTJJvN//B09Vplpa+T+IPOy0T/bNH1DaRm5SmQwG
+ 0xBNk+Pqr9qdv6kmWIzE6G6z/HcxPoXlMSwCFgGLgEXgqxb4f81VJw0KZW5kc3RyZWFt
+ CmVuZG9iago0MyAwIG9iago5Njc3CmVuZG9iago0NiAwIG9iago8PCAvTGVuZ3RoIDQ3
+ IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDM1MiAvSGVp
+ Z2h0IDE0NiAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAv
+ Qml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4
+ Ae3d919U17oG8JyccxILKoqK9N5BivTekSII0hSlg3QUEVGaKCoWQAEV7D22xPTk5p7z
+ uf/afZ537T2FkgBCombWDwnM7D3MfH181hqEvT77zDIsAhaBNRL4x++PNfqqn+jD6paf
+ LzL+ybHIfZ9/rp39idqs+GUJixFNDP8l499LG+rgOfbyqCt+Tp/AiQTQVWFDJI3zC44v
+ OdYtacihPEc7nw9Fbe3R+YU+Aa+lvgSjq1IVFAWqNNevX78BY6NhWC02DEds5Ak4Tz0A
+ vHVsJa2gP3VnA6y4aqxaRkkqWlZWmzZt2ixjC4Y1x9bFhtzLw9QJONPKSh7FgE1p+UqS
+ aHH+BJlNZFUJ8K8/sqap0pRC5BTKbdtsbGy2q7EDY+fCg3dpR+H4bdvkXGtrxa1ZU5qp
+ 1pzJbEjzUv/GfcjHgVZeDwsWQQKsckXMwGpEhSipYGnLsWuXnZ2dvQwHDsf5Q25Xh+DY
+ XbvkvJ07hRzaxFbUKtTKGXlmnHVlPLsPGe/3n5tGq8uqxLIFlCuzKqrKFKLAoqQThrOz
+ i4urDDc3N3cOD/Mht+E+NznIxcXZmac5Ojo44FHADW2hVtLWbJBN7A5hVsp6lj9CZDNa
+ LbOQlR7YIq7MKqKKmAKVpAoUlnD09PTy8sbw8fHx9fX1Mwx/NQyf+/nhbh8fHurl5emJ
+ M93dKQ5uYgs1pHeyRZhoA7NSlmrWovzxICtblVqhXS+yqFcNVrkqVmekFAEFKUGh6efn
+ 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
+ VBXq5k2brIRVAsuVF8vg3//SMst57JOgNSJjcSEzH5Wll/FyNWf0hpKWUG8SbHIz2xji
+ ttB/5F4exj8dFIBmirBCFT0gTSCuAivrA8J+arImyJ8ZmZUzl3KERqIZaQzQbMDA32lt
+ WC029AMIaiAlKtKqsyKwyvWThzVTNnXWEs21hgzgCLcOrtgX/y88RVSRsgRYAzrr3811
+ DrOCVvWsdbT0B5E07z/6Hw9VolpS+TisgU+6B+Y5LuEGQcF/BHqB/zCVJoZzjtDOXsLX
+ sRxiENDJF/m/4TjLBxYBi4BFwCJgETAT+H8Sf8cfCmVuZHN0cmVhbQplbmRvYmoKNDcg
+ MCBvYmoKOTQ2NgplbmRvYmoKNTAgMCBvYmoKPDwgL0xlbmd0aCA1MSAwIFIgL1R5cGUg
+ L1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAyNzAgL0hlaWdodCAxNDYgL0Nv
+ bG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRydWUgL0JpdHNQZXJDb21w
+ b25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtnfdfE9n7xT/r
+ rh1EihTpvTel9y5NgdA7CNIhUkIvIiC9iAJSpSr2ldV16+v7r33Pc++kEEBRUaOb5weF
+ mclk7ptzznMDydz//U9dagIqR+Cn/UrlrvKLXRAf/bHDFT/4i13LNzsxjUtK4GfUL1TH
+ Dy62nw4UHsS4fLOrP7InlmNgCPj4T5w4cRJ16uCi3TiKH/7LLzIsdLoju7aveSJcN/vB
+ MiXQsAgBG//p02fOnDkrlIZyCdtxyOnTp+l4BoZOQFTYKb8vJDIQ3A2cAjGgkWpoaGqe
+ o9LS0jqP0t5dtAl72BGamhoa9BCAYViYWL4rJlwRZAuSA6kBGAgCY4DxY/A6Orq6eqwu
+ oPQVizawPbq6ujo6OBZsQAZciApBgYW4TkgmqqwSgYQAQuCgQUrQAgQwwDgxeAMDA0ND
+ I6OLVMYoE3nRt2y7kZGhIY7T1yc2ugwLqDAonAlDwp2jglGiQOIECQJ6IA4MAyhcYAxA
+ AGM3NTU1Mze3oLK0tLSisqZiX2EL22NuZobjTAiOEbhwKpAKMYFOCAlTiZAlP6lOuO5D
+ goMgNQCDIaMABDR+jNzGxtYOZW/v4OC4txwc7O2x19bWhgiBjTm4mHAqBEWXMZEhgUg4
+ EZVwDUOBnKCUYJqAJKAIgIAewMHYhDAwCACA4Ts5Obu4uLi6ubm7u3t4eHjuKmzAZnc3
+ N1cc4+zk6OgAMsTFilEBFCgFTAgJUwkTCSOCGEGOfM22qfxcHAUFhZyEtjYHwThYWFhZ
+ QwmgQAwAAKO/dNnLy8vbx8fX19fPz8/f3z9AWvjazw+bfX18vL28Ll++5Onp4U5gnIEF
+ VKytLUkpJgyJnp4OGQciARGKVqlElC/y63wvoOCiQE5AE4yEgeHFixCEhaW1NTgQBld3
+ d09PMAAAP4w9MCg4OCQ0NCwsLDw8IiIiUlb4Jjwcm8NCQ0KCg4MCAwL8/XwJzCVOBVDs
+ wQQ6YUgMDEgkROTsWcqRbwdEEQUiU+PcufOkCZAwloJwcHSGGjyAwdvX158YhGD8EZFR
+ 0TExV67ExsXFxSckJCTuroSE+Hjsib0SExMdFRkZEQ4yxMWfqBAUVwjFgSEx5yK5QBph
+ EpED+bqOIRaUFYgKhkJLW0eBhK0dB8E4AANRAISYmFiMP/HqtaSk5BSRKDU1LR2VkZGR
+ KS18TZvSUkUiUUpyUtLVxMSEuLgrxCUiLDQ4ODDAz5eYuLu5OEElNjAOETHQJ4mcOwfP
+ CEC+YoTIZIGsIFVwFEZwB8xha+foBEUAhI8v4xARGR1zJS6eIKSIACAjKys7Jzcvv6Cg
+ oLCoqKi4+DqqhAr/FxcXY1thQUF+Xm5uTnZWZgahSU66lpgQDypRkeFhIcGkE0Li6gKR
+ 2FhbkEYMYRodbS0ORBqqX0EhxELoIFIU+gZGxqbmFtY2dg4g4eEJZ/gHBoeGQQ6xcYlX
+ k5JFqYCQnZubDwDFJSWlN8rKKyoqK6uqq2uoaoVi39RUV1VVVlaUl5XdKC25Xgw0+bk5
+ WZnp6akigkJMIjgS78tSIlYWZiQRAGGWYaH6C72m+cI86JUYsYBDKDaZQQgFRGHvyEj4
+ +AUEhRAI6OFasigtHRjyCgjCjbIKAKiprROLb9Y3NDQ2NUkkkubm5hZ5NTdjk6SpqbGh
+ of6mWFxXW1NdWVledqPkOqjk5QIKYxIfGwPrBAcF+DIizo7IEUiEgJBlNMkxgkC+HA+S
+ BbFAWpAsEJsXmCosrUkUcIe3X0BwaHhkTGx8IgSRnpkFNRRdLykrr6yqqRWL60FA0tzS
+ 2tbe3tHR2dWN6um5heplRV/19PRga1dXZ0dHe1tra0uzBGRuiutApQJQiosK8nKyMtJE
+ ydcS465ER4aFEJFLHm4ujvYciKEBMoQcA4FQj/lS+pCxoLTQpLBAAyFV2Dk4u7pf8vL1
+ J03ExCZcTRKlZQBEYXHJjfLK6pq6mw2NEgkgdHSAAIZ+u6+/v3/gzp1B1NDQ0LC88B1t
+ vHNnoL+/r+927y2w6SQuLZKmhnpAqaoEEyDJzcpITUlKjCciwYF+Pl6e7i5ODgACyyBU
+ yTEQCGYh3DBHPuVgusDcAhah4IQsLpqYWTAUHpe8fQOCwyKjY+NBIj0rB84gEDV1YnBo
+ bm3v6Ozu6e0FAwAYGh4ZGR0bHx+fmJhETaHuSou+oY0TE+PjY2OjIyPDgAMwwEJU2lqb
+ JWBSW11ZTkhyszPTREnQSFR4KCTCgNjbWlmYGhsxgQiG+QI8drE4r6OnD1lYWNnawyAC
+ ipi4RJDIzMkrLC4tq6yuFTc0SSCHLoihr3+AIIABAEzdnZ6+d+/+DGp2dm7ugVLNzc3N
+ zmLf/fv3pqen7wIOwIyODBOV2709xKRF0lgvrqmuKCspBpGMtJRrCciRsGAOxNHOxtIc
+ ArmgR4bBNJXr4wjzQ5kF0oJk4Yis8GKqiIm/mpyakZ1XQCRq6uobJS0A0dN7G2oAhvHx
+ yUlAAIJZDH9+fmFxcXFpaXl5RaiHvITvlpeXl3DA4sI8SM3NzhCXqckJgjLEmHR3EZKG
+ m3XVlWWkkax0kogUiJszOcb0oqG+HhKVAuRIeQg9lXsEuoBFzC1t7J1cPeQo0jJz8otK
+ BBKt7Z3dBGIIHCYmp6ahBFAgBksA8PDh6tra2vr6xsbGplBbvKTfbmysr+OQtdWH4ENk
+ FjgVksr4GHRyp//2re7O9lYQqa2uuHG9MC87I5UDCfL3ueTu4miHBCHDIEA0ZPlxFPqA
+ MKiPsLxgLMgiDpCFt19QaGRM3NXktMxciKK8qvZmg6S1HZKAM4YJxF3IgWEgCmAABJub
+ W1uPHqO2t7efPHnydG9h6/Y2HfHo0Rb4bAAMYVlmUGZn7k3fnZwgJAN9vSACjYhrSCL5
+ OQxIdERIICLEzcnextLMBDygD8pT9Beaf3xmnDJh0PziDFoq6cKUW+QyHBIejaxIZSgq
+ quvqm1raoAl4Y2RsXACxsLgEMQADUQAEAMDwnz17/vwF1UvUq91Fm9i+58+fPcOxQAMu
+ wAIqgAKlzD+Ym7kP64yPciIdrc2NN2urygEkO0OUlHAFEeLvDYE42FqZMx5anMdnt1uZ
+ Sc6cRR+RsiCLBEIW8ddEGTBIaUW1GKLo6L51ewAkJian70ERBAKeWGcYthkEQoDh/0r1
+ +vXrnZ2d3/YpbN7BXjro1SuG5jmwCFCIycoKIZmdgUiISH9vDyTSVF9bBYXkZaWnXI2L
+ iQgJ8L0MwzAeyA8tTXl8fLI8KD25STDt1DMwMjFHdLp6evkFhUXFJianZeUVlZRX1TEU
+ EMXQKDTBSEARq2sbJAfi8AwYGAQiQON/8+bN27dvfz+4sBfH0KFEhmF58YJBgVA2NwnJ
+ MtKEExkZGui71QUgN2sry64X5GamkkBCAzkPSzNjQ31dbRYfx49/xmyMJwY3ia6+obG5
+ FWPhHxwWHXdVlJ5TUFxWWXuzCaro7R8cHpuYmp6ZfbAASZAiAIJxYGJ4TRAIAQPw7t27
+ P1B/Hli0Fwe9Y0cDDKcCKDARmEAnjzY3YBxG5P40JDJ0h4A0N4prKkqL8rPSkxNjI8MQ
+ IPCLjaXpRRannyUPnhiUnph4kkksbR1dPLz8gsPJIpm5hSXl1eLG5vYuoBgZI1E8mF9c
+ JhJbjx8/IUGQHogDMNC4iIEA4C+qvw8utp8fy8Dg0QIUEgpHQiJhGpmfm5memhgdBpDO
+ NklDXRUEkkOGiQIP+MWe+i3ilMuDpcdHuwUwWCtBemrr6hshPNFHOIukVFiktLKmXtLa
+ 2dN3Z5hQMFGsrgkkXryQgiAOUgwCgX8OXYQLD2JYSC0EBULZARKoBCJhGnm4AtPM3AOQ
+ oYHe7o5WCKS8pDA3Q8R5XHJ3srM2Nza8gG7L5fHxr12kLuHCMDazsnNyv+wbFBYdDxb5
+ sEhdQ3M7HDI0OjEFVSwur0AUj0gTJAmmCAaCqYFjkEP493AlfwCjQlDARIqEieTZ0+3H
+ W5vrqytLAALLjAz23+pqk9TXVpYW5WaCR2RogI+nq6MtswuTB5uLfdzUg2CwOca580wY
+ NghPn4CwqLhrjEWVuLGlA7IYGZ+cnqGoQGQ+2gYJaIKRIEUIIP7+Wzqq/Rn8n0Ltf4T0
+ 8f+QUqRImEhII8+ZRAgIWWZybBgCaW9uYDwyRMiPEH8vD7KLCeSB5oK5x0e6RYBBLkFi
+ mFnbObt7+QdHxl4VZeYVl1WJm1o7b/UPjk7cvT83z1AgMiGKX3+llGDWwEVTMggD2W+U
+ ChD2frnfA4RzSZFAJETkNeXIs6fwDIAsPpi9NwWB9PV0tDTUkT7SUxJjwoN9L7s52kEe
+ +rrkFkzFqLccNjwAgxrrGQ0t7QuGJhYkDN+g8JjElIzcohuMBSwyRrJYXFmFQTgKiILi
+ kjTxXhB7x37glr1Q5EhIJJzIDknkGYXI2sNlcszE6GA/51FSmJOeFB8dFuBN8jA3pjBl
+ 4XF4HAzGyVOIDB19tBIkhpd/SFRcUnpOYWllXWNrZ+/A8PjkvVmSBWKTqYJQCO6QSWLP
+ WA4c9ft37DkPRwKRcCKQCAMCy2xtrEEgMAzjAb9UlBRkpV6NjWTysIFbeG85cWh1yGCc
+ 1yWX2Lt4+gRCGKKs/JKK2oaWzt7+4fGp+3MLyw/XNxGbMIgcBUTBL1V5BO8f74f3Kp/v
+ X/Y03DWQCAPyChmyTQJZmp9FgJA+JPU1ZcW5GckJkIeXuzPcYqSvo4UXcofFIYVx7rye
+ gbG5taPbZb/gSAgjt6ispr6541b/ELGARTaYLF4hKwRVSEWhfOUfHushj1A6sSARSlYO
+ 5DV3zOb6w+X52XvQR193m0RcVVqYnXr1SkSQryfcYobw0NI8LA4ZDOSniYWto7tXQBgJ
+ o6CkUtzU1t03OMZYrG0gLZ5DFpQVLCqEyFS64kOO8/CHKZ2fS0QKBFMREggMs7q8AH2M
+ DPZ2tTbUlhfnZSTFR4X4XXJ1sDa/aKB7/pA4FGAgP+2cPbwDw69cS8uBMMgkg6OT9+YW
+ EBdggW668xtik1JzXxSHH+LHHbk/EGQIQvUNmsxLGIZ4zCNPRwZudUhuVpUWZIkSY8gt
+ jjbI0kPiAAyaZ5xFZzU0sbRz8fQll2TkQRiS9p7+4Ynp2YVlsHjyTGDBZcF+Qrsv8uMG
+ +NFH734yen4WquQYROrLF+Cx/nDpwczd8aG+bsijrCg37dqVcOBwsrFQwPHePovpuBQG
+ mgmDEZ+SVVBaXd/SdRsmmXmwtAqPgAUsoiiL3Vf30YP7lAfsekqZY+Q8HoPH4oN7kyN3
+ ejsk4sqSvPSkuIggbw8nW8JBUUrTsPfgoNcmmGdoIkC5MkKiE0XZcEljW0//yMQ0wnN9
+ izwiZ7FXFp8ysk98zB4gTCCCPpAfm2sriA/Io6ulvrq0IDM5LjLIR4bjNHC8ZxbGQgOT
+ LrRWZIaLpx9gpOYUlddJOnpJGPMwyWPKC5ku9rD4xGF98sP28PiHZiF/cL88f/J4c3Xp
+ wf3Jkf6etsaassKslPjIYOCwMb+or8NmpRDHQeogn5w8raGla2BMMHxDYxLTcq9Xips7
+ bw+NQxgPNx49QR/ZkXqEWOy6nE8e1Oc8UPEK2E+HeHB9vHiG+FhZmLk7Ntjb0YTwyBIR
+ DorSixcwK2XTjgNoyEJD/6K5rbOnbwiHcbOlu39k8v4DLgzWR1gbUWbxOSP6vMcq8mDT
+ MikP9FvYZXVxDm653SGpKy/KBo4gb3dHazMjmqSfOnGQV7hPqJ0YmVk7evgGR0MZJZX1
+ rYAxNbOwsg5hIDAwvaCWqjosGEkFIFJ9IE/foL1AHmvLcMtwX5dEXMFwBHq5OViZGuqd
+ 1zhzElP0fcUh+OS8nqGptaO7d3BkYipsUt/aMzB6d3ZxlRKDTIKeqnIsCIgSD8pTig+S
+ xyNyC8Kjq1lcXpSVEhcR4OVqR43lYK+QNGimoWNgbGnv6hUYGS/KYTDujE3PLa1tbj97
+ +SuEITWJwpP/+3k6P7JHK1wS6YPbBfIgtzxcnJmS4kiODfO/5GIrRAf6yj7iIGmguWpf
+ QGi4XPIPj0vJKqq82doDGIiMLeaSfYVxZKP5/BPt5cHkAbcgPGYJh6SurCAjKSbU18PR
+ mnkFv+3YzyvHjh0/gX7CfOKBdpKUWVgubukeYDAeCS758082B1d41s8fwpGeQeHKZPKA
+ W55vb64xHJ2S2hv56YlRwd5u9pYmBmizFKR7xMGkgQjVR3N18wqKSkwvKKuTdPWPkjII
+ BnOJcmIc6UiO5mRyHoJdWJg+f7K1tojsuN3RWF2SK4qPCGBe0dPW3DdIf0JqnNY4j35i
+ 4+wZEB4vyi2paeroG7mLzNgNQ/50R3P5R30W+fUJOP6g3vLiydYqcAz1tjVUFmclX+Fe
+ YUG6NzkEaehgRu7g7hMSk4TQaGjvHZ6cWRRgSPuq/MmOehhHdj75JXK3UHgAx+bDhfvj
+ gz2t4rKC9KtRQV4udhaYg5E4jh3b/UtSksYpkgYi9HJAJPlE3NIzODGzuLpFNqFJxu45
+ xpFd+5c4kYyHAg5kx8r89BiStAZeiQvz80SQcnEo5+hPx46fPEOpAWn4hsam5MAnnf1j
+ 0/Mrm08oM97xSYbsWVSlqx6EUnah5BY289h59fzx+vLc1Mjt9obKoqykmGCadFzU09Y4
+ vSdHqb2eRUNBalwiaRRW1Lf1Dk/NLa8/fr4PjIMuQnW2y3DQVP1vTMTe7Lx8+ghJOjHY
+ 01J3Iy81PtyPuiy1FWWr8AzFXMPCHqkRm4IIlXTfGb9PofFy5+3vSspQnUG/50pkPKQ4
+ XlN0zE+P9nc0VhVnXYtGctiaG+lpnT2FKYdicHCj6BiYWjt5BkQgNSrq22+PTD8gn7z+
+ DRNQygzZ6d9zCaq0S3a9gll++xVeWZqdHLrVKr6Rh+TwdXewNNbX1lS2yk/cKEbmdi5e
+ wTFJ2UwaiNC1x8+QoLthqNKA338tCjgwTX/3Fl7ZWl1AkHYgOTISIwM8nZhVqKsoTsAo
+ NjRgFMrQsLjU/DJxW+/IXS4NSlAFZbz/AlRsr5QHe9XyO9rs9vry7ORgT3NtSU4yy1Gp
+ VXbRwNRLU9vAxNrRExmaUVTV2DlAqcGlQTNQ6XlVbLgfuhzhsnl0MHEgOdBW6ssLUplV
+ aMqhsTs4EKLor7roKC5eQdEwSm1zz+Dk3MrG9ovXkMb3C0P2Qp9FB8Tx/DHayvhAV1MV
+ t4qjtYkBDw55jCJEqb8iNly9Q66I8mAUZOj8w62nr5AaCj750I9CBffL1IE2+3YHbWVl
+ DjkKq2QnRQdedrahHnsGMw4lGuf1qL8iNtIKKho6+plRMNdAd5X5RAUH++FLkuH468/f
+ f3v1dItZpU1clpuC4HCxMzfCL31OKtNAiBpbOnr4hSekF1U1dd+ZmFkio7whowgn/PAz
+ q+QR/OppDgarPINV7lFXKc8XxYb6uNF0lGYcitpgLUVfCNHM6zUSFhuYbOy8JaPw86nk
+ UA9xUVJx/P3nuze/vni8TsHR2VhZmEYxag8a54mGvKlgukEtBXMvTMuvZpXUttwankJ/
+ ffpS0SiHeGLVPEQqjr/+ePv6xfbGMmbn3YjR9IRwP5p/XdhDgzVYU2vnS4FR17JL6lpp
+ tsFDVGYU1Rzpoa6K4cCrNx6jNOPollSDRgReqlgZsxa7SxugQfNy58uBaLClYtCYVqJx
+ qKdV1YM4jr/++H3nJWsqgz2SmuKMxAh/T9DQpwmHmsb7aFBuqJ2CaYc6RXc7hV60qTss
+ n4/SzFw9+5LOzdnrFPXMXMChftW2+3WK+hW91Cf4n/7Qpv5tjxSI+jeB8hdtbMIh/LpH
+ /Vti0GB/alP/BYF7Rf3XJWlmsP/Vf3lUxMGtov6rtNwq7B0LZup3LFCM0t8e8YZA9btZ
+ SB48R9XvdJJahYlD/S44jkP9DknOQUEc6nfPCkjU76xW1AZrK/h0ivpd94zKj/iJjN8+
+ +RMZTBzs847qT+uQPGgKpv4klzQ+uFfUn/ITeEAc6k+ASrXBvSJ8VFr96WAkB6JD/clx
+ qTxYdOBOJOyD9P/1uwqQV3CXGo5DfccJBRzqu5GQYaTq0FTfqWYXDvVdjGQ4fog7XJV+
+ /h2umFmo0arvfkbakOE4fVZ9ZzwpDtZp2e00P/Wuibh7JG4uhFvD4TZH7BOT+CgASnhz
+ 74f+4wfTv9/4rolQB71mEdzyn7+jJsPBZunqu62y7GAvWsgtdLvq//qdeHmWfvd3abY6
+ qrs0C25h6aG+gzfrLew1vvru7jw7+NSD39Rcdrf79935nxaD+JJ3/r//Le/8T+lB8tjF
+ 44hXhRAWhaBVD1ip8qoQQpr+LF1JhlZD+A+vGMLig1ZcUuBx8Goy+YXXv/1qMrib+5db
+ TWYPj0OsNISlp37YlYaE+OD6+NqrUGHBJaVVqPK/9SpUMh7I08OuUJb9465QRnahyTr1
+ F8w/DrN6HRZte9/qdbRS3aeuXocF/b7x6nWcB++3UoHQum3/2ZUNmT7kAvnoVS+x5ucP
+ teqlXCA0I/saK6LGxuyzIqqzqqyIKuPBEkQK5BNXy929Vi7Wg/0OV8vdAwSWUVpJGStr
+ /3dWUmY82EsYKOSrr7KN1XH1VWyVbUUg1HXhmVO0rvJhVmB3/RFXYFcAwiUiEIFrhEXp
+ 0X5pVXqsvU3L0lvwhemxJjvK3t4By9PvKQcHe6xBb2dLq9BbW1mydehNsRC9sBI9W4pe
+ i1bVppXXdy29rvhhLH5l3+pfetlPEzO5RkgkhERbR1dP7wJBYVRMTEwJDJGxsLS0tGKF
+ cWPkVNhEe7DsvBmOMzHmFAz0L+jpCRzkIOSL0B98U/JvxYP/IkQgwm0D3zAmHApRARZw
+ ITDQC8oYZSIv+pZtNzIyNMRx+pyCjrY2LTt/TlOqCCYJ3LcfK+R8/AJbXxGQoBEmEiCh
+ KCEmgAKlgAq0oq2jo0tgiA1KX7FoA9ujq6urwyAQBY6BOePUSVLE8V9oISkCoTruOAgy
+ rpEulfuG0hVMCAqjosG5nNPSAhoU6CgWbcIuEGAMkA7IBwoIigiBAwPxXZCQEZIh+Znr
+ 5PgJToVzITCsNJRL2H4GCE5zCFADYSA9fIccZEDwBZhwnRwjKIhYqhMEhgmGfuT7Fe3G
+ UfxwosAxkB5U3xqK49/3azkU+AcFMFI0fMRK/7L9dCBzHMuHHwGDMhvCIlWLMNKD/+MH
+ K5/ix/2ej1fp3x93uOqRqQmoCfyYBP4f1T0hOgplbmRzdHJlYW0KZW5kb2JqCjUxIDAg
+ b2JqCjY4NzQKZW5kb2JqCjQ0IDAgb2JqCjw8IC9MZW5ndGggNDUgMCBSIC9UeXBlIC9Y
+ T2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMzU0IC9IZWlnaHQgMTQ2IC9Db2xv
+ clNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9u
+ ZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7d3nX1RZugXg7unb
+ 2mZFRTIoGRFByUhWsoJkQYmKkkSigSSKICBgAARzwOy0bceZ6Tu/+6/dtd59TgWCAmJA
+ a3+w5dSponhYvfYusM7+7jvLsAhYBD6mwPfvHh/zU3+Nj61p/mO28QPHbDfq34qvEeaD
+ viYFY2QTxf+R8ePchjp5ir487Ac9saV+ZxHQXIkDJt1zGcZyjp/mNORU3meZ9gAUxyPq
+ 3zR+pqWuNa/nj6/XCKuzKlMFumLFipUYqwxj9WzDcMYq3gH3Uw8Acp3b1PrrlzbQGgIr
+ UaWKmNILlmvWrFkrYx3Geo4Nsw25laepO+Ceq1eLuoGb1pJsY6q/SmjdlrT8eikrsCqp
+ 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
+ fqgrq8eoN6h/1pDSCNa4pjGzS2SX766yXe81+TUpmiWaE1pkLU+tS1oT2nzaFO1S7Xc6
+ Ajo+OuU6H3XFdIN0q3UX9WT1ovRu6q3qq+sf1O80QBkYG6QbPDRkMHQwLDAcM+I38jeq
+ MloyVjLeb9xpgjExN8k2eW7KbeptWmm6ZKZidtCs15xobmdeYP5ut/juqN1tFrCFmcUZ
+ izeWQpZhls1WwMrU6ozVW2sR60jrWzZYG2ubQpsPtnK2B2wH7BjtPOyu2X2317PPsn/t
+ IOoQ69DtSOvo5ljpuOpk4JTjNOEs43zQeciFwyXQpcUV5+roWu66ssdwT+6eaTclt1S3
+ UXcR93j3wb0ce0P2tnvQelA8Gj0xnk6e1zw3KVaUUsqKl6lXkdeSt773Oe95Hx2fsz6z
+ vpq+Ob4f/TT9cvxm/DX9z/jPBmgH5AUsBOoHFgR+CTIJuhi0GmwVXBG8FeIUUheKD/UM
+ bQ1jCAsO6w3nCY8PH4mQiEiNmIhUj8yNXIoyjyqPhqLdo1timJDD4f1Y0dhjsZNxWnGF
+ cWv7HPc1xtPHh8XfTxBPSEv4mGiUeGU/er/3/u4DfAcOH5g8qHuwJAlK8krqPiRwKOXQ
+ dLJx8tXDhMPBhx8ckT2Sc2T5qNPRthTulOSU98eMj1Wl0qRGpT4/rnH84gn0icATD9MU
+ 0s6n/Ur3Sb+XIZuRl7F50vvkvVNyp/JPbWX6ZT7MUs4qPo09HXZ6NFs7+2oOfU5izvsz
+ FmeazpLPpp9dzvXIHcxTzLt4jnAu9txE/u78lvOC50+f3ywIKHhWqFdYV8RVlFa0esHn
+ wuNineLai9wXMy6uXwq89KLEuKSpVLg07zL2ctzlD2WOZQNXVK9UlnOUZ5T/rAirmLhq
+ e7W3UqWy8hrXtawquCq2arbarXq4xqCmpVaqtqSOpS7jOrgee32u3rN+tMG8obtRtbH2
+ htCNopuMN9OboKaEpqXmgOaJFpeWkVaz1u42jbabt6RvVdzmu13YztyedYdwJ+XOVkdi
+ x0pnROdCl3/X+26P7tc9zj1Pe216H/aZ993tN+rvGdAd6Lireff2oPpg6z3Ve81DykNN
+ 95Xu33yg9ODmQ+WHTY9UHrUMqw23jewaufNY+3HXE4Mn/U9Nnw49s3w2Muow+uK52/OJ
+ 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
+ PCAvTGVuZ3RoIDU3IDAgUiAvTiAzIC9BbHRlcm5hdGUgL0RldmljZVJHQiAvRmlsdGVy
+ IC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWato
+ RdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKh
+ Fy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvs
+ TiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI
+ 3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbI
+ EL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0
+ +GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv
+ 4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1
+ JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF
+ 5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXj
+ VfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPi
+ KTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM
+ 0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZu
+ a6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VL
+ FrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UUKZW5k
+ c3RyZWFtCmVuZG9iago1NyAwIG9iago3MzcKZW5kb2JqCjggMCBvYmoKWyAvSUNDQmFz
+ ZWQgNTYgMCBSIF0KZW5kb2JqCjU4IDAgb2JqCjw8IC9MZW5ndGggNTkgMCBSIC9OIDEg
+ L0FsdGVybmF0ZSAvRGV2aWNlR3JheSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJl
+ YW0KeAGFUk9IFFEc/s02EoSIQYV4iHcKCZUprKyg2nZ1WZVtW5XSohhn37qjszPTm9k1
+ xZMEXaI8dQ+iY3Ts0KGbl6LArEvXIKkgCDx16PvN7OoohG95O9/7/f1+33tEbZ2m7zsp
+ QVRzQ5UrpaduTk2Lgx8pRR3UTlimFfjpYnGMseu5kr+719Zn0tiy3se1dvv2PbWVZWAh
+ 6i22txD6IZFmAB+ZnyhlgLPAHZav2D4BPFgOrBrwI6IDD5q5MNPRnHSlsi2RU+aiKCqv
+ YjtJrvv5uca+i7WJg/5cj2bWjr2z6qrRTNS090ShvA+uRBnPX1T2bDUUpw3jnEhDGiny
+ rtXfK0zHEZErEEoGUjVkuZ9qTp114HUYu126k+P49hClPslgqIm16bKZHYV9AHYqy+wQ
+ 8AXo8bJiD+eBe2H/W1HDk8AnYT9kh3nWrR/2F65T4HuEPTXgzhSuxfHaih9eLQFD91Qj
+ aIxzTcTT1zlzpIjvMdQZmPdGOaYLMXeWqhM3gDthH1mqZgqxXfuu6iXuewJ30+M70Zs5
+ C1ygHElysRXZFNA8CVgUfYuwSQ48Ps4eVeB3qJjAHLmJ3M0o9x7VERtno1KBVnqNV8ZP
+ 47nxxfhlbBjPgH6sdtd7fP/p4xV117Y+PPmNetw5rr2dG1VhVnFlC93/xzKEj9knOabB
+ 06FZWGvYduQPmsxMsAwoxH8FPpf6khNV3NXu7bhFEsxQPixsJbpLVG4p1Oo9g0qsHCvY
+ AHZwksQsWhy4U2u6OXh32CJ6bflNV7Lrhv769nr72vIebcqoKSgTzbNEZpSxW6Pk3Xjb
+ /WaREZ84Or7nvYpayf5JRRA/hTlaKvIUVfRWUNbEb2cOfhu2flw/pef1Qf08CT2tn9Gv
+ 6KMRvgx0Sc/Cc1Efo0nwsGkh4hKgioMz1E5UY40D4inx8rRbZJH9D0AZ/WYKZW5kc3Ry
+ ZWFtCmVuZG9iago1OSAwIG9iago3MDQKZW5kb2JqCjIxIDAgb2JqClsgL0lDQ0Jhc2Vk
+ IDU4IDAgUiBdCmVuZG9iago0IDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvTWVkaWFCb3gg
+ WzAgMCA2MTIgNzkyXSAvQ291bnQgMSAvS2lkcyBbIDMgMCBSIF0gPj4KZW5kb2JqCjYw
+ IDAgb2JqCjw8IC9UeXBlIC9DYXRhbG9nIC9PdXRsaW5lcyAyIDAgUiAvUGFnZXMgNCAw
+ IFIgL1ZlcnNpb24gLzEuNCA+PgplbmRvYmoKNDAgMCBvYmoKPDwgL0xlbmd0aCA2MSAw
+ IFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAvQml0
+ c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAwIDEg
+ XSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIgL0Zs
+ YXRlRGVjb2RlID4+CnN0cmVhbQp4AXXCh1dTVxwA4D+qWq1W66pWq9VqtVqtVqsQ9gph
+ BQg7QAgbwgoBQlgBQoAQIAQIYYWw99577w09757zzum77/6+85kvzeb/bbs0o21tl3jT
+ RRupyXRhaoW3XJjQ1pYLfPN5K2tL8zm1Cdh43kJvbjxnNJ41kzYZz5oa4IazJrTRcIav
+ P20kNdafGuvgtadGtKH2FK8/aSA16E8MNXDdiQGt153gq4/rWeuqj6lVwMrjOnpt5TGj
+ 9qiWVK890lfANUd6tEZzhC8/rCHVlR/qyuClhzq0uvQQrz6oJq1SH1SVwFUHVWil6gBf
+ vF/Jqi3e1xbBC/e19IrCfUblXgWpRrmnKYDn72nQ8vw9fN5uOWlZ3m5ZLjxntwwtzdnF
+ K3ZKSdWKHXU2XL6jRkvkO/is7RJWVda2KhOesa2iF2dsM8q2ikmLZFtF6XDpVhFaKN3C
+ p20WkirTNpWp8JRNJVqQsolP3ihgzU/eoCbBJRv5aJ5kA5+4nseam7iemwCPX8+l58Sv
+ M8at5ZAq4tYUsfCYNQWaHbOGj17NJpVHr8qj4JGrcjQrchUvXslizRSvUCPgopVMNEO0
+ gg9fzmCVhS/LwuChyzJ6eugyo3ApnVQqXJKGwIOXpGha8BI+aDGNNDVoMTUQHrCYiqYE
+ LOL9F1JYk/0XqH5wwUIymiRYwPvOJ7FKfOclPnDveQk90XuekT+XSJrAn0vwgnvOJaDx
+ nnN4j9l40jiP2Th3uNtsHBrrNovnzcSyxvBmqK5w7kwMGs2dYXSZjiaNcpmOcoY7TUfR
+ I52mGR2nIknFjlNiB7j9lBiNsJ/C201GkIrsJkW2cJtJERpuM4m3nghnDbOeoFrBORNh
+ aChngtFyPJRUaDkutIB/GxfSQ76NM34dCyEN/joW/C/8y1gwGvRlDP95NIg08PNo4D/w
+ T6OBaMCnUfzHkQBW/48j1L/hH0b8Ub8PI4zvh/1IBe+HBX/B3w0L6L7vhhnfDvmS+rwd
+ 8vkT/mbIB/V+M4R/PehNyn89yP8D/mqQj3q9GsS/HPBi9Xw5QP0d/mLAE/V4McD4vN+D
+ 1P15v/tv8Gf97qjbs3780z43Ut7TPt6v8Cd9PNT1SR/+ca8rKfdxL/cX+KNeLuryqBf/
+ sMeF1flhD/Vn4IMeZ7rTgx7G+91OpI73ux3vwe92O6IOd7vxd7ocSO3vdNn/BL/dZY/a
+ 3e7C3+q0I7W91Wn7I/xmpy1qc7MTf6PDhtX6Rgf1B+D1Dmu61fUOxmvtVqSca+2c7+FX
+ 2zmo5dV2/BWzJanFFbPFd8z/AYTen+8KZW5kc3RyZWFtCmVuZG9iago2MSAwIG9iago5
+ NzIKZW5kb2JqCjM5IDAgb2JqCjw8IC9MZW5ndGggNjIgMCBSIC9PcmRlciAxIC9FbmNv
+ ZGUgWyAwIDEzNjQgXSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVj
+ b2RlIFsgMCAxIDAgMSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAg
+ MSAwIDEgXSAvU2l6ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJl
+ YW0KeAF1wodXU1ccAOA/qlqtVuuqVqvVarVarVarEPYKYQUIO0AIG8IKAUJYAUKAECAE
+ CGGFsPfee+8NPe+e887pu+/+vvOZL83m/227NKNtbZd400Ubqcl0YWqFt1yY0NaWC3zz
+ eStrS/M5tQnYeN5Cb248ZzSeNZM2Gc+aGuCGsya00XCGrz9tJDXWnxrr4LWnRrSh9hSv
+ P2kgNehPDDVw3YkBrded4KuP61nrqo+pVcDK4zp6beUxo/aollSvPdJXwDVHerRGc4Qv
+ P6wh1ZUf6srgpYc6tLr0EK8+qCatUh9UlcBVB1VopeoAX7xfyaot3tcWwQv3tfSKwn1G
+ 5V4FqUa5pymA5+9p0PL8PXzebjlpWd5uWS48Z7cMLc3ZxSt2SknVih11Nly+o0ZL5Dv4
+ rO0SVlXWtioTnrGtohdnbDPKtopJi2RbRelw6VYRWijdwqdtFpIq0zaVqfCUTSVakLKJ
+ T94oYM1P3qAmwSUb+WieZAOfuJ7Hmpu4npsAj1/PpefErzPGreWQKuLWFLHwmDUFmh2z
+ ho9ezSaVR6/Ko+CRq3I0K3IVL17JYs0Ur1Aj4KKVTDRDtIIPX85glYUvy8Lgocsyenro
+ MqNwKZ1UKlyShsCDl6RoWvASPmgxjTQ1aDE1EB6wmIqmBCzi/RdSWJP9F6h+cMFCMpok
+ WMD7ziexSnznJT5w73kJPdF7npE/l0iawJ9L8IJ7ziWg8Z5zeI/ZeNI4j9k4d7jbbBwa
+ 6zaL583EssbwZqiucO5MDBrNnWF0mY4mjXKZjnKGO01H0SOdphkdpyJJxY5TYge4/ZQY
+ jbCfwttNRpCK7CZFtnCbSREabjOJt54IZw2znqBawTkTYWgoZ4LRcjyUVGg5LrSAfxsX
+ 0kO+jTN+HQshDf46Fvwv/MtYMBr0ZQz/eTSINPDzaOA/8E+jgWjAp1H8x5EAVv+PI9S/
+ 4R9G/FG/DyOM74f9SAXvhwV/wd8NC+i+74YZ3w75kvq8HfL5E/5myAf1fjOEfz3oTcp/
+ Pcj/A/5qkI96vRrEvxzwYvV8OUD9Hf5iwBP1eDHA+Lzfg9T9eb/7b/Bn/e6o27N+/NM+
+ N1Le0z7er/AnfTzU9Ukf/nGvKyn3cS/3F/ijXi7q8qgX/7DHhdX5YQ/1Z+CDHme604Me
+ xvvdTqSO97sd78HvdjuiDne78Xe6HEjt73TZ/wS/3WWP2t3uwt/qtCO1vdVp+yP8Zqct
+ anOzE3+jw4bV+kYH9Qfg9Q5rutX1DsZr7VaknGvtnO/hV9s5qOXVdvwVsyWpxRWzxXfM
+ /wGE3p/vCmVuZHN0cmVhbQplbmRvYmoKNjIgMCBvYmoKOTcyCmVuZG9iagozOCAwIG9i
+ ago8PCAvTGVuZ3RoIDYzIDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1
+ bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAx
+ IF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAx
+ MzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBrcJVVkIBAEDB3dqI
+ RYgdhIKKzbNbAbuxu/d03QIfd84EfwTVLfzinv9BPPeNe/YL98wn7ukPxFPvuCffcOdf
+ cU+8IB5/xj32hDv3iDv7gHj0HvfIHe7MLe70DeJUBXfyGvfwFe6hS8SDF7gHznH3n+Hu
+ O0Xce4K75xh39xHirkPciQPcnfu442XEsRLuaBF3ZA93xy7i9h3cbdu4W7dwt2wiDm/g
+ bl7HHVrD3bSKuHEFd8My7vol3HWLiGsXcNcEVPkf+eqv7AplbmRzdHJlYW0KZW5kb2Jq
+ CjYzIDAgb2JqCjIwMQplbmRvYmoKMzcgMCBvYmoKPDwgL0xlbmd0aCA2NCAwIFIgL09y
+ ZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAvQml0c1BlclNh
+ bXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAwIDEgXSAvUmFu
+ Z2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIgL0ZsYXRlRGVj
+ b2RlID4+CnN0cmVhbQp4AXXCh1dTVxwA4D+qWq1W66pWq9VqtVqtVqsQ9gphBQg7QAgb
+ wgoBQlgBQoAQIAQIYYWw99577w09757zzum77/6+85kvzeb/bbs0o21tl3jTRRupyXRh
+ aoW3XJjQ1pYLfPN5K2tL8zm1Cdh43kJvbjxnNJ41kzYZz5oa4IazJrTRcIavP20kNdaf
+ GuvgtadGtKH2FK8/aSA16E8MNXDdiQGt153gq4/rWeuqj6lVwMrjOnpt5TGj9qiWVK89
+ 0lfANUd6tEZzhC8/rCHVlR/qyuClhzq0uvQQrz6oJq1SH1SVwFUHVWil6gBfvF/Jqi3e
+ 1xbBC/e19IrCfUblXgWpRrmnKYDn72nQ8vw9fN5uOWlZ3m5ZLjxntwwtzdnFK3ZKSdWK
+ HXU2XL6jRkvkO/is7RJWVda2KhOesa2iF2dsM8q2ikmLZFtF6XDpVhFaKN3Cp20WkirT
+ NpWp8JRNJVqQsolP3ihgzU/eoCbBJRv5aJ5kA5+4nseam7iemwCPX8+l58SvM8at5ZAq
+ 4tYUsfCYNQWaHbOGj17NJpVHr8qj4JGrcjQrchUvXslizRSvUCPgopVMNEO0gg9fzmCV
+ hS/LwuChyzJ6eugyo3ApnVQqXJKGwIOXpGha8BI+aDGNNDVoMTUQHrCYiqYELOL9F1JY
+ k/0XqH5wwUIymiRYwPvOJ7FKfOclPnDveQk90XuekT+XSJrAn0vwgnvOJaDxnnN4j9l4
+ 0jiP2Th3uNtsHBrrNovnzcSyxvBmqK5w7kwMGs2dYXSZjiaNcpmOcoY7TUfRI52mGR2n
+ IknFjlNiB7j9lBiNsJ/C201GkIrsJkW2cJtJERpuM4m3nghnDbOeoFrBORNhaChngtFy
+ PJRUaDkutIB/GxfSQ76NM34dCyEN/joW/C/8y1gwGvRlDP95NIg08PNo4D/wT6OBaMCn
+ UfzHkQBW/48j1L/hH0b8Ub8PI4zvh/1IBe+HBX/B3w0L6L7vhhnfDvmS+rwd8vkT/mbI
+ B/V+M4R/PehNyn89yP8D/mqQj3q9GsS/HPBi9Xw5QP0d/mLAE/V4McD4vN+D1P15v/tv
+ 8Gf97qjbs3780z43Ut7TPt6v8Cd9PNT1SR/+ca8rKfdxL/cX+KNeLuryqBf/sMeF1flh
+ D/Vn4IMeZ7rTgx7G+91OpI73ux3vwe92O6IOd7vxd7ocSO3vdNn/BL/dZY/a3e7C3+q0
+ I7W91Wn7I/xmpy1qc7MTf6PDhtX6Rgf1B+D1Dmu61fUOxmvtVqSca+2c7+FX2zmo5dV2
+ /BWzJanFFbPFd8z/AYTen+8KZW5kc3RyZWFtCmVuZG9iago2NCAwIG9iago5NzIKZW5k
+ b2JqCjM2IDAgb2JqCjw8IC9MZW5ndGggNjUgMCBSIC9PcmRlciAxIC9FbmNvZGUgWyAw
+ IDEzNjQgXSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVjb2RlIFsg
+ MCAxIDAgMSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEg
+ XSAvU2l6ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGt
+ wlVWQgEAQMHd2ohFiB2EgorNs1sBu7G793TdAh93zgR/BNUt/OKe/0E894179gv3zCfu
+ 6Q/EU++4J99w519xT7wgHn/GPfaEO/eIO/uAePQe98gd7swt7vQN4lQFd/Ia9/AV7qFL
+ xIMXuAfOcfef4e47Rdx7grvnGHf3EeKuQ9yJA9yd+7jjZcSxEu5oEXdkD3fHLuL2Hdxt
+ 27hbt3C3bCIOb+BuXscdWsPdtIq4cQV3wzLu+iXcdYuIaxdw1wRU+R/56q/sCmVuZHN0
+ cmVhbQplbmRvYmoKNjUgMCBvYmoKMjAxCmVuZG9iagozNSAwIG9iago8PCAvTGVuZ3Ro
+ IDY2IDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1bmN0aW9uVHlwZSAw
+ IC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAxIF0gL0RvbWFpbiBb
+ IDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAxMzY1Cl0gL0ZpbHRl
+ ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBdcKHV1NXHADgP6parVbrqlar1Wq1Wq1W
+ qxD2CmEFCDtACBvCCgFCWAFCgBAgBAhhhbD33nvvDT3vnvPO6bvv/r7zmS/N5v9tuzSj
+ bW2XeNNFG6nJdGFqhbdcmNDWlgt883kra0vzObUJ2HjeQm9uPGc0njWTNhnPmhrghrMm
+ tNFwhq8/bSQ11p8a6+C1p0a0ofYUrz9pIDXoTww1cN2JAa3XneCrj+tZ66qPqVXAyuM6
+ em3lMaP2qJZUrz3SV8A1R3q0RnOELz+sIdWVH+rK4KWHOrS69BCvPqgmrVIfVJXAVQdV
+ aKXqAF+8X8mqLd7XFsEL97X0isJ9RuVeBalGuacpgOfvadDy/D183m45aVneblkuPGe3
+ DC3N2cUrdkpJ1YoddTZcvqNGS+Q7+KztElZV1rYqE56xraIXZ2wzyraKSYtkW0XpcOlW
+ EVoo3cKnbRaSKtM2lanwlE0lWpCyiU/eKGDNT96gJsElG/lonmQDn7iex5qbuJ6bAI9f
+ z6XnxK8zxq3lkCri1hSx8Jg1BZods4aPXs0mlUevyqPgkatyNCtyFS9eyWLNFK9QI+Ci
+ lUw0Q7SCD1/OYJWFL8vC4KHLMnp66DKjcCmdVCpckobAg5ekaFrwEj5oMY00NWgxNRAe
+ sJiKpgQs4v0XUliT/ReofnDBQjKaJFjA+84nsUp85yU+cO95CT3Re56RP5dImsCfS/CC
+ e84loPGec3iP2XjSOI/ZOHe422wcGus2i+fNxLLG8GaornDuTAwazZ1hdJmOJo1ymY5y
+ hjtNR9EjnaYZHaciScWOU2IHuP2UGI2wn8LbTUaQiuwmRbZwm0kRGm4zibeeCGcNs56g
+ WsE5E2FoKGeC0XI8lFRoOS60gH8bF9JDvo0zfh0LIQ3+Ohb8L/zLWDAa9GUM/3k0iDTw
+ 82jgP/BPo4FowKdR/MeRAFb/jyPUv+EfRvxRvw8jjO+H/UgF74cFf8HfDQvovu+GGd8O
+ +ZL6vB3y+RP+ZsgH9X4zhH896E3Kfz3I/wP+apCPer0axL8c8GL1fDlA/R3+YsAT9Xgx
+ wPi834PU/Xm/+2/wZ/3uqNuzfvzTPjdS3tM+3q/wJ3081PVJH/5xrysp93Ev9xf4o14u
+ 6vKoF/+wx4XV+WEP9Wfggx5nutODHsb73U6kjve7He/B73Y7og53u/F3uhxI7e902f8E
+ v91lj9rd7sLf6rQjtb3Vafsj/GanLWpzsxN/o8OG1fpGB/UH4PUOa7rV9Q7Ga+1WpJxr
+ 7Zzv4VfbOajl1Xb8FbMlqcUVs8V3zP8BhN6f7wplbmRzdHJlYW0KZW5kb2JqCjY2IDAg
+ b2JqCjk3MgplbmRvYmoKMzQgMCBvYmoKPDwgL0xlbmd0aCA2NyAwIFIgL09yZGVyIDEg
+ L0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAvQml0c1BlclNhbXBsZQo4
+ IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAwIDEgXSAvUmFuZ2UgWyAw
+ IDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+
+ CnN0cmVhbQp4AXXCh1dTVxwA4D+qWq1W66pWq9VqtVqtVqsQ9gphBQg7QAgbwgoBQlgB
+ QoAQIAQIYYWw99577w09757zzum77/6+85kvzeb/bbs0o21tl3jTRRupyXRhaoW3XJjQ
+ 1pYLfPN5K2tL8zm1Cdh43kJvbjxnNJ41kzYZz5oa4IazJrTRcIavP20kNdafGuvgtadG
+ tKH2FK8/aSA16E8MNXDdiQGt153gq4/rWeuqj6lVwMrjOnpt5TGj9qiWVK890lfANUd6
+ tEZzhC8/rCHVlR/qyuClhzq0uvQQrz6oJq1SH1SVwFUHVWil6gBfvF/Jqi3e1xbBC/e1
+ 9IrCfUblXgWpRrmnKYDn72nQ8vw9fN5uOWlZ3m5ZLjxntwwtzdnFK3ZKSdWKHXU2XL6j
+ RkvkO/is7RJWVda2KhOesa2iF2dsM8q2ikmLZFtF6XDpVhFaKN3Cp20WkirTNpWp8JRN
+ JVqQsolP3ihgzU/eoCbBJRv5aJ5kA5+4nseam7iemwCPX8+l58SvM8at5ZAq4tYUsfCY
+ NQWaHbOGj17NJpVHr8qj4JGrcjQrchUvXslizRSvUCPgopVMNEO0gg9fzmCVhS/LwuCh
+ yzJ6eugyo3ApnVQqXJKGwIOXpGha8BI+aDGNNDVoMTUQHrCYiqYELOL9F1JYk/0XqH5w
+ wUIymiRYwPvOJ7FKfOclPnDveQk90XuekT+XSJrAn0vwgnvOJaDxnnN4j9l40jiP2Th3
+ uNtsHBrrNovnzcSyxvBmqK5w7kwMGs2dYXSZjiaNcpmOcoY7TUfRI52mGR2nIknFjlNi
+ B7j9lBiNsJ/C201GkIrsJkW2cJtJERpuM4m3nghnDbOeoFrBORNhaChngtFyPJRUaDku
+ tIB/GxfSQ76NM34dCyEN/joW/C/8y1gwGvRlDP95NIg08PNo4D/wT6OBaMCnUfzHkQBW
+ /48j1L/hH0b8Ub8PI4zvh/1IBe+HBX/B3w0L6L7vhhnfDvmS+rwd8vkT/mbIB/V+M4R/
+ PehNyn89yP8D/mqQj3q9GsS/HPBi9Xw5QP0d/mLAE/V4McD4vN+D1P15v/tv8Gf97qjb
+ s3780z43Ut7TPt6v8Cd9PNT1SR/+ca8rKfdxL/cX+KNeLuryqBf/sMeF1flhD/Vn4IMe
+ Z7rTgx7G+91OpI73ux3vwe92O6IOd7vxd7ocSO3vdNn/BL/dZY/a3e7C3+q0I7W91Wn7
+ I/xmpy1qc7MTf6PDhtX6Rgf1B+D1Dmu61fUOxmvtVqSca+2c7+FX2zmo5dV2/BWzJanF
+ FbPFd8z/AYTen+8KZW5kc3RyZWFtCmVuZG9iago2NyAwIG9iago5NzIKZW5kb2JqCjMz
+ IDAgb2JqCjw8IC9MZW5ndGggNjggMCBSIC9PcmRlciAxIC9FbmNvZGUgWyAwIDEzNjQg
+ XSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVjb2RlIFsgMCAxIDAg
+ MSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEgXSAvU2l6
+ ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGtwlVWQgEA
+ QMHd2ohFiB2EgorNs1sBu7G793TdAh93zgR/BNUt/OKe/0E894179gv3zCfu6Q/EU++4
+ J99w519xT7wgHn/GPfaEO/eIO/uAePQe98gd7swt7vQN4lQFd/Ia9/AV7qFLxIMXuAfO
+ cfef4e47Rdx7grvnGHf3EeKuQ9yJA9yd+7jjZcSxEu5oEXdkD3fHLuL2Hdxt27hbt3C3
+ bCIOb+BuXscdWsPdtIq4cQV3wzLu+iXcdYuIaxdw1wRU+R/56q/sCmVuZHN0cmVhbQpl
+ bmRvYmoKNjggMCBvYmoKMjAxCmVuZG9iagozMiAwIG9iago8PCAvTGVuZ3RoIDY5IDAg
+ UiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1bmN0aW9uVHlwZSAwIC9CaXRz
+ UGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAxIF0gL0RvbWFpbiBbIDAgMSBd
+ IC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAxMzY1Cl0gL0ZpbHRlciAvRmxh
+ dGVEZWNvZGUgPj4Kc3RyZWFtCngBrcJVVkIBAEDB3dqIRYgdhIKKzbNbAbuxu/d03QIf
+ d84EfwTVLfzinv9BPPeNe/YL98wn7ukPxFPvuCffcOdfcU+8IB5/xj32hDv3iDv7gHj0
+ HvfIHe7MLe70DeJUBXfyGvfwFe6hS8SDF7gHznH3n+HuO0Xce4K75xh39xHirkPciQPc
+ nfu442XEsRLuaBF3ZA93xy7i9h3cbdu4W7dwt2wiDm/gbl7HHVrD3bSKuHEFd8My7vol
+ 3HWLiGsXcNcEVPkf+eqv7AplbmRzdHJlYW0KZW5kb2JqCjY5IDAgb2JqCjIwMQplbmRv
+ YmoKMiAwIG9iago8PCAvTGFzdCA3MCAwIFIgL0ZpcnN0IDcxIDAgUiA+PgplbmRvYmoK
+ NzEgMCBvYmoKPDwgL1BhcmVudCA3MiAwIFIgL0NvdW50IDAgL0Rlc3QgWyAzIDAgUiAv
+ WFlaIDAgNTUzIDAgXSAvVGl0bGUgKENhbnZhcyAxKQo+PgplbmRvYmoKNzIgMCBvYmoK
+ PDwgPj4KZW5kb2JqCjcwIDAgb2JqCjw8IC9QYXJlbnQgNzIgMCBSIC9Db3VudCAwIC9E
+ ZXN0IFsgMyAwIFIgL1hZWiAwIDU1MyAwIF0gL1RpdGxlIChDYW52YXMgMSkKPj4KZW5k
+ b2JqCjczIDAgb2JqCjw8IC9MZW5ndGggNzQgMCBSIC9MZW5ndGgxIDgxNDAgL0ZpbHRl
+ ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvVkJeFvVlT73vvf0niRblmTJWixZkmVJ
+ 3vc1dmzFkRw7iY1jZ7FCQmzHduyQFDcY09AmY9qkEBPMEmKyDSUUTJZCFMeAkpBMSl2W
+ aQuBDlAoXRgCXQZ/zHQCbZPYmnMlx43zTZl88/FVT+fec+65y7n/Pfe89+7r23RHJ8TC
+ AHDQuLKttwsiv6QgALGs3djWG5W1n2L+xNr+PntUFlIBuA1dves2RmXpEQCFdd2GzdPt
+ 47G94kB3Z1tHVA9XMC/uxoKoTAoxT+ne2PeNqKwdw7x0w21rp/XxD6KctLHtG9Pjwwco
+ 27/WtrEzWj9pJ+Ypvbfd3jctL8bc27upc7o+aUH73gCCpSq4DeRwK4hAQY3XagDx9wor
+ 8Khlevx1ZCp3rYmr+Bw0UkReU/9AJH/Z8eI7f+m84lE+JP0VC+RX67NcljaVBhBDUD+h
+ fGhGE2mHiSoEzRkhqEOqQipCysiYZ4QBMgIPIj2OxEEPuQ82I+1A2ovEz3CHUTpJ7hvl
+ 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
+ 8+kRwV25t6vHn9pw50vVPe/9+rNXRPICaVyZu2LFzf6UBGtKcnrd3XteHFrZPTd/QYO3
+ Jt0Ub83J9D/ywPn3Hqd/xfUbCH/E/Rr3iwHjwy3eOSHdqzoqj5d0pniTLlV2J/euKEog
+ qBQgi1UIGBuMotGoTIjNVqTFKM1mkpZgMpnfuhr66tmjAnMvhDcaH6oqGODRZyOiYRsC
+ 7/BF7GZVgnd4th+KNC5Sas79zos+19gR6ixct+vj5ixyjM+ZLGsqbD208p+p6vKbj81N
+ X7q3aQf9hZn5XOSHz07T32mj8kyqQk6Hz9zV4MNvAHVwE36BaMJvCstgObREahH8MhF9
+ Hpfht1rwr6yvW7wko7ZzQ39nX8/aNqwT1bLKXiT23XcVEjtP/hbSTiR81oQfIL2I9FOk
+ D5A+RbqCjWPC0z+UYYYnaNNsmT1pX6tfc53MLLlW33Gd3HWdvOE6OfLd/Jrxb7tO33ud
+ vOk6Gd96Zo1/B5P/B5qZV5MKZW5kc3RyZWFtCmVuZG9iago3NCAwIG9iago1MDkyCmVu
+ ZG9iago3NSAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL0FzY2VudCA3NzAg
+ L0NhcEhlaWdodCA3MTcgL0Rlc2NlbnQgLTIzMCAvRmxhZ3MgMzIKL0ZvbnRCQm94IFst
+ OTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9udE5hbWUgL0VaTUlMUStIZWx2ZXRpY2EgL0l0
+ YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01heFdpZHRoIDE1MDAgL1hIZWlnaHQgNjM3IC9G
+ b250RmlsZTIgNzMgMCBSID4+CmVuZG9iago3NiAwIG9iagpbIDU1NiAwIDAgMCAwIDAg
+ MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDcyMiAw
+ IDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDU1NiAwIDU1NiAwIDAgNTU2IDAg
+ Mjc4IDAgMCAwIDAgMCAyMjIgODMzIDAgNTU2IDU1NgowIDMzMyA1MDAgMCA1NTYgXQpl
+ bmRvYmoKMjIgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9C
+ YXNlRm9udCAvRVpNSUxRK0hlbHZldGljYSAvRm9udERlc2NyaXB0b3IKNzUgMCBSIC9X
+ aWR0aHMgNzYgMCBSIC9GaXJzdENoYXIgNDkgL0xhc3RDaGFyIDExNyAvRW5jb2Rpbmcg
+ L01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9MZW5ndGggNzgg
+ MCBSIC9MZW5ndGgxIDk0MjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB
+ vVp5eFNlun+/szdJs+9NmqRpkqb7QktrCz2UtpSlpbSALVJsC4WyFEstVVS4RWGUogyI
+ FEQfHcUp2wChVA3ggoqis7jjNvqMzqCjc+117r3odRya3PeclA70mfHhD585J++3L+/7
+ +97v/ZaT7q61bRAPvUBD7YKWzqUgP965AKR3cUdLZyxukLxnFvd0u2NxNgWAXrW0c1lH
+ LC48AKBwLlu1brS+4QKAhmlva1kSy4dL6Be0Y0IsTiagn9ze0X1rLK4fQn/WqpsWj+Yb
+ nsF4SkfLraP9w8cYd69u6WiLlfdmo5/cedPN3bF40pfoV3V2tY2WJw3I3xtAMNUAN0Ec
+ rAQeKNDi2wTAf6lwAoO5Uj4+S9KVO2/UlHwLOkGO31j9c9l/xfPMe9+3XQoodwh/w4S4
+ y+UlnwtGggAqgvnDyh1jOXI9dAxhqE8Lw3SkUqR8pLS0KVboJQOwHekXSDQsJ1thHdIW
+ pAeRmLHQQYydJFsHGUE8RdaBncwQlYxrrtHmsiqUrrfDhBt6xPWh9U+niQ1H7zNiG4yH
+ uCkK8gvyKCwBF/kl+MhtUAUpZO+J4CpXM2YdhE6kXiRadgk5OJiY63qOpIOPIVjHD4kM
+ ecr155wM1+c5YYoMul4MhBn0XkjEmKhxnXE+4nreucz1HNLhWNahIJZ4ynXQucq1MzFM
+ 9g667neGCdbZEfPWOrHqU66OYL9rSY6cP6s/TB0edBVh/nxR6Soo9LjynRdcWYGwQDCe
+ 4ZzlSs35nSsZK2IxNzbqE3Uuh3On6zrMSnRWBK5DOk0OkYcglTw06JvhOoVBFPfE9GBh
+ f5jcfqIqJccXJreJBVUp/cGqgC84y+ULVgYCGJ7/Kr+Jv4GfwufyaXwK7+c9fAJvFPSC
+ VlALKkEhCAIfJr8aLHVxp8lhKEVYDp8QOIENk6OYyJwmR+TEI08LjEAJIBjD0U9ReQkY
+ w+TwkFYKYeApTg5xYXLkRCzpiOhipBAjZ2gpKYwOukARgYIZECL3hTnYbO4ptZbqJ+uK
+ Ksv/ldMs51x20/71YyXOUP/M+obQIWdjKFcKRJ2Nl4tbLwf+pd+9FrPaytLSZtatO9HT
+ uWJpRZu3otlb0YbUHNra024N9ba63cdXdEoZ7hDtb25d3C75LW2hTm9beWiFt9x9vEeu
+ Ny57qZTd4y0/Dksr5jYcXyq2lQ/2iD0V3pbyxhOtZV1NV/W1ZayvrrJ/0leZ1FiX1Fer
+ XG9cX01SdqvUV5PUV5PUV6vYKvclCV+xvL7s5m7UTnfF8pnuUEp9aPqcBQ0hd0tjeZgM
+ YGL5WmDPgJZ9FlLYXrAzWeACiH6I9JHkR+ZFv2DPgTbSEf1vuhgH9aREVKS0BM7AffAQ
+ HAMODmA4BRbBHniNrMC5vRCG4D2SCJloexkIwyz4LYlG34Kl8ASW74YXYRccBxXW6QAT
+ 5m4jvuhtGBcx3Aqboo9DMhTCz+BZKMJWt8Fw9GD0BObWwTw4BIex/m+IlzrOGKJHoxdA
+ gDnY5ibMeSs6K3oM9JAOZVCLqZvgOeKjP4q2gxWKkbuH4VF4DF6Ar8mdZCjaHu2Jvhn9
+ DFXVCg6ox3c9GSKf0ceYn0Ufjv4lGkEkUiAVe22GnbAP2z+G7xk0rRVkJekmO8kuSqTu
+ pIaYzawlMoI4BGEavlVole9BBE7CWfgf+Bv5hrLSWrqbfjmaH/1fUMJMlFKSpA168L0b
+ 320o02nCkWwyldSS9eQBsou8Q6VS86gG6hbqVuoLuoZeSK+j32FuZgbZe9k9nDLybfR0
+ 9Fz0PFjACTdAF2xA6V6EN+Ei/EBobMtBfKSYlJFF+PaSh6iT5DFykqolZ8ib1CHyB/In
+ 8g35O8VSKspEpVHd1E7qMPUi9Tq9nN5FP0j/gf6WmcxS7GPs55yP/32kNbIl8nq0OPpZ
+ 9Hs0sQJ4cGTKoAZuhBaUthMmwH+gFEfwPYajdhZehtfk90/EAcPwPaIARE/sJJdU41tD
+ ZpOlZDl5hJzC9zmZl+8oHAgqjtJRFspB1VOtVAfVS52neukEOpWeQS+gj+H7Kv0e/Xf6
+ 7wzLGBgTM42ZDvcyHcxefAeYA8wg8wZbxE5ma9j5bC+7hb2XXsy+xb7HbeC2cYPcN9xf
+ 0SzO4m/i78XReQ119gXU5X88DElG7nNhNSwm5aQV+nE0HiMt0IfatYTcg3h1Qkq0id5A
+ T6OyURueg9tRW/fCethCL4THoh/Qh+B91JRV2GQv7GfKwMnuxtG5E7JRi0ZfMZgaTAn4
+ fcneJI8bTb4jwW6zWswmo0Gv08arlIo4gedYhqYIpFd4K5vdIX9ziPF7q6oypLi3BRNa
+ rkhoxqnsDlVeXSbkluq1YNZVJUUsuXRcSTFWUhwrSbTuEijJSHdXeN2h35V73WGyYE4D
+ hu8r9za6Q8NyuFoOb5fD8Rj2eLCCu8LaXu4OkWZ3Raiyp72vork8I52cFBEORUa6ZDhE
+ UEoNh2Bqy3o0sDBVKlERsnvLK0I2L4Yxj/ZVtCwJ1c5pqChP8HgaMQ2T6hqwj4z05SHk
+ E7aqlniXbA2L0NoshVoWNoTolsYQ1Sy1pUsLWbzlIcttn1v/Eb0cqrj3iswQ5atsaeur
+ DInNWxFcKdosxVruxdjMejc2S21ubAiRzaNMSDyuQE4ldmNrgq95hTsU5y3ztvetaEZw
+ oa5h0C7aZeMbgtqGQZtokyMZ6SetG4o9KP3JjCkZUyS/2GPdEPP/fFcs/e0zkm/dcPZT
+ 9GfWjQFAJAS805HPkHux3IkXmS2UnLZC6FtciDjh00hQzOXIz9QQhTpD+0Ksb3pLqLf+
+ Mhvt5THmmleUD8bZ7PIiVNaI5Zv7tNfhSGF5rdfd9y2u1s3e4a+vTmkZTeF82m9BypQG
+ ekxXQqTlcrhHWix9KHW71dsujW+PPKYY91orrkjAuASNxHPIiAt4bYMn5G7EBNxNps8M
+ Q1xtw3FCtjWGSXRzGMqdJ3GPSt+4CLPTJVVbXo79YyQjHRNSPRjKTHdXYs+Vkq64+9x9
+ 05f0uSvd7ahMjE/2MaOtrzELEaxvQJxgLvYoNiaMBdsaG6/DdrKkdrAKFu9rxBZWjLaA
+ vpyUNYKFstNxMaX9tQ1zGkK95QkhsbwRRwHV90xtQ+gMam5jI5bKGeMUOV6/3DrKcy7y
+ nJOK+XmxVnDv0otNNPb1SW3WN3g9oTN9fQl90nyLxcMExieIowlhkIpIkIdJby3WRc/r
+ SZDHwOP1IFuNEqYTUKUvaxTu2X8c4YIxvrHmROS2QEa48CdCuOhaEL7umhAuHuP0KoRL
+ kOdiCeFJ/z6EJ1+FcOmPIyyO8Y1MTkFuRRnhsp8I4anXgnD5NSFcMcbpVQhXIs8VEsLT
+ /n0IV12F8PQfR3jGGN/I5EzkdoaM8KyfCOHqa0G45poQnj3G6VUI1yLPsyWE5/z7EK67
+ CuH6H0d47hjfyOQ85HaujPD8nwjh668F4YZrQrhxjNOrEF6APDdKCN8whrCYEIIr7XDv
+ OLMLP7lhXngF5LhTYvVQRhXBIeZmEJHOIlUjAVIdUhXmOcg52MIdgk0Yl6gYqYc6BFsw
+ z4IHcRP1q+h56le445SO4HgIx0eFp5Oj6KfjySOWgmdz3MlffrDaT/yw2B432iaPJ4Z/
+ PHGgwFOQCu92ANRImrEsvD8AHZJeTpmA58V38TSznTxBraYL6U30AJPEbGC+Y9vZo2yE
+ e4Bn+DtRijJE5008v9J4D1Yau5sSsnADgSRowwBvIklxDNMfh4FBAgzzH8MprAEwP+0U
+ tsKin52Tp/PoAkhlzLbwpT+yz/4wNcxU/x3vORC1Q5E3SS98hDxniGbwqhVLBIXWYrHz
+ ExRLQLBpFrdZ02q0F6tLRoZrKtrKv4DS6uF3h3OyLQUTC/In+APe/DyTkeMPVTg0hOp4
+ r7nnLdW8jFReyX/061uGTJLIFIjRDxkHuwcxccAa0XI3SyoFU76GdeTz8fpC+iZroTJx
+ mlPbc9b67vDIMJQOl2IHU9eJEyAh3k98dn+cj/Wb1dYUMII+hSQIGNJyGLKoTCnEQKFj
+ UzhSQMegI90PEMmRn414fWgx67Q85XEH/LoJE/UefYFuAuVNonRGizmPFu9ovn5D5I+R
+ yIblpT0kv2/g1iOP7syqOsru+fx45LeRj5+P/Nenp0nxxWOk8ofPvyd1F0lx5Hzkk99v
+ /o0kG8FTIVDn2ftRF7zHBRImeaKKYXgVw/ezoJgWJwl19vxIEZSWXvxdTrYhfzKZmKfz
+ 6s6+tNe/7Qz9XZ+hceCH1fR3Mk7V0d8zXvYRSIAAHBSLbrETi+ATArYG28/gbnJPHD9N
+ UHgCnny12kif4/MT2EC+MZ4OUhsTC3U3WRRUiSI5xxKcliIjOVJ0x8y6W2/Lsmq/Hb4Y
+ A3VYX5Q1rNMXxcD1+R1ujRk41u/WJKYQvyk5BRwGDHFApxCGdmk9KcRnDqSAU48OQ/gU
+ GVeiLYlBu3HjRtKE+JpNXn/Aj4jSqBN5uYzJiPCCTitjjTriTeJMRoR62rODWu+UTbsH
+ FZMXzV8xRFSR/3wt8vGU9WTWxvs2DHQfe/Q+9pG/bZqXvSDyVeTSDRkpX1x4KfIOycEj
+ tfIUWfLDJ8/fufrc3ofuke5qcLZH0XpE23B+aJ4klUCxUKItgSxUHF2+x4RZ0IZXzzTU
+ RT+WT9QavCspgU/EwtRsotAqE1SOQF6VdnncCi1fJOhVcXRCLp8c59SqnMVpVGaw+Oli
+ qjg31afX8qzgCCRZHGHSJ3otThcfcGYqKWe+soQvKXEY+WDqgWT75ISgY4YmUGibNPkZ
+ shsvEk6SfsD7upqL1Qh+jfa76gsjZxF9VANU7tJhHAmd3lLUhIOROZw5TNDXWWLjklIw
+ 0ZQExOYjBRoPWBMTPGB2Gz3EkwQTKQ/YnRYPMXnQkTR9dCxwJKCJNCWb83InFkwiaqIh
+ HM+ZSGyOepN4jvdOJnm5eCTX4UjkYhdq4k0K+AOS58+fUDDRQNRdNTc29nvacztac+rJ
+ 0GST6q7b7iv2KA6w/7fv2Z61Fp8qUZea7m9KNcdNfP2OXc+e2t33xoL06QM7TA5OHe/I
+ WkZWCenWjIX1s1LrX3moqmrPyG5HEk1vVnFlXrFqxZP37HrCQC5IY1IV/Yix4y2HA2/E
+ fEQlrtstPGjf76JZNaVhjSa1XmMyiirRKATtZKbyKfoceYU+l/CB8GHce64PvF9avvQq
+ z+nO6amFAutJ1uw1O5OLOJ43e5wOXuE0K338bsd+x9OO9x2Mz6zxOVibQsXr1AGNM8Da
+ A8mZfMBm8wfe9Qw0xUZo5II0QMPvjhTpi3BYitDLaoqNFIZKRkq0Y5OmErwMS+MVEmEZ
+ zuXXafVag9aoZTiVLykh2Q9ucPpJojPOwvtBaVL7Sbzaa/dgEouOYFX4IV6LTsxISfNI
+ nkupaakbyZomWNOEk8mCr8mTiKM1sWBinprg2HHydII8Ik8zjifU0HuFBXrtpW/Y7bvv
+ m5ttPM7PzqlbN6Xu1chfiPWPxKVMmXHkjgMs8TLTVs6bs2rG4/tebiqYVrwjs9ahJV68
+ R6NIWcS/tvLOE31E+lCD88mBdszCvo03b9ViGu/kFE6aaIxF5nhOr7DheqCO1wUtel6v
+ UbvUlPqS0Wa1XfIs2zCKYFPRWRmo0SWitKR6pKRUXif0kkkwW0yZqGicKc/kReOHa0b+
+ k97SIV2yxWFT1rkHhwZ37WLLJiykqCcoMu/otktL6Ie3HZD52oLMTZLXwaCIywmtYJEZ
+ QgWBtjHsIU9rmcyB1N/lvtHKooXdMjQkLXRyG5tw0fYx08APm8ViXuDVnMYiWNQWTUAI
+ oFpU2eYrlylVXp/C7vTaFBRj8XmcFmc8xwOX4PDRBkUK9qkL4gcDMmgPSt9JRAWQTF/Q
+ D7ZASpjEn7iCjwvai8MXR0aZsZSUIhbDqD+WImmSS7YXmgx5JtlS4lBfnpVeXcxOIjoT
+ JFvKmXTeTYPihMY1vTXpySWPt31Qk3p6ZfWKB5+2BzuX7h9isvbMTp5Umlw5v/7hudtG
+ JlJfrqzdNjCygzrdkTvzkTdGXpXWXZSbHsZ5ZgM7LBJznubOcRTDGbmAsYfr5lmjijJa
+ tU4WxbQqFXbebgdVMM7uIJnWoA1sCWjyuKskk6dJzIqhXMO6oiISE4hIIl0hiiQB6q2a
+ oBRk0+FZh9ov1KY/7czeIAZnFGYkDJH9yP+iukevf3xkDrWvtWRJvLksf83ykTeQWbQP
+ xbhf8DA1uJuyIu/bxbw9Qr/2QfMvmQPCgPagOSy8KrzPfK7+yqi6TuCcVl7l1CttvM1m
+ ogIae0JcwGSzJ4RJ3AlP1+gMly2wtPrFZrW8/qXjttKvNMThbNRRfsJbMMTGY0hhVPmB
+ aNERzJyf0Gp0pAUvtqlAQ5uszx8dI7SlelzoKLTN+VrI46lPN2fPOvXL/v59+KHgUuT/
+ PolcIvo/c91EM9C/6IFLg4cv0B9Fvo5cjIxEjpK0S2ioRRbHqScyj/Gh6GpIgm4x/aCw
+ 30KlCG6HTs05TbyGUzsdyiQ1FbDakxWZ2kxPMElj8ybf7Xk2Jh4q/4WYCZPFkwZmdI13
+ mBOAtfsZPySgYKwZHWJT+4G2yDLJEklLRzJu5WJjZpI2RWRUP/HyVrI9uEzovNQr+32V
+ p05X+NCNZB4rEG+4/anI091719VlFw+te+ft3oXHTy/Ze8f1A/TxbdNTSnAJH4k83n9j
+ fuL0kU8k+4LzmLof56AOZov+AO2Pn0hPYxi1oKXUcbo4VUCQ1FCnEOwGkqkN6sCmN4RJ
+ BapfzMRIMtZocfdZWl16duSsZKWl+TQ6myTVG7MxOPcPm55YyVqd2gTtPffjVDlZ8BBF
+ P0dTx7pG9ki8WKLfUHHsAtSuuifjMxVn1LhvKxV9jLnIQnNqhc6O0x2/NgTBpDZpaBdN
+ 0ZfMNpsd7d36f2rvsqRJPlIyrB25IBsfycpJOF5eZ/35ksk78NThw35TTnyi0TU1sGHB
+ jh3sgsj5nSMVhQYlobbFCRuXUS/vRHtFgSkynf4S9UHS/l+Lq/tM91j3W2mes3CF+ip9
+ g34Zfwt9C3+vcQ/sZveYdpt3Ww7AAbO2CmaaplleMzHl7CssdTc7AANkP3vAwiansFaT
+ xUyAM6mUGqegliaLOQGlZIEcs5isx1Q/N+OceTdm0G24a7lgHSkqwp9NNmTW2NSpHinK
+ tWVZS0tKSiT88SOjqDeZwGzu0FssVpaQDjzjWO/OTNOuPyt7AvqkaU1O9hppo0jyOJri
+ KdQofyBfWuAKJuJumOQRmvac89/VWvZw78P+YGJWqjY3S8tOVke6f0tchMlaFtkR+fpo
+ ZOkQJzwRz3mswgPJTM2lPfSdOJbR85FFVC/7PnihS5y8h9tjOMgdNO73sLzBYggYChWF
+ rn4j59KrxPhqVbXb5aLNGSY6gzGYwCeNsvmo3btD0L+ksiXjF2j6hOeTvNgQX8R1/+LY
+ mlI9oh3RF9my7MPDVvtlxSNNrFHWukkEZ08gH206hnBvhSu2kxjRAEpLObn74abBr5Im
+ h45PStr3/WNFLt/UF86U+9i9dynX6o+88npH6c2GLtPqSV37nvnY1KXurbyjs792h163
+ ux7/00AgFeU7j/IlQ59Y06/oV/bb9isGlAO2A0l8UTJuLPCrCutONmvU8azeylEqDaMX
+ PIk2M2NwiIZqfbU7OdkhZMQ5MhIMcaB/SW3dwbiPOgSbzy/LW/LE6AIqC1wjTbArZZUW
+ rtHFy1KEYWnC4VgG/KMyMxYziooL2ajQHI8nHMzDvQvZOtXnKnycUAtLkiYfD5UmfXV8
+ 5TZf+fNU5vba3Z2bym9Td5m2Ng7t65y8xtClXyuufP3XBwxr1T/funt73W48MFM4F/DB
+ Pf7of0hi8THXgCEN/lvEiLOkDMrxC+V0mC1/Ia3Dr57z4HpYiN9Zm7EUwbN37H6Aw/+T
+ wOx511fOK0uralvV09a9fHGLXAId+ZmLbjNSJ1Iv0nakXyCFkM4gvYn0KdJfpWaRtEhu
+ pGwkEakWqRmpMzr6AD5jYfz+NS6O9a7KzxkXLxgXv3FcXOL+yvZlrK7ob+m4fOk73pXl
+ 5f8DXVF+9bj8m8bFO8fFu8bF5f/3XNHeunH5t4+Lr5fi/w+AwrDACmVuZHN0cmVhbQpl
+ bmRvYmoKNzggMCBvYmoKNjA1OQplbmRvYmoKNzkgMCBvYmoKPDwgL1R5cGUgL0ZvbnRE
+ ZXNjcmlwdG9yIC9Bc2NlbnQgNzcwIC9DYXBIZWlnaHQgNzE3IC9EZXNjZW50IC0yMzAg
+ L0ZsYWdzIDMyCi9Gb250QkJveCBbLTk1MSAtNDgxIDE0NDUgMTEyMl0gL0ZvbnROYW1l
+ IC9PVVdGVUIrSGVsdmV0aWNhIC9JdGFsaWNBbmdsZSAwCi9TdGVtViAwIC9NYXhXaWR0
+ aCAxNTAwIC9YSGVpZ2h0IDYzNyAvRm9udEZpbGUyIDc3IDAgUiA+PgplbmRvYmoKODAg
+ MCBvYmoKWyAyNzggMCAwIDAgNTU2IDU1NiAwIDAgMCAwIDU1NiAwIDAgMCAwIDAgMCAw
+ IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAg
+ MCAwIDAgMCAwIDAgMCAwIDU1NiAwIDU1NiAwIDAgMCA1NTYgMjc4IDAgMCAwIDAgMCAy
+ MjIKODMzIDU1NiA1NTYgNTU2IDAgMzMzIDAgMjc4IDAgMCAwIDAgNTAwIDAgMzM0IDAg
+ MzM0IF0KZW5kb2JqCjIwIDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVl
+ VHlwZSAvQmFzZUZvbnQgL09VV0ZVQitIZWx2ZXRpY2EgL0ZvbnREZXNjcmlwdG9yCjc5
+ IDAgUiAvV2lkdGhzIDgwIDAgUiAvRmlyc3RDaGFyIDQ0IC9MYXN0Q2hhciAxMjUgL0Vu
+ Y29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iago4MSAwIG9iagooTWFjIE9T
+ IFggMTAuNi42IFF1YXJ0eiBQREZDb250ZXh0KQplbmRvYmoKODIgMCBvYmoKKEQ6MjAx
+ MTAzMDcyMzI1MDVaMDAnMDAnKQplbmRvYmoKMSAwIG9iago8PCAvUHJvZHVjZXIgODEg
+ MCBSIC9DcmVhdGlvbkRhdGUgODIgMCBSIC9Nb2REYXRlIDgyIDAgUiA+PgplbmRvYmoK
+ eHJlZgowIDgzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDA4NTA0NCAwMDAwMCBuIAow
+ MDAwMDcyMTE3IDAwMDAwIG4gCjAwMDAwMDI2ODUgMDAwMDAgbiAKMDAwMDA2NDE3NSAw
+ MDAwMCBuIAowMDAwMDAwMDIyIDAwMDAwIG4gCjAwMDAwMDI2NjUgMDAwMDAgbiAKMDAw
+ MDAwMjc4OSAwMDAwMCBuIAowMDAwMDYzMjc0IDAwMDAwIG4gCjAwMDAwMDgxODQgMDAw
+ MDAgbiAKMDAwMDAwODk0MyAwMDAwMCBuIAowMDAwMDA3MjQ1IDAwMDAwIG4gCjAwMDAw
+ MDgxNjQgMDAwMDAgbiAKMDAwMDAwNjMwOCAwMDAwMCBuIAowMDAwMDA3MjI1IDAwMDAw
+ IG4gCjAwMDAwMDUzNjkgMDAwMDAgbiAKMDAwMDAwNjI4OCAwMDAwMCBuIAowMDAwMDA0
+ NDMwIDAwMDAwIG4gCjAwMDAwMDUzNDkgMDAwMDAgbiAKMDAwMDAwMzQyMiAwMDAwMCBu
+ IAowMDAwMDg0Nzc1IDAwMDAwIG4gCjAwMDAwNjQxMzggMDAwMDAgbiAKMDAwMDA3Nzk4
+ NSAwMDAwMCBuIAowMDAwMDAzNzEwIDAwMDAwIG4gCjAwMDAwMDM5OTggMDAwMDAgbiAK
+ MDAwMDAwMzEzNCAwMDAwMCBuIAowMDAwMDAzODU0IDAwMDAwIG4gCjAwMDAwMDQxNDIg
+ MDAwMDAgbiAKMDAwMDAwMzI3OCAwMDAwMCBuIAowMDAwMDAzNTY2IDAwMDAwIG4gCjAw
+ MDAwMDQyODYgMDAwMDAgbiAKMDAwMDA2MjM3NyAwMDAwMCBuIAowMDAwMDcxNjgxIDAw
+ MDAwIG4gCjAwMDAwNzEyNDUgMDAwMDAgbiAKMDAwMDA3MDAzOCAwMDAwMCBuIAowMDAw
+ MDY4ODMxIDAwMDAwIG4gCjAwMDAwNjgzOTUgMDAwMDAgbiAKMDAwMDA2NzE4OCAwMDAw
+ MCBuIAowMDAwMDY2NzUyIDAwMDAwIG4gCjAwMDAwNjU1NDUgMDAwMDAgbiAKMDAwMDA2
+ NDMzOCAwMDAwMCBuIAowMDAwMDYxNDgwIDAwMDAwIG4gCjAwMDAwMTg4NTIgMDAwMDAg
+ biAKMDAwMDAyODcyMSAwMDAwMCBuIAowMDAwMDQ1NTA4IDAwMDAwIG4gCjAwMDAwNTUz
+ ODUgMDAwMDAgbiAKMDAwMDAyODc0MiAwMDAwMCBuIAowMDAwMDM4NDAwIDAwMDAwIG4g
+ CjAwMDAwMDg5NjMgMDAwMDAgbiAKMDAwMDAxODgzMSAwMDAwMCBuIAowMDAwMDM4NDIx
+ IDAwMDAwIG4gCjAwMDAwNDU0ODcgMDAwMDAgbiAKMDAwMDA1NTQwNiAwMDAwMCBuIAow
+ MDAwMDYxNDU5IDAwMDAwIG4gCjAwMDAwNjE1MTcgMDAwMDAgbiAKMDAwMDA2MjM1NyAw
+ MDAwMCBuIAowMDAwMDYyNDE0IDAwMDAwIG4gCjAwMDAwNjMyNTQgMDAwMDAgbiAKMDAw
+ MDA2MzMxMCAwMDAwMCBuIAowMDAwMDY0MTE4IDAwMDAwIG4gCjAwMDAwNjQyNTggMDAw
+ MDAgbiAKMDAwMDA2NTUyNSAwMDAwMCBuIAowMDAwMDY2NzMyIDAwMDAwIG4gCjAwMDAw
+ NjcxNjggMDAwMDAgbiAKMDAwMDA2ODM3NSAwMDAwMCBuIAowMDAwMDY4ODExIDAwMDAw
+ IG4gCjAwMDAwNzAwMTggMDAwMDAgbiAKMDAwMDA3MTIyNSAwMDAwMCBuIAowMDAwMDcx
+ NjYxIDAwMDAwIG4gCjAwMDAwNzIwOTcgMDAwMDAgbiAKMDAwMDA3MjI4MCAwMDAwMCBu
+ IAowMDAwMDcyMTY1IDAwMDAwIG4gCjAwMDAwNzIyNTggMDAwMDAgbiAKMDAwMDA3MjM3
+ MyAwMDAwMCBuIAowMDAwMDc3NTU1IDAwMDAwIG4gCjAwMDAwNzc1NzYgMDAwMDAgbiAK
+ MDAwMDA3NzgwMSAwMDAwMCBuIAowMDAwMDc4MTYwIDAwMDAwIG4gCjAwMDAwODQzMDkg
+ MDAwMDAgbiAKMDAwMDA4NDMzMCAwMDAwMCBuIAowMDAwMDg0NTU1IDAwMDAwIG4gCjAw
+ MDAwODQ5NTAgMDAwMDAgbiAKMDAwMDA4NTAwMiAwMDAwMCBuIAp0cmFpbGVyCjw8IC9T
+ aXplIDgzIC9Sb290IDYwIDAgUiAvSW5mbyAxIDAgUiAvSUQgWyA8NzQ2ZTU0MTc2ZTFi
+ MWRkYzAwOTY3OWRkMWQzZGUwNDM+Cjw3NDZlNTQxNzZlMWIxZGRjMDA5Njc5ZGQxZDNk
+ ZTA0Mz4gXSA+PgpzdGFydHhyZWYKODUxMTkKJSVFT0YKMSAwIG9iago8PC9BdXRob3Ig
+ KFZhbmNlIFNoaXBsZXkpL0NyZWF0aW9uRGF0ZSAoRDoyMDExMDEzMDE5NDgwMFopL0Ny
+ ZWF0b3IgKE9tbmlHcmFmZmxlIFByb2Zlc3Npb25hbCA1LjIuMykvTW9kRGF0ZSAoRDoy
+ MDExMDMwNzIzMjQwMFopL1Byb2R1Y2VyIDgxIDAgUiAvVGl0bGUgKG1hcF9zdXBlcnZp
+ c2lvbik+PgplbmRvYmoKeHJlZgoxIDEKMDAwMDA4NjkzNyAwMDAwMCBuIAp0cmFpbGVy
+ Cjw8L0lEIFs8NzQ2ZTU0MTc2ZTFiMWRkYzAwOTY3OWRkMWQzZGUwNDM+IDw3NDZlNTQx
+ NzZlMWIxZGRjMDA5Njc5ZGQxZDNkZTA0Mz5dIC9JbmZvIDEgMCBSIC9QcmV2IDg1MTE5
+ IC9Sb290IDYwIDAgUiAvU2l6ZSA4Mz4+CnN0YXJ0eHJlZgo4NzEyMwolJUVPRgo=
+ </data>
+ <key>QuickLookThumbnail</key>
+ <data>
+ TU0AKgAAF8qAP+BP8AQWDQeEQmFQuGQ2HQ+IRGDP6CAB8vyCvp+wUCgOCgePAABgKJSW
+ TSeUSmVSuWS2XS+FwOKzCaTB0vOCuN4wV2PaCu17wV8xsAPp/QV+RUBSSEP+jgB+08Ax
+ UC0wEyEIAmChUFQUOg+ChsIQUBAGa2e0Wm1Wu2QWZW22vCggBluKCtV0wV70QCSEB36Q
+ 0uC3+yWYAAGmYYARSCv2iY6kRioUTGAB9vvG0QC4YUheCjkQwUMA64aXTafUSy36mXMB
+ twVgt2DYYCATB0zCSLbSK/P68vdyXYBgqxgEAgYAAUDvnLAMJ4t3OGLPePAYQC/DxV+Y
+ /JdvM9/JwUbB+ClDsYfFaz1ev2TXV+2JMNuQVbtbByHa/eC/nefvAP2f53qgfaSAOBaw
+ AMBDGnuoJ+AIrR+nsoJ9qefwBK0fzHqI7zwgAfjJKixruqIPYkoKrL4RTFUVoe98WIYS
+ 5hIKcidv7Gzcr6/QAP4/h9nWZwAHOdJ9IKex1KgBYGAACIUiEAAEnGYYAHAcx8JEjoAA
+ UE8nAmA8RPBDjIKgp5+xGgo5iG0SwRfNk2vbF03IOYT5gAXBrv9HUcgAAT8P/Gz+Nyfx
+ 7noqDDHye6fOOrp/n4zCCAKj8lAFDSkO5SrGqey7IoKPolROrs41DUS2ThUaDF8bTYNe
+ sj9t2wSRH2cqoHvSADggjx/nhQgCgW5ikq6AYCrAAZ+ncxYDyUfZ20I46Nowjx+HadEP
+ ACCiRAuEbForMUP0uAAbvIAApBigrjVNc90JbUt0oKd6fLocaCmpaYAHuzCRACoJ/qJA
+ ytMtIjEI8AYCI2AR/uYfZ/tsAYDQge1CH6AclX3IjHI2ft74jCDJM2goVAwz7QgADM13
+ Zk2TpPdeUIYesiAAebmXre58O7CqDH6mbZoUgVyoMsr9qYkCCgVSAAAZLwAAbpFzZXpu
+ nIllWnpbizeJCljLswv6PKWpmpa9r6IajsCJHpsuXnmnAM7Ul0GKCd23gACu5AAA267H
+ u+77FvCFHxvoAHbwAAAtwbkgLoqYHtxIAHfxnBcJw3D73yV2b1yWsAAdXMgACfOAABHP
+ rgevRAAePS8cC0dv5yfV1DyuwH92AAHT2ekgaBujAZJT1bLQh5d8AAL+DqvWeJFnXacg
+ YAHX5e6bsCHnxftCcb7K3OOfrni+y9Xj3Ofp7pwewB9ufZ6WNqm5ArUx6nWbwAG0dEvB
+ eFYMz3V/tfutfuVMfp5rycw+XbgFH4PJ079WuqjI2OUcqxjalHfRAZ/EESaP6JSzgo44
+ R+jsAAOQfo7TLABIwPdg4AB7D/SIQQio/yzFTI8pBSAGx9mkAsPQ5AHALgadSbtURFyC
+ jpUI8pd7b1jD6W6P4BTqCjFCMkTMAxTGOgAaE3QpgCzkNxAWQUDLt0sxVgk0+ChDhwj8
+ WMMIfI2QADjH6Os5JggGsMaTG4g7PCED0H6cweQ/kiDzH6kRRBzB4ACIwB8AxngfAJBU
+ AAH4CAOnrXsQUaKsn3QeSDD9V5uSRn7ACZgAIBFINMPSQZDjsTFlPlChtSjglQAlfSAA
+ GkiwAAOX9F1UUXyEirHqNAAAtB7jRAAA8ASkAHgDS8A6NwGQCu3AZHAg0yUvD1j2y+Oo
+ AB6R4mgkSO5zBwj6JwOyaI55og5AQCkAAlgJBFLUiEAAwU6DGG+W4w0lk/I4N2P8eheR
+ /gCOQwSAiFCCABRChZBRTiCD9AQ+lYJyExUJlIiBDZkgageIKE0FqeJZIrloAAVI9hsA
+ AFCPMYIAAKTCAArdL0wTkAbmPFAdhzCOlaAcmUxY+zbD8H8cwfAByzDqV0AAfAFUvD3A
+ SRgcA+oCDtmpN45g0KauLAyGykYA5YkrjkKQZZBRsxqR3PFPyepOG3KQOp9oAwIARigA
+ Eo4+x+E+H6PhIg/nxLaJIAEBa1o5UwQ9KehMpkvgACGCcgoRpD0VRVRcJg6xWmLgy5uN
+ wEaRTBS8BsAztwCDfgIAgCxYyxtbZcPRCTL4BAAHkzQiwGFID1KKlMfZOB2zdmiNCaI4
+ wMhmAABwAjJSVjnRqJEYFFEcF+N2npV49hvC4cxDEAACwEqSAIWMEoJSCjeG1B5DJGEL
+ GeA5K4bo2SdgOAqWAd1WANgjogt1DteVvAxA2QULANbBWDeSSgMw7hcgAHKPscFikvAQ
+ H1aYd4wkBAZBQ7cAcHGRguBk5se68R1jqI8UN3o7lCAQCSCBKYuU7jtVu4sehzB+guZA
+ O0AlSZojmAyGhkYBItEsHqzERAu53VeT+bu3pBR/DyHMvUfROx9IMILQWkADizD0Hwo4
+ eiAlaPpAiAosw8h6kVfJaAfZzwMAcdReZDqmq7kFBnK69d7UU0XHFAMAAYh2CqbpP4AA
+ JJ8J7HmQQCA9o7DhtMBkFoJLjsDQ8ohWaVh5KTKKAokkJUrDufCh4CZRx1sJAALsAMBA
+ FuxHaB4OdZYdEvGsOcgoq5cFQIrPA+7AB8pEAGVMkQCkvMNMaPQoIBQHFgkAhMe5GGIp
+ eKnaYfQ9K2khH4Phi8r8epKoUeBDJBQyA7IKCV1GXk33vJWObMQlh5pSgxGoCOa5iHIA
+ cAKYYBGkEOj1HaZ48aljvmfas5lSE91iAAJsCE5gZAHfoXEuYwzZAAGmvQp6+CcQZ0wV
+ MggAwFljAMBBSEHUBAFAytm0E7R8jyYAAizICDbWpJ2Ues4/CzKMaQBEDgAI5L7IKZ0g
+ oQbnAAAxbbZWy45FnHOPwnY3h+QaHKP5Yw+IRkH0ApBnJBh7j+MwPUfxkiDEeNsB0AYE
+ gAAlAKZ4EYBOkHGk+eofZRB0E4AAOiAji0rTSZcTNpj9jDdRlGW4isoiZlOIKAtooEV/
+ GjIKBo0jnnI8pTZRfuhph9d5lGUdz6CjTu+gI7lST9u7pu7t4UtL0rQO/Ax414Zp/FeK
+ Aj5NJ4Cao+Iy/szzBp2qRC725tzptdKnreoADzwB/UJL8o9jzZqfD+tIkPn2Tf3AgK9t
+ L0B5YOoJxdgUd0pO22+qrJ5by/sC0+v+NHFnngJpNmes550DT/ZHMcBB71CXvJ1k9Z8k
+ l3yPYIfIx54g/z2tOS966R03wfs+V+L9wkv3qKv8LyOQeRyALASQV552ztwHf9va+m9M
+ HcxuHuHWKCAYBMBQcEAQgO/cIY/glkIEJ8GyGyg0/6Ns+e+u8wdgSsHIG0vuH0AefSLE
+ K6+JAaJi80VGHsZcKAIKtEIsKIKGIyKIiIIKAMJDBtBqJCARB0N2AoiuOShAAAHZCGhy
+ AAAlCOghBMKE9m88k4iqAQrIHoQIKKKI15BkKEMoKeiiijBwc8N2aUIKAmX88IXPAeJU
+ yGqsqwG+QEvo6zCsRuJC6+MSMM4+TITIKIrqMeKeAQzQA0AaKOBOAuUgBQM8ig9G+MHO
+ 6yG2g0ABDWIJBYMKJEKYkrDi7CIm7LDu7IW82G48KeAoVABArIAABO2SA4LGRfDMIfBU
+ IKVQIKGk3w6GT6R0nkI2rMMHBwZ+487KW3CyW8ysTEywTE1GIKBkvSAACKnE7ky8G0SO
+ AAGAToh9Fmq0VaR1FyNyMOLclJDwO0oYPA2CQ8MkywAsd0CGBMIKBWhwPXFSIU6wIKE6
+ GPCwTyt+xlFkRuACfAHAjM1YOQHyHWJwAMbmACAGhCHiMkACOeAQAyvSW4UsyyvKKIrQ
+ IKAYaKD2U8T27EdWFwGqIKGIvuqzGkR0cNFnEm5oKKHGVSH4AOZBAWjUyGUW6CMWjcAG
+ AfHMnwI8rsTCrwr0KgMkCsBmy0ogNRHWISEsRkg2HhHkI4aKT0NyKWSsHsHegIAOAcK6
+ I6MwQerIAQH4QFCkMwrQNIAUAWNsHsHmIwJmH3Bo24SVJyU2TGr2H0XuEKCex67mckHC
+ kkEuGIt5HqzwcKxgH8HqSOH/KmOSAGSsYGQUAWAaQUHyYeKgcUoIdQAGnohIH6SUAI1u
+ ZeH8QUJApnG7IeW8BfHSC0Bs9dBQLQEgF8IKHWtNDgTyT8AKH8LsG6GixuAEH0VkI0OY
+ AQBcCMc2G4F0AAHEAMfoAWACLAAwBaogHOGMSAHyUEAAZa6QBMB4B6T3J2W4TNHAILLl
+ LoeKG3GaE8GRJHKST+JCHkGwuIHWH6K6R8g0AMAskOBaBkLAGwGCGmc8ASSsH+BAScAo
+ Hwl4G0HGSIAEH2J2HsAQwOBUBWohF+lPLgIKBi46ABNJNM5WLUG9EYFAGSZ1PMLJL4AG
+ YAH+nyirKahM48zWaYlEHwHm6yAE78MMO2OQ3zJxJ0W8asEICcLJAYckjkFQGaLuXoUA
+ L8Nwt9L3R2xgv3KkAaNIjk6CKCdHIuVwme4wSUMrRqUwTAMkokIKB85KNPKGIYHWh+Ft
+ I2AAG8WMdTSRI+JEH4VkH2HgJwAKAqfoN8LyAQA0LAH0HgtMOOWGHyOk5s6QOSUkACSI
+ v2MkAhKDF5G8MkBM2TS5CNB+gkjkGUOkAAGE3qHsMk09TYACHsVSqIMwAEHyg8WqOwAW
+ AOVkHsHgS8AKAmUgHwHKLySyLGe8K0AIAcJ8H2HyoMAerInQTCMk4kIKCAzsAAB24UaZ
+ TBNONSHbNaGo0xEbTSHSXeVeMREiRtGxIvE0IQytDzSyLcNEd0BGOeAABfGMyS+SMqGz
+ GaG3DVKQp4KJGtErQ+ITFzXBF0xpUYQ6jkAOKYBDFFUeY8ZBEkvdQvCVYTYU+PWaZW7y
+ SJAA/2JM8VAybqi5YWNOd4dwd0JQ+ZYk92ZRTCNO/AdkdogfYsJMcucySOcGdQchYwLW
+ 9+KK70geJScYQEaoApZ0ZXZENNZW+gQU/67ixUdG8UeCM9ZBZgJZABCGg08aZA/KJSeS
+ dmLy8FY2cpYaVG+Y9LZaLU+qPQLNCPUHaUJO/OHRbO+E/YJrZUc1a7ZeVHZ6LPYeeUeZ
+ aPCKLS/Pao9wLA9sVBbIIg/EINbEdCdG+Zbs+27rayPam0QEH+AYLGHdbRaEuOAXUmNK
+ x2g8HUqMbiAwrIAOdVZgjyOoJEhHZlcPDILafKSOKCQUAqAlaHcTYQRWf6VkHoAUNIAK
+ 9nZ0WsPWH0LyGWGYLyA0BOvSA1CRaTCUf4g2HWI8n8QFd2ig9Se2H4jUGeGcgIBQBYfp
+ b7FRcUJOH0UZOihGyaOZfAIwASACUgyUS9fWKgHyMw89afCSRWeWjUH+aKAGAcQU6Aw4
+ MWSyADfZgAuOOPIvR4VEIoIIhESJfIhIhGhWSfgIAZgFfQORaaeaOQ9y5QPhbmHSHVaq
+ suIsWJgaSIANIEc8boaNRec9fSPde8Ms5AG0H4WmG3hkvoH8g8kuIQAYzWjoZc48tAmo
+ j0SIAgHc6KAefoBeAYPIBMAKdReQLVf4AAGsH2xuG4H6WmHTK2aMHiIIAS7Y48Kqmkmf
+ XEjuSJh6SWACduBMAIfoBiAMogA0tqNQm4UJhoWmHCH8jUg4WMmSUgjaOQjljPjImofI
+ MwAwH4NIA4AivSBqAQPIAkOGNQHJi1hi0wHFjyKKx4ADOeSeAnb8IKjojtiCmeYSIIBC
+ AEM8BaAM47jc46ASl+bC80eSl1I2FqHuGkbi24lejcAazWmYaMjdgeIO2+mllGmsqWmy
+ m2mjD4K6DWAcB8r5kcbY58AAFeHsGeAAGUH0Nlj/l2ORl6ORl+mSORgemmOZkDmMjOtS
+ AAHgmim4OYA+AIM8DiAdOtiZXMJYHVeUFMHqqq5gWmsdm8aTl8pFnHGwyCqXiEmhlESI
+ HimfnaOYHcmeA4AKwoESAhmgl878JYGuH0WmFKHqGUtBMpoCpQSVl+IOja26ILmImmjy
+ memudJoemiG6H2KCCeAWwODoAbNKLKk+RcECHgF4AAG6H4HIqepKjc2zm+pEtJpOpFX0
+ IPpc6vMyHmmoHkmjocOYG5nW3QGkqWGqAsDCAABQANd4Ik6ASID0HeFocWH+gIpIl6jc
+ pQmRoJnDqgZ5qnjPjPqsmsmiqGqKqPr+IqHKxKSyzWJKG+H2WMD2HhraAJFtriA6pTm7
+ h3rvruaRrympr2mfr7nUJwHe12b/sEZiSeAAGeA0DKJUF+HuNkEcHlNUsYUgkE/4zXpV
+ mBnDl9sQINr0mfqmHKm1pkOY3I+omoFuH2gID8AXNKECAiB+KaIGF6HwOkDmHcFiAABa
+ pSsZqSmGpEAsHTKQHmHOJIAcAYOQAEH8rJcqgIHYHkJ8HmHjgWAwiuH06NuEcWmoGoqI
+ AAtcOYEuAgScDQAbJ+JKEIHjHgGNlusUORu3rksesiJEGmSOAC1aAAA+d0HMHGQaT2Q8
+ Hyv5BoH6BKOeHwAkI3q0ABq4Jw3Rv6AAGuAuDBrJIAJMDYHbuuG8H2WmAmsWpEA7whtu
+ AQWWMOHESJc+LNfeLMH6iaZex4H6BCK6Hu62Hw2SHBnW3MSCmjimUIHyA+D0JMKSKOCG
+ HQE5gGIIAnl0BApSmIS8jaI8AQG2QEHyHcOQA6to9MHUKPxCOfsWSOHgHUUIH1xE6uAM
+ UIHempysFvv2CAAKZAF+AwC7ugIEEqHmSAE4HoGLuwpSAgzXoC2u5NMGuOAS/4jhYQ6A
+ MwHPyqcCHmAaUgHtmpog3tv3xYEkAfueDaAdNKJKC2HbraHhTcvwpH02pEsgduASZiAe
+ AYmR1G53iyUIj0KCHS6qMsAkJIHEyfysHMtamiGeAsC4AABg3gJMCUHSE/GwSJx0vyzW
+ A5whzVhTqYS8AXMmbOriAUKPrSmh2f2iHaAeIwHh0MxHyxMyHyBBy6JKm8UICUHV3IA0
+ zX2mOQBAAMNJ07tvtvssuPlgIP1LmKjsHxKQG2ZgQ93pnZncmj0QgJ0V0Z0d0gH+G5i0
+ C0HUFMpAzwpCmGGOl4HcH4LGAZ5uaMAsNCB8B6duGmGeLyHoHaIwMuSIAcB2kPB2faGU
+ GCg0HeHwYgBuBEZeAiKPxYFGAiCQAAC4AYomJKoyo2EQHhODlUNJriH8GJpF5v5z52AZ
+ 56AAB8BwduGwGeXiOYI8HaHmUgBECUZAGyFfSAHOAUIIHeHmQKCMkXPWqTv2G+A2DWAB
+ zRFEIkDeHgF6AAG2HyPn5mpGHvKQHSGAg8AZ6mdSS8AmBvueBOHqTuGuHAMll6hIHqK6
+ AsCOrIG0FeSAHl1WcX8Sih8W0Xv2AMYwIt4GJUC2HWFRvwJ388AGGoPmHmHQUgAoHkKC
+ xQhwBgCkBcIKGPmw/oKEACWMHSAIWyBSBaMwGeGAvuHuAOJ3eYkWHqBwK1xYCFOIAAF6
+ Av26+VQuIAu3u2wAk3kwAADwGBQAEQEBgADgHEAc/n8AIgEAADHyAAACQlEI9Hnm/H0A
+ Hg8ngAHeBQGAHuAo6737J3a/Y655wAHbFwA0QyZYaAwTI6NR6RI4MxgAt3u0wAEwGB4b
+ D4jE4jFowAI1HI9IIg85rHn/HnS7naAH4DYg8X9M7HN46t328wAPQIFQAvwuXQAAwCAq
+ Tg489n8+wAd3etgA3X46AAJAKDYTUwADasCHk/Y8BgCAAUCgfH4YALFJwBZQA7Hddnzl
+ ABbo63H1dp1HWg/pObQULQAkgkR8Jw484H48QAb3asavF4dFKwDgEBAABHn1IZJwaEAk
+ AAL1NNJtM+pW7HrHnuCn5LLjO9uAGphwAsQkTwASgUJKO//5qqQcZ+JWVB6maABtn4c4
+ AAQASXgeqyJJEkb/KMz7Ps2jq3JOeCdnYfiOvW6gZgQEoADyBwboiASqOJFijmmfRzAA
+ WyngAc5/Hey4BNKkcIP2pMKgBC7Yt0lEOQ8j4BAWAAiAUFYADMBYXr+wMWxY/oAF6fCC
+ GCfBsNiADzwc6EVtTHykSBIUMyKjp2yOC4CAmAArAWGQACQBIRSrPR7vkV57GkABln0b
+ wAH6AL1zEq8IrJH4AQsndHI8eKxnefh8NMfrOBKAwNAAMIGBqAAVAMvTBv7CcrP4AB6H
+ +jp61bQoAIufp/1nWVboul7BLLIDPgSAKGAaAIENAq09WPZFaIvVlXLe1IArKfh/s4zi
+ Lv9XVIwpBQAohByigQALwWRccWH0f71npZx7n+k5/2hQtarVW7Pwkz7AMFfDQW5FNiAK
+ AKX3JgLCT4xFWUuxFqWnWNbIvfNVOrf6/gAwQGRUy9h4mAN6T1U+BY9j+QZDkWR5JkuT
+ ZPlGU5TjuVZbl2X5hmOZZnmmZoCAAA8BAAADAAAAAQBhAAABAQADAAAAAQBAAAABAgAD
+ AAAABAAAGIQBAwADAAAAAQAFAAABBgADAAAAAQACAAABEQAEAAAAAQAAAAgBEgADAAAA
+ AQABAAABFQADAAAAAQAEAAABFgADAAAAAQBAAAABFwAEAAAAAQAAF8IBHAADAAAAAQAB
+ AAABPQADAAAAAQACAAABUgADAAAAAQABAAABUwADAAAABAAAGIyHcwAHAAAZ7AAAGJQA
+ AAAAAAgACAAIAAgAAQABAAEAAQAAGexhcHBsAhAAAG1udHJSR0IgWFlaIAfbAAEACAAS
+ AAoABmFjc3BBUFBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBw
+ bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWRl
+ c2MAAAFQAAAAYmRzY20AAAG0AAACQmNwcnQAAAP4AAAA0Hd0cHQAAATIAAAAFHJYWVoA
+ AATcAAAAFGdYWVoAAATwAAAAFGJYWVoAAAUEAAAAFHJUUkMAAAUYAAAIDGFhcmcAAA0k
+ AAAAIHZjZ3QAAA1EAAAGEm5kaW4AABNYAAAGPmNoYWQAABmYAAAALG1tb2QAABnEAAAA
+ KGJUUkMAAAUYAAAIDGdUUkMAAAUYAAAIDGFhYmcAAA0kAAAAIGFhZ2cAAA0kAAAAIGRl
+ c2MAAAAAAAAACERpc3BsYXkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbHVj
+ AAAAAAAAABIAAAAMbmxOTAAAABYAAADoZGFESwAAABwAAAD+cGxQTAAAABIAAAEaZW5V
+ UwAAABIAAAEsbmJOTwAAABIAAAE+ZnJGUgAAABYAAAFQcHRCUgAAABgAAAFmcHRQVAAA
+ ABYAAAF+emhDTgAAAAwAAAGUZXNFUwAAABIAAAGgamFKUAAAAA4AAAGycnVSVQAAACQA
+ AAHAc3ZTRQAAABAAAAHkemhUVwAAAA4AAAH0ZGVERQAAABAAAAICZmlGSQAAABAAAAIS
+ aXRJVAAAABQAAAIia29LUgAAAAwAAAI2AEsAbABlAHUAcgBlAG4ALQBMAEMARABMAEMA
+ RAAtAGYAYQByAHYAZQBzAGsA5gByAG0ASwBvAGwAbwByACAATABDAEQAQwBvAGwAbwBy
+ ACAATABDAEQARgBhAHIAZwBlAC0ATABDAEQATABDAEQAIABjAG8AdQBsAGUAdQByAEwA
+ QwBEACAAQwBvAGwAbwByAGkAZABvAEwAQwBEACAAYQAgAEMAbwByAGUAc19pgnIAIABM
+ AEMARABMAEMARAAgAGMAbwBsAG8AcjCrMOkw/AAgAEwAQwBEBCYEMgQ1BEIEPQQ+BDkA
+ IAQWBBoALQQ0BDgEQQQ/BDsENQQ5AEYA5AByAGcALQBMAEMARF9pgnJtsmZ2mG95OlZo
+ AEYAYQByAGIALQBMAEMARABWAOQAcgBpAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIA
+ ac7st+wAIABMAEMARAAAdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMTEA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUgABAAAAARbPWFlaIAAAAAAAAGXb
+ AAA6RgAACaRYWVogAAAAAAAAaMsAAKyrAAAaoVhZWiAAAAAAAAAoMAAAGQ8AAK7oY3Vy
+ dgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA2ADsAQABFAEoATwBUAFkAXgBj
+ AGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKMAqACtALIAtwC8AMEAxgDLANAA1QDbAOAA
+ 5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGD
+ AYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQC
+ XQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNm
+ A3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgE
+ tgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3
+ BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gI
+ CwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woR
+ CicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwM
+ dQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8J
+ DyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegS
+ BxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0
+ FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y
+ 1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyj
+ HMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg
+ 8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVo
+ JZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUq
+ aCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+R
+ L8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1
+ TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zst
+ O2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpB
+ rEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhL
+ SJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lP
+ k0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3
+ V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1f
+ D19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9
+ Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9Fw
+ K3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkq
+ eYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC
+ 9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zK
+ jTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqX
+ dZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqIm
+ opajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUSt
+ uK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blK
+ ucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvF
+ yMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/
+ 0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynf
+ r+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R
+ 7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7
+ d/wH/Jj9Kf26/kv+3P9t//9wYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKwHZj
+ Z3QAAAAAAAAAAAADAQAAAgAAAAQAEAAoAEsAewC4AQIBUwGxAhwCkQMVA7EEYAUiBfQG
+ 1gfKCNYJ9wsfDGoNwg8kEJoSIxOsFT8W9BibGlAcDR3NH4ohVSMbJNsmoyhkKiUr3i2I
+ Lx8wsTJHM981dDcLOKA6NTvAPUY+0EBTQdBDS0TBRjBHm0kDSmZLw00XTm9PuFEEUkxT
+ j1TPVhJXUliIWcBa9VwhXUxedV+WYLxh3WMBZCFlPmZXZ21ohmmcaq9rwWzPbd9u7m/4
+ cQJyDHMZdCV1MnY+d0l4WXlpemt7RnwbfO99xn6if3yAWoE4ghqDAIPohNGFwIaxh6aI
+ nomaipeLmoybjaKOrY+5kMeR1ZLlk/OU9ZXqltqXzZjBmbWaspuwnK2drp6xn7WgvKHC
+ osmj0aTWpd6m5qfpqO2p8qr1q/Ss8q3vrvOwD7Ewsk6za7SDtZ62trfLuNu567r7vAm9
+ Fb4gvynAMsE+wkrDWMRmxXbGiceeyLTJy8q/y6LMgM1czjjPE8/u0MXRmtJx00XUFtTp
+ 1bvWjtdi2DTZBdnX2qzbgNxV3SzeBN7V33vgH+DA4WTiCeKw41vkB+Sy5WHmD+a852ro
+ GOjH6XTqIOrK63fsI+zM7XXuHe7C72vwFPC48Vzx//Kk80rz8fSS9TH1z/Ze9un3V/fC
+ +Br4YPim+Oz5c/ob+67+I///AAAABAASACwAUgCGAMgBFQFjAb4CJwKhAycDtwRgBSAF
+ 6gbEB7QIuAnNCuoMIA1oDsMQIxGNEwgUihYdF7sZXRsDHKseVyAOIcEjfCUpJt4okioz
+ K6stDy5rL8kxLTKPM/U1WTa/OCI5fzrfPD49mj72QFFBpkL6RElFmEbiSCdJb0qrS+lN
+ I05bT5FQx1H7UyhUVFWAVqNXxljmWgNbIlw7XVlec1+IYJxhrmLBY9Nk42XxZv9oDmkc
+ aihrNGxBbVJuZW90cIlxmnKyc8t00XW2dpJ3a3hIeSh6CHrqe818sX2bfoR/boBbgUqC
+ OoMshB6FEoYHhvyH8ojrieSK3YvVjM2Nw466j6qQm5GOkoGTdZRulWeWYJdcmFiZV5pW
+ m1WcVZ1VnlSfVaBVoVSiU6NVpFOlT6ZNp0moUKl2qqarzqz6rh+vSLBvsZSys7PTtPW2
+ FbczuFK5cLqOu7K81r37vyTATsF8wq3D4MUMxhvHFMgHyPrJ78rly9zM0M3Fzr3Ps9Cn
+ 0ZvSj9OE1HjVadZX10TYM9kf2gra9Nvf3MPdkt5d3yjf9eDD4ZDiXOMp4/bkweWI5k7n
+ E+fX6JrpWeoX6tbrkOxL7QXtve5x7yXv3vCP8UDx8PKk81j0CvS29WL2D/a791X35/iJ
+ +Tj5//rt/Av9Z/66/zP/d/+7//8AAAACAAsAGgAxAFAAdwCnAOABHwFhAa0CAQJgAsgD
+ OwO5BEIE2AV+BjEG6ge4CIwJbApcC1IMTw1VDmIPdxCTEbMS0hP1FRUWOxdaGH0ZnBq6
+ G9Mc6x37HwcgFyEpIjojTSRfJW4meieGKJApmSqgK6YsqS2pLqgvpDCgMZUyhjN6NGk1
+ VzZENy44FTkAOec6yjuwPJs9iT55P2hAUkE/QihDFUP9ROVFyUatR5NIekldSj9LI0wG
+ TOlNy06tT5FQdlFfUkZTL1QXVQNV8FbRV6VYdVlBWhBa4FuxXINdVF4lXvlfzGCeYXNi
+ R2MbY/BkxWWYZm1nQGgWaOtpwWqVa2lsPG0MbdFujG8/b/JwpHFTcgVyt3NndBd0yHV5
+ dit23neReEZ4/Hm1enB7K3vpfKt9b34yfvl/woCNgV2CLYL9g82Em4Vthj6HD4fgiLCJ
+ hIpXiyqL/YzRjaSOe49SkCqRA5HckrmTlZRylU+WM5ccmAiY85nhmtCbwpyynaSem5+T
+ oIuhhqKEo4aki6WQppWnnKinqbOqv6vNrOCt8a8FsBqxL7JJs2S0g7WitsO35LkMujG7
+ WbyCva2+2sAFwS/CW8OKxLPF3ccKyDLJYcqsy/vNQ85/z7rQ7dIk02XUpNXy11fYydpM
+ 2/Tdv9+44ebkUecj6mzuavN2+ln//wAAbmRpbgAAAAAAAAY2AACVRgAAVs8AAFKpAACR
+ TgAAKHIAABcKAABQDQAAVDkAAtwoAAKo9QABczMAAwEAAAIAAAAYADIATQBmAH4AlgCu
+ AMYA3QD0AQwBIgE6AVABaAF/AZcBrgHGAd8B+AIQAigCQgJcAnYCkAKrAsYC4gL/AxsD
+ OANVA3QDkwOzA9MD8wQVBDcEWgR9BKMEyQTyBRwFRwVzBZ8FzAX5BigGVwaHBrgG6Qcc
+ B1AHhge9B/QILAhmCKII3gkcCVsJnAnfCiMKaQqwCvkLQwuSC+EMMAyFDNoNMA2JDeQO
+ QQ6gDv4PYA/GEC0QlBEAEXAR4RJUEs0TRBO/FDwUuRU7Fb8WRxbSF10X6xh9GREZqRpD
+ Gt4bfRwhHMUdbB4SHrwfZyAVIMUhdCIlIuIjxiSyJaEmiid5KGcpVypEKzAsIC0LLfYu
+ 4S/KMLMxnDKDM200VTU7NiI3Cjf0ON45yzq+O8c82z3uPwFAGUEpQjlDTURfRXJGhUeY
+ SK5JxUrdS/tNGU41T15QhVGwUtpUEVVIVoVXxFjmWf9bIFxBXWhelV/AYPBiJmNkZKRl
+ 5WcraHZpxWsWbG9txW8acHRxy3MmdIB113cweIl543tyfSN+4oClgm6EO4YVh/WJ1YvG
+ jbiPr5Gmk6GVp5etmbGbuJ3Dn8Oh36SSp1uqGKzTr4CyNLTft5m6VL0Uv9/CvMWQyH7L
+ cM570XXUkde72t3eA+FJ5Kfohu2W9XX5NPrX++382f2m/qH//wAAABYAMQBLAGYAfgCX
+ ALAAyADgAPgBEQEpAUEBWQFxAYoBowG9AdYB8AIKAiQCPgJZAnQCkAKsAskC5gMEAyID
+ QANfA38DngPAA+IEBAQnBEoEbwSWBMAE7wUfBVEFhAW3BesGIAZWBowGxAb8BzYHcQeu
+ B+wIKghqCKsI7gkxCXYJvQoFCk8KmwroCzYLiAvbDC4MhgzfDTkNlg31DlUOuA8aD4EP
+ 6xBWEMIRNBGnEhwSlRMQE4sUDBSLFQ4VlRYeFqsXORfIGFsY8BmJGiMavhtcG/4coR1F
+ Hekejh83H94giyE0Id8iiyNeJD8lKCYOJvQn3ijHKbQqnCuILHYtYy5RL0AwLzEiMhQz
+ CTQBNPc17zbqN+g46TnuOvQ8BT0YPis/QEBYQWtCgUOaRLFFzEblSAFJH0o/S2FMiE2s
+ TtZQBFEzUmBTl1TSVgtXTVh4WYRak1urXL5d3F78YBZhOmJgY45kvWXqZxxoUmmKasJs
+ AW0+bndvs3DwcihzZ3Shddl3EnhLeYV633xiffd/j4Engr+EWIX5h5uJO4rhjI6OPI/t
+ kaCTV5UZluWYrpp+nFWeMqAOof6kKKZfqJKqxa0Br0Kxg7PQti+4krsCvXnAB8KUxTbH
+ 3sqSzV/QHtL81ebYxNut3rnhxuTf6I/r2e6c8Ofy1PRz9fj3tP//AAAAJQBPAHgAoADH
+ AOwBEgE2AVwBgAGlAcsB8QIYAj8CZwKPArkC5AMQAz4DbAOdA84EAgQ3BG4EqATjBSIF
+ YwWlBegGLQZzBrsHBQdSB6EH8ghFCJsI8wlNCasKCwpuCtQLPAusDBsMjw0GDYAN/g6A
+ DwIPihAXEKIRLRG5EkcS3BNxFAsUpRVFFegWkRc7F+YYlxlLGgEauht2HDcc+B27Hn0f
+ RCALINYhnyJrI04kPSU0JionIigdKRwqHSseLCctLi46L0kwWTFwMogzpjTDNeQ3Cjg0
+ OWM6mzv3PWk+4EBkQeVDckUBRpZILEnGS19M+k6PUChRvFNLVOBWb1f+WYVbElygXjhf
+ y2FjYv9koWZAZ+NpimszbOJui3A5ceVzmHVFdvV4qHpdfAR9pH9KgO6CkoQ0hdyHg4kk
+ isaMa44Nj62RSJLhlH6WHpe7mVWa8ZyOniufwqFhovuklaY2p9KpZ6sFrJmuM6/LsWmy
+ +LSVtiy3xLlduvS8i74ov8nBZ8MHxKTGT8f5yZ7LTM0Czp3QG9Ge0yrUv9Zn2AjZudtr
+ 3Q7eruBX4ezjbeTk5lPnuekU6lDrg+yt7cbu0e/U8MbxtfKQ82z0LPTr9Z72SPby94j4
+ HPiv+S/5qvok+p77Avtm+8r8LvyH/NH9G/1l/a/9+v5N/rn/Jv+S//8AAHNmMzIAAAAA
+ AAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsbW1vZAAAAAAAAAYQAACc
+ hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+ </data>
+ <key>ReadOnly</key>
+ <string>NO</string>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 1</string>
+ <key>SmartAlignmentGuidesActive</key>
+ <string>YES</string>
+ <key>SmartDistanceGuidesActive</key>
+ <string>YES</string>
+ <key>UniqueID</key>
+ <integer>1</integer>
+ <key>UseEntirePage</key>
+ <false/>
+ <key>VPages</key>
+ <integer>1</integer>
+ <key>WindowInfo</key>
+ <dict>
+ <key>CurrentSheet</key>
+ <integer>0</integer>
+ <key>ExpandedCanvases</key>
+ <array>
+ <dict>
+ <key>name</key>
+ <string>Canvas 1</string>
+ </dict>
+ </array>
+ <key>FitInWindow</key>
+ <true/>
+ <key>Frame</key>
+ <string>{{0, 4}, {1033, 874}}</string>
+ <key>ListView</key>
+ <true/>
+ <key>OutlineWidth</key>
+ <integer>142</integer>
+ <key>RightSidebar</key>
+ <false/>
+ <key>ShowRuler</key>
+ <true/>
+ <key>Sidebar</key>
+ <true/>
+ <key>SidebarWidth</key>
+ <integer>120</integer>
+ <key>VisibleRegion</key>
+ <string>{{0, -26}, {755.159, 605.473}}</string>
+ <key>Zoom</key>
+ <real>1.1891534328460693</real>
+ <key>ZoomValues</key>
+ <array>
+ <array>
+ <string>Canvas 1</string>
+ <real>0.0</real>
+ <real>1</real>
+ </array>
+ </array>
+ </dict>
+ <key>saveQuickLookFiles</key>
+ <string>YES</string>
+</dict>
+</plist>
diff --git a/MAP/ebin/map.app b/MAP/ebin/map.app
new file mode 100644
index 0000000..022387f
--- /dev/null
+++ b/MAP/ebin/map.app
@@ -0,0 +1,9 @@
+{application, map,
+ [{description, "Mobile Application Part"},
+ {vsn, "0.1"},
+ {modules, [map, map_app, map_sup, map_pm_sup,
+ map_load_fsm, map_dsm_fsm, map_psm_fsm, map_rsm_fsm]},
+ {registered, []},
+ {applications, [kernel, stdlib, tcap]},
+ {env, [{supref, {local, map_sup}}]},
+ {mod, {map_app, []}}]}.
diff --git a/MAP/src/Makefile b/MAP/src/Makefile
new file mode 100644
index 0000000..6484630
--- /dev/null
+++ b/MAP/src/Makefile
@@ -0,0 +1,36 @@
+## $Id: Makefile,v 1.1 2005/02/13 00:42:12 vances Exp $
+
+EBIN = ../ebin
+
+ERL = erl
+ERLC = erlc
+EMULATOR = beam
+ERLCFLAGS = -b $(EMULATOR) -o $(EBIN) -W -v +warn_unused_vars
+
+$(EBIN)/%.$(EMULATOR):%.erl
+ $(ERLC) $(ERLCFLAGS) $<
+
+BEAMS = $(EBIN)/map.$(EMULATOR) $(EBIN)/map_app.$(EMULATOR) \
+ $(EBIN)/map_sup.$(EMULATOR) \
+ $(EBIN)/map_pm_sup.$(EMULATOR)
+
+.PHONY: default
+default: all
+
+.PHONY: all
+all: $(BEAMS) gsm ansi
+
+.PHONY:gsm
+gsm:
+ cd gsm && $(MAKE)
+
+.PHONY: ansi
+ansi:
+ cd ansi && $(MAKE)
+
+.PHONY: clean
+clean:
+ - rm -f $(BEAMS)
+ cd gsm && $(MAKE) $@
+ cd ansi && $(MAKE) $@
+
diff --git a/MAP/src/gsm/Makefile b/MAP/src/gsm/Makefile
new file mode 100644
index 0000000..4d4960c
--- /dev/null
+++ b/MAP/src/gsm/Makefile
@@ -0,0 +1,35 @@
+## $Id: Makefile,v 1.1 2005/02/13 09:45:06 vances Exp $
+
+EBIN = ../ebin/itu
+
+ERL = erl
+ERLC = erlc
+EMULATOR = beam
+ERLCFLAGS = -b $(EMULATOR) -o $(EBIN) -W -v +warn_unused_vars
+
+$(EBIN)/%.$(EMULATOR):%.erl
+ $(ERLC) $(ERLCFLAGS) $<
+
+BEAMS = $(EBIN)/map_dsm_fsm.$(EMULATOR) \
+ $(EBIN)/map_load_fsm.$(EMULATOR)
+
+.PHONY: default
+default: all
+
+.PHONY: all
+all: $(BEAMS) gsm ansi
+
+.PHONY:gsm
+gsm:
+ cd gsm && $(MAKE)
+
+.PHONY: ansi
+ansi:
+ cd ansi && $(MAKE)
+
+.PHONY: clean
+clean:
+ - rm -f $(BEAMS)
+ cd gsm && $(MAKE) $@
+ cd ansi && $(MAKE) $@
+
diff --git a/MAP/src/gsm/map_dsm_fsm.erl b/MAP/src/gsm/map_dsm_fsm.erl
new file mode 100644
index 0000000..f55ab52
--- /dev/null
+++ b/MAP/src/gsm/map_dsm_fsm.erl
@@ -0,0 +1,684 @@
+%%% $Id: map_dsm_fsm.erl,v 1.2 2005/02/13 09:45:06 vances Exp $
+%%%---------------------------------------------------------------------
+%%% @copyright 2005 Motivity Telecom Inc.
+%%% @author Vance Shipley <vances@motivity.ca>
+%%% @end
+%%%
+%%% Copyright 2005 Motivity Telecom Inc.
+%%%
+%%% All rights reserved. No part of this computer program(s) may be
+%%% used, reproduced, stored in any retrieval system, or transmitted,
+%%% in any form or by any means, electronic, mechanical, photocopying,
+%%% recording, or otherwise without prior written permission of
+%%% Motivity Telecom Inc.
+%%%---------------------------------------------------------------------
+%%%
+%%% @doc GSM MAP Dialogue State Machine (DSM).
+%%%
+%%% @reference 3GPP TS 29.02 Figure 15.6/3: Process Secure_MAP_DSM
+%%%
+-module(map_dsm_fsm).
+-copyright('Copyright (c) 2005 Motivity Telecom Inc.').
+-author('vances@motivity.ca').
+-behaviour(gen_fsm).
+
+%% behaviour modules must export this function
+-export([behaviour_info/1]).
+
+%% export the gen_fsm interface
+-export([start/3, start/4, start_link/3, start_link/4,
+ send_event/2, sync_send_event/2, sync_send_event/3,
+ send_all_state_event/2, sync_send_all_state_event/2,
+ sync_send_all_state_event/3, reply/2, send_event_after/2,
+ start_timer/2, cancel_timer/1]).
+
+%% export the gen_fsm state handler call backs
+-export([statename/2, statename/3]).
+
+%% export the gen_fsm common call backs
+-export([init/1, handle_event/3, handle_sync_event/4,
+ handle_info/3, terminate/3, code_change/4]).
+
+%% define what callbacks users must export
+%%
+%% @hidden
+behaviour_info(callbacks) ->
+ gen_fsm:behaviour_info(callbacks);
+behaviour_info(Other) ->
+ gen_fsm:behaviour_info(Other).
+
+%% include record definitions for TC service primitives
+-include("tcap.hrl").
+%% include record definitions for MAP service primitives
+-include("map.hrl").
+
+%% StateData record definition
+-record(state, {module, ext_statename, ext_statedata
+ applicaton_context, requests = [],
+ % @reference 3GPP TS 2902 Figure 15.6/3a: Process Secure_MAP_DSM (sheet 1) DCL
+ secure_transport_required, components_present, ac_name_unchanged,
+ encapsulated_ac_name_unchanged, ac_included, ac_supported,
+ invoke_id_active, last_component, operation_exists,
+ alternative_name_exists, user_info_included, op_code).
+
+
+%%----------------------------------------------------------------------
+%% The gen_fsm API functions
+%%----------------------------------------------------------------------
+
+%% @hidden
+start(Module, Args, Options) ->
+ gen_fsm:start(?MODULE, [Module, Args], Options).
+
+%% @hidden
+start(FsmRef, Module, Args, Options) ->
+ gen_fsm:start(FsmRef, ?MODULE, [Module, Args], Options).
+
+%% @hidden
+start_link(Module, Args, Options) ->
+ gen_fsm:start_link(?MODULE, [Module, Args], Options).
+
+%% @hidden
+start_link(FsmRef, Module, Args, Options) ->
+ gen_fsm:start_link(FsmRef, ?MODULE, [Module, Args], Options).
+
+%% @hidden
+send_event(FsmRef, Event) ->
+ gen_fsm:send_event(FsmRef, Event).
+
+%% @hidden
+sync_send_event(FsmRef, Event) ->
+ gen_fsm:sync_send_event(FsmRef, Event).
+
+%% @hidden
+sync_send_event(FsmRef, Event, Timeout) ->
+ gen_fsm:sync_send_event(FsmRef, Event, Timeout).
+
+%% @hidden
+send_all_state_event(FsmRef, Event) ->
+ gen_fsm:send_all_state_event(FsmRef, Event).
+
+%% @hidden
+sync_send_all_state_event(FsmRef, Event) ->
+ gen_fsm:sync_send_all_state_event(FsmRef, Event).
+
+%% @hidden
+sync_send_all_state_event(FsmRef, Event, Timeout) ->
+ gen_fsm:sync_send_all_state_event(FsmRef, Event, Timeout).
+
+%% @hidden
+reply(Caller, Reply) ->
+ gen_fsm:reply(Caller, Reply).
+
+%% @hidden
+send_event_after(Time, Event) ->
+ gen_fsm:send_event_after(Time, Event).
+
+%% @hidden
+start_timer(Time, Msg) ->
+ gen_fsm:start_timer(Time, Msg).
+
+%% @hidden
+cancel_timer(Ref) ->
+ gen_fsm:cancel_timer(Ref).
+
+
+%%----------------------------------------------------------------------
+%% The gen_fsm call backs
+%%----------------------------------------------------------------------
+
+%% @hidden
+init([Module, Args]) ->
+ process_flag(trap_exit, true),
+ % initialize user callback module
+ case Module:init(Args) of
+ {ok, ExtStateName, ExtStateData} ->
+ StateData = #state{module = Module, ext_statename = ExtStateName, ext_statedata = ExtStateData},
+ {ok, idle, StateData};
+ {ok, ExtStateName, ExtStateData, Timeout} ->
+ StateData = #state{module = Module, ext_statename = ExtStateName, ext_statedata = ExtStateData},
+ {ok, idle, State, Timeout};
+ {stop, Reason} ->
+ {stop, Reason};
+ ignore ->
+ ignore;
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the idle state.
+%%
+%% @hidden
+%%
+%
+% @reference 3GPP TS 29.002 15.2.1 Behaviour at the initiating side
+% @reference 3GPP TS 29.002 Figure 15.6/3a: Process_Secure_MAP_DSM (sheet 1)
+%
+idle({'MAP', 'OPEN', request, Open} = Event, StateData) ->
+ AC = Open#'MAP-OPEN'.application_context_name,
+ AC_PDU = Open#'MAP-OPEN'.specific_information),
+ % secure transport required? -- according to the AC and the identity of responder
+ case secure_transport_required(AC, AC_PDU) of
+ % true
+ true ->
+ % set AC: Secure_Transport
+ % build encapsulated AC PDU
+ NewStateData = build_encapsulated_ac_pdu(AC, AC_PDU)},
+ {next_state, wait_for_user_requests, NewStateData#state{secure_transport_required = true}};
+ % false
+ false ->
+ % store AC and user data
+ NewStateData = StateData#state{application_context = AC, user_data = AC_PDU},
+ {next_state, wait_for_user_requests, StateData#state{secure_transport_required = false}};
+ end;
+% @reference 3GPP TS 29.002 Figure 15.6/3j: Process_Secure_MAP_DSM (sheet 10)
+idle({'TC', 'BEGIN', indication, #'TR-BEGIN'{userInfo = undefined, componentsPresent = true}, StateData) ->
+ % AC included? (false)
+ % components present? (true)
+ {next_state, wait_for_init_data, StateData};
+idle({'TC', 'BEGIN', indication, Begin#'TR-BEGIN'{userInfo = AC}, StateData) ->
+ % AC included? (true)
+ % AC version = 1? (true)
+ % TODO: the rest of it!
+ {next_state, idle, StateData};
+idle({'TC', 'BEGIN', indication, Parms} = Event, StateData) ->
+ {next_state, wait_for_load_check_result1, StateData};
+% forward unrecognized events to user callback module
+idle(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, idle, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, idle, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the wait_for_user_requests state.
+%%
+%% @hidden
+%%
+% @reference 3GPP TS 29.002 15.2.1 Behaviour at the initiating side
+% @reference 3GPP TS 29.002 Figure 15.6/3b: Process_Secure_MAP_DSM (sheet 2)
+wait_for_user_requests({'MAP', 'DELIMITER', request, Parms} = Event, StateData) ->
+ % TC_BEGIN_req_VIA_TC1
+ {next_state, dialogue_initiated, StateData};
+wait_for_user_requests({'MAP', 'U-ABORT', request, Parms} = Event, StateData) ->
+ % Set_Abort_Reason: User_Specific
+ % Set_User_Info: MAP_User_Abort_PDU
+ % TC_U_ABORT_req_VIA_TC1
+ % secure transport required?
+ % true
+ % Note: To all active SRSSMs
+ % Terminated_VIA_Intern4
+ % false
+ % Note: To all active RSSMs
+ % Terminated_VIA_Intern2
+ {next_state, idle, StateData};
+% any MAP specific request primitive
+wait_for_user_requests({'MAP', MapSpecificRequest, request, Parms} = Event, StateData) ->
+ % secure transport required?
+ case StateData#state.secure_transport_required of
+ % true
+ % store request
+ % spawn Secure_Requesting_MAP_SSM
+ % Service_Invoked_VIA_Intern4
+ % false
+ % spawn Requesting_MAP_SSM
+ % Service_Invoked_VIA_Intern2
+ {next_state, wait_for_user_requests, StateData};
+% forward unrecognized events to user callback module
+wait_for_user_requests(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_user_requests, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_user_requests, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the dialogue_initiated state.
+%%
+%% @hidden
+%%
+% @reference 3GPP TS 29.002 Figure 15.6/3c: Process_Secure_MAP_DSM (sheet 3)
+dialogue_initiated({'TC', 'END', indication, End#'TC-END'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+dialogue_initiated({'TC', 'NOTICE', indication, Notice#'TC-NOTICE'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/3d: Process_Secure_MAP_DSM (sheet 4)
+dialogue_initiated({'TC', 'P-ABORT', indication, Abort#'TC-P-ABORT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/3e: Process_Secure_MAP_DSM (sheet 5)
+dialogue_initiated({'TC', 'U-ABORT', indication, Abort#'TC-U-ABORT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/3e: Process_Secure_MAP_DSM (sheet 5)
+% @reference 3GPP TS 29.002 Figure 15.6/3f: Process_Secure_MAP_DSM (sheet 6)
+% @reference 3GPP TS 29.002 Figure 15.6/3g: Process_Secure_MAP_DSM (sheet 7)
+dialogue_initiated({'TC', 'U-ABORT', indication, Abort#'TC-U-ABORT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_initiated, StateData};
+dialogue_initiated({'TC', 'L-CANCEL', indication, Cancel#'TC-L-CANCEL'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_initiated, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/3h: Process_Secure_MAP_DSM (sheet 8)
+dialogue_initiated({'MAP', 'U-ABORT', request, Abort#'MAP-U-ABORT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+dialogue_initiated({'MAP', 'CLOSE', request, Close#'MAP-CLOSE'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/3i: Process_Secure_MAP_DSM (sheet 9)
+dialogue_initiated({'TC', 'CONTINUE', indication, Continue#'TC-Continue'{}} = Event, StateData) ->
+ % Note: the first one
+ % TODO: the rest!
+ {next_state, dialogue_established, StateData};
+% forward unrecognized events to user callback module
+dialogue_initiated(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, dialogue_initiated, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, dialogue_initiated, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the wait_for_init_data state.
+%%
+%% @hidden
+%%
+% @reference 3GPP TS 29.002 Figure 15.6/3k: Process_Secure_MAP_DSM (sheet 11)
+wait_for_init_data({'TC', 'INVOKE', indication, Invoke#'TC-INVOKE'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, wait_for_load_check_result2, StateData};
+wait_for_init_data({'TC', 'L-REJECT', indication, Reject#'TC-L-REJECT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+% any other indication
+wait_for_init_data({'TC', _, indication, _} = Event, StateData) ->
+ % TC_U_ABORT_req_VIA_TC1
+ {next_state, idle, StateData};
+% forward unrecognized events to user callback
+wait_for_init_data(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_init_data, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_init_data, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the wait_for_load_check_result2 state.
+%%
+%% @hidden
+%%
+% @reference 3GPP TS 29.002 Figure 15.6/3k: Process_Secure_MAP_DSM (sheet 11)
+wait_for_load_check_result2('Load_OK', StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+wait_for_load_check_result2('Overload', StateData) ->
+ {next_state, idle, StateData};
+% any other indication
+wait_for_load_check_result2({'TC', _, indication, _} = Event, StateData) ->
+ % TC_U_ABORT_req_VIA_TC1
+ {next_state, idle, StateData};
+% forward unrecognized events to user callback module
+wait_for_load_check_result2(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_load_check_result2, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_load_check_result2, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the wait_for_load_check_result1 state.
+%%
+%% @hidden
+%%
+% @reference 3GPP TS 29.002 Figure 15.6/3l: Process_Secure_MAP_DSM (sheet 12)
+wait_for_load_check_result1('Load_OK', StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+wait_for_load_check_result1('Load_OK', StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_pending, StateData};
+wait_for_load_check_result1('Overload', StateData) ->
+ {next_state, idle, StateData};
+% any other indication
+wait_for_load_check_result1({'TC', _, indication, _} = Event, StateData) ->
+ % TC_U_ABORT_req_VIA_TC1
+ {next_state, idle, StateData};
+% forward unrecognized events to user callback module
+wait_for_load_check_result1(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_load_check_result1, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_load_check_result1, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the dialogue_pending state.
+%%
+%% @hidden
+%%
+% @reference 3GPP TS 29.002 Figure 15.6/3m: Process_Secure_MAP_DSM (sheet 13)
+dialogue_pending({'MAP', 'OPEN', response, Open#'MAP-OPEN'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_accepted, StateData};
+dialogue_pending({'MAP', 'OPEN', response, Open#'MAP-OPEN'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+dialogue_pending({'MAP', 'U-ABORT', request, Abort#'MAP-U-ABORT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+% forward unrecognized events to user callback module
+dialogue_pending(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, dialogue_pending, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, dialogue_pending, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the dialogue_accepted state.
+%%
+%% @hidden
+%%
+% @reference 3GPP TS 29.002 Figure 15.6/3n: Process_Secure_MAP_DSM (sheet 14)
+dialogue_accepted({'MAP', 'CLOSE', request, Close#'MAP-CLOSE'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+dialogue_accepted({'MAP', 'DELIMITER', request, Delimiter#'MAP-DELIMITER'{}} = Event, StateData) ->
+ % TC_CONTINUE_req_VIA_TC1
+ {next_state, dialogue_established, StateData};
+% any MAP specific request primitive
+dialogue_accepted({'MAP', Request, request, Parm} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_accepted, StateData};
+% any MAP specific response primitive
+dialogue_accepted({'MAP', Response, response, Parm} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_accepted, StateData};
+% forward unrecognized events to user callback module
+dialogue_accepted(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, dialogue_accepted, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, dialogue_accepted, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the dialogue_established state.
+%%
+%% @hidden
+%%
+% @reference 3GPP TS 29.002 Figure 15.6/3o: Process_Secure_MAP_DSM (sheet 15)
+dialogue_established({'TC', 'L-CANCEL', indication, Cancel#'TC-L-CANCEL'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_established, StateData};
+dialogue_established({'TC', 'NOTICE', indication, Notice#'TC-NOTICE'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_established, StateData};
+dialogue_established({'TC', 'CONTINUE', indication, Continue#'TC-CONTINUE'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_established, StateData};
+dialogue_established({'MAP', 'DELIMITER', request, Delimiter#'MAP-DELIMITER'{}} = Event, StateData) ->
+ % TC_CONTINUE_req_VIA_TC1
+ {next_state, dialogue_established, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/3p: Process_Secure_MAP_DSM (sheet 16)
+dialogue_established({'TC', 'END', indication, End#'TC-END'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+dialogue_established({'MAP', 'CLOSE', request, Close#'MAP-CLOSE'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_established, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/3q: Process_Secure_MAP_DSM (sheet 17)
+dialogue_established({'TC', 'U-ABORT', indication, Abort#'TC-U-ABORT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+dialogue_established({'TC', 'P-ABORT', indication, Abort#'TC-P-ABORT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+dialogue_established({'TC', 'U-ABORT', request, Abort#'TC-U-ABORT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, idle, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/3o: Process_Secure_MAP_DSM (sheet 15)
+% any MAP specific request primitive
+dialogue_established({'MAP', Request, request, Parm} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_established, StateData};
+% any MAP specific response primitive
+dialogue_established({'MAP', Response, response, Parm} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, dialogue_established, StateData};
+% forward unrecognized events to user callback module
+dialogue_established(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, dialogue_established, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, dialogue_established, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the wait_for_components state.
+%%
+%% @hidden
+%%
+% @reference 3GPP TS 29.002 Figure 15.6/4a: Procedure Process_Components (sheet 1)
+% @reference 3GPP TS 29.002 Figure 15.6/4b: Procedure Process_Components (sheet 2)
+wait_for_components({'TC', 'INVOKE', indication, Invoke#'TC-INVOKE'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, wait_for_components, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/4c: Procedure Process_Components (sheet 3)
+wait_for_components({'TC', 'RESULT-L', indication, Result#'TC-RESULT-L'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, wait_for_components, StateData};
+wait_for_components({'TC', 'RESULT-NL', indication, Result#'TC-RESULT-NL'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, wait_for_components, StateData};
+wait_for_components({'TC', 'U-ERROR', indication, Error#'TC-U-ERROR'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, wait_for_components, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/4d: Procedure Process_Components (sheet 4)
+wait_for_components({'TC', 'L-REJECT', indication, Reject#'TC-L-REJECT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, wait_for_components, StateData};
+wait_for_components({'TC', 'R-REJECT', indication, Reject#'TC-R-REJECT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, wait_for_components, StateData};
+% @reference 3GPP TS 29.002 Figure 15.6/4e: Procedure Process_Components (sheet 5)
+wait_for_components({'TC', 'U-REJECT', indication, Reject#'TC-U-REJECT'{}} = Event, StateData) ->
+ % TODO: the rest!
+ {next_state, wait_for_components, StateData};
+% forward unrecognized events to user callback module
+wait_for_components(Event, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = State#state.ext_statename,
+ case Module:StateName(Event, StateData#state.ext_statedata) of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_components, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, wait_for_components, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+%% @hidden
+% accept TC service primitives sent with ! or erlang:send/2,3
+ handle_info({'TC', _Primitive, indication, _Parms} = Info, StateName, StateData) ->
+ ?MODULE:StateName(Info, StateData);
+% forward unrecognized info to user callback module
+handle_info(Event, Statename, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = StateData#state.ext_statename,
+ ExtStateData = StateData#state.ext_statedata,
+ case Module:handle_info(Event, ExtStateName, StateData#state.ext_statedata of
+ {next_state, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, StateName, NewStateData};
+ {next_state, NextExtStateName, NewExtStateData, Timeout} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {next_state, StateName, NewStateData, Timeout};
+ {stop, Reason, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statedata = NewExtStateData},
+ {stop, Reason, NewStateData};
+ Other ->
+ Other
+ end.
+
+%% @hidden
+terminate(Reason, StateName, StateData) ->
+ Module = StateData#state.module,
+ ExtStateName = StateData#state.ext_statename,
+ ExtStateData = StateData#state.ext_statedata,
+ Module:terminate(Reason, ExtStateName, ExtStateData).
+
+%% @hidden
+code_change(OldVersion, StateName, StateData, Extra) ->
+ Module = StateData#state.module,
+ ExtStateName = StateData#state.ext_statename,
+ ExtStateData = StateData#state.ext_statedata,
+ case Module:code_change(OldVersion, ExtStateName, ExtStateData, Extra) of
+ {ok, NextExtStateName, NewExtStateData} ->
+ NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData},
+ {ok, StateName, NewStateData};
+ Other ->
+ Other
+ end.
+
+
+%%----------------------------------------------------------------------
+%% internal functions
+%%----------------------------------------------------------------------
+
+%% @spec(Parms, StateData) -> boolean()
+%%
+%% @doc Check whether secure transport is required.
+%%
+%% @reference 3GPP TS 29.002 15.2.1 Behaviour at the initiating side
+%% @reference 3GPP TS 33.200
+%%
+%% @hidden
+%%
+secure_transport_required(Parms, #state{application_context = 'secureTransportHandlingContext-v3'}) ->
+ true;
+secure_transport_required(Parms, #state{}) ->
+ false;
+
+%% @spec(StateData) -> NewStateData
+%%
+%% @doc Build an encapsulted AC PDU.
+%%
+%% @reference 3GPP TS 29.002 15.2.1 Behaviour at the initiating side
+%% @reference 3GPP TS 33.200
+%%
+%% @hidden
+%%
+build_encapsulated_ac_pdu(StateData) ->
+ % TODO: Build an encapsulted AC PDU.
+ StateData.
+
diff --git a/MAP/src/gsm/map_load_fsm.erl b/MAP/src/gsm/map_load_fsm.erl
new file mode 100644
index 0000000..99e56b2
--- /dev/null
+++ b/MAP/src/gsm/map_load_fsm.erl
@@ -0,0 +1,92 @@
+%%% $Id: map_load_fsm.erl,v 1.1 2005/02/13 09:45:06 vances Exp $
+%%%---------------------------------------------------------------------
+%%% @copyright 2005 Motivity Telecom Inc.
+%%% @author Vance Shipley <vances@motivity.ca>
+%%% @end
+%%%
+%%% Copyright 2005 Motivity Telecom Inc.
+%%%
+%%% All rights reserved. No part of this computer program(s) may be
+%%% used, reproduced, stored in any retrieval system, or transmitted,
+%%% in any form or by any means, electronic, mechanical, photocopying,
+%%% recording, or otherwise without prior written permission of
+%%% Motivity Telecom Inc.
+%%%---------------------------------------------------------------------
+%%%
+%%% @doc GSM MAP Load Control.
+%%%
+%%% @private
+%%%
+%%% @reference 3GPP TS 29.02 Figure 15.6/5: Process Load_Ctrl
+%%%
+-module(map_dsm_fsm).
+-copyright('Copyright (c) 2005 Motivity Telecom Inc.').
+-author('vances@motivity.ca').
+-behaviour(gen_fsm).
+
+%% export the gen_fsm state handler call backs
+-export([idle/2, congested/2]).
+
+%% export the gen_fsm common call backs
+-export([init/1, handle_event/3, handle_sync_event/4,
+ handle_info/3, terminate/3, code_change/4]).
+
+%% include record definitions for TC service primitives
+-include("tcap.hrl").
+%% include record definitions for MAP service primitives
+-include("map.hrl").
+
+%% StateData record definition
+-record(state, {}).
+
+%%----------------------------------------------------------------------
+%% The gen_fsm call backs
+%%----------------------------------------------------------------------
+
+%% @hidden
+init(_Args) ->
+ process_flag(trap_exit, true),
+ {ok, idle, StateData}.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the idle state.
+%%
+%% @hidden
+%%
+idle({DSM, 'Check_Load', _AC}, StateData) ->
+ gen_fsm:send_event(DSM, 'Load_OK'),
+ {next_state, idle, StateData}.
+
+%% @spec(Event, StateData) -> Result
+%%
+%% @doc State handler for the congested state.
+%%
+%% @hidden
+%%
+congested({DSM, 'Check_Load', AC}, StateData) ->
+ % AC = Secure_Transport?
+ % true
+ % compare encapsulated AC priority with load
+ % false
+ % compare AC priority with load
+ % dialogue acceptable?
+ % true
+ gen_fsm:send_event(DSM, 'Load_OK'),
+ % false
+ % gen_fsm:send_event(DSM, 'Overload'),
+ {next_state, congested, StateData}.
+
+%% @hidden
+terminate(_Reason, _StateName, _StateData) ->
+ ok.
+
+%% @hidden
+code_change(_OldVersion, StateName, StateData, _Extra) ->
+ {ok, StateName, StateData}.
+
+
+%%----------------------------------------------------------------------
+%% internal functions
+%%----------------------------------------------------------------------
+
diff --git a/MAP/src/map.erl b/MAP/src/map.erl
new file mode 100644
index 0000000..52b004b
--- /dev/null
+++ b/MAP/src/map.erl
@@ -0,0 +1,116 @@
+%%% $Id: map.erl,v 1.1 2005/02/13 00:42:12 vances Exp $
+%%%---------------------------------------------------------------------
+%%% @copyright 2005 Motivity Telecom Inc.
+%%% @author Vance Shipley <vances@motivity.ca>
+%%% @end
+%%%
+%%% Copyright 2005 Motivity Telecom Inc.
+%%%
+%%% All rights reserved. No part of this computer program(s) may be
+%%% used, reproduced, stored in any retrieval system, or transmitted,
+%%% in any form or by any means, electronic, mechanical, photocopying,
+%%% recording, or otherwise without prior written permission of
+%%% Motivity Telecom Inc.
+%%%---------------------------------------------------------------------
+%%%
+%%% @doc Mobile Application Part
+%%% <p>This module implements the user's API to the MAP protocol
+%%% stack application.</p>
+%%%
+%%% @reference <a href="index.html">MAP User's Guide</a>
+%%%
+
+-module(map).
+-copyright('Copyright (c) 2005 Motivity Telecom Inc.').
+-author('vances@motivity.ca').
+-vsn('$Revision: 1.1 $').
+
+%% our published API functions
+-export([start/0, stop/0]).
+-export([open/3, close/1]).
+-export([start_dialogue/3]).
+
+
+%% @type map_options(). MAP layer options
+%% <p>A list of one or more of the following tuples.</p>
+%% <dl>
+%% <dt><tt>{variant, Variant}</tt></dt><dd><tt>gsm | ansi</tt></dd>
+%% </dl>
+%% @end
+
+%%----------------------------------------------------------------------
+%% The API functions
+%%----------------------------------------------------------------------
+
+%% @spec () -> Result
+%% Result = ok | {error, Reason}
+%% Reason = term()
+%%
+%% @equiv application:start(map)
+%%
+start() ->
+ application:start(map).
+
+%% @spec () -> Result
+%% Result = ok | {error, Reason}
+%% Reason = term()
+%%
+%% @equiv application:stop(map)
+%%
+stop() ->
+ application:stop(map).
+
+%% @spec (Module::atom(), Args::term(), Options::term()) -> PM
+%% Options = [map_options() | GenFsmOptions]
+%% GenFsmOptions = list()
+%% PM = pid()
+%%
+%% @doc Start a new MAP layer service access point.
+%% <p>A new MAP protocol machine (PM) is created. The PM is
+%% a collection of service state machines (SSM), one per MAP specific
+%% service invoked, coordinated by a single dialogue state machine
+%% (DSM). There are two types of SSM; requesting service state
+%% machines (RSM) and performing service state machines (PSM).</p>
+%%
+%% <p><tt>Module</tt> is the name of a
+%% <a href="map_dsm_fsm.html"><tt>map_dsm_fsm</tt></a>
+%% behaviour callback module which will provide the TCAP layer
+%% adaptation.</p>
+%%
+%% <p><tt>Args</tt> has meaning only to the callback module but
+%% presumably would identify the specific TCAP service access
+%% point (i.e. subsystem number) for this MAP layer.</p>
+%%
+%% <p><tt>Options</tt> may include
+%% <a href="#map_options">map_options()</a> and <tt>gen_fsm</tt>
+%% options passed to the callback module.</p>
+%%
+%% <p>The callback module will be started with:<br/>
+%% <tt>gen_fsm:start_link(Module, Args, GenFsmOptions)</tt>
+%% </p>
+%%
+%% <p>Returns the pid of the DSM.</p>
+%%
+%% @see gen_server:start_link/3
+%%
+open(Module, Args, Options) ->
+ {ok, SupRef} = application:get_env(map, supref),
+ case supervisor:start_child(SupRef, [Module, Args, Options]) of
+ {ok, Sup} ->
+ Children = supervisor:which_children(Sup),
+ {value, {dsm, DSM, _, _}} = lists:keysearch(dsm, 1, Children),
+ DSM;
+ {error, Reason} ->
+ exit(Reason)
+ end.
+
+%% @spec (PM::pid()) -> ok
+%%
+%% @doc Close a MAP service access point.
+%%
+%% <p><tt>PM</tt> is the pid of a DSM returned in a previous call to
+%% <a href="#open-3"><tt>open/3</tt></a>.</p>
+%%
+close(PM) when is_pid(PM) ->
+ gen_server:call(PM, close).
+
diff --git a/MAP/src/map_app.erl b/MAP/src/map_app.erl
new file mode 100644
index 0000000..20fb1ec
--- /dev/null
+++ b/MAP/src/map_app.erl
@@ -0,0 +1,80 @@
+%%% $Id: map_app.erl,v 1.1 2005/02/13 00:42:12 vances Exp $
+%%%---------------------------------------------------------------------
+%%% @copyright 2005 Motivity Telecom Inc.
+%%% @author Vance Shipley <vances@motivity.ca>
+%%% @end
+%%%
+%%% Copyright 2005 Motivity Telecom Inc.
+%%%
+%%% All rights reserved. No part of this computer program(s) may be
+%%% used, reproduced, stored in any retrieval system, or transmitted,
+%%% in any form or by any means, electronic, mechanical, photocopying,
+%%% recording, or otherwise without prior written permission of
+%%% Motivity Telecom Inc.
+%%%---------------------------------------------------------------------
+%%%
+%%% @doc MAP application callback module.
+%%%
+%%% @reference <a href="index.html">MAP User's Guide</a>
+%%%
+%%% @private
+
+-module(map_app).
+-copyright('Copyright (c) 2005 Motivity Telecom Inc.').
+-author('vances@motivity.ca').
+-vsn('$Revision: 1.1 $').
+
+%% export application behaviour callbacks
+-export([start/2, start_phase/3, prep_stop/1, stop/1, config_change/3]).
+
+
+%% @spec(StartType, StartArgs::term()) -> {ok, Pid} | {ok, Pid, State} | {error, Reason}
+%% StartType = normal | {takeover,Node} | {failover,Node}
+%% Node = node()
+%% Pid = pid()
+%% State = term()
+%% Reason = term()
+%%
+%% @equiv //kernel/application:start/3
+%%
+start(normal, StartArgs) ->
+ {ok, SupRef} = application:get_env(supref),
+ supervisor:start_link(SupRef, map_sup, StartArgs).
+
+%% @spec(Phase::atom(), StartType, PhaseArgs::term()) -> ok | {error, Reason}
+%% StartType = normal | {takeover,Node} | {failover,Node}
+%% Node = node()
+%% Reason = term()
+%%
+%% @equiv //kernel/application:start_phase/3
+%%
+start_phase(_Phase, _StartType, _PhaseArgs) ->
+ ok.
+
+%% @spec(State::term()) -> NewState
+%% NewState = term()
+%%
+%% @equiv //kernel/application:prep_stop/1
+%%
+prep_stop(State) ->
+ State.
+
+%% @spec(State) -> ok
+%%
+%% @equiv //kernel/application:stop/1
+%%
+stop(_State) ->
+ ok.
+
+%% @spec(Changed, New, Removed) ->
+%% Changed = [{Par,Val}]
+%% New = [{Par,Val}]
+%% Removed = [Par]
+%% Par = atom()
+%% Val = term()
+%%
+%% @equiv //kernel/application:config_change/3
+%%
+config_change(_Changed, _New, _Removed) ->
+ ok.
+
diff --git a/MAP/src/map_pm_sup.erl b/MAP/src/map_pm_sup.erl
new file mode 100644
index 0000000..1ecf3b1
--- /dev/null
+++ b/MAP/src/map_pm_sup.erl
@@ -0,0 +1,44 @@
+%%% $Id: map_pm_sup.erl,v 1.1 2005/02/13 00:42:12 vances Exp $
+%%%---------------------------------------------------------------------
+%%% @copyright 2005 Motivity Telecom Inc.
+%%% @author Vance Shipley <vances@motivity.ca>
+%%% @end
+%%%
+%%% Copyright 2005 Motivity Telecom Inc.
+%%%
+%%% All rights reserved. No part of this computer program(s) may be
+%%% used, reproduced, stored in any retrieval system, or transmitted,
+%%% in any form or by any means, electronic, mechanical, photocopying,
+%%% recording, or otherwise without prior written permission of
+%%% Motivity Telecom Inc.
+%%%---------------------------------------------------------------------
+%%%
+%%% @doc MAP service protocol machine supervisor.
+%%%
+%%% @reference <a href="index.html">MAP User's Guide</a>
+%%%
+%%% @private
+
+-module(tcap_pm_sup).
+-copyright('Copyright (c) 2005 Motivity Telecom Inc.').
+-author('vances@motivity.ca').
+-vsn('$Revision: 1.1 $').
+
+-behaviour(supervisor).
+
+-export([init/1]).
+
+
+%% @spec(StartArgs::term()) -> Result = {ok,{{RestartStrategy,MaxR,MaxT},[ChildSpec]}} | ignore
+%% RestartStrategy = one_for_all | one_for_one | rest_for_one | simple_one_for_one
+%% MaxR = MaxT = int()>=0
+%% ChildSpec = child_spec()
+%%
+%% @see supervisor:init/1
+%%
+init([Module, Args, Options]) when is_atom(Module), is_list(Args), is_list(Options) ->
+ StartArgs = [Module, [self()] ++ Args, Options],
+ StartFunc = {gen_fsm, start_link, StartArgs},
+ ChildSpec = {dsm, StartFunc, permanent, 4000, worker, [Module, map_dsm_fsm]},
+ {ok,{{one_for_one, 10, 60}, [ChildSpec]}}.
+
diff --git a/MAP/src/map_sup.erl b/MAP/src/map_sup.erl
new file mode 100644
index 0000000..6728ac7
--- /dev/null
+++ b/MAP/src/map_sup.erl
@@ -0,0 +1,45 @@
+%%% $Id: map_sup.erl,v 1.1 2005/02/13 00:42:12 vances Exp $
+%%%---------------------------------------------------------------------
+%%% @copyright 2005 Motivity Telecom Inc.
+%%% @author Vance Shipley <vances@motivity.ca>
+%%% @end
+%%%
+%%% Copyright 2005 Motivity Telecom Inc.
+%%%
+%%% All rights reserved. No part of this computer program(s) may be
+%%% used, reproduced, stored in any retrieval system, or transmitted,
+%%% in any form or by any means, electronic, mechanical, photocopying,
+%%% recording, or otherwise without prior written permission of
+%%% Motivity Telecom Inc.
+%%%---------------------------------------------------------------------
+%%%
+%%% @doc MAP application top level supervisor.
+%%%
+%%% @reference <a href="index.html">MAP User's Guide</a>
+%%%
+%%% @private
+
+
+-module(map_sup).
+-copyright('Copyright (c) 2005 Motivity Telecom Inc.').
+-author('vances@motivity.ca').
+-vsn('$Revision: 1.1 $').
+
+-behaviour(supervisor).
+
+%% call backs needed for supervisor behaviour
+-export([init/1]).
+
+%% @spec(StartArgs::term()) -> Result = {ok,{{RestartStrategy,MaxR,MaxT},[ChildSpec]}} | ignore
+%% RestartStrategy = one_for_all | one_for_one | rest_for_one | simple_one_for_one
+%% MaxR = MaxT = int()>=0
+%% ChildSpec = child_spec()
+%%
+%% @equiv //stdlib/supervisor:init/1
+%%
+init(_StartArgs) ->
+ StartMod = map_pm_sup,
+ StartFunc = {supervisor, start_link, [StartMod]},
+ ChildSpec = {pm_sup, StartFunc, permanent, infinity, supervisor, [StartMod]},
+ {ok,{{simple_one_for_one, 10, 60}, ChildSpec}}.
+