fiaif-1.23.1/0000750000175000017500000000000012077203566012171 5ustar calvincalvinfiaif-1.23.1/man/0000750000175000017500000000000012076546044012744 5ustar calvincalvinfiaif-1.23.1/man/zone.conf.50000640000175000017500000002746712076545542014754 0ustar calvincalvin.\" Process this file with .\" groff -man -Tascii foo.1 .\" .TH ZONE.CONF 5 "Feb 2006" Linux "File Formats" .SH NAME zone.conf \- fiaif zone configuration files .SH DESCRIPTION .B fiaif.conf is the file that determines how zones should be set up in the firewall. A zone describes how traffic from other zones are allowed into a zone, and what packets are allowed from the zone itself. Zones are based upon the interface and the network the interface is connected to. It is possible to have multiple zones per interface, if and only if the interface is not declared public. See the PUBLIC variable for more information. The general syntax of a configuration file is the same as for a .BR bash (1) script, in which only variables should be present. The variables can be on three forms: .BR VARIABLE .RS This is a simple variable. It can only be assigned a single value. .RE .BR VARIABLE_FOO .RS The denotes a variable sequence. The .BR FOO can be replaced by any keyword, allowing multiple values to be specified. .RE .BR VARIABLE[N] .RS A variable array. Any number of values can be specified by increasing N for each value. .RE .SH VARIABLES .SS NAME Syntax: .IR Specify the name of the zone. This must be the same as specified in /etc/fiaif/fiaif.conf. .SS DEV Syntax: .IR Specifies the interface name in which this zone is connected. .SS DYNAMIC Syntax: .IR 0|1 Specifies whether the IP of the interface is dynamic (e.g., obtained via DHCP or unknown when FIAIF is started) or not. Disabling this provides better security, but this is not always an option given from ISPs. .SS GLOBAL Syntax: .IR 0|1 Is set to one, any packets originating from IANA reserved networks are discarded (except those specified in the NET and NET_EXTRA variables). This should be set on your internet connection. If this is set to true, the interface cannot have multible zone definitions. .SS IP Syntax: .IR The IP of the interface. This is only necessary to specify if .BR DYNAMIC=0. .SS MASK Syntax: .IR The network mask of the network connected to this interface. This is only necessary to specify if .BR DYNAMIC=0. This information can be found be using the ifconfig command. .SS NET Syntax: .IR The network mask for the interface. This is only necessary to specify if .BR DYNAMIC=0. This information can be found be using the ifconfig command. .SS BCAST Syntax: .IR The broadcast address of the interface. This is only necessary to specify if .BR DYNAMIC=0. This information can be found be using the ifconfig command. .SS IP_EXTRA Syntax: .IR [IP]* Contains a list of additional IP addresses that the interface can receive. Extra IP's for an interface is usually created by using interface aliases (e.g. eth0:0). .SS NET_EXTRA Syntax: .IR [IP/MASK]* A list specifying any extra networks besides the NET variables that are connected to this zone (interface). The extra nets would normally be connected though other routers. .SS DHCP_SERVER Syntax: .IR <0|1> Set to '1' if the server should accept DHCP queries. Only one zone per interface should have this enabled, since DHCP packets do not hold any valid destination address. .SS INPUT[N] Syntax: .IR .IR .IR [port<:port>[<,port>[:port]]*] .IR ip/[mask]=>ip/[mask] The INPUT variable describes how packets are handled through the input chain. Packets on the INPUT chain are packets coming from the zone to the firewall itself. The first argument is how a matched packet is treated. Protocol and ports and ip/mask are used to match packets (destination port, and source=>destination ip address). If none are specified, the rule matches all packets. The port argument must only be specified if the protocol is .B udp, tcp or .B icmp When using these rules, a rule of thumb is only to accept specific packets, and to drop any not matched. The following line 1 accepts HTTP-requests over the TCP protocol: INPUT[0]="ACCEPT tcp 80 0.0.0.0/0=>0.0.0.0/0" INPUT[1]="ACCEPT udp 1024:65535 0.0.0.0/0=>0.0.0.0/0" INPUT[2]="DROP ALL 0.0.0.0=>0.0.0.0" .SS OUTPUT[N] Syntax: .IR .IR .IR [port<:port>[<,port>[:port]]*] .IR ip/[mask]=>ip/[mask] Like the INPUT[N] rule. Packets on the OUTPUT chain are packets originating from the firewall itself going out into the zone itself. ports are destination ports, and ip/mask is the source and destination ip/mask (if '=>' is not given, the ip is assumed to be the destination ip). The port argument must only be specified if the protocol is .B udp, tcp or .B icmp The following example drops all telnet packets over the tcp protocol, drops any udp packets, and allows any other send from the firewall itself. OUTPUT[0]="DROP tcp 21 0.0.0.0/0=>0.0.0.0/0" OUTPUT[1]="DROP udp ALL 0.0.0.0/0=>0.0.0.0/0" OUTPUT[2]="ACCEPT ALL 0.0.0.0/0=>0.0.0.0/0" .SS FORWARD[N] Syntax: .IR .IR .IR [<,port>[:port]]*]> .IR ip/[mask]> Use to specify how packets arriving from other zones are to be treated. If protocol or ports and ip/mask is not specified, then ALL is assumed. The port specifies the destination port, and ip specifies the source and destination ip. The port argument must only be specified if the protocol is .B udp, tcp or .B icmp An example: A demilitarized zone may only accept HTTP requests from the internet (zone EXT). This would be specified by: FORWARD[0]="EXT ACCEPT tcp 80 0.0.0.0/0=>0.0.0.0/0" FORWARD[1]="ALL DROP ALL 0.0.0.0/0=>0.0.0.0/0" .SS MARK[N] Syntax: .IR .IR .IR [<,port>[:port]]*]> .IR ip/[mask]> Use the MARK rules to set a MARK on packets passing through the firewall. This can then be used to determine how a packet is routed. The port argument must only be specified if the protocol is .B udp, tcp or .B icmp If the source zone is ALL then all packets going into the zone are marked. If the source zone equals the zone-name of which the rule is in then only packets originating from the firewall are marked. Otherwise, only packets routed through the firewall are marked. Example: Mark all tcp packets going into the zone with '1' and all udp packets with mark '2'. MARK[0]="ALL 1 tcp ALL 0.0.0.0/0=>0.0.0.0/0" MARK[1]="ALL 2 udp ALL 0.0.0.0/0=>0.0.0.0/0" .SS REPLY_FOO Syntax: .IR .IR .IR [:port]]*]> .IR ip[/mask]> Make special replies to packets. The type can be one of the following: icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, icmp-proto-unreachable, icmp-net-prohibited, icmp-host-prohibited or tcp-reset (Only valid for the TCP protocol). The .B zone argument specifies the source of the packet. This can be used, for example, to disallow authentication requests, but instead of dropping the packets, close the connection by sending a tcp-reset. REPLY_AUTH="EXT tcp-reset tcp auth 0.0.0.0/0=>0.0.0.0/0" .SS MAC_DROP Syntax: .IR [MAC_ADDRESS]* | [file] Disallow any communication with specified MAC-addresses in this zone. Inserted on PREROUTING chain. If the value is a file, then each line in the file is treated as an MAC address. Anything after a '#' is regarded as a comment and is ignored. .SS IP_DROP Syntax: .IR [IP/MASK]* | [file] Disallow any communication with specified IP addresses in this zone. If the value is a file, then each line in the file is treated as an ip address. Anything after a '#' is regarded as a comment and is ignored. .SS ECN_REMOVE Syntax: .IR [IP/MASK]* | [file] Remove the ECN bit from all packets destined to the specified servers (located in the zone). If the value is a file, then each line in the file is treated as an ip address. Anything after a '#' is regarded as a comment and is ignored. .SS REDIRECT_FOO Syntax: .IR .IR ip[/mask]> .IR <[ipaddr[,ipaddr]*]> .IR [port] Alter the destination of packets. The rule applies only for packets originating from this zone. Packets can be redirected to the firewall itself (127.0.0.1), to other zones or back into the zone itself (requires DYNAMIC==0 and GLOBAL==0). If packets are redirected to other zones, then remember to add a FORWARD rule in the configuration file for the destination zone, allowing the packets to pass through. Please note, that redirecting packets back into the zone may cause serious network degradation. Example: REDIRECT_PROXY="tcp 80 0.0.0.0/0=>0.0.0.0/0 127.0.0.1 3128" All packets coming from the zone itself to port 80 are redirected to the firewall itself port 3128, and this line can be used to setup a transparent proxy. .SS WATCH_IP Syntax: .IR [IP]* | [file] Log every packet coming from or going to the specific IP addresses. If the value is a file, then each line in the file is treated as an IP address. Anything after a '#' is regarded as a comment and is ignored. .SS SNAT[N] Syntax: .IR .IR [:port]]*]> .IR ip[/mask]> Change the source address of a packet coming from this zone. If a ZONE is specified, then all packets are masqueraded to all ip addresses for the specified zone, specified by the .B IP or .B IP_EXTRA directive, in a round robin fashion. The last options specifies the protocol, port and original source and destination of the packets to be SNAT'ed. To use MASQUADING, where EXT is the zone for the internet use: SNAT[0]="EXT ALL 0.0.0.0/0=>0.0.0.0/0" .SS LIMIT_FOO Syntax: .IR .IR .IR .IR .IR [<,port>[:port]]*]> .IR ip[/mask]> Limit number of packets. A .IR LIMIT rule specifies how many packets are acceptable within the specified period of time. If more packets arrive, .IR policy specifies how to handle these. .IR zone: Is the zone from which the packet originates. This can be this zone itself. .IR limit: Maximum average matching rate: specified as a number, with an optional \'/second\', \'/minute\', \'/hour\', or \'/day\' suffix. .IR burst: Maximum initial number of packets to match: this number gets incremented by one every time the limit specified above is not reached, up to this number. .IR protocol: The protocol: TCP|UDP|ICMP|ALL. This parameter is optional. The port argument must only be specified if the protocol is .B udp, tcp or .B icmp .IR ports: If protocol is tcp|udp: A list of ports or a port range. icmp: A list of icmp types seperated by commas. This parameter is optional pending on the specified protocol. .IR ip[/mask]=>ip[/mask] Specifies source address and optional destination address. This can only be specified if protocol is also specified. For example to limit number of echo requests (ping) from zone EXT, use: LIMIT_PING="EXT DROP 1/second 3 ICMP echo-request 0.0.0.0/0=>0.0.0.0/0" .SS IPSET_FOO Syntax: .IR >[ ip]* | .IR Sepcify a set of ip's to be used in zone rules. Ip's specified can be either numbers, hostnames, networks or names of other ip sets (recursively). The name of the set will be the name occuring after IPSET_. Ip sets is bound to a zone, and cannot be used across zones. Currently, ip-sets can only be used in INPUT, OUTPUT, FORWARD, SNAT, REDIRECT and MARK rules. If the ipset points to a file, then the file is read (relative to .B CONF_PATH ). The name of IP sets must not conflict with aliases defined in the file pointed to by the .B ALIASES directive in fiaif global configuration file. An example of the use of IP sets: IPSET_NAMESERVERS="1.2.3.4 1.2.3.5" INPUT[N]="ACCEPT tcp domain NAMESERVERS=>0.0.0.0/0" Which is equivalent to: INPUT[N]="ACCEPT tcp domain 1.2.3.4=>0.0.0.0/0" INPUT[N+1]="ACCEPT tcp domain 1.2.3.5=>0.0.0.0/0" .SH AUTHOR Anders Fugmann .SH "SEE ALSO" .BR fiaif (8), .BR fiaif.conf (8), .BR iptables (8), .BR ifconfig (8) fiaif-1.23.1/man/fiaif-scan.80000640000175000017500000000304411571724545015042 0ustar calvincalvin.\" Process this file with .\" groff -man -Tascii foo.1 .\" .TH FIAIF-SCAN 8 "Feb 2003" Linux "Administration and Privileged Commands" .SH NAME fiaif-scan - print syslog entries in human readable form .SH SYNOPSIS .B fiaif-scan [ .B -n ] [ .B -m ] .SH DESCRIPTION .B fiaif-scan reads lines from STDIN and prints to STDOUT, in human readable form, any packets found (standard syslog format is assumed). Each log message is parsed based on the configuration files at the time fiaf-scan is run. The idea is to enable the user to quickly identify which zone rule is causing the packet to be logged, and how to change this, if necessary. .SH OPTIONS .TP .B -n Don\'t do a reverse lookup of IP addresses or ports; display them as numbers. This reduces the number of host lookups and speeds up scanning. .TP .B -m print the MAC address on each line. .SH EXAMPLE .IP fiaf-scan\ \-n\ \ .SH BUGS The program has been tested only with messages from the standard syslog. It may work on lines from ulogd, but this has not been tested. Bash may not be the fastest parser in the world. Expect this software to be slow. (40 lines per sec on a K6-II/300Mhz without name lookups). Please report other bugs to . .SH "SEE ALSO" .BR fiaif.conf (5), .BR zone.conf (5), .BR iptables (8), .BR syslog (3) fiaif-1.23.1/man/fiaif-update.80000640000175000017500000000244511571724545015404 0ustar calvincalvin.\" Process this file with .\" groff -man -Tascii foo.1 .\" .TH FIAIF-UPDATE 8 "Feb 2003" Linux "Administration and Privileged Commands" .SH NAME fiaif-update - tests for new version and updated reserved_networks file. .SH SYNOPSIS .B fiaif-update [--silent] [--help] .SH DESCRIPTION Tests for new version and updated reserved_networks file. .TP .B --silent If this flag is present, then no textual output will be given. .TP .B check Test if a new version of FIAIF is available. .TP .B update Retrieves the files .B reserved_networks from the FIAIF website, and compared the version with the currently installed version, as pointed to by .B fiaif.conf. If the retrieved version is newer, the old version is silently replaced. .TP .B help Prints the synopsis. .SH EXIT CODE If updating the exit code will be non-zero if no update was performed, else the exit code will be zero. .SH FILES .I /etc/fiaif/fiaif.conf .RS The configuration file for FIAIF .RE .I /etc/fiaif/private_networks .RS A list of private networks as specified by RFC1918 .RE .I /etc/fiaif/reserved_networks .RS A list of reserved networks as specified by IANA. .RE .SH REPORTING BUGS Report bugs to . .SH AUTHOR Anders Fugmann .SH "SEE ALSO" .BR fiaif (8), .BR fiaif.conf (5) fiaif-1.23.1/man/fiaif-getdev.80000640000175000017500000000137611571724545015402 0ustar calvincalvin.\" Process this file with .\" groff -man -Tascii foo.1 .\" .TH FIAIF-GETDEV 8 "Apr 2003" Linux "Administration and Privileged Commands" .SH NAME fiaif-getdev - retreive interface data and print information to standard out. .SH SYNOPSIS .B fiaif-getdev .SH DESCRIPTION Prints out variables for the specified to be inserted into a zone configuration file. All interface aliases (e.g eth1:1) are also read and data appended to .B IP_EXTRA and .B NET_EXTRA. If this is undesirable, leave the two parameters empty when editing the zone configuration file. .SH EXIT CODE 0 on success, 1 othervice. .SH REPORTING BUGS Report bugs to . .SH AUTHOR Anders Fugmann .SH "SEE ALSO" .BR fiaif (8), .BR zone.conf (5) fiaif-1.23.1/man/fiaif.80000640000175000017500000000763412076546044014126 0ustar calvincalvin.\" Process this file with .\" groff -man -Tascii foo.1 .\" .TH FIAIF 8 "Dec 2003" Linux "Administration and Privileged Commands" .SH NAME fiaif \- FIAIF is an Intelligent Firewall. .SH SYNOPSIS .B fiaif .SH DESCRIPTION .B Fiaif deploys a packet-filtering firewall by reading configuration files and setting up IP packet filtering rules using .B iptables. The firewall is "zone" based, meaning that each network interface is associated with a defined piece of the "IP universe" on the other side of that interface from the host. A zone is defined in a text file (the zone configuration file) listing rules for the handling of IP traffic into, out of, and through the associated interface. The rules spell out which connections to accept, which to reject, which to ignore, and which to forward through the firewall. It is also possible to setup source and destination NAT for altering the source and/or destination addresses of packets as they pass through. All non-accepted packets are logged to the system log. It should be noted that any packet related to an already accepted connection is allowed though the firewall. .SH OPTIONS .TP .B start This will save the current state of netfilter, and apply the new firewall as described in the configuration files. .TP .B stop Restores the state saved when FIAIF was started. .TP .B restart Same as stop,start .TP .B force-reload This option is the same as start, although it does not use any previously saved rules, and can be used even if fiaif has already been started. .TP .B panic Shut off all IP traffic - don't accept any packets from anywhere for any reason. This can be used, for example, if uninvited guests are discovered on the system to quickly close the firewall and start analyzing log files. .TP .B status Lists all rules in the firewall. .TP .B test Instead of deploying the firewall, all rules are written to the file specified in the "TEST_FILE" parameter in the global configuration file. This command also runs a sanity check on the networking configuration. Any problems or warnings arising from this check are printed to STDERR. Refer to http://www.linuxhq.com/kernel/v2.4/doc/networking/ip-sysctl.txt.html for details on settings tested. When deployed, FIAIF can automatically fix the warnings and/or errors displayed. Please see .B fiaif.conf(8) for more information. .SH FILES .I /etc/fiaif/fiaif.conf .RS The global configuration file. See .BR fiaif.conf (8) for further details. .RE .I /var/lib/fiaif/fiaif .RS file containing rules generated by fiaif. .RE .I /var/lib/fiaif/iptables .RS previous netfilter state .RE .I /var/lib/fiaif/sysctl .RS previous state of /proc before fiaif was started. .RE .I /var/log/messages .RS All illegal packets are logged to this file though .BR syslog (3) .RE .SH DIAGNOSTICS Errors are logged to STDOUT. If any errors is printed, then please recheck your configuration files. .SH ENVIRONMENT If the .B NO_CLEANUP variable is set to a non-empty value, then rules are not cleaned up after FIAIF is started. This will speed up FIAIF startup time, but at the cost of having lots of rules and performance may (on small systems with many zones) be affected. On a three zone system FIAIF generated in total 310 rules. After cleaning up the rules, the number of rules was down to 241. A reduction of 22%. The .B FIAIF_CONF can be used to specify an anternative global configurationfile, rather than using the default /etc/fiaif/fiaif.conf. This can be used to ease switching between two different firewall configurations. .SH BUGS The .B test command line option is no guarantee that the firewall will perform as expected, only that the syntax is correct. Only limited semantic checks of rulesis performed. .SH REPORTING BUGS Report bugs to . .SH AUTHOR Anders Fugmann .SH "SEE ALSO" .BR fiaif.conf (8), .BR zone.conf (8), .BR iptables (8), .BR syslog (3) fiaif-1.23.1/man/fiaif.conf.50000640000175000017500000002354312076545567015055 0ustar calvincalvin.\" Process this file with .\" groff -man -Tascii foo.1 .\" .TH FIAIF.CONF 5 "Aug 2002" Linux "File Formats" .SH NAME .B fiaif.conf \- fiaif global configuration file .SH DESCRIPTION .B fiaif.conf is the file that declares which zones should be set up in the firewall. A "zone" is a piece of the "IP universe" existing on the other side of a particular interface. A zone is defined in a file listing rules for the handling of IP traffic into, out of, and through the associated interface. The zonefile is described in .BR zone.conf (8) . General configuration parameters are also declared in this file. .B fiaif.conf and the zonefiles are .BR bash (1) scripts in which the values of variables used in the fiaif program are assigned. Although they are shell scripts, they should contain nothing but assignment statements. Parameters in the configuration files are of three forms: .B SIMPLE .RS These parameters take only a single value. The value may be a number or a string. .RE .B GROUP .RS These parameters are treated as a group, and all members of the group are processed in the same way. There are two parts to these parameters\' names. The first part is the name of the group, and the second part is a mnemonic. .RE .B ARRAY .RS Parameter values are declared in an array. Any number of values can be specified by incrementing the array index for each value. .RE .SH DEFINITIONS .PD 0 bashcommand -> [a shell command line] .P dirpath -> [path to a directory (no trailing \'/\')] .P fname -> [filename with no path] .P modulename -> [the name of an iptables module] .P portspec -> [a port number | a service in /etc/services] .P posint -> [an integer >= 0] .P TOStype -> [a Type-of-service name | a Type-of-service number] .P zonename -> [the zone identifier from a zone file] .PD 1 .P .PD 0 byteint -> 0..255 .P cidrmask -> 0..32 .P nullstring -> [nothing] .P string -> [char]| .PD 1 .P .PD 0 boolean -> 0|1 .P burstspec -> |/ .P IP4addr -> ... .P iptablesprotocol -> [a protocol number | a protocol name from /etc/protocols] .P modulelist -> | .P netaddr -> / .P netlist -> | .P pathlist -> |: .P plist -> | .P tablelist -> mangle filter nat .P timespec -> second|minute|hour|day .P TOSportlist -> | any | .P TOSportlistOpt -> | , .P ICMPtype -> .P zonelist -> | .PD 1 .RE .SH CONSTANT PARAMETERS The values of these parameters should (almost certainly) not be altered. .SS TABLES Syntax: .B TABLES= .I "" A list of the packet processing tables in the Linux kernel. As of version 2.4.18, only three tables are available: .BR mangle , .BR filter , and .BR nat . .SS RESERVED_NETWORKS Syntax: .B RESERVED_NETWORKS= .I ""|"" A list of the reserved ipnumbers and masks, or a file containing this list, one per line. See http://www.iana.com for more information. .SS PRIVATE_NETWORKS Syntax: .B PRIVATE_NETWORKS= .I ""|"" A list of the private ipnumbers and masks, or a file containing this list, one per line. See http://www.iana.com and rfc1918 for more information. .SS LOOPBACK_NET Syntax: .B LOOPBACK_NET= .I "" The network of the loopback interface. "127.0.0.1/8" in the distribution. .SS BIN_PATH Syntax: .B BIN_PATH= .I "" The search path for the iptables and tc binaries. .SH PARAMETERS The values of these parameters should be altered. They define the firewall deployed by fiaif and customize it for local networks and security policy. .SS DONT_START Syntax: .B DONT_START= .I If set to one, the firewall will not be started. .B DONT_START is set to 1 in the distributed fiaf.conf to prevent the inadvertant deployment of an unconfigured firewall from a download. Set the value to zero or delete the line to enable the firewall. .SS CONF_DIR Syntax: .B CONF_DIR= .I "/" The path to the configuration directory. .B CONF_DIR is set to "/etc/fiaif/" in the distribution. .PD 0 .SS SET_PROC_ERRORS Syntax: .B SET_PROC_ERRORS= .I .SS SET_PROC_WARNINGS Syntax: .B SET_PROC_WARNINGS= .I .PD 1 .PD 0 When the command "fiaif test" is issued, a list of errors and warnings are displayed. .P If .B SET_PROC_ERRORS is 1, FIAIF will attempt to correct the errors. .P If .B SET_PROC_WARNINGS is 1, FIAIF will attempt to correct the warnings. .PD 1 .SS SAVE_STATE Syntax: .B SAVE_STATE= .I If enabled, FIAIF will save all iptables rules to a file after these have been applied, if no errors were encountered while generating the rules. When FIAIF is started again, this file is used if and only if no modifications have been made to any configuration files. Rules are saved to .B /var/lib/fiaif/iptables. Enabling this option greatly improves start time of FIAIF, but may cause problems if, for example, the ipnumber of a static interface changes, in which case .B /etc/init.d/fiaif .B force\-reload should be used to rebuild ruleset from configuration files. .SS ZONES Syntax: .B ZONES= .I "" A list of the zones to be set up. There must be a zone file in the configuration directory matching each zone named in this list. .PD 0 Example: .P .B ZONES="INT EXT" .PD 1 .SS CONF_[XXX] Syntax: .B CONF_[XXX]= .I "" A group (CONF) containing the names of the zone files. It should match closly the names listed in the .BR ZONES parameter. The zone files must be in the directory specified in .BR CONF_DIR . .PD 0 Example: .P .B CONF_INT="zone.internal" .P .B CONT_EXT="zone.external" .PD 1 .SS TEST_FILE Syntax: .B TEST_FILE= .I "/" The absolute pathname of the file to which commands are written when fiaif is run with the .B \'test\' option. Set to "/tmp/fiaif.out" in the distribution. .SS DEBUG Syntax: .B DEBUG= .I If set to 1, fiaif will not drop any packets, but all rules are still applied, and the results will be in the syslog. Use this as a debugging tool if you are experiencing problems while setting up the zones. Set to zero for fiaif to work normally. .SS VERBOSE Syntax: .B VERBOSE= .I Set this variable to 1 to have fiaif log all dropped or redirected packets in the syslog. If no logging is wanted, set it to 0. See LOG_LIMIT and LOG_BURST for details on when logging occurs. .SS LOG_PREFIX Syntax: .B "FIAIF_" .I Specify the prefix to use when logging packets to system log or though ulogd. .SS ENABLE_ULOGD Syntax: .B ENABLE_ULOGD= .I If set to 1 (and the ulogd is running on the system), fiaif logs via a ulogd. If set to 0, fiaif logs through the standard syslog facility. .PD 0 .SS LOG_LIMIT Syntax: .B LOG_LIMIT= .I .SS LOG_BURST Syntax: .B LOG_BURST= .I "" .PD 1 Specify how often dropped or rejected packets should be entered into the system log. Tune to avoid spamming of logs. .B LOG_LIMIT is the maximum average matching rate. If no is provided, \'/second\' is assumed. .B LOG_BURST is the maximum initial number of packets to match; this number is incrememted by one every time the limit specified above is not reached, up to this number. .PD 0 Note the quotes around .B LOG_BURST\'s value. .PD 1 .SS LOG_LEVEL Syntax: .B LOG_LEVEL= .I This specifies the loglevel, for logging to .B syslog or .B ulogd. When using syslog, the number specifies the priority, see .B syslog.conf(5). If .B ENABLE_ULOG is true, .B LOG_LEVEL number specifies the netlink group (1-32), to which the line to be logged is is sent. .SS MODULES Syntax: .B MODULES= .I "" Specifies iptables modules to be loaded upon starting the firewall. The modules remain loaded as long as the firewall is deployed. .PD 0 .SS PRE_SCRIPT[N] Syntax: .B PRE_SCRIPT[N]= .I "" .SS POST_SCRIPT[N] Syntax: .B POST_SCRIPT[N]= .I "" .PD 1 This pair of array parameters may contain shell commands to be executed before/after fiaif creates the iptables rules. The lines are executed in array-index sequence. Three chains per zone exists to support user-defined rules. The chain names are: .B USER_INPUT_ .B USER_OUTPUT_ .B USER_FORWARD_ Where the zone name is the name of the zone. Packets will go though these chains before hitting rules generated by INPUT, OUTPUT and FORWARD rules in the zone configuration files. Remember that only packets in the NEW state will hit these chains, and hence there is no need to test the state of a packet in these chains. .SS ALIASES Points to a file with IP alias specifications. These aliases are available to all zone configuration files, and can be used in rules where the syntax .B [[/]=>[[/] is used, as replacement for either side. See IPSET in zone.conf(8) for more information. .SS TOS_FILE Syntax: .B TOS_FILE= .I "" Specify the name of the Type-Of-Service configuration file located in the configuration directory. This file specifies manipulation of the TOS bits in TCP and UDP packets. Traffic control examines these fields to determine into which class a packet should fall. .PD 0 The file contains a group (TOS) with values of the form: .RS .B TOS_[XXX]= .I " " .RE .PD 1 .P Examples: .RS .PD 0 .B TOS_MIN_DLY_UDP= "Minimize-Delay udp" .P .B TOS_NORM_SRVC_TCP= "Normal-Service tcp www,https" .PD 1 .RE .SH FILES .I /etc/fiaif/fiaif.conf .RS The configuration file for FIAIF .RE .I /etc/fiaif/private_networks .RS A list of private networks as specified by RFC1918 .RE .I /etc/fiaif/reserved_networks .RS A list of reserved networks as specified by IANA. .RE .I /etc/fiaif/aliases .RS Specifies IP aliases to be used for all configuration files. .RE .SH AUTHOR Anders Fugmann .SH "SEE ALSO" .BR fiaif (8), .BR zone.conf (8) fiaif-1.23.1/prog/0000750000175000017500000000000012076552057013141 5ustar calvincalvinfiaif-1.23.1/prog/fiaif-getdev0000750000175000017500000000465611571724545015436 0ustar calvincalvin#!/bin/bash # FIAIF is an Intelligent firewall # Startup script to add firewall functionality. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # This package comes with ABSOLUTELY NO WARRANTY # Use strictly at your own risk. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. shopt -s extglob source /usr/share/fiaif/functions.sh function get_settings () { DEV=$1 # Test if the interface is up. LINE=$(ifconfig ${DEV} | grep "inet addr") if [[ -n "${LINE}" ]];then IP=$(echo ${LINE} | cut -d : -f 2 | cut -d \ -f1) BCAST=$(echo ${LINE} | cut -d : -f 3 | cut -d \ -f1) MASK=$(echo ${LINE} | cut -d : -f 4 | cut -d \ -f1) NET=${IP}/${MASK} return 0 fi return 1 } if [[ -z "$1" ]]; then echo "Use: $0 " exit 1 else if get_settings $1; then echo "DEV=${DEV}" echo "IP=${IP}" echo "BCAST=${BCAST}" echo "MASK=${MASK}" echo "NET=${NET}" INTERFACES=$(ifconfig | grep "$1" | cut -f1 -d" ") for IFACE in ${INTERFACES}; do if [[ "${IFACE}" == "$1" ]]; then continue else if get_settings ${IFACE}; then # Do not add the same value twice. VAR="${IP}" for VAR in ${IP_EXTRA}; do if [[ "${VAR}" == "${IP}" ]]; then VAR="EMPTY" break fi done if [[ "${VAR}" != "EMPTY" ]]; then IP_EXTRA="${IP_EXTRA} ${IP}" fi VAR="${IP}" for VAR in ${NET_EXTRA}; do if ip_in_network ${VAR%/*} ${VAR#*/} ${IP}; then VAR="EMPTY" break fi done if [[ "${VAR}" != "EMPTY" ]]; then NET_EXTRA="${NET_EXTRA} ${NET}" fi fi fi done echo "IP_EXTRA=\"${IP_EXTRA# *}\"" echo "NET_EXTRA=\"${NET_EXTRA# *}\"" else echo "Unable to read interface ${1}" fi fi fiaif-1.23.1/prog/fiaif-update0000750000175000017500000001112011571724545015422 0ustar calvincalvin#!/bin/bash # FIAIF is an Intelligent firewall # # Startup script to add firewall functionality. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # This package comes with ABSOLUTELY NO WARRANTY # Use strictly at your own risk. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. shopt -s extglob WEB_HOME="http://www.fiaif.net/" WEB_VERSION="${WEB_HOME}/VERSION" FILES="RESERVED_NETWORKS PRIVATE_NETWORKS" WEB_RESERVED_NETWORKS="${WEB_HOME}/conf/reserved_networks" WEB_PRIVATE_NETWORKS="${WEB_HOME}/conf/private_networks" WGET_PARAM="--user-agent=FIAIF --quiet --cache=off" DIFF_OPTIONS="-U 0 -bB" source /usr/share/fiaif/constants.sh source ${CONF_FILE} function check_version () { local RETURN local TMP_FILE=$(mktemp /tmp/fiaif-tmp.XXXXXX) if ! wget ${WGET_PARAM} --output-document=${TMP_FILE} ${WEB_VERSION}; then if (( VERBOSE == 1 )); then echo "Could not download version info from ${WEB_VERSION}" fi exit 1 fi local NEW_VERSION=$(<${TMP_FILE}) local CURR_VERSION=$(<${VERSION_FILE}) local V NEW_VERSION_NR=0 for V in ${NEW_VERSION//./ }; do let NEW_VERSION_NR=NEW_VERSION_NR*1000+V done CURR_VERSION_NR=0 for V in ${CURR_VERSION//./ }; do let CURR_VERSION_NR=CURR_VERSION_NR*1000+V done if (( NEW_VERSION_NR > CURR_VERSION_NR )); then if (( VERBOSE == 1 )); then echo "New FIAIF version ${NEW_VERSION} available." fi RETURN=0 else if (( VERBOSE == 1 )); then echo "FIAIF is up-to-date." fi RETURN=1 fi rm -f ${TMP_FILE} return ${RETURN} } function update_file () { ORIG_FILE=$1 NEW_FILE=$2 NEW_VERSION=$3 local ANS="" echo "New version of $(basename ${ORIG_FILE}) found." diff ${DIFF_OPTIONS} ${ORIG_FILE} ${NEW_FILE} if (( VERBOSE == 1 )); then while [[ "${ANS}" != @(Y|y|N|n) ]]; do read -p "Update $(basename ${ORIG_FILE}) to version ${NEW_VERSION} (y|n)" ANS done else ANS="y" fi case ${ANS} in Y|y) echo "${ORIG_FILE} updated to version ${NEW_VERSION}" mv -f ${ORIG_FILE} ${ORIG_FILE}.old mv -f ${NEW_FILE} ${ORIG_FILE} ;; N|n) mv -f ${NEW_FILE} ${ORIG_FILE}.new ;; esac } function update_networks () { local FILE=$1 local WEB_FILE=WEB_${FILE} WEB_FILE=${!WEB_FILE} local LOCAL_FILE=${CONF_DIR}/${!FILE} local RETURN local TMP_FILE=$(mktemp /tmp/fiaif-tmp.XXXXXX) if ! wget ${WGET_PARAM} --output-document=${TMP_FILE} ${WEB_FILE}; then if (( VERBOSE == 1 )); then echo "Could not download network info from ${WEB_FILE}" fi exit 1 fi # Examine if an update is nessesary, by looking at the first line. local V local NEW_VERSION=$(head -n 1 ${TMP_FILE} | cut -d" " -f 4) local NEW_VERSION_NR=0 for V in ${NEW_VERSION//./ }; do let NEW_VERSION_NR=NEW_VERSION_NR*1000+V done declare -a LINE=( $(head -n 1 ${LOCAL_FILE}) ) local CURR_VERSION=$(head -n 1 ${LOCAL_FILE} | cut -d" " -f 4) local CURR_VERSION_NR=0 for V in ${CURR_VERSION//./ }; do let CURR_VERSION_NR=CURR_VERSION_NR*1000+V done if (( NEW_VERSION_NR > CURR_VERSION_NR )); then update_file ${LOCAL_FILE} ${TMP_FILE} ${NEW_VERSION} RETURN=0 else if (( VERBOSE == 1 )); then echo "${FILE} is up-to-date." fi RETURN=1 fi rm -f ${TMP_FILE} return ${RETURN} } function usage () { echo "Usage: $0 [--silent] [--help] " } # Read all options VERBOSE=1 while [[ "${1:0:2}" == "--" ]]; do case $1 in --silent) VERBOSE=0 ;; --help) usage exit 0 ;; *) echo "Unknown option: '$1'" ;; esac shift 1 done case $1 in check) check_version ;; update) RETURN=1 for FILE in ${FILES}; do if update_networks ${FILE}; then RETURN=0 fi done exit ${RETURN} ;; *) usage ;; esac fiaif-1.23.1/prog/fiaif0000750000175000017500000001741612076552057014156 0ustar calvincalvin#!/bin/bash ### BEGIN INIT INFO # Provides: fiaif # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: S # Default-Stop: 0 6 # Short-Description: Intelligent firewall # Description: Automates a packet filtering firewall with iptables. ### END INIT INFO # # chkconfig: 345 08 92 # description: Automates a packet filtering firewall with iptables. # FIAIF is an Intelligent firewall$ # Startup script to add firewall functionality. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2013 Anders Peter Fugmann # This package comes with ABSOLUTELY NO WARRANTY # Use strictly at your own risk. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################### # load functions ############################################################################### shopt -s extglob source /usr/share/fiaif/constants.sh if [ -r ${CONF_FILE} ]; then # Test configuration file TMP_FILE=$(mktemp /tmp/fiaif-tmp.XXXXXX) awk -f ${FIAIF_SHARED}/syntax.awk \ -f ${FIAIF_SHARED}/fiaif_rules.awk < ${CONF_FILE} > ${TMP_FILE} if (( $? != 0 )); then echo "Syntax errors in FIAIF configuration files detected." cat ${TMP_FILE} echo "Aborting" rm -f ${TMP_FILE} exit 6 else rm -f ${TMP_FILE} source ${CONF_FILE} unset TMP_FILE fi fi source ${FIAIF_SHARED}/iptables.sh source ${FIAIF_SHARED}/functions.sh source ${FIAIF_SHARED}/zones.sh source ${FIAIF_SHARED}/proc-check.sh source ${FIAIF_SHARED}/sanity_check.sh source ${FIAIF_SHARED}/cleanup_rules.sh source ${FIAIF_SHARED}/aliases.sh function fiaif_start () { local FIAIF_SAVE_STATE=$1 local SAVE_STATES=$2 let ${SAVE_STATES:=1} if (( SAVE_STATES == 1 )); then save_rules ${NETFILTER_STATE_FILE} fi load_modules local PRE_SCRIPT_LENGTH=${#PRE_SCRIPT[*]} if (( PRE_SCRIPT_LENGTH > 0 )); then echo "PRE_SCRIPT variable is depricated, and should be replaced" echo "by PRE_START_SCRIPT." apply_script PRE_SCRIPT PRE_SCRIPT_LENGTH fi apply_script PRE_START_SCRIPT ${#PRE_START_SCRIPT[*]} # Use the state file is available. if (( FIAIF_SAVE_STATE == 1 )) && state_valid; then restore_rules ${FIAIF_STATE_FILE} else debug_out "Removing all existing rules, and setting default policies" iptables_stop ${DEBUG} iptables_setup # Test if rules should be saved if (( ZONE_ERRORS == 0 && DEV_ERRORS == 0 && \ IPTABLES_ERRORS == 0 && RULE_ERRORS == 0)); then if (( FIAIF_SAVE_STATE == 1 && TEST == 0 )); then save_rules ${FIAIF_STATE_FILE} fi else print_err "*** FIAIF encountered errors ***" print_err "${DEV_ERRORS} error(s) when testing zone configurations." print_err "${ZONE_ERRORS} reference(s) to undefined zones." print_err "${RULE_ERRORS} error(s) in rule specifications." print_err "${IPTABLES_ERRORS} iptables rule generation error(s)." if (( TEST == 0 )); then print_err "Please issue '$0 test' and inspect /tmp/fiaif.out for descriptions." fi fi fi if (( TEST == 0 )); then if (( SAVE_STATES == 1 )); then set_proc ${PROC_STATE_FILE} else set_proc fi fi local POST_SCRIPT_LENGTH=${#POST_SCRIPT[*]} if (( POST_SCRIPT_LENGTH > 0 )); then print_err "POST_SCRIPT variables is depricated, and should be replaced" print_err "by POST_START_SCRIPT." apply_script POST_SCRIPT POST_SCRIPT_LENGTH fi apply_script POST_START_SCRIPT ${#POST_START_SCRIPT[*]} if (( TEST == 0 ));then if [[ -z "${NO_CLEANUP}" ]];then # Cleanup - remove unused chains echo -n "Cleaning up rules: " cleanup_rules echo "Done." fi logger -p syslog.notice -t fiaif "FIAIF started" if (( DEBUG == 1 )); then logger -p syslog.crit -t fiaif "DEBUG=1 in fiaif.conf." logger -p syslog.crit -t fiaif \ "This means that your firewall is wide open" fi fi } function fiaif_stop () { apply_script PRE_STOP_SCRIPT ${#PRE_STOP_SCRIPT[*]} iptables_stop 1 unload_modules #Restore previous state. restore_proc ${PROC_STATE_FILE} restore_rules ${NETFILTER_STATE_FILE} apply_script POST_STOP_SCRIPT ${#POST_STOP_SCRIPT[*]} logger -p syslog.notice -t fiaif "FIAIF stopped" } function main () { case "$1" in start) if [[ -f ${SUBSYS_FILE} ]]; then echo "FIAIF already started. Please stop FIAIF before starting." return 1 fi fiaif_start ${SAVE_STATE} 1 touch ${SUBSYS_FILE} ;; stop) if [[ ! -f ${SUBSYS_FILE} ]]; then echo "FIAIF has not yet been started." return 7 fi fiaif_stop # Clean up state files. rm -f ${SUBSYS_FILE} rm -f ${IPTABLES_STATE_FILE} ${PROC_STATE_FILE} ;; restart) if [[ ! -f ${SUBSYS_FILE} ]]; then echo "FIAIF has not yet been started." return 7 fi fiaif_start ${SAVE_STATE} 0 ;; force-reload) touch ${FIAIF_STATE_FILE} rm -fr ${FIAIF_STATE_FILE} fiaif_start ${SAVE_STATE} 0 ;; status) if [[ -f ${SUBSYS_FILE} ]]; then echo "FIAIF is running." iptables_status else echo "FIAIF is stopped." return 3 fi ;; panic) # Stop the firewall. Do not read DEBUG variable. iptables_stop 0 rm -f ${SUBSYS_FILE} ;; test) TEST=1 # Determine which file to write to. if [[ -n "$2" ]]; then TEST_FILE=$2 elif [[ -n "${TEST_FILE}" ]]; then TEST_FILE=${TEST_FILE} else TEST_FILE="/tmp/fiaif.out" fi rm -f ${TEST_FILE} # Dont use the state file fiaif_start 0 check_network_settings echo "All rules has been written to ${TEST_FILE}" ;; *) echo "Usage: $0 {start|stop|restart|force-reload|status|panic}" return 2 esac } # Set the path PATH=${BIN_PATH}:${PATH} # Test that the user is indeed root if (( EUID != 0 )); then echo You must be root to run this program exit 4 fi if [[ ! -r ${CONF_FILE} ]]; then echo "FIAIF configuration file '${CONF_FILE}' not found." echo "Aborting." exit 5 fi # Dont start if the FIAIF has not been configured. if [[ -n "${DONT_START}" ]] && (( DONT_START == 1 )); then echo "Fiaif is not configured." echo "Set 'DONT_START=0' in /etc/fiaif/fiaif.conf" exit 6 fi # Test if iptables program is available. which iptables > /dev/null if (( $? != 0 )); then echo "Could not find 'iptables'. Aborting." exit 5 fi if [[ -n "${MODULES}" ]]; then which modprobe > /dev/null if (( $? != 0 )); then echo "Could not find 'modprobe'. Aborting." exit 1 fi fi # Remove old state file if older than boot time if [[ -f ${SUBSYS_FILE} ]]; then BOOT_TIME=$(grep btime /proc/stat|cut -f 2 -d" ") SUBSYS_TIME=$(date +%s -r ${SUBSYS_FILE}) if (( SUBSYS_TIME < BOOT_TIME )); then rm -f ${SUBSYS_FILE} fi fi let ${SAVE_STATE:=0} let ${ZONE_ERRORS:=0} let ${RULE_ERRORS:=0} let ${DEV_ERRORS:=0} let ${IPTABLES_ERRORS:=0} let ${DEBUG:=1} let ${TEST:=0} # Global commands. print_version if (( DEBUG == 1 )); then print_err "*** Warning: DEBUG=1 in fiaif.conf." print_err "*** This means that NO packets will ever be dropped," print_err "*** and your firewall will accept all connections." fi main $1 fiaif-1.23.1/prog/fiaif-scan0000750000175000017500000000757011571724545015102 0ustar calvincalvin#!/bin/bash # # FIAIF is an Intelligent firewall # # description: Convert syslog entries logged by FIAIF to human readable form. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. shopt -s extglob source /usr/share/fiaif/constants.sh source /etc/fiaif/fiaif.conf source /usr/share/fiaif/iptables.sh source /usr/share/fiaif/functions.sh source /usr/share/fiaif/zones.sh function scan () { local LINE="$@" local REASON DATE DEV_IN DEV_OUT MAC SRC DST PROTO SPT DPT TYPE TCP_FLAGS declare -a TMP_ARRAY=( $@ ) DATE="${TMP_ARRAY[0]} ${TMP_ARRAY[1]} ${TMP_ARRAY[2]}" REASON=${TMP_ARRAY[5]%:*} DEV_IN=${TMP_ARRAY[5]#*=} DEV_OUT=${TMP_ARRAY[6]#*=} local I TCP_FLAGS="" for (( I=8;I<${#TMP_ARRAY[*]};I++ )); do # Dont process ICMP packets if [[ -z "${TMP_ARRAY[I]%[*}" ]]; then break fi if [[ "${TMP_ARRAY[I]%=*}" != "${TMP_ARRAY[I]#*=}" ]]; then declare "${TMP_ARRAY[I]%=*}"="${TMP_ARRAY[I]#*=}" else if [[ "${TMP_ARRAY[I]}" != "DF" ]]; then TCP_FLAGS="${TCP_FLAGS}${TMP_ARRAY[I]} " fi fi done echo -ne "$DATE: ${REASON} queue=" #Convert device to zones. get_zone_name ${DEV_IN} ${SRC} ZONE_IN=${RESULT} get_zone_name ${DEV_OUT} ${DST} ZONE_OUT=${RESULT} local CHAIN if [[ -n "${DEV_IN}" ]]; then if [[ -n "${DEV_OUT}" ]]; then CHAIN="FORWARD" echo -n "FORWARD(${ZONE_IN}->${ZONE_OUT})" else echo -n "INPUT(${ZONE_IN})" CHAIN="INPUT" fi elif [[ -n "${DEV_OUT}" ]]; then CHAIN="OUTPUT" echo -n "OUTPUT(${ZONE_OUT})" fi if [[ -n "${PROTO}" ]]; then echo -n " protocol=${PROTO}" fi if (( RESOLVE == 1 )); then get_host_name ${SRC} SRC=${RESULT} get_host_name ${DST} DST=${RESULT} fi if (( SERVICE == 1 )) && [[ "${PROTO}" == "TCP" || "${PROTO}" == "UDP" ]]; then get_service_name ${PROTO} ${SPT} SPT=${RESULT} get_service_name ${PROTO} ${DPT} DPT=${RESULT} fi if [[ -n "${SRC}" ]]; then echo -n " source=${SRC}" if [[ -n "${SPT}" ]]; then echo -n ":${SPT}" fi fi if [[ -n "${DST}" ]]; then echo -n " destination=${DST}" if [[ -n "${DPT}" ]]; then echo -n ":${DPT}" fi fi if [[ "${PROTO}" == "TCP" ]]; then echo -n " flags='${TCP_FLAGS}'" fi if [[ "${PROTO}" == "ICMP" ]]; then echo -n " type=${TYPE}" fi if (( PRINT_MAC == 1 )); then echo -n " mac: ${MAC}" fi echo } # Damn bash. We really needed this to be in a function, but declare # only declares locally to functions. for ZONE in ${ZONES}; do read_zone ${ZONE} if (( $? != 0 )); then continue fi declare ${ZONE}_DEV="${DEV}" declare ${ZONE}_IP="${IP}" declare ${ZONE}_DYNAMIC="${DYNAMIC}" declare ${ZONE}_BCAST="${BCAST}" declare ${ZONE}_NETS="${NET} ${NET_EXTRA}" done RESOLVE=1 SERVICE=0 PRINT_MAC=0 for OPTION in $@; do case ${OPTION} in -n) RESOLVE=0 SERVICE=0 ;; -m) PRINT_MAC=1 ;; -s) SERVICE=1 RESOLVE=0 ;; esac done # Main loop. grep -e "[A-Z_]*: *IN=" | while read line; do scan $line done fiaif-1.23.1/fiaif.ps0000640000175000017500000251641512076552226013631 0ustar calvincalvin%!PS-Adobe-2.0 %%Creator: dvips(k) 5.992 Copyright 2012 Radical Eye Software %%Title: fiaif.dvi %%CreationDate: Sat Jan 19 18:15:02 2013 %%Pages: 31 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: SFRM1728 SFRM1200 NimbusMonL-Regu SFBX1440 SFBX1095 %%+ SFRM1095 SFBX1200 SFTI1095 SFRM0800 SFRM0600 SFRM0900 SFTI0900 %%+ CMSY10 CMR10 NimbusMonL-Bold %%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips fiaif.dvi -o fiaif.ps %DVIPSParameters: dpi=600 %DVIPSSource: TeX output 2013.01.19:1815 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S /BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3 def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90 rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{ BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat {BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B /M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M} B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{ 0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: cm-super-t1.enc 0 0 % This file is generated from `T1uni.map' and `glyphlist.txt', `gl-other.txt' % % LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; % LIGKERN quoteleft quoteleft =: quotedblleft ; % LIGKERN quoteright quoteright =: quotedblright ; % LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ; % LIGKERN greater greater =: guillemotright ; % LIGKERN f f =: ff ; f i =: fi ; f l =: fl ; ff i =: ffi ; ff l =: ffl ; % % LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ; % LIGKERN one {} * ; * {} one ; two {} * ; * {} two ; % LIGKERN three {} * ; * {} three ; four {} * ; * {} four ; % LIGKERN five {} * ; * {} five ; six {} * ; * {} six ; % LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ; % LIGKERN nine {} * ; * {} nine ; % /T1Encoding [ % 0x00 /grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron /breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright % 0x10 /quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /afii61664 /perthousandzero % PERTHOUSAND ZERO /dotlessi /dotlessj /ff /fi /fl /ffi /ffl % 0x20 /uni2423 /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /hyphen.alt % HANGING HYPHEN % 0x80 /Abreve /Aogonek /Cacute /Ccaron /Dcaron /Ecaron /Eogonek /Gbreve /Lacute /Lcaron /Lslash /Nacute /Ncaron /Eng /Ohungarumlaut /Racute % 0x90 /Rcaron /Sacute /Scaron /Scedilla /Tcaron /Tcommaaccent /Uhungarumlaut /Uring /Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section % 0xA0 /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute % 0xB0 /rcaron /sacute /scaron /scedilla /tcaron /tcommaaccent /uhungarumlaut /uring /ydieresis /zacute /zcaron /zdotaccent /ij /exclamdown /questiondown /sterling % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /SS % Germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls % or /germandbls.alt ] def %%EndProcSet %%BeginProcSet: 8r.enc 0 0 % File 8r.enc TeX Base 1 Encoding Revision 2.0 2002-10-30 % % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, % W. Schmidt, P. Lehman", % version = "2.0", % date = "27nov06", % filename = "8r.enc", % email = "tex-fonts@@tug.org", % docstring = "This is the encoding vector for Type1 and TrueType % fonts to be used with TeX. This file is part of the % PSNFSS bundle, version 9" % @} % % The idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol, % MacRoman, and some extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % These are /dotlessj /ff /ffi /ffl. % % (4) hyphen appears twice for compatibility with both ASCII and Windows. % % (5) /Euro was assigned to 128, as in Windows ANSI % % (6) Missing characters from MacRoman encoding incorporated as follows: % % PostScript MacRoman TeXBase1 % -------------- -------------- -------------- % /notequal 173 0x16 % /infinity 176 0x17 % /lessequal 178 0x18 % /greaterequal 179 0x19 % /partialdiff 182 0x1A % /summation 183 0x1B % /product 184 0x1C % /pi 185 0x1D % /integral 186 0x81 % /Omega 189 0x8D % /radical 195 0x8E % /approxequal 197 0x8F % /Delta 198 0x9D % /lozenge 215 0x9E % /TeXBase1Encoding [ % 0x00 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron % 0x10 /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle % 0x20 /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 0x80 /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis % 0xA0 /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron % 0xB0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: texps.pro 0 0 %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro 0 0 %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def @MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N} N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N /setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{ pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B /rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet %%BeginFont: NimbusMonL-Regu %!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono L Regular) readonly def /FamilyName (Nimbus Mono L) readonly def /Weight (Regular) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusMonL-Regu def /PaintType 0 def /WMode 0 def /FontBBox {-12 -237 650 811} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec D9D66F633B846A989B9974B0179FC6CC445BC2C03103C68570A7B354A4A280AE 6FBF7F9888E039AB60FCAF852EB4CE3AFEB979D5EA70FDE44A2AE5C8C0166C27 BF9665EEA11C7D2329C1A211DD26BB372BE5822F5EA70D99EB578C7BEFD44CDF 045A363056E5E1CC51525EA6FC061DCEBB337208EFF729802376A2801424F670 0E7E6397B28F15BC10B40012B0A3EAEB2693E8F7F627C4C9C7C6C5BFF105C1E4 1B2B9E8F09253B76040D268B80719E1B3F5A55AB7B89290699B50C1BF1BAEFFE 1F57BE7B5EA025241A248A6D4CFA5067A1DA6EBA4CFC940599BA3F3C934D7248 B8E4AC5816F0D2CE8B3C4193CE39D19FFFDB75254573173CB51CCD83C2F2D06B 2483CF9B07B21EC6F502F028C273887BB06DAE2AFAC10E9FD3C7CF51BCA7B277 B706E425302DC78975AC0E43B87073257A5CD7424B6865FCA89D886E8F95C4F6 D457623DBBC0D16BAFEB4C649F5D72B09B18502EEAB687E915E9B536A361B4F1 44C3CD4CC683B5F05A4ECB4823A5EB5179BB7EEE8B76C21B2491A97808F6318B 585B0BAD98F42FB4A755BCB74CD354F794C8BEA5B90FB9681BD5849D45247E39 930C882490230E1662D39CCA875BFFEAC3E79A78DE6E1298ABE9817AE98675C4 16220AD0D3A36580EE2F2A17AAA1246C416D58A4C52FBB26AAF3B6F75833AF8E 3AA996218DAFA571FBC7CAD90ECE9C883C813D8F168C5E86BBFA0F0A5CB36E35 2DE4CAA0F8D3227F72C5056BFB5BCA6BF9C60E037A0E44670A8D3CBC9A19F379 CA8DB30B711F518A8C7569211AC70C46EED2AF62A37F238BD0BD12D60332E673 C6E784B3EBA3F2E71E9993B97E8A38F85048937E958F1CD8FC6E661048546135 56B810FA1FF611B96495081C04542DF7FEF085DEC619DC8C84CC57683D212813 9D14728AA32723E1D15F2AF8F03422CFAFDB718ACD1FE5E0CF9BB6708FD219F4 FFFE3967E0AD6A928DC19581FF2C5ABD4961F9451172CC1CBC690B43DE2F0099 86D8D33311D6C0573F58CD9A0E0B0C1AD3B59BEF6A132EDC8E2F96EB664D1506 32A3CAAC072C75218AC4F176966A3E6CBF678BFECA2D96EF2D2E5A6DE68CAF3B 918C00E066A03A5781248521DD94E3EF9A9EB80836525DC13209A1520CA788D8 C026548C24AD0969153B486D19E367E19006F0C38943647B4763F67972F71753 07C9B771DFAE2B57AFBCD29F0FDFDAB5977A59F5D4791DD7551277D3475DE767 B43D12FA8C4B70CF264E2AF0FEE27C3B981D0C7C740337D8520B038F4C2EC0C1 AB6DB4C938172443C748C1857428786FC23682444E5EE17335B337D712779C8A CE51DDE1FDD856FAE2C86A1A034470AE846216191026A9BE5C6B9AA0D1E9EE8B 39ACB08ABBB932D5E6A03F957B7C64E89BB59C4ADF0CA9C73DF0C7F451EFC226 CB3BC41B415182F40F510AFEE246506B981C4C25D9FB5C08D065EB272EEEAD7B E0106DB6CF97066AF9A730E2CB0E054CD9313F93B7A8AA8BDBFA82BD9A0A1E60 FC5F7F3EFA1DBEB4DA57087BE7632AC6D2E920AA7A5C51B37937F9DF00DE919D 6BEC3691240B7BE921ADB832C9E94C3F93272630EE12C1D116DE33B3B49CF358 79D018730FD0603CA31EBB1FA9612DD39C767B8F89EFBCD72A65F33BAFD19287 324CFA01A3003871F527868F79C61C3A67955554A849C5F2F57D79D880E13273 F7A423D64D1693B7F9F785231A84D8BF9F43469E79D63CED8408982ED04A3B88 FC4CDBCFBF6064A93844E90332568F6279F1B3737A6232E4783E47BF30DEDCB7 0A90C56BA0595B1F8692E1E8CBC91C4EC0E51C004B3AA0690A419426696F7F54 1EC602AB1A64B51907E84468C576DAC5975200A1896C80460C70667FAE13FA06 FE00B594946EE0CAF6152444F8C67FD0E0807F73301C36B7ED9CAB1A885E0336 9E1620EF526166FA1097E31EDCB1D3134869841B55ED5FB1AF717ABBA276425F 36A33EA315DAED5B570CC8B01BEF3118EE3D318F1995BB2ABAEF03EE07C23E3D 6817263C54EC85DA80EED3D5F47556AC4B2DFF0EEC9E4988DB4957DD1E286DC5 FA0CD6EACDD36EE6487321F9173C40B19EE3FBD78749D2EC0036AB3A61FB3C87 3145E47B38801F1F03872085E7BD7CEBDF0B3CAA3F3B7D46778D968C88684E63 F2DB1B200EFE0EFD7DC7BEFBD55922B6E95E78FA02A83FD6198DF49E5912838A 205B0B85CB135226DA238FE524D48F21C31F8730C5D0D23F518D05EF528B4EB7 4F9C9378F5EECF7A39ED63BBE8217D01F4C70E21F5D3D56556FF4387EF579376 05E7C1085730695ADEFF8925BDDAEB03A205E1854AD436CC4BEED9837C028263 ECCE3DBE0F540E7E4C2761D7DA078E87443D6FE06976BF2C4AE756CA82B54735 DEBC5831AAE6BC04AB6301AE5160035BFAC6C40BA68CD7A6217C17CA5C5FD9DD F41933A3EEECACB3258B2EC7312FD27899F4F580D37706AAF04C8CACBBCE0C71 D5F92AE681D63FECDB12D4456344E4C4F140701924DBB1B91AA37D5748CE906E 623A91AB4AEF31C0A6FC29CCA500FD5E34AF971FA6392886704D2F749380EE1F 2653B00D7E484A88A248FD17FF0E7A075A554F9EF0A0A4270372FCFF69A5BE0D 06021F932030C47C09229F51942A19C387672A4D106E1E18D2BED7CC3F1478D1 BAB23AF03C73F5461492B72AAA98F66B8D3BB8E3536D91569F2B675210E8A891 4179CD90424C326CCA4E78A35FC08B1ABA8EE8B6597C12C98152ABA14FA9FEC5 74DE13659BA57CDA697FC5B9EC6CA8B86F5841687B89382110163A2447BB14C4 4466E5410DD289DFEA30BBEEBF3A9E455497D10160120EF529F1B7F425465EF1 F99507F4B4CFFA70ABAD804B9389EFCFBEF6DA4317FE66AB7F31E0F82C6D7FD1 0916BC9ED6EACB095DFEA5DE562B413686879EF0110E5F18421B728BF0EBD132 58CCA60C4DF1EC62C18750FF5CF11D8C719A7EAC59C2B15CB754567ABE0BAD61 43FCF2838D0303DC77B438B68E880065F4E15977C56807C41997D95F5983869A 4478FEC89CEEC9D25252EBF506F0D503910361B199700B44CFE513612C73E079 F4ABDD8F92A85C100736502358BACF891053F1FFBDE28967CD90B55ACC6ED659 0475D119F6C549F669AACB5204167B48DB4017A241E77AA42A8389134DF5F907 976E1DF378BB5BB15056692AEBEF47D90F2366A89977662DF81F5AEB909DE8C5 040FE6306120653DC6EAEED10F91F6B05C6E8C586E5073FAF13FF8DC97E5436D 22EA8E529B40F6456AC05AE25E669500444B9B43D9A3767C4933AC00E27203F5 7806F14C0154766E47E2C076F5983A40491B738441A612D54FC23DA3CEC40524 0CCD3407070F9C0533D68E49B7B58B7F38B0FBB1D843EB1118F160769ED9844B 47A8A2CC08811AE221432220026A57015ED62CDEB4AD85F262EC11DA1B7B7AEA 052861152024969829518E7CAB4FA59CC5E7F4477CC215A8205214005D2341F8 13BC27B15646DD2FDEA5232BF51075D42CB42D9001EFFBA75F009B807CC97F91 9A990240F179C9609B794471410B2D5639C540CA9A655B9F1BC4847FBB419A71 F4DABCC775798D4E1F7021F95ADF3575C588D95D21E555A37529A86910B8C4B3 0C5B77B7D8472105CF198DF82D4F29998D5AB6B8682DC2477EFB73ABDC635C9A 7C19EEEE799813F4AF8D3E7FAFCC19B3590CDBAB57013A3F755FBB8515429BB6 8570C4555207323431696EB0CFBAC50FE76A8BE39944B655668971BCAF968A19 75E6FFC307F9FA866CF9487D225350F9248D3D83BE3FB2AC723D41D908A5C523 2B89EBBDF916672279BFFF61E504C5F271499C8D6F9BBF0D8560B43A388E4E1D C51A850EB4EAA6C206C943B14745C15AA064BD1A53541DBCCC321B3987701540 7D426664DF3199AEC1CD0F81B1BE8CA8EF23430F28DB530F8241F02563382C80 3846CF12B9D02B01380B9B8B5F842EB3E631E1B81D31CDBDBE10A3CF279F0A34 F86B5ED92E1E2D745E292111F1D5305C77057B13DEB0EBA88D8A24DBB89301A4 3D3275395639DF4F9089405F01FD88837FC2A2E7FE5D79CC37ACA94F9B576046 0C798D8096F63ACCAD409B239F1D951C017BC68794810EBC9C75D95110E004C3 CAC2CD2B8EDA7C1CBD1F000A6F6FF1EC54033EAADD423993706076D62F4C400B D1A033A02E394585C7ACCEEB42520882F546655238E9DF49CF26F6A94321C8CE A61425E434F472AE846FB53ADE17DD1D2F853285E3193BEF31E5C0151E354118 C13F250A647D3B12026FB9AFBD65504E676321FFFA0E5FF76B66D5B7B1794641 9D977FC329005B44CAE96C8ABF777641211EEF569EF46D5F9A7FAE3205ED1914 2136A1277E25969368821403701C0975254E77D8221F23B7C33CF946E4C58FF0 022D08BA44B97EBA5CD988A54F1B0D5A19E447818B28FECA075B04EB7E60C805 CFA9E30C3F60922B9CAF44AB1555D8ED1354DFFC798A643E979E473CDD5F4070 22E11FBBEA955CD0440E8375A9E1F3B0EE0D91A673164C7D34CC6592FF165446 55D7C1DB1689026A551D1A14531D69E4B654FBE7F4F7EA97E2DD73BF6E51F92F 745BD28B9D1F6458447ED3C9F63A1A84ACAB6330A504D1B8A14FC0A6C18A7C65 2D01C62C5E8D03CE10ECCF06B7D8489BF155CA916365081058D58D96ABA252E0 A1B0C88922AE14D395285ADC7C4DC4D3723EED99E3636524714534463F25D7CB 28E1C3E568D0E8F5DD1D4951A68791DA15FF5999A8A0A26A1C469440C75A4BAA C5F7987DF550AAB54D47E20A906B02B3B7A7289481E23CB373FC1E8DA934451F 04D7D3456501B22C6E89537137F823D1DCA639CDDD76BCAA82B995485CE83DD5 CFF51145F0792B732E0275460E174DF9A19F06A42A2F068895999D77FB86A406 E7E3604F7510540272479F9282D9196707774B13C971B1B26479814BC1118F53 2AC974B3EA1A70A9EB27B343BCA34228FDA3CB831715F0A3E2F9C31D5D9B5C49 1CF6BC41F06633E6BABC6815FFC095854437D5C353F52A56C3DA40B73CD36A14 EC9E5F15CA0DE369A0D7118DDB2A62ACCE15D1894C38B237D3530F36259C9BC5 B800DC01CB305BAA73E020D6C0A85D32676DDFC983769F8E25C5C8482776DB41 F2D4DCE4D62E9C4FA5CE11F486767696BCC1FC60F048B8C90A0121973CBFB664 A54B6E7D94C59304876FAEF63129931B0B7DDB99E3AF5C4587C7A088761EB1BA 3672C81FEE2D81D708B1BD1789ECE7F6E1052ED21E50BBC80F6F3266F2A65506 E25F10FCCB762FAD68139DDF39A01F786CCC5DED29E7B95427B4FCA9A58A522F A801CCB7380ED1223B296C0144AE54D2D2B74A78C20119A53F6F79D946F0C504 AA7825681956D3946CC35FD08CAA9A67FEC9E95EF9004B94AB4C1F338D06F5D6 9D420C160F12C32FAE78D763CCCC0BA7EF81F6212DA66A3A4C04E738BB28D3DA 30A107B02D332F4A62FF3F2F1B1808EBA282F40362CEC29A918C37EF2179A99C 023211F38118CADDDA332974FC6F3686718F8B3B2A4F0B81F6A448A2E19386EC B9B56B36C5CEFAF606681319E0753357567F093B30737A93C36A513A78A3DA63 948073F4086B4FB7C98DE9FE8F04DAD394CB6AF4D7003547D36E0DA51E215709 FF69322D42C893A30F372CC0182361A86C0A5F0AF4DF9A88C88D0D7814395F17 114CC2E0A360373E7BCA86CE1C358AB1EF98662970BB1648BD39E1555A248464 FD313DFF913D8D5F9B310ED8C87261FAFD997128BAE49D1A83F153639CFD5F8C 853DE0F450B74017A41C522DC53C107F1FA27E590A875583F89FAD55850B7C45 57F1840A4E61F9D3642B27598A3F353047B4650FE399657648F035433E3BD58D 5352E49CACA9E4BC52BD17F721F87C33656C5D983B1FC7A28DA64A19A1D093F2 AF4E8A7499D5C7DF3F2879D7477AF874FC8B724D77DE78172E682384F743BE6B 1AA26ACD6CB03CF1567C9C2CBD6CD141A9F4D32CEB34D5947C9F84AFE8274D01 156666C7005ED5C0905320578FA56A5190D4E0676A0FB87B18592BDED7B82D18 8B4BFF29757D3D9A1C7A80F2C01F13FCE7EC0FCFC3DDFF1E9C8CEF668572CF93 18CB7E3BB19C1FD74FD12D61324168597C8ABC7D913A816E20E4263412C0CF0B 6142671F0E05FB717B0F0E9799655742F5006ED873ABCAFC4C25A94FB761DB7F B9D4EFBAC4CA6EC50839740D7B524FED377CB240A00D64D4297FA236FB765B79 6FF944D619926729F2C121CF5459C3C4611227D8D979A6B3F5EE6EF9D64C9EFA 9533E6A330FE17113B9B8732A6A36AC96443E4EB5BA1F8BFED55CBD0990045D9 531EC3E28A71B1673FB80871C0D6DD8B603C0A037C77871BCB1E41051F9042F3 2A004F3509A230B2578118918F97C7BB8B62E532972120E1847A314C04B75462 44474F513F8F91E616AB868D0106D037F912A27BF2DD909944245C93323C8145 F36A826992C8E5FFF579E85965F5408100B416B920AEE6561EE96BC106975A61 A8C6A1AC0878EC2EB7C1B7EB3B7E00DFD4EDBF4044F0E247D957956045B16131 1E9DC241E6295881A5A2660D5D253DF6AA998ED7554F1856823C9811B3B5ED20 AD2FE457E763F1E38A6ED36571CBF0AF8D53B79FF544A0C6F98C72AB9F84F3C9 0C341E595B5A7BFE2B471EAC3CE6C0BB9A046AFF04FC42A9B03ED435197A7BA6 7F9C704283837A76FF09AE99CD02DFB0FC278B529C5B6D43B55A3F3ACADBA73E 0084F92B6FBCC5415159C5A2DC2A851524D166C701FF74C798D0EFD52011E7FE 7D52963D8CADD372DBFA13BCB3E17E0CE57CC25022A23E388B7E2CD22F1A0E0B BCC5FF8C62B894E007770954E9957E64833D6C5C71398CE6B5584FA1EE0C767A 8C819D6C97841D05F3E04B93C14482B1220A197516ACD13D77EBC28005291E4D 768B5FB2E13FA674857F694336798F4D72EC63B04204DEE337CA87400840A563 CE4648DB45614A85B60F2F566FF1A89B52F172A5F3EEC3C591F4D73D5B568E7D C5E965DE7747FCFF4EC7D87EB05C34040DECA2FD3AD2161C481419E3431F6BF9 6E5F30A5000D90616E352E4D75961E367B9AF647EB2552FB5CAAC378C975193F DE3BFC16FE21CE22958AB761E47DC3F2D6D1DAEE7C76842BD815D75665525EC2 DBFE798E6A68580FD4C97973A0AF60A9A45DBE10073E3505C3EBA20AC324DEB5 699DD70EB58740DCC4BA984C3010A88692D4F22EFC3F4134D4AB14C3AAC6F899 47D125EBFDF16D1996AD3619EA85D575BE3E15686896BD0CD5578D06C0F9F4CE 48D48A5197F98F35349E3D0D14944A9B0B42BEB9FA9A3DD7E81B98479ABD173B 954BE23ACBC7A3C14544F068343DBEA705BC37937135BB3293284BA012C31E69 0347288EAC8F6969FA394AA96DF97B2EE7205F707023D52C8CA77640715ED418 B7B980BE3A2FF165209606EDB80A7002968C90E6D986BA910BAE37B9710ECD0F 426906B92E51F375B34177397798EF0D72D00011A5179C7B2AB4AA5A1FA0E9D8 609A44A36BB4654E8E3B9B55C1B94FEEF3539B7FB35A1C6FF550F144EF029EBA 1112B5D86F8D003E44BF8E77EC2BC29BE86E8AB08DA84B8F3F44DBB74513AB4A 9B9EECD3C09D3775F784F6D41EB6DC945854759B8C399893C7B86193998C9AF6 B6EBA334E42E05C376CB7C7E6C18DC6ACF5CDC8A222C25D7D7F48A0A94D2B63E A0379645A89606859F8B88CEBF567D26EA28FEFA723732BCA413609014E6BC50 63393409AE44B7356973C2FBABFD299C0C7D80A5BC063CDE722CF1B137123154 35328FED9E7119145958CBCFFF1EFE2AC3FFABD2A94D0D2390D6447C90FD47BF 9E6AFFED4587E6A9B4B1439921C101C230C6684381D351466DE01067ACE116B3 3B820BA74353B091F9F8A854E4C5A61DBF3CCB017E5E35F756077541F0454370 2BEE7C54377780B0FD4E485260FA8F9B7334E7FDA09935A43F44D36B28411178 CD0DEBA56427A450C1BC2EE2BAACC2BC51A81DD2EF1E017D56842BB04E2F7FC7 5DA62F2969F0B9741DC023342EE700B1397E32E2D63C35F7F0E6F45B0BCD1C85 8C7E0919F96124E66268559F1A755B2E1A616B8CCB9D98D2864355E6F5E5F789 C18EB54A63529430B3AB70D087CBA6F4A23318441E3B17426A0139423C7D888E F1DC743699402576CBDF6A058E5BF05EE472104A59134C57CD099D9424B1922E 838522A895399E06B7ADA435DB94B681E0833F64ADD0B8A249D8CA89096BE721 1A65AEA0DBBDA6273922121E92F29A711265A96193DB31A76FDFF04CDF033779 33294AD80920E7BB2C87534A639415030920505D106E0AEBB8A8C5878CE02456 1A4BECC6826F01E8D8086CD3C213D5F33B80C8F58302E73A9556DD0CBD7CEB61 65C394134110ED1E23A0E3D0BBCED74EB5CDA22E80A8CA2FC7005A3D8D5D6E64 F0C3C9377E8541489C28FC405324CEB0A5DA14980B1FE43A4C4C566EDBC7A852 8A1B6074DFB04790905077BB47DAA75C0740C6F8C2FD08E3422BDF2419D6F7A7 35540BC51CD3A4AC1A5BA0B78D9AD4AD9EFDD17050E3DF714109D10340DC9574 7F1CF2D2AE814D50B67AC032C19184A52F4299F4A469D852A3685AD3FC5610A9 58EF011BE0E249341D9490C8C0565CFF9B73D799A0F0E543C5F9B7CB8BFF2D90 1D4DC836B1FFF64F9F52E76A3A76F0F44232B4620BE142FAAD4311DAE0028388 A5F3C11C7367442C2269BB2D6892B0303FB192661D2DD29E79AFDF11B049193B E9B5F16694E09455277F279CC71C8E22CA348C151F8F41E58435168E34BF997F E52C843A0D4B13C28573A8F7BBC6F12C022B4C33567EF3C4E04F7CD8B0F512EF FB7915427F99BCDEE18628EB296A06A3C4AD526DB3C1ADB4732E3342647E26C9 E72DC365DDAF8B48D949E0F69A7AC2B7AF6D4DC3F1C3D7441D5B00EBDF7743E1 A6ECB2A7BA6C68F39447960790336138172BA5E9DCDFDA167C2903F7CFD68C18 3A79C60EA4E3693F4FAFDE680FD4F2821631F62AF90C1944614063F73929BBB8 90C8E84EE8962A4CE35CFC3917CD2C5D9DECEE6F9E9FCD60106BCC6F4F3D05C8 F61EE206F8F07EC091C3A7067AF4A04CF5F83DB8AC7C9FA1BD66228554C3414F E67E5CB086BF19935BE129C2808B489EC1DA2601A75C0B487657032B205040D7 D61325A0A857E37D0EAF6302E779BBED2A5651CE645CFF47E59B7CAFA9266632 46BAFCD57CD91AE3F51F5EF7039DD184011B7B7F6505A11E4649F7B70E37F8F4 9A91616E5D117BBDB90EC6FB453A01323E9653A8BE1404DC59968220977CCF90 89787FF1BD66A511B00545916D06AD21C5E4682F925F01D0B265C7737882D296 EDBB7F76DF9C9448573E54A5EE2A4BFB17A2EEDDA5F17389C2FC6181A6331B0D AB658A96EC37DD0B65F3A88ED59721503058D84E30896886442039F3AB76AD0F E60EF25C5269F2F122B8937127158BEB414D78A09684C0852B8ADA8E0E2C62E6 B225C30A4774EA459D0525B896C5F9163CB3D8DA6E4B6F85A94D6212E8E4F435 E92759DA17CF32388095EFC4954108A4D67D7B36C1483EC602CF18A994B50C1C B20F3A5CAD04A3ED4DED4B075242E5B3B44A7FF9A76607A156CC6AD8CE6C8BDD B68BEA3DA881B7E2FCB1C967F9E6D970F3A63AFF98452892ED6D0DD66310CBBC 224F848C99C1351DCE3F84FD75CB36F23C7BBA955E030489BDB51A8CE1A21F96 0DE90966B9A28289434CE6191CEBD8E77BD4B7FAED0B51859D6F1086274025A7 594EF463119948D4B63E5708CED57C7B300B2FEA765B68E59EAE5D9843404138 8BF05442133BB564F7F7E2715C92062C37F7CBB8EABF2D703BE382DC8BE39FD9 3FE97355DD3548C93D90169332415AF7D34053F4A4EB858FF60030A111F4BAD3 8BECFAAD6877B45A566ED28989DFA9EA42ED1E32F3728066F2DA0BE0EABA331E 07309457C485DBC5500507E58A25C8012C377356DB3A64E2C5414A6DFD12DACC FFC9062980372FA01A9ED15F96C01231D8073151AC5ABD29BA4A165EA376E4F0 DBED0C9C4EFDFD73307D7E1A9EF8758F824A92E28D43606A872183A37CA341C9 11FEA7F5A783DF400A7D3A3F9760FFE0A1856238FE9B6549DA5DE7CB5B3D07A1 16C364CE94158D9E0A162195CF6DFAA856E64BDB00231392BE88421A29705AC4 10029A02479DD383FEE2CBE95660BF2461C5C9AEF09AE8D2EBA56AF5F3E391EA 173B346DD97505EAF544FA8B6DF5F95734D88FBD99F507687FDBE38375434C42 7602EFFFE6EE5F1A494B2CD357B334928D122EC1F1252AE342D8BB2648F01181 8BE8FEC65D98690AC53719DE45DA83A7B18B94085C01A2BDFA5FBA739453BD34 745630AC2A4C793B6AE9463220934651C936D07FC2D29804D2F3134C98978ED5 C003C73BBAD46EB164B010A5F5C34F34E8D613CD85F54A43288B69A9E79092A4 39C18498EF22E41C20439370A2BFC1EC7F32A6A7A68FE07E49AEF32C5D52B15F 9621CA061491AA6C42B7E3BBB398836A4419F1C84DC5D3805E94B110FD88BFF9 AACE0299E84F02516C6920E1DD806BDE291A2BB4189F4617FC799868A773A51F D274161AF5814A575CB6CC25B287C725970B5DD8610B5052F6FB6359E30F9CFF AF87E1237BA3CD4D4BAFAE3C79037ECE00DB09D888CC7C4D7219645EAFD0F304 B3D01FB8515BF6A7B103F850304CA8FBFE0633CA671910D8E3721037DCA25939 40519669C1DA30F5789962F2C31A0663F0F901537ABE3F1757AAFCF2215633FB 7A71090207F71F6622CE5F8E44EC96CA2888B1EA2B401BB867432EC8596CBCD5 78816209D3D06412F93C2C1A78D554F14F60A0CEAFB45A58084939B1D32115F5 6461184D666B84A18C3252B2360DAC1EAB8F903FD44D2A62BEA2CE222AA71E27 3F474C6E98E29594C543339F8566E07A79BAFEADED1A17B04774C54B200CA425 49FAF0A917BFAA6751785967B4923693875FC7F2F96D04B86E1D588B1031167B DA6C842115B2C0B9AE29FEC6453DDA5243FABF7CABD16895723260E6001C76B6 81675F5EC4D321587CCF4C49A020C549FD18E828C04CC9D8E64E3CC13295621E E79CDD37FDB071310D4CB6D88A0B3EF3A3E5EDFA93E6DD7AE5BDDCA59B8A1561 F894385DC7C08528FDCCEFD62C93D0ED656F08650775BE182895ADDA40F8C3BD E4B43501482B51896B048BEE546DCA7F12728575512EC4A5C321BFEA9553D2CD C00635411C8F8802574F7C72914BBE9E892BE5E732B5250E265C8A8833130566 A0923F880BE0869D23B26D88FD6D193D5A4BC6257DD45193CEC9EEA36E8B8DC1 22B143AA050F22F196B2965B7D2831C7B9B20878EE3A7C7BE8358780609AC9DE 1C82FCAB5E8784146D07AC6B56B69B90A10757A5B9968A06BC63C0F4441BFD50 2A6B3098D11820D375EB9335573119A0235DDDD07DA7B09D51F8F5179E58D1F2 5BC54EF5C8A00AD5EF633FD159C855C4CCC695D1000F5B6AD7804F1A592B58D2 DF197F87C989B838A9FBF213E8F0544152B087D6AB83BBF2FCCB7E4804C3B09D 8A384EFF3C977068BEBC0F1DFB2DDF83AF4C98A3E71754119BD19C37305C005C 8EAA822D56DEC15D45B9694CCC9B8C9EF98FB5EB3D7406BE35490DDE6DFD3D83 15AFDF120D51CF3421E35205DFCDD753860B0F6C461AE3AB6743363C25CF44DF C6B0E8939FE78A76B724F2A7FD6C6BF018EDCC8B6C429AC40CEA39632714286A D36078CAAD540898AE472F4911728B598303C8B1ECCA79A797C3A4F27AA9924D 6616FC860CCAA34020B2D1892AF19D50CFF1C8E6F121CE477BC13FB3235F5137 60CED73C8C771345EEFB470C543C59D960BE4E232CCFFED869729A22714A5F0E 7DB43CE31215A0DEACBB95D381908FAA63F7A90AC16BAD16D41CCFCB9F98E764 2A199007DBBAB34668B61D026F025892B1DA5E6206FB714849A27815C6CAEEEA C922B825E57EB8AE40DBB9F77A99701759C1BEA3DE43B426C5E175B059005BF2 911E685D0158AFA94041A69E4805ECCE506F008FE43CD00F569AD790FFC22AF8 31712233AA23BA994FB0C2B8AD995008F4A3B63AD62139733DB76F393B40E6A8 32BE2232CA5604701A10570D63FA6FAE3C75627720146C67EE26A36D27BC4240 CDC4A30790A98F2ED8F648FE2285E31989960E6FF6E7FEB0C0477DA65B79AEAC AF019F736B0BE404FBEE5CDA220987161A2E2BE7F4212FB8E2A9BA738098A244 26D57006CDADE0409B1A248B52378E7ECCE82BB0C4152C6E1E81944C5799AA78 E2FC7A3A7C8DE2428A289A31E3E3D4156C9152A5993DEB02FAA1FBA84BF4FE1A 224F271635B0839C73E74AD8F08C2C5000002DED115B2B6A9B282622FA6C76F0 44D17334950BA37C9166C49F4DE6BED035246FC103EB63B58F32C361DE110F6F 37AFB159DC12154F33B3232CD9E5FACA6F789C65B55FF6F40FE55D00225EAF9E 73262A809EE686C0B833315629060D28B793791C311362F0181A639920EA66D0 5D0C6E53C629EF606553FF05813F40AA4B08E97B5BD3461C65559F012A91B43A DADB2731340CB9B78CEE8C67EB46740831A3AC7B2C5EB5F68377A82E4F84A142 BE187AA5572F4638735B904BD4BC255839707BD8163CFA6B7A768871675D0C20 3D5C48BB2BDE0DFE87FD7F99A211B473C0606C8FD40D228510822C4DA3FB1A29 EC494C18496F29927699EA76569408F6ED842CA72BF1EE38C5FB4B25956D8E33 7B201D182840DF3E5DD5988C57E222A20C90D0DA6FA6EC89007816A201236194 B9D1C0F6FDF6FD995BA2935BB54CA158C0834F671FDBC1CEA23A056F51B0D8E1 B1412623F397C0BEB47D11924AAF00565EC8C333991E3E2DF88374F58C6DAB6D FA3F5C99D7A9B3301CA9B795626FB8660D90FA7BC864F8346CDB804C9A6D59B7 12B2AA3D7D26EDDF21FD6E8A78841C25F3AA64346AC3C6BE02C84D32EEF198A9 1C02F5E57840EBD7706D3AF30DA71D985F03669B546C11F6885D6657E3CFB3C6 B806044E323682A8156E1E364D03B20E1E09F811487EDB36C579733D727024CF 2AE4DC7D181ECEE6BCE030DBC1A424E5D70B18765BBF55F28EB9E71EA6161CE4 DC81C1BF7B7A150F1B00C2570320018B4F794571972FD93DB83A1F3EFFA785C9 6A5DD31E5D9AC391C1496051BE4A9EAB151E6953AA0CB11DF76574B9CB3DA678 4C40D2171BD9AA3BEA8191AB8DEF959806B3517D93720C3B80C84F4714A7B502 51D861E4B31D529FD3E3F5A259B0CC129BC45AABCD2467FEE91036F0C43392EC 70BAF2B73398289AC51227BF5A0163B2676327EC212D4D1A7C001FDCB797283C 4D68370AA66718F35215DC1FB59569E3D0D54D8E09C86CBB2428F0FEF4EECF9E C7C334FDFB784CF7DB7CA35AA364DDE7579E5935917E4334A7EA9A69E2FE7F5F D53193AF04F8447E9EA642D3BB65009E80375F9979B2535B260CD9AF6056A4F1 75DD48A796A43EA25E34BA76F1681A3282F7FC211E145B0F6ADE17A52A09061F 578841058F3FAE9DDA4237FE8C3F7F6647157A8869A662B423B095EB63F7F052 B3A4DBAAC640D47AF86948448DD00039DB41E9C5BE1A7E6BBC1D9D07C041D24E D01904D1B9A2C19D04EF925650F5D3FAC9E12E45F6931C49EC99D5D48F0EC6A4 E93F0E05A1B081B2482372B2C20ED895E24A946B868F9AB139E416481F96D34D 66C2FED66CF844B490B537561865299EC85BD8D2AF4ED82E1BF056123ED81317 24F0C8DF5E8506ADC771EBC6DC5C92D22B24742EC9A22A5B2A839E56AE8D0084 A9C8FBCC63BCFE933DCA6C5750D66D3003483BB552BBFC50B6282CB83EE4CC6F 73E5405131AA65904E44E4C53E38D79475F488283E607BA4EAA7BEC7C29D0142 278D95AAB46FBBCCE17035899FDB03ED55438448FF9D90FE46EC6260A0CF478D 63EA38D0E73F81D6EC894E7B6C7C1C126D25E63E154A5957C949E1954CF324E6 C818F612F8C3F6F8F8CDCC953EAF89235FCD784790B34EC51EC3D6148A1C850B F9C8550C3297DF93CBA6EEDDC19AB1B1D34E9E73D538A9D3EB5F5102F30E9E2B A98F5AE4C65321DD0ADE2D4319315BA79860C1C2C5C6B23F0DEE84EF211BCD25 90A36E4AA57E019BE961C4CE2159B13EC81FFBEBE93263C3BF8ADA61A8B3B4F6 F0E897AA4203F871B2CA7E9EFAFE44BA7943786079FE89357E3671F2D1F18C72 F6BAFF2AD679BFD30458638BE3EDA56444F2792CEB35CB3B5A54F297C18C9F5F 094B2CB95D4C805BD1E8BEFB2E94D6B1E29C8B48E815528729E25E3DEA3DBEE0 069466A1B34BB3A7DB33FF0D1E748F14F517CEFA68443275A6606F32CD1DCE4A B6E7671FFF37485AC5A6576081C7DBF42A33D839AF644E2F064AB47F593BD977 DF416D5E84EF130DDB7F7C36730E3C2C93D3D09CC628786FFF84F09445F84BF0 74C8CC7F8534F6665C7E1A611D10B7D54D7D1E5C6B64AC1245F583D6D7FC90D5 EA0BCF6E4F6C2C534E57E6A66FD4B2CF7A00D2821A1BF85C1A4A2EC8A4342E89 5B831855E0493293F0D826A2B68489A176C169D9703161C139092864014A9D68 966827384ABFBED5DD7D1F7027E661820764907CC31688C203C691F8A5557B0E B69376FBAF24F8B01749B0239D95A24F8B1F757AF2BCBF268EF6EFF2482882F1 15372030C5EDAC79602185BBBB66DA31D6CD94A54CC57393DB37CF5C935526F8 616DD6250E0626CFDCC5E2DCB79073DFD2C20091A9E1BF670DD32C0A3C261043 CDDE7D0F9D97F5B31F26A7D9DCBD41EC166AB8E0C0D23CE3C3DA85FDAC1CCBC2 2E6AFDDE32D88DBF9348FF2B99099A0714219620EECC1FEDD4F4262C83FF11E7 9B1740A4348628C21A3D5F6FA566CD109578D0D7CE8741D862208E0F0044E95D 76D3815939795C826A537FBE9B5F89BABC652B6F2E08C882DFAFB21ED1954934 57631D6783A88026D15411CD48CCA7B81BDF3077C87C5599B8188FE564074D9D C384D14915A11337E738A6C1B43A944A6E705F804D1FB4D0C6572B9FB19CB918 D4B2EB37F0BD5DB44F9B961911BE9B81DA6ADDF7D1915E60A32560F57D6FE33B 20623DC7974AE4848183A99559177D44DA6385996F3929BBE77F363B982298E4 C29345D2F59EBDA721B3F94682DD0B5C05A6FD02C10AAD8177104A407FC15B29 EB1B34F4121CB3FDB2828A217D90DD9D7CE2347A2B1119C8FC5EC15264DECE92 F8EC5D7652A32E08BC9CBF84DD10801C984050E76789B12EDD6E57CB0C84D523 584A50C92F2BAEFA767D01D2A8FE8D086CF818B06C0DED09FD03DD6EC008DF0E AC01DFFF20C33D62D9AF2E0159D085C71C28D513A45AE13CA1B65DA5B4757092 6BDD1FE6184888354F332A6C44BC31DE8A721126B14D475E68549CCEA920DB54 6C8DA552E69DF2B4F2D2CB2533A5CE8D27F91D3B44FA84B4821D21B02F212F6F E6267D777E8A10DB921C47303017179F78A5BA994A3DFE7A4D43A5FD07D728D5 70E9E936BBC50D28B55C8DF77F7EEB653A6A112409E80037D5FAF15DD76027EE C684FD4923F89FAE1F7CCB85FA5C00D52BB50AC32BD60E1B9DF6433DD0C66A4F BAECF259E2D70882720C3FDE4704A660E97F852CFA8324DA31B164822A028C79 AE1C09C0743B08A1A1C7E35D6FEC85A1E0167FC4E02A0698BC4C5C166A7FC973 38797F47B2D514BCD95FAC0B0B6513E91D5F9C3FCC905C1D8B650FBE9A79614C FBA262EB2C414E437239AAC6C218C0E3C44C7EEA04E65A3236D8606E912B47F3 381EF256C0441AB6E3E3908E9F74E1EE01A587D27E2E21348441B8FB7D332DB4 097FEFE4BFD255D42A7F39B7FE156E7866084C76BC7D04D75363D7ED87E6D1FB 92B2FBE5373091FFB71B8B458899A386B9E86A551E65B65C205FC9A2BE10B4E5 9C789F30EC5FFD2345A3D2459F5169F4AE3DDAE899EB47136D12FA62F1F86E25 78DD0D30371C9AC0BBCC5725135A3902EA8A9A0D5E087F28C7058ED16528D28E 505E97DF8A3AB3BC8759F87FE329B236771E9199DF86E44E7B47ECE15B8653AA E9D5FF7293910C08A42190122F4465647FE2F304836A464CB9910A2F9A237F34 66A436D5EB618BB7F2DD48016BA73FE95E69654EC7DF5F7070231DC1D25B070E 50BFEE8F12E0C65CBDF1D45F21430642F2E31995DDB0BB2EEB3676868E91D474 D38165A21603A1FDF5D9B706D278DA5B8A7475AD14E27F6522EB7F6CA9B2441A D4A518B54C56461E6EF64F21D5653B235F4E1A098C828AF5801E7DFEF5A97CDB 7F22E030EAA02884865BFAC5C2C681CFA0543F95703DE95E6035DA02F9E80970 020F18989BAE20CD06D0EF4265AA00881AB7594CC2AA41F3694B124DFEDBD6CE 66B492FB2A1D1CBAE0918AF9A03F721D404A95CFE9AB6FF5AB11E4FFEC619E4C D7B4817709ECD19AA58935152E9674C3676166D281B05D46B32E3585B592305B DED86CA989D82AABEAA197C793711E06EA1259F1DB1BB0F246FCF1A109CC6B8F 33E678C918970BEC353B641A5EBDF917ABF13A4864DA7A75810C2FC3288F74BE 96AC7E9E1B1621270E9E33A8D77D429836C52390D94F1434113460B061E70F45 485F64F94839934FAE02FCE5C0849425AF8ABB9FB65D0A20DA312B5B627A68B9 3597250234170D17A68CB241E249FA02DB0580D86F88B4D9A559AE16A091AC9B AB9B89598D3083DC2411F7C2D3682F255E437DF5EAAD0FC07E9AFAB10A1706ED 3698650EBB2ACA9C5E98BD38B14F7F726BC6954BB31E1685150832F0761112EA 8B675A4FE972F327E03E0A941B15EFE424D797562880357D909E130F34C97D65 3CA5865584AC0763BDA370C85EDBA67730E2470B202CB679F61606871F43D8CF 47805CEF8C112326BA352B39AB601059DEBC26FC96352415AC17641FD810C919 2731E32206F73224C2560F77B1A598F8C220940B002B1E5F81B8F61AF773E5A4 E56AF9E1D5BC8F7D98F447DE5F73DB9D2868055DCFFB32904ADAC4F9248D2F46 9E4912ADB78B0FF3E5D67B390C3211A00224F59C29FD49D4774BBD1B01C25E82 CA5F3C0192F653E3033D8E751CF75809AE7422FC31BDFE11A1D77311AC80E86A F56B6762EDD3E3A0EEE8DFE0B4CBD1A6B2D025325A2DEC8E69A1BEA9733937D2 710CA628F522BE6DE62842FC7A9ECC05623C29DD9D16908B924722FDF347CB86 9269846F68D2B08F22627BA66283FAC1B4C12ADE6FE5649B25028637CF480CBC D1EE35F3A5158E490BD129CBF89B4DBC3027B3CA0DB23B7E686E3B02CAD85A94 115BD6EF3E5578BBD26059B910499170C9DF92639F5313432FCAE4BF14845BE5 F3D5B75FA5945B4EACE653F2748A835CE627D16CEA712882C441F126B534D9FF E7AE37C5BEE0DB6C4C6E8DE5F5B69A72A1D986601C16B81E6EC192037F1A63E0 A35700F76F199EA135EE8A7178C74DFB6514790EBA545F68FC90AAEA7EC83C34 D1FA155C16A31569DDF8079B2377078F61B2F19BC4BA0768E223DE1BC0A34EFF CDFF5A56025DDC8BA5829C1101B02CDA81B8B9FC4A7581D9072332D873026C3B EA51B06277C5103FA33426A4184328C9006B082A60363EEA563FD4B4808698D6 564ACD944AC9455C72F8A9F55ADC88F5A9A8E9CF815E9448F5263D8FD5D3C764 D8D76FCF6EF742D5EE99A1743B01A1CB95BB6865C4B734CBAF644CE8491416B9 DC9EB5A0E194BF4A6FA38997C39246AA09F9C25460092CDCAEAD0E219689C86D 710160DB2C39A42537889848DD8298DEDC5E76DFEC8959B35CCA09B8FB2FC00A 6AF8A895642134E6A2772251C5DF25D66DD114C9809A1E7AB4DD722C58F589F4 51D66C6A009ED64FA7E2CAB439C0A6A3FB358C57ACBB2881C42D481D710C7D5C 252D4A5EDFDD9941A954FA2ECB7D5740CB38283E870A8A1B58652CD8582AAEB9 D2A339221E0D96CD4244E47AB2E2FFB704375F8BD7C86A5EF012462C4DD23467 A41B1432FC357BFB0A74858F1C26D3D84F9334DA993620204A56EB9857B2C1C1 D06B60D7880F07BF4DD47E875093D86048ECB2C0FA89FD6CA1443B11FC9A0751 C9868C20DF62EF818A6F2D970AA271A92C286EE197EB9352AB63998E83E53651 36AC1B067F2CFE2FA46D73BF161DED1886C623893342CCD6F2D4DC5CBD3F1D0E 9D0D05426DFC12A15BDA53E8AA6D4E69EEAAEC651EAB37F92FB9B88EA47B5D80 0561425A6AADB15F44CD5F1576FBF14DEF6AB06ED1E9AE1E097D0102EEC10427 C4FB23AB60EB975D60A443982C5439CA918688BBD557AE5AB9591451A3A162B6 795985FBFEB25A5735D1FD80AD76F77E97DE48F19B0C5D2DC8E7A1E89DDD4464 832A95C45ED4D36C812C6823DDB0CD830A26A2C5926CE69DF52F8BC0B36F2AEE 9052FC5015A8A8EEE98E0965ECCFDE156C6AD625ED4A81ACD78225998C1D9565 AD3FC9ECA06C095CC9571CA342150A613E7816C258081EA69D0A80893FD57986 01513EB002FFF12D708920E0A80705899C533B05B53CEB7FD7ADB4D726A99878 B15309CC52991345F1972B17E78B1B4F9461440A1FF1881C427F44F5880959BA D90C5280BF5ABED54D34909F4EBD221A7E0A6E640B53C367AD3CEBF8C02E3E6D 27F6774FF3E4F402C4A5689AC55D30A9328B6997AC2B65DA51BEBD127AD8DAC5 14326CDCA3B91803095B58E522815BB0EFD5D6AD2F8FF4AD1DEC5F838C435AA9 8DF5248B459609A8D03D915ADBF5B5AD3D9CA0A9F437B16D76A0A6A82F4A5BA4 5E117462A07FA8B5CF5CADBBDAB35A3392E14F90FD03B65CBAC51E85CB0DC612 174EDDCD649B8534A67EDF7BC11E3C535DFD7E996E67B1730C0DA563956B321A 836E777AD1D487B86577D02145E7574C02F0A84644784B8D89E466530A2525F2 6C7AA52D8599159683F2152406ED93168FBFD06385F1DF8EF700025552317DC5 D9C0A720105B27D032116F4B0C787E2A880F8E62F76AD27F961F91C17C38C123 8B372CAAD8B6C21B81B85C98714E2AB171378DD807478818F1A01E67086C2061 A845C0ABDA4A1FE1E7BD36EA012FC6B358DC36B30B0B1BC45F89951EA1009ED3 C118DCA7738146950783858FF685BB1B75FEE64A43E7BDA2F614C91B90C11A6D 651296775262034B96DDBFFA52710DFBF5D594457578501147300305B27303AB 8B019213AD9B6C6021E1AC8037B71C050F97FDAE0C9C60EFDE6AFB6897FDFA0F 42477607466726908D5714B1C3C6DCDBAAE6422EE18813A41DFA6D9078BABBFE 2E4A49E9239CA638F7E0CD22161E1637C600349D0CBF09EE1AF0426619FE5F40 B4C994625B79A43EFF258FA9167C877561EF33212F521DAC47B35C85F86E8A1C 5C7C021FCA643FF3B9128F5F8B3CF521704F429E7EE907C0D1FF539E4056F141 9144062F9BDB94EDB2757F55793C1B37848109EC6C484F70519949721AF55A98 AAC611C950C884F332FB505DB3A3FF6DE5165FF0550D42E66203D2B37BEDE772 C02B2D3C73B8EF35DFD4E86DBA223D1D0B8C778A6BC3E843AFED974670988B23 0D4CA16B1F790E043993772670B4A5EFA410449E7C9621CBE4425316603FAF5C 760EF24DD530246C1458200C78A7629032EF04BD4AAA644B07BA64B407F23C23 9BF24D2951ED1BC219EA5860988510A75ADF03B7A6B0A9D9CD75ADFCE623F9A5 001328E9C224126CA50C1BD2B843DE75D4C1DE10E4BC911A5383DD07AF3491DA 321D99017769583D397B8155756558F425A012627F4496320E0CE2CAC4318DF8 64F7466AFA0748107D8722CF248A321AC708D10FFAB7330B216B92B5E2E30934 EE12CFD7D90557574BB090582B631A216937BB0EEC1F2F4E342A0A596B909D56 933D861A5C9F7BC5BE94861A2D0768F6784139EE99D02D3FE7C0986CAA40A341 6D0FE74B6CE5B299C1BF16C1EF6DFD3583BD979A997165997E3D3CDF53B157AA D42BAD69707D9BD657943C98B6D6C080A500723BD1E8FE988132C2635FC3264E 401B3D8CBDE0EB9D9BB32E94E87AD6CD012FACEB3001862AC5097258F535873C 2D2D1B0469A9F70F911F3ADF45D99B11EA050086AE7D89B9DB1B8BEFDB380DCB D50CE45BE4EE41624F3B66A295022524EAFF694835E211B10C9B5C28A60A789D 14D8C3C5FD194974C79C9D7656E89853ABFBACD346C37EBF0E14F9EBAD314749 9FB8676CC983B1831BB40E6082C701BCB334C71EDD680BAB317DC6939EFB6164 4BF85108E2FB65C05C1C72EFB31E17C249C911D5875DEA5ED01B3C639004F0B2 5215AAB19E61CBCC886E863B1378ED59A580865BED5D3A89051B1121C3DE18D3 A7B71F31C19D751F3FBA44B3AB05E8009CF97345D1E5B0C10554A7B4DFD425C6 445C4FBA9F19F71241AD5A703E583B490E54AD31A4BA0689C64DE836D980EA7A 432E30090939A6372BE8178B85661A311D1AF175428F5074C9863C96457087E0 A0BB3F518161EBE477C2CD2BD6D609923824070E2621B799760964115E1321BC 1B618CBB73F63F2A724C38BC2806048F0C24653F395976FC4969C7DD04B1C2A6 6B54ED5721B2F3C2A67A56E05B8C7F077CFD740C4118CDF7929265D0E3A62394 A44DA73A385F9AF86E0925C8FC5264C087934393EB7EA21A270A5A7787CE8574 3E84F5FC97C3A52F24B27DB9C524324AB537C75970664D7C8361DFB996ED6B23 724F3BD9032923F850A98AC394610469E181EC62B0F66FD584FFF636CFA7248E 03F0339366EA09C7DC58387BB53A9EA0B48841612BBD972887EAF66A0A030E67 412003C52123B5C9320C8345CDD77CC336F13492E27CEB739DB4A8E186568D45 28B041D9CD87C53890DF3EBCFE29D5DB4624DDE7D66A43A1DE23E35780B4400C 1B0E2068C9AD8E074D4D8312EE1837D64A17D7B2785CD604962DFF7C6A79878C 1DD5ECF5551417E03FAB95C532FEA1358BFD35B59CD07F70CE92ACF86640A5DE 781B5C850C7F95EE4BD48C4780C92F0640CE6A8AF35295C160FAE1733C53C707 97B9D0624BFD99DBEE8E9BAE1A7DE384B9709407DEC9751D0AF5229850D46A82 3DE88B2F366B857A85C4A601A382DED308E940A745874EC7FF3EED947951D3B7 38A241BFD2C85FE78B4B64F0BC1DEF083B388E2694F593B123ACBFCBB105A32B BC2D00D487A6A8CD0DED6C93AE1379A7414A59B765508564A6D8EC100145ED60 4AF405BF220F1568C6BE9D6070F418AA51D2958ED89ABCAB2E6C0B85ED969A1E 8A3236F0919FB6A34D455C26F533FD57135040815B38681B96D3920D1FD75BE8 A7050A15C48FB7FDA176E6A0B551B2F0C487AB48A4E847968641DA0F338E602E 3B6877929CE951ED92423ED15FB893474388F3A7DC96A603EAD4058B36CA9A7A 42468D43FFB4B750C6C90BF9C15C5E1CE1F9310BEF7436EC095B07EA13196A55 82AB9FA2B19240FED68211C2806899987B0290E72A6ACE4D4B174ED1261BCF4E 24DB391140ADB658ABEE6A8CA3ACDCF37F9E48105BDC7870082EAA100CC53427 FEAD6905A105040E7D63D9B07370478F8B87B5F123B306A210D1EE3F9C238F50 E924B9EAB2935DA83FB52D11548015E5DBF163179D124AE2B91DE417EE90195B FB0CC4920F98831CC192BBB246D6A976FD6A9FD41793A8303B97AC5BD1010F28 6D96F9A1B6D8889CFD82CBDB3461E83D312496D5810396B657B4B1B84DC52C4D D223C61FDC8163F5F10851B9A6461E4034714F4E3F2064090E409B153124C12F FE84EE245BA300419448DC758BB6CA0B4E38015B315CFED85934115416C33083 245356C3F7B763037C84B22711FE8FB311530DEFB4B6F74A4EE7F9A7ED21E7DC 2F3E5A21A9CBE1D7341786E615912B66D8C803F1A28079429185CB9C74B98ED0 DC3C5E7158D89312F847260FCCD035F32B8477766BF53EF370C7C3D7317F93A3 FB620581F61160FC6529FF611BE536808E2147E56725330CF280E7174A700EB7 7A20CBBEC60CF9C6BAB69A30D76815C98608AAC46C63660E4A578330AA9E7F29 CC1F77906C2B03497661CC0F1913EC1CF1BF2BBE567103A189DD3385B7AE010D F90F7F6AA68BF7A40C28FFB40A3C316B8A7884B9229E49B5D231FE5EDA1D8C80 BDA309B0BB1E10F80DA2A1B69CE7A1E6D5B15D58F2BF81C16A82845577E004FC 8B2B19AA971DBE434F03942C931046FFFFDFDE7F094AE60F7432683838765C31 4AF5F2C8CDE68114C40E03FFBE737B0323795B585368F819DF9D8525849D63BF 736605E92E21C4D88CFB0BA9FDA028D01810E80EEDD6D6E3D2E52B335BDB6F63 15861E3EA61C055C571BCCBAAE46D8A18E58855FBD421C27065CE5A202F2E3B2 BB2B7D257F89A086EDD59F6A5F49BF816CC6530BC03FBB9F12CCE9F15F4F3A87 C279AF64A581D514659BF054F47F5E95517D26E91BAB4E69A51D4917197623E5 34316BD306A28090AB782A7C749DA1D5941E31815783C93084F30B07F28585F6 2918F08AEBF0A1DF23317766B100C21EBB30507132B821F278A217509297B61F 161577C07FA74A8C46872A9C4444E7F5B3C958F228E775E7768E9648891747CD C444D049E9EDA64605E68707C262E57B92D17D426E6FDB7D4BC64CFD55CD752A C9F003BEA19E583A325AC3DE355DAF79418EDBA56B537899A36B459ED3905BCD 9D106A122329BE040C8867415E7D3C667B272B9A587861781AE8908C75860C8E 4CDE7474CCDCC6E3D452E7D83E40FFA80D0015A5572BF4ED80E5BD71651E0C6D 10E3101322372A00D814332A6102FB42D3A977596243B29A5588DF79D2E113FA E657539772EFCFF429581595F2FECBC66BB444C2AA0D0C0B35DADEDC3C423C73 F42B02AC98E8FC2576597583B2D1CAA444D8D7A0AA9F274E5FC0F7B4EB3EC9E8 F80F5FC158F750EEDB3A6C1E77E01DC73A730621075947731C896355407F4AEC 20AE02236160FBB75F90F943EC0740C499B1CC8302077FC1211D73E30258F385 BF494DDBDB93064285D2BFB6297F28B060CEAEF871820E4F7EAAE2FC0B17522D 56A7E3F448DF323CC8799F8B716C22BBB75093EE4CA40049F8E61C389F9DEA29 70CF9B4F3114DCFF1BE4BA04016F79FB335A270D4E1F789393A130DDA04398D5 5F7104C165FD756BD765B98159ABE84601E065840E1F2BC21B4E46DF767FEFB2 DDE26351FA8DE34FE460C81B89F5DD30B72D6B45945B05BF8110BA2ADD4696DB 6EB91825B7F0827FE279ABFC85A852B1700D2C003D2B174DEDF7427BE695A3CF 1A5C165FAF3362D02F185429CDD47FC9BE85BCE7CD88099DCABAF92D39B3CD0B 974A6970A2CA99F4CEEEF87F707771BA1E8177E4A1BBC6DDEFB533317418A8E9 670AD5BB1582A87701A488DEF278D03B9BEC1A493212E1733DC94D8BCDB48E15 9639E619D06011C17DCA76872D72003A87096C790621936F23E6685277C61597 55876624F96824D445F2B3C54A875456B08303FB206D44A41D2161F164F92F73 D1B8C8951E88E2EB0CD684470469798A3DC44A5097D90D82E9AC7348D0DECAAE 1626D3F765AF2050B3B337A4187B213B6C5571EAC6E43AB943AA447BD99D1FF2 186F57C8075E0840B84E26E1441B7FA8438F2209F6BDC9F83366A3F508A87DD8 7DCAE5896E727631FA651883334EE89088D1A7203751AE6302FD8B087A8608FF 604FADDAE9F2688E2C07FE919BACA3F55A9486A2695049C7A6A3262262666688 0F13EEBF7CFEDE046D5A469D86BF529FCC6053D4CB18EDB2540DAE86EA3150E0 51172B87C62EA34A88CF058ED16528D28E501FC7ECEFA92E3B130B13AA517452 1A51887144183EC1D4F617ABE155B130670BD67AE239687365B60D5F8ADC9C2E A79054C39DDBA9610E696B2CB651F8BB68FA2D0A336319D7835D9F7479F64DE9 0E4AC1A2D627BABB5B5A0C779A8AEFE7DF78043B9AA363C5AE58616C347E4D61 EC79EEEFD2D0705CC0D637CD7614E254D2131E4B9A7C9067A17D0B38F1DEB85D 74C77FEA7BF3618400EE27203017FF3A2BE679752B856B9777101C55E5F64C97 341584B0BDE2FD7F4BE912FBCCC3E1E0B071C59A82ED0D1245D14E9D25878F79 FDF28E9CF292409E844905CFA6B350B6909BB5BEBE9D6DB61D23B51BFF604D7E DB6961C9EB5BB17DD5E27D1353028A349A536C26E311D7FAEA8DA05496F7588B 98ABA6889A604B3EEA19BD30EFE418E0B322F55210DB521A6FB800AC153DFF0A 246DC728F5C855093F10080C12CC74EB73C4C5100109E94F82151323B66475A1 746F75C4D46C8E4765D27008BA36082660B49D7E1A859E663B826306C1AC017E A936694BC4F160D8D6CD8F3187F1D4EDC410563203A39DB4CA69610F289D1E00 08C32C0726CEE0C02F220B484F7302CCD404329CFD073AA6094F307096BDA9DD 9F0346AD5872E53B492D32D0FF8C9A72FD1114752DEB311E472D0A8C9FC12087 DA15C8FE6206B07E8D6867FA8A28A083E0007AFEC2BC7123FEDB243B57ABF59E 9118A61EAA601A29595388ED5D1153BE8059CD4F6DD29CFE584CBE4F1CD5112D 2C58455224BAD26FF41482AFC5994D0B4CABAF157F4A38B5CB02EC696CA71531 6B5A23EC9AA88095B076AFC9392BF4A074773ABF0F396ADB24BAACE746727370 03C11A40EE5E09F0E6686C7470FBDDD1FDF39754EB97C8B5C4F0FED49648A4CB 10E5AF21F8323A3F6DC8EF5BC73D59BAB270DDE5D1286565406D9B28EC20B6A3 EAA64C547A03347ADF638A949936EEF02ADF11BA824DA34DF8EF87BD657F98B5 9E6613B2A887D246A2CE0DFB354459C3D5A325B4256B67F2F38E8031DE072E0A 86C530690125FF8FD008BD44029135F6DB3CAA5D198A12D59EC80DCBB4027870 8F9B6ACA4D9ED7E302D55D7805D52FAD167647E7C6513770DA9C92BE495BCF2D F883687234D75E764C63074FB1699607A5354A276BF2754CA511677B723070CB 93B930CB03BA872405B7183D2385560D0EFE6E968830A302AAC86A450CD39CDE 814FA29079E52B85111D3FE3ACCC85549999695CAE6D198A29248673C5738B9C F26462274C975F0CF5FE0048F68982AF9F4DE6F03535764F6FBAA9B3DACE78FD 1990F72AF51D096808BCDB3FF8CD2D6FEDAF395BEA39BBD607B2459DAC16F2B0 1D7F4BE891657B92BC609B1DD5D6F19057BCDC87EDF8C5D084BD0B660AEDCA1F 6F3C710F8EAD105B1217A9D353E197410E4495DE61442FBDDD4BF92FF984169A B2C49AC1DE80AA9DE2DA1EB74C958F1774A8CA95D0D1D69B1253B4D6BD0F3C3C C4D8E77627359C59F330EE3CC138C85963B604C098B3E20EC96DE676E5268037 1D03BFE40463F736580F34C2463DB4FD99B7A644C4B95619C5F12CBCA10AC4FE D160D51A5C90AFD102FD39D0F45C94D9BAE94236F1E25CC1AE228E16BCBB8364 C47397BDF3CE579DC5159D906CC0EFA6DB47AF9C6754CB180E00E7AEAD134097 BE5C0CA80AB3727E59F16427756B2CA2C81EBE2434AC438390D9E95B03705C05 EAEEA768E80C5DB88123106D36B775AD4A23596A27AFB0AA88EFA751FA6ACFCE C43045AB7BDA1DC584BF4B5AA1D1167C691D283B6FBCC613C756F251D80070C5 10D28CE5A7E8F254FA6A6360EE0A97CFBC936504373E9044DF5A3E57AFB5CB6A 023201170A8356D4BA7C726534647724A9C86DCC7F9C24230AC068EE3876F9E3 90EA3E440E52A2130A321BAC0437C0AE6CEFD3413D19AB436DFD6178D434C759 150ED223FCF3F9D2AA7351DA3E841A5BE2CDC0208F69032F04BB157A79A668DC AF6A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: NimbusMonL-Bold %!PS-AdobeFont-1.0: NimbusMonL-Bold 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono L Bold) readonly def /FamilyName (Nimbus Mono L) readonly def /Weight (Bold) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusMonL-Bold def /PaintType 0 def /WMode 0 def /FontBBox {-43 -278 681 871} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec D9D66F633B846A989B9974B0179FC6CC445BC2C03103C68570A7B354A4A280AE 6FBF7F9888E039AB60FCAF852EB4CE3AFEB979D5EA70FDE44A2AE5C8C0166C27 BF9665EEA11C7D2329C1A211DD26BB372BE5822F5EA70D99EB578C7BEFD44CDF 045A363056E5E1CC51525EA6FC061DCEBB337208EFF729802376A2801424F670 0E7E6397B28F15BC10B40012B0A3EAEB2693E8F7F627C4C9C7C6C5BFF105C1E4 1B2B9E8F09253B76040D268B80719E1B3F5A55AB7B892AD5E69ACACC6C1640EB 3067BFC64938F41636DB8831883BDDABC6777DEE17F2E84F1D530BC76F51C621 75EC6B727A82C193D1C0801AC492BBE281B46626BD21F2ADBBFD144793EF754A EA5F1CDA3310E83D78A098160C66D6B0C68D4976898D9DC1A08D01740AC3E7F6 8D3CE0A7E109104248CB86318400BD82EF894EFD9C9456E97055286C144D3EFC D2625110F1AE76241079BEC19939AC962E0BA813359C15B07C74D5E9868E2167 EA1199D21CA8827CDDF1BE8357261BD32E79FEA6BC475577C5F6848345BCE58D F5435281572AE6B33B53607EBEE6F862D4C752AEE43C00CDBFD258C7765B1358 5D6165EE034E5815DE79CC26C4A720607BAFA6049710EE3782BC2CD84FE2473F 1335D20A3B6E9E8355AF36673CDBE63C27D4F0E183FEDAB10031B1EE33B9573A 2E1961B7C6BAA41F7C3EE707FE86071EDE5756A00D7B3BF0A21B7C3CF41093CD 66ECCCCC22F4534912CB900B08E69574B07F246305DCBC238780278AEB8C9E55 3D096A944EC7AA9F697F354AA137DF90A9547EFEC1CBD568CB999979F5AEC6AF A84EDAEE1564D178541CF4631081781608FD38964257CF89B1C8E0120B3F6AF0 793597AD553CEE5CCCD5C4F09CB0B4E998E6E76243191AF7E93833D067833F0E 53670D7E996ED67CFE6699A6E3815932AD272AF4829C2EE08A32AF41D0C67F15 0EEA6E6D9A07919D533CE73BE753625DD658A9A49824058B3D40AAB4C5F586DD 1AA3B98EA250A2A18E0FD974135FB897B2676481C8846980EC5C15A6CF3589A1 3F6DBEAFAFE973B91C98A1451EDD31135B7E7DB16730051EDAFC10D2A9ED25CE E324888E648B46541EBD289AABD77322EA46F92EBEC5FD7A641338DF87904614 0A7321DAE9492A006E84D21EDD2CA9EC4DFAF3F3491D3024502E3DF760580C06 17D54A6CD838E51E38E72E5D6E3ABF1764E9CC6A4C56B69E963C1BF9B8CE006B 701C9523B5B9B145B6C92DD26021738105BCED3E94CECEB2E6E552D1F3AD1951 48EF85AE8B996ED2477421F6A82CA1E71C399BD284E6B82BC7CDFE0189EDCA47 2BDD5A7B8E16D60555CC1665B0458EDC336CB029F5DC16A771552DF211C44612 F4D39B6D5FC5E14BDBEBAB995DF855C084DA21E5EFD3BEC41F18FB8C6D2B457E 60950E1CEE77F24333BEF421A0AE453EC1567B6C78392AA062A7368BDC8F75DF 47CCF6216626AAAFA4DFC47FF9D123C1BD64443EB7D0F6C3883D195661CA3A1B BAEA7BCB4950A9379B1E5038238A03A23B1B4CB13CE190839BC156620615883B 0E589EE3A0E0FAFC9DC93DE177F14A1FCAF6881D65F8CB127FF9339190CD0448 80D04A83157F6C7A104D3408735BB8ABADFD4F58075F2E4A779A8BDC031F0A2F 4E8ECF24A0CA6B4040383C9D965B43485D8916D491301D6F8F9E8864D2E7440A 64DACB0A61324819BD29B657D61E2BA950218A3AAEA347126CCDF3022F452D00 E6C3F486108289E9F1B5E29E5C584D744BFBA60FC22E964CE10AF512C228F4CF C3DB240EF27A5C409A3F6AE1F1D3BE143CEC0C46F4BEFCA788DDD369BC6549D8 D02596DE943C067A52E1E24ABF132E2F1C61F31242729A9EBE877B546996C652 01C272CCEFB6270BE052F658087D5C67D702AEBF0B8E2A87C33D002B9869CBC1 77BD7D99E0ABA1EBF44D787112A01938185F1DEE52D5F739D1CFDD9459D56F71 A698EB8D7F3D54EBA10E0BEEE647974DED573B688C2AAEF49047078B06C8A968 F278BA7BCA00EA900B2429BA77A3F888F990BAD4D1810A9046288D9C33E4071F 3661B2D8DC640B8F2494EC316A5C574393F754972A1A6F8D053F2EB3FA8BF2C5 D6EFE5B2BCDF18517D0869E0916E6B555B31670C7044FACECC830BF9FC5B0245 323B24F840AA363C8C06EC0F4D58005511B0843AAFE4F1EAFDBE9FA317C2D846 55C143C4F74DA06E77B9094808F6F1115CA55B7BE5F2018ACC72A4B70E1621A5 8E2D8B37EB1309FDD725B6FEAACF65D8C83012A5191B4D7908FA753D997501EA 15183EB324BA351FCEFA37A93751BC46076F01E2D91BA27FAF9AB7A6CFD5F930 F3B3F5C994D3214A2D0851F039E95FCB18BA101F93D4D5A6D539C11187DE78BD 21561425B671D3601C7627DC1A93A9046F0061D3564D2044E9B8D2E9BC5560F2 A9F926A5855D4401FB1F62CD6C9CA9EC756072F77720ACE22C9983B434CD778C 286374763ADAD463346259844571401A131E488A004961B9D7754014195463ED FAF7DF63DEBEBF603B631AB2F750DC5479B16B837416E74BB617589E877EF44F 84284B87C4C4246A6BFAFA2F12135BFF313497CE64AF94774175C7FF825827FE 2A6C008801304DCA2BBA8F01DFC0EF00645552C9A12DBE0028DC8EFFDA328259 36EFC9426F07342ECC66E68B983E966FCFB745795C4D2C85780F95B5A683ED8D A83806CBF2B803C94B5A1350006146EFBE1744123AC8C0F4CA8C980DB119518F 89124248F3B93043F3ED792CFCF5AC617DBF2FB8C7A3E1146303DF6A79C301E0 0600AB38A00EEA61310B34A0FF7D6883F450ABD1799F8579A036AA6F4FB60949 07FCF217372686B1FEEAC57C32764D531E3B5CD8D17C3513C14BC3BF884B0077 C9CA4DCA2FB7C7EBBE81A9D14412312CCCD8E06297A576398B0ACAA04C99BF3C E4DB9CE98E2B1DD10F21A0717E5E69694C514BF8D5F4E2BCE859A035DF080030 75C5109F898D7ECDC46559A1B312AD723585048D44006BD7390AB0E3183922C9 853A204FC7DE2392905875FC28D07872F48FED6A87F4CDA130B13E566F44104B A1B29DD36486C75C130C90099A0630123392C599C95C2D501F8A38228AAE8043 FC64B26BF9E44951C3D22F573199F680F53FFF63F26AFD3D27BEC0995E743FAA 61D171FD86415C97E0C22F0D1816C6D921833C95DF6C500D819E8390F2A8FCD9 4D79AA6D37B5EC0F5E9648ED20C23EB154FC0D71D944295CF071AF86BABD7133 1F70B205B025BA19592318613EE93B4BCB7CA05C9B5ED07449D9F724E747426D F6510290BE7C297838CE624E0857AFA55B4E52E035C02B9F746550DF9DA8C6AA 99A45B5DEABA8FBADC014CBC0FB8C671B76529F52DED96F7EAB8AB7C8BA1ABED FD384942C03C32EE249D4550235FD56FB84E126674010EE3696D11291F2E3F06 359FB2DF0ADCD617CE2040752BF94A98902E608264DED8C3241F09E80F1628BF F1109DA71D85A35F40871DD6EDDB2FE7FCB31505C0313797A2C62016519BEF23 B160A29C618F5C19FB751B46C7972BDAE3C044E0BBD0FFCFB0E48F77266B06B7 56BACEB5FCD36A0F153536DAD78AFA2BED5D5C4A91CCC4E24C50984C346A441E 0D4C2689943C2836FB593DA7C108DB15C18BCB8BB846C142D9AA712E3305DE9A 02A8B5684BEF87D9D231C885FC0E8FC3DC0FD24606E68F9F622CEC90F4E09F25 D875B88F403D6A88CDF4E0C8D41C64B9B1DEB72F0E9058EDB8EF222CAC2C775B 6964AEA57F562C969C92D66E1D78562AE2A9B800166E14E49DF641E5329F12B7 A6EAA0358C8502BCBDF10E7427ED7C134AB29DCECEA5328F92AA2E5B0B2D36B7 0B46A1469509A5FE8968FE5781736971FC1E8DA934451F042794A2BE867D0073 27F013BDB90ED2A09250644E264DEA1AC0EA512125DC02C129DC28D382B62F4B 33FBC084BCDA392D101B9013DE10F7D373086CDA1695792B27DF511737295492 414A8646D7AEA86128D6C6694EDA54D20495E9A9B8C7F83640CF8BA901ACE6D4 E3F37AD75C34B8F016330F620A32CABC12C385BF87D2DB985AB9D2D04DB25B1D EA0090B833A47CC84A418D8B59FB37BB3F6B76D5CA30DAA2A9B6996A10D260E7 E5F6EE3D8DF80675BB385D300EAA72C87D985162D53910DE1DA60560F84973A8 47723B615D4661F3C7F23CA7363FFDBF3675ABF732FB41F87A6D9B9D3C3D9990 F966A842ED69CA1EEB0C5068E13167980B27C6E1FE10E8C7049F51BB406FC955 99776889FDC65B123B3BABC2709CDBADBD484E787AEA66368993EB6B1BC6D352 5A0ABEFDE8A19951520413B387258AE60CF6CE44512DFA273908512CFC05C613 ECFD8FFD09525C63116A454C568A6720526F07AAA545FD1CA4175840D5D2BD3E 272043E373EF35BF4133E260320CB39E191970C0F0E81DBEFC7AA97D3CAC875F 3B157CA31D94764FD69135A831510CFBB081D7E78C44DEAEF007F7421EC91B23 3C05CA8359BBDD2767549450C6803B603B312979604965FF72E535607DB32A00 1779973DEAB1CFF05FE0BED476C58E78B6C552479B1E51C74F3BE16F39C0B59D 10758E47568E9B618529F7CD8EA0B8653AFD5AA0B09CF40B13314B799C88E400 E64E17114BC26ECF6BCBF8E6854D2A19023CA8CFEF8F05125F9C02CEECAE7C8D DB5A98A399C67A7C91C3829D53261D0357958DBC39F489B53D38365EF5D68BBA C5D36BC620745B025E73058891B132813436BF310FAAA7C59E5FFF1ACEDFC536 FEEC11761AA1C58AE14B6BDFCF6287C6A021B890A6F2C3D83ED30E2ED1D235E5 AD6637704C683E6C590BF2EF885BE65A9F57662C7D460A6E682AA318A0F0B811 8C265CD6598EB15ACEA0C83134A433334D9ED75A8D8990BEC5160079F35743C0 6B19887EB52456204A3287AB7F83C3DA42175C6E4DF9AD2EFB5C64A4540945AF 93349393FD46A564338A1938B68C63609958A8ACFA23E89AD66951B38D2BF2A7 F25AE31A3F2470C2421233785C05E9DD3ABAD577B0BCD935ACAF0B37C605D33C 697E2F45ABEDA3D2B57BAC1D33869732B8D74739245C033D5F219D3B595EB20F D6BB9C8F254A0E2C74EA2BD190DD3F8C74DBA0172ABDEF2205018B8F59B8C5E3 EA0F55620CA9E8A6AF1BEB028C59AAD56927B1E62B3E601BF9A67FA71C12E56C AE7101B44536951E6310D4BDFAE3F3F6A3A513399CFA328AB7B166C4CD50983B C9112441BB2A5F77E281FF269C4EECE035BB6FFA539CE6F90542E9E515490079 815C2000B856C14AC12D76311B226FCEB33E58A669E704123CC218A3E114BDEA 9D5EC6EE4DBCBE8F6FE5C750A22A085457D328A97C303CE1B45F5A16DE3C1E4B A1EB8855CB3CBF95B91812DFEB7CA54809A9043342FD9AAC09E009A96EF2616F BA33610DA9AFCC964BE97F446E05EFBF70A95930B134C8814ED22A98E76065C1 E5A924A8EF260A5FC2E3684979C6DF9222B6C238DCE7FD51FE6C474F4DCCFF20 AEC625F820C9D2D361E8C82CBB687EA9986211DE163DD638770B5D939BD09C74 32A48E1EEA50FFDE5D53ADB1DDF23DFF7B1937FC003F85027E5BF9C595EFEC75 E4A47E45228D7CBAE692581563B7540BD83B56C1B7F2CEFA2C32DAC46BF91527 3C6832DA38FC4E1A981EFE9DEEB861037513DAACF197A9F912102B0E000E57A9 290B34EBA962EF056B5D654445783F58771200FDC2196BD265AB1552935B5441 366D7220441F3BDAB01CFDB18275738806749222BF3AD659EC74FE5FBC3F327D 467666400041675BF45F760BE5DEC4BFD25E82A4182EB6E92C8DA921921ACF88 199A21FDE723CB6E3FAB920166B3E6BA045843CABA33A99CA81133824FEAB552 0BD35E4C6E1568867BB7D22B9ED1267705347DDF6E07B80289960F57257202DB 60C784F457311BC62D8F6BE4974964AA9D4E1497EC1E901535AFE72D7DAD09D3 AE90546E07606F89074070C20E160D62D9C4CCDE61DE541E9F75BB60EA8F6B90 FB554F1F22F49F749E69FD810F201E3B2C79E9208EC811CCD51B97328307B852 A719FD86EA8B9E8CA6DFFA827DD37624A4D6FD1C8A0FE7DA7CF8BD6695623EB0 8446F12F4A43B8561B640B251388A2129D17E1B58DBC82302CF43921356DC96C 0E07E616F858161F85405BE2C68B1C0C775E38149F5020DD062FE20E98683450 48A1FE170F179F2580AFA9F9687EE9D5DD40A8902F374BD6CA37A1D48281BDF6 93209EB733C0F456414C37A5781687295244A4E86663FED1CE71E39F391C18DA CA0E9C5FC121745DAE4725EE7312BEB408845C034216407B22A304F0A7E2E088 97D14EA190CC4EE88DC77724D141B5A50A3F5E9A4566E2F8793477A954AF30AD 4411A3B5C2A458062AE89A36B9E83AD78F14A5FA4F9D3A8308FACB2DA57DC80F 7E652DC3A862AF33B5D80FD4B365FD446B357FE5A329F97841801FCF0461B712 6AD963FFBB7755DB5F1E506D36DB0AC963DB0482A5293A83A67D4A89B8AF47CC 3FA9491429E6F3137A4D6037ABE096E18B1742591682B8EF036F6E71751358ED 17FF93C052504F2659FD30DF8EBAAE7354B4EB7F506D8E155F248BA32A536C00 BA8B755D56E031E595A1B8276759694309B158CCD2D78FC37AFCFB8025D2DBEE 17991FF93E7C09B55135397A77E86211495850B3DBD091C7D41B7859835D08CF 0AE8B33EED6E4AA0656AE18670DAA3BC88E7A85599FC794A93D02DCE640A4B44 0CF9523D3BF23F1BE0D138EAA87285A10EBF40A99D85F9BC3E575CE433B3D62F 5AFA2C648E9694E35EFBF5EA314AC81C727A1D21C09F796DEF7BF44B6468FD09 13D9A2B417902FC899CA5449CBA0BBE522015196C07B08C81AA953EF9211BB56 10F02E7A6F363B7690D46317F80D8F7463EF190AAF7D093E57DE3C1350D1249C D57DC8908F86070528015813349A3B67644672851881BCB4F6CE43FF53376F80 075285776FB2BF6D3374CF514B5DA9946BC014ABBFB54C7E0676E3E4CBA9BE86 6125EF72E9C58CA1F4EBB939F46ACCC1B2F01612DF8E6B72A5B8C1F72A3001FC D5BAAE8A4A437DF2D70AFCCED406694CD0A9F1C745974FEFD29E63476BDB048F 27E64850AF042F96BFFFD3B3903C60869AB41657EE7C24B660C83D41E7A8B82E AB6FFE9C2919E4A91C05882F2A971A09196EE70772CCF4E8199570C607C80705 AD98651394CCC742D048E391EBB2D5FBCAE22D72759528F1D239185EE1A37965 5DC7A53D88C875A3ECEE8E373788CC991B61ACB6AD7863E30EF2DEECFCD5E0A8 8252B78FA2E8AA6A9433272C23534CF0E8DE3B2E3D41326BC932D2853045D5A2 83D7A2C7CAA60C3A169EF90451E62DCB47D04840C0D5153336F1F79FFFF16F3C 96BCDF33D3C54813C07AB4C7AB3FD6364C7DAB892DB301557FEF343CDF76E88A 6D39E72F39A81230BB89139C80B96EC41AC370204B8504FB88BA15B7DFF3BD74 1E3FF0F4A9CF02091CC7E1EB73071EF8539D43E0685C1474012CCB6E289E8BB4 BE24DEFEE5CEB9A8CCD78C0AA830E7B938465ECC1140D481213BF1E9E3F318B4 96AC77604311EE804B10A9C5FDC801B144AF82BBCCC3E63B027A4C344B427B56 ABD8AE83CD6836A2A624A32128393B9D463DFD28BDA1A81A0D8E75880EF3D779 8AFB3431A9C936B9E10E65F3B8A875957B66B969354B600C1F59DBA1A199AD89 2C193040C8E053C3F1EE0BB0AAAB446819939C813423F3638C6FDF3A9C1A993D AC3946217C12D9286E6CB44E9DCCBEAEDAAEF7F7DF4CCAB29A5B26E9167045CC 6B08D5B20D8896713764599CABD316B5BC7684724C6673502F83EDA7E5D330B2 639789228AB8DC8B253A1FA32C7B2171469DD7F631CE8016112905E5FE16FE50 2A429E4DA27C8D474563B87923D5234F7DE2E108955D2AB88395CB91EEB65998 B7EA0FF1615BD19451272EF2308FAE2D7159FD9A5569FC30B282D795616AC583 2F5D3D063BEC1E5EA9CED25E6483654F99BA86582579C4C79A9F1BE797F1AAEB D17D8AFBD9952817F1F42F4B142265007B7E87BD9D405FE48CFB6DD932401322 4ADE2D93BFADC2676F7251B5F286BFAFFD9A066C4CEA47FF6E68EA4AA86E63E9 50BC07AE4606FE0FFF0096C2A2EBEBCF273E8219CBEBF9223C7DBCD7EAE4A507 1BD71202427EF725949A898941CDDA00365235196D45FF7EE8C9C1100E21964A 492BA6D8EB95CF883EF5FC639326830F27E695002B639045F3452F5AAD8E01EC 52A7B828F8CFD823D8DF252A2D431F14FB7BC06C8415DD870D7D807556D370A8 2B645CB8700EFAEBB3FC3602BF8F133D4C02A0EC628B07B8F9CBED1EB815508D B694ABE9D1BF9704755E80664B5FCE2D14B6A286E2855B613DC74A6EA6F3C485 75C5B5318B4CD48EC01A688FB6A74EEC65F2FB280D6CA28BB0669F269A28E54E C812512EDE85428419DC74E534F28C94FD8F1C4439EFBB9F752A741DE445322C 13631CF72C1E32213D3F419CCF7D5A9376900CD738C30886724FA8717C37F5F4 B8984D9B6B852160C3C9BA0642B51F56F4B51B911023131B7600D536BF43A792 AC86522BAA112B4A0F700337842A97EE4E7F033DFA86417F63F7989A5E5C7EC2 FAF74B873276A06C1D3C7520411546BAAF77BFE44B95A949682B071D4CD8C550 C1283DB2E1B3A8653E49E557350580D110A8145F471FCF983F5FAA30150323B5 1BBF6CCD830C825440DE3901C09C3A66F5EB3C7177F4A0C7CC7460F5147D45CB 424E0E76A30F5E1CE54AE464C451640F1195EC9542E924D406C36A8E66EF1A31 3E31A0C59DAA434AA89A064A9FB9D121614D101A346A2030C6D8D24058AE8080 D46A96B497E8A7FD62F269766F0D3B4EAD799E615ECC62D79757AA6466FF544A 53077B809F71CEC4282072A16ED7AB5292622D118F18DB6587EC8DE6D1580E56 8E8F3534E066F29B21F5F1016BD4E9C5636991670F6E4B1435396C4525113484 269BDA54E3C73850E860AA91839D038ED7CB7CDBC967BC654D778588DFE2FD38 7F74ACA63C713032C3501C39A9BA928B447AB04CD07795522AFC6A4CA1D701AB 9D656901FC47585727C12F16E867496FE96ECA096D1E208538739670F3378669 7F0555E04146DF3A066B5ECE33BA759C385F9926CACE9C2D9F383DF252AF753B 389447B46762B89B17FBBF7A0014BF5A72CE2B6B702A1901A6757CE8512E5A40 93B577F9766B8979CAF83EE4F3C02756672045BFEBD74F1F86047E8A6B79AA67 3F6DF3754972270D3BF0FB03AD37CCA087D4CC0164FCD7BF04E18B12E48E5BCD A049E4364DC590C597E01C02D290F5D5758B6B206FE6B648010F00ABE92A3C51 00EC03DF6535E6D7DA9C64B3B46D9F65630E73F8D17179BC58C10348E69C70DE 536A0CDD99CDB34FAF69A64615726E4D8B8449D3EB83B7E13E39D087A55691C8 2FB45F5ADA40B0A3964BBA83F8988039DDBD65176669AFC4E5352E34FAA985D1 CB47440014F30DA763BCA8A591D41359BAB51B995134537E61E5BB77C56FDFAD BC000D7B1351919FDB0FF71656CE56C23435A1AA124237A9BED8A6B24D988B81 BCF86639E8E72D30E854628DC5B459B4697EF6C7367EC63BAF84D31EB05056B4 E3635089F188AC0C591F66241E746D19A633A3F17059CC9D324D83113528BE81 12A2D0D52046E12FFAEF0D4A9B92CB662B56227C4A48D1DC209C9259BB0A615F 1A6B1216D3614A173BFDD599A271A5D38CF7CDBF27FCC9C7E164F68DB145E4F5 D7B8FE55D10576568262B2289B2B01AACEAC4E8201A9915A112F512A526EBF72 EE2C15E931D5365B2FC26FAF98A4AEB25E172643FA8589D6246FA6079F46F2F7 C41C5433B5ADBC187846A6377C14CF9B228F85F16964B4EB4092B9BA43924E61 AD085C0A6076861D2338EAF3DA1DFFCD79F9E23919F2B529F2 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.0: CMR10 003.002 %%Title: CMR10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMR10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup /UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMR10 def /FontBBox {-40 -250 1009 750 }readonly def /UniqueID 5000793 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR10.) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 50 /two put dup 51 /three put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 91 /bracketleft put dup 93 /bracketright put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8 569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079 24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A 2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944 8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E 3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26 D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24 D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B 03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685 767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A 8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E 94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004 22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7 72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C 8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491 344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A 64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B 07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC 1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8 78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51 CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120 7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782 BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462 4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A 5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622 4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE 0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5 C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904 314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029 EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13 DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084 7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91 1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155 69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5 7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67 CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D 38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3 22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C 0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1 BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D 4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F 3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE 15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9 849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3 FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84 4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76 1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798 84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF 7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122 CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA 4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B 3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394 F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140 DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7 D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886 56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4 8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53 59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED 49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86 87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B 8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60 C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342 D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64 D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1 F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178 0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B 5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448 229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC 17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4 01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616 F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662 3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0 689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20 4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03 DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D 364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F 7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F 26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1 43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD 8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7 C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08 94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5 C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1 B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56 4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5 7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01 204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56 7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6 279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346 CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A 65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78 BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285 6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7 B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3 63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89 4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6 67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A 5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9 C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C 9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51 963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0 D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B 72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358 8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB 3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0 668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152 ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5 69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118 C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754 3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13 407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01 11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF 2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87 4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40 2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF 9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889 CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8 DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973 0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362 5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7 9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2 09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A 2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2 AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420 324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786 486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660 52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5 9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3 4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7 BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14 6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0 B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359 16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6 546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED 6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507 559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354 04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B 7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A 8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02 94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC 41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654 7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5 18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76 9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD E70CD6C3A70E612D90472C3FE345B5EEC8BB0B9B743486E0A3C688F3AB16BC0F 31984C055AC823DF21A5EEBA2B0723A52F65CB925BDA5C182F657BFF483CFC9E 1D0D4D02C511580BA2788C932D6C9CDF821CE5A87CD929283CE90F64203BE13F 70E16F9FECB42418BEBA175470843F85B54768299853577796D136C5C3EB9E38 3F860567CD4729AAF9B80ECC6BFEBE25392DD3720C587796C7932CD4D6AC1263 C46953DAED7A0061A540F22CB81BC3816E6267EAF272ADCD6196E6FDF82F6D92 A3F11C7EA1FEE81E07AD6ED1D2D72D9F57A11CDC27CCFF840792065DE796F5C3 BA6E6CD5AA138B168C23814295B0BCA19AAC35524B5C1B8CFA5229C6CA9C8BB7 B082707B2B06C93037B06DD775397C844678989C902067EC814CCC3E5A5BA3EC EE5920BBAFFF7CBB603DE772DED3D1ABF4E5EDAABB95B187A4643893395C4BB1 75F1BBD94774EB71799DADD1A6BE6D49998860482B626C62849BB0B056B9A633 9D5B4AFAE1B7D87F43426B6437127406DFBCA4B2CB226B7B79D0C98F360AA384 A8CDF19D5E0F6F21CC05DA1CE1392F29895BE53E4212079FB2A579A5038A6C4D C8807DF5F6C137D67B87CB0EB1B57A12A01938185F1DEE52D5F739D1CFDD9459 D56F70F74EE43CD621EC0332FA04C6BE2BB3D65C4B163F6474C4EFE61F9F8E88 832737186037F9E5AB161B8A23395D3A6E168B7BC85A1F6D3F7CDA424750AF82 61DD0D6D0FACC20C8DEDDE1923AAFFB416FB3029ADCFE6F26BBCBCAB0832EF07 3E3505C3EBA20AC324DEB562336583AD867FDE092F721A2EE6D3DE9636A134F6 3E238F4033FE4B56D74AD399FE6C8B585758BFE6AFFB473C9A97C6FFE58460C8 F3EEB5DA8E4B3F9DA87979FA4F2C4F6A7635B85ECFF0EDC53F9BA05CCDC30EE7 35024EC60AB475EAE8B46CA1410D0816204A12944A21069ED4EB4830E59FBBCF FA19B1E38BD1C2DCE2D5EDC292154DADB720531BABB5B624D8D3CEB7C2BFEBDE 0EA978F8FADAC13FEAF57217EC5D2C4770A8B1388B46CCD4C8D2B5A8AEEF6559 03067A93D659C3717828BD648CCDA44DB60FBDB1ED05D82BA5229E9F8D2355BD D4CDC2A6113B52EE646AEC03D8E6C92E6E77728539C29DA1F2D33041FFA0E960 FED469EF4E794EF6D6327F1ED1D68B7B80E19E6AEE1FE8A40081B4B0676C7D75 D2C19E88CF11D2E7FBC549DC3387603AFB76B55C1042126505FBFDA3A475C00B 649A6C2FA176A52C29604D8FB9559C0599CAE7CA46CF48FC3EF31FEE063BF60E C48EA9B1D5A152AAC15051734980ED71CA2EB6E3606CD3FDBB6EFEAED5C16287 F5EAF34410957434E3D15B0899D7284AF8F1FCCD4C369F352A2D1AB2DC654D61 B3CD3760AAE7D6885411FA073320908E23E6C11A20D39617FBEBFCD27897E296 0E90654BFB6FEF2564EC53FD3200E3E2CEA43586D0F26F36D5E1DE014DE7ED85 AB509440C4F793A19108FC8003FC80D50F7278EA5B19359EBAB21B31881461F1 1238EADD3C52B5C678237AA1DE5D9A44BE33FD840C2EABB233014C5E4B546CEC 44E1503B71DD0199817A62DBA8689EEBEFE2E1D49B762299AAC1124940A24F71 36F61FB7E3A4EC0E3BFFB82EC06CB3DC2BBF994BDC2765FA9C844F55CBB262FB 3DC02C369EDD6F43E24019E5B28F64287C9098DFF0B161BECBB894737B8725A7 D942AF24D3B334211B34281612FD785F836B90E0FF07DD6726B974C65470A8E3 617FD5D271E9E629110F0EFFC42DEE42F52C7EC4136FA8D4A568F25E119E9CEA 9963B19A1A6B538EAD3C42498A0752AD6E42B6B5B27349D56D59A87451E6F627 65F766F95B7D3E1C5A6495EF422FD15F49821E73F8FF31ABCE733B940FD8B570 178ABAFDBE17511A1E8BB9D2E02593FC4A10C1FA79DD29D3D5592A33B5296EA7 03BCA32C5529DC5604E49696695B3FE4525644DF0F6D18645AD9153CE2A4757F 6F158F4BECC1DD57844DE6963CEC597BCF59A563B4BE5B7CE168615C794811A6 3BF06D707346A416032A053503FCB0E2D4679447FDCF0B88582CA061B61EC887 5627627FB45D810F6E55939412BF8CD6A500091E3C7B624976B367A0A6CBC6C4 76AE2C49B0DF3ACE9575D261C7B2B3E53ADEC875B68A406E137F4B3DB490ACE2 5B21A879FE63B28FF757C67248895D06AADDE6A9DB3BB1C126555A9BB2421860 1F43BE6D7A0343C4ECFB6BE080971B4D42E296EDE860024849579EBBBC1BFDA0 EB4BF18308B988951F55F9069CD8F5754D8AA80CD8893237B9583768198AF9E8 85D3BA71A357931F9E9021F527F00B0D1B5CB69AABEE6D6D36E7894A67C12058 31AB075688FCDD9E3DB47A96B5E52E26B2D53FDD542F53BA0090883FB6B74366 12D362A9097A8EB0B8521EB5E42903FDA8C7A1BDA5DE651DD30C26E45B5C0CD4 CC0BF5681889950517F33DCAE31740F15C3D8DFED88407A9F40624EEC4017504 F8754E8F713A9BB47F671638DBC9A8BBB0AEC262CEBCB091F10287017B8429C2 3AE0E328D4FDC5C220D92E5C9D7A5F06E16324F7CBFDFD4E4871D3553BDC026F 5C0E4F3DBCFF956396E26D35E51F4CC100951AFCC6CF5E998A88F7880A40A22E 23CB2C3AF8EACD64AC1D89D348047FC0A2F81081123E7B81D0C526EF9DCFC7C0 2139AE5A363894FB3F9B2B0EC6DC2C35AC91CD3031DABB1EDF6BE7748E79E4DE 281028948961B304696DDC7CC83F6ED3D83C3A6A7872F5BA6BB6E82D5D546EC8 F77ED3B2CE446916F8DADB548DD1C02AE2960F785B6B47186557655BF8522944 872A4B47034E37D67FB508CA6367785A4C287936BB558A004FFD5147A7F7C042 76C2FEE0F6A1AF648C045F182499886481A355798BB77772895D111A8AD2EE9C 585B44B41BC1E8505CEEF36B4A17C43D7BBC0AC09D64498C17907ED4AC83734C AE8716794835FCFDCA67140B2F50FD97666B5D89D59746FE1C1FEF9D348DDBB3 FC759EBE09D01CFD003ABA2A934B8891622261FF9183AA9B769319082975B9A2 7E228A9114AA9917E81CB11226193492458BEBC4E75F2F3C35B3967B862BA449 08DFFD5E33E47742F3166BCB347AC22AFAA9E6529C128907E3B7DD160965FEC8 CAEC8F90958F9B27D9E69ADA3B6C2A00352F2CA4A11952076E0CE1007444F9EB B5CB8BD68310DB81BE963D2EDB55E110E7E9B1941DED0F761F53330B7036EC47 87640AF2E71EF7CB1A6BD68A9660A88DA7DA87B35C1EFBCE32FAAC59 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.0: CMSY10 003.002 %%Title: CMSY10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMSY10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup /UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMSY10 def /FontBBox {-29 -960 1116 775 }readonly def /UniqueID 5096651 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSY10.) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /minus put dup 15 /bullet put dup 104 /angbracketleft put dup 105 /angbracketright put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0 7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81 DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91 511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6 1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD 028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86 1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4 3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021 91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2 E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A 11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97 C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857 D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20 B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3 93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F 10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D 7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B 491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6 019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6 915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36 356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0 5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D 9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64 3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1 FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252 720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5 D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726 BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5 7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377 DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56 AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7 A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E 0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743 AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18 CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023 0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD 5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B 5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB 54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809 E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906 4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378 4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4 038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4 B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308 5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837 A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD 2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246 455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03 16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C 16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F 483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352 67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2 3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472 1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770 93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA 051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B 8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4 8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436 6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0 06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7 84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0 D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6 DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB 0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD 8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34 754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406 1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05 CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523 1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F 153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02 905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718 617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2 8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A 98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278 53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B 888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D 052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501 A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F 07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56 B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672 10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2 CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D 3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12 D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F 849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16 648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE 84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA 2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD 2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204 9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0 B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7 135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939 C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782 7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0 4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2 9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171 050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486 3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271 C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8 843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342 CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50 3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175 19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946 FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0 17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6 8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003 F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194 1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E 4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194 2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929 9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593 E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB 8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027 04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5 C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404 ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C 4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909 84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6 C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6 09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777 D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503 56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF 035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333 CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663 B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B 0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9 33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6 4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E 2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5 88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37 17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0 55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50 2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3 406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8 AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B 60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388 C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6 5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50 822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E 94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02 D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA 343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE 894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5 DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327 DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F 8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324 A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270 E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947 DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC 4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653 5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1 02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8 88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70B15A0 657F5ED27D204449A841ED19E01432CFFE928E921321113780D036D34F2797DE D4459CFD15BB117B5C9745EF3CD2B296D91FAD48C80B136D94476967E255F808 AD2B5D522ADEC64176833756510391815A1D4A8DA1D0AEE7CAD36A1D161889F2 3347D5B6BC503300FDDD48F594F391D5FB42C42113C538E707C16EE24A3F375E 7C506E8F49CE50FF9DEF3B4A4C1BEB3848EAA3477349833BA22D2A9012287D8B A8C4CB4307A1188ACC0E6E9338E1559BE5FAFF381BD82A6C71C267409468B3C0 2C1A29F4281D565836EAE57F680490FEA4A952FF64C8CD11C377C294DCD1EC25 CEFB2B6DCE959D0208F85B6E32E9B44FD455F9B134A5306D95EA29F37BB8B86D 9E592159338E1293F449380E13C21AE42E6E371B75D78AA87381B96012E722B1 3E1628DC89D9009FB38D9984AECC3367A8436F03DD58F85DD4971868D7949E02 6CB56141AFFBA6D3A542E3F222158E78F578DE2BF54778D2ED73BC39327DFE8C CB65DFA3764417795ACEB160747229B1A13467CEE339DA1AC22C70F56C702593 9BFA8EC84CC5F57B650581E5A7AB44288B5F8170AFF4BA0F97E295E7FEBDFADF ADDC5ECB8D6CF29DA2B1D8AF089CD17BC000352F0532CE87A6052C9327FB8671 DC9F1B6E37123FD610322844668B8842AAAA625BB7C9AF36D2769A22090CC99B 68BE6DA6DABE95277F4696DA0B94DCFE825BDD398B76AFE00EE2425A61B39469 9CD678379D64EC58AA80951702D0F204F27885A4312210BEB43DA238F0D82B9E 36BD3ECF25CF90DAC3A6BD4589EF0DEA7FB8824C7A0F3CFE6AFD5ADBBA7374BD A4220A5EC09521C7D426404CCDB65E4EB060425E6C97068483D77D25954E3AAA BD6996E9D95EB5297553A836B78ACDC01DFC64A9DB87F5FE4F0AF58B0A45C7E2 DEB411E23457AAFF03CC8F58ACAF95F05423220E67EC348F8B94BF0DB0554F2D A1F77DEF0C1D5AB1FA1839402526A4D95107735B29D62CB5407B938897D34B74 F090228D33F16FD47CE572BB2668D3CE067ABAA04F6188E4723A14A62DC777B4 5F55D92B909E2CEC2B1CEFF00B0859BE86D8F6F358AAA4B0A7C6A698A8DC7FED 1226A7A4F8BAF33AE8885460D08E186DF4747D1E22A271E48F0150D6C2CF0F67 679AEE193F8CEE99F8733D23AAD1FBEB677A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: SFTI0900 %!FontType1-1.0: SFTI0900 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecti0900, tcti0900, lati0900, lbti0900, lcti0900, rxti0900. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Italic) def /FamilyName (Computer Modern) def /ItalicAngle -14.04 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFTI0900 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-100 -321 1455 932}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F267FFC21CA3EFEB150524EBD7FB96FC46ABE1FE 3517C9B7DB008441A805A44281148F3C0BC69CF9E877B6EED791E8BD0593D57B F4F87FA2E6304D90B64B7AD78B864A2B9EE393BCA75C88EEC89DFDDBE69B5E6A 6EC913392AD1489285963B81D2A4B5C7744F2672D08F9326EBE79D9F85F4DB12 C3B590E54E62DA8C2BAF3838408A1894243F7BE59FC5CF9D634FF77463C34FDF 7569BB3347073DAB432C2CDB23E611369F74600E4F6B7DAC83C08EA25A60336E 6467284EBF7A9473457B85178FE0DAED32483B43BE521ADCC434C3F489D31941 0A99B4E71021E275CA487F6552C1D5D48919908158E6C65AAB65DBE998B79EA9 355F35CC3EB94327E4204737CE15E79E0D921A9E52BF4D9C8CA2FA2725147413 CE566DC74DC10766D50B331E73CF4B0AD949F7C1C1C1E808B2B726A5B5949DBE 4026A8BE859D988B6047BF9FE695A29F606A973F6506AFF4CF86ECCC70CCF0FE 58AAF6B7665F15469E8164FB17CEF64BD05D1B33A59AE5F5FBA4979DFE53BF8C F3287E2E67BF161F8FBE9E12998D7873E03C60D92149A3C38813884D5E9A2B64 80F684125795F99102019701287F777183BD87FDD1949F5E63E9B2C2997EB638 A9112133B58BD5C274FF2F16743ACDDD97DE08DA6B4BADDA3B6393C4C81FC425 BB40322DB5D192A2967EC6946489EA8680CF41F12736824870F2A4C5A3974E5E 96D2D9520C4761483BB6061BE850B20664003E0D1366574B04DF74AEE90A78D3 061F5B87BFECA7303B071A56F5D92E0386C8285E75C03EB1B58E4D46811B6463 598D8E50FA879014528DC58787A9DCBA578286B856591504F8E464FC6E82E57E 49B7385EE2E22A73C2580EF426EEE502F372B49A699B6B9ABD173B9545247674 D8853C2E8CF493676DE50254A1B984FBF893B77CF01347412F1277CD2B1A84A0 1C69B3D6007F8981ADA0479DCFF96E810F97D5317B41CFD13552041696E9F306 BF25B2FC0A4EFDC5C30D3A59644C302D4B1F64E0EFF38357C8EE45C93E83A2F8 6BCA507EF983AB01D8D64F564FC007EC71A049E04049B8C28C8190A253170E3F 100A4BE40B2B951CCD2E433F80CDA52DCCE609E4E94C3F932726324BDD9AF5E3 96488CF1F7099B6A2639D2F2ED497FDDD21F38A47990213258C6FDD7721B05FC 1218B3A26323F36019D35075287357626D2DA98ED047B3E52E6FB1E6E8EE3FE3 54B64D87C7DF67F88411492F8E8FD690F7A9C20C8DE516D180105157A3F88AD5 DA3108A291A0A1B0D7A19B6746F63621D89512D1C2A90FF6AB0F4991F64B5312 831BB480D0AB2D7BF0680EA148387E259C301ACB34D07B0846A34930E94979CF DC16F4BB8759AFEF42B5208210E69BBCBFBC1C182978D99464D7F152BD242CC5 B03E2614541891B78E0C50E70FA661252DC9A126E05405DCE841E6F2FEB88BC2 A0282E4037CCE936BB40705A4A81F46A0C5A28D9DF31CA0AF4D10E041FF814B0 BDD64102B58A59D7A62F09FA2808AEFDE0FE43C21C24530AD38FBAC64693620C 756F7A35435C2C2AE0B23482FBDF9A818A89D13CC66D6FB986F4146D0287D2FB 499611EE3DBCA777AC4C2130891DF7D24ED2B44018C9EB0B1AFF3AFE26812BE4 0E86B53FF382042F8031123FDAC9A7A4D05BECD1A258B0E7B3240450139C33AE 368BE204681EF627A2AD795280467D102CD98D08CB83BB3F1E1221C505625BB4 E3BB98F555FE41A893458DC6EBAACA336C378E1C5DC3B29A1E32289F3ED3C004 569B30AA0B6E310854C805DE5D2E6A2F2545B0CD8B50EEF72F28289164587DBA 6DDA6D6D4EEC20824BD4C9C3C8E9DC579A88382610275D0131A3EF0CE593EC8C 41287741B5E64B0E98E04D3AB9A56735CE9C54D9A82D9A43BF16B7DBA0D64874 814683DA17825376C9716FAD6E53F54BAB6D3829BD9E5029B6C03909726B9F31 74BF88E4B7CE8F110BC5414F45164F9ABCA217E5515DBB6667A37C660D097E7D F2FE9DB668E9056D5FAA7A1D3D46EE22BE0725E3C0DF14AB47FBF3F00E44B1C9 080EE75AFE94913335C79AE822AE4FD4556D2EDAE6DC038F50202EF5ECC66C5F D2C667ABD7922E56CD809CB4B2A8C020E908B6A6D8ED8670C6C30CC08F3E82DF BC1BC68973964AB81D03873F2F99362BCCB73A9B97542CDDFAA14A9E54D629A4 48233A62204C13DAC4CC64553050398E8C71EE3AEFB793B2A86C62DF0BA9C29C 80C6A1797019CD90C609820855DAEC77460A589AF94A5018BB43A26050335EE3 B76239128E7869950B22728A985B45D451A1740E3629132D9D72F347F1B35EB9 C623D410939938B4FE9DEFF7657E6351D13B1B0F9703FE05CEDF9A9A8B903750 E67AE65EA617F893514050001743069B6601F291D76497FD980779295CA75750 165C4DA08A49FB435D45726CFD9F6A414486768DA51F760827A10A9ADDA18339 E60749C218E063B395DC808DF8D245A860D59BF6213A632E31094B2137965FD1 A2148730352AF582A0C268DFBDA71C0994A19EADDDD7E10A9FB7871A07AB5B9D B1BF441245C196E89418762D493D55A4C325DCEF4E053C9A36A1E1E5B4F18D81 80F8CEC8D840B436217E4E46BFFDAD1988300EAC3064219D4268FEF903401B6D 1B0C3D748D074C0ADFD77DA81E564B947D7E456001D08AA572CBD02D6783DA3A DA12398C2E26CCD13647A126D502AF7AB508F5A3FA7DC9771465E286439FAB51 DD48344E9DD19EC876CF68DE129DAB52394D2B2CA27C4CDEAC85C5C063A75E14 0ACA9A6328F2E208198BE3BF835FFCACE711A8BE1AE06231CEE08ECF2D5037C3 37BB10FE6EF27770625E4A40AF22090580A4CE7CE922E05D9913BFA700C1022B 64B479968F05C3924C983D71D61E2A383FBB0BD702797B386F24D9499CEB3C95 22F47D6FDD7BF7665D5474985793D8617AC836F35BD6232B0B7BC538FAD877C8 818CEC5F7D18EA999EDAFAC55A6E44BB516A035D0944FFFE300A66ACC4B8267C BC68A3113D17671E157B9228EFAD6A93542B26C28A9D9D736D429E91FE1AA113 5714F97B739EF23FAF2766D7235020D29BB99B3564DABBFB489A5D5A12D79F31 3731E55AD3ED32F461E52B04E00AAB1ADB2DEE1D224BB5AC76835D94E3FE7A9B 689A95BC2D1537C70FAAB3CE8903141AC572A9ADC1D305CD666B0C5D66E40AE2 5E65EC52D44FDCC4EBA62552F92DC3567F66D9CA8C2CA5031ADE35C2E6BBCE3B 73DA616762A38358EF44094D46A0D8ECFFDB92736218FB1B21A18EF7B52D3575 DA03DEDBC4271DD6770B1AB3D1E77AAC44CF3C72C12D253EF14404C0F61C4570 3F9A5FB3EDF22032E7CDDEB5917512CC4E05B2785F324224C5942900263F23EF 1F43BF734B16AB45A7B99B6EE2900C4AAA1677A4EA18CE93A465A8D52755B1E4 B70993AA5DDE077781A9E49595D7EA43723641BCEE7E6ED9264D4F5657D45BE2 E361B4419996E7B389612CFB082C31A07DD108E16AA60CB0F9BDF60A3862F71E B7CDCE9101E9D2276CCACFB36B9EC5EEDC962D92ED0E290470AA64535A61B22E 33575F367C2DD31C0A36823DC364060DB155C164BE87092F70FEB8CC1EFD7489 94A16F6C2EDFECB5F6E45594299C65967C51EABCD91439DDC3F3CD9DD6C6F57D 6D9CAAC5284BC708E86EDE45C3A9B18AB5FAFCA8AB988D1F21256C5B1A1D5D23 945A2563ED5970F7520B2692F52DF89CCC70DC8FCED3E982EDDDEF6F60649905 2925A92942B5CF2987FCE20479ED81767ADBA230CEA0F5B50B890B00F390EAC3 71D536EF4695B6CA573651432886AA19931690915FB719561D54AC913CBE6573 1A4F478A2811CA7986436F2250AE905236E9A76D03A2A205652EA12973FAF44D 37A4245F13E1758587FEE1026815BC62AC7B386C4F337B3140307F2F2A9FFB37 3928A47DB3F7AFB2992E6CB41957431BBA71298A65B349B695304F083AC61795 48EA9BAED5D6F05FF164B01B822780D96A595F1E04E3EF1FE936CFCCA8C3FE24 74E6CCF8DEB17FF0E88C7F528859DE04DA7417CEB6C5741C102B67D10868CF95 7A2F7BEF0F076701D488296CE28432B97C5F79B80DA2BF3DD90336992D6E79EC 1E996F9572E44B0F0FA06D335B1565CCE8AFB0BF8E4F10510DCA320686B9ECF3 CBE5F97EE7FA05CC52E690F1640E1E4BDF9F7250D90FBD295195E4B64A95F4DA 2B17DEDFC6A6C652186D61E42E4B77D4E5124EB1A13FAB9CE36C5BD429BA1A16 C9D75747F810910B7750116063CD32ECC06866252EF51C0322297B2A88B1A435 BB37B7665EA3BD2558215B49AC3C1E9CB84E53FEA589276A74245846A3C7C30A 6584BED26C70760A44543DB5E4CC2C47C553034617EBA7AFDF7F548C92DCC4D4 9B163B6FDEE1C4819E4DA74243A84E633F794B597CEAE564A730A7DEE722918F ED191327AEDE5D6A7CE8BE5F379D4F36BB1C76735F3E928F9326A2D989A86EAC FA14221F9ACFEC52FD5CF7F52BA12BB1C6278477BC1D03FB876D57C4F0B4C145 FC7A03C8A0F37E517AE25C041E338B9C127E4B1E0B5AA0AC4332A2608075037B CCFFD81EFEC9ED8B48DC0CCAD9B4FF755BB116253F728AB67AA3ACC8485525EF B3747F4997D9079C10E2B962DD20FBE110BE6274895A3FF937C6CB18821BB272 1D46570B72CBBF7E0FBE8CCB7364319D546D95E0066529F2381A3981955A38D2 8C32FE268EBEEB07385246B6E9DA84BA6BE4D7AF1225A2B81845872A81CEC34D 9BF2ADBD8D0F0DEEFD2B24F2D10F52D92DABB6B850AB82D47677C28C69BBE333 A7D198D4A7E85831C494156F84B77C8EBFC881A409AB8EEA6A55450CEE728B74 EBDBE7A9501B47EEC5A4833F218E84FD7CB5968A3848CCF8F8244EC5F2F51246 6F8ECDA6041A2C3053D4FCE859643E3838A0B1C0322CCB71BAEE92668FF0C733 FC077660EF787F541D2CFD8BDF8A180D499810014C31481600E7B5CDFDCE2D73 7B6AC1A090A7AAA994763A8DA3B3517ADD9D9B8D2732EDA8600201ACA89E5F13 37EC6C84B1AFD133D3C4D429D0DC27CA3B3B0AF9B64D129211F46911B332940D E68EB5D41C502C9C098C71CBFE3F88205012CD3D2CBD017F57EC117AF693E5EF A8528CD691BB0ED4315A5AD768D438A2C189F82CD23910B38098CFD1568C4B21 07EBCF1F9F8A0B9FEBE110796DA873898332BB64448D3A0B57C6F7B9E1CB18B2 010FC17451787F8EE50675DF3F7359574B2BDED2538C0B51DF8017BA63096272 B30D49824358CB66C7E7EE391F360A90A10C3299FD37734AEDC07CC034F83EEA CD892D6F66BE3CE26BA9A285DE6989BD2AE8EA6BF831DB6A568B0621DDCA88B0 3E179D01C3B303C68563F3F2243C0679345EFD56307165AEDF16E01AE7013FB7 D423E7967506C61DF1ECDE0A308FEB8FE6B8B85F316CB98B5BC6C000DE6EE770 58C6E834DB38430622F9D743F683C16D0A15F793D64CFAC2FE47D6D3A4545C93 AB91FDFF5F22F734DC4BF8E9D019B06C0AED9C312CD8EE5A583B4E98B9DC2F8C 0A3D30A79A6BAE9443A79677022409B7B1AFF6F1F3A0B339DB97072D6A36BECC F3785F8A2DC03A1B36011AD17150D9DDFC74A51427BDD6585160FCC5A9ACC746 314C6D52635D5827D87CD65A23DD9C8B90D521A76E05770BCD506D8CD923F67F 3777161586A6D70361EDE0726E092EBC29A30A2AB3DA276B277D4F213661F2D5 50F6C643672526783F6792300CC8C57A472BAA23F18EEAC5CB33647258C95CB4 3D521F1F55475AFCFDD57E0B9202262CD3A72C5A72BE099875EB2CE6FD722EA5 AD32423C4AEE425EEF76A3EB44F341E2F1274E2F9EA886C043D0CFA62428E8A2 33B3C4BBFE15B913A83809DADFF4912D6EAC7789A24E2E273455E189047C61C4 FD71071D71B1277A5A3A64A06CE285569A38CE4BA1D64BBDD3CC93C34CDBA6BB 2FB40563B84CFD0B368356A0C964E52E882D515F287C3CBB2FDDFDC2A045D3CD E2F42CF8837484894FBC7B2DA51DF5E377BBC162ACEDEF90FF45C1568260E212 CAAB246290EEE284E48291AA2CF1FB169E4ADEB587312D3FADA311B06954C199 FDA9DCF116DDA6F9C55B7E674B9EAC2F991DB044C92E7CCA6E829BEAC72B01CB C11F9DB3CC9C894CFD88CBEAE459C27A9DADF2093C86FEE0819C3F186385EE79 D111426CA19AABE1C1606DE8C272D2A5A7F2F208AA0B7AD88F2DB4AAA2FAB8AA E23F0FC75DE2CFA64D8635BC8BAE81D60B24149461BEAB0653CE7ACACA59B918 FDD229457E0C257F512CCD5E1F43E98218B6785F27C7882DA9D0A699E733AA64 B476A72248D1152AA9B3AB8FFE856445ACA1D2302D3D74150BC790BBA1A4304B 1B63ACECF7C3D909A3F16591AEF26BC5813EA8EDB64D6E24C98D7A6D358BC277 8AB577C5BAA1DA41B9CD089176A2EE201807CB287B9E8A37B8826FC16312FA05 AB226B2FDF7D947650E4DA55CD85E5F2C85F776BA42DACC53562F44EF0FBE4EF D9D12D03A0D490FD7515686DC3079B9F15DE202D6F8BA6AD48DAFA2F2A463AF4 3DFFF5094155E742F598B11522F3693D59A2458EE4862D6C07BC29770CEF1E9A 1248B9A96F3B3FC5440F3DD5A18513E2C9B544530F8736ACE9515013E4AE8E5B 24AFB033C28C40FEF0FB0B0F65947B1B682B91D575030E5339214DDD264FD3CD 7C26F6C84C87D990149AF27F287C29FD4055EF514B554E637F4799F51B86475F 3CC7B09A45B6C583192843A71361A28CDF1B9A795AA5778E4A5AA4DBAEE0F772 26C214AA4910B6D67AE8B863082FDC66486CB43C1472FAFA7D454CF0E9CC71AB 834E7BD5B71AD7BB129FE49875A41C354AD50107820424E115596D4542E14293 680780FD0E86AC17D6629BF0F7B0D33BA8EB7129C1F444CE4E9696BA16793B11 4ABAE25C7DAEA11FC313DD36B00D620E929FE7696EA51A97C57726D34D08660A 050F6357FF3041E5D2321D9F14CAF48D1C43C7B4C40032E5385748A6ACCA0157 B0DF7DE7BA07275F8BD5395DCD566E92D6416FACD2D96B0BE6C143C758C69420 442C43FECEB710FF43C33BE4F13A201A84E23E883820E16131B170F7F1BDCC7E 2D12F65E201E9581896D3C22191A7607BE409347395BFE18FCAE34C2E59C0E85 370EE5AF9449C30EE998A6C31FBB56C6668E1375AFEE41E88F98823476FCD382 3955C3AEC37194CCF380085F19F63F56B8A5C5A2BB775DEFA25F4A8D50BBA217 9A8D9F5BA5444D00AEA32C01F50DD76557378CD7F561861C732328A1F52517DC E8A204A24A2FC36B0243190EFE2BEA4EED04B3999B814D50658FC6F5A70FEC83 2157F92C408123494D46E6776D9F4C62BD5B7098074B5EB99BE87FE10BFA7B4A BCC6DF7838F62A6CAA01A20DC0310FD083667702E4BF06F871DB941811ED3762 EBAFF185F16CFD4621575F712148834A3E0A3FB128F9C1EF4E4E016F2C36103C EC9223C029D5D7D8BF14474D60320FA0F41BC087748BEA738AF00BBFB0E47F50 12D2AE6201D25076D02FD409FABA5247D7A252F63BB7C8922183D3892A8CC337 251B70DC462ED2034880F94B09D4C60B60AB594476A8008A616251A86BFD4705 006E4AF46A8711CA38FAD877C8818CEC5F7D18EA999ED1B937B3BB141904FFB5 9BFA3B1079F7FA00CDFB40526E96273124FC33E497FC0401A9B35EB67D6892DB 1F1FC24B32B0207BF2EDA4CFF488DE6C57A348CA0BDA0FBC55BD70A934ED3B42 7B47DC8F5645248EC59890484E6D11B24859D5CB4DD7B8596F0639ABB0CB6E31 0E3EF88A19C2D4875F588ADAE512F3828DFA0A89C77596F9B90F792B245D1A1E 78890D6AB614FCA9FF17924B6F0B44397A3FC2D90A8746784F5AF4837021895B 02EA275BD2C5F910B52845251C458AD39663BACB883F4C98E8F15204A530C977 7AD0ADA929D0CB0C17E4D0C8675669A84A66320D32A8978E1AC5B1845B95BB82 D70BB7AF55833D5A5DA56EF8A06F9C98D380F11A63AC1C9A2D78A68657BF6ED1 F4BFDB27007903DC1BB18DF18028ECA3EA288E066A74236DE246D1BA054D2895 04F8A1604E2276DA7CB2E5AF20B9030D9B03214FACEC5C7B9EAA7FF340526E96 273124FC33E497FC0401A88BAAA239E6831DE034D2F4BEC784F4132F491C6A71 DEE5663A7DE663753822663BE10608B07D6C5692156BC8845DED082F6CB47188 3A72D02343FC876F9E429AD49BD46603E56A4AB04796C0B05D90A5A823129904 A5C4569A1EB57B28FD6AAACAFB7DD0E30FDFEB9A4DE604AD79492967A8A7ACCC 98A39B4F001E79E93ACB2D392D67E486248EF7364E57AA3CEE39F00379C736D0 7A87F9D1DC5C0F9B779B3D0B218998C7D516C3D8624546CD48B81D2C7BE554AD 7B9F50285AB5E6C6BCF633BC9D6A33D38AFB5B44EC192B59A1D6574E8217A7D2 BBE4184493FC6CD496F98E0C586514E96AB8FE3E73451C9677174F12623A09B3 C5D3AE355DF9C651AA3050C6BD03D02F64811EEFEC9A601506D570ADCFBF26C7 455590FDA7D9F63ECE5EA6C2F86AE0B1B9D76AC28A113EB472EC3A789C6A0F71 CB6F2A2D3428AD814DF36D640991A6B5B279AFA154DB3BBA8E8BC434AF4C91CD BBDF7E3C81DD470B8C5FCBB746750A9C76C5DE814B5859328180086F32282A9E 52EBFCE3616AD9FD1E2DC0BFA86407A133C23204425BD81578D8021C9DD9C420 8BDE9F29D73810612C0982882FBBF74F876028A71D8D5CEED6039F8E5D3AB45A C6C0E4C5387ED59BA65DBE9B3680EF0FC47281BA7C77834777C9E67F6F58FEDB 7E7D77240D8807439F3523074150AD1A292F9D0E9A984A2B48DA2BE265DEF0DC 4086867A2799F1C348E720992FC73BDF4D549ECAF223CEA5C7CF67246B62F561 5EA2905BCD203EBA3B15A5B89E23ABF4B54B3E3CF4B3DA84FA98DAA4AE8D45EF 0063C30691F7EC342BE9A2B01E082AC757322B1835B330914174E893EC09E9AF D6F5F177333586ADB01FDF0F5CC4E14C4B869E9E0BEFD4C463664E5211BFDF55 4A4B2777A6D776291AC5A5C68E3509FF9ED6A3AF675C93440CEDF117E571FB07 50BDAB4E519BE2E0584BEBA566A548F1F5EE7E17B7DFCBA8347351C246C8F579 148DC113671E3CC7F2ABFA020BB0E75E99962B8E8CC568814076F1BBCC6C2652 F8497F2B33F71206EA4CCD54EF4DBDDB3B1EAE1348D1FFDCEB817ACF8C4FA407 DE697D7B64805CDF84FEE60E257E31C3776C4D301405160F9A09F64F0DAD718B 0A1E8483DF729A535E00296230476A74BFEDBB37E08E183CD3F00F7979B14394 9606CA326F65DED12F4BC6817F3CD0930547609A2CF40BCC511B0EE9FBFCDC85 80550ECCB910D55B7A327DF7FC856FB85135901E2121541D767E3E92666F3EED E806A33161A33D521D72B741A76FF8EEB7F1A2565163FA4381471E7EB4BC88FA 83636E3AE03CFCD3FC01214D65A282C7C6E85A08A67F0589778EB1CE8A4B4B22 7379834A9BD01B2C7A38C7600C6F1EDE2A8F397770AB549E8E1ADA7046FC28D4 645BF52AA00CBD7DC221521756CD2DD168E308DDAD1427567D0A0CD8342D63E7 E94D1CE78A70435697908DA88113F2A9135365ACD7E6E3A36215A675565CF5D7 C8D514095FE4487251BFF26C96F29387B45786E2810C78D8CA0856DFD7C5BABC 140FB3EA85B1386693DAA9EFF6C88DB4F3C5FB45C05B128C547495398A180C7D 0D3099371E6AA729F1588ECD61A36F00490AF3970924C53B009E9EA4FDDAA23F 6250311673077594770338A896F9B4F4DD67059180E2190D80E2854107F555F2 6E20628CA7A2019685C8248E7695DF1251E5E0267EEB8D7DC98EBBF55011AD57 1064028D898DFA6D396697DE9CF67C8A86432A74EEB7D7FA8E2371457A43FE9C 2919E4ABF4A72B3BF15A00652A73AC9540C40220BFEE3390B2615D87EB3C2DBE 90C79FE24F182EA6025F680B1B4B47374E9FDCC6AB0DAC1A474F4422ECC5F69C 4B6E1D0B583CE26F23A5BD3F2D4158696DDAB1F46D02E2D3444B8C9104DFABE6 1F4165003FE0BF954414961C26596E952453318252D82BBB50568E0CBAAC98E3 C7F55081E4D5F5DA3AFE7423C35F1040F921CCAF47EA535BEBEEDC09E25B8EE2 E972DF16F6A50F6288F2CF6E93E9E71ADCB86CC4D93D9089D0D3BC15657FCE72 DDBDB349F0E346EE3163EC34C3F7364B237838C339CAF82E19413C41B247F3F1 926BB8B279AFA154DB3BBA8E8BC434AF4C91C6EB5A6A8B33B8253276096DC4F2 739898865E1BBCE3CEB9443F06D7532DA36B3979C65030FFA8956A5761C1EA60 A6C778D18919FACF281363B7DFAD216D26ED6F9FFB58620D01EAE7450F90E497 A3E146C23041CF011AD84F980FE0109EC357546996C65206CAF829A5B0927390 C4FAD4AB7CFEDCEDA260281E26E5C3ACEDE7D3EFEEAAE9DC0882892247E90CA8 3F71BE56EFB6BB37221F748E46EDE9DDF178F2F8DF0DA3FFC26DBAC05DCB1C19 80D5F134F4974AB0989355759D3C2F64C4106A74C958BADB860F1538363F33CC CA6292AD7F979465F5E9A8100E3C3FCF056D0A3FDE5B518FD143DDE55E91EB14 2771AA88C6F74BAA162A67A8127BCDC2288C122403E278DA27B2C434B8A26187 F67615D21AACC595F4D6A30CB399BC8262CFD67CA2880E21B530C3A13D9F59A6 DD573EF894401C655F722DA9E26CC84E721A361BED63ECAD0AAC6F1B527131E7 274EEEAA28E77E8CDDE677E7BAE411F7CB16BCBE5A066EB78C2A6501C887D993 0BDEA39D2A1C3562CDBBBB1EA21871D3F5A2074249BA9ACCEADC8D60295C7DBF 4D1EE1A4F7E280B79C9E74C639A6CF9548159784A8A5A74282463DA66E01A10A 19B080C993BF4B7B24AAD00AD36F3F98D6432D12EA66BAE4085C23730C0412C3 3ACCB984FF9C3880F47FEB8ADC1CACEC77F80E8303D12FEAB7D1BEE367846DA0 837725373AFDD25534FE57C583A3009739863E6362576C1C2FC4FCCD2FAF8CD0 C0D6A02A91D659501A186052BA17FEA216B1037523495184E025633AA478EF7D 37A5A4844A791FB835E2280DAF52CC7FAAC1BDF2BF28E5DC8C40FCBB2BB86ACA 3D96BE9DF5EDC736758BE529816F52BB141ADACC769352B3407AA3240D28AC0E 29CB87F380D7915876ABE3BF2D66FA7EAD71625AFA29921B12D3E111DE3FCD7A AC6231833359B4088B7F7C0C6148497BD9292751DC6F3E2CC8D8EA2B36986960 6022E520BE37193F2BA0265267DFBDA71C0994A19EADDDD7E10A9FB461FF1C2B 2344D2D031E97F899CAA8CCD678B7DD9DF5377A28BED8B83892C68B6248BD206 D73F13DD5324947DDEB019500E8FBB3E22DACBAB9737D011CCE9F0EACE9F97B0 94B9AFC76EC0905AACD87DA10C03486C16478F9669448E4F159603A6AE1E493C 4B60BCCFC2B8B267881053EAAA929A1D4FDEFDF662F04301B0B5B180667FA6D8 2701E2F69DEF9BD9E5F67CAA5658DF85B06DF35C2B0B27FC0CF8CF2D402149BF 7F3E93E768E330FE78BBE5443CD8CDC4277E4505203BA4AEFA3A93F54C7608C1 39ECFD41FA211A5DA24D8CDE080D9F71997BBD9F88E75810632BBD1ED0D17879 39E81B1CD168D60FD35F354C68FEF4CB7167484C27D012CDD65ED48A4D8EB411 B945DDE481486F921C7527B57ED21821F45AB5BE7635F44E88072BB753ADE423 1E598E605A1FE81A805E57638FCDFCD08BE0092D15E2CAD02122D488951299EC 2298C450B1508355BA04FF0151B09DFC98C8A8C9C5F9AAA6971A377FC5C5AE70 093518AD9000E3CE315A4864D1A3D926D5D0CEBC729DD7C64DC5ED77D61AC389 FCEA5C07D2599B04F7641BC2612B71BD789A66AA9FBD54205B9422384914C2D2 FAC5C1EDF87CC0865CB5187331B378752DF085E729BAA3282C78EE28FD1B2F50 DC61EBAD6C6E057691C8833553A532812F9CF856753BC9B1D39A97CB6F6AD8C9 24564CDE41B49074E88CE3A25BF9FE1356B85E15C008FFB050674B58E05684E9 A79FE1FA5F8A43CDC028313A6DBACA9BB6708FD21D3B32FB1460CE922597B235 02CA2E7BEE1751C94F7B4013DE961F7C7EE246723C7D0CD5A9C771FD477D0952 BB0D828BF269ECCFC80EAFD0986E3B0ECC51B056FAB9C164E2DC5FBFD0344A39 8BDCE559D3342D945FD5510B58C8DB20999CB4F217312D6BBBFAA8DA99C9E1AD A3D27650D8FD3137B815A5A12D22D0CCC2A45822B752AFFC111C488188135902 3983CCAB2A4224433A5AA5803061069F7B450B67A984F6CE6F529A894801EACB 55CA4EFB8DD56C84B8E93FE88134ACDB824D33486B5F50A95E167E3C5FD5ABF3 DD6C6C5DE4D90F74168861B75F4E39D600BBEDA6BDF1816FC35BA4A820A017FA 6B9191773085588A72CEACA0F9593850A637565B18E9B34804C604E50B3D261D ED65833D96C91DE1BC6B53C4BD6F5437DF852FED9789AF8B5E22E3942D6AE86C C4878535BCD86D6F193021D3B247E8EEC552365442CFEA7B9A03D1FB35548B10 E37978A7B31AA850846C6B562A1FADFBAFE2DB713F617DB098B946725566D32A 57E5E229DAFA6A47330C6025FE9299D7A74802514B2A92B310ACA0DEC1B76B2C 424F3B137A67D231D7C09F9B74DFEB8285940A1A70EADD984F27AD672FAA0AD6 4A2DBA6F6C5DA59B9DF0C24C94E84AA7A1A71D533B5B064029B4FCADE704A102 A71B0EB3CBDF30787ADABE840BD298702145F1284B85CEBC204F25220060FE23 E1DA9596D98C4D7B9B7ADE9319B2A0F95CD0323FE035136871F1151BE84B3AF4 0166011CAFA01707AEE467159F335B2D0C98151CCC48C7656B3F87A0CE1D4585 91A88B2F51957D70E8932E2A992D4D8CF7E1385139E26B4CB674810FEFAE83CF 025B89C875F6331023FBB93EAE4897DE4AE830FEC7280100B74B281A6B5305F0 2A5A73A2BAC866DB19F409D2E724345A9B30B333F1161168565E045D8E24532F 9B5B95A4D9B7310834A0C6D6DD0A7D4FF8632BDB64D22CAA5E73A63B50D27980 7C53E6376B091E16ABCE86C6EDC0FBF59D25C98CF9E0F884EB1D93F7C2B323E1 DC77108E99FC959B5DF5A8269430E4002F2319D0D5E959FA0B553B3535E17C88 839FA9E0DCDCE6AD1454DFF1C8B4AAE9F22136753A2936D4FABED6401FEB79DC 69A1F73DDBB490673720FD6A84B18D97C290149E8EEAD2457B48A70A57F67A50 FABB98956497674880272A4BBEA34AC676B1520772E5A76EEF3B3435695ECC19 A940FA065E4DE1D77040BD8AEABFBA9B57354447371F9037120976E17A967A73 75E87873F8755B70B4E6C84ED02387A9E7A2B9C45C642F239151A6E0C13ACCCC 8D13F113474D367AA58DB5F5BF37A15E2D19A2ED688710B6F9F83C5FFBC7F751 57BE45C6AFDC7013982D6EB2491A1DEEEA20769DAA8DD669C3630465995BC211 E7FF00DE5A75403B921887EE01FB7186260380BECFEFAA64556FD599C07882F3 38C40A84280D51FE61924E7FBE024354EA3C343147B6D719F24892FCBD38632F 5A01099ED01B2C7A38C7600C6F1EDE2A8F39715CEFED68CDEBD242F9223C2D15 4693DE63F267D1E351307D32FC085A1D1ECD916FCA6210B9E4DF388FE7A5F39F 303D7B74883D818664E41B76E2535EFFE243981CCE9FA807F0A58998BF5AC597 FB3680EC051E875A51B81A1512F336A834C629AC94BB8D4041DD37601E7C4920 D64C02CDBF0B7E35DEF0F728A0CB41BF1FD135A5F43E7792DE58F0DC7F1E490F 98595E29B0E239AC902E2006FEDC2E11367711A7609BB8EEBBD3459DA6CE1464 AF698CD4C3FBB0F5F128E4E336E0DBE15031624A248C26519058625F9BE81992 A6F86634CF7269042A083EDF44B4052B48EA4F7247C1544BBA54D01D2B42B398 0B97257F31C773DE4CFCBC17249F1878A8F6B2B40F5351B26973D2FAE13B1ACE E58FAD2579F35421D00B090A9C6DC9A7FA5FAE2EB6C59EDE1542F75DFC63BB01 5893E25185154195E2A174FEE7E8540E35D7100685D3C879D8B3FDF8F613D002 50CBA8C540B2E3E55C5B9D86235A2FE1817CC70EC57F21B3397716339C45BB9F 516A847395A3D68626261DC0243CC3E8FD348BC23A7C7BE835834EA385AA0F47 B446420B3F219204CA439F6734D5F9AD0026521621F41AA3D7E7FF5010ECE6AB 45071B49CC0E773E8F0F4E1CA153242AF8451166B6932A3817A1BDBE97B4C757 2F22D774804A38102629D9EFFE4BF5483EF1F775150AEB49189809007F18B42F 8448AEB32D18EE14FA03E3C5F6FDA3736BCBD01857FA517F990F0E0662DA183B 416C6F24C1445F3866110D84DB32FB41F87A61CB0715BD680651A9891B8CD040 1AD3156D4F383A3B0D9FEB53FFED2994F529E8FF519030232035CF710DAB7C41 6541C9150BDB7C63AB1CD028D4716C060CF82F494A32C7956C7ECC8F4495577C 4A8F35E8D451109CBC6334D1E384CC01116BDAA2E9ACDE3B34037F7AD8021CDE 783FE897152A0901F7BD964261F986EA6F86FB01158AD5EF92932B86F4C6B4A6 4ABE2EA5CF61A612CF18EC2476A7A7EFF533A5AB1FDA2C912562546B9BA5B14E 85D301D215AD30EBEF83F727F0476C7A9B52E1643116E662CAC5F8B14B952233 D94104173D97A7B9D96FBC174C525BD4AD8A33D72458282DCE9EF74CD4B4BA6D 44FC60C0499DD02633DE6BF6A7C81748D36423465DBA89D4C4E6FE316EA956F9 884A463F78A5D3E5F2353E996B5CF4B43B193A49C5F20DA668A7805B352B9039 F5FB23526A0BC7FC044162D6800615FF257AA9DCB5AA6D524DD56168A34F5850 033CD5F4E1162CEE05EE09C602F04B1B94E66480E493156E9F3EF25BB79D80BE A56267DA9C06B0B7F2910B9DA2AB0B256A7A4A810E6146CE35B1583F1D10AFB3 F19B1A3CF27F94968B97EB941FCF5F18CBD473D3C98E37D6B9CAFB2945DD425E E7D3D516390601E380AE88191D6C3AFCCCF286E20272595EF325AB0A97AAA775 05B030AFDC7FF984C53AA45FEBC7EF8CE98CF1125E76B12A04C170572524FAF4 62DEEBC49B215C910BF8A25DFAA151D3C56E379920A02A6369D6BF67AA5C07D6 5D9C191E64B4D22C52AD102D253C975F493D3A8D13257AC95C81CF4A6670C0D6 49F83B2DCC8A86C510047393FE9366370654CFC362E85BFAF29F14AFEE2DE532 170FE50EC131A087EC117F861940F7F475BE7069215FEF1E440E349A9FA2F0F8 6B1B383C5324EC8FC1BDE180589AAA9C5314FA207FE2F39E4D66F1BE047D0975 16AD9C89FD5F3C0984EF7D68FF207677443A5A4E86791717424634C65AC221F7 B113D3D7D00A2A8D2056A9603D59A245722E71A1CBFC0A799ECF6C1B58D0F866 1C2E866BE1982279F0D41968222B89DEDF2DCB5B9291FF5CCCC6FF05368DD725 D71E0C0AE57B2BD432998AE424179414C0EFAF93F9A9694716B4D777C873724B 9B77BBCAA7285D2656D9A595AD7ECDDAD31D98DFCD042C64BBA859FE9BF9FA03 83D3CBE761044171EDCD4AF0AAC074867B0EDD37E0C96B6F06AEDB48F92765C5 B6E47399AC01791D5B620816796AC3B5A7996A806C005FB289E5FCDE6F4E9192 56087C14607B36BDE32EA8DA799C4A4D7F1B7558CFD30E2F4FBCC15BC3930F78 D756D6943B7A964159E343D34652A311B8209A3BD5092C090BEC0897AA350600 F1C73E1F972A9E362E3FF27B6EF61E57FF63ACFCB36243EBFE9DE6DDE7B173B7 1E26D16A050FFB76FBFCDC01355212143E13D9A9F12E24CCEC781A90F5B68DCE 37CBA02EC69BDC4B4671B0FB9F7ADA1B5120DDAA0D343D79A80CEE4EEFC1802A AFAD889180315C19185D62D988B7755B4CE6C308500013FD9E0124A426714663 30865AA8AC01F3F21926B2E13B338239E5CCAAE4F764D510849E383CCD307A52 3660D4200141C060768348C12B3D95F57D4AD9F4B8A8677D02C5BAA75FBA2F47 7570D8591A699AEE41CAD71EB978728832A6CD60236D9720AF0525C1F00053F4 9CF2455291BA713641D192CF164A85CE85C6DB556F973337016776351B18C308 F831C8E22B3235679DAFEDB26E1CB1488C7297178A26F996BDA805843F45CE45 CF5DBFAE5CA0C236570A6A3ECFCE9682327463FEE9F26BB1F0D67B8E53814EFB 9B7307CB57766B4AD7C44C8B67C565D520383A8F8F371753BE73E9D4A7040DBD 82281A1D7BAA3D50CB44AB71D496A8AFFF60D00BCDA953754A00018F75C299E8 138EAA2367F2671BB0151D41D34E5FD602D87638F08FBBB13586A1C67B523A95 38732E77914EB4B280FDEF4CB5EA994A057160D0C7B0C3F05F1F67CE2764F6A5 C14CD80DE40FDFFEDEB7867AA8DE657B6BB746F7258EA0F28E6402929B670D75 57C8A5BD21DB086096471281AB9CE18AAAC7E6DE2F594559F2D9B44CA4A76E7E 9E1C7DBE08267242A0BA165B8ED8BF7283C7828B8D82CA53FB6F244630C9552C A5EFD8A36246A9B5AD3DEF18A1264BBCF7DEFF9E4384082EA7E4B9D2FE5A0E40 44E58F0A7693A5CD62A8B9B3997620B43CD06DD40383E99D8C7E445A4CDD1399 6DD87C2A7DA012B9627BC709119A61314B97671D3DC893CD29DDA50BBF1B756F 0735CA8592039AC66F022667 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM0900 %!FontType1-1.0: SFRM0900 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm0900, tcrm0900, larm0900, lbrm0900, lcrm0900, rxrm0900. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM0900 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-196 -322 1502 937}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F267FE330B57DF626EBF73D2779A4A6B462AE6E5 19E5878939A488F2FE1094A76925CD24DAD4573AD3CF34E426708CF06E7EBFFC BEF5595408106E2189F418D17AD510ED5B6A528E8902AA3A5F0FF52AE3DEAB07 32F06B63E28BB88229E046F4FF8A356BBDDE82DF2A197F2E26CA00D5594725A1 83A89A36487EAAE1AC312C929CDCE50722FA6C596C261E4D78D6C6ABF77F5CCE 0E410ED74287A0F201140F8D9674A7AC585D3CBC72CCB824F9E1CEBD08AEDB3A A4015CADF471F7ABD9B0F0AF73A8274FD441BC1988A61799856E4770155341D6 516CD0E25BFA59B67AB7E0571DF3F5BA70A82798D4CE6D9F23F52CF97CA370D5 FFD6359959DB68E52196D89FFB84700E1CCF3E2E6A52CCB43303FEB31F296C29 34B019803C53D8D5DCFDE72099BFBA29C176DA3AA9F20106D6AE6D530A490578 AA65868A24DD5024A28C6E372C33EA2F6573A6592AE985F03A99884CCF7CA096 043D8D33EC0550084F5D85656F821D8E06996DB3E47A7C4E20CB4FA8F9A1FDBA 8A8D5E42F16B4FE307D36B86A652C196C9968BB436C9CB66C9CA27658DDBDFD5 28224AA3A9BDE394CE703771433B4BD8B2867327DCED10CD89FDAAA5663DD04C 0F4EDA21B96627D495493471C6F0A2BFEBFC2951896E3A52824E1B82EC39B16B F11A8545D54E1C5AF4BC701B47E1D8D4DF6300A47895BA76637D78046F961C25 CB06BDB10F9F1B77D59C29BBA2D704D5D231CBE64808E61DC1B5A9262BB18403 2AB064A9483F86D1F4747884C53CDF9EE1D97BFD897280AF3C1B82D448A52171 592A38BC679A219E5E10B5F35C1426F0ECE007FDCB722DCA20E7DF6067EBD441 E65721F384CA12B6D41E8CE89D370FBB3520916D3EC987FCBD46714EEBD9E1C8 3616CD3A9C108698F3884E17EAFF3F0BCA37BE98FA38C76C80572D60B917F882 EAA6250715B471F275FF9406B555EF475C1E3DD3FFF69BF0E7C5E70B5A978031 775F87705FF2D23C1A5DFE65C94DEBAABBEEF11736FA63BA313A7F33598B51D8 1420F45BB03781F64843652AB59C12EFDC4D7182F953CD07A63AF3076507F55C A2979BADD3EFACC0A59FBF083086FEC50F74C0B255D23D91F1220CDE28AF0070 0A4657E975B281609ABCA598E852CBB461976F46EF112861D3AE8D0AAA25EBCB 2F369E32C7E50A4654EC211031F68C048CE84E4E5266E58B9BAF192FC98C340A E78D9296F062120371843412E8BD075A352171847E6467D40C45322CC5D2E78F 8EBAFF6D7D0B25542A16979B19E752D1FEBB51709E8D139FD4378BB87DDA95EE 2C3C5A09C7577F2777C30FECCE9225CB0D22FBF974769188C066ED870CEA556E E285667D7FAD1909D38FE518873CE72A28E791DCF05E0F77EA586434EF79D1C6 DB84F0F04D7D461ECBA91F7259461BBCE6885517C3AEEF9A0A9BF1DF3B533ED7 6DA24FEC64AA1A5B3C76F0D7A066890F4DEBA482090FAFC229B8A2353966FDEF 10C35BB479287F2FEF841A22695DF59F17E0F166CD48F80B0D4F19FB16E40066 1AB2D495437176290ED007D84BDC62F67E14D39198105B719F3B28787FE5831E FC1FE1A5127BD552B9E6A497404121446394EA8D207045CB33D4DF36AADAAD61 0D1007C2AC6894F03C895ABD9A827E50A4A73ECDB2BF3FBC775F11A7811F4E23 B6EA46C0854EC912ABBF3C68356C4C4B32EEDECCEF8B8C63299A6B74615EB950 D13A9A9B70A14C98A43035DB8AC83D5FC1C94C39503DB16E32D8095BAAEC0D0C D678F58808C77D206AC06EFB0D2DE04119EF111FC5B27CAEB1C72F1BF752F7C0 2A48526DF20984B44BB4B6754896C30969253C2D66739BD457C975878B84198A 8BE49B310B5232FF2FFC7EE1C0CA78765D14D7D5C8EDED3799041AD84F980FE0 109EC357546996C65207FA38597AC6F906D796CF618681CAA8992555723623D8 95FC952E62CCC5BAD179B62D045277A3E77EA1A5A668E456DA30FD03A6BBAA39 41B1056B6A3EFA631A9B0E661E2BC60C143604AF24AFFC61266998EE8179C7C6 82B4EB6C09A17BF574855143D2AE7D61EE2B7B8779CD0D3E7F8E7B532E6ACF67 1DE0A0DD0FD3856029CB2CDE53406A6662759B65A8135C8E1DC330B6B117F602 C9A6294A8BD979D0E18E1D9A7518AA593ED5268DED3D3D008CA5E393F28EA29E 949C9637F965219C66215E6B26026854C07D282BEA32F31C5943D54C936E5B59 3164DD66232CDC0C21623FF789118A10A2BF9BA68F3793EC00D5EB542AAE22E0 F6D5CB759BFC78C907C1CCAC1710754083B85E2514D50D391A8D3771A68E03B5 E5CC81309BD22D737954DFFE8F3F350FC8ED47A84B487004DD8B33B16B16775F DA4EA70E41832195CAC05BFC80A220108282768F39E9641FBFA514E1BCB816EB 68911F83BC7F43467AEC1688F05E3CAE99AE48F8EDE8ABC0A23A84A0B8030780 2BC0FFB26A9642215864E48F37CFA97B8F0E6DAB8619663C9B526B4F5A01C338 3732909AB8C0EFF6D402F5B04C0F9FE91C112456A1A82CFCE9E04B637C222264 DE7FE218F25718B715869266CEFE37424C0852D9AEDEE6941CEA4C6D963FECC2 A75A5BE456F4FDA49C6CCF4EEE6C80038588E04319A2F1C34063CCB834C09F03 82E9B09FC599792AD660BBB44FB8CD1C47E9A5659E22B8CBD287672BAE2A60CC 8E2D8B1038F974D988AD1890A7738F26801307BC60159FBFF461C14A44260277 13EA65D71A4A5E6C8CF53125743D3604F72D2E4557EC65834BAA1940EDCDB07B 9796DA58756FA0D72F2686B3F6468A51466228CDA775AFFBA5C3DB97B68C6338 1AA4EF5BB7493CAA62381382FF9B11A286040F3DAEFDF7FE4215A9C86B8C168C AC6D44274454E4AA7CA6690A15F793D64CFAC2FE47D6D3A45457AF0AA2AE1644 75AE670FF0BE39AE8EAF2238B17C064536792D031F96A76025CD8F2DC709C654 4CA74327452822CBE543FF80E48EB1B2D5A30D974A7E9B24DE18959F725C9F22 B1D624111AA472AD0ACF968C2DC219F601A0DC437AD453D819AB09E7D22A8961 1C252789433AC37C9A52426E2164C93D8012F1103298212EA6E2FD72E890266C 5F7DC0347F1756CE9C161D1DFED772A7BE1B66A836E6020C8EBFBF39E02C47AA B7D32D01F48C4ADDAD53E859EBDFE76586621EE4AC427DF83E4D5B9650D7C2DC 3F005FA7FB656BE873B8962C3AFC9EC243CDD0D4855147890AB956014A804BCA B7DBCCBEC86E0F2ECA5A8AEE0DDBB535193DB8FEBCC46955DD3E4D5C4323AB79 91059EA4317CA6DE0F66F3DF8E97EF6BE3F1C940CFD62A38E088D3049887F210 E0866983248CBDF0F6FE98A99664195A920FC239F97E12B6E76A26177BB17440 3B9A94299609C0414824CB35B8755151715519336A7D4E95C2B17F4040914C18 7FBFDF71021D94EC9526CA84C27EEC9A5003B438B20514D1B53818B47C55DE18 90CB49908A012FAA533533A8B068EC26AE2DC397F2C0F3E7B5C209964A2B2417 71AD67041B294E45C09C48EF1DDC2BF323925EE3DA2A12B52955FF2E6A73E523 51C7784D68E1DED13B33704C5B96E51BE6945ECB8B3DD50B382998A4D6042910 DA2DF650710FE8C5A846C7C44FDE5D45BF586978AF665A6FB381AA8928962F64 F44664D1AC519E58FB775299BFAE57D76B4780C64CE32D3DAE23A084FC4A54C5 BE3F531DCF1743D5A6CF78D9846B799D9A8A143DA77E7ABE666469AB01326A7F D92ED772AA7F5977208DAF116E7DC11B95954B10C7D3E55F65BF2FD33C050817 ED346C669CA2C7D1D9B54A555611AB5C31B40FE092188CD1E9EE8B39A5D8F57A 3F8259CF20B1959F884245656DE62CB2062C8F0D1725AE126E530CC560BDDB76 86560F522A7970D5369C0F41988BC0623654AFA545563FD288F74192AB98F347 697CC2D24C714E1750F8FD39DD195F15D80A69E2D5574FE761D83A482E959895 287ECF867AD67E4FECFAC0914E1E65B374C48562A5A86A51D398662F553BEDCE 5B6BA16D5D100B1D837E5ECB69B2702748557459EB0ACDA493658B0EC289A0FF 64E651A689822CEC4D92D04D91D99C5928D8B3FEDC85A3A236AA9975A5F2A0DC 6B0969D391FA8209DCF99B248482D2ABE2FA79D170DE44B561BF1E6302CE575D 754852757324E31AB358FE106D73D498DE74043BDE6E9D9AC37D5807CDAFE77A 748B283EFB6DB46A204F0B48F7E7DBBBAE1EC0ED91C92E6511C1A179E2C0A8CE BD1EA1E1462DD58CCAE6A2A78B06763C3E2D5D98E5CD607C8A1DC9EFBA2B76B4 677C7DB5A1BD9DB81BC806F4206253C2DF5F84E121FD7489D506DA25F0B657C2 03BC8FE5F156A7E6D8DCAA36A6F3AD360A8CC37EC42F080CD8E9861E5FEBBBC8 675CE5772FDCCF4EAA58A00EA117E44A300794A6E9D6756E34E7358139899D79 E3ED89CDA89A7F611BB0AF6789B96FE48BF1A81BDE6D899EDB1778BB5C407D31 B78256CB9BF699DAFF6BD089193205D007EBA107D3EBAA998179CE1D7277B56C D3F69660D891E6D1911C63E27E1975775B62027582FB88C242E4E8F90CE8C371 BDAC7BCCF2FEF8C0210A261DAD5C7468E2942E463795C7F6D5B7BF0377BB6768 5CD40050000302382C61D87C901F38A9EB87BC773D2549D6D74DAB538C280A80 40110DF28ECED7F2D86E91B0003D652F5A6D00490AF3970924C53B009E9EA4FD D8CF25D6DB9921D143E481CC79F4ABDD8F903662E0B1C636C40E4F37AD463B9D 81A248209BBC9FC01682CAA91CBEF0C684F4A045E9943B655BDC693980EC5C29 9A4EAE74148EAF0AA076BF784B213539EE6135F0ADF70EAF97404121446394EA 8D207045CB33D6B4AA8FC91C06FFA3D34DC8F021F638EAE7FF982155B5A86E3F 8B4F51ADC3A90F91F7A8FCEFE3296CAB0E1006DFC20A8E023AEDE6B2B14E4612 61549383C68DFEEDD25CE47053EB975B479CEA1E13899A402050DDC67BF7F188 6E5249B2C8F50E6B8D236BD37A8DCF58BD937737ED6FA58D0496515D1B2F8782 21226DF5AE8CAF1E39427B7572E807F976949807B13AF4C860605D588BADEA36 1F5B8080E6C7F427BFB14A0D5004585BA1697D8A98E8EC8657683D0722F8F3F7 2460BA711FA7F6FF3081DC39F81477A8BCF7CA9BA70649F8B24FA472CB9596A1 9A7E800C24CFC0652BB30B2635B0DC4E6FBFCB61D363EF2A6889B6A5936B3052 952C56DBC24538AE7ACCDF54DCCE517C629F3B744B51DCDEA0BE1D5DE857790F 2B98E5E8AD40D6C7269F98D7B0A81E58B64B0AD171F646510C335CA66F66B911 64A2E2A0FD5AB16724B77DDA94055EA0E53E52CFDEE7B2B58E3FB47C5D62B55B 98937CB108CB3BE19DD38D410F8A08F37EE3C1E8020AC7214607A445D9766760 C6971F4255BCFA95FF34647199248E9038544B713EF28400E8E43F0E4BBC0183 8F221DBE2188E2FDC086244B3925AC78595E5DB0DBB928E45ACA61F6B0E24465 24B912D54F9A77851D5DBD8434092F51366B42168841A6700659043B0378739F 2B7CF7EA34B885280CD0728B5E7C12E76973C9A1638E5F4D7616505CB27F5388 5AE2C67A86588D192FE1CD6C7B5F77EB476E29B41AD72BEFA5214D31AE37B75D E2D0CFB8AA39A27C48F95B04A221533C6BD0BE3335376434860928C56224CB5A B241B70626C45A3FABBEE9FA7A8DD69160CD6C7C02F02D3E7B32882D7FCF47AF 0C37908D14E339FA60C75EE510A9D9957C7C2583D83754A06D57CA50D8FE828B 888E2CF8F55BAD66595135270BDA915373B85DC2E04F6BBCDBC423710364726C 9E208B2B391B3CAC4A52D627B5D77060C42B4C79F7C85AB08C7EBA76803BC744 F953010FDA764DC3A82CA17353FBAFA30920E261069897D0139B86D1497736E3 20C13FB470C7B462C654AF5FB352854792C3AFBD5D087F9425CA32D5896A1190 E7A6800365EAF2E39A335CCB98286CB50AEE34371B16971DB1E246059AB1B920 0E56880907B95607CD6EB689F4CBBB3C0F92B9224C232CA7E0C0DECA7B6CA86A 0CC884772E5CFFD1046FB73EAFE3B1CABABB482532E9F0DFAFA02BB6065D0E22 2FA294AA85806BDBC52705BC6443BD74F4F3CE20237C78CACBB5C95BBACBAFA7 A6491D19E0C282DD07C6D4A1CC3D306DB5A76F1741C44E8FADB2EF2903437CE3 FB9561102E5C29C06010BFFB0A05D35843D6B882B2210148D8237FC68CAB8A06 7AF4B2D58D1FBB62E9B7231B03313266AD8A56DA7FB78865B2BFE17953AAC7FD D104C51C1D7C4B9C3AB39FEFDF2C960468113B0CF414B206850B3B8C0280FC67 A306D1625DCD10FE31337AF8F3357EAC2414615E7BF241FEED67CCDD30869539 84C5F9BE4CEA67E59A26118A78F1B9B5994DEBD48FC67D624D0871D43F3AD23C AA6AC4AC771A7D382415B238D27975BD858B4EE58C36E01B5311C057442D211F 854FAB4B4F7A012912D3F202FCFCFF86F100F5F16AE21621F9641D1FA73CDDB0 1EA1C7DED45F128280E2DB6971ACDE05AC83013B6D49888921E4560B5DD67FAF 2312879A9AD921499A87C0AD17D6392572B80F9A10853352964BBED075B78A97 BC30021797C9913A4D7D411C52FA6D8F27728090404DD0198876495C28D22DAC E620003C0CB91921E614CCF9445B4C8063B4BE328DD7CEFAB5F7338B1B05F2E6 29B6BF59F3433F2D3D6443D6DBF4C0C7733A6FEB09CA5E27B13F886D3D05FB72 DC6E795BCBE8FB2580C019563C6909B64C9349133625FD183D494EBD62E21252 5E5435E5A6F0569ADD4C8FBD88B96E6381762482408DC6A87646E0146235CBFD 649F0F46784FAA3A773144EE80F36B650B643B2423BF5A5400170C2DFFAA11B1 49ED60FFD0C08B8C76505F055EBE4552437A93BBA21D3B530E8F70DF336223A8 0FF746F1630431C286C900AED5E8F2E2A650C0C690BC84861BE3814E06D2273E 405F48F339DE67B23AA4C8B47CA7BB59F5958288CE88EE0FA2402F8A7548AB91 D30D7F90B47F525113238F4D376E1B47695113568968803100AF5793F52AEB5D 7011BA3BCCB2EB475A9BE17EB08A5ADA04C9DAB799DC6EA38FD2D095374BC2D7 91D857E43FDE384D43B7967C05D0453B90FEA4A2FBED3FE1BA0754F9E8EEB196 6924F124679CB26A558FA5EAD5E23ACCE673604D21ABBFE9FDDA5D757A13EFA2 0BF5CAD8E573901FA5C25A70C32A4FA6B2264FDACD3B0BD58A46707A086BA03B 088BCB021E29FF39F747279CF0F76258639F4FB3F7422FC91F22165A51CEADC0 25BC2EF2880E068D61F2BCC504BCB44E4B912F2001A18E8C9AB3714C38CB457A 126F3CB38158107AA45C67039F2CAAD7EE002D3D6443D6DBF4C0C7733A6FE9AA A7E841F15ADFC685CB0653B4EF7A987ABB42B0D4AB92C1DF9C855499FA9D3E3C 4DC8D55D8FC586FB0C8CAC688BA09F511068231207FE0AB4DBE72678E2459EF6 283C1B6AC8DC403422420076646C76AE7950F3128A33D9A8219572571AC544C5 EE7644A22FFE3B5BFEC525CDDD45428F425A1943D1F85630E356D99EF4A91184 7B04FBE05796754AE25D7209F2B130058C89FB3950BDA0276AA5D925A2DAE538 76BA43045EAF35E082F358FEF7D464D473CB96B2FEDC321C7614FFF77ADCC220 E8B1D65C8D082D9A9FCC54F4A2F7AD02EE1886623A1EAEC6446C1662447CFF72 6B8D814882ED93D44CE02070C70A29235C8F0CEEED40044A8F508D04F359D289 41A62293A38CE7379012158313A9DDF4B1AC7BE543E18D96DA7D361BF47CE98C 86D4A61BC0EFC8B74A2740106141EEBAB068253A8176C16CE332462328847E72 807361A99967E4CF5742A597BF84FD99940675837396EE98C9109653441E0A66 4D2286CA0F108320D5CC17F782C3E6178FD39A8D5390C9E3E445BE2DB9EF5D34 E7F747AEFABBBFFD4E5DA776AB0EBA3BF88C1BC49F0DDE3E72CEA83B03E27769 ED2EB5696A39784E824148359E71EECE23834C1DDBFD88BD9B268AAAFE6BBE85 E6E15687CF71BFAF27152FA0948AE228143CFEB7394D5B99D465CE0C9E9D312B 1842D19530E3C0D286CD96F7B956B8E46330EACFA60103BDF8726BCB36DA5CDF 6BC092927BCF8458D54F38918AD8C1F48D1C43C7B4C40032E5385748A6ADFAB8 18C7AB2462EF5004F76FC83D45B9D233C6DC4955489F4ECC0B169F12C5C922EE D58F3B6DD39AE321A1F6FAE020CA50ECC4AF00A45B8D9F0C090DD724EA32F31C 59467AE92D9B93291DB208F60E76B289C84A575C082E72920B26577B7D17F637 61305500640E5F8E715B713EC3583170C66EC8B3BF175E4F1E2B7BEE5EF03C80 73A97C4B2BA515035AB0B6FA9ADA4A6E142FB918B0DC5CAA1FDAE2084913296F 4BE9BF838A536741343313D691D2C2028FD778EC7E16BC085A39B21FC90935A2 3754D8F6C429C759D6A376472C1BBBFF636A3D3463AE0588E6C8FAB3AE953E4D 648B1E0957A42FC5EEE503AE51060321ACF9BC45510D149C68D1E08C4A5BCD4F D83075F89BD4711A3D13DE5F71F912D3A7BBDD9206B31D348B9FB2EA8495EC0E EC72064A654C11A79DAF44D6D09DB137814854BC2EF8AEC9A6C932A07C448363 D45D80F3C0EC0F068730BA1EF24E036058014E8D0E43CB80D1C394B94512F316 A0CAFFCA92384393C6FE2BB19CCC3CD528547BDB92455626DA93E30A6B2860BA 5973A19EB312118BFDF8737B65167317E0C0E63049948FBA78BBEE8B37952E2B 1ABA1511176AB680AE19B04A55897742E80DCA67EEDDC44C359737852495F92F BDB99E91FDA6F545CF3CC508509677C2C378C1B0A69949A1E14670B74411473C 4F946FA2C256F380F678A62ADC9A58AE7242F7F7615C6AF98CBE72A3B524CC9E BF65B73F31051792CDE85D8598F0825CD8423521B95D1AE9332FA0D1D41114B0 5B42BB7F3F7DEF8639E8BAC6AD317F78E19A81DDAE75B72B83B702613D56B94E 058D1C1B090AAF00AE370BC2AFDF1C14C93CC3D1C6603D29CFD0DF347C775742 9B3ED5E2767736B7319287500ECCA91AF7655F64D923D872F0FE98A99664195A 920FC239F97E12B40D56CEECCE954971E0F80A500E410A707AB984AEC0FB30AC FF6B035E156903B461EFE6EA7FA3F0CFDF8B23A4659EF0FAA08F3BF0EFADBBA6 3A7CDABB586764C524C2A31487BD9D64F64B77D3EB2CE5F339E8DE7FEDE0D3AD D993E1360E9C0E3FD137DFE3F01D41EC31264415AE3DF7BA9F765D421C915FD7 C557F2D24161F46B58763BFDCC6778936E7FAE109B2EAB534A64CFABA7AF04C8 C69217953EB488742EC2B223FCC809E407779747DB08F40451ABD2B96F9926F0 2B1D5B9EF9B1A900CBC805D8148E6895B88672C441E9F3DEADBFBFF99E4C521B 0A17BA09BA7F98745B6E9A6F6B4FF0087C439B8FBB6BCDD768AE5844558FD1EB 6ADA9F3D3B8DC895395BE823D18ACB7658252830CE4255CFE17DCA48C888B1A7 862AE02DF232C2F7C7B7FF4B1C1A98FF75D66700397740F2460ECD1A3E4A0EB5 D0EB0AB86E72B8F384934BCF95F47662E2FF2F77417386EDFFDAB7E4DEE5DB99 E3C7AB4AA5415FA2D308CFC6BAE97CD9AC0B80B5CC33EF8BACAF7479F67CF954 9B2A8903B0D202AD890E700B9A05B724F82E8F118E5F41EE34BC1BC68E436B39 967B9DDBDB9CB1C4B5989A6A2DF1FBE19E1D0F88485DA32F3F514DF19A62E234 46FC1A8FBBDC699A6A588DBDBC9D5C57F4B14CFE5A8D3190AE74785F79B3AC03 42BC6B0B8D418FD307763A3CE4A6EDEA771A385280795742FDEA815B766D77D4 C07FFAD54FB69D5DDCC2FE96A14461A83CF6EC986B036E3D0379450C9E698CCA C0DE9B1DB2FA31624AE0D5268B987C05C0B9114B3F340503E1D27BF63CE67048 E12CA29E5D1A18AFED9665AFBEE48EC4BA5B76DA116953F1416C4754765282CA CA0E4E4184BF3949B1CC8EA7823B9C5253F8C745FB95DF40BF08021FC5A4897B FCC763CF6E980912D5406B68B436B89C72D15EE58878F0458D522DA2EAADFEAC F0D4DE627469CA129EE6412EE05A459F012FD2008F552502ABDE3AFC958B62CA 38C572A4F5274DE0CBB73B7E768B5F92C846F292D535F3615FBE44D06910BD9D 6B53884FAA386B9E4C7D5B30EDC2EE54B481F0603703295563DDAB4619F6DD76 A9C55F64CEAB104BC27EF25741B833A249404AFCE19F92B9CEC396345E5255CE FF1954A1FF65BA69CC1A90F3F012E6D6E4C5D95853BA4CAB33D5CB24E75EA8BE 8D6F9A9AAC2294A0AB5B34BE9BF6061F003EA800953BD8BDC13DB4D93CB823C5 BC8FE15DCFA7A6688008E0588E79A67B34D2099965A36564178DC03720F37381 10F09D41CCA0471BA80CF1950165EF9C627231B7CFDCC207614085AE1C10EC9F BA16793B114ABAE25C7DAEA11FC315B7A71C381F21A00DFE55603A70AB3E890B 51883BF65E211BAE05109D5FFECDE0C09B6F71985B48A305B91A43FFB3617C5D FAAF9318D55F6654EE9B9C3C85B7AEDB8A083B398CEA6BC220CB31C8A3D7AF17 2D574029002C3EE318A994B50C1924D2DB850952B3789E6685EE8AE41F583F15 5B9E8B8DEABC67CAE0D1413220403E4DCF8D71E18B61BCF05933C0C3F6F96B20 FC68947F0294638D219A351C7C7807A8018F938999317C280BF79FCE3F6461B2 7E1D641E24C9AAB8C85BE7D562D87CE12489E9C5AE329C841AA49B49E6722BF3 95887CE669BE9E9446834D001BFCAB1CFA961EE73F52FB712C6EBB567842BCEE C9329F12B7A6E66A13E96719D178A8DD653534500BD01ED95D35381613D5BC2B 046FC6C8805B0F588790CBB837B899548C30FFEBDEB9B2DA73CE885230E0502F 435F4E7D4EF723CDA26984DEEE28E5204DDD6F895D9FC9D4EEDFE9BFF805FA28 08AEFDE0FE43C21C24530AD388DB707DB617FBCB3CD16C29CF8F8F6BA06CF12F C1E43AD0039A42CF37BBF1C500EA0ED528A6AB8C85A768EFAD3EE9D6A39B957B A51CBB5A15B4A594C23DE665F2DB35ACDAAC29A8E14A2294C74E5BDF87B2E855 1B4416F5DDB4B03B511226B4CBF49BD6526B9B1FF4FC1765940B9F9886D77584 0E61D8420B5FA294899E426D213012DDF7277EE294747E3AF42492F76597DF80 A2360BD5352064DF0FB0122FAE304B84184AF757886F3C5DC9EB4D0000F2D18B 2ED16BC149DE1D1AB9F64CABD2248C5CF72BFC2663957468910130734060D65C 1687E4D49C7720B587063BA9A287159CF7C8E5D8603795121827DAFB4F2C2CD5 AC91E830C45C26803F091EBDF3D13A6918CD4165D8CA3E5FC003D7BFAA8794C9 430939AB3B0C3A15D868369454232985C137205DEC4DEE9F20BDCCB31A8E2F35 169DB688BFB73CCE3A81C12D2733C2907671809CF84D4070C0DB74DB6319970B F23C6B2DE6935F81AE1138FB78A0042C6E39E0975546C8D922DC5219DC8BBD73 164071E36531A06E36F445CBD959E396C85116AF8C1F4F3D569FCCEE79D31A4A F6733B624B06979276AE0982B334B2ABFF27B77308187C1DF14A363737337201 932071393EDE11BD306AEA0AD2235663C579914D39D71C507F0DAC738136337B E4D33819A72244F96439B26FBD6FAA52EBF142E336C97474DF133957E92EE1CD BF8247049919363B318E5E4F7726FABF289D347CB711493DCE5F821F48E6116F A26AB36C497E2C64066026BA343A427B54F6ECD8BD7286D89D5697EE87FA57BA 9B10EE00BAC62CC929AE962133C1BD78029F560D09A79E9C4202B4B613956534 7EADABA64B40BB4E05D1B9CAF659F0A1D4CEBCF4C15739916855ACE75D72BD92 E6CF64F4AF87FF44869494B4028B416097940298F82E598E31423DA1FC053D7A FCA6D3D5D480C86EC64B1A9DBF5865E0133671E9AB0711ED8EB1C2F2A36F4D8C 97F48184A0C788B5D1D2313EF5F3CFA124B95805267B99352E5FAD5D2461FE3C 539C21CD5397DA30E8A40372E4FB93C0A274483720E7EE18910327B44AD71187 BE7FCE4318A9A4D5D67B09DEEBCB086F58E06390DB7E5D842A8CEA5AE1B18385 6A61DB756508157E1A500DB410A98F388FA7C0A9221188D44F51B899623FAE6A FD8D9C70B4A2AC8B74488B340C3A10850D6D3C81B051C4409F54EF3248B65C33 1D398E56602451495A6C659437BFEFE10816C98F6C3B9A4D6E6231C78B3316C8 79BB1C3E6A9CF7937893E401054EDC16A1CF2926C4512B3A1FE9844ADD400641 4120CB0A82FC6D739D3BBC75D3B554D08ED882427096096753A37CF300EFF85E 92B75D15A68E82937865027A5E6C42C9D65756330C24635D6C0389469227839E 099868D2F5E0021FBA407D765AEE96012C0789AE91ECFD67C463442638261697 EBFB062B06CA9935DD142665BFC8F5B7691CD5CCD994D7AAB7E3B5747CE47FA8 460F4F4E9F1EEC26AB94607299EBB86BB578ADC22A93CB9B5CB0C29935DD14A2 EB2F91D5FB85FB6A3E62E0CA83D4B9E2D0B243F18204616B9634C58B3047D27C 137EE40ECC609A8D8A088B27817CEA4C9CF0BC974D4F8E3BD2FDDA17FF4F1D5F 3815E76D4D51056F5CB6A9425098F05734F46AD3A09B6F9EC2E17A046E6D02EB 03417D1A94B7EE7297D3DF65E84A150FE9521024C4E4EE396DC888049499CAFA 753EF610D729B4B96A754815E2259431C05AEB9A0E9DAF81164D8A968B940908 D65F1188462B65115EAF05E37F629F98BAD822A9564C1E23A64B5350CBE4CE6B F87B1092E38FEC08FD4764D82C2AD71AE8E3C9B4639126B3468CE4AB11C078B5 68B24C1E50592A65D05B613AED6D1A553CEC93737A05DEAADC6FC529AD6F4C74 9DFBED39020B1E36510ED4C08D8BC4FB8CF81D3E86FC44EF23401DAAA35491B9 231F2831CACF1377C8B8BBF23C9C66B6D0402E35CDDB85013984D02EA2F1DBCD 5A2FDB5D2EB8E210F1FC347103FE5AD10585DB99D9BD2C60A1A4BCFC487D0CF2 27BA3EE5EB69F69E394727A8395FB38F1221ABCB6364E90F8C66579CE983FDC4 36929075DF11778D9DE70E68F9829BAECF7B0436D4548CFFBE68A3AF890F2F42 4CF33C0351FAC0D79F9DB3B2870E27EC641B24BBD6900FC03EDE7DED8D601800 8BEF5AB6DA89264846E4FE0C6A3D71D0750EA8AED8C20FB1C97642F42A032DCD 5340A573DD4E10AD334B43BADE9309A4A1C4B4AC2B9591F561256C049219FC02 8AFF3D1393FDF4F8916FEDF68C44148B89428D505005345653A95F4A423E9E38 63EEE40E22AB8E05429F3ABD15749A54893931D3FCE4FA7B0EAA0484D302072F 87D21497CA5EF34087A0A87B8EE2DFB49CAD1A5E9DD1FF4B101322D6CE4C59D4 B781ADB62601A3D4ECAB3705DCB92F3B3C31C53342C0C6ABD45187FF8960A735 F763580E59218D7B8DBB8F68D696626B9621F56741446B6678D8EDF4AF1606F7 211728A2A87EFAE29DB8D4E2E4D194EDAAAA5ED3D9080B73F863784AF20847A0 0D2E08FFCA977DB98E6EC9A7373C3A420AB0FDE450685A8AE84704B25E1CFF37 25A60B750B4AB6D771F48978C6593BE39DED371496F4C6D0ADCE78A0FF4BFD47 27AF71034711B983BC6B0C27C45782B71EC4B7570742D7104581B3E78CB32E85 2AD373186BEB45997AA0A042C72093B3930F1A2FEF840B200C8CEEC07E38DD0A 435B694C2B6BD949559F9C015EBD413FAE9881FE3B5117B32C326F78787F5CDD 209FD878F4F7970B76BE54F51BC3E4FDCB26045C68EDF7AB3BD971C725F82D99 5E88FA7CACCA094B59EC16209E80321C3E4DC7175221261629643BE95D946752 413F3387FAB9E2112EDE7ED4FAA488D94488A86D00850B69F0D1798271E811DE 01F6DFC13913D0EF47E86026939BEFE63B1456FBE2EE476517A40DEE954096BD 589A36F1715E9827CD986A4D305F66CDBE0A60E513ECD9BDB91E3925EB946FA3 F746878A05B1389E7F84AE2BDCDDDE46257278469156300DA794EE013B241789 F4BFD3CE966F93ECB9D742014C3C3C72821B00063BDCA7068E8F6CBB6B259A48 E606BE0DFA3355331747473ED6CEA195A861AD98359CCB4EB7BC6FE01F558D7B 15B217FFCA6F899BF35469A9DDF5A29EE6C6BB9A84A692B02896F9123D2C60F9 DF0822798F6A5ED038792C6A364345641200DF7BCEB64B3F4DEAD763BC7AE120 3257E98FB5AD449A81B0392F0FE5A76C320DDC35332783BCB3496743D705B04F 5FDA21D1E18FEC7C919C6829379849A19401260A74300F6C60955127B3FE13B4 8BE3BBD61B3647F7AF99C9C8E1773288AE47B1A35F0E7FF86DFC67FEE6C233DA 72396FB02CA8FEF6473AED5206E94D9D1A8661566DECC9F689C93B740EE94E06 EF849901841C9BD82D0578242B82E20837D90EE0F77297F12D7026341FDC39D8 96411D284071D290F35E9B5A8D72868A46D6738271275F2B06705E64A21BF64C 03E16BC55BE5525AA1F3A3EDC51EC2F93BC507E623F2A8502911CAB49534A03D 7AC32EFCE41F348A844B49D4BCC54FD372031CDDACF5E3573C666E66BF18391B D5CB257DCF8F45AF0BC6D970BAD2F4B79EB7E1E8E5863015E89FD7D5E9EAB2B0 7E6CE922BCFAEE17F24867406EF32671022F52762CE72D7ADDC3D3BC7BC148AF DE03D1D1274C0F32415746055917978C7D32CCCB8E6CA24FA190CD5F09A87444 5C77CB6B66763EDCD492A71B391AA41CF520D76B2880699096B9D8E6DED831F0 5D4C7AD03B374642131A67F71347F42BAC705F18946353575D59461F97934077 F4ADF14F4007BF03F7DBD9D974630945869364D3EE7580CF0028C68910700143 23A5ED11D87473504F122868779EB4AD7EFFDD05D4EEAA865099AC2362EBC736 403D067D95F37D00CF20537FEB050D65A4FED1A48D45A42E15D1996F754ACDF1 19843219461C01EB60CFDDCF4C73B7EB4A4AB71FE42FF9C37B2A8CDE70F75D88 83F59C4C51FCF85D95A91E9074655E5AA2AFDCD8F04364633EDC41FDA082A649 69C25B542E0152F3EAC944D973C6C8886B1FC03F4F786EC7D47B97E2543619AE 27CE511D90C5D5670781D1349A499BA12FE8BC668B84CB77D92ED867A3C279AE 6732D8F91F4149195C4C0FA45C5EB8C4CAB4633AE281B650BE421626157E9EFB C0B2E239F9DE1C532139AD2A2B98203FED7C048FFB29A5B0927390C4FAD4AB7C FEDCEDA3296EE0038556CC2E780C773C8D80983A63F012366827BF92AB47EDFE FF1A3EA9F8F42172074AFBDDC51579E49659140DADD4CDE8CEAAAC8C8822C67C 16CB874B1A3E92E531F816E4FE29B30F62DB48952081AC22A41BB42821665375 E46E84B6504B2A0A92D0955BDBED3A875068A09D144E9B78FA5A7DF60BEAFDDE FA8F9D855F18D1868484E520C3F3EFBA59B67A944608BC659B97166F2C999974 8FB5C24A09EB1EAB1C27390F2C41B4792BF33F015D21763376E90EF7D0D4A260 E505B899AD6022FA89E7604EF214712F0012CD8822EC67FAECABF1887D9CEC6E 1EC232CF089E9BF9E7973DEF0B5FE2414668CB1727A593670F63B2FF6901E146 FA5117A1BED9C86DB14B3B067FD41E3065AA548C78ADA31A4193D0526C198FC5 70C89C3E2095172A1EC0548BE676D7B7E646540DBDD8EE81E448CDE11DCE8C37 78F91E373E5D5C3D552160B12CEBA294E01F2766DFB49E029FB3982086D35B0A D499488A2A0FFB07DE6B06DAC072CB6EC6A7924FCE4E3B9815B8D3B09368F3F3 C54651D65E95B8E2D0E240AA6A0235AACDB2EAC6CE1F3B04DD5B022349F907F6 0079334773198F1220EC691FA2A16FF1D851E7745ADC1CAE1F1CD29617D1737B E52932DDD7D974F59A929CEE826F6408B38701AB47E17888FC2C1C9A3DFA6C31 BFB524C5BEC88D19DF523DEDBD1BC5AAF75949196F032A5AE70742CF961D67BF 901A4603287FD20FBBEB94ED48955C10E0B69DC1F31AED0CB25A0C2B62F17E85 11A3246BE707F2CA1A477DB5970B85A35E9526BD04B9CC577F98F6FC4CCF66B8 7D43223152C571ADC7C2168CB51F7F3B1B475AA26001E438608440D95D1AADBD 7E972B4F71C33C1BC2A8466AB5ED558F4C4AE05DACE3CF882DC272C320A030E7 7FDBC524C89B8DEE60B0975721D1848FA2B059C1C940C06509E89ADAEBB6E06D 3D41AF9AF670BA5FDBF8BB07848C8AF58B7309BD4AB80818F6C1C57335816BB1 30CBA5473EF29F4ECD69FD334A1628AFADE62EE09DC356487B252B5C8D1DB24B 2502B9C5E232CB4CF649C3503F0C3FDE354D1982D6E3F2C80C3C6C6EE5F25226 4407BDCBB3BCC418EA103C3C80C467425621A5FF95672766FF4CE3E22AC9B846 6F45190EFE2BEA4EED04B3999B814D50658B868836092F79420A3BDA2A10214F 0A6CBB7E6651753EA8E504BA7A209D7CAA718910A061AB1A5ED1F61ECF4DB699 227310600DF2B849269EC8566084556C0476BBCAB007A97144B83E456B1005E1 464BA141B91C8379CA35CE04B2CA47EAFA203ACF976DCC8E7CF0E841AB3FF7C2 9A00F8F8EEC8BC66E6F41EB22F5A92F0FEF9A4742DCB0951F9D58B9A38ABEDB0 51C4F8D647A01DD5A721B8215A33C8C4BD07E26EF964BA42AA20765C83EBEC85 2E666FA20A2B949B4100796404B7DA58DB069AE73D8F4082594C8A8102417E1E 0B11E5A9A883165B9432DC7564C18130F2C84EA4714A8CE6E0162331A4E785E8 FC48A03E1137D5A1281CAA541FD61E619434C6DFE03EE1DD3878C3BBE529B35E CEB07147C0882B362EF0098AE31F54AA58AA1C398A107EC3BACD9CA8DD0C05C2 8230F66A5F92F0C74865FE9DC7CB4C804FFB9023111EA5CD4458357735CF7643 E89D5BE420AAC3B0EC3450E766C66210E28F8BAAABED77CEE994A026B5C239A2 35E5896047EA4EA0CC2815FE92D8DAF648E65894E186318A9B579AD0005284B4 EADB943CB326F29C80354C326875396F0499B198DAF7842380841F265668EB5E 8C6740E09773393CE621A4D9DE35A147F3E9CE7320E287428526603777F63B2F 6CFA99F0A7DEC527283E78699EE67CC16BC15E3286B063B5AE98A4AFF552655C 8FDEDD12F21B86FBFF4A5199B53859FFE5E4403D32C12F4F7BAF93C2AE5D9803 2FADC538510E800A163C3C92688F8EC9C7D35991E2FEC3DC70352A2BA5099C8A 01B448159533F0A7764577E39B18D3648CE410343C704AA03DE8B811E081D3B0 B0BBDC564B3611E34E49AC889851CA0782E783528D0CF7F6F0DD72850E817BBF 827DCBDC8C02986D8A8FD081322DEB995A3F3ACADBA993EDAAA64CA5048460E1 2E194490A4C13C090090A3C4DC992341F53BA440784E4F5077411650478E4DDD 4AE91B4C2E939FECD0C3BE2ECF80B81C6F3D46B6E75E681929449B724E760392 3ED4D0944CE5C1072EA4FA26F299693567B7222CCFE9F227B5BB96514DF3E3AF 0318E1855162B16F7CBAAFCFE4BB4850EE6B697013EBE6D84703B645E264AB2F 0E179F916298A90B79BC7372D1C0A7D40F60AF6C6C3DDDB7555A24F5E48CF6C7 AC7B074884574E969D16C7DFC8B36B5101F4BB8CAAFDF066524931EE8B4B643B 809AD88344F661E948DBEB8A0C3F5442986A5E87B7CCAE59EEEF6CDF1519C734 64520B0BB899E892B1AE11BA61943AACBAEFAC5C870799875DCBC3F1CC174436 A9601290ED04237D969D443A78E829487C4FF01C353C67880388624EFCE436F4 FF75D85370139C2EA98E2D3EA58670442088394A5ED827EEF0B2107D86241C4B 3D1DC459C7D77E8CC2C54BFB8F5BC45BA81C3D42317816D275CA451B531635AA CF27870B6AD054991BF91F550C7C583BE34AA679AC67AC7840125D9C77BA76EC 22331C2DE83118D9A89D9F64ABA4B585A674CA2D5F3A51962B566508CC6A0DDA D6D61DAA53033D26AC92D8B7BF0C520CFD7B2E2881A8D9E561393B150E0F6B42 A814360A79148DC1168A01ACA3100B6CE438839413F29F4507177557F7E75218 CE0A873A42666E1555A116AD4E2FF0BD0CA1A4BD9761E764FFA72EFEA6EE30CA 4280F594DF89167AA614FAD2988AB11D2AA1EC9C6062832309BF16B8D17B54D1 4D8D3E9C4983EE5F4755E0AABE2DC95D64DB4E15891A5794F8D4E5B487EDC7D9 E650F953DAEC243FE25DC85F44E84ED069B45CAFC4693AED3484F963D330D412 A44AA23D1D91255828E09E44CBAA3CB16E7F9F6D8862CA52B16E08CEE41A249A EF8ADE9B15385C76ED5B305B583B996C664F7FF5D463EE1C44D3924CBB72D5E4 D9E2AA0F906BEC865A9897362590E3120022F84C48B07BC4D0A58F8A097F64F2 2F41AF61F3D5E2E609DC3678C6226DF652F4F8BE97BFC28D2F541282FF9B11A2 86040F3DAEFDF7FE421A9AE0F8F46BA7864A3E811F47986CC3B29B94F495AE66 2DDA625BB3315A4FCD68E1077A5B09269AA53D388F0FC0DAE3884DD8E1A6B0EC F652A10CE33015A31E9D5BA7BBC230A38A4117E0DC93A95C4D46B4105E3026C2 D7DF2C6AC9A36CB629A7BDABD12521952D97AF81BF616852BF40CE8672A37BD8 F09FBE555FE0A0CB701FAA819DC341467C246DD2D854478CD058DDCA8F6F19DB 4EDEFD3F5EF23143E80DBD419696A0923E22CCCB26388C140E0FB547DA7547F7 C3269627215382E4538217B82C2CBC4F8DA2C6489A09350D032528BC49CCED44 FD03B20F969939DF2E2A49001DA45CF8A86C92D88C73154CE5F191EF18458D29 E3D4839679354CDA6A2FFB0435C6DE67B8A5E1C114B6FC7CDCB546A2779C9E0A 6EDB0E4528B84717C2B04029B8721856474C03AE17956D786382DE8571FD6AFC ADF079CD1B8D9EB331CD0C7DA0B38981A227624ABC9AD4FAA821B48CC84BB847 AD5881E18C2DAEC09606228CF9255B11B2AFC824E2B4184572B40593A1A0EBF1 E1EE24281E4BA70AE4C2FBBA51638B64D8045ADE1890CB49908A012FAA533533 A8B61EF02A8137DA09D67B2C640A3E19DD13485A45AA47E18E2BE09885EC2404 518AA49C0589CF5C5F4A680B3C110FFA2FFF9F864E668D355A40D9A42C8B3575 FE5C3360A0CDCCEEB95D1C8AB679BF7774FD3632E67035529BA018A8540F2A21 850A92EA39B64330B2E4082D0FBD675732001BB7FED3BB8E0AE9CAF5B643B78E 141E236D265F815F8E6A67E75FB98512F623FCEC960B719C2782B9F11BB370C3 23E8B436B4205EF4AF15C342D324F2DDAA6C80418BFAA3AAD8D28FA0A8539B43 90C909C288842B157CAD1E44C4FAE2928013ED3CE631E200296EE741F16B1768 7FE347A0E68AAD5A0A63AA127A4CC965E24A0F32ACAE284A82B7016E83DFB470 55F079A72202B844E94471D7B013476335D7D563256DC925B88E94B846F4B343 BB10D3DBF09A456F1F12AC4A6C56190A170D23BDAE7F7F8F669A1995616F5206 077A4096B01090B96FBFA80D1197D498923EEE9B65CBB80C53479859C17474B3 D0C4B0F0FE41F4B657D5799194846542E2C5DFCA889F03CBE3DC998C94F927EC 7C0EF1DF2859681D7DD8CADAC1FCAB4E414ACABA27E833A471EE1E5CA9CFE98C B28540C286265666F059FA36657B9C4E3A8BE1674B1AB34845B32A364CEA51F6 DEB19E7ECAE93C6229B206E64C3CB61E0524A1DFC7F0C779934FA7BE43821DA9 99C25408BED02EB7D6B01CB47BCDCB2181FE7CC1184D1104219D1C918BB38D10 BA50B3803CE32E51EC4DBB64BF440ABF09CACE9F6DA03CAD70A406F642EC7096 1D0DA185856269A43F6F3AFE603F059B0018DE76295AFDF36D368AB252A90256 D81DD965191EEFC4958328EB87D5D4AD7A723EC103C0AF6C72936D9EBF147F32 A3503922CBD68101B2B75AB5B810F297F4FD1C087564AC9C93AC213C12CA3F06 7D5A2F7A5A783A3B21F319F9D8710463E7015E2AF3C11A75F2114AE58EC31B94 6C41CF80911826F482D912AFAD2CED39189F321A791889A3D80A0A300A21DDCA 88B03E179D01C3B303C685655168A11EE8BBB5B5439E1F59F8EE27AB1BE279DB E7FAD7B3A2DFB83491F0FEF7218689B1EF5BE59E387907BB2230E7A4A7569452 8BBFC87FDB21B10048D8D6AFB7F965ED7D2CB3D8C0D40401820FC5A914353F9B 5427E84960759067AA4FAA6E16283297E4F7ED39D15855917918D731C0127D54 65D204E7FD8E0F11508584BAA0510BE406066F074FCEBCF633BC9D6A33D38AFB 5B44EC192F9387CE30C854EABA04F1B3DB2D3B91A0ADAD91E46628D1DAB24B5C 73992110DAC5224BAC2371C3226F2E9E0D55F9289601D5719436FCA3D8B19A87 F344A481438CA22336FD3E241608CD9E5C59BCA21C205588BDD6DB7DF80E7F72 E6FA901DBA4BB4CC54F9C226BBFF8653B731DE3D7191BC6A014F89D6A1EC6408 CE01CD428F68A5E78792EC3F5406664C5C7AB6BFA6CEC94F94B89E6D7BD80AAD 40674AB560ED0E258DE2ACB8E3A59F5A4324C4E32C3021EF5291662749FDFF8F 3AB57B8EE78251337FED0002DA888DE03824D4D850D8A6CECE4D88B3B62ADDDC A6FBD95BA5778E4A5AA4DBAEE0F77226C214AFBD81FB8197E402AF57D680F1AD 34324CF35A737A04A9DF04054EC926026DA25D51A7F17DA97DBE228B33B86A10 1AA557285C8A911904E3A18A4F1222F898D5F9FD416AD809C41DA6833BFA843F C0151E1B6BFBCF6DCF39AA7C3CD7471B6084069ED351CDCCFC0B28B94A778967 A2C65CEF614812566AA6DA52ABBA26ABEAD60E48895BB508B65425DE75B81047 1A420552CB9A7A8E6EE0DB0ACB0DB843420ADC081057601DAAD9BDC21EF72F77 0274B0A545833BD6986DDF098E41A7D2A0A6E0DDCFFCD07E079ED27C588AC48C 58A8A7CF94CF3CD72AD275BA1E4EC08AF16DFFC47DEC055DC07BFF9E7242C84F A670DEBE90864E4C0896E514FBD81B239C4B11A10AD0A91581D5D762729AF9A6 0F5E60FEC42D95818CD707EB8C4CBB071873CD9D42447977ADDFF44CA2E04CB9 B60E23A3F5F938CFFC2AF1EECF0D4412A561798F2C06DF89A3733039CDD2DE68 AE6F3AED2110227E80001370102E232E96AC8C20892B9F70050E5259A9545F90 0AF6DC976458DE5FBD593EE3D053AEB2A26E6574733B3F9F411EA1C68FE31568 417B92DB563637B03C7FFC2993919231BB239B3FAF35C8197E596D9040F2E3F6 889F6FDF2679F77D52577A094316BAE4BD521743F274C5A9D5DEC79B0A86A04B BB8B94476CF8D048B4CE3FD8FB3CCB19F4119FD2FE91983BE1118C4F6F40A092 EEB197F6937D8E57214EF02076FE7B9246ECE250F8334D73FDBE3A9F4092564E 4175EFE49EA8FFA887DF7EDED6D53B3D0F5C9D86508F3FD473966D86581511B8 253FB7E239589823C640F3EFD9FD077E101DF2052BA64E989072A0BF9FE54213 CB19A223CD817CB6DDFD011D15D42EBE11E25D86DF8D23C34822037D27218ADC 3D0373C7887855B43EA24C5A85016648DD512E366AEC7D217C070A0CAC8CAF2B 778FBD6F8641E2A9EAD9BDB1369CAA73A08AA9754BB77C69B5CE89D5B50EE53A 6A2E166ADEBF2BD756A69A3A75CB9A001787F99BBF5994CB2C898B933F9510AF CC9C0493C24F6609E170D65A9A8F314903D4122CAA868F0370829D0D0E9ECCBA 86D3514AA66945EFE48ED3CB5AEAFC1061D85F159FF5A9EBD0874F341C52106B DB5EAE8BBFEF3B9585420F611F58481B4E07956ABF06E38D6274E3BC4BC3C52A 68DE4D7970DAD5E4535ED5C93D5CBA9C7CEAD19254FDA3EF2D60AF28D4039DA6 1ED04A6BA0175F3B05AB24402E7D4372666F0693EF39F8B534119124355CC144 6B7CAE71B892A8C4DC8AE28CB3109733B129FA30D4B69C656C51CA0CDA661788 E9BB36E4DB73AE18991DA0D2CF3B9B93B6460DEF817DD524833EC807FE298E57 F012FFF551BB67BA635AE8F4D6A1BE18037804CF7642DBB1E33F5BF20E92282A F2FBFF714D2AC072BBB55EB3F09E9E11C41E64E9C550A50AA77FEB0D00750ED0 E82576B5F69253C39718B9649B0FF233859C4993D1F28DABF70BFA30C87C8C16 9E4359D62C5CBA2BC56D8439CC4E2843EF11AAAD5358767BEEBA18652664D27E C6491304CAD09EEC703DE11EFA20881A427A23A8EDA11C1B799BBB820450F85C 1D10A46BD527F2F020D623CA98E958E82505917CB9EB875F6760594AEE2981DA 81C5A5A4D08D5E2032010CE940D5206F5BD4E25061D3ED61CC2FB36EB137366A 9AE62F86B579081A9100DE80281619F5FAAD9236C4862F6597E59A2E9D67098B 9E91993AF34BDA3AC78E8FB1A8F54459108A159452164F7030407F336AB9157E 7F4838A9FDA12CDA024D994E186A4616D82D509B54ABBA95BCA41F6703264474 BFB4C95A4C49BCC462EBF410AA2B6BE35F5ED6693F433E772ED7BA0E466EB256 EB9BCCBD07D0CDD7D31CF4BD9459BCA1F0385CD773C378C094444C3A980CAE56 00FAD7853068AAB3995B74DC6E56A3EB25B11DF48361017C54DF769F0D0AF335 7D0BD20EA85565DFF583AAE3B6D1C00698342AB084FF77787D3BDA3185D4499C 817D8F2DD6B07FFDBF2FFF8C68E657D25C13289B3C185D8742E2E18D3D550947 4B71BD28B54257D9ACD5E3885C06D400A549996BF3E8938C47FC9C68839D3978 C91C8DB077E521A32B4684D6E8E619216403771657F47B572E5D43C21E31653C E0ED9DA95B2C8D1138A378B8D2CBB702B4A7269F014666BD39239A0ADAB7EBE1 82753F26592A42A63461E0BC07527C9C674FE4C4E6FC5408D9DF4E22683E848C 88D5325DE9BD5584DC00DBC97356C0FDA68C3B00537F91EF8D823B89ADF90665 9160852488D6AADCCEA644F0F9311022B05FB2925E57043686D62B6C1F2878C3 16645BC0380B5A41551BDB4F1BD5CBF752BA81DA67603A97C93A32ED2DA3A9C5 B2F9C90742706FEA989BF8FB8860B771D994970727F5C965AA5AA05B9BAFD9CD C8C62FFA7EF9DEA3233EDF625E92886620A4BF4F6CE392E2F77EF72D3D06289B 0F0836BF3F3156B21DFA7BBF52417E8659B1F4EA8BD1CFB4F2DC57A206ECA1B7 78EFB14325C124ABE5AE2AF4E0315432D317925D3C271F63CEC1ED70453AE6A3 2FAE2AAA0444A2E700966FEF80C2D207920679E79E167235CAF5E4BD9DE45FE9 C85C11277CC2B2E3DFC47DAC02B7843A1B08EBF92A3398EC5C53E7B7B0A011D6 16BEFA2309523F50BE115198B09DAF28376B69CF81EBB5ADE3DDF3580DE4182F 6C57FE44F1896204C3029BBA425716898CE5E5362ABE5BA3430616644A41CEB4 18AD5E85F4F850B63F5FB8AC89E60A5B2B7D8420D437BC7CC32B32450489465A D2BF5CB501B6A34AB262C831082DD35280852EABC3520CAD8FBDE64A6E4BECFD 4E2537771575178B8701DAB6D048935511859FF7DE2D26071D5229064F3C60A9 11EED8239771F9147838D98E7948B9BBC6545977EEEBFD61B38C6F3F94E743F7 FAC93E5816746417ED7B2C72783DC9849756DC520447A7D83F8C97094F003ED3 191E2FA29A9F6F1172FFC5D93F0173EB8D65C803356F12A28AFED5CED5CABCFB 02FF3F3000AE2EF6B6BD257AFEA590FB7A1342D150700D3BD1419DDC6B313023 6629581549B82446D24F1125E78EF02C17C23FB467891CD18FE8E592B6E7AAFA AF5BF87010B43EA5F3E97D2212DD9ED8C9349FAB7E72384780D38B7CE69916F7 EA5327AEF877A87C9FB3689B4102BA70B34B624647D02CA0CFE8F63C5D41EA3D AC30857E2FB6A0BE1918C035BE9E9E5F630CBFC1B02B1E7F5F2D184639E84C6D 174AC73D77A385B659971E9E6FCF53BCBF9AF3490107C7527C999A09B497DF3B 8F35A3BDB352515BD48880C7959EE9A4480D51ACEB145F3F5920ED1A058D7CE2 E85349804697C5964BF5FCFD03C2DD438BAD7C89178E3FDF91E71DE433619D0B 760661495709ED688F41F5422378E7F9D5C2F24A90C004F802B4DC98F0DCFACD 90375B5C18D67195BCB0BA6D1B2EF06D732D8A70FAD3EB42DD7A9DB3640A3032 BA2500E959B6F5634019C4A614C1977024B02C145708BC4B6E58A5EFDD4E0F8D D02DCE3B75C3D96FFE8387871B137E6128925BC17056C101B3D0E7A9FB28BDC5 3EFC06059380804C226735FEC96D5596893A91CE9528A2D951B771429E0038EB 0028261428A52E77E659CD539CC608202C863DFDCA12486BF6651DDC3ABC9360 048DCCEB734FDC8695BBD190E102CE7B59CB6B4CD40F25B847553C9E00B9CDA0 9E11788AE792DC87BA3C187DC76A62C952C4AA9B9F59C85FE5B7DC2B44E02E3C 0D74BF81C83D7A92AF58DF54E552873DF8DAC22017D3DE410041ADF1460C9CA9 95E69AC945C1766D2DDAD8BB4B62A7B340EDFFD00DAB0C67CA556A2A79E714D1 99C7E13790491B0D3C59F9F7D9DFD10153FE54CB0A029A1DF1E022E0B31E979D 9E130EDF0E6818125B72CA01999A6C110BEFEA59148658EA52BC0B69E5632E1D 82773532EFE1142018075FE03F1958B0E74C505D11D34ACE2D3EAC0F6041EE42 857F47F25632EF485EF2C27EC2761B2050685CA4F23E77FE5C7335481F9CE0F3 06D4D1175C915F3CCC59DB7C1D921D74C63E5765F72C1FF75D50AA1726382F65 1A66497386CA91A50252717C8B02F5C4B3265F25C933CC618C5907964EA08685 3B192DF98D99B2F182636BCBDD7EE4A2AA96FD28A3AE271CA45252A19230E0A7 E1F93565D4767A268AD81E0B6D323F3772671BA9E04C429FD9824ED033663D15 3D97CBC11FDD41970AB08C9974867AF5F189BBC2CFE5A1922BAF54ED21FD4041 C118A0F3EBF8F579635AB462C95B9D8EAA2D1AD0A8053AFD95FD37F6CD046336 717EC7998B74CFCCC5717ADDB9E45649E8E94132CF8AB1D096512241CB69FA15 1E041C98BFC639E91D3FF534D59971A060B7CDC5206718B3BBB96D63EDEEB98E 8D81CE12958A99A3C747E474CAC5987C1F7114B74844621ECC381EC9D086661C DCFE13E6B136651A33D736E460573EE074ABED20A719C348C233F2AFCBE3F4EF F5E829AD9C2CEB3F060923F570909F0126F0930A1C63CB7B4767EE1F15BA49ED 2F285CA1C2F9ACE56176BE39817D66364EF8B55B989CF3C540A73054794696D2 C4FDD35BE4A593F9A0354F2BCFFF386E611A02E08E2097CB9E14F67975262C6C A25AA8412FE9D39F83F7688BD9DA457FDD386157CC772E69822A40B677E00DDF 7AED9CD4B5DDD84A3C61D9B775B9FE5DCA38E908A0FAD174482BA6BEF9B3387E 6ABA06A22B1A96C12343EADCD914A2D1604A2DED4ECB96B2B7C031EB89CCF223 2FF87212C7C03C65ED61DF718AA84C754E8799105E9521EF79A8D5F83DC27493 FE92503FF3BBA8F455049C5206FFA1A3E5B33F42E9903D44A5FD66A8C6E49A39 09BDF604661F96A6BFAA7AEA9C9806BD0D1B09969D649139C4319CD9DEEC907C 68954A4CF1130F05FE0ECF0F2DF802B247E80BAE8069CF8248C59B9ECE15DE13 2E9F7A7381B3B9948A57598341C728B733ED99DC6F24937614D69A4EDCA88169 2EF39EC11ABB2CF7C5DF30DABF54C5D409D4A69020824C2879FB51019FE0B952 51520D717EB24BBB98A96753A581E61533D71B6FBF009B3CB9A5B5DB0D2732CD 9A490AF59702F87621CB92E8801A8D34A7DBE5A1BC2C625E8632C678A374979B 79E8766950239EFF975EF7357F16D19D85265B6A58C48CA72A2B9D0D87465D8B 13DFC8D81A07C04E4831CD7CC3059FC8E01F229007FB6F91A8CA16FE4F996EF9 722851950D4164BCE73CB5AF16026693F3C902C59ABDE00E082F641D625FC65A 30ECEEF7BE8ACD608A00A5E4522C659A87510127C3FCCE4C363084229774FD68 226F39690C39AC889AADD9212A94B8DD07321D517078D50505736A3F8E5129C3 B5C4EDE1AB99EAC530C4CDFC7BC68D05C7C6146B23325BE515F99810CA917332 D5F9323CCFC730C978CF6044436E022F420846198F3B18A0053D8AD1F14B935D FB495AFB61C6B838E49CB7FD902E2A67E1ADC447B9BC6DAE621D0631784F3B83 B247C32C109E6B7FF488115C2DF1637B1CCB5C676A47A76279C0DC6F9F93C6BD 2A9CC74735C72684A4AD0961866996A36F698C3A4A01FC65CFFE66E35F3F2E91 F63ACF5E1FFAC820B170D3C345005BA1E8259EF832D410DC4973AC14F5CB94A4 8BBAE90D3C175DA33527B8C415093E2AFD7544CFCE5DCE0B94DB59C54678F854 EABEDF30E79B9AC1D9A72667412419FE2AC4006495F544D4E01E214B7C9B14C9 4849423453D4004BA5E2F7A3766E00E5D91FDB9EE03DBE20BA8E66BA97B41A8F C92F85E8894589A06ACF05C530DA84E8A6EF4C1F7E7E1876126623A3E40AC199 D78300CF131B28CF57E29C4844D82F73C41FB4EFF4071D54EEBEA117F3B59407 475C1EF5188137936025A91FEFFCAC4EEF132BA9BCFF084D0A1ADA4C272CEBAE 68C07F00EF79CE8381F30A1F048E9A7D40812B01ABEBC8BA6D96FCBE795323F2 ED8F0BAD86481A3078EA53767957B52B4ABA1D8C42CD27BC56A15C971C3131C0 F976446F8FE9EC7C2690C7037C0F288B77E7532639917BFD5CAA4E9ED12669F5 AF91BC12C2EB9FA9EFA132380381F2F4DDF6510B8919986D1143136E527595B7 F00A6D3B495B66506E067CD7B80378B78C09CAFCC458FD92D0658E4F80352BAC 400BC7B35573DA1A9DDA980F422A63F80CCA349C8CA09D4E8D9FB18788E0E3DA DD7089731586318590EA7AA2113A6F022E93D06BFA669458B0C044B2C1A68658 5C3EC5648A54DC816B31C28D27F17054EA3FDA0DD3A63F16F9F8D02E94D35453 9FC44EDEFC44D52F334B56C57ADDD5192DC387517C604C2C91AEE2D04C39EFC2 806D41D61472DAA150EEB2C19CA7F378CBB558AE0654A54CB1C622F61D5810ED FA32FC0BB40914CFE25F234DFCBDC97913215CF8F2FC118D6A877A21447AC2D3 81ED7503A53C155FBF2E51F738AC7DE81331815CF249A2DA7904B9AD17121911 50A4588F2E19328EEC373BEA982F6CEF5851F6F960330E86347AAEFFB536602C 08424E9F25DC056EC0D93D99BF9D91B5D04C78B734EF3B927BC799C46C36CFCB E7A342661CB68F294E89040308C3A8D805754C3E4AA9370F5A5530D1274316F4 CAFF14BE16CF24880FEF91C54F9C23EF642EF7B2D52906759DB8DFA4F60C5500 AC1FDE8E815BE0788F4288C22B08D58295D06DD85309763F5FE3F4D53866DECA 68C95AB8117DFE69A02E4C5A44ED 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM0600 %!FontType1-1.0: SFRM0600 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm0600, tcrm0600, larm0600, lbrm0600, lcrm0600, rxrm0600. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM0600 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-210 -320 1719 944}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F267FE330B57DF626EBF7C144CBECBB0B8AC425A 08F38901803917D730AA3A77964447A6FDD9D1D5D6CADAB899C866A153F41D19 22B1F8E853431D34A87708FD95EBAAE0636D632C6CE8C8A24746216DEA10FC2D C907A32EA036B850F319450C5EEAE2F44F6816A6D06D366C75DD9E360D9B2A18 87A6A24EA1491639E588EE3DAF1357CEE96FDC53B9C5C4428602EC516A115B16 B137347E3ED03B4937869940192CDEF71C0F2AE65E9C3738407DB9F6064DB42D E38A19BCC21F30DC69ACFC17FB5C81CD536C0E8FA6F05081FB5CD8F85031FA0D 119767F746B580E784CD0928454272AF2B8FB4F5D53F2F011685524517BB6B38 E8B42394EE37942132A010B6CE3CFE2E6CA24D320C12D62B1C9D401A74AFE7E1 D4B2B0968BCD3E63619574B096BD23B59496071FC1536DFE6937146ACDD7CE00 25FCE9918F9F3439D5F9BF4494CC501FBB4894E8C454BF46C615A2407776C621 762E39A14708EFB767E2EBB33C8ADD59B3A589F3220142F98A253A164ABC1AC4 C32C48557C507A9E3021229008ABA8BA85B43B193A537EFE14EE90DE56EDA1A1 CF40CE8C0C510EA30599B1381005621984F2BD4A8B15EC634B26CEFA8B03CF43 612FC97D3C94DBBFAD6F325B3E3C314F0B0AF5DD1BEF045D7E5A054D99EF3E21 91C1D5C91A760D90DE6D62BF425C79A48E381211A57F00B667CDB83B64C9DE6A B51927AC3BC960DF603CAD5C83103FFF8914E3CF5CB04E41E83755C7BDEA9AF6 2DB7397786EF7AE3D016BAC5D3C49F64A88C2F870D014CC67DEE79BC42EF5073 0A103BD52CBC5FA902E2A3E3633113BDC73CC76B8BA33ECC79670C7D91373D11 8D8ECC4AEFBAB4A4960FCE4C04196ECB705D2B910FEEFF1AAEC0367568FD5FFD E7E732DCB7A1F4002F04E2F88B0FA02140AB3E76B9EA470066F36008C11DB4FB B76B295C99C4EE2418D3CB3D3394DD2972008E79D1F3E208CC5337F9C086062E C3722F1805B3E415E942C001F20E9FEA78628C8E84AA5034CA2A8822EDE8FD16 01F4346D8C9109DED708E2ADBBA63A7CDABB586764C524C2A3167A66094DAD9B 9CB52647ED165AF16EF1BD5F5D15667D04A4E55753145228592C42BFBFBBF763 F8C66007D7E72A81DC4A4157AA3CEE39F00379C736D07A87F9D3B03EDFF918FF 0F7AB7C22E5610EE5F4A5938C92C6A29E9037EEE92220832FB00C2BF871AA514 A2E87897ABE6F28E8E7E12723CCF1EB5E22C15F6AED61CD52A7BC02B4DAD3AD1 2EA9CFC3BFA870214856B71230735CA8CDF47287CC3DE786B58AD4750E1B06F8 0BBEE474CEDD5B6DE63476BC1C6A126A6C76BB597D1EAEAA55B461D8EE3FADAD 3C9F2BCC49A0640C3F9F25FF0BF3217EF229757B5A74386DEBBD9429EA9E146E 742FCC8BA675AE7AAC03CC22797B7D71DAE6A6EF1D23B50C2B313B042E15ACDB A483F269691069D8B3595E8B485A16A330E180982ABF6E443CC14A126471D2BF 79EDC5512B75228E70132A916711A88E09218A7C70E4EB6AD127A1224699A2F1 6475999E1D74FA8A73F097DEDB952FD54E0297E58B4F0E0738675FCE0C12CB71 0B3026181F8FB67C9AEF72CBD4C77AEC45656384C054CF8FFA6D183D847D78AF 1EE751033C006F4CB5E04BC3FDCFEBD1D9A5C34BE3FECFBF56C20FB842C1B766 9A227F1F250CEE38F35DF7186EDC65425F4E8B5EF9F9E6AE360F2947B83B63BE 731868D984D303709ED9A7F9F0FC0BE4C5A0BC75C3CC55BBF9B46FE89A24287D 2948E0F9CFCB7E8EA543EEB0EDDE85DD498F637DCED9038CEFD753615D5ABCCE BCB1B4F9695B8E2F53ECCDD150DD4ED9B5EBC8ADE67E5DCF4E440AEF939C69F5 C45FFD14F04A546FCE16AC611A73F944A3E679CFF300287451189EB328E038F9 A91CE40B6143369CBF8E9D67F5B865621CC5FFB1FDF088978B96F24BFE5A9F1C 75028E287466804D6AAF4234D72374D4E8DAE4717F17B86B4C6AB1D96AA5C41F 947B80781FA3EBF21597FEF0DEAFE7F9511E9E965D487A5315073ABC2FC10E02 24BE7F4D9E2B15FEDB0B367B776C524ADBD237835804FF38589342AF7FF2D199 8E5F3C312976040390C9C2623BFEE8E6D97E64778152B9917A20963243FA0A64 273DDFA1C565D4EC246A4DA968A2B5587D3AA7CC6156B8DFF94C273BE280ADD5 B6A7E50643F362EB36B5F8E4888334B4BE23F932D90AD2994C79A1E0C0CB5DF9 8F264F1BD94D7E59E41A41E7A4D00F27C2E1AD8CAA72945C94960E17F1A2452A C7CE2B0B8C70D65C67965489C4705E278AADAB332CD5AD93AA711B5F61C1CB3A CDA15D8607D9E5AF149C40485950C8BFBF4C7E314BC1F344CBEBE5CB89A93A81 3AB558B99F8EF56ED5B74C01767AC5FF37F848981ECC4C92B193AFA56437AE5B 8506129E9AAEA996FA9402734ED86FFE50F7406524570EA7934533DA7E3F6147 7095D537A796741EFB71AD5605E342BD803D0DC48342AA2D163C788429BDB557 669ECC707AF9C9E0F86DD674B1393171CB6C2736952BCB3C63AD128120D3B291 ED19D422F624A59FE2D1AA6B19DB4034A6E26E9097BBF99589554068142EF21F 2841A59693416B6758AD2FC6CADE8195C22B93488FA3691EC1D3BAAEED6C82CA BD6D52BA08F55AF52A7E1ECFDAF8E39BF35DED0B12D4145F5C61B4A1A2249DD3 0750C755DD1269291662B7CBC32511D668F859928989263FE709EB1DBCE18151 4211965E5B56B380917B2C432F0371A642EC3163927CABF282C835FB15E1F1E9 BE321719850266322C59C9E11C90C9CDDA9155C2652E3CE38E471DE74CCF9C5E 829B05C8EAAC6A53FD8B52C0141D8A6B183CAEC7408077B9CAC840264C8A460D 0A2A6DECB325BA32CFCD54C8ACF184707307CD76A60E8F85B832984D9FA1DE35 0AD6C69A793520439F2106BE3B2323379695E7E24A345F755D5941A96F647073 AF9B3960F98A4F749DBBABB2C65EFFF5471C3023DB1AE200E2FBC6B3D0492CA5 A50A0F997B30F6D4898553A4A341F3E0038829603C9F708BB748EF2FABFB9674 4B995EDE3ADE08B95255E29BBA4270ACCF4AEED79BC91278D8E158C2AFEA915D 0F4D02A0E52BDBB1F743B60BCEA6BD83D4A2EC5F78230A78D88BEE8E5AA5E9D3 1094944CC86F8BAC2946C3DD5F5124033FBDB5D8FF066C543000657FB68AAA09 D5E72A69F9739F87171FA2AF5B0D1EB4B6F55180E21B8C07FE486F93E2E26583 8696F8AF55570F51C6F3CEF4245E622D47714FC9FECD68987A27BA114B7AE9CD 3117B29101F5BEEDA14553BCC08E1B92C2E2464A453664DDB770B4451FFC18EE 0AA452F417D276CB909380F2300C64ACCAEB8AA750E91BAFAC83BD44352E372A CD1E8695E2A57AC09E4A9A4F00F81A74AEADA43D105E0B3F0A4AE835A07ED5BC A0C69477CC504C023A84591D8AB4A00607866794E7E2F9A2B89179CA4A42B33A 04338CF4144D61D939425066E8C497C166E1B2A18C094003D174A42C50B6A3D6 7D571FB57B9BE088728150E0A2C217C6F9AE787E8E4B5D6B22B80A23C2D6CF25 CB749E67AD9C7C0835651B65B0149330C96C6B1FDFFD8E22C885D969CD18C61C AC91FF5BB6CED369EAF84DBE1253BEC8685109E211FCA7940FE3F097A3BF25BD 873AED44148AB87CE63A1021B0A1895306C8D08B0A71E0C9039B733D96F95A77 46790D67CC0E59CC28EB6050289B099CBFE4DF60BA3216B767F3F141F9E9D125 795CA2DD5DEDD4BA1067DB4E15891A5794F8D4E5B487EDC7DED583C776BB92C6 60DC8AF8585187CDFC4634F73602BA6119B95B760219E59DD6207CA452062861 7E765E30EC2994BB4BD3513BC3E12A6AC05B250302BE7CC4FD908EF361960047 BE7B46D402DED493C2E162FEB44FD680DE734AA1BEE176360C9D4729BC929A9E 17E96719D178A8DD653534500BD01EDCEB6943BD88A24F09BDB19B1D690E0261 F995E6C5129523FE417DC1414E8ECC5B15EEBA300BFFAF39D5E8DA57C9C85020 5DBA7EC8FDD70F6AB79683319344C43C513C35AE8200ADCC2E577DA417FCF104 B566609E79C54992D4FCF6767219EAC6E10AC5CFD56DB93960EBDFE9ADA57878 16A38973CF4CDD8D254950565A74DB72388463669EF26D6724F1A7DFD7880AB8 29B8B472A70259B3722F0FC2770032C3E7B45ECBAD1E993050B0655EA7FD5D79 C29ADD7544560967020310D8A100D741AB7552E3E595E00168BB085CC5D0AD07 71D60753C5CCFC7EB064FA0A095D7A11E8CB4A9D15DD5F56DF4FFBF19FD0FFC1 DF2B676BEF8AD91EDEBCCCB29902003B36D7CCB0A2565DDE48A32EFEB078DDDF 16A827CD9AAC53A5939076FA1F1B9709BE953074BBE7C3B3F7E242872B2A0EAE 2EF2175BE19973D1C2649B9380D4EFFD55C4155A09CD3CEFDD205A2DBCFDC2DC 657556359978E404787A27D07EB7C0AA632EBD3B5BEBAF0616FD824A2C1941F1 EE7BAB40854C0CB063988AE1E1F452F5918794B3F51A1B105B1C995DC082F34B C83E5DC61628C8C1B52893EC5E3A2EAB2BD07F3F3D64DEFAD5F6F74087A0A87B 8EE2DFB49CAD1A5E9DD53E09A14734CB2AE1F68523081643DC29ED40D601566F F9F4DCB0A306D4D73780FA7E5E46F4074B66BC3EB6D74559E2CDFCCBAFB1AC34 7D04A7EAD48B2C0A60685070D6D5F11D57E723D30751417516F2865FF57A92F6 6170A5D8B75EB877145364C880095911D3BDEDEE9C2DAE7E6D248BBFEF50AAAE 92F8536E8D473A35FE9BC055D128AF38AD368ED7629C46B2CB7D1D12A59C4155 84C1F18A2134F7E062B1E34BADC9C6524D9749810CA4715EF8DF43030A2EFAFD 1DED9D5E42EE185FCA0E5C13342374E6254C16904F73DF47365FBC6DF73EBBFF 6E9927D4775BE834869D3821FA091FEFC02B248B6665B55E75BD1BA2C881A3AD 2C54EC17B8674D22339BE735E306BA11634B947AAF21CBD08A2E32D8E0864FF2 F95B1A8F65FDC80E3F59411F0996B35178A3EA1D91E7B6E99152977605306C25 4BB8E2109851280518BBF10BC5910FC7FC4C657600781926DAD7EDDAD3FCF137 E1171EEF0794735EE0A8F8162C84F23DB1A57DCEA9747733BD3C0DF71184DFFD CE57BF077E6799589EDDB5BE6BABA56EB49C48C95E27C4470E3024A309D0EB59 8A97FDF2515EAEF808054C145953100566039F5070A69A6CB34D2004D0D4F2F9 3797E81EDA707EC4A5E4124E46B412A7C21AB713B6EC280CC352C2F61B59106D 35F59E74D46C341527B31973151CB2D3B2618E6B2A23E7BE10876623088B4B8B 19C78C1A0A48D9720307770C222F0EE3C6C8B96AF7ADAF6F31B526798F6A5ED0 38792C6A3643456412041C433BC43A2D385181E3F22BE45C2D6F19C0F7BD13EF 65571138527C67DCE9D17E290DFD6EEDC063794BF79139CE437135700AE9FEB5 974D2D76267B95011177AA7469F29A8C2B5E4FE8B2789DE5115F6383D5AEA760 58C6F4D52659D651773A61074778EBB7DBBB8A247B6CE16FFA09A3BC00863EA9 C98E6450BBEED01B284C5CC10887350DBBB232324013332B6952B84D332B77AE CBBC3B3519423A338284B93D12ECB884FF5107FA5DADFB97F60008C8EEC8B1FB BFCE77154A6054B050FBC4A6B84956B249AD29281A257658C8ACF184707307CD 76A60E8F85B8396222381E8B9336A59415835D53AC484C577F5FD652111D4EBD F7E0C87841CC9958B0A9F57F041806AEE0B726408567CC9606DDB401B8F6432B 57E55D5001B8E3306F74A3159B3167747CA2DEBD0E86FD9133D41A1C477BFD22 C6637D0221DCE95F0E420DCEA7F1C67BBD8D4A5AF16733054F11F5D48A2FC026 6476E169453EC2CD907011340E49D3434B2F8F117B57FBC0A0970FB43F50BFF8 A76284F272CA3E85CD4C89443A083B4EC77A8AD95CFECBE96B309C6432795536 5286432B7EA1B9783F6080119332DEB307102D23B781B43DF88B7552DC8D3067 8100141FAAFD9FC9B7C3C2BACB269329C468F8709736BE73C4F9CEB30CC26A06 2A695D13553F3D0834189B9C68645F6D94A8D7F3E1C5696C4CBD363437302977 92F442EE498596F8DFF1F24584E62034C4DA961E33C4F153BEE36669BB3C44CA A1BB6D721284DF66C11AC9A449D4E21077B0F736EBEB4F995A09CBAC41FEA3D7 1E0B1760D3C7601193219154A9698C0DDB550C986370360F2593FFBF7A3BC39D 44EB7F6CF89A910B180E6F9B009E3228FA831CEF0158AE8E4FEA94F930201C8A 233A8B019ACF3E18A8BA532BD69AAA71AC185400F5BAD977A23B2376CB845EB4 6EDFCEC750BE37AE380E3D2BE056D20AEC2CBB16686FABF7B8BB808537ECD6F2 2EAE49EE6BC8AE75FE8ED2D7879C8C8004101CCE797EC38FEF05CEA09320E959 CF33FB7371ECA3DAB1845BE0D5B32B1F637A398B71B94EABBC62C976AB157CDE 065F075D57D8FF0560B676F4FF319CD64546E560F15158737C06112F33255B5C B7BC87D5C3EE7287DC756C9E6F25277EF472938F522CCEA4ECA364910DEEC061 B2C0E9DECE172069E61AE3BF43A716200B83DBA7B83146B2914CA758C7503877 0EA4F63B56DA163D11517493E1808A4803C2BA33A438CA1A996D29B4A70F4B0E 6D0EFB1EC2240A77F4DEE558D56E14638683F62FA57B40C833938AE26C48F97C 4AF11777C56F540FF5D2B2B39892D4E91FFC378912D9C12702B485D892C4ED21 BA36D45C023983CCAB2A4224433A5AA580306732F32D92892F8130A9819A5D4A E6108365B0FE92C8986160230147F541942E0742E4B85CAEE82F1D016657B024 0548802256FCDA61357A4A1431FBC61DF13B474825105848748E582AA062856B 46981F758C0B8E4489E68176134C53EFBE70D7B1F73E41AE286B0654BADC8412 98616EB93949028A6B799CEE9BD4A822DC3F087B3E2A2915E0454C2D689609CB F452FE6213C20E30C3F4E30490975AADF23F2C763CB339B5547BD1FB67CFDFAC 4856AD3BCA02FFF6D54DC35284379FD5E8B16748ACD968871088C96916978229 84FAA4DD09B614BA95958559AD18A419D9CD373E9632DDC32A116396E2A7FE57 C028377267E0A9D40A26B9F322C3C0E16509602A18465A10DF3F0A3077768E0D 7738E7A421EFAD6A93542B26C28A9D9D736D429DE5C08AD693E0B58210820BBC F0318D084F4A0B44DD2BAD04D646478F84E4836D27E70F4B3D1B4EDF0DDEC217 336872019CDDD59DBF40989092B9DD99C222A8853E8A1605091AF72CC6D6D0BF 556FB0ADE032280F7F23FBDE7A4174B073B4220244808A443680B9E71DD38B8B 6BA6813BD4501EA004CBA493AF7031ACA99B4D77F27DF349735B6CF705C98AD7 1474C52566828F41DBF602CED896AD1346EA185BFD796E75B942FBA2C6D0F13E 72311DD8DF9777CBE770CAFF612572884D3AB9F3F8A2A75E17611E029C1B5EA8 D80FD42D0090715A76DBF57784BCD075E17A9DA23EA5FF4BFDA67F464A544179 C5B4197B393D9248E23F0F6DABD35EB11730B0439F7B43D32393F1749C4838B9 4D02F5624ADB38FF159460A2C7DDF0A2E208DE89520BC2A603C70C8A72B15CFF 9D1820E68CCA3482A28BD1898015D6B1E5C5F2A4948AB8EB589909CA5DFAEBB6 C3A0F0CD388ED13C20F497103EFD536D8A203EA72119D2484A2B8D8A17C8F281 7BF036E480352A92D61E37FD1A72861376537BA2848F6E1DEC6630927C9ACB3F AA61AEDA271E5BFB498F9288DCC8DD734B8513F42CAE6A1EDD83AC935D120ACC 92D33221D520397D1ECACD8027F005E9149AF3A7FD4FCA041CD83BC8D134C84C CDBF5553F811DD16F3D031D10C0815C456C938FD91A29C5DB7BCD2B9D794CDEF 1A99578EFA09A572F40F14C6B18A0ECB0B815761525177B3F3F7975F624347E7 45919F60436815AFF541B7439C57F3B90C59647CABB5F7A369DB7A316130A640 FF33932A8BEE2BD738E040F0078C747793BF33ED8C96984AC89357D38B9856F8 419D057A413F748E5BCDE1AA1646FA00A2A1ACA0475A655966CC3A9EA7C866F2 2045C6C6577EA6EB47A342EC5FA3939A2F969D2949345DBD2BFA8472A72202B8 44E94471D7B013476335D39CCED88D828387199244C847A68F1A9E8FFE7101BA A4F32284DA303E026431BC892BD886F2285BCB09BBC8A2BE1E24528947E0FFFE 466738C666EE64B1AC50BACD724017044FAD26ADDA935A73E18504C4B300F405 FE58D44AEB2C86C4D9DC15103594EC513CBF2F2358EF4EEF43E33B66EA8C61DC 81040F33BE96C6AD6E4F493287533A5CD92C4D45E852A40D1B334269669101C6 39A25CD432499ACD831B00F9708EB1ECB3581944CDF60C5C6702D2CD20E367A1 3CB1CA23A336173FC1F65CA5AF6D70FCCD46CD6181C4265BA5213F0EE69E5163 C8DA30F989B8F247C6A0B68529A7F35F076EDCD31E8912D75CF4250FD0B65628 9C3557FF905179698213D6CC959D44369C22590457C024B5BE2977D9B494261F AF70814193EB795F7B3D063DC5EFA4C4CA2886B45605D9D03DE88DBCF10EE4D3 01109A209CC79B9A54C70F5370E0F6D3F0921A02B0D1E6068418F41A007E6630 3E8888CB9C0E8DB60C589A53E22583CB48EE8ABC62C64CDC2D54EC614AEAA2AE C600769468C5637E1E141DE2644F058C0111390C19C5733E89AC3DF461AE57D2 09909D7C58A1B8022333DE3F743D030D2483F753272077B72A686387BCCA40DC 033CE8F303257847A99D2C2C69C3A3F1939BA4C4B3251356C6547AC035E885D4 F7599B1C00424540EA079A089B53657D08318B70D386CEF336D908463F9DC9A0 9ED7A9D4BD5E272DE77F6D20B6E6AAD4FB183DCC97477F8C211E8ED58555035A EC3BE79DA8BD45AF96FB8DE5CF10C2CDDE6A14700276649D850B6E22FD2916DC 0A74717A3038F694FB2648B844346FA995F89E2C131533D11B2CD5F5F47314A5 920AD1E78876AF5A84DD01647B9536B6C68006FC8F9CA9609A2718001316F0FD 040378661B1E9E62B48838A442E796E1122E5F10F2F7632484DEECFE48F0636E F97461C9314176F03AD3B6B4FF58527B20D97F32FFF77D947B7ECCFCE2402E3E 6AD4A89003113410B06E9F990B9FCD99447E0C516A22A3969806AC8225FCEACF 7C854308EADB8BA0F53774A492FE177001F6930F992BFC8F72C57446ACC46D7F ABF5F5DF57D97EF5087C172DAB427ED4451592104309CFC7962DE0CDDF3664B9 A39ACC72FF67FFA5F6BFF5B681E745CAE05263C7F687AA538D039561F003A974 91E07D57C671D7605F9D205BDABD55F09CD63505EE77B3ADE7248B211E326554 73C5681798D28C7B1963AD2AC7E143644E936D20D0D9A44241610D53AE6A1A53 C64A45A7046A62A5DDA87BC8D355C9C85601C5DB7FB60F9FC997023C014372A8 26C001E8A48264EAA8E26DACFAD9A265F84D535A8A3EC9DC9EF6F1E1AD8276E4 A5A520E2759D0FFA34F4471C7D6005D9FA435C6432BCEECC0D780948031C9EE5 EA7AE1997A6B34A9D3E2A14B548BC60B2A6AE455B13C72A980F6312093F1A693 C457CB98BD6EB94A70B1F35A79718AF6BC1BEFB267FEC472CDA1E605AB55D980 3B07B51D6C62169A628ECF084DB324B01E550D60F47B93FC6CD4935216385BA6 A4CF3FD8B389526B0192B623BE8EB3E48CADF2C8AF6C9EFD52CAB7B3E4248245 66B2C89DA14B5D1774FEC1F7712C2E268AB4F244C1314E8E2B37664686A6BC79 B8FC762F44B740A679207B3DC19A5BE430DE3B534D1676FAF8121DF0C1C992AC 9CC9F51B2564166D55A9878C8F3509B2C39E830F5F8431EEFFAEED8A86E56638 6C4E5A1C1FEBDF3F1F385260358504330449B1865ACAB1DCD30399263B4AD1CC 0FA3D7DFE2C53672D2BE1EF5B375FC98C21C8B2AF333ECAE621F12179C9E4647 5D97D33027B92C4A9788670EE2465F95B83F8F0CF61F3275C4889E9CC2DECDC4 B5D32AA948AE738F38C8BEC8405A8286CEBFCDD7F4D8AEF1266529BE9E7D8B7D B8AC8F315F3441B03AC1431FC413179BF7B827C7B1F8D9FCC459BC2076915772 5861A1A41605F3C3208762343D6484247FD094ADFFF4CD9460C85EA5E5FB3B97 0FFEF8405E20CD72FE83AB5351D7B776D2A36F1BCA5229132AD306E39C44E534 616B3FD9CC32A1CBDE36FB60F72DE3E1FB3813C1C8334F7FAE86C0F1380AA074 48A621D769F05C8053ACDDA5DF00DF9ED460F84C2B3205F4911DF3C24C45535E B92032E66FBE5C4AC2A078F97542D6C800EC8320B5278DD643900B9DE5B6FD10 3D2DE1F3B1E3CFF9D3A9540ECF1EC68E467174529C5FC31C5327270A05BD1C3D D1B766C581569F76A3E7ADBC7E4CED76E1D4EC4704BD05FF9BB1E463EE135D9D 9C902B17B51AAC0CB74396BD2AD13EAFA579F91F534B15A8343313D86AE2928B B9D5104751F3EBA27244EBB23375946819F8F8E6F082C7DDAE3704EFB0E4E200 BDC0C8F32CAF4ECA0423E5B04534196A0F7EDAA10170E82FD77B4516E2574792 0F228D11482C180E6394B532008D9A0245EC2D9C426F1101E75FCDBD54D86339 19BE74217DE4C1EC9338D223A3DF7E176A18E596251BE474E1CD0421AFDF8EF8 BBEA17C43392856BCBC87B8FF6C47BF25B05C49BD925BF9BFDBDE2CC82C9DCBB 3F0CFEA4ECFE076382F2E96F2F1C94F11476BD78B230FF8AB07B2371AEA86708 FA99651EA4EEB6569733B4D6998F7BD14CA11E9F5F226CAA2FE6388FEABCD903 4F7EFE58A9C1BFCAFD91F881981FF7E1B6A4E8CAE557ED66355723D201102998 D39066D46524EF15561308B3B6694129DB89AA7158495B3075A43E554964545F 979282A54E58F149C2EEB2965E581964DF1186811BB519B9FE8F76F5001E4F0D 4D62F3D99F8E1916F8F80D8197026C204F60712CACF92B266F6B1C389EF0609A 61E59B1AF384D87574DB7A197944E1DE566C84F272CA3E85CD4C89443A083B4E C147C2D24DF2716FF77F30AD5A2B83CF7E29315C1A44D405183737CD197CAF85 19881DC6FEDC28B0BBC0CE198A3DC7471C53D6AC98388888BEBDE6CBE11AD9EF 207A09A1D19EA18FAAFB8B546F7C26AF23496D88825FD85679E3AF3C5046DDFD 43C1D0E4C1A6FD7B0AA788C83F264CD67157D4F9FD0EF0E3B8B57FFA336F406C C91C048711EF040EDE012801E9E43AC623E3D8C713E7BB5FDB2F2EDB81643DEE 3894B23ED81A1B1BE73D1BDC53BE29CD77753162646B1D7AA69FE08693F7C3A0 CE8C480CE2FBB73C1846FF96CC6609E5C72EE1C2C5756808AB326DD8B689D6DF 97B588CF43E8EA56D72B5DB6526E7B4D21E38A0900476B1E2CD8BDA6BCEB6C77 8F3999F3B1C3BEC3FC3503C9F4D36F563F4780DF9F9371206801F0CA5822616E 0723644F66AB1F77AC6E924F033DA93330C41FDCC8DB8C4D2466A7AFF9557054 87B08F99FCE99718682697AA59D8FBB1BB36A193F782D19B7423E732584E8F50 FD61EFD84E2E4BB91C808693E66B33D3D4FC762880B588F3671FACB5DB6255EB 11CF42880ECCB4EA42FB183FCEE44277F23B0D68A83505F65EEBD225D147E713 A9AA6DCA71E657EDD873BF96781212BCE4931F8B27BCE943157606C12D28C1A7 7C92F2C2F55DE686B96B4D4FCA867A3586A992C2FBB1D9A2EA800482A082E1DF 27ABED7158F2F1BDCB9AB9A4078563C1266551D8CD81FD0BBAED207BDDE15669 16A141F41BF0471E32989755B7D83FF4D1F48DE2F4244465DD080CA9C04B4395 5D3835B3BA214C10462874E1565B380CFC3F73CD550B241619ADDB1B2C0D8A33 86EB1FD6131A38581557F61F3299B3628E247CFE793712EB75BC835C53C1F970 3212F9A5C8BB090324A728A44706575506D08B278CBFF582B98B6813E529989F 51B10F0445DCD1E01F1EF110156DCC8B7E774F912847080F423C4F946FA2C256 F380F678A62ADC9A5F748E83FD16FA4A50393296165191DD7EF7C41A19DFC1E9 B002376C0B35D4B0620C77644F56B06D7ACC7A1E9575D8FF6F8B61A8886CDFDB 46767C44FA15BA4CDFFFCBA64197AB20DE81788D8F106CBD33A6D45FBB5E156E 9D75162E7D2AA7619D8927331E648C80D80E521E1C27ACE35F91C0E1BC5DE748 5F658B439B3A711C2DC1500DE37FBE4FDC2E699BF179DA515A38AB6181F492A5 69549AB791F548CD33BEDBC3948CF526AB2A3E0A7894363EE42C1CF5BC659724 D8B9052FB70954D0922E55FE6751257E47D26E7AB1A0DF6EA3E3BE7FE345F753 F1BC6121E3413658C0E2C36C0D34F2DE788DD70A36B6A8BB496A6969ABCF2DE2 04B8BF1FC7D06D3AC8E8EB4099BED81DD41CB40C9A4340489AF17E063FB3A768 C0156DA72848745C4BAA9E8B5455322554043F99B66F7E21D717B806B2672296 E2823BD2EE1629AE7A70CC0169BEBBEF0E945DC7DC15C2099AF0806598A862F8 DAA14F826EF24EFA103231E07E3F25695F9E79C77BEE3EE1F27A10B32CE408C3 27FF0BA67D5E5F87FE84F2010F195C232C7FD5A068F6A42402BA3967B10B0CCD 4E304007ECDAC6694B5C5C1EC6148404D290997B038CF1726B3E3F2B4326FFFB 8F58B89365B84D31D8F36D1A6FC954F67E8941A76FAB975F58752AAC531C3CEF 406FBFC6D05AADDAB3FC976E0DB7F4D8FD546F0A68E6999FE1548722D8471502 E4E237722DBA55B60EFC91C23B8FE6B993CDE3133136F8BB54A3EB863B4C5BD1 695BD593DDB9C8BFCD5E673C361CAAA932C95D2C2FE53790996AABA462D736B6 DBABE82547EDA4208F9A07D24F8E17C5A19790317DAC4604A96808B1094462D3 7A3B63B500466357E4903334E217A510E7C83A5D7857C9D1A4915851952589BE 7219D749402182E7810F4EF1A383E651211C03A1E6D46589F137F3F0DBE4C9F2 C07D4F2144116792DA4D7A815D95644A19B2292357386BFD24B880132C032BCA 772423FC0FFCA7B0944A031AD69CA18600157D955507D0BB8C122B4297282135 4ED4AF84948BD23D6DF16652BB836DB1017E96CC1BA0364985D6E1C9193B76B4 07C8A60296C681F25CBC0F2088E2822CAA0F1C5275ECDA941B7A00ED409479B2 8B94CD7FAB420992037BE1C0BD1E7F808965475EBFA9FFD29E62708CD2D6F3A7 7558495FA9E8B594BC8F039FD534727E6B53A52E7184B141382255228978EC2B 095A47FD4DC55427E61B9B2919D2A9EB39BD6D8F6FEE8F542A42078E4DD71A08 D380F1EFAE206818C7BCC1532ED57C1E3E4A0EB5D0EB0AB86E72B8F384934DA4 18B375F394D0A1EF6BE099AC20DC2E530C9E99603DEB72620AE45F1C046E7B34 2D66A9DF695E6C2ECD03328C7D0F204A3B0D77A3C4DF3B43C4D57AF9180BE93B 8E83005B7FCBD4C77AEC45656384C054CF8FFA6BB679CA48C888B1A7862AE02D F232C2F7C19818287A2E692C941D88C63D583D1AA7FF00A1AA1E08A3F241D8D1 2CE496182B15C461ABC61909D66BDD52A6D7761EFF3FF4065A4DB9789CFDBC87 2D903F0BEE573BDBE15BEB4275E283CD196BB8FF45986D96B7A1E9E8545B7208 71B879C5874C18FB39B1F78734A1595871E3ADD1369E83B1F17EF14615BF1C6C 557011A433917F71FE4ECD6350756EF653DCD4039DB729F3ADAD09EA3A0AA14B 331DD9B461C8298D8FA3A5769147FF4F8908F2FD6CBFE416E7BACC2FAF398975 9A7085B43B7DDDD33BCC9071F4F96C3CA91B660EA39FA4C17F214AA3284D5400 6813B9300CDBE800B60F67191E6BEAF8EDE7CF3686FAA0609C95FF30CEB3DD66 C24C534404F128F8467581A6FB4A16087A0EBC9653FC443177134C0176201CEA 21D859943D73902C2873EA0AC11DCCEDD7EEB35AD055FD95258E6816770C93BA FC0CD2293012310EA8265F72E2824C605A40A2505E9E31AC0B7674D06DB1E237 68A45863BC7A164417242466AA8EF9FB39091ABB2B18D727B4FB3C74C4A46DE3 FE0D6712111287AD00D2E826FDB058833AB8ABD3FB181AA07B54B45D934D095E 0F005FB7464C802BC8A7E5FE9FB9A11CCA202C629955FFEC45FBCDEA39CB068A 1AC0548BE676D7B7E646540DBDD8EE81E94C0A1D22771DDBC55383CE68ECEEAD FE9887439F0259F11E88CF742C2DB2094799542CA4505DA876AEAE25B1A33F64 2F5DE1740BB0CC9F750D3E83208C1680D7EC23752844D35C0F7A8403B2CB2AB4 0AE9F9B35321D5A3D7A2E30D6AB1EECF7EF22863574914D836AB0E62E7BB23FC DD72756F06AD2EB54D261AB5EAC44985F2B8E409E73E461B3F4055586C1E40D0 7AFC78D88875305BAD66C31E84331577C0B59A17EC0CF408C28694B19145CF29 56D98239588E6778F8D57A00C472CB6EC6A7924FCE4E3B9815B8D3B09CAA59B7 9FF3B2407906652934045E4EC5A4280BB4D0EA5778B0D747812CBED8EC485357 AC61AA4FD6DAC0A4DA6CF1EDD53C5AEB7FB6D8FE2218E27EA406D7B574C84112 232C280E51C76C276339139566DE3A93DB28619E8419407826AAE3EBC4181757 961D33C8ED51EBD6D957E70FA5EF377C78487FDCDB539A6046DDDB512666DCD6 594737F94F0F1CA70593BEF1471541002A0798629E5F84D34DA4AE88CE14553B 862CBF5A074098E04A8F84C92FC373B02284F9060C62A52D525F367C2DD31C0A 36823DC364060DB596FDEDAFEF5C81AF3DF3C8C65321DD0AD9236729F742C64F BC98D27C9E5A8414F1DE346DC401F4517B22EF046804C2E77DE574150305DD71 CF004087F913EE0CF4B5284E666BAC7789A24E2E273455E189047C61C3C666FF C839B92507CF6672633D5573BAD829CB928B709B3AAF96C35AA6157DFE18957A AB319B72F2B1D7EB2A680D55E7E28CCFC4F8AA0DB3B168198AD580430A54AAB1 C32B079DD270347FB9CAA6034AFE08768C40BC17F44C6CA1C17D19567AE00FF6 8B3034B2F99BD16EC9F360A9928D2BC5F2734A2A5DF034CFBC59CB68965BD36C 91B34553F617C58851454064500604048EAC8F6969FE7A7F4DBA6E41EC4F6114 F063574D9980BF2093CE7B19B22A877D6A812016384F6541DE51CEBD0C96DA06 996634DE71F20FCD1E2D1CD4204BB567058E78BB69CEF394B28B220522641F10 4F43CE14301A6E98311D9B0CF5778E377F54AAAA6CE6C41E243EDA834D2AD0CF C856B104AB8F2EB0D1D575D7C86F8580466A7538C67B91BE2D2DB38A40408AF5 42DD2CC497F560F13D3B3C307DDB5048F58986451D3D7665C8288336BD21D97A 81FD346B2E8D10F423C761F4B5C25B167E15EF3A9B6D97A192495D55029C1D33 CC9675FE65776199CE7138089EEEF382D5AD4F2AC53A32A1951BCC1CC6D80E28 F9C32E54BA60FA10F2C451F130B1775FF3B7B7D94EFD598C7740A33180B0317B 3E89FE3A8E534F197344DC7F5D3526AEB9951C726032A6B9A316F7E38C633A0D BBD3164EFBF2FAB4C2848DFA0A89C77596F9B90F792B245D1E503BB5F542C08B 8BE51CA65422CA6E434B302CB765851D873107A1BCD4AA98F4A3FEFDDA1B820B 9A237C6D265304C99BF7F56D0C87C5F251ECF957E2D3EACE8A5DDBB1D20D8F30 76DFF27A27D792849CBFE02D3C6349019DA0A94847781D1505F0ED7FBE021D36 AF04931410F4EDF9F08A80A7F1C5C5F7EE2A9E7618A8DCB9AB09B39F2DE66A66 1CAEF8644FF0FA6B6901A2A1F9E59107C890E9FE8A4E4E9AB5B8EC3E111D865B BD9A17F3538440755E2B8EDA9D6A7ED3C9E8221ED89E605B63B27E724FEBE0B3 888DE6A7EB7C4E33486B5F50A95E167E3C5FD5ABF3DFC38D2CE817B1DD2B7CC9 C8DF9A51A71C43168B6F7B8A761686B85CA96DA7689FFA350093E5409D6261EF 5051343DA41EF7DED51593ECFC443320FA066094F341FBA21304C2521964DF11 86811BB519B9FE8F76F502FBDC8580550ECCB910D55B7A327DF7FC80623922C2 AE735247FA120EDE4E530064810D703FDE853DC4F08F34E200D9AAFCBD56F233 D375D66320CC406B1172349C6437216B17A7500EBCE726FA308402826EAF267D 4912EFC851AFB32A449E22E4F80F05C1AF3F1DE8D94FC2A50B71898A2C8A3F55 568C516FE313143A452A60C0500292C8A10A9687653047B73BA735CFCD931126 78869F9C696CFBBA3A1CDB9D1444F6BCFB2984BE7AB8C5F0CF112256778B0EDF 7CE218FC019559CC9EDEA3BB1C6E10FCF22375719E962D5181AAB4330B2460BE 3B28414B71D626BBD21419DAD19997E6EE13E5A12D9F6EE5AA066FC7B26FA046 804A854E12F013072DBC1A9510B3BCB4D69A7648160EEBF1D6FF38B2AE92AB2D 13A001779B67D3C039A064EC49EB8252991A78663B92C2D4B4ED1204D7BB2D45 60851F4EBC981F2CBD2F0A59D3C3AEDBFD744AA64CACF8C3E0C848A8A56F97B6 EB4634F086ED6593632B5ABCF9F440CDD748CD4C742E797248AC36C802A06B3A 53AECDBF2748D9FA82BB238DE355F989A6D59BF3C55D26FDA55470AEAB4F82FF A0929ECA21A09ABD3A2AF3DD7DCC038CB06F0D3C6101011FF98F9DD26ADBFA97 A44844F2C3D038C8E66CD26F9208AD3B4DD406F83538A16586A8D7CC2C6506E2 815C787C37A4430BB10B928EF40F0DD40E215B8BBD40BB5F966E0C9F35EC6EFB 3BC325FA20CEA73FE5893AA3DEE5A4105D2A404AFDD6947B83E96466D1E0999B 1F85974F00EEA17CF4A93E4A437CFE3E242D32E730CECE906E4CB48E2ACAF849 2FED98F6F3E32A50D7195150FC8811C81EB91E7AA056392610918E369E60DFFD 97E0DB8413F300F32A623C70A5209A27C3CD940A121CF88D2C59FF69B34D18EF C77D02650A55FFB9EC3D2D61A5E37FDACA92DE31F37432FCA554E66AD90692B4 9F7A7718EA43523B54EEC002A9F9E2E321C96BA5300CA668FAEC1E8903AB7CF1 862E8A82C06C9E514F31F8EF7115E67207A8E469C274EB90E1EE48D80B409812 1942C400E928AA70B09D91F40DD67977331228E210803294D5C8430A1DF8081F 0688C05778EA6E4D9CBFE47FB2F68DA4E5F777B710E508ABD47534C76C908AEF EC6935789BFFDB8444B5A2DC463F2046491A78602DD867563247DB5B52667224 C5C327AA555F0BB0E0DF3AA1D13CEFA0B5B480F7160101E0F3862D6188AB6A2F 6AB0990778DB5A2AFE661A4BD099F614686ABBE6D30D90247E2FDC407FF8B4CD 1C9F5B3DE2ACE95AC6D212D85553FCA037D9E08599D369576040E0E10D39633C 0A637816CF2453E2FA20409EA9B70EC43DD11F506061535199A8147612F8FE12 D52CB7ED0C7B9914C16545494650D4F94ECCFA76BFF74D37A4245F13E1758587 FEE10268121CB7FE0E2ECBDB83A4BEF03D4E3242D9A3DD5DBD9E3128227784D6 BE9A703A21EE08B76A92B11D36526A253B4A8488E28072CD01D131258E7AAEF4 4C4C671A9D0B93E9AC0B5453B662111A7AF6F422F2E07B6974D5A754AD3D0D9D 238D486C55A00798C6F1874595E9EEE027E4FF7F9E729F60656D2F7B1C05E879 BDDBB71C03FAC8700CC663CD9C83D475C03CAA62D7AC009673F0A396FE690B9F D534727E6B53A52E7184B141382256D82D0CC099948E18DBE4729B2C0C88320C 5D2D14884FF032A43817CA2E536208334A24C674EAA9530F278255665E4093F9 8C7A059DF851565A2907CCE380331BA4ABC5107D29F97A8E3A1F35B330914174 E893EC0D27A42603E0306AB7BD30403153553EBCBD4E59416CFBC6226F3CC542 547DFFAFA5F711AD0949F71BF683A2C5C30320B1B6AF51F633511D4A1879436E 166811918E892631BF318F242BC959B11423C1DDCC09941308CDF07FD73BED3E D3ABBE9F264DF5FC0C8CA60843E656DC646663F306F90413190343FFCC55BC13 E4D466B67B5FF354B99536DD3C2EFE2F6D1B7942425AF95652CF8B3D78CC622B AFAB6B810C22FCDC5659BCB61EA8724A8C713FDD58F2FC9A557C38DF30977CD2 B6530C9C08A046AAC6500E45D0EBB8D20671E1A3D16D332E5A70F6A0B678076B 430239A0CDC504FB390C48DA6BCEF2C09E12DAAEBC938D5C3572A6F958C306FD B23602B3AE39431B1788F533E534F18485B0DDB143305633080047B98BB92985 6F457DD15DFB79B81577CCBC216BF9718A5AED5F1BF8A01FD12E05BF8FCF3069 59BA70CDB2554ABE017F87EE73E6FBBCD9BE84D91DA3BD4CC0FC45DD9EB99A8C A4B91BE2263FED8A16781F740DA51F07A0D34F90590B9C68F20BF153525B73A3 8C72E0AAE163EA4F91076CB19BBE00CAEFC9FA5F5E94B9DA4232E01C25AB42B9 CDF51D0362BE5F6E17066AB07F5A0C56F40AD8EBFE52A293460051DA59D4B1BB 031FF8AB4960254F1ABD3099FE129A5C58B972E926BF2415201745C36FD67DCE F916EF77E6448E040D68CD6D383B9D93FE4B3286B43A188CFEA5FDEE7BEA9D73 FB400211925EDA41B6BB8CEFBF4DBC586BB070314AAE05EC2FCE3A8ED9C99307 E7D2EDDDC0DCD0AA6741E8250C2FE2518DD210DB1B6137DB8B49B1CEDBBE923A D5A4DD5976426EE630AF1A5256F5F263055CF70CB228FD880D9C456DD73025AA 57268128664A8F12710B1E11073B216801A385AAA7AE837C9097152624EFB033 A07C37A12F60E741D6C2FE00DE5CFB6BB9A5A38F838B9931BEC0C5C256CD13C4 5EF003C1492E94840A2977D8B90D5924DE4A912E046D4A94BE5257D9DEE2449B F6EAD0CA93A75E6888534EED218B8738AAC9F6D979D7B4B0045B92A32531A792 80D7D6E9BA3BD3B736A12C82A64066B62572B09B591DE58DDF8D0F137FD09BD2 E724C6A9E484C01F444B3CD05F1762444C50A5F52360A328545303C71BF48EEB 999FC84BFEEE89F19DE217C48F1895326FAF275044E3C5F78E6D99ECF7F38A31 AA151879B5DF493C3E9353AAA14C871A230401234B34D0841835D1265B5A6E1E A42F31F29C281A493A13C2BF44F28E9A6EBCC448FDC45A9CBE77556754B903CA C37F3C938D605AAC0305E38ED948BEA12041F7030D2A06C44FD76F0EA148387E 259C301ACB34D07B0846A6DFE40CE7CB472209120CEBE66BE894C844A6D98B96 637637ED3C9FC7518B524263D7CC3C56358CE9774497239957A620C0DC38EFBD 4F4D9C52A82210A67852EE26C4E3AC6C0F393A29BB255409FBC5CF2933686423 F5C50C51FCECAC29DDCBC3E2C5DE3F6596B360A0A47F3F4B2AD9E919FF11DFF4 B18045D6459068201D4C73B95770166AF294ED71CF52A8403B77E65EBA89F4DA 6A42148F1D77D98A803D62AF18D2E33FD44EDBF12A0334AD6745873A329DA18C C489561CB513FFAF8F71E057D54A2BB4B90FF31EE154F9415CCDB8A1132B80B0 1101048E09D046377A21CA893F765420673D699A3094B11208BB35C88E76022D D8F668EC3C15AE5A5237B2126F91E438587B455B31B6646E5BB8602E03E91742 16ED19FFC2F392B4358750D705975E17C334FB2EA9C6735456D9B8E9A43F00AA C65DA9F407ED0CBEB305D7B65A3907B945CBF7D2334902D560F6952915FAF892 5212F62ED39020CAC60659AFD60D61D62D2B09E3FEF2F9169A332EB3ED496722 710C8D1ABDBFCD1F9F97D49365AC02A902A6588C7DF2F63E3482A8B880F108DD 3C9952FBB5CD94275609A25F3359DDFA94249D5B0C92AFD21E3F6AC41673634F C8094D97DA533EDD5B0C217924B512DB2B759E5028BA5DC6D3D9F787ED173D34 E88BAE9D78076BA1E85D93573463ED1BD64B87F6E698AF1B6A7314234F09A84E 63C19EA10A3584D17F18159929170678DEF6B3AD0349099C9FC2CC61A9863BBF EE0C0004CFF05E723B5699D95F2F026E3BBF8A457229E55C413FFA3442C28000 8522311F59A551A1B9DC7EDFE788F768 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM0800 %!FontType1-1.0: SFRM0800 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm0800, tcrm0800, larm0800, lbrm0800, lcrm0800, rxrm0800. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM0800 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-203 -320 1554 938}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F33528B839DFD4B92DF0482493852D12053A7904 BF6E144B948894BA0E437691D4618A0FFB62E3630B93DD190EBC8F306BB78955 34955AD847F95B1923B90644A4707B718BCB527F8D5F617EC559C70A91900E72 9A9D881D02E289B0B0725B43F5FE653ECE8C5F062BD2C10F4B9B0ED3938F84D7 FD5D3725C3F438E46A270FD43270689A5F30B1FD8CD61E7CB544F07FE57D719E 17CB8A7A146AC514A35380CC6D93840A2DCFBE40307F2FFD8AFC0E54D066DAFC 025AD2A93593551D363563A2208329634F6BD80400775EA44ED4F59B0F767946 25D1A692A6C9197B50C369ADC30DACF14BB7FBF9EFA9AC4894FE3E0A6B3245B0 7E7353569A285310D32E52C36FE2A2827319227E0B024A615243399486706FF6 9E76827C1ED6ED10CA2C9E369D5A507991070CB699F666AFA47FB9EE3D968112 38D5F4624378D9B34F8B00E280EA3F61E4CB33EDCC35F0433A4EF6D267C08A0C 5D5A95A531D8A0E1DB1394DA5F72EF2ACE4CFDF20871C679418FB1B481CC5EAC C1733601DE79FE5D9B793234D4DE58546A5068CACB9EB1D82644358DAE105ED7 BAAF89A47AF526E481D3E105141FC7EB61A5E5602412613D25A39EFCD8AC6ECB 1ED92210690BA38F6A1E1D49AF1B6C8D7904633F0CA55E1E951E9BEED4339DE1 5C97307776C6238E3C3749F55276DE11CF0066D30E5F8915995764F5EE3D78D0 7037758462E5E6F85C563B2BE74D6D8A6E0491B2A9F26BBEF3F96D39060C2A61 E9350D240836B7376C26BF40AA072B2E89D58FF493676DE5025F40C2DF37883F C2E3BC8BB3661F84D983F46CA4B943065360C6DC21CFF3A92C1D530742DD65AC 434B986BC3AF6FAE63E055027DCC30F1FDAF9EAC2D7E489A87C7714B9C397642 2F892A03FF4FB9457E509171B3BF88DBA615FB553C09D35709F6EFCB4550B320 DBB04D0D4D6B9B7B639C3898F28EC867F26E20A96C7733FB1472D0478DB4E1DD FFF33D6653E2D48F13D138B0C561D30ED89B97E69F7F0D23869A23ACC2282069 8B6F8AE193866A4B97B8501498A3B71EF249A6839801D1D20340CAEED674A576 799CECF0A14443D3AE6CBD9CAF24F98DBE2DB538B32C2EB4F6C2D246E4B8A634 25C38167FC882405478067EDD25BC7AE81A009125C2D38636473599DDA19E563 DFF7E1A28E20B5FBFA68BCFC2E2D054FFF0CA0A15A98A7537918990C0C382C81 62BC06B1ED4CB173BC117C02276954E1DAE6F9F7162A578C646D56B55CB7892A A742707BA69AFDEF126E88D7038C60AA1474B902277949353772F9C28441B66D B838CA9B45A8BD40135E8B0C46E96A977D3A4B3268007655C2E77981545C6272 66848A2FD3A0B3B1CEB04A1426AD9F9ED84A38CBF1F35A50E151D46CED8FEF18 C1C86F721EC884C1A1F6 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFTI1095 %!FontType1-1.0: SFTI1095 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecti1095, tcti1095, lati1095, lbti1095, lcti1095, rxti1095. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Italic) def /FamilyName (Computer Modern) def /ItalicAngle -14.04 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFTI1095 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-94 -320 1401 937}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F3352947BD440B27EFF35014E69B2D4A1E3E6C11 B5BEF15F1C9B9166BED773C0A7F7CC50982C77DC7E78F250433EEEAF42CDF094 ECF6E1ECF893F6FEE69AA0F85D5DF1E7EADED78FFC156E291628F8CC7804F06B 62D3BA889336AC6ADBE1B7D60480CC1B296F9BCA97DE33DCB279D6F0BA3D9A77 A23E61EA065CB50088BC96CADB967FA8D5036C8555CF1BC24BE9B5A5ADB87A0C 376E0A947BA6CE72C317012D37F8E705B41B5691F1AF74AAE195FB30F963A98E AC0DD6DF90B9446767E26BFAB29C5137B9577FCF00D8436102AE83B626EEB40B 237373200ED0F4E65426EEACA520A1ABE781A97D898FCF322DB4DCF6BD2703F7 6527C76B8CE52F64CE259A3E658B4C11AC2E62A7850FFC2397A96AB26D8425AB 400B67D191412DC8B3ED0D44E4B64435CA93AEC6BEE702B9D3B0F59B7B62E6A1 534CE9687AFC4DCC819CC6A624392455155D18510B8DE55E94B7481F52029839 8EDD33F49AD664A57F6C46CCC8AB92CE365A0F10AD75A110791CCE87579E8BA8 401BBFC529DCF7AA05F6081653F573F5A5C64D1888F358456064948CBF73369D 4410E744F4F16C634FE8C6E0C1E02F218B069277935A3EB227108B9B7FA9D78D 563C5890384F13A6E29A14234B37B223148F9C270579849E707C6A729AB49070 0D991DEDB7A769EA9B02F440D64A25EEDF2342C277AE9E7E66EDE71D4CA126DF 4BD38C44EE239919A5DF587462DF97B45972D8D981D110DE4E1358425A811DDF D03632F0819CEF1B325F613578955C8A3A28CF57B38D1DCA16082699BE1A1491 7C2C318FFD11A69CAEAD0CD3693C86207E6060AEEC351BC6C870981D0DFA6819 ED41DADE2E3D6291BC87DFB0DEEEB843F8D3E96C15B98FA6EA498BF279BC65EB 98894D571A2AB2045E7F7FFA7D1658FA1239DD4CF7DF052007F9104EFAE715E5 66FE3D6630BFE7DCD512A9C02B3C173C54052F8F37EA53E0871C78CC36ED716A 24495C02D9B671BABD2D904A2CD5828C96F5C47BA0C27A8EE453949E56C4BF43 C235D31358CDED55D67BEF1BB7691BDF1AE4BADFF86F3C6DEDD70776EF951164 55966D369D3CD0616C05DD45A588009976490B46BE6D4E61B04A84403C11FFF5 2ACE1EE65A70A2B90ADD3F94643AADCB21A84A41F9CD73303667DCC5529F121A C66E9883B47F4843DDF2A243911D7A06B3722A5F0BF8A55F341E8AAA70749C52 0DA2FDDA059CF9A23BAC11B46EAF491CE04DFA281E619ECC0CD90A2545C44D1E BCF15C2EC058EF5A20705436FE0658EE9CA27A8A34DE3616B96E5B22855682E3 9690B59FDD00CC61B7402EF3A3946904477A22C0939E4BACD1011614AFB2405A FFE33AA356ED1C7B679B8F446A33B060B7E57DACD43DC6705C5F70C84ABCDF3F 07E2D625EF505186DA8B2A0BA7745CACEF9C4263266F2140E3C7247B96E53FED 60C90212DA4BD39D37F446F7949A69061CAE94BBABFE744A10EAFD350C36581C 845241710BAEF45F075D926BE357AD910B422623465FF30149E31B81233E5473 E7FA6FBA5B79E5E7977438CE49DF3913DEB54B4C54CF98C46549F30B5A629071 62B395AD1B66B4D7F8ED88249ED4E2CA22AC03C3EF78D0D952C1204D23A4632F C3A74FA6F8A47A16D3416A817FF9A8F6527DD6BCC739D792D24EAC8FD83165A9 70206C185462E762298DC8053BFC8DB8941E040CEDC91EB83A25202D522579A9 764FFEE70E66D0BF717F234430A8772203F3CE77DB474A68FC6CDFC9042320F0 B5E22C1400E2329EC6DA179601DF1348D48E48DF3B471C1C17D912AD32B27A85 FDEBC0D692B4E728F890513FF01E9A968E3863DE0EA426C0212301588726973B DA75735A6302619B4FC7178CDD5EB3A60FAB4F71B40865069141B17E53A894DC D832CC95F1F3A36B569371FB7D1652A62D116F125A75F5D52116B1623D560BE6 DF82C2E912824F62A268FC21B2FE8FF49E753054995AAEA9EF3A1AA6F1D083A3 6F2D86CD5A82087F4E69B7BCAFCC13B34B86F065D1ED6695301727F7B048DB78 90533FDF95DA1C4F219EFD5D0C2FF4BBDB2F7C431A0CAA2470DE9AA4D5207D5E D6AFAD02A5ABA8D0FF2FA9ECE2EBC4AD5B083D1E12265668EB5E8C6740E09773 393CE6226A9F4B1EA565651419E8FCDE2F9A9ED60D9B3B292C15EA97F576A9E0 3C2096BE9650C177FF59177C6B64B177C97BD15E0B818E1014EC40BCEF621BA2 F39AF2E916E8A78816431DB48B9874E79B54C8D687D4775A064259788D78796D D33BF106B3CAB8D2D1E70200BDEA476F02E285DD1884835C1CB5E3BB4BB0A4C8 1748D3674C7D763626A7494944DBC6BD6B8F8DD554AD213B0E40B5CFE6E24B08 9A976F9B77FD59CAE2BC8798BDCF693663C3C16264F1EFCE9A8C95E447FD0209 38E02C1F85CF8ED9E65D60FD9BEFD2D0497A8FF0715894DD521275D865E491CD A9412F9367A992F2ECDBD150F926A72A8A74DF42A9950AD04C6DBDF2A47F6D47 3F9756C8573BABFD012A0B89374380B9DBDE9978EE8D4A86BC86FEAD2DCCB60C 2A7F52D9847D26CB5813810C7368CD1E40099E4A395FAC9FC45D6555E14F557A B2015EA5C5299D41AC6F1EC27F396692FE56F3186F103AF5A3DFB8861ED69DC7 1DEC287D173EE0E4027169EE4AC1F2C37FB93DC050837B89D74F7872C976386C 4254AA7E59E35004D88ED74DC91DA2DBEAC10CAE29653DE98E34B94F82E51624 5ABFF52974ED556CABD8737E303923E6D95F1D2BDDB76EED55775FC965F9C9AE 0CBAA0EB694F4301211E60507280605EDB24BE2ECCC74DE4830ED08047B935BF 6B0EB953086D10EC7EA6A576D1F082D7E51AEC0E3BA50FF07C93BABF33A5F0F2 0D12B2CE7077B4F22C6C9D82C82A22C9AE9847DC93F0101BE278E65D9AE12C53 BB347FB1F2D9E561675FDEBA8CB89756E1B5CB74017298F7C66140E10C8D9673 FE2FDA1778BB5C407D31B78256CB9BF699D266004B8E5B3414606385395FD762 57F31B7A016ED439FE987D39F4E68DB6BD275FDDF1E423A158CCAA96429D4882 427476F389A0A9472E2DEE448DA6C2BFE5BFC9883C93AD7F4AC9D34DCF5C41C7 74F819D84C20C73ABE08A2533DDCFAF4319BAA5E6FB9695EF404AFA787F13F13 0AED1F852D771E946E895E837A96E75454BA7E74C7B1D1051BF3C3E59FEC69C3 B04FDD3457063B224448C6C7072BFE1C087BC87EF35421D00B090A9C6DC9A7FA 5FAE2A78A4E9E075BB316D8D1AAE16BB13E0349192BC0EC04AE863A04DFBF625 A80BF2A0472528A0948AE228143CFEB7394D5B99D467AB004EAF8C886D9A975A 3B368F5DDEC4C6A120EC7A701A487D34F239736C4C76625279FD543F89FDC8ED 5FF3C52548DEDD80FF8C8833A660729F9E2E1A1F760498C875EAE5015C37C09C BA9CECF116D943155B532764C4FDCE2D737B6AC1A090A7AAA994763A84603F7A 37FA0375CBBEE5266B223C04E638383A3D91648E4D0C0D203C995E7B4F95E090 23C1AADF55A34FFCDBFD4B4BC918338B2B63E8D7B6DE07F564ED7F99EC32C1B8 A285049B8C2E0701514C0E4FA3C5F0785EB7267D4B3D077C73A4F6FFB7C48B8E FBF6FF1691640BBE5DA16B92FA3C3BA89475C1619C08872E72AFBD603222BE25 A756399879A1C1CE2BF499DA82EBC588A756A598A9B44965E2956B23FE914F02 167E4F1573A088D1C9EFC5E743436D5C05B71D10D4E2AB7A86D77C667ED142E5 F9427F4EDCCEF66DEC62946ABC0A1CF0C982422CC609EC23953D5B8A11231F02 9CF9A23BAC11B46EAF491CE04DFA281A34DCE2BB69AFC4462EE2565A4724494C F97D026557181E4418834E13CBA49C02D211DD3DC7A4838AF53C4C76D96008A6 B5304106311A6183F0B37FD4FC2862BE4DC8D91400080A4C3B0563E00EC25ED5 4D611FE58D4970AD50DE928EBF3C0C4F712744FCC0911BD1F3BD0D223039D025 918AB0BDCA908DF7B7EC58FADEB73175256749F478B3BFC3C8067861485D4E89 A274AC41BD4E2565416910289200BEBFAA37F2552846C180B05D821A60C8F105 5A0440900B4DA80FF9FDC224A0FDFF8F3C9C2B8249950B15FCD3B32162A41F26 F71090D8C6C6768D94B92AA184A94E7EC68FB84120A6C1A3DAF154B9EF9E428F 956A28DF7999152AEB185692AD26AA71F3513680486422982B9303E74B4345F6 DA631D7C600E181A86C465945D3670D967A08A9C8B9C43500E620F5E00779C4B 8C3E34B413B86E960F24121885AA8426EEDF2D8A778073CD72CC911DFC194F02 49BDFB1944279C1DB665EF387C9FD4AACCC343705FC9CC20664C917CD10AD127 5DCD28A933A933830B40E96FA75F393D488B762CBE91DB3E354B976C12949206 D21A6CF19A1369353A06F2BBCAC72ABC98082C301592EB484256B2B6951D2AFB D4B87368C80D07868A79D1D37888B890196ACDEC4C8FA0ED12599427A5DF6230 66F1A7EEE25E22EF8064F9C82C455E05D84EE86B23FBD4D1D562CDE36A507BE1 F718B08A8AAD8C236C2F7F98047478936D23183060DDF114C53CEC665B02236D E58034363F4C5F55D108462D0CC3933A9BD18FC460B0219636CD17BA382FB2F5 B6043354EECFE3E081078AA132B0E1ACBF20AE2FB03E6E74162FFE244E145AC8 D65486384A4A115BA52DA22F3FE79AFD8ADD64A0A7AA4255FBD8DABBA5960A60 F714A6EECC6AF06F01A42D82FCF9F2A714388A9A15B7F77AC9AB7BF9404BEDFC 78ED012E1D8F21295848A6D298C2EEFAFEF50A2437CA6E517BAEE7DC25EE5CBC CD1366941BE42D72C12125667601D9C5FD0C0DCA99CA436114846D1037AEE30F A98DEADE97C35AF0A64687AD715E2504FA846CCB1904421DA3242DF9092C9B00 C022B7D8189A490BE962A195E9F1C85969C4032BC4458A1AE15403700E509008 8D3BF8B307C78475535D0156B2F9F55B305A97A89C5E268507D5983ECE3F43B5 C47B71F352CCEF19291CCD8C51484E8B25376C09579BCBFA96D929E3E3E5272C 5B5862BFA5479F76F17D96485BA5112F2BA029D8207A56C3A54103E2B0A0117C 81B0FC67BF6C717AF8D58D6DFFC02FBF25A2F6EA9B9459E794BD210836846128 28DED34C6735B4C060AFC2ED4AB50F64B8B669A9B2AC0CB38E3BF8452135DB27 499843E5BB78DE170CADA98C51D4BEB61D07BD6DD4E11826EC6D1BF0D3D7F690 20B679BAB0D0F82FF8319B7F7815877DE9B4D3E5C3A2945ED92EEEF725718A69 D921F23DE639920B687F34D08491910D982F6C0B92D56A23566E4A683EE91073 61C63083CC9EB2A9D74C936E5B593164DD66232CDC0C216543D8F85E8CBE85DB 16F4691EDD31135B7CF6D81C10D44E84EED223DDD67E0A154F2835BC3616A2AA 41F071A2D9F5A5B281ECA6EFF6F0C15A4520D4C8D7902CEB4D2B531967CEDE6F 5290AF2F2FA37C1FAE100FA5AC978A164C9CBC61A7A93AE950443808017A2E7C F27CA40E258A1FDE70C0ED8D059CD5313B8168AB06374EEE9E3DD36E957231FB F3BCE2FB95B483564E9034AE2CA622E0E2147E335BC27B1E397E68BBB128519E 4CCF299EA890BB1935C4C3431DA2410F8CED6F5934F8B57E4D6E997493DD1F3D 2EE51F9B8BAEDA4F979488DC6218E918453ADF92C37E5CD578109290476E12D9 3D56CAB5E48F210292FA072996E1CACAE3C922AA636F3E4C60BA33FBE8E09DAA 7C4059535C34BA975395CDD17EFE2D72064C2222F31790506FD6AAEA7D2AF8E1 A183017D05D2463C9E347CA6B964022D8E742A8F04026A4E4AE68F2E26647762 FDE96167B29234A540CC0B8072EEB4A93E64C357AD5B6ECA38B6FA33E7DB743E 03E99D426F6A4E26D498EF8B3A9D887CC260ED0E596CD2FF09E7A787826AB008 6A6092998E8BB20CB396FFF8038910C5EB00D364B668DF5F6E1B445F9C0A123D 136CE742795ECB59AFCCC0E24285A33BC2ADE735B911BADFAE94C5789D864D85 AAED9BAB98CFF3BF75C7AA2B1D2F52DC31C19D899C72504F122868779EB4AD7E FFDD05D4E9A7780719B5E4002B19904882579AABC91DFA8DF9186B707766D4C9 F8064271899315A367102648DE3CEB5FF58CB0F7EC02D7F8694083835D61D1EF D65111D743CA174076A3272BD239A614A1916ACD13ED7AE479D15092A7B83EC3 39A0A1DDABCE3FBE72992636728FE2F2FF3205E93A7E76590ABC46649C8B02FE 4102028F597E89AEAB3ED00E799528BDA46150284E4E709F6900589DDDD4BF80 1B95E2FC47F8F8DBC9937241C4221FE406ED5C5C3860D5D401720E788035873E 321DC69817A611C490CA4A7628C2257AA084E1A240803CF44B0A08F5D46A50C1 26D921446201D85654CECBEC9D0D0BA7489FFA7D71DB1914E82398052A0945C4 0B1E231C846099ED8EBA3C7818D866268C0F30867369E253651E0F0E0B82FCBF F8745D10026C890F86A05F36E65059D0219F7E1037D75A4134D9073F69D7311C B9B31849B483757E6C2BCD3841C3CD86A53ED3FE12A187496A2E38AFFF4153BE 459520387B1CDDB1DF8E5E875CEA1AC330871CE93272FD549E4EB13AAD25FA80 A8C2EA4B1BF9E57F37B1C0752C7C21C5B4B0EE24E61250C5737A68181433F795 AD62B913E904C32606A118378485DB5757A1811C0009DB48537708D9DCA34B07 6DC3F7DD19C4A4E9AB704403B7C69C7DD0D2CA91B0E7F904FA0091BCA416541E 1DE429251F2CF3392E8B8AEF512496A508254E0C96029A229ED4FC26425F557D BD96C7B1F0A60ECA75981E943CD725E84A8BB7EF455C242812451BA9E1F38570 B877DBE987BD3B65DE56078D2ED5D29D41F07D1C079E556C487F1A269B06CE06 4E3E466D24ABFBCD255583782E158DFED6EC6AE71529C0BDDA15B018A05A7CEC FD9B5EB79DA025A5F6E0D1F721D03A6C3FC12F51E16D5FF70F0BF582E3E7F9E7 E384CC0194748847CA70254A5F3C5A0ABB6A2FFAEEF5E9627932DE94CCAF8A53 3DF71BCCB1269CC8781D7D772AE2DDA00F43ABE375546AFAF1A73CCFF0D5200C CD61E33431009C4FFFADEA53A8FA3A70D216743D5E41F8052D959FD26ECC6F8D 27D1B62EF4BCFB0B61640F83C24A5B50198124D7AE0C602130457CCC741E4882 C0D6619BB90A22EE900DAEBE74890FA15800B3126828A6E73B21EF680C01C662 21DD63C225DDD2287CC70F6FEFFC0C5F6701BB42B5C975EAECAE276B63BB154B 34A61F84F0C33DB73262CE40C25D7E3AB8608432E20E45DC7D1DF3FA28B1C6B5 096FD8ED3B3E4AC0D8EB673E22288F48AF56C393470525FDB76FE51C6A106B90 26CCB2ECC8F60B2207EC06B6FA774B61B7E033C13A0EFA703D8F38668E5B029D A47528071B93125453AAE9FAC75299D653DAD14A823D59DB1DCFC797F444DD1F 07E9D91134BC9D822E521AEE801993C5D2C6ECA90BD63C20BEB44FB8CD1C47E9 A5659E22B8CBD28D1FA918CC6A008C105135DC111D389D94D773A49334C72339 C9E4567B59128D6CCA8535FFD6E45137C2DC704204F89D0C92DE659D90F28E60 EE84D058B5B3685902D2E798F8F295AC2E7A3E03D9975F6660D9AB5E2A330FF8 D4AE2F8B97FF186A9440C75A4BAD68912C0097DD7A352CDBB5BE3810C38A4BAF 050E1A678D047F05B560169CB5C33DDA814E5FF30149E31B81233E5473E7FA6F BA55B3DA462B7F01DAD238663AEF3ABB18694571B73638FB7CADF6C418A79E0D 131D24EB04DBF89BA074255DFEFE459946C4221FE2A0E600BB4523668FAF2A46 5267C2E85C2D858C83FC34FB511F609C62B933EB55F9ABCAA0914FF8C156F23F 50C9AEEB43F80487780F917BEB0792FF1BCB37B635013A1833C09F6AE886EBE5 0FF8030C56DB55B7304525F44039EC6C77923C16E69883362F82ADEC0CB24B39 3FF4CEDF697C67C54DC08C8BC61485159F387A2350AF4F5216FAD0457B961DFE 3A63BF4F27A4B583E48F8F66420B6393DBBC44F3375A9093550881FEFF375E5B E552000881576971CB9E40267EE1B706ECA1643925A919CDBEE9E91C51725CCA 705A2A0F842621CA38297540CA0CBA130ADB8BDB60F5B7127CC969CCF4609576 ED38CF0111FFC0DA6938FB84649373E799CDBD5F2F48CC3E94827F3429B992E9 432B3DB333A63347BE1228D80966AD6FC18B95C72C14E9C2873E85B86BC6E334 CD7B98F4020D71C1703AE8B3E58969412E1E8139942D88618073D8C11BF8DE45 8242459F40DCE9109E69D1B3A6E72844B1E58B23D5D3616C23DBB54A9093295C CC2EB7AC3D9426011E43C03ABE5CAF809C69C2354AE1462B55AE77A8EA49D840 7CA5E198144AB73654D5C8ADD82C44B6EE67818B6292874A2179E9EB13A8BF26 163E0BE25C529BB5AFE313BED8B664590BB6A4D0230CB37C15A709E55380BD9D 21D9AE8C10E2876D2A52602220EFCC7C12871A27BCB2A25AC196E484C84C18A8 2C574C8B6AC6EF9052D8F4DC24F4EEA1329BD0B6784B1D204DBA84ED6C9FEB3C E0F5A910A0CE339CB2A61097BA2C48BD2A1B95375E9C2920BE88F84B9CEBA0DD E45DAFD813BC5D248569054F47E3D78F50B2CA819B87BA672966F72FDA22348A EA61D81C8E45BB676757B4CAD36A5FF40577BDDC8593915FEEE82D8C08A075D7 E4FCFD0CAA2463CAAE580F0113328B8228345C82D625BDC5E567499D3EECD9C2 887139CCB944455A8759EC47AF929BA4716C51E9F36B0B74B4ECF02B79BF1076 B1C64D9B1BC284C23C144B8E106C733EFF497217331188379C939D9BEEDED023 6C7F6CD43E5ABD8CC4C56639C03684755F9CD862DFC8E474129305488AB1CF63 05530397A8B1B1F8D464866DD9F4F7983C38410EE4C38271928A05192F90FB2E A6BF3097CE8FB0532722BE93A5DD581A366899972854F54A50CF406D5AD8AAFD 99AAAEBBE7AEBFDC07348D5C04F3C3D62F90C72D17694BE4DECFF963985A92A2 78BCC9B59126BDA5E25BDD795A3B485C4E8BA1B65DE9E2CCB35F92C8E0EE172A 83360F2D3626F5404F461AE32BF4355F860128995EB7CFB933A061C0E7E6891C E84EC63BB4735636FA8A832BF45FCEC50BF3D67D349FBD703CEA0B1D3091B37F 4FB223E2BA5BB0E57C061714AB2E735BA99883C04E8D702007937C55D52FECD1 75FD8C849B57A75801EF639E30FF7C7533976302E94A0BFD7ABAFE5A7606B719 6E8E42CA1097D44DCE78FD29960BBA61FEEA7BAE3F80E5FE662EC1F5C5C77501 E7BD16292BCA40170989EE94FCB35E3C0BCD397408B5CC344D7BD121A104D906 B2E724505DF922C8A8E5A787DE997CE19D3603154E73C92CCE3BAAEE1D7C7FBF B9FE6AD7B604A7EE85F3A49416670915B9EEBD5E3B6CB72066E69622F5FE701E 68DA4F3982BD6C4CFC6289BFC5702BDB5DA5484396B6213E70FD9DEF29D2F624 5F8E60C074C6C0D95B46028F5ABADFA27852B34404BF8A0201BEDC9DEC00B48A 98BC361710C6CF862887F3C528A798E6BEC3675B3C8AD0A8107254810854E60D 081EC283B3B5D13A5E991AD0FE856B61207CBB4C8EBD50E66BF94BF09EC6BF59 0F85CE86A6BFD43B4D084C960168C784C0C44F637FB2875040061417CF9424BA 317E094D78893FAFA4E6ACBF73F693B7DA1E32C806C11B4924382B0C84B72B29 61EB1E995CA9F010311718791DB7B31DB6D3A31EBED8B0CF35A5BD5807444395 130D8C83F83BE094DC8881F0A0AA6F483C4A0ADB7B15D91E2A8B46A20A3765AB 48E09037329C7CBDCCADDC131BD45BCA0824B2A8F2688CA7568940CDA15BAC9F 356822F8A4BF754BB685AC4427B344E03E3EACCB0242DBDC62FB56BE8D2CB8CA F6B572C02D82FE320B257B42C77A518D89880E8877D4566ADE097A417C604CC5 A5F1143EFD9892D9E34F3F452E740A145C4FDF3A5AC5660C41E869FF3B2A422D B2A5A3436228D1DAB2B9A916B1F4573770BA2ED52AC2E36460D1C56B301380A6 AE2E686C8B0DC75E8B350D8BED24000E20DA767DA584CCB1CC9D10E15DD073D3 ACFBC0EB54EC3A09FCC7B2BD6D840E3D18C7DA62A089244B353062263D74CDB1 9DC8AB9AB2DC2F5B671EE6D43E4EA350712632CF20C0B73A3C9B5FBCF2440EA6 726DB7E793C4841D28C03427F21D18ED86F882A2ADBC63104BB155847BE7B632 A3C0D17E0C6CD0121A519E35C7BC62A7604E0C38F4E761FC7F1A46571355868A 9B010C36D1C8E3D582A3A793D6965CE1854E36A83CB092607B30F8A01C5BBFD5 2385E21CAC1DA7735C1F44C5DA757941960A13E886A3459E58C36D52E686B59E 1AEF9F795585D5FBC9E8A17FFA5B8286684A77D5C9660010EA6613C24B94E5ED 901906380049DCC4561A17075F85976F9E987F4CF1633B6AC984577C60BA1561 83BC188CFE7E392162ED08B429D50DD54B6E64C46C2B6192E27DDBA08533EA92 2D0027DACE7FCEB28F129535655C5E9E97172263A501EB733D4F8EA2E408C716 213F9F08DFC3418EC6E9267D35CAD1A95F53A62245D5B98D0870BFF3FCE9D36E 9770BADAF2CBF6B6FFAD475A0355A996D1F09DA1C4BEFFE29C1B3C370E48F65D 83D313C40D0582D80DE601EB443AC79F0B03D9DF0498B9157D134272375D607C 07E83169D4F88028D6E4F5E146BB4F21E5DE809984881E5149897398250FCF19 752E840080E3B3FC156CBA1D29EBCD13C0D5B8DB87B06C71940E2924C03F0B06 55D40A8E253A9C6CC536EB8C56A1E913CC7032892FB4AFEEDB9891A58D25502C 35A000BC86351B1B497A5239CBCD949FA5578FBCB494B1A26121744435A46CA3 606E89BAEDCD9E573A2B023352069F46994A6A70BF7494F7EA1EE89B9EF4A402 47A910B249A2BA2744E04DBC4FFF499F27BCF702FFC204F6D911B9FCA599D118 55393B502E78A5A203CD62AFE11206243547D9D0AC3AA10F21540284160AC781 804806854A696731FE4BC4673F4E3F9F76989E8C5E5DE65692E7841C88354C17 174E3596DB87FF23E4E73AD17C60343A0D6983DF61299C7A745282CACA0E4E41 84BF3949B1CC8EA783EC307D53E1ECC02D9B27CE56376867A7D1D80788E6B5F2 2D897F59B0C6F18FECC00995E91F3629F3D799C667E72BA1E3134B196F2B7FDB FFCDCD204C6A557A983C753D311CE7FECC0913DEC0148705DE1663066331A968 18E92EFC5EBEA9C27006073134ECE2AB319DF76873A6F616F06DCD6FD5D40D1D C9440291832B3EC508055AE9629E2F0E60C408FE2FAE05E2A6776C8D3AFC3382 026487A8CFEA90346E19ED7128EDCE3031B2A9F66684E0D805AD03CFEDBAF0E0 33DFD698D84D593F79E60F7005D634328D15C878372D0CC04CD039FB34D9EACA 56E7E1B0F54D389227E263311346F61D290E01C2CADC72AA9CD863EB0E257811 4C12F1BA77AE83C4663EBAA63BFDD371C91972C741F526E3A88A59BAD924E1B1 215AB24A06C058C5092B332275BF50B965513FE075521A8C020A940DA1442ED9 6DEFF66FD58F90DBC75FB4D7E28A01362FB7C870290CE6CF526580D84313AA80 9C8DD92412E6D1F3D178017820F0795176027BB3D5AC01795D57E4FB4CE99A39 C06F9A8ED56A7342067C47D32240D83769690590695009B0C56965A533E6707B 4903FCAE8A0DC7EC92B75E90777354D1479A79B3AB76DF147143802AAC8B4ABB B04BC96F2EAD2555AC737B5E934519D1FF13FC553D5BBB0C9016E84FD89D639C A2A26D5F46662C882CA12DCA6340E228D99D12CC633317E401F02347B5CE65D9 9A38C4418DC04BCBEFA23ABCF35A5EAD7636185A5DC746A44F3583DAA406FACE 8EE0BE989F253C9C00D517CA3442F5D911C6DD2E488A3F223BC15DE865953293 0B68251E58E5238D15F89CBE0552B1E7F828145DC333A77FFBB715116E806675 414213A80258EE674510EF3743A71347DEFB84DD5E917B1AC595954FC51FEE0E 89D54CBD642A74904602DDC56B1B7CA307A2FD1D1076FB2C42C86CEA1DBD6823 94E6BAE3C8F55321E3626CA59318C0145E19A083E8438D25279487E210875AF8 BCE131C5E66E1A4AB41267440AA78A41E4B8F1D700310D7ECDE6F146722A5A00 6C333DFD0AB154B5A9EF3841C00B2EAE7BF294228BB11DF98861BD19D0F091D7 2980787CCBFA6CD415EA0F8A7195870F17B34E09C286618FC7945B95C47AA927 7A669A201DA41C11DCF0640F63672BFBD4D51BFC92F398E53666621D7887E6D2 4D8553E18D5C5D184A293471D855CF4C6F0EFD2A1E172B686E972ABCCE702923 866187508F31B47F46D97132FEF854908E81BF0ED2FC7A7C0FEFD2323010241E 808B10A3A41650C7A87BF1B8E938DA0B44B96396F92CAB0A4930567A877BDA08 F809808D9043A1D7989CE7823D3D22BC790C928EA1A3F74F81086E5EE2764620 5EAA0491DDFD508D5F3D15DAA5C0E94FEE49A1715EF8DF43030A2EFAFD1DED9D 5E47D79717BF5E2FE05AB9BC333964D3ED3CF62891C9153EE2B300E8C944848E A6901ADF9E91810AC4566110B0B3677FB4BD0946A5FB12C1B27364FD2321D8A6 FEBC1391A919B35855897D2B532E906D7FADF57D33E989C411596BC05AAB1C6E F139708E0F4F7830AA1A527FEC24F662221378426488C60CE54AA0F22560A56B A1D8874F38BA2148B76F5A26AA9429CCD6F4BDEC028715272A329D97C7886FDB 00A623B4CED910690C4BBD78D982FE60F05B827AD4622A3F7BD3D2F836828944 F43D6C4C53DD1A9F536CF6FC0B663D17033A861F4DA0B436A0B7710B99297FFE 380F05883702774D582C7FBBAF0BD71E105C2ABC45AD46D59DD1E9A0556A316E 33A5A55B6E3999324EBD8D12BF6194A28C806E56E5800B2B623E0488BECDD26D BB0B39291AC7F4D4C2D2E506C84E896E1FA498AD3BDEDF2C6AC9A36CB629A7BD ABD1252196DC6F38A8549C85933C2536E705A62A18A58C84A8CC3136B1943468 C6CC89CBAD30C8258F67132BA3AAFC641B980A2FEC7C78C035D8C123374B0BDA D6F427C6A79A2DB1FA6F71FC7D44D42C6EAB31789982D566148C6B034C5647B2 CA6129023704D721A6C5437F9A58F7C14D9538CB0F04E833D591665FF195B8C0 A77CDCF8AE3F62D3C7238F99225023D125D77501D616F8F86FD5E647C80EA66C DC7BC396F01D63060CAE9DDA4237FB72705DFEF474340E9299E06A863D331501 534322F257990FE8AFD74901D8038DCB2852A8F55799C5DAA723F0C7BCD44A60 F2BA9BF77B4B3E6804CC798ACD831354F7C4A714E8506E9B93D99B3C45D305C6 3C25AD86A8354652DD390A384EAD190CB950D0E91B4F38238C3B225CAFC0484B CA6BFC0A34A280E800C3E68E280067FD5B133594EC513B8761718112387FC95D F70F7101EB114A7051795A1BB20A82B1B1165D5607A3535688FAB043DA268467 5FBAED97C539FDB597E009DEEB4F85BE37AC869A6CFC87E1FCA5CD94EA435169 CB6BD356B6362B727DBD281D5C0D8B5B31C515E1E22B56ACBFD61E9676857D0C 60C624ED97099E3BAFD58A54622F00212D56D62EEF6079504A5809102BA715F1 182C6500516394EEF99FE3E37097799D30BBD8711743C2E1A67857D39B489E54 425B74652F4C3D861FD1207D06346EC0D1CDD167AFD944F5A7863B037190DF25 4B1A27F76C8C082BBACF47714565D427CCD0DA497601FE18DA2EED9BD5C5B5A1 3F659089458FDEBAD33DD79161E9010A7F20E4430D57C98B1AD9CD659EBA2CF1 ABA5A5C7792D8870998F93998941A9BBDA0063BC975934FAFAA7AAFF92842917 DD5EBDF6055A56F8EDD3EFFFE07FBFCD132B5B4179A3B6287839D554E4A609EA 9624687347F790ACBDD58CDE0096048F0406983E4AFB8FE87CB5FD755B73A6CD B4660D53291246268801A7242CF434D3702640892078A28B9AB23AE66B1F8B4E B443921A2AF79A91B832331073236A8579FFAACC389BCE7F47DDF7A259E0754D 1595A4D8A47D0C7443BFF50001545C4F390D5E6B27831370A5C8593A2B7DBB10 40A360805FFEA5484217A6F398E8414211B97632D3F480A7C9E7ECC8B3B01B9B 88C659BB9E3AF8146236A2D143101407EE0A93E84ADDFC377F86B0E3DA2B9CB4 D5FCA212B2D3C38B2A6501C887D9930BDEA39D2A1C3563F8FB42D8EFA464089F 9630E2EC94D8F61930C3E1FD1ABF827FE884D9BECD91AB1E9FDF227A1985E2D8 DA364605014271364B93E338AFFE0D6CF73D9F2AE89CDF27B0F24C2B1163B50C 23D25D87FF1DDA05B8B2A0D6FC8D60F70250E19FFC8F6D6C005EACE2A5C1757C 414F5A26AB318AD9BA89121B878B14EDE5B3ED19252541F4A2DF04DBF511A28C A0AC8284AB5AA8609B0BB440C0CAEDC68A6350EB3067677BEBFDDE9913BBF4EC FCD021FFECB23D23F12093EF21DAC4222BAAE32274076538200DDDF125E9DF1C 22D1E6448EC6BA5A651B01EACCF0442490FAE83FAC5A3A1D87296C2FF427BEE1 78983EAD8215C3D7903A16C05ABEF9B26ECBE985067ECC0B9E98F3F5DBD91400 1CDE7A6F50AD963AD3A309FC8C5B8AEF8EDCF6CFF798BDB3DF28C428F5A3B4EC 2F3767461C3744A1FCF92D99103D98021731C541FF71FF5FB18E66BC5F2F0A47 65ADEE5543F1571FF48BB7348B3919CB53E90D9F455C59552906D8A3B4DDD83F 138FD8B9B60041F594E5D193846DDD670054CC043974F7F51C1B692431A4BC5E E8659532930B68251E58E5238D15F94906D36537FC8315D18192EDCCA27AFB47 321D6ECDF5F8A07070FA058CA1902F491C8DFBD0D3B3053E312C6B7BFBFD3954 7950A9B67B5DA1A5FFD49F86D7386E2068818D9F5DB2D405F95A71BBCE369CC6 6B827E1860586849AE18177D27092F47C4F5C8A89B7B7EC593E78765DAB328BF 0C2AB7113EBF74112DF47A3DDC3EECD4CEB4F08790D16356E8B5803ABBECF27C 0AAD52F75E9E3A674B7458C95CB43D521F1F55475AFCFDD5790756087EA04ABA 776B70E1A12387BA7E492F9CEE827D7BF03D9838835B1A04314223467421A441 928177663BDF60082659FFD03715E5C96658BC13C2D8CBD8B1EBAFB0ED4E75EE BE0C41A7F8DB7379101AC49658B1378E254B8737035394FB352B7356EA857E10 2E14293F12C99646DB524CE83A0DD71D8B80EB3F3FCD499456FBEC3198CA758E CE4FD425A1053DEEA2134FDA0443A5976A1130F27C76EAFA146B03A33BE2E8A8 8736761AAB27CA9570A634A2901B3488BA0ECC25F05D222572834FC0090106B7 97B00D04AEA66A7075490FA8F7B2F3F797D883FC8746F2791660B38AF16D19ED 2717AB03262A018ACDBE7DD6D130248E8235BA1EEC1B49E10226EBD055199872 86DCCAB9C90FF2F0B3CC49E3E8F0671D80ADFE316D582C7A94DE30353660FDE9 600E3C0F40F8EDDC97C6D81F9D5B2919A21BA918292F40A315CA76C33EA3094B 2E89C89A02EE03ADDFD883DC4F03E38C55F1C6CE31AEFE7C8215D7503417B46D E4DF92802CA4394B8E28E70E9C8B6737241847DB1B8DD9C0A5BE19FA101B88EF 3EE64C923A178CFA54AA1F499EDC15F2332A655F3C70514D6C6F8D229ED4FC26 4258F9605D1A2FDABBD4BA684AE45CED4309938BDF2B4EB1AE2D1DA7246F68C3 06ABE140B72122631D967DD0B8B58E8E24D022400C15B61E026B7ACD56248EC5 C01123EFAC545C9FBF7E8CA24D856793833B89F87E115E9888521F80D9383376 FDB73E1ACDAFB8372F7C991F28B404DFB8D1E6518F5985886A78CC3082E9A460 512DCFEA19ED2A9D2D3666D8A1352BA4A931725098C8238E7DC2D10C0C6ADCA2 E413F79262468286D95693BDD4FA69849FDD7D9099ECB7D0DA9C906400C1AF11 DDDB9D7D64F02C9558319D356A7D9614596BC05AAB1C6EF139708E0F4F783157 FCFB84D1D8F6179D7D89F958A84085FF0E85DF50873F9245EBA9AA26AFA20246 D6FF4557DFBC3467DD5C8E1A2E0BA23C6B271833C5E7EF1D6C03E4141D9CCFC4 89CCB2B979BF18AC181025AF9377005A6B6FCFB9CB3F3A6B9C07A11141C89208 91D0F79B17F9D22443105DDD8A058D9B17368F9CF2EC3072BBF278F7C9B55785 FFA7D5D8E4CAD5FF45866165E2FDF8E5BCBD0AF297CDEE3A1E8192C1E2C4AE27 116353C094F77404598D5A70DF178A67A0BEA8293F44EFDFEA91C2F97FA4F3AD C54AA2078B632B8B4797A810FD09E698BB127E4D543A7B128893D0DAE7FDD70F B77AB42C2E71871E9AAA881125287A23495184E025633AA478EF7D37A5A66334 0EFD29685C6FA1BFD78EBCEE63C42178AEE169E3F8FF9EDF754572251698C73E DFE04E4F1343BD815921E958F4A959459B7D63758CB4BCC6C08230A2987C451B BA3D0CD9F3C798609482147DB6F8688CBB543835EF360D38BA6C62D94E5D11FB 099A06DB315E61599E93DFD7C12716E8C9F9526136093125A73710FEE11B6B3B 23CD2AD46277451218E0012036BB6A189441774BC20AAA62ABA4088783D6314F 7F165D62AC570F0A566E9D79D26E799F1D26CDA56B940E6519357D3260FF6478 BF0B9746BF9282B91F5D4946B7279AA4BCAC0CC4BBE2016A73BA0C0AA093670F 63B2FF6901E146FA5117A1BD20044F880DC7DB74031080B33945A536775251C5 CA6DACCC9DA70A34163D2268734CBE4B6B1070F9FB747A6A7C5D52CB8732BED2 3818F6605C07CE8CB61FE5032432E7B1CC9B0DBC39EAF31BE95293AEB70F4589 03B17D2863CBCCD8747C234E801BEDEB1BABFADF8B92A7A54E325E9CAEFE4F8D 74710EE6D9E9D8CD6AE1DE2167353761C3CC242584A9F301592B486C3F4BDF38 383587CB165A40B7576AD0A13D519BCF10D38F7CE7F062560C3A264DE126FB64 49DFB3A6A4F460C1047252845CE7BDA706F122CD157327F80514C5A14E3C0BA2 5435E1E46DBAF38F08B89527CB16C4E7E87F942354AB4521EAB587ACFABA3B61 F7E812297D0C6D50720D67B89CC601F34DF1C5462DFEA5984EAF9D2D20808C9C 1529EF1FB0CE892C8B139B17C131887B110CC04BB65B787F0CDF6B37AE479686 4A399D527D135E52C9CF6A6877852FF4D9E20A6C0DEB6044EB34A0034038946F BED0766B0C73701B00850E5ABA2C969658E025F9A899DA2CBC9326F407245E06 C7BAF20583748D61C22C92234963DA6A0785D384FB0B8C5E4C3B13B5A0A44911 F452C33C0F8ACF5ADA42FCBA0ED693C25C465471D870082A1AB36F1E2D646CF6 A73B7F1B157A5A9AD2865FE30E93BB2F0D0E59212C682C4817F9933B7B5DE581 A88A7A218BFBCC8CE91657E46AE4CC04B1493D6BBC92804710EDCB03969D22D2 5C9B9F53F8489BDE53DB22F120631D25F507FD936721F6896D964DFDAE9741C2 283091AD196340D32CF19141A82EB0A4C3F910C3387BE15D70E4A43CB46AEE4E 185C873186862E2B848A6F7FF06E13038CB926A526B862382FAC954222B4F520 1D2FC6D49FA474324CC034D5947C9F855932917A6ADAF849940F70238F69A4CE 6E1EDA63FBFCF9C2C08D9A1E33FB4633FEB2D95FA5C54BBC2A6AB9AA5443E667 0B249186CF0E412F3EF72A59F1FF0441EF2F23E583F1B1DCBDAED2D84F778E1D 0F909C5A817D82BED3ED7AF5D06C23A7B1C0E16F3CACCE0DFD38256813209641 6D97216425EE0A72C794A5395823D12AAE6657E094DB56B9999A6A2887D547AA 113A772388B120C0FCBFD6B318C2B02094A90E24E4C47AEE2820D7DD5D6D35D7 F1E573ABFBE779723FDD3E73C719B6A4CFF0819A84545B85F11DB678EC47F62A 90114E68ACC86F56DE0C04E64D14B29EF5325A49C4D76A600914C44CE565802A E4B573657EAF38B565E52A1ECD75BD867755649C0011539930F4B0118E50A9DE 8A42E9FC475C5185D7B002DB51B991870EAF009DD16C817C0BD591F2C27230D2 9667268236BAF9EBDF85E3F4C0518A7E1C6FE7F8F5A58BCF40E25FDDB886CC3E DBF9CDE1C37F1BE9EB5EF8B280D751708592EDA8C287AFE6006E81CE76535C1D BAE78B35812FFA973B37503D8B32931366E3F026AA817C062D190EA2BD9C5C8B C0F818A3D4AE53C90E41D1B8CEDEB52746E2CAFFE9D75627B46D69FD4033E3D9 3750ACE1111FA45A02AB3649CC6F3861F1FAFB109260E0FE5C1E47E3DCA18163 96CC5B0D2B9FF03C4DEC1476C4016601D6DB3C5CAF0D474143F93D6E879CD6BA 09C5CB3FE06390D32D8B1042DE5A9B64A5D925A2DAE53876BA43045EAF35E4CC E09BD9E5F67CAA5658DF85B06DF35C299BC83033763D93EF23CAC1C44ACA65EF DD06C99E0E782986C2914C57EE9AF55A2EB8FA5C4ADFD19E24E33905EC5F0911 FFE7A817BDA10DC69F520D7DF35DE48432BBAB91BD3A8FF54964F7EB47A75CB1 A52B91FB39C812B5F8C9F89BA1AACD47D5706D9F0A6EA2C49EA129FB2BA282BF 891B07CAA6214C409EAEA30F9014B1624A30DB41A857C051E25799A467900DD0 74534F2E040D458B5A127819C3EE361DAE300709027446B04818DA9A3F8E78F0 8B706A4D430ADB1F79860308740C623ECCC856F4F99B3B808F50AA332BA346A8 1D0E8DCCC2FC0175AA093A73EF9AF6F52708AB81C65FFB4CABFB71018B1EF147 6CEEC425BB6FEC2597D681EB4AC7F8FDD10A9DFF915DC46FAFDC4F42B78D2354 49D774E76F7E1A90B97C9C64F2DAB4203224B5A047352FB0B06585EFC4A878B8 0D7152C16C5691903C9E414CB171BD224EA8B3C94D5CF2816DFB0214A4CA3022 7E5F97C7A464F7E11235B0C754C83EAEFC12D6088D2B1ACEFE71042A0DD1879E B77540A176C89EB22D0689198F5E3A1EBAFEE4BDC1B32083CBF6702057D971DC 24C2F805F7A0245CDE881A062A50E8327D383AF450648A58EB94293D34965F87 5C8304DEA4F3432E34EA354BFD17D79E7BE2E966BAABABEF97AA723960BC078C F8572241F61F5148791C6FB30AE7B833FDD1ED2C6E9FF856E05B2BE7B896B33A D542DC6377CAB59BB9B42A96A3CF285CDB2C0096D8DDAAF861B19BB8356D008B 85C0D0A46D3924281FD6FA6241D9B4A2850EE8FADFC8BDD322ACCC6325C46ABF 1BE831E6E1155A44827022B8CF1F69EF2AEF19214109960257AD3AEFB4FF11A0 A9B677C366646682BE38879C175062032E133A03DB0F1911BD73683FB607498B 0EF5D6FAA5A61893A7E246DFDC900ABC2FAEB0B8D1C2699BCB4399A0ABC7B6E3 84E4253396F0E34A64447E0C6148497BD9292751DC6F3E2CC8DB770AF36EFC28 E1B3A46318DB4A058B98C93752B14987313FA25A5E44B5B6105D87675B868DF8 D245A860D59BF6213A632E31094F0B93A241EDD719DA62853EF535C720900181 439F0259F11E88CF742C2DB209479BCDD2F4822CF05153D3E5A4A71219C38596 1993DF33DB976A55583FDDE9B18DFC863DA8879BB5867002E14A2DA4C24B5910 F261239DAB95AAF7B997CF5BB6FD87E637298B9D9B394F4E28ACF7B03E2A8BA5 EA2291529C3AF8146236A2D143101407EE0A93E8487C6072FA96995130D80A8A F5EC9E2780604A110E15A8514105514962358A707613C33C9F41F68358989E2F 9B20B3E47EEF53A672632C8DDBB2E6B432F8F51FF93DA9079A240E178FB4F310 622E7EEBF1CC459CB3B05B195FCA0E5C13342374E6254C16904F75B1BB7A615A F599DBAEA605CBF2016245617751DCC7EEE6C213C157C1596BC92BDCAFF144FE D3A6F47397210C899E84A773A3D8DBE2D6008DD9DEBC54EFD5548C48E8086AB4 DDE0365BF71544E5015CE32762530F09B44A2241DB17459FDCF177057130D3F2 F682048E3C422AD6A6011E641B73BD918ABC9261595C254B6106B4822DF999B5 12A8007C114D185DEB4D44248116C879D09B84723AE918873CE72A28E791DCF0 5E0F77EA5D50CD7C9557D08D1AE3267A662FC62B6F40998A4C0AF672BAD63D84 C9DF997D62692AF3B6CAE6DDF0FF99F6D873B1D7FB781E8A0EEE19E4FDB6E792 FC24088F50EC728911278517A6D4A237AE3AB9F551BA702DBBFDDBEA4A5F4204 CD43E67668DB02447082FC2D5E3897B27DB1E22F987588EF1671A0A9D4A93CF2 5E223D801BB6FCF496BD5E1116294FA32B4B69BE872F92B591DE93CAFECA0E6F 682B8E28F6B25297844C1A663BBF1BE9139C2A883F9169ACB97BB0F9A0AAE6AD 349CE511DCA3517E8687B2AB183A52F33302EC9D2FB78CC2A3C859EFB045FE29 9484C5DB72ACCD1DBB20192400C26EF0ECDD28CF12E5C83214F75082654AFAF4 CCC70AAE60E0AB66DD9BB1B4F7346FB746D0EA5D749976FD548D2F87DEB75476 8BCDA1771DC729E24AF3E9C97A96699E16C206FC306E63D922793CBD1420C18A 1222617B120CB7F2A774F2AE6BFAF25A5EFABA2AB2A420AA55B6FE22066B2ADD AD678A17D2342C13A684A487E122C071132A2744E10EFA7FA8708DFC146B9E6B 1E412B8E702C1B405B496D0A8ECB95CDD3BE1D9923C1A11D046FFC2E87A9CDB9 44455A8759EC47AF929BA4716C552BCEEE4943DC71A99594087A0AF3051EEFA7 64F1BE0A18373B881B8C86B6202987523BE960F805E3831805C40A0C5CD4D9A5 852DCD928AEF040293E5CACE1B21F8F364F53899B04B0C4F45030EEABACE2999 5D5C6CC28CCB80FE7D9907174BE7ABDE9701D65577AE9D8223670DE1BD5258F2 A2086B78676ACF80D7A7DF0453FB324D770F7112D351A28C8C9E9A4731CC56BA 7A94ADBA67428414AA20C2FCA9D28A6742AF910205C9B620885616349EC7A6B7 2D81C1624D48749B7D2DD1E398F015DCA2A94B5A8BCBD4A5C0975008CE1AAC19 91DF0505EFFFBD41365DFB0D9E871808A15585D416229D574E743547C45777C9 2C1BB2008E75C0005785BD21705594973F631B31E71B6A7F4A29BFEE5982B37F E6C179FB03F805C4E0A5E3E02711047F8C04BFB87AE8E67A74DE94C10E7EE856 F678CDC300845F2B98CB7B73C045FC2F3F0ABCA75BFF0331A60E6CFCBDE1A0C7 885666F8153870EF5C05CA994B7954644B183F1841A4D7D3D0A19E5F06EE8D5B CB224844AFF9AA7F789DB2B05537011E96FE96C05DA89463202310C07BBDDA09 B7BDD68E477BAF861C6734E04023EFDFEFBC6A6A9FFAEBB5C4DC13B838725DFD F0C13913B46CE7E02ACEF3773CAB14723D5092244E49336B0C7009C393346184 170931F569313F40A5FC47B9F74D70D84C9DCD74F03B7C76D6CE65FB34AF4C9A 71F8F3D002AEAE157175B9240A6E17F355E30C0710BD682DEF41E608C31C68A7 AE9D79D9B646BE09DAD66B0DAD5C6CA4DE4EF1A25AA7F81F9407287810BBB9DF 2DC211C0E35FC4BAE891B75FC22F4C691F9E8A336C42F7B7EE8F9CC95FD487A3 9A7EC07EB5F9855F66C0F3238A7075DCDAFC549E1692890ACEA06A36CF246428 4F56FE4DBBE0C73FF50E3235D3BD10956F99F64710EE63658651C5705B14B611 D783D4BA20263CEC2B29DA7693BF364C3D18F8585365C6E65A6DAFC7E0EEFDE3 864E5A0C9760959EF8D3F7592821C779722555D3235288DD4BD7F33CCDBBD497 19080CDB4F9135493D4481463ACDE9E5F075F7F921A9BCAC252E0F4AFA0E1BE8 34F7BB14B8CA8490828A95123B87DAC7272B77E3632D4039F15DDB69E9B05477 97F2B4B202F5055A6A9AFD1536DC26A54D4C58D6AD7665B83C5965CD3BE30570 E6B252F055CFE1578317E7E32F196F53155F389219C8D6CB60D6806C78D3737C 42B28588FB5B0B3CA9713B0690C0630A952CF06D0FFC6138CFF4C692215981B6 4619BED151131E1FA003F01303BCEA71F75A04DC4AEAFF6ABE19A3BBCF5E4DDD 2DED389F86D5FAE60EC412240A40A7CB4C9BE61140BD5041251370A37D0F0C7E 7035C3486D00A5847693E14B94978647FF5863AFDDFC846DCA4FE510CBA51D8E F493E28B79B72E13B5F8B0FBE02762A656C9209488AB4142E3C7F5F7CC8A7D84 8E5EB8E014D8E1C84554B4B603A29401739B3459C05A79E5E7977438CE49DF39 13DEB54B476F897066608B3540972516E89EF389AAA70BD9CA96DEB465CC260A 12D46C2DBA5CBF04FCA6B088C97FF713C6DF5182E14D08D2BDC99E0FAC6D5339 4EAC35534343E38272192B2D28CB0FD78979602EE49524B86A2776B8BD225A31 534547486CE8E24E1526ECC7B74768EEC13ABCC7246A8534353B20E2372B0CC1 CDDBEFB58C017E21EEF1861886660A9600606CEBD60FC9920B77A2AA58E155C4 CD62906508816366E7313E5C886A08AC50AC90B982B1C6FD67F83B1100ACFB2A 3B314EBE2ADF2D9B79B93E84F2100092BEE05C0AB196B1076F360A6F1E63A25E AD38AA17CF0D46F86DEB29877C718D28AA6D21358B5FB10E65339C65265584EA 986747B2EA2CE4E08575CB62567EDC3E7872206B37157B39682412D152C980FC A042E188EB1222B64512AFF4C02B740DAE78B9D00EA806BC0853134D0420A61F 6AA0C1F7D36D1F093C8F383FC9128F0A138DEC23A633E51596B5FEA0D1B18824 391DE76B31E059A7CA75DE319B7C1868259BB148485673855366C2D7498CE1FA BF91A699F032F85BF389FC1B7A017829471FADE688FB8EE952EEA9988B97C741 2C192E05362C779ADB894DFE80E39C93726E9A60C5C9DBE2861716026B5F514E 8DD16994FB860925BE577C1DBF42EE3495E6BC48A2761ADE42B1B657C0F12C20 77A9179EFA692284C16770557A68F0EEB9DC054313320DA5143683F4F56D5C41 0630247ED449E89D434BB1F12F8051C4BC5511B3159006A437B6F5DEFD3C7E7F BEE52AD6BAF6BBDB66342BCD0E9BD9000FF23382BB11C28B9E9BAB4CFD143A74 827B199FD071EDAF086E74D33E8E726ECB9FE90A90550DB3B15779F6249574CA 3CADF103DAC3E3714D9F0B36B84B2C3CB70C0ED29B4BD7FF35FA06758979B5BD 23EF03853AB1657ABAD0FAFD5FE60F0B23FBF19DBB3F8D37C19E1C99A439F5A6 F934778E48B2EDC1B145E23DB294F884611EEDED8B7A331F84DE922D60AE8122 1DBE2188E2FDC086244B3925AC718C797D0760DDA666A65CA0D6EE1B33BBFBAD 3C25A73710FEE11B6B3B23CD2AD462792660C402AA700BBA73573CA84D8FF924 6863948AFE15463FB71C01B2C65AC5DDBDF0EFBBBFA8DBC7EA37F495833AE0B8 06555E0307D1FFF19487C415691126CBA8DCB4BBF2352C92D7F7EE53FCB7EF7B E9B926EED6E8D50D7F90B47F525113238F4D376E1B4D0E95B109A67D0C278745 55F5FCF839B2E6075F10F2AABC7146D902036410BD76E44F07AF10E4C2083DD8 9C4E18396ED7711A99FF6A035BAB154B8F3C28E19BAEFB623FA8E9E1A8554A6C 3A41B2866C97F7E10700080F625D18F8A4B9CF0330C5E6A0EECBC13AA21F23F0 1F93008D171F58E2406D3AA08F7DC8A6D3E4EEB355C10F588799D49C306F5AF4 980ACD233D8056EFD67343990A15CD2F949EFB25F516EF79D2369E33AD52795F 697E41978B1AD434B2AFD25F16DBAF19BA0512E6828F7DFA35463FD52C41D778 B615CF9753753D44CA1453E7FF6B27E5C562A4BD5AFAFD62883ECCBABAB7C0AB 88D400A8E9B2DC6D1C61880F37D556455F2EE048279DB1FBAE8B114A64B7FE2F 3F45C30570A348B427C21DBABFA8417E825B1ACB2EBBF0158688C239CB79BAF0 F0DF5B6E2C376C473BA913179C362994184A6350C2DF2870AD5C4571898921E3 E68B8C3505B4839559990546DA2D3CB1E792810FC48DFF74875D8FC9B2D5AE92 BA4267E1400A25A680F3356765B7CEA2F00301B43FA5A083BDC1A5191ADE3072 35D91846FECC89BFE80B6B407F8F720C8780542A78C7156878591C85D37B4F12 D911861AA567EA6E74744C42B434EAE1EBD172AE0546947ADF148D4D8FA65D54 DA9B0D114D60746A73D2AD9C75C5D91DDA57138E4E432013030605F7BED34BF3 7754475F8E71E00A7ECF6A0F8F0EF6FCA9A6998A48EE5690626E6664E8BD4D45 8D882F528596A8585B22388E7E36A68E238038CC147D12EE3844AD368A839C89 8783B98945A1F1AF18CF0E495E1F1AD81FC14C6A8323B06A8096D62CBDB81D98 072C8685F3F57B1434F699BE05070F67D839C7BA77F888E53B926503A73A581A 994C4AB63B4B920E187FFBEF77F63AAE99B5BA3460F3B99FE53DDE4A419E3497 B58E38DEDD9F37AAEE8A0237B0D238CB493BD913CCAE0AE61005416A027BA099 55425A12541169153BD833307E37510767CBD00B3AF0901C093A0100C2DB33B2 55678E22F4EE561EDB53866B14A0B8007C7B8809B3CEBF9A8EEC08B27014A84F 592C43076F40B0267920A5B2252367EFD9F77E5428320F71DBCFF8143E0BEA69 CE67770E05C038FD91A29C5DB7BCD2B9D794CDEF116C855FB15B2852D3BFA57E 417F1D87BCFF3BFE515C77D78490CE6B997D699E5EB8214DE68EDA3E3D9FD637 C98BA46A6161F9A5B07996BCCC94C832D4086161D6DEF2B381927C1E478A90EE 9BD64629C74BA977CBF15DDFF21B27ADB44F226652A6B4A09ABA0B5637078A69 8B892C5344872B64EC307C86608A87E9B942220673DBA5DC229E9D65979EAC36 B3C2738EE521A993F0661E8255B6702A0FA0261898725424EE291F442805686B 7E2AE45D2C9863D25FA6C32DD4739F3F8A484E36952448DD1926CF3E4C6725EE D629B0E0A7DBC1269991295B712A9A9258BF075B3B7251BAAE60F6B81B2E85AD 8752BE3E059D18123EF6D0BE18B91FAF0FAE5BC99BF56EE78517A008880E7E3B 05B3E0B86AE3819F7E943BA2505E9E31AC073C2DE27E4016A408D1D743D9A1DB D506BA04E93CB536548BC2C18FC86F6B6338DD62F7973B37503D8B32931366E3 F026AA8173C9DA146728D18F9E8BDEA2E1B1D3F803139CEEF435F081AAC1A0BE F2B686CEC5856A891940E461C4859F414BCDC5FB11EEEDD55260AB1F8846C3FF D231702E9F7BE3D106C1FDE846DB184486889FF4F837C6799F8F50F4C88FECAA 2ABE750E915A6CA0873B226CC704556AD2695644AC890E05A8E6A0F624075953 AA427F2F88AFD887B22532E89BB76BF6846262DA78392A594EF0BDCC8B782467 806675414213A80258EE674510EF3AED4B6427D5FEFDF5B03EDF10384251417D 00A06E2B7D05493DDB9D184247E6C405FAA9A937DC5376219237ED0C25774277 7F6A9707080F89CF435B82D192A5AEE7B0ABC5E6DBF6A5EDA01D2AC4BBDD06BB 7E603032EFEB35E28411FB05AB8E4A071D85D21F3E20D64418F03F2D9F061942 29D2F9F2FC83C44E174DCF9FA7D4E1BA3C030E18F7DDFEC05112CA37225FC2F5 08A88CE2BD10913614850824A44842A5F815B8059EEF3A2AEFC1A320C5B59443 388EDB91F8A569CFE3CAA458BD9A827E50A4A73ECDB2BF3FBC77529286EE6EFF 8BA532984D372DAB56438F1042C96DFFD6F9BA04AF989E121A7503129F3A225A 2B5115534C7142050781178780DE4D09C68142CFAB9D75C4F6D6A73FB4C07FA2 195EEE8717086684BC2D4F757FD2D92A247CBF4CABBC706A929EBC90C0E77E0E F2B89C59022949EAAF4E98C3FF5EBFBDB92901B7721A8D68D0253B665A112B9D E60C230D2005071379D9CCD989C5C72B6B090AE7C8FB5B2E8B4EA35401C4BA75 FE9EC168A8B9A604C09EBC603E3AED6E33EE942AB484E2D10129E5C06469D73E 708BCCCC03EA01E87D172DAB427ED4451592104309CFC79CD7BE586E4820CEE6 F2C77BDBDF65731F135A50C4EC61C94EA59D05CC9DB849CB9EBA6719CBB3A05B 4A21F082BC9EB59D1EF239EE42808CD934F08F85CD4CA75D32FE86330701B6A0 04DEAB37B26010BB2EC1D139265A392F73E562B6B669750F5DD71BD6F614AC04 B3DF74ADA30C2FA98F494A4E80FF1ED1136D04FF6E85C65C85AF0CCD8D5B8243 2B8EFECCF5F8F3B70574EEE16E4FCD64B9089088A6517288A870B9935FBA7CFC 2159A264CCCD930853325C99023E03CEFBEEC502A0EE6B85F2EFABF38B29E335 BAED5FFF3B882E52A7363BEBE9D39B3343F5FD6812B4CDAB3BD78147524D5F22 8B0A955302C171E7A0D628C26F57A223F45693BBFB1A82D98DD284CD09D80569 FAAE3D9A8ABD7295F452F998D6EC08E1CA7265AB91AA9A09552C199D0B2191AB 75056859206FB59C264E9CDFB2CC8E3880ECEA22BF43938B806958D3CC6C0FA1 B72540746426543291AE4D20A92F06C6868A13118D999D41E547585243A37E9C 40B98C3640EC4E42E4D3CF24F552F5DC6B9FBF62FB1135B3EDCA7EE4BCB73DEA CE6DD9D60E8E244F54C0E7124467940A83B56BFCEFB91B78A79978FA67A5DD54 5A2B7E5637AABA9A04184607DDC9C6BDD3EE5F789543543A2EDDEA27A9997781 B711D5A47E086DE17C292AC2992420B6F65FE79B09C8145BFA143C438C31DCA9 696FBA94625D1673093CFD71FF2DA588399B10AA8409D8CF4DF4BED62AE20551 845A3706D05D8290C969F2FFE8E5FD37C1FCC3B184E4743D5F0C3C6ABB3B6076 EF2450FDBF741863A5FEB1BE5AA682D6E0481F93B4AC018DAA9E22DDACB088A2 3C204106F5E5BE85533BE7D472D33371FB09B90F3DF094D84935F882B124BC08 535999AF9E945ABFF26CDEA98112C2C8B5CC5FD35C023983CCAB2A4224433A5A A5803064AC63E3DABF2FE7D0FB1B730E36FEB80F752C3E2A0EDDCF65254BBD87 B538A8BDC93D400D01A51C3997B11996F2C7E54C9DD2720E8BB7FF7DD8B3B759 506FAD5CC3C2E5BE9B976FCAFE9D64B2BBA2850B92284B30DA6D6215BE2990B6 552B97C7C741D1D24B4CDC6D666CD1F491EA812A64CD3B2D9D83FD505DF3B4B1 27533D55EB91091CB575ECBB38CBDCF48A1E09270CCF28B0A7BC894B5D381CF1 75BF4A02A4E61C5EB9A012B53410DF5DC1FBBB35B6AE08F729AD787497219B01 3BB8D7A64B4CC91386C4AFB3FADD1ED132230D6C539D9956444E02C7B1C73F21 B869BBDE0B47D8F23A620060C06C3262178434AB4846CF5DF3CB61841AF5E460 F80182383E96FCA19BFDC5AE5D479AF0E6E8FECA63C04718B577718330EE8875 B34AB84455987FF386E830B8265E3149197EF81E8C7750401039CBB0BCC0D1B9 351FC2667B316186A5508E5455322554043F99B66F7E21D717BD76EF06919C12 4985C9FCE40F291325A17D6A96D5F93DC0307942FC86EE2AB3E0260FFE709EAA 24C1481BC5B0A81CE5EF8EABE0C39BB2DD3BDDE5BF214DDC13398479EB9D6BC5 3306956B263116A6DBBEB0C9784A4348C7A8ADB8FDFCA225262626FC0C0B1C48 063B0E4937FAC9BB1B13CBB7C0C43C67FFD737177B7CF39CAABBC6F1FB7EE541 1C8E41C38A43EEAC604DAC83330FB9FDFC3D1161E656372AF4CE5A66C0B503CB EC1DA09C5FFF0B69D2E8BA2A1A2779813414218766016C978D1B4AF59FF5CD16 E1A3FDE0CD71A7D5D51EB5688187B3AA4BBBE183252571C28BAB6E2C9A8EE14A 0D55A9D448ABE7C5F60D6A771C9F2E33F486AC03EDE9CDC0EDF0796A6B38AC27 1B06CE52FF958AB8B6CBE8D77BC70743C30BF59EDA5E6206FB714E64DE44E88D 53A6EA12289A220F4A84B86BA71C205EB6CD0BD9FAF21F130EE896ADE39A386D 7DF9686A8CDB1A37816CE4E108DFE5E1E97F2A0CC04CD039FB34D9EACA56E7E1 B0F045A16BB81DEEF4550DAD42EC1A1023D0FA0BE6F09EFAA6A1C76238C4D819 2B7963829017D43C0E815C49AB169B710AFE620F8C4CFFC09260D64BB5FEC2D9 EC64C05522B117EB0E7F805349DD2BB541D686147B390A099993B56E111CDB91 7477BA0144114835F96605E973913F3D806CCA3E469083C0E1093CDCE5922729 8E390099E5178DB32E7385F50CF4641D3A1C15148FF6B2868653BA55BF55B674 6E856EDF09C0B1869CA7CA2D7D2E3895BA33E5B0AD0224A22CE80D21B464A35C A409709FA7CC2A625952A64CB8388354DDBFC43759F70E3721742F8EDADF2C6A C9A36CB629A7BDABD1252193B023A59A82249ECD16D4FBC99E17F19D536A8038 38C507E623F2A8502911CAB49534A0392405304F96A715FA799C6324F2B26AF0 F8CE6E94357F333F1891915EBA24B1A968EB32F6BE065CC70024A354D9F3571B 3889F9FF0A041A90D1AF5C2F38338CC6FECE6C9777557C8937D2E26262559C84 B7F52F467224324C88F9474455D44F284DE0BDA706F122CD157327FFEBF7602E 0E005C6E33B12EC9AF54218EBF25010BD7F3785A070EF91780431A0419D9579D C600237EA2BCDE7EEAA13517AC23802A8039FB548B3C49590DD6AF7B1B9CB25F 5F8AA0DEF79FBC899D997CCDE74826BB97485FEE2F1460A65DA2C4CB43DA2F3B D3868D6373B736D4CC0FA988BC621561E6A33B1C2FB8B5DCFC2D27E7D4CFFE70 20D539D6AB25713AABEDFB95AEA7CC3CD4D84CC312A582D14C02D98DD85B1808 029A725F7F84531D1CF4C444BDFEEB6B961689FC481EA4EB7E70A45490A6B6D9 CDBF555F9AEAC425179A192AD689DE65EB838006EC828B11927DD65A95164B9B B83253A236A14F0C541CCB641118036C34E481DEFE4AFA59DCD4AA11917A87E4 9B679CA3E2DF6C892A3E3C0E5350D219ADA4B1EC501B8FEE8D04803EBAB6A549 D4E21077B0F736EBEB4F995A09C803538CD0B64A8492B511E5EC3B449FCBD7D2 3C40BBEECC0D780948031C9EE5EA7AE19978F1EB40413A34E7D58E9333AB11E2 8C333FDE665BAAF7DAEF175975472DFFC1B4F9F918923D07F24D870B98547EF6 F2A579C2C77291AC20C50908DB38FD4FB56FE607B8ECA12177C4BB66C835B875 5151715519336A7D4E95C2B17F4601510C2A01C4A90CC6834BEB87413965FB06 C97A401C7BAB19CE3F5D0FBA343D16CC7A51B494F3C19D852135C14D6605D8BD B4DD2CC0204D2DB890F9E6CDF4741537610B95B5C610BA17B7744F9720ACA0F9 00D11DA855B9C8677928601320D89619CBB7D41ED97931487CF323E66A56562D AF22DC9F9756AB4CF8D23885E7AADD5025E5DBF15404468FF6A49FC46B381BB7 9E42CF5856A0F03971610465271616BED93B115346CDEF66B458A7E9FD538C4A 8022B26BE18F257A4BF09E9ECC356F4041915A03D84D8CCA6B5D4ACC0D938DCC C03323FD974B0F4B7AC11B4B9058FC3163A362DD4E26E7D213A753C64952433E D2A0024A084936535872B2E463EE135D9D9C902B17B51AAC0CB25A1EBB364766 B000D732D9949A1E96F4F6F4A89FA7277F6B3D38EC462577DBDDFE4BD690591C BD45E19649ACDA951138882D4CCFE9D7DAEF9CE4346165D44E0115AE152142BA E76A44983E12E93E9BFF27EF0108342D68B5C88DA5F44C75111084019DE1FAD2 64E2B59878BC4A9FA8743E051A5CD3E1C80121D077C8403A25CD7585B2B67572 E3127923E0843CB33249FC93E6B864033110DD1572CE251998CD0CFD3898B7EF 59606354AD4A6B726C02176DF5BA5DA1EF149DABDD8DFC9DBB510DE3C875DDDE C1027DE4A3CF248DC5653C772D06D80F724F1C75A89B48F5D366082E77405CB3 8C7A634DA8A79BD9416D67F68ECAB1355C50F246011C10784F8FA3C520F21B5B C53AE4F72E75AE37DDA9190EB013333099355890F54D19ECD6F228E23F44EDCA D0114140E52B7E153C354CF3F6F6E341EA13F26AFBCB532920513461CCA12DCB 6DA72E76E4737CB5C3A0A742E615E86688E3B3070949E863ED09359D65D5351D 5AA1AED481BC6D399BFA142DA106271029E3285A327CF5125D3EC439A3400DBA ECBF2840EC631FDE0605DD71CF004087F913EE0CF4B5284A15AB6C34D130D4AB 33F64C30C5A95D86E6627A1196246B459352F82236D34C0000F2F317A9658BE8 FC48A03E1137D5A1281CAA541FD11409BFE305FA4168089D21CE11B7812E89A9 18A566DD520C7543D649BA7F7B68A693ADD6CB4ACC381B51BE410E31A5A44A6A 325B986DE3753D367F8795669F0B4E446EAFE3CB12F1E2EA00D0337278541B3A F3782F0D7F681BF743F7836C7F47BA59E6A82696B5D82B42234300E39A68D070 4585B969251F67BEBCD43245237E93481921A3554216864DF6BBDA5BA849CB81 C6E975C041BF0693AC245558DE258FEE89197C31D5EE5C828A8A52B0512DA066 D6DEC50F2F7706E27F6A78BBC90E667E746FCA59791875982394B5FD381BE238 08DCBB9F3140E4AABD939752FA8F2B67A4FF4E6111CEE2E9AECCD7DCFEDB875B 77C4453BEED34F871C1D6D782FEBEC19FCC9C87A5B3268000E98D0AA76B28CAD B076C7768EB11C681D4497E178FBD7DC19885DB8A86CC7A26FE7913E39C859BC 00B9A6C6440EC491C6878F3BF653103DCAF9D319D43DCB60AC795AA4A8D54971 21887FC68A0E948984C20C3A8BDC58B12CEF858CDA9261A2B5B279AFA154DB3B BA8E8BC434AF4C93ADDF0B5B0DCA43DB0B429BBED98E9B33E1A28C78BDBD23DB 383FF3A155AC5E6F068CF2075CADBFBE4A276AD9AFABEA8FA43A98760A5038EB EBB1C76DFF049DE637713649519A90499AD860E4BEA0FE28119CC0F6D54DC352 84340FC2D1FB876816B3CFF0B18903071B02457E235B4B64AE5018E6A92E60B8 57FAE5842613BE64D0797FA23EABFC4F05C77766588D2EDA4B95B0D536EFB45A 896382432C323444E86F0019D52DC3A9875CFF29BE45258635438A2E1A0E536A DCB35E8E468A9B52B305A782C1C134EC4E2E536C1D9B015F99921C4FE8793706 314C9ACF758E1502F1FCAD8A979DD6BBF35029B5130283C987203EC7DC9E9BF9 3A81442550316180EA56521EE637163A61EA6F1A625EC24892F39A678FA87489 A04291A6ECAE6D58BF68AC2E8EE8EE07BC7DC9865492A4315EE40526EA03A349 F5C6446E37A0A57685BC7671AA169E23D6544A7B74E0C4E5B918EEA16315CCF7 64279D89362FAE061CE1A9AA74B60328FF9963546555D6FA83A6F6F390CFD2CB A8672AE67D8B2FEF6FAE9DB1EBFFC78654924E1935A77568FC914CF89012D173 9F8F1B251F7B47B131C8F4D1F191EBF9F18CBE633980F0B80CE546487D44BD2F F636CEFCCAAB10058079E4373825590D1B2F37A5DF73294B2D6E8F702D2672DF F6476DC5E85CE5B15ED448127C5081A72DAF5A091DFC125EF6E21ECB883429A2 C7690473547A5080C8A8A6796D1DC5BFB57B9B71B8BC3890F3C2AC0CE4168645 53E55871A4D7D167DF5473341A69F601C1F435DF55672D3DAE70EA8C0B98D622 4E7566C706CE349DC76A7E8C69AA01146A180D039FB0982BAF18D9650087A52A 32E88CA0713C658B98AD231C9C02859B20719D5895653CD5AB545DD6F252DE3F 1B2C842049634E00A55BB12047BC698AB5FB3437E3653C178C42590180D7AB4A 43C6BC1046C30CBD8BC6C14A2EEB6EE52682B401FA1322776908BB60700D997F 0FA5FECAC36DDEBD885D69F742172D4037A24F4317772D93AE71F8141C674AE5 E221FAB59C3E669D58586EB586719F53922A696066640A26839E37DABEAF5161 09A03531CD1AD4ED29076EAAEC80E2B153E0BDCF6452FB26FCF45B1ED192DA11 76649C737210F59E8A5B51C468ACBA31FB51C00F25FFA37735DEBF1BC659B0D6 C648CA390D6E420AF460CEB804EFDA27F705597D9B07056F22F7F651B046BC48 D0AFFAF359E9C7D595D9670EE9F389D49161E9C431E7A466677DE06B7071ACF7 9D206193B124DA1EA7644FE16FDF1C1970C02B7451D6436735107E3133449351 2987E575A26F642A4CCC8FC7838D36C99F6054576C8AE84F7A2FB52590F8926E 7C90AE958D1FBC09DB32AD05EAA08AE3CFACB5054E9C516865674CEF3221F873 AF5276602CC23179D239DA62C394EFF51F77ECB8337B073EE49E8300E0EFC7CD A83B519C775A064ED23CCED8B77B4710B27C33CA03EC29E594DF5CBF08469A0C 8647DB4208BF4606F318CFA02A5325C1ED9789ACB8C033324F14F7A1FD5D9FB8 64926EC2E843851BBC1CB613A48C8E7D470B69BC046F2F330276BF68B1D1E413 5139A4499B81AA72E0684CEB1FF93BB9B456190A63B12FF1FFCFE49D0F7FDCF9 831E5B44727426AF5B698210F0FDE2892BE2C9D057B360040754758593ECFE91 490EBCAC04885B22AF8C14D51817D14AE3EC3BF21EBA3F042E8FCAB9C24583DB 4E714CD3C4C58F7A47FC8222E59F7FEB960D1C9FE9E6C21E5E2ABCCBCD3486F3 6CBAD3C52CAC3CABE9A43C818116BB2CEEBC2C72FC02941F8D844E777495D3B9 2101B9D942BBB0DC16D2E2BC9CAC377A21242B8A524BB268CCACF161D8A0ABD2 8D483ADEFEB6B65B47103DA31E166B1AF09791377493C134CDB3B8A585C42E49 CD69DE1413C0AE70AFD74A91CB4D22F0D8EBD98298DBC45FF8053764EA8B23A7 7FB2342CDFF5E93F18435E1BB4E0DD787A4FE58293B8417AB571B2B93D1D6A5B DA1757A94710E8567B88CA8F487693AB116C97ED1EA8C4144638595B559DF962 4A97B45CC81A546A050EDE122E956888EB8DEEA96DB5026D4F87A357660B86BC 67495DABCD31B4E657FFE310B6C1E3565B262333C8A937BFE7E2D1E650F80C5F E57D3FAA3DBC63339ADAE25EDC7CF4AC1551411CB4D4F57EE7BE0EDD7BB991D3 F7F6B59CBF92B63FAA4C169E925BFC24B91C22F91AB9C72E3788C8F5C9B893AA 458454821F9558E1B0740E4563DD3C1FC96A6D24BD85F4D4D9EC0D2D6A692EF0 3DF60348C51E8E630A97A9770D1E4780D86177C3FA90C6638A8BBCC99C2D1D75 21BBD55F5AC368F1B6AAA69A37F5975DB4981BE13782B1CC582299720FE3173D A27DB1487161C77BC090F613C053683A3FCA0C1B23CEF3685E60735A8465E124 E8EB868F4F085CD3A6CFC94BAFDF59C86B811936C57C0F97FF1E37906FCC6534 020DAFE66E8CDE102C6AC38F172D90A9CF32D68BB13D6F13A532ABD4D9E222AC A5B8512AF967E0B2C0FB5CF51A21EC99C7642987EFEFB40400CD5AFDF4CC5984 7DBC9627FB35C5CF7B26C6D3C32C8E2E653232D1B02E0DA4239D144393117EAD 227BA7151CF37FCFA2E2505D73962D1014AD98CAC2FECC70879CE131C5A7A7B0 0399207664A147C212CDFBC69757157D4CE333B6CBFB487579C8D25E7BEECD86 AADA27F5142E5268ABC28C260A6EF32AD21D6E68B1BD0AE17DADA607D3234F40 1A48D506CBCD0E2D4EC00A5224636053DDCA865B88D60D3A6C329C317253620B DE6DB04030D9D318F0B102C36E736E14414DD22FE3FA6F3AA200B19F4FA6765D 1A3392B5D7B8CC758F0AF911BAB906A8F5F8B1905366B362AE1729D19164D9C1 98FA6914D5675CC6EDEAF22736602279A83799106B930F6A77EA09737485D78D E971814F640CFEA8DC657EF6E962E18BD437F0967FC7E2508A6DD75BD32F4322 7B8F435EB23B004DFBB8C94389DFDB5D0080F5732A892E5E5E4EAE58F0D345A4 B1A24885D1C64218D5BEE23B388F6B3E9B16BC6E8C0BA97E61BD5103DAF745A9 2EA9CE8BDCEA2EE8FDB1B232BC640F4AFB38945033FA9EF8953C399D207EBA3D E330B4D50E906E9755EF02408FD245841AE333BBAF9D1AA650AD0299CC275FE7 16A2E951F143C298483CB89E7C86DD9A9029ACEA62BA4FDA86572F742D92D558 FA6F8A32E28765EFF2E48A43E26DB8D092D6716AAB8EAB719B3E7E23054FCC69 36E81082E6E7C9FB4E764363D832D98524D22CCAA1A1D64F5D0112F086BF9419 1106791ACFD5F8EB3DEA54C1F7C19A1E405AB68894C3D7003013F5429921DFF5 7C1D31A5C2BAA767FFFA64C58991BFAE46AC9722F2CD51B51509EBBD8FD5F083 8BB09F3E16F521ECF7D1850445A2BFB78F3BCC2F4F587824C4467E11F7F6AE0E E70E04393849AD7274DFC290EBFC3CE610FF41B0ACD06DF99DE97C8CCBA4790B 179F36976EDF9BF8ACEED3D5CF56083175BDA1FA71CFD31F25581C67CD00591E 80501B1EE61D604ACBB0F725B322F99D814181FFA3FEB4A9DBC35C031647CA68 95EA19F35B6C3B7D89743E4311E227976E08EF0176F4AB69C4667119EAF697BD 398C7FA4DECFEEC8076A38047DA73F7E7BB4FFD2B2A41D138EF5711737EA3B3F 88E914E9B100050243680B4071A4C37C9939572CBA372027C9E43B8B8F22F0E7 D0BD6FEDA3372CE82472287EFD87953231AAF06D9FF87CAB967362115C60857C 140AE45B2AB4E2BFB216E1303A1521707A2E596CF556B78C1E1B878BF893879A 9C61FFAED953F6886DEA7529711489F10B965AD5E74EBC38952147AAA3F33384 B2F26162F96D7B679015BD081AEE36C550E9DC645CB5AD18AD7E2655E70F2E1D 8D61532A35295BCDFF7DD7AE6416D709A733A2AD338C9F9460B0717C9A4B0FF6 0D987ECFD5BDE03AB6693C2F603B302BE39B9B1BF87F0ABF27FFA66253635E1E 10E30DD7724FDA4C45C9EDBE93C4D395475BBF5DF46D744A6865DB254912B3D6 56064F4F5E825E26FF37C698E20CA90AC311FD5997E19E7DB163EB10B6741889 B8F8A210E46717550125F2DDB8DF193EFA26D90E3ACA8B194F37262034F7B135 672DFAFCED91F96768E8910D52286E2C017EC83309B1C3A633FAD310291EFD3F 3C4D9786C3D9B6EE2D5EED368F46194C5DCB838D555EB87490B1DC313725EFD9 392326169E3822AE6DDC3F7ED82EE56E7B40C22DC7C48BE141355EF85B93A8A8 8AA5E78AC8EBA991C2CB48337C05D6C92D28ABB927C5D76DC94D5B622A43128E 79957537D92500780C4DD38E62F15357E140B31D702A9BEFD4354CAECC3A0ED5 DB8942C57DDBE9C0677B7C062E97BDC409B98EC48A1F41D73D156F4C2970432F 7321CF0DEED4EE4445AD3890062318D11DE5BDF93C575FE6B5721C0D0B106490 734B004D92A3551C5CB5A183F57F2DE7F08DB13C66D00F69C8CADD2969B4C095 2B34CC662E2E5CBCB36C6F1839459D73235D222261196C7627641EF015792A8E 9B32B106EA75DFFF4CA9A00DE122F9B39630260EC0928EAF9FC2D01624B2B976 7378CE852174D30EA86CF6F06FC67336B233AC6424DD1D99550CDA01667F492D 20BEC4CAE46508FCE38B8983959B1C2739558D9961377643FC353EC70C7377D9 A0E211219F7678C978C823498C31C8EF2E401D7BD07F6027D97A1BC89C9F5FDE BF57EBF2F058036E488FD900B3652AD6F993BC8D333EB2794506E6A4449097A8 0F1C9ABB859EE698E80F4E740B700F569D6190E679B5328EEC0D9FA72A63BF67 D9285007C41BDE42D22AA7F3CA8D19DF52E2C552CDDC1FDF949D9BDAB9F2AECD 8BC13AA4B53584DF03FA318CCB483A55D0DED7B57B9F13820636DE5AD21D7F46 AF4290D7AB833A2FBA2B1AB2E391EA4036F10B01D374605C149E6E35D7CCFD3C 89729C59EBA083E148BFB5F4547AB0E35D48B93D5AA2DB45A1C795760C5BC083 D3EA1D82AFE18A691BDB7075B0A9FD5B8A8117CCA8EB7DE898E1532A259C9153 EC7B20A7A175B2B2B33ED5462D8324A8594228A8E393943B996DDD7DB8BEC6F0 8CB596BB4E1EBC2DB9BDDF211C041724DA60857C974855D7C01990E48B4D3A6A 1E59398353BBD66800CEC209716253E9265F3BF1B05BDB18900D39F9219F873F 20C4B9F55D759983E341469E72E0045EEDF6CA26FF4EA70CCCDFDC78AEBABD02 D1C479BF4DA6B045DFD28AF64BE5022A45E024F7D11A6C0E70FC3CD5A82542FB 6FF24CCEA07B31DDEA9BBB14B6F776073C6C6E296929BC73A3B21E1F8DFEA4C2 1B42F571667CC66ED4BC1E88FC953AFF8801D25FFEF1A66FEC5E593A8826213E 7DA7EB25E6A06423F2A98C7E69B5B9914807C4AFCD73BB9DDB81D7CCD302C3C3 920C01123B41CB6E19B445655097297E1FE8DBBF8D8319516CB648AA68777EAD BE5F70542ADB353E17DB8ACC049ACD650EB4489C26DCD7251919D4773B9D6E72 A83FBD0CFC16A4FCE2EA81331C5A45F60B325C026D2577B6EF9C750DD28B7EB9 76F6722D496F8EDB6144D04A8145F05FFD1C5C58830685134A7BD9449A03B9CE D2638960851D8731FB3EA3C363A912A058EA5D79BD715285E3FEE13871FB9560 FD225ADD041827515F23D769C71836B034CC6C4B64E8BE11F571E6D0EF242F51 E38CBF52A258872087C143A75A5D87662827A58D419A0052F81677C2C35690C2 45D51C425609B48028441849E3D50A721C539E553966FC018C42B904A56DCBA3 DDF32169D10E109109D830D2FD324562A15AE5827A46E97CC0D5D31789670C4F B13DA17AE654D27E5248C7B213520DFB5569788745ACB54626DF2C7E8F03751B C97545708EDB569F6A1D5D2D33A098545746DE426C47D8CC5A2015646F690D03 FC579C0483F7151424DEF01D6E66A358C5C2DA821844F99339E3B548C1FF5EB7 ADE6FA27C186B3C71C096B5454FB4C2B4FB14C43F3C2B8B4E9FDF8C6A85EFCCB BD98AA81F96A3DE12633C554C19863A8FB9DD1DE10EF22D2BD0DB94C7EC00D3C 7CA783794D438975F0E954DBC5371D23ABC4102BB00AEC05056D42A7B709F7FF 9FF02229F7495440B40CDF4BC324648159B5B26D7B98CDA0B7DB78E920F93030 B5B1B150908FC54616E80401E668C7F511E227ACD574520832938CD822AC81EE 6067CEF66B63E9BAD75B2E513935723CE675FDECA36F2454871D432EBDA36DD8 6D32C71EC5D39EF82BE80BB9ED7CEF70E2199837C80ACDD11FF14F6388DC6054 93D8BCBB2130BB062C0BC33FCC99957DDB4B0A6AA18624C2DAB9800E8E4FAF22 5B725B42456962AC10D2E5A0DA02D0A5FCBA82E1ED49BE64B6804019FBFE45C2 B13BFCE8480B2C69C3AA9F2DA4EAE0CDCD25A63B2A8B5F1FEDCB6C2D02AF4013 F00AD3F096A47DC3767918C846B34B255F95BA59BF2DDE6CC95C503F41DBB8B5 0D96686E2688DA70A988AB64C88AEA3455EA5409EC66553B7E351B88948E9EF6 3CA10AA2319B45AE768D8EE1C13AAF6B212035235740701F8FE1D713EAD4FC8F 6515F9CB411F76138EBC8D5A4C5E7D946F41BA0FAA48B549607872C134198BEE 2115083219CB537AB67CF53B99793D14D75ED6C8EA44EBE39BE4FD0037799FD6 E266AFA4E0FE4A08B92F0E30D3608140C0CCB3A9D6E5C70C9E11C139C0050080 E7FD2A8240EC627834B17451559272D83657892F93B206970B98215D5F02FA73 3213F217A526FFE3C0E35BBB1626FAE3CA1BC6542AAC11F4415C87A4A33C36CC 4B00E7EDA22F8DE73E6B9019D198B4BC903F2C4EFFA2B97E10660DB57DC8AF7B 92A913D45EDC976608274A18A3A1ED0F221C21901DBEA2793260AF503E8F3E53 651C257F6D37F2BD1AACE56ACE1DE48EDA09A0A2C2D1D56ECCD2521285F506C3 30E599084176A211B502D71FB1826F586DAA056761744B3AE5837D353F715E29 DF93A284EAF5FB8E4D3D9EF99B6AB55EEB83B8B8A6D1AEB1B816033C27DD5222 4789EE33B189ABC1AC29AE11EBF5917E4F9AF9DFD48BC003CE30B1F4BC5F04D0 51AA0D3E7A00DE8EEABB9FA584B8368120BD6AD8AE20CE5648CE4391893E7FCD 7D77E27AB36BED4B1C6A308781217CED82E14D00829596A84DC7702FB7D43D5D E946AE9AB42E07D3AB600932B40C2B031247006C06E46CFF68EDF82F8C6BF398 8674F1E16355BD6E879769926653152595809052A85D916BAC0FF1F5D4CFF50A 0FF9A97D9647B8A8E23F0F2498E4AC0F9D92E39632184C0C3D28182ADDEEFE08 9978D3506D7234BF81E1F65F5FB43719A1FE3DE71198888F81E34791AF36C797 34B83969BB8C607818F79A1982B0E8752D4EA1F7E8F136EB812B34D021BBF456 9DB56B04FCCAC74408EDF637135A69BAF3CE6181236228599DE395F4C9AF8D2F 12867740D2618EC72E88CC951E79E58ADEF5BBB1B75F9001E9BEF90035FF1810 EFE39A0A3ABE9287695618BB6C91DD0D035F8BAA5A9FA6A6DB7C17B2962D7287 0FB0E1C35D61692563CEBB2DC57D6EF40AC08B4924F3A3B2AB208C0A7526AA42 14CCEBD74960E08DA6AFD6B57B5049217196A87034A5CA18E2C0554D8E1B5022 FD6F4E9113ED8C18C65B5BB4C0566BFEAC3309DE3B91187AD0A917BB86714FFA 641F660D4E683F574CF46AAA43E3FE62799CF942E40D074FBB9CF879431D31DB 99B9356CDB21AB4ADFA5FBFAAE9CFB48671C3130D65939A02B3D80A4F838D2A8 0285D6A746FE732064177A653311D41A9052249063B2EBE7F980C70493B4CFAF 26EDEE2ACDAC42E3C36A807B41155FB0A1EE8F1C5DB1094DC521E4AA05FB5F3F F8537A9DB5161EC2C1E32AF0E8E776D849FCAB205DF2A29FEB0B060AE2652FCC 2249389D846D5AEA8BEF99E6EE335021C9267553B043FF77A2731B43036A1C04 B1D061BFD0EF2A14DF5E138888DB4EF0FC2AE3BDB91D7EDF6BDD633CA242F8B1 DB1A363400C4D8FFC0D9D20515372F5DD9ADF0E59237DFFFB9DEF5D4AA20690C 9CE80F59D2CB6D0EE28D873F257883D8491520BA7578EAC4A1CD834A76CD7CC5 617DC4FB997E37A29A3CFC1CA95CC1E1D81AC0DDF94EBFC4A757E330C750D9A8 9ADA7E7C377385B3CDA49FA84C2DD6AE016F1C0F4E6709CBF51D60701A431CDB 01A2D85EFED4BF59E62F18EEC7F182E8468467ABDDDCF3C3B8AA11A70FBDB545 CFB76F9E39F050675463D20138479B26B21FD28FCA31FD22B4753D64084EA260 D31BC09CD522A61A67C5EA7B94C28F82974EA2F56F7203B9152383DF8665B52E 6549CB2391CF5A64D6A614334C08CA6A27EE6DF2EA4D513598A0C12C00DED433 F186CD5CD7A7AD3C25A3E813189547D904ED5CA27946CC5D51A12B421F661EA7 B7A7E38B8C8740E83B7471DD8E05E2550D54DC77B8390B70E2AAF5CA51EA594C 31860CCF24F1376C43A2553C74AC1FA259D73B3E660140E29AEB5E7E856D9758 1B7D0ABE82DC0E565D72236802133AEFAB9002272231C9B70C54918FEFC950F7 9A4A8C99AE1C1EC73AC78D508C4284988B1D0EDD841974F322176C355633C62F 1F82E0034CA267210B8C831C9355F09A2CB4B1DE383622FCE271CAC64F121458 CF452C709FAF05FCC2008DD197A6674A5252D04CA54E76BBB8E0ABFFC8A6CDE3 B2C031CFEF8BBFDCF33FB03C2C1D805D1C295B17B2D471E45E87674C64F7FCA7 B71D7CACFF7301D57C4ABA9F5A42DA25C366D1A9CAC66CF512342EF8773FFF2B 50D5ED2933E23310FBABD98DB3E32C91BF608417743FB85844E9426B207A80A0 25673E9EE648C235742ED6A135B526864F51CDDDD126E94C47E7FE135E6BDB5A 14C2A30A3B5F967030514DA7EA5F95E1636EE1EFA34B0647DD43E2E5B97308D7 CEB688338FED06A70872F222D4B751DDCBB2E289F392294A20E3A89B3D2CBD75 75DB2EB3DC0F27CF8A24012CBA1457AD7CF3F2999267550752247A1D49A190E1 84FDAC6A57FB77847BE48E83303E89D44E9218B7C3B4E0FA227E9D59403726DA 3EF4C064E497EC8D37B9553ED0313F15618B997DA232A30D8A96ED46A52C938D 68C9ED430788B1F61CE308694E16CCAE26D474E928E965F82469918156399B7B A100D2E6520297372E2E3E82469D935FDF631D7692E151547ACB1CAF5DE35908 36501B606AB8B60D3D25883528E02CB7AE5219685604D46FF85B9E0BFEBE26F9 661FCD18141FAAFEADF1FAC60F50358AB5456738D57973059A06741AACADD66C 337DAE6D6F1345E4364FD1867BDB719A2F56E941D4005BBFC3C8AEA7A784ED2D 29E866C63CFB3422CBC3C6D0B0DAF7A01C94C79516274122B19846214BC16C36 FAB96201DC1C2BD1E8735A4B9619D7A280D8D816770F574580C581062BE86297 72E66E0F48E8DC31EE4E9C207EA66DFD42AEDDAD0AA35F0AA1DAAAA240D5E3AE F5DE4FAFAF681CDE6D0C114545BC228B37B484284B93D44E0C2E223EEDB68A2B 64F24EE462BA0DB4A41143A3B58C8F6788C4F2616F95CE09EF414677FA4BAE49 82EF9837F7D8CC4B47CBBDA8DE7F08D91C815D18194B289B508618BAC711FE96 3A327BF1BBBB0F260F03AAB29D48244E2106C519B46DE1EFC99D6848F430601C B821FAD8228131BF21D18B5FB728CCE1645755EE80063B297D805FA309E306CE 9AE2F1F1F6D6D13293D182B5E86B39F6FC371D760A09C5E795A034FEE03819D6 9E09591685680835AB2B02D3972F560735D4EDA87BCC98FCE5617F239F505E94 38449CF8D4CDF6C4C228EFCE24910223CAAEB7072CC696F27C70C53064179B13 D333363EE6EBAD18B4073BB255D7F228FD83D1F14E0AF27EBC47B87B9F8389E6 514BFF986ABCC07B9BC6B6050987F6D380A19A2E151EDD2AEC603660947BF3BF 7AA317B1A2E3D11833E749E59A7B7344BCC551195C625A7D338A547951F862F0 91CFCC6E97648EF2C39108A52C402E5A1ED6C857EA7D6DBAD9464C48F3270C1F A8D784341341CAFA9E72855EBA78546B5BD82759D999F4CFCE6080D60572B3CB 40E3FF50847D257D1AEA663B12699191ECC981A79BC124B344A7892E4B2852AE 1B077463DD733383E0624518611066F2EEC8377F29D92EAF60383E1C9CF922FF 2A4A94F0FF9931375C0D10BC499662C11BDE39A8AB9D14E39383044C70ABDDC0 79B476757DB99C8AC2866D99A165D03D63C175982CD0900446D4C99A0C909230 E72BDDEC94E23287D970A96B4A0BE8BF86005345B86F08EFB77FFF0C4869E9CC F1223248ED2C74BEAA01C5D77E3F54FC9BD185E202071687AB7DF237A34FF8EC 68F9EFB4799331A029C517BABA0CFA45B727F642C46733358970D5EDC6492A06 EB979FA38838F51C478DBC7C0CF3481D97C5C0E082D89EAA40B608F1CDFA408B 66AB5091F4A612AEC96945A33BB553EFDCE61708FAA4FE8593EFEABC38E4F1D7 20915F3858989E518F77A3A1FCC3EA01DD9C8412CB53130462CD5B86EABBBC67 F9C6591513BE3BC15D2427CBB3E7595BBB005E80E171D7AFD13C1612FD5A891C 150010A995427E031CF407290A527A69195D84171FE7EECA712E9851D9D85340 E9A7935A1FEB45BA622809EA9FE9FDA1CDA6E5E7651388D63CE2806D6710197C 0D2A6881200B708C197C7C45662F0891CCAD9A9AF5728ACBE2F5CB2469D928E2 B864F5F4C472232E9A8AD4DF0192425F3A57D2B9686C2B77F524EC313D590D48 14931EDCAF8735C1CB4B08E26A4AA1269B29D9F907140AFB898E3EAA675E3677 98CED3784D60B29B877732B081E484D9CBE19215C6714493B6C6CB79CB7EE6EB 3AF4EC681CB838062A438AE657C1B040CB036A8B77CD7AFD48B9487844920B21 D0400E504BAE67C4F2D72ACA42BF67ACF3F6228E213F8DDAECB9E607826D281C 3A43C200A4251C8E4D25DA001275B08BBB15474DB53384698F6A099612B7CCA7 E79705E7B354D339722D7FB197BE433899B914F229B26D96F314B0F9B4B9C844 FFD41DEFDBCD67DB395D124803411416A654B983FCBA3A9541EBFE687A7CE35B B215B29E7E03C256C51E363C65F60AEE18F6691E215010FC2532B730EBAC4C94 B1220C26D4924EEB22D09EF8F1BE08F16168889B3EE83069AE7CB835D4E82FEE BA6E3DF1CD872FC541EBF247410995E00FDE25304BC6C29AD402676B5C61E937 8AF8F6024D586E64E4E7CF28D252411706AD43867B95BE27781D107C5B970745 5FEB1E6757DA527FB5B52A00D90DF62BD1642D7F691DC1CF42EB937120918356 A93E90D237B57496BE6BD18CF1651CB12D65291A51EAE80A1CA6139C69F686A2 76A55B8136ED85D6654F41DEED31034390744DBAE86FE14CD874EF02CB94E9F6 F4022E9C0B82DC174B2F2568E77830852030C14CF5BA8E590F5D11BC8EA907A8 55F07BCE4D9CD4D0CC25B617DD3EF8810E837654A301F8697B0A476511D5329C 4DD9C072B518133E0E7EB7DC81966B793A9D4181C8CAF9994BDDE91581ABE054 002E38CE63BB13BFDC4191FB6765FA7FEAE77EFB722B82DAC934E39E1A28F5E6 56034B0531E32C17D7E9BE3612C8A7CC49DDFBF3511E64031179F6392A62D556 E0749689B78667EA75B34DF78C5335C1B2C4B13565A0A482ED35F82647DD5F1A 6540DCF61FA297F98AC05CF2D5E299A75C32E913F8D6C63EA5B3A757D4CEBA4E 1B9C6F550DDCF295EB32B74AE003C68475259034128707C6D990CCBD7EF23D66 28E61B0540103585AA0106EB3E64913462F57B5ADD51DCED87EF8B2E6A74D2CF 0970D32697BB8883B6C6F6AF94D82B74DD6BE9BE0A8B104063AEA566F50D3196 C91710C3786D29C0762AA2EBF7F00F981FAA9D2C1CF5B7F59CB9AF238F2C9431 D2FE4A48C8C209732CB9753BD7E5D3C4AAC4B3BB758C772E129C74BA81427867 8F823CE32E5110311966C24A67CD90C4015D5AD2E9999F6ECBB7BA0204E1106C 5B8768742E65EFAC790F7A16DF74C96E87DF4CF0B171AA898D38C0C39D7B4336 3A315F1D096757C0E15D50D36AD4B312BFE5056D073FC022B7C36D839713F2EA 2806B2C017F2CF69CE4A7244BEFB2C0787B821A3A2D7E7CA458A1745C931EE2B DAD2F17B26CD6A8EEBF00A88CC5BE942410C7395D3778A6A8F52ADEA8C3E9C49 8379632D536D8CCBF6A12F42AE5B3B7EA0ACAC4CCCF3D1348FA30EDD2A53474F CC9427C78157F97BD333C4655B32CB2043D3D0E7F92AD0542B743DEDBA902595 64CF73E78D64013414D21F92092CA47A6E9543E226CCDD2FB67D0328305213DD 955E313405ED85A2EB68CA2FF8C6963DE9CD59DFC1AC682D06FD05E2FAF4B25A 1695E47A55CF5E3747DBFA7476D434EC8A23641CC0E434C2AAE34EAE170A15C7 A19FEB124FE5D9D24C512F17B94B4F4D42724CBF3C746F19EB24C366ECFF2764 7013450A2E91B8720A424645885ED964939F3CE0A2143C75BD10CBFCD403C88A C82AC2E001A1D9188D6E5AFC3B453C8D75449EF851369F623D27AEF1B9F99DE3 F4D5A7D5DBCCD56BC624EAFA91DD9D19DFDE1BBE7177EE3EBD2DA15BD4B85A15 323DD9F3A0A9A4F0D3C73DF6C047DAF644B78182EE00D51EF5C5E7353462FC18 BD446D12E8A9C4B1446237A13954AE6B3F23682D946195346788607456B76CBC F7CF13BBBE6DB05979F2CEB290AE99547583E130D9D433531E4E11CD6D4B48E1 5CE1DBCCB9DF190D47A7F5AB4BA9BDA78A458F6CD2ABB22807137BED8C664DAB EE879ED9E24837D0E1B596A3EE362A37260380D1FFDF96608A99BC8E027B954C 356CA63301B1B981B96176447FB937838D2E0984F0ED55F8D387A6E45C066096 8D23EDB418F3985FA3287942F3841CBC00B3569EECE5606FA8FD2019DCE745EB BACD73BDF3FEBA9618C5D170C1F58D54F7D30F1DD7A71D33475465528400CAA1 D1A7E050C66B40D65C45FA0524ED512DACDDE3D8EAD854B1B4B1D3666A040295 06401A2FBF82EB232FD18515F020266EE95130B14DA34FC6DE2510D550BEAA8D 230F1BB9EE86B4FFDE21975D3E1CCC57871B8A8110E9676AF8D44DB91FD39DCC ED4301D378CB6417F466BEE605D2D7D66B81F682F7468C330639D5B91C7E4D6D 1E81E08BF0ED92A44C26C28FF9939F5373D86E6E1BE8AA433CC9EEDB94F537CB B26A60EA0F873CB7B5B38AEF3D6BEA66C817E67F4B652EA6DC493FE69820C9FA 75D3E60E6D5CF8FFCAD85BB2B3E7BAEBE2877452AE47030CAE5AC65F84E8A0A2 60D7C0D7CB80FBA3B5464D614DCB04BCB817C32449E60674C3A54CF8F9AFD024 90ED455A8EA2DD2E4DD35EC7C01D1D8857172361FF3F3A46C9409CFCAEC1C8D0 DE6FD246D2320141C4961FC5D64BFFF4ABC7CF97F27A0D3089A81EDACAC9DBC1 F4A8157A36575DE859E9C3274F8658BEF887AF9EF795F4C6039E31873AD9DC32 30F9E338269627FA1E3D9F6662D9056579EDE95EBA9B27A571E162D32D48F2EE B8B1F99858A93DDD4928A789A4DF4268BCE1F8017D854E70842214D7C7B740EF B787D665D06B499B2F0A777D032C1A8AEDAF03CEB581C1328666F750D141B766 96CACCFB331FCBB722E71A0EA37F7689F65356AFE3879AC7510C7BF0EA632F0E 0F71D006D921A82FEF822F0A0E07D01B8529151DA289EC0AB6444AF7CBFC84EB 71C096785B53885AA8EBE2052E0525FD2420E674A952361E6BA940A8821C8ACE 51D8AEB18783FC749372CA85A705994C427CF036BFEF2C99A00311227FF673FB 99AAAFF2F74BDFDAEE267CC842C7E89D2933D8724322B45AD1774F5CB555A936 7C6D16A5BFD2BE9E3D664109D50C3F580279875AF8315E751686139F85A2A633 5486BB09ACF82BE451C36A83D9C8ECEFD7BC51AC408EC56DF7A559F014362306 1E748132F57B51A0FC83B5635A36698CDC572D0E84CC557BB23F9DB5E5C2F30B 7C4ADC4776094F459656EB4323EED194913FB6EACE18AD42CB0884C73A4E4C20 C25DF3019500D1B024297F020498F24F70FB8C71866014D4D8B24ADD4FC71A2E 55EA665EEB5ABCBE50B9B2C9FA6D873BA9F94181415CBF458E2D57222D2C6CED 2A2EA53D1F0F247B8232B6197FBF9863F5A56A452959991E732E7AEEBE1545D4 43FC466876DDDBC727B5B750F4FDD00123CCF7ED3772A3DF81F5B32D540D8773 0C4397C2CC91702A921F65EEEB09D07BF1EA78F3FE1832558E81E6126C5D8C0F 830DA4B720D19CABCD3A971FB99E574E6AA9F48D08113695439EEDB768814581 DC37D8F614C11699C2C2A6CDBA47876BC457ADDD42E5842FEEC4CE55EDE65D69 B15219D98EDC59CDC9A748D90A96330AD58F2E497C354A055B7F9E768F76B9C4 A8AC5D17CC6ED2AF7430C862368310DA8800CB48D139EDB94712FE10718869E0 4B354FCEA663D10351CA64FD61B48897BE79A4430FA62EDCEFDF5680341A28F9 E967CEAA070E92AF65F20D782B7014ED6EC9FF4E0CF79B736A45051AE2B4F9C4 72901A1CFEAF6DDFF0DA526D0690D153510AB6B264F60B18B3452F0ECDE81303 39BF1099FECD24F134BFB9A3CFBFE18E2A28CCFA3CED0BA7343195D79CA0AAD0 DF429779F5646BC5A2FB31E62E6B54FA518CD36CF07B9AC0A14AB4348ED8CE63 822B2A4CB9670F20160A6B2DEDA9610BDCB65EB8B7B8F788566C9F5396A2A27A C24A1971C20D2B61384AB4754A0B6923638FCE77494189020A00D4E0C4B74D1C 411C7E67A953A18562D3FBD8945B92350F3514CF49E654F66426DF47ED97952B 31C99DF9FB9CD002D508E7B67B0E08932D7C0B6F156A19CBDEC4301AFB842EB2 A7D2AAA4D1C950CA002EF46FF4C562B18C641ECB0A3B2BEEE18F71B802E61D9B 14442F7C8DACA0356F47A8E506CBFFCE8D73BBC299922AF3F61DB7023D5E46E5 A3979A744CB2FE7E62A82011F81F1A20AB9E3E40043352F90F452C8776923A7D D7C17681515E5D5FF5367C53E76A0FC10FD90A3CCBBFCFC77C7182F8BE09D24D DFD4074D16FBF72C7CDDA001AEA0E0E85493D4A42CEE06E7965550254EAE0320 4F889C3A258D4B6D95B767975862983FA380009608F3CEF60FFF7DDD70261857 4CD79986B45A5F410381B82E73CE336034DF790EB65105F26267C602733A40A3 633DC83DB60DE8233D04B020D72BB8328789B88C0660F7B05D9D50D12EE44FE6 1F0867C229671BEB4630628BEB8E92834FDDA2996FDBADAC796CFE4E50BFF3F2 DA788C181668ACE87578F820AB676A87B39B1C02C02C6B490C9130AA1C73D66E 8C8ACE03566C993BEA9480EB02CC7E6BA190F26044D7439C168840177BC4413C D07BBE4B2B1EEB29CCD5E2ECE2061494B066D72CBBC61200F915454A832D33BF 79A90E300BB6B6F87905DA6CF02B57B71AD4B1C074EF12980582E4E4C0B71778 0C8700BAC33CB2A5B3CF672333F1A21F8C5854F93DD69BEAC95C0FC70580C00D B3998302AAD2D2C31C294B90EF9DE2738B365ED41E32C7D2C6A074A40B731DB4 4CB4197A35C780A1D264324DFAADE5C8429D79CE294C2EF299B97C27C942986C AFAFD1E620F4BE1BDC2EF1FA6335CDFA0E82B56C9CE9ADA0F3C530E037D1FABB 04B51A2357064A32E43B7FFDC1746E29BEC477B4BCBAC812B2EA2DCCCAD6C668 C52FCC64CE4028DB2728CEA1B9FA9956948ADFD03C635FC113512195FAEA380C 0F1F399022C99DD3E39951B9DEED5A9614E1FA04FF05CA14A9F46E95DB4FEAF9 531A63973FAF46C3468E03E598441A608C5DC55822EBAF0CEEF9C4924FC71BB0 6E309B1B2DBFA4C49A621E5DE8E410E62B 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFBX1200 %!FontType1-1.0: SFBX1200 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecbx1200, tcbx1200, labx1200, lbbx1200, lcbx1200, rxbx1200. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Bold Extended) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Bold) def end readonly def /FontName /SFBX1200 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-223 -316 1694 925}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E4875AA0E2F461BA16EADB32842B6D00C76F8A3359BAB9 9CCDA63EAB4501FF88DF4CE0D9DC9F071B528726352196D1D889EDDDF3B8AD19 A05A98215C1A2AF1E98BA6D25E3EE92459564B169EE8915C4C3A77E21AD623DE 4B78A134EC9973C88752BA636665292269AE953747C9605B9769A15E719E8036 4E368E46C8FCE60112D1F5FABB556AD834401D6250529F3A1BBAA7679464B857 F4746C58E043D98AAFFB21E0368B3110A911F98D0C1B16A668D8B3CE65260AA7 E9A3FA32A95349AF8AADB1AE65C05D8C83A10ABB656256C77C42E4E4E7DE2DCD F47BD54EABD080A844C8E3D14CC76E40490EAA3E94371067AE92388A8875BCDE 93EFD646F6FEAE17E4C52BEE62060D2107B620D9A948B3B3D8D3E06E63A714AE B5932E76384D2E2B15A5A7827EA3A3C15EE807555607FFAA1AE58C5A95B6956F A16D46AE1028B81C056BAEE21114AE2C87B3419663837BB87F79416D58E30833 1FF10EF0D5B2112E088F63D9E747D792CFF5B74F2F95DBF5C54245C517F937BA 90AFD6EAEBBEB6707C6C751315331053A0BEE3678476A7BCDA1F939D98923679 067F136F7824411A8D5148998105E3E823D55A18FAA99F4AC12EF14C4BCA4736 E465782FE9E81CE4F3BE271CE14CAC803470BF4D71CAA1DCB8F66E98C454EC3E 87EA1A0591FE3E17ABB7966756814704B71BECE2BFAC375ADF5FA01E47A50599 153D7ECA922399BCCBA829F968AEA1FED8736770EEF2A57C4DBEA8B6AAA7D199 C5ED748B1E66537C09C6E74557C374075B6AC5FAB13DCE13ABD5A5329568C41E 6212F9DFA1923FA3C5F286F172BB33A5A288E1BEC5AD2B494AC912B6E1810583 74DA24E163B47A7A3BFF48BE11C88F59AA46C65BD88B93A5AE30FA18D8F6A5A0 FD2C18FEAF1789725CFECED7CF1C303C79DCCFB7464618FF70369AEA783AE82B 07CD64F4C202A4A34D50173C7943F254E06ACBEB75E343C61835C075ABBB15A3 322AB1C6EA139168F5ED5537ECBF73F4A2B27B0E3D466810564606FE190EFE3C 35EF5D79776E1B6C45332FECC83C597F809C50C18809CE52159577EAC0196247 6F26910172967E3C046C1F5388F1CA3BFAF0A16121292F47CFDA5A247541C827 4A69364F0642B613B761C5E02DF232C2F7C5D27D550C7ED55E9C83BA44F492E7 77B1B2D3DA51302B6E63F1AFC54EDE0549603C0727A6A2D5CBFB3ABF8FB04C9D EE818B18C985F7CF4640B2C785545D50E2E1BB5DE4ED35EF0FC69C09FA3DBD3E 34E2DB9A16BC518A830AC48CE592C87CED6667D2D409BF5B9F0AC6085CD88AA8 542E9A95EBE2914CD7598D47E8EEC552365442CFEA7D0CCF72AD751DDC5C8FFE 3774342D7889B8353D94C752CC52FEFC1238F36B24B6BB7B5DA1A5FFD49F86D7 386E2068818A09815B4534271525E3678CC52F9267B4747A09594A6454C24400 333D7AF33C888C42A3EE8768B697E6F8521F35DD3F42B831C09273E87C2DC5E6 BA25574158AF4108C813BA6BFD1CAA87D93E2DE09720A6606E89BAEDCD9E573A 2B023352069F4CA328457F8DDE1B9A4E296F17D9EB27D18B97E50E04A5B9DB36 4BC3C8794BD9AC20C1F9CBE45876DDBC0DDDECA8A5213DA2B20F4C03FBBBE1C4 B0B00C0CD028FB402463F7D6050CE676F06EE0CD9715C17B0C93BF55328375A4 258726D24033BBB99B06AD03B1CB79DC3DE6C212FBDB21B3D8C0D40401820FC5 A914353F9B574CA2CEBA115413B1E55C7C05D2FCB11902D12D4F9C352C158ED4 87E2021E75F777EED00509528AB80CB9741B98CC31553A5965DAB246145D684D F5CB469E7590E8F457F69F39F9492D497B78B7EED0FBD07AF69FF89DE6816D09 DB9FF97666EBDCCDC34300C6A85732A62B2EF5319D0983FF582D21C9BA5F3569 5E2DCA80F98F0635F065319B8C67E7C69BE659A82664178510F3B7F295D1EADD AE00977401B162DF61D8B578FB41038FC1F8663F7AD70050E53E94BA3D5A8C4F E889B13FB2B9F573504CE5E68A6B433FE0BDA33FCCCADB90FB8867810AAF4715 E339375D60A52B35BF360B756FAB3094EDC855B8A6E7ED963F35C9AD1CDD5B5C 57E4EDEBCE7831E2738E444B9F0D0716928756FC9BE401428B1B79DCA8BE152A DDB3A778888CE3EF1EB196BA3B116E3BD08C10F4DC9824AA996680AC3324AD27 BB940F9EC37C399F54896A4F2FBF1E967456AF84581B22B6BA92129B71295D0F 02753A2401D05669BE839B7728FFDF0D51B2F874A2E692CF209BD8B60144E7F1 BCF951C4868A41FF31E0205B591711112E7A4517FE0E66A5DD545A2B7E5637AA BA9A041846007ACB051E320AE3C1D8CABC65EC82F51FC1F750D62AA041C1F724 2082F65438EDB14FFE0A8FD56B98581FE0F47E8AEA89BE6E5D046D230FE0F68E FB25FBFCA9839C8D5D677701882F91D1E51BCDE1D62E5CDBBB7205AA2A41A3CE 4A3F375E7C5381FC48ABCCFD1219341750DBAA4E7CF6C9B2587127654A325616 A4EF021B951E5D2B97C7C741D1D24B4CDC6D666CD1F23554FCCFE888875F4E3B 9A8F984CA1410C27BA5DCA8E6B86BB4ABEB9644731BBCB0423A3666BE5F5029D C6FC0878C367E3926710447319F971FE1312FDBD0E69CF124A199DC1E40ABD96 A801761FD57FB10553327B08DEC34AC1A2F3FDF20CF64E7B25E759651995BE07 0A1FBF490CC2E0006362003FFC561F3F3C91C1AC68C4AA614FF276B14DAAB44F D3C9AA412D19E7FACBF5FA6F6EE86919E2F5527D6470B488D0E10971B966F30B CCE77DEABEE0980886ADFECDBFE5B1D606E8E43DDE1E6173B4744E15182125D8 B1F39474686F16F1FC347103FE5AD10585DB99D9BD20996BB38321DF2E1D3CEE 260535835CA5688BE1F2F92341A948A8F8DD351882D1A0273105F11543F8133C 32AA1444A5BCB2B710487F931A5DCC2D0757B047D810781B184DFA3F457C7E26 89DF33968A02E181AC9679B557795DF834956C7787A79BF61AA44228318AB1A0 3EEF383781211901B3610E93FB7771756E08D144D08A0BF8D4AE2F8B97FF186A 9440C75A4BA68D6636BE8B11BEDE3D3D4009CDF5B02FB5B7F309F65E975C66F7 10613A860B1BF0E517CE32D19CB928BB457D5BFDA26056D27A96A36D90C6FC51 7EA536BC895C2AB4670BBFDE5A850CB4A138CD5AED48121E43CF288B47CF93BD 0040BBCEB10CF05203F491CDC9B18BCB322491729B34256F265A2B5115534C71 42050781178780D636D215F7E490E510CF860E45C6C33D9184ECD1CB25682D2B C5865B762597372D77AE11D759906021FE90412F75F269B6B1980E99FD904707 A0AA0A5480D5469F07521A66064356B32593C2A9DD645198858503F7B6522F28 73F8514286904F52B21BE73A179629D97352B591DE93CAFECCE5D65E15BD6F72 99699C4F379F634CC44BC1693ED3D485899E599AE1711EAC252F6869C2241149 91DB61CD6B9851361DC744F665321F1BE2C47654CAB7DF439D9E1A25E6FE1530 79E5D9F26E12F8B387AD8459786211462B52ED03FCC0B2FA49ACC99C08776E1C 31C99B7D625A01C65C9A3FF0196E9F176B9FEC013516E4AD91799B6A9385829C D085830E7542FA021776CFB75A80A16EF9689F4A9DD1F2C09E3A49797EC537E2 6EB0750C65041A5D2E349CB4264523AABF9FA1997EF34BAC1B0C138B253B0548 60006E9795C2426725941A5060342CD11BD4BEB5DC79DFD554E4686CA77F4756 7A9AA1CD0E58E90A7F92FD1D0799655022E2D14BDE28BD46D02F878A9A25C53F B2C73E29A912F43FE4E810586CDFEF3BA63BEC6582059C00DDD0E3966C8CDA3F D999D4E170B78093F6586B74CF297873C16191B5966BA0D5ABC4AA3A75632221 6825EAC502424F7EAB83B052F9E6DEC2012FDE39B56600839DB5076494A2BE18 60BE053D6302C8E8A25320223FD2DBD94E1620DE8430115FEE34C3A4EF007A05 470F36724F382CD938C8D3F127A14CE01541C5971E763528ADD3CA5E7FC82E20 F388D31825D18ABE504041666F09C8F83ABE33C48FEE2179DF6FB59C264E9CDF B2CC8D0A22351192E2B3A5E4218B0B89C65A9884FD79C3A4D0E7F45181695BB1 0DC043CC9F2F2871B3604ABEA3970BCBFC6A61A485CFA7BBBA8EFD1F8CF34144 B09F4BD9445BC44A443B66E2FC9C94D5828B9A2A19558DFFE37D8BAB60F40819 48E7FACB550AD749F57D764D869DF6EDFA24BA3F8E2B3489A004493F9F98CB9F B33C6E30C092741BA7F80BA97A9ED4B5921A5C4B2B0B8786052C5E882698376F 9F3762D6CE21EE6AA1A98C24392639AA8A5DB795504962F8E02A818F8F3A59EB 95637073FC26EF3349C67E25F2C9C47C9A7AD7357352EFCF56AAB007CD23C7FE 19F990437978DE17270715E6DAC8C7C7F716723D5092244E49336B0C7009C393 3DA6FBCDA4766E5922B0A0A5A63DFEBB88CCFC9E4E593E15CA50E062CB329E8B 023894B9EADA0A2BBB48A07BFFD97BFEFA0FBA554312C97BAA4B8FAEB024C42F FBAE30E8C0AD4E0C511CD1C9B88442FBDD83503D108C1B4C8803BCAE80EC5943 4C7F4C0B854F7DD165A6973175447BB30B2436F6232750BBFB4DBCDDEA4F18F5 BDEB1FA522F3617561FEC7CE209C3C3CA3B078ADB2F5168DB2F652969D519DD9 36B2C6047782B4548BCFE807A1F7DAEF175975472DFFC1B4F9F9189239C70E41 2F3EF72A59F1FF0441EF2F23E27C7F9541C30C84430CA1BF74A91445818F52F1 B6F7C61A19AF5F46FE2E11BFFA2ECF96608F1C83B9A24918730C0FC374255348 582B5981B64619BED151131E1FA003F01AE35059F68C25740F232E444BFE08C9 D3183373BBF182734505818CD484D14BFED98B5D61AC7608BB90246A76F3B72F 5895A6BBEEACFB97F60008C8EEC8B1FBBFCE771549B7C87687012BC32C93A581 900487A2273B16543C8150617EAD85A52811063A18DE1DDA1EDB2DEE1D224BB5 AC76835D94E3FE7A9C1A4F6BA103142F7EBCEF2B5445B1A539F37340A0376DC9 95592D007CB15ED7A62D97164D16D8E04E5B27C1A70C3320926A16735D639194 E3FDF857E2206DFCDE0AE9FB86847A3405A668FF968B539014942319CEB69F2A C85B506D7677E95D4842B17E1E882BF1B8CB4A086A650AE3C637AB0F48DCD542 D8F76531BC9E93052D692A88622F59290D16CD52F115E3FA20328EA719BDC4C6 1AE70D7834545294455AE610339A30E9D1DFFE3198CB4DE8AC3CC9FCB3772DFF 8130652558034293B2FC8B9FADB88E84025FA6921A10A84CA2D3298FC4FA89C7 6833DEC9FF1B9449A45F359F845163951883E3B184D344DDB28A38936BAF3536 7849ED049CDF2EBAD16656223A55C9E24F36B6A2B5D3DBA6D10E70EC7D957DD1 1789AE917E61CDB10F40D5D0A964E3CA746F7B19FFA3EF4A1695FDF55750F35C 875DA81AF659291A239C1E01C1C54F7FE078095C319BFB87E2E004C5C20438D8 97A538D89D82DC95A1D511491939A9F47B5F2D18469D4ECEE23E1680B0037F6F D2AA662E20F4C6AFC1072A1A22806BABA793640971F5CDCC254962C6CBB4895B 2AEB007F73A55F7A99286DD127CEA81A0F8CE2EE275A371776FB79877E9A77A1 671D3E3D9D4FDBC9B58CA131CC354517C3D95CE763FAE0900E12C339FCEBDCBE 9300AA282A2EF6C9CD8EC53EE4A426E2818E9B48A02155ABB970889798B92A37 0CB1DBC3E3A4707631D6A47FD43AF28CC1198A84ECECE0905588ED740BB8937D 8773AD94B834074F4EF2996A399A791B766165201CF8E3386863CB3DCEE81AD1 E41967416E1FE8C348E1AB687ECA58A3DFC699F91A8FB37E1281E36D11B5F8C9 F89BA1AACD47D5706D9F0A6A523122C4E5140FBE6F534C893D523EB780560E64 C819A7DCB61420610DBA35BE10A71D241736D55A53F94F734BBCBE96D74CD18B 50D025D8595656ACDAFA94C60B1DC71E5446AD563DFD4CD5C128AF2DC718E266 91A8CB3CD9C85C793F28CC845E0B9CBB39B0166328315266C0F5724566F3E762 FFDD4792F38344E4DAD253F6FDD85DA7B7AC84DB9707F72A41B88EA4E678EB46 8ADAF74767FB03181AD38B4DDCF3080E2DE58623B2B826EB1603F269EF8CE221 5249880BF61BA0CF4EC2850125FF3B85286A86539211F1088FAA1349A347F1B1 37375C37C6298315127BCD5387FA69F268C69F282C0403FA6A564C2D86BCB101 F09BCA1BD769969D54CCAE2C44A96F647073AF9B3960F98A4F749DB087DB932B 0FBF2E21EB9666CA339E375F308538A8451EF489EED7D3FEAD0F1364600994EE F60A8505E00CD209F6F365763EC4B50C579A65795A2C560781C92EE14B5FE749 AE64A6666D6F8514A8F42F8253421DEDEEBADD280027034258E151FD6D9A2D6E 64C3ED9BAA1996F7A50176A706D60CA1EB8A4235A8ED0C5C2E15E84E5794B28C 88DD46AD9C4399A3B1F14B1C82179F5137F6825D34473107205BAA3E15F3150F E4C2AE4B9E985D02557B2EBFE0DB80E7351CA240C9AB7C5AB0F7D0F251748A26 9FB9BAC734FF40956EA6F70CFBAF96C839AC458F135173B7A8A8D0130F27F494 FA4EF1F3ED532F10127F20FF3C150EF82E3FE619FB7EE65395F82D7D8F147693 10D38B8C0B82852C0E40A45E806BBA327AE1F46F91CDAB63282BC437C6589784 EB3FFD52113A07B4F1DD4E042B673F4006F37E3698DD216819E3C86A6D4BC77A A9CAEFD6021E95672E290117C783D9E81FBA6978D5CF2A318BE5650B4C76C3A8 CD4E50982A8B488C1C6641CAD95A2B7A44BFA54A0C2058CB0A24ECCCF40FCB0D 3A837FA49C68D2F5E0021FBA407D765AEE96012AA0D3284EC0F13149CB8969F5 E84699D184A27FE98AF8910F5573E4E5D40D9B1A32366E272328ACF70A793778 D647070FC79D85C59B170DEECA10CF4C06C6553AAD6E4BC6079179BE910C9462 45DEB1F10DD24AB488D5BAC3188A8B640E6C52B9EC4D1154426F706B17465B75 290307AE73E6ECE778CE28FBCEC2BB6A9CEA78DC92873DCC986EE325F9F09354 6B3770F16E220FD46131B9284B3E6020B4AEF2400A7411F1D9BF7699B1927E1E BE6A3276478B73F19426BC53D97B40BDB9C863156EC1637E7DF13EA687834689 DC47C98C32E48D570FE2E12260364701ED8234B9E1E5A858242AC7138493DB18 023E18ED0ACF86F801F15B35887A2340E21AE7CCC647E7888556A5C31F69E935 55250A4579736AA817CE3DAB393984BFEE7C64ED558D16D2EF84B7221BF97149 8AC6B29DFE3FE833E726B8EC951A51E13DDC00DC459B697FC541D2FD68C16252 824E10F5F3AB39EF8DAB748BFED0734B8337921F147E34C38DFBD4B9F642C69A 5017F1099B7DEC38F4B7AE444ACDFCC96EB0815A8D68969D018429B31CD5ECBC 2189FEA08056D280F09997BA048516FFCD6CACB3D5A1D59F87076955C6A62D14 293F12C99646DB524CE83A0DD71A650D4F57C71D65F0AC4EBF2F99A472956A03 156F8809020EF67782E520354999BE9326FC6D40B26F1F09A31CC2BB74C92AC1 A0BDE44FA94B4134A70F4B3482E8CF028D9F976E90C6A369B773AB2E1F62D1F9 A090432991BFAC975D0AAADC2FA9ECE0C669C03867B0BE4F643EE587CAC33FC9 B0AC672EB0F1DBD30806980497115BF7D1094C5617868C8276CB6C4BF970EF1A 8A50279607C8C6343845987F024EBE1308A01D054321E6F59FB84F4C5AC640F5 59306794B7BE0A5F20B3026ADD240904A49D06B04E7B77F70EC44C8500DE770D 89174DE274188FB0A04FD51F52FD2F6DA950B68EF6AF1DD0DC39B8E388870C13 7226EB16D3762E4F749A571A3431FCA257D265EE6165FD59E8F50CB46041A5C7 8E7D717FE4664A10C6B426EF147ADC12299F208AC7B3FA572F23D804C49181CA 97A3C61909D66BDD52A6D7761EFF3FF40158EFF60B069857DEA5B309DC42832C 04D728E3ADEAB4B87DAA57D9E0C64AB48219EE6F3205BB96D6E7F5A88F2C3F14 B42E6CE76A2EE5AF02348C047F0832E0E10A43011DB397608FAF943F41B7B6C7 F29214E8FCF17AA8D2372CDC3559DA8FD0DF67A10B68E3D164820FF3278CE9EC 0FA1EB238A2554A770A031CBC2A756A01A7EF594C4322E4F5988D301566FF9F4 DCB0A306D4D73780FA7CFBE5635FDD92A066A79064D0B13EEC603C4DEA250566 1FBD1274FF7D5C7E8DD9DB763C77C8D291C80031EE6CCB9DEF18F9A1736B5B39 3E959B19968EF90F27A2F9AD203EF67189A0100AF38CE7D1730771332BF01172 35702C31FC2D25B6CFBEE80B1EB0FAC272C538FAD877C8818CEC5F7D18EA999E D082221BF44D9AB6942B81BDBA976FCE8988B5CAF8F8273DA66A62220D500914 B57387B802E9818A579D618FFFCFC4E6EFA07A888D05FF75CB1A6916EAD6F4BB 34D2423CC7DB3A925532DD128396B3663FFD8E249635D4311224E97ADC44D1F5 5AEBFB76777454D427744B591283858C1BC2B0915758B7D2A196500DCA2753FE E8B3A81982815A5CB16A053495F7330ACE19F67E9196072E4EE2E5F3F0D68E3C 8BD8CCFDD23B312FA1B580CB3BC380F9522BBC48F16E339F0417C55B71C4B9F6 D1DEDE09BC4911B6AA97485D153FF97E5F7726F9AC277C71E5E111FA7659434F B3497AA4F009B8CB7A33CCBC4381D383D3F1C35E44AD50898CB0B2DD07B39B43 8578EB7722F2C9B8D8C6DE818C9CC47F6262D1D733A0276159502CF644E1EEDE E1059C325D81EA9A3F878B38AE2B5BD9DF4382D96DD6D6E4EB7F20BB244A4DCD C1F5290CE15A92875916C206FC306E671A457155A724D00985487BFAB9991F19 BFB00AD08AE91B3DA1E5BB9C082039FFE2F6287C153C87C51FB0B26755DE5115 610081CA4A3DC88377E3C47AC8734181777CAB9BF9C20DE216B33374589C0743 FE3205BFB6711F1026A613D0D2F8A31FCC96EB9349B949E873F08E0F2FA31956 EF2C5A52204C7CB63BC616BA3D40463B74064D2F2DCD1DEDCD3C5C8AA1381F0D 4BCF321B86D262AC80738AB6CDEA6226D0B3E729DCE5D211CB05EB43C89247FA 157F6FF900476C35618D1948E7B794F04A9A9B7857982E986E495B8C7B0DCA15 EC6F5268A03204A5D5FB610982FE7E46031E9683C215186A928EF12BAA22B495 165E2F4630E3BE8B2565A93B25C6893DD2538395C0E2E2EAB9CE383B7C599FDC F54C6B5DD4F26BE7E5D75EB726F41C97815A9ACED8A507B684F50DC8A2CBBEBD CC9EE9ECA84C8FFFCC88DB3CA3215E9589501258C31C5159E068C96E35F4BA28 952EFD702AE621EB7B3A41FEA633AE6C255C3F5C26F97753FDDB6CF5D7D9CDD4 EC5A431B95B15D0A11538274C0D8C990211592D6ECB798361C556183403D5449 3E29CDBE7BEAA938B9B1158E5DFC8CA968EA5D22124C491DD1959395C58AB32F 79BD9CAAA657A12DBFBA1A1503E5D98B79C41ABBB97B96B71C4A255DB698DB9E 6748C0246D33F464F05E48EC9C5EAD915176F4017406B3A3AE255057A4BD485F B1F927146B8003D2EEF475A4AB7F4A0D79321BB9495D20AF3D45202A647E7E60 D516A55E18FA5386EF83D0746AE9E814C7E9B4F9990F1EBF3E266C7E71C5F200 C4EA3D625D735132BC55089A05E250F979C3A4D0E7F45181695BB10DC043CE7C 27D2039547E193AFCD45AD360A543C79C8584D7296CD19EBEC0DD982D4594813 366BD4DE622AAE00CFE404BC6687B7E22B383568C40073AEEA66480E48BA463D C071419FCEE9921F2A8A6A64281CC10EC4FE555D453467BB4A8BD75F399C62B2 CD942E7070260866EC91C4B9326C993E4FD1504C60DFC13AD54B6CA0F5DDDDE0 7EB16D78473323BBE6FC1AA09EA7D3C5E553AB897E1D4B399276B6D8FE2218E2 7EA406D7B574C8411487C2E6933E1B3484956CB80E38FE4E0DC2EE4188BB0C9B 27AD6233483D99432A7BDF64D8EE7CC9CB019253FFE877D59F653E23B38B5C79 5B17B16CDD307A3D27492EFE2421C2517545ED5CF75EC6106C4A149C4C3AE927 F9B762704A11A21827026F5376EE320D1DC064A3C4B04662E7ECD18878E2E442 BC9461950F9DE73C67B049BFAEA15468100D83513DB6A923CEEE5233417559E1 32DD38152AD630F185A3A8560E0A3B15C570AD37D974AC8B12D71190A0A32E85 4275497E30AC3F2D05C451564B82DC3F1062E543EF66B98F9F45C2ED769B7836 8C078579FF2AA1B7C85B6AED675963C7D765356072389F7BBC26102990E065D8 BDE6B26B32AF11B5A2734B53BAE6049021BB09FD2CC88C3537CEB2B12338ADB3 18FEC4A480E0DA825FF25FEDEF8FC4C3E122716ACA153D9EC6B5E7C71C69E821 015301C608646847DBC26827F2DF099CCD799C26650A5D416859314C2DAFFB4E 1FDE5B9CF8BDEC88A1571690BF85FAC59AA1FA8FE95129C32483AAA62365246D D5FC829DFDDA7452FF6111E9A70E604689DA20770C1058302FDCDA9E151D2794 A314A6F3FE8692668AD3937F62F88C61D311CC1CADE80C8F4D33931BD1EBCC99 455232455B37E8C827064F2A28601D0A430E3DF13755DC3FE9ADB10E43CF9681 B3BE14A40445359AE31AE795C6BD00CA3DA85D543970D8FEC4EF92A4B81B8609 B0604B27C67293E78A4B3D1807CAF0EC079ED6349CCB9C2B710498752E1B12BF BFA8DBC7EA37F495833AE0B8065555C1CA858A047BB2ACDA27D3E0C38C892660 23041440BC6E4073CACD4F098D7141897233957229A5327DDAF0EC7A019705E0 5B87F072BEAB110308CA2600DC5FFA768623C003B3A0314797BF55C77F4A5C06 6BB857D8D9B680412B9305F1F7016981B1883CF770E95E8AF620C12F157AF42F DB1E32A14E215382C6DC9861D58B77BDDF3319C72AF1DF8B33A3DF2DD7922A80 782F711119B49C0C5C0C9D4BFE52845A80DD9963026EE5669AD8B71D28D07DBA 048E65ACEFD3BFEC468CDED769E53AD1B5645F4D2BA693379DE10B9145B62513 CF9E1059BA3B89BA549730FBEB28F4346B25047497982E11C4FAAB972E9ADB64 6C5C08BB9C8438B785C904F2C74C81CACCD455A6604FB505DD5DCEB30F3E9F9F B5BB83FBD4E7B60DC1EC198579CE16F04C717548AA6F3D9B178EDCECF9E5FF11 960143C1C3922AB95ADD734EB957DA2367D7E9AACA5547EBA2564942BB5CADF4 088CA01E373BFBBCC096D61BD7D1AC9E270A8F189F894A6E1140FBC3800C3ABC 0EC9AE3BD558D7026DB6D1E2CF5F084CE637915A6111FB743ED36DC32D2E5A6D E68CBFC7118211D5BD540EB1C86A5C17CCAC5382C5B61578D0463EC34E04962C 501FD7F8C37690A876DE9B192B57FD692652886BADBB4757A9387ADD82BC1A50 C0959E57AA85F558E62F648E01E14A7AE8A1FE39542C9CE6A369C7C664CFBEFB 5381872F693579FAA86858CE1B906F678C78056BFCDAB3C43651EABABBC30576 4A9B4643587E8F5ED4F4B32AF2DAF2F622870F01048F55CC3673EEF227B94BF9 416964EDFA827389D260CF058844C6F14D2A2A58188F64D1958D36E1701A671F 71802D66FA7EAD71625AFA29921B1072753E04311775DE97A802E45496D7CC3F B9034C42FFACE6F501B9158CBABDB644A5D4A7C53C15C4145C4F68D392DF1D68 41D7E8A520CCBDCC387BE1304D3B4D3A16CB25BB9EF1768967EF8295F44F79BF B78621C0CE5D83EA886A3E3EA999EFD5190040C5B1EB19B01D57A872F7A7DB39 CF7A961FC50A1AEA084FD0A038A9E7FDDB0FEE9EDBE9205C3B59D764011D8F56 206C3D8F0A4692C2085317A27601EAE18278C893D1678E3FE39354100653D292 C2256EDE4576CBBD0119514D98A465561B0389B64B2C49D680F8AC65FE25D9C8 3A343502BB456D6BB91CC8E31084024D0BEAAED5C9848C14AA70B8FA76773BA3 C375800C08DB38FD4FB56FE607B8ECA12177C12D36CD313DD27D79AA1B89FA40 0DB65786B5D27B03A5AB134C3F01FA095BAD166CB63ED95449CF2CD2F277D1A7 6BDD781F814885DE998F9AEBE37DE5068418F41A007E61CA04B79C0B254C9577 CC78EAF50FBA1228E035A43AE8CE08EF151FA9F299C80FDAF32A5B59448FB8C0 8189B1A0EC57664218198C2F0C7166F11062985E2AFBCB6A6B13781319C368D7 58D62626129A81E7ECBAC9BCD49A53C175B7E9136C01E55B3A090E53E8095C68 4470B7E4404F088F2B37B3D6B877E6C3427F516B8A9729BCFF47D5FF7EA0CE2D D4B470B5FCA6AFA4B308B00F079E154441A2FB98F9E616049433F98104E39C91 A67AF230C09354A99608ABBEC8F6ABDCB402C3DBCE2261883E19EAD47F38A85B 06C56087D914642226FE916DEA4ACCADF5182E7DB98B131F138BE2AB5D934247 F2DEB9060372E41DBC547E65A35D257D03CB03226F493E64722AF965ABFC659D D03B43F0240E07CCFA61BB4E4F8E5594FA9C4229B103558181E62815138428ED 9A72908D50607C2CEDE8A8642F55E907D237AEAD345A8E4CAF617AF5A8B7F1F9 27B1669E80C8E9394B769AC53093BB324A2C2C99591FAD263EE6E44E62A550E6 3DEBC52CEDAE2413F873E1B50BC41A730E8795B5A0DC0DE58CE50A71645EEAC3 483531E3DF9E5697AEA90247173EF28A442BD8B84473B4B01A8481D71578651F FE6A23FC8529F418B71E09CD503B0B124CB24761D37AD7EE811CE8CCE75E31A3 79E70A7EDD762D066732FF3C3B14DA7EDD843703C4206C04B7C52F253CA1559C A4C3C32D4B37D081EAC8AC5D9CD10844C88A2E2CA020D92D27A6D375B04987BD F57CB889915B31FAAD0D9482CF180A830D08C4509D1FD950257F5A4FBCDC2180 25986406968BBBB1C2BE8F9981B2C52A76C46BAC1F7A2F40F03384B33BC05A3C 72E07AB7827025E9211523C2F918602DD663569E71F75CA42E74BA4BB06A252F CF5F1AC00349F2B585ADA0247AF4D8A6BA18F7EF8291EB5739AFE2E5AAA52D71 F95737D480EFDE8750F835436638B2A861EC7A0FC3EF07890478691A39CB1107 BBE15E009F86C2F2DBA7F2D34C0000F2F312A7829A58801B88E85661B6483148 6A698EF5C9ED292853DF376176AD76F2D670FBD17C0E2BBB48A088EA987A4FDE 2CF42E2429AD5EB190E832214A3172F61C21E99A838C83266B54A5615C4F6E63 203DC8D40FA5368CD46BCD6B9E508E674166AE5A8DFB65C0BC71CE0CBEDC1AE8 489107ACAC4E54C5265C7FB36F3086EC723944D8D464C94C6EB71D5311987CE1 2AC4C76C9E82956EEAF969526A04C103831C4F0CF756724239EA5AE88B7C73FA F13FF8DBE979B784F5409F48FF02492BDB5552535D9A73D8B63882894CB6E03B 5CE7FFDE739E4E2E3414DF06BAC7BB3E8BB6645971E0380CAAEAAC390FC3E563 8C3C69B24E0ADEB2B5DC3E2023E8130E124F90A7665895AA9D4480C4A2673BE8 A87383770ACBBC32D384134F66AA9EE009B340F669190010DE80F9A0ADCF84A5 DF8A279886190E7979A6250E299E7276DE23F1773AA1CCCE03D0EF6385AF5C27 052879F4B3EE50804EE513B04ECB704187A64812F3396D31EB815D261D2DD0BD D876AFEAC110E9D77FABE0BAF01F29D80ECE764C59C2EFFD97F4CC177309F156 91BFE521DE1DA426945A1E56563410AEEDE786AA380F9EEF9D557D07173E4C2C AA863FB1217806B03A4DB95150E4DBD6F4A61C6840DD45D01D56694108743870 374F8AA60D4800B8B0BCA6DE3EFD9A6EC61B81BE9E0624EB9C96EAEC410E2B35 90FFA2F50E4B860EDF1C82D8B83CCA1D58821241CD4C9902722344D94B67CEA1 26ED773821CFEA3DC9DE6541527A9B52F8ED233FC88242C23254E36869006EDD FF51F5992727686581F274337D31D04CEB52B02DCA88DBF9B5D4D23087FC2960 B45AEF792F7CCB4CBF0AF96000E6FA1F1AD338CC17E17E0CA6F629BE3174F64A 01FB6BEDDF2E6FF27F49564475401FDBDBDEFDBDFB42EEFF2C755CFF783714DD 8BA2559F5FC2111AC51724AEE9BB951F2BC1C91DC0CF5E0508AAB6B593B02409 C3537A1E38519F5EF4AAD6612EB3874AFF6D014ACFF90D3CE1019A204B98827D 978E1D60085B5F200688334556AA3505D2E9AB21C2BCFEA68EEA5A678A5289CD 2F2FD0FE19A31DE382A0CF17E0FD80229DE45031624A248C26519058625F9BE8 1996F7B28280E79CCD804B61DFAA3503BFA50FFFC3D54D966E0D4453A4ED35A5 39DC0B3CD4220EE2D23C091FF858C02023FE6F0D65B0B7F0508B26BD4B075B8A 212CC7282AC4F9551BC395F57F63AE49E45DC671B522307F9467C1CF82077AC9 C414466099CCEA0BE77FA0376DC995592D007CB15ED7A629571463B79159BE99 419C569A573A79CCD72C721B16C8F2CC0EBD60C788119A375D4B645E4C19DFF6 C2AE8698A561F1E0847C93F3BD3473557A68F01C0C99CA2CAC35CEE3733FB522 EC61099BD30C5656748D8DE39ABBDEF9044295CCEABD003E6E4EDD8804F0180E 0680BBA2F58FF6B9BB8844C404A5C4555D34DA1E28C32DBF60C14CA596EFE217 5CEF13A0249D80C01E1D8DFE852B945B10D69C0557A0939B5898ABF14DAFE4CA 472D2804BA7C57AAEE8D789BC7A19BAB5C24EBF6A1017EF1CD624C0B89FE857A 8AD5CECC9D826102DD2E3E7EEE3555E0B60F46E590BEDA3812586D58C8FBAD95 21E6781272F0BBCEB1CAA7D0302362C7F57B854F2A2923CD8199317C280BF79F CE3F6461B27E1D65CF416BF435E7274DFCC80D58B99A15CD449BE9A0DA2CB13C 28BE7CA2569D3D3DC4E0ED320A8324998B80FC8AFBFBDB7BA6E908764C68E294 F0CB38DB2EC294CA4BE214D44CA4285C1A42479754F7AF1CFC91F03AB06F697A 0F99A9869B85B8EA5AF614080C564A874CA163298CEDA8225248B4CDD5F28A35 9572A1CEC2CE2E79403B3EC3157374BEB34CF018BD12A0004BDFF0AC98FB5260 D011B17482C53D58F76AD53A43E30046E870123CFB122924855642A67A99FCCA 94BDE31A8BFF2BB0B8784ACA54C15ED621A612F23E2CB0750288F0C66140E10C 8D9673FE225CF2EB285FDD3B481E31B5B5628254B5FE6E6A0AE7190E88EC8EC3 FA9F4B68CE7A5739E902B4638B8574377B3775D92F981A7E6C83DF51FBC45BE4 3685B0144AFDC37E47EAFB243FFEEEF59E6818E5507A855F9185EF6865FFB642 D1A36361B8B056E3AA2B46D186A8CC3136B1943468C6CC89CBAD30C9D5708D7E 28629474C9BB3966DDCCBD1F5CF0A1BF7795EE5AD68C63CFA8C1DD510CAAB3D9 BF8D0E29997C508774069A906E35B96DDAFD92B868DE43BAE6A0FEB3FF04F3FE FD503C8744E590353519E43498CB49A2A1FA9586501261E93D2B513D0547FD77 5357208D2E21D4251364A3D5D27E83C2F379BCCD28AFB1A9262BB104040B84C1 3AA3B5311F6B34034A1CC0EE165451A95DEE465AE57E35C73FF8FDB977A6A9BB 2D9C19FB99AE421D48CF34402D1316B4DACB92D44DA5D126AB123A22892B5214 6CC322DD3AAE8D185D1283DBD47B132EE384DDB3FF67F4C959FC39DCB0023E98 BCA1954246490A01F5646AA0C89A4DD039AE68F9C29A73D7DCF770B4F59BEFC4 2568276E2F73CFE77C698546F39D04CA9AAC012C06718F3D9F12641FB17512B0 C12D985F4E5F9091D0103D0728863EE627566854C6F8A68F80EA54B605DA2E67 A75DA273DCCD842275C8FBB6003E41629991A283E72839A9806A70E8ED74EE7E 52E63887ADC6F896412C336C6131859F5978BED9BDB5CE6E28DDA3FB22FECB68 94E20B677F108FC78BFBD54BBDD8E09F25D875B565864EF4E9CF895B9BE09A07 D56892AAA0CCE21791291CE6E75258D9AA9A634B5BDC26D492300CC4933DBFC8 7ABEAF2BFDC1947D35BC2FC10E0224BE7F4D9E2B15FEDB0B39FFA5894A2A2BC1 8F4F56CDE3255CA12E1DDF03CD54FF56C7DBDC163F1C9E8D4652476FB818B121 EA39688B5B5DFFD6711A6639780876288C473432926137956FB033A3B05F5F59 59E806B7DDCED2CC26324BACBABFBD07A97144B83E456B1005E1464BA14261E4 30ACA2996277290C864C18AEA81E998950407463C1BEC4185C3ADB1255CB2549 9DD877E230629F4316856A14231A27583759A2249A5426308DE15F970CD6FEFC F89FF5324E0AF56E304C6B88F50EF6E20BACC9307977763AEAF23FA22F506291 B18D21195CDBA6B6BA3CF72C62B408B3EDEBB7657D393621EBB23C5751891305 F196BF168366E87D809BF4DE72838B65F59C6B52980A9FADD47415CCC791B8B7 754DED7769F5DD20DEC172C9E9DF98B901B7DF9912C7815441C0E1BEA5E17788 F8D3C4CD4D1A67BCB8C34D48AA449CC9203C4D2880A9BEA2BD64EE8C5C500534 5653A95F4A423E9E3863EEE4074B42166DC9ECC9D22BB79FFDAC29EB7AAE192E EC859AF540E34A0FA4E165327B62FA56F8751C6E62ADBEC51AEE0A77206E860B 3CA0CB8E62087080ACCEAA3F10C3D703A9C86B7A0BCAA20FCFD437A4B0BA0578 274EC683E6C3DFE282EDDED33740E5C0993654FD6747881F4C37922D76361881 623AB01B289D953CEA54573EBB343EE42C1C051BB280E5D47B5BF129EB6C4EF9 3BBE609F4337E3233D7FBD7D9F4E8C9253B2CFF666AA3886188B95EED1C28F34 89845FF656BE3BA92FD73A47037D60052789FC3B99F69E0358AE2639DEF99CFA 7009791DE7281EE051BB0EF1ED9D902278B5B70A7068E89AC78003378836348B 7E3C7598710A3C2E1B6467C20B545CAC8489C1502F6D956834F4B151BA6C7438 B2B59CD5C0757E2CC2E6644D29B0F81C156D033458E66BB9612B6343DC72827D 99F5CFB964FE8F955A20C12EA450366A280069A052A6E8A23E7EC92301A6BC6E 11EACC400754A034F3994914D767D8C166B958243026FBD8CD07ACE2A8ED1870 02145D154A42CECD18191C5FF134705F5007EECBFA831748CE96942F648EABC0 5B52CAD6BFE5D5CB275C27066E93074DC13256D5E4408BFF46024BC4667DE954 26CA578A54091127DDF7455DFCF3D7B63EF4C450CD7C21D4AC06E00A8334F76D 80C2EB6E9755B119740D90378F179E9D87579B039EC5BDF911148249C29A31C8 8DF29E8728C4B8CB9AF195AD11220DDF76D018AB81E562F958A7AB6D73A6E0F8 C2D20E1BECB069D536CEE29E17F723E06F5E3F01B5329C3AB98C813C3F7B8F00 018CD755B1E7F828B4DCF9AFC458CF956233FAE71A1D4963A94F5332BCD98741 4BEECF87ECB6F19EB1FE0028071AA4FCE67408A5766CF40AEF156CDCB3A74BDD 048C0D2D9F64EA7690934F7250D4B92D56AD3BB9896D6043C337BC5DE66AA31B C51C1DC763257EA8F2A357FABFB0633010DAC0E90941D4C12426EE7D72CACD2D 6DB8C76703D0A64E8A41C316F87A3AB303B4C7642B934E24BA67FD22A64F00B4 087956654E35570A24E3BCB903033470CD8795F7A51A2CE64AD648F02CAFDF41 466D18C0417854D16973A5080C4E0F1D02F5156FEC0CA42F57ACA3D6E177024C E2B57BA107A74CDC4C2E57F8B39489DF163E758076B960E253E9F3519AF76D86 E20E06EFF2AC533AB93DC53F9501223C35F33D1179AF94639A068155287733DA F888BCECEA0B4993AAE579F16C074BB0952DB9046E0D11F0878D4DA6C7AE3608 6C750408CF2BFB2A2334155E042BBA1B05D6D899C9EC55D05285ADB8736CFF17 1A93E97C7E40BA14DAD79428A761322472BF1057494CC444E6490651F46C5601 A8DB0AB87F38DFF8D911E9B69A7ECF9CD46CD271EA0385F1CCE881F98166CDD7 800D832DB29839EAAB318F9C5BFF34A06F5177108E83C415FD428B5FF67A9DFD D95A9C08D9A016AC0D0EA644803767A400519E2E10D326BB6DE5845A10F14DF1 7C40BEAE253CD6F8304153286CEB26E51802768B9A8AF429B2C74C03A43875BF 0F1F6DC89CA5C74CE1E75D3C3A609CE9571CE228C34CF87041079284FDB9BE91 B9000CB3463D558E59D0CC8AFFADC24BB27D1F6D8A05CB56BC57D5DBB784BD6B 1D0C8917625C1FD1ED0633E97681D0F6F05537F8CFF46F33F279213DFDDD10BD DDB9887D24833577E389B733AF0E54A2DD280DB416A4800BE625D9A3D7ED8517 C3C279AE40F3549BCB8BFE5EAE3EFC3717D6BEF054AE1A121A04D3CEAAACEF82 93F951F22DF937C3AE981F5CE1F9F26B6DB2CB25CA12C952F39C4306E628EC95 7535C9D1BF26FAEE85995573C930AF7763DC201415A735395297F0AFC1223604 95549E8F0BE2561CB58E571C7DE0F6D36D34CCBB6AA5233F14F3E38534ECBE8F 73A2FAA0DA63A3564F2986C2973F2356B344AF136F7005B0F6C4B23E9F6163C4 519AB07994F23905A06DCCC2E92864204DB49A9E8FD1AAE56761107495DD4703 B03426C6D6782B3D4F59FDDF24D21FE5784160CDB2991846AE65BB1598683549 9158CF6A38587E6082A750F2126A267A5811A8A65F361FDC00B960158EE9921E A85FDAB24AD09C206E4681FD6FE59C722C7A60EABFAE0453B6C71221496C72F9 24613F9529A41947D2070F6D7B1903FBA9C97964E3F6284FF6EDA9ADF4160B66 DE12ACD47BE4F8876FDD13010C0D0985FDEF6F323EBF8B6C246D500413638214 FEBEB9657C2AAAB9D1ECFD7FC496477F745C7AFA6E8F8C5F392A53623B093A5C 1B50A5F05121362F1E8B0D6C3914FE2A9AC016E4BB5AEEB052C4C824E64D27D8 852EFE4D7AF6517EA3CCFA2E5CB6793B381A7F6AD52FB2DAE9455A681D020948 813C2AE020C0F0A15B0D3800E891FE96DD6F1A776F7DD4A95811ED4938B5F8BB 943CFBAD94A9A61C93DDA7A5A88D30E40E7BD86590ED75E1C75EA18FE0066A20 77E7632FC693150240B99A023C4A3D0B69F8217D544C546F6BEA77AC92E4A965 DD7AB5F6CC82445BBE9E4C4DC758288EBCBD3FF37354CC82AA61B732E945F03E 4390EBC80E10CEC361546D8DEC348B02420B825B3520B04978DC5BFDEA6918F7 1ADFD5D6479DBEB1E6F66C9504BB50BE930F1AD3A91657258B54EA2011E874FF 2A5EE661910A6CF882E9CF9CEF6E600CD285971BCC4650121420FC765D65EDBA DAC1CE17249B1C73E2BC4CCB1B609289A43636364B0D785B04FA314CEF207C98 90E6AE1B84C34E0FDC4B0128D5228C9989717D2DA26ACCFFC87959AA4624F8F1 B546D53F0855B31413AE75A6942D24B2C63B86D326719C96B94F45674CD8155D 8154095EACAAC6FCDA3173BABF3163DE4A044D971E7394E30C47A2410D643DAB B044C931520F03C7AB8DB4496DD3AA92C43E6E19253F4B0EEC5C3D303289E7A1 6F5B32D020D1B8173F63D2E112B69DAC20FF36A0F67C58F83F83706474B85D5D 707B3615220208AE9E70D56C9531ED27F23D6561DA9E003EEDAB330AB59957CF D94F1CA51959374AB32D2A5AF4AA9BFEA5D990DDC38D4C358519F4714B70AF13 683F1E653FB287630EA16E0923A0040F1895AD7C473954EC69D1153DFBD07DF7 583E2F3401925790D22E31F76945D014AA3E50CC3A56E7052EB76028014A7238 43F01C56D9F4E8A61FA6923BA74EA4ACB7402485D5B5CF6103C042C07FA48E9E AEBD4C2F08C712272CA6576BADC0A9BB5266A84E9C0934D0B701F4AB5035CCB1 791508664E34C9FE21DF3A75EBD0377B32986734EFCF2847E2F35E460A5D3EF9 9C8DCB11C0A99EEF61B86754BBDE9C16E941FD7F26DA852064F0C664E1F3756C EB845749A08A9D705B8C7DB7B989EB21DDD46DEB4549D684AB5F953F047FA0D8 D4AEC52269BDB498C02113F02BC0811D3A8C00916FF6A46E421D4F4C42BF400D 9A2A588776D928D779AE5F235EF4746C53C4700ED44940CFA9415A96534A5555 9C3F86372A4671A2B2DE52EEA762902C93AA683EA01826EB13713A7C11665F43 BE17916FFD49E163C8577B1EF133D1E203DA1188B1D66396207437E19E650292 3A461901B66D05281D623953108912BEEF2036E771E734BADA7831DED60B78FE 8C455E0B9CCDE7238F08CC52942D13A7F0BA59230E12A114AD83546E52767B98 BB86CE81445C79F41E279222085069BDA2AA8C9B86E7F8846FB49DD8B7E97EAC 51101514866DF756A812F6C7B2ADC3A45A1F9B86FA34CA6CDA2ADD39385303E3 E476A7A84B87DF12B4A8421BDD9A9C43A495DF459CEC61F1D981A1749FCB9118 EAFEDCF05108EB00BAE7E819FA38D733485FDCF803C0F2A834A9D0317D68E74A F3796B84F5E1122D729B111083AB8BEBA045B3231310E2B7E8A90FE2CDFFBA79 45CBB75610A37BA695A92FC2B8C54A3DDC0169E9D2776E011A5E5011D4605A3C 8D20B9427185A6767185D0D169616089F4909E8FFCBDFE46B24E14EAB86FE20B AF32F9CCE0D955C5090826DA8AA0CF85AC96059EBC59001B592701C091091982 E4D5D659539C22EB619A1B46267B846E1154EC3D6C406EA82F1F33154FB0BC46 73E617B452A5D5374BB111103B81C2CA9F0367FFB2B2283F5502233806A70005 0F115134E6D5DFB35CC782304622972E7D5B2AC47D62781411199A03E4F133A9 192427F43E387BDA03A155BC9FC2E5C0F882110C620EDDB306D84E2CC0A0EB19 C7904C818327BED7D93223E3ABFE30772C256DF6CDEF95E0C0B33227AA7B204D D427866AB11625F825AB8FFA7D51D4442564AF5899E002CD5FA940C9C3661DE2 1A6B7BA7C52635486C890F88725CEA287F662604F5215D3E3CE809D9F8DB3D17 45E77DA26AC67B281D32D19384EA47FF0617D3EE9559F7820E22C770D81B6751 70E38B8B1F3361CE5130281D989E1020AAF2D3D8AC55C484A62B94F04E32FE2F 047E5574A4EFCAF0E92067797A968EDF4A45A7C52F1433187AC4A60BAD5BDDD9 D2F0232FCF379D3C17619D59E58271A10586203C16481AA368E76ECB936CAF93 48EF41C6C87FCEE4EA75B3DDFA7A9AC76113A9C3A2EE86D68DF0D76AB07F3450 BFA31B058FD1069D049A6374F5F3B9E015B09023D7A8AA474469FF0AC2B8A5B4 D7967A74BB44AA864BE6C80F571D3F7A546FFDF0740343ECC2C7C170AB9C61C7 7F129AC9639A046D5D8707D280B56E23C285C6D941072AB472917236FDD1757C 08846E2E00777CE3F706E02236BB446537A67E8B5165201D918DFD300FFB1E98 DE83B9F281C53276E5548E2F8227DBB5738699B7BE3F95F516BFBFFFE951607A 9F52468867325E4E2CC5C6A1B85C38281733CB5DC100669A042ACEF13A80D1A4 9946BF8EEC0DB9F7DDA0FCD436CFE2ADC5DBE9490DABA04869F8EC56A8827148 384B83E0A5AE9446253924D6F2C55A3F1425F465AEE0715981F24E1D3A544925 8507FF7CB9A598CF5E1BFED1FDBC55EE5A008CEB4D7DB2B0A26237958EFD8628 22BD418F4CF3E48AB9208F747334BA961289A0DAA8F065F004C656798B8643F7 A7ECDB39174202512538A3BD51477E0C3ACC796CD719974778C4067E47BF345E 3EF47654CED8EF8E5B0A06204976E971D5D128BBF0C4AB883DF645459532B8D3 BEE0E4068FDA8E2F6FF69BCCB8C86620A5D75AEE086F025682A4CBEFB68F1D00 492970DEA442374DF6034B6E14A7D9CB1D3A673CAFF3A28FCD9CB7559A4064C7 B47B6F90B0FEDC66D636803E38943FCE49AD32F9E4C13B897D7A5486CCCC2EA8 00A0C8EB768B254FCD192D4CCC21CD56245A8F2E7112220E2F89D84B08F95A56 E76DB485DB74804C09A160F55576B571311943328A9A75B1475277386CEEDE50 B86F2406C237FEBED27B655296FA069ED6167C98C57A0AEE371C3C1D974D3F30 407B7AFEF5F4B704E0EF0DC94E89056E7116C62B86A8EC502310E005CEFC4027 5B44833C42B3C628CB6E98A30F47660A5C1921D00717A6429488D207EDBD713A CC955CAA5D7336AB2D1CCD5580501DD0D8C122D042641D41E5FB7F933FE8F515 42B01FCFB456F7D0DFEC0C0374D936F22B9BE010C24784194C7E816E51BBC0D4 C2424ECE28113B7BB5CB5D9B37BAE6923510657FDA024BCCA6B14EAA73A8406E 64B0C5CB504C43D5295B5149D9324D63536AAA8ECA3F1A581BCB617CFA03247B 3E462CA5AC673D872A3CDC23B4105F3B5B135914047ADC5B8DFE8887E81D01F2 9AFE307138CE973F82799D58A01E7BA2487EB6B4903167EA92466E5BF5F94B4B CF59FA0316AA49A06A9D86DAD1ABB3EC2229FA685D786502CDA58541ED0EE698 A25FDF795CF05E03027B0DD02FD59F2DF3293FF527E958D0CE0514ACA3C2E5B7 E0A003A5378018C565B9B37677C36AE92318815306DE91E034F64F18B88B7802 F808A0D5F3A3D2D7AFD06BB7EF108B247C4CBAE808E6F06D3702A94DBE8BF7A8 984738D27D11DF5C79002D658D0F3AAC073BE61454262EAE494343E63B70820C D6F3981CF8E17DC3538B3E8DE7DB8957828DE6B176A100286F8D0BE1CC98FE8F A2E59152CBDEDCDACD6D47D6BF1CC71D6E650C8EDC63D102F62583A91EF4AF94 5285A148997738B3DCDC9CDB019D8CA859F6A28B0EFFAFD248434E064FD4BD80 DDA1C57A37F4FC474D8F82CABF64B17718C18E211CFE28F0F59DD574694A5C77 2D23E323DE0C4E8F3C9D9AE25064A2B8823EFCBCC0C0583220400A605BE52A4B 9C7FABC9D351D55C4957D51D217A2D2928F014052B383B853452A02E86F11FEB 7753281989654E330119C30DF6694812689ED6A8460E89BFCE3D77F3AA6312BC A0C13EB4A8CD22A1CC5FFF67F78946CAFE76F8B73D28B73DE83ABC6EF9C48E8D 75D55733B70077BA280D27195BEB84DE5A892AF379849EA0CE32DB828DE93FCA CA2FD4BA4A54059A9652074B023D8C44404FC6EFD7B096FE89F8405CA73AB4BD FEA2D6776223FD6AF48FEA67C14260B9B7A7CB756DF8249ABD178AAE363355E1 63FA06105639CE1C9006C6845C8BFB9B7982C25237381C95574C68B41C76ADF1 6C7E5D0CA6828B48675C37A85CF0F3653DCF9BC0444B0F9488F17E17D00BCD8A 7637AA566BE0F9B2209F4CCF8766050379C7D9FFC6E1B8583B1E9BDFB99EB2B9 DF9B801638B244AB3A655B9A15E5D9174003E7196A5BA4FBD8E1A6587171A339 693C1E5CC7AA302A4C78DC8FCC948E00E6D35E3396CFE227DC0A149AFDCD161A CB4D1049D990FD7F45233EABD33DF48B66F6DCA0A21B0BE4F66504F15DA4E2EC B41D197881DF5043BFFE03BC68ADA556C3094ECA07417EFABA19E20B69415F09 7F0E99E79E0913477BDF7D989BC7D578FBB08362E3E661E03ECE85EFF669A282 E2018F975EF638C4464EADEA81A0ADA6B12E5810BB1A7A065B78A6CB3048FC69 51BEF362DDFC34EFC7D97D4F1E19D8349BE63D70D862472C9C281DB4039A55CF 4189F018B2AB7439A6756D3BE135E19930AB3927519983B10E0370CFAB484518 4802072D2D691F1029F4A6AA959BA4A17C223BF95C4B336BFA9670FF9AF7E5A1 CA6B9D0D5E355A1133A2771A3525A770A491D7122CC7F909D92F06DA680D5992 C92B5F8B325A17C087C52CAB71F2EA936C167DE081AF01891B2A6A8B05375B3D D4C1A6FD51A39ABF0FC02CA8554C562626E05E22855B96BA46568968FAE85AB2 B0F67D18A92B37D8BA6D7AA38111D81838F8438C2E04A6079347486963F7AAF9 8164B1EBE4DC9D705FB1F53BAAB9D485F8DF4D52057C3D16677378F44330AEF1 E0BA96446088918705104BEF070190EF7FFC07636630DA0D90E35CADE0B2C243 F54806EE87FFC50B6938FE8DF9C94340A47E9E17234EB66C61BCDE8F086FC7C6 C04DD6DB0A0649D50623278FAC14B6221B64D32BCE6C1645F8E1EE6C9D6AE900 2F04B0F5C9F79B418EF77EB604CA87A447DB635C57EB7169AA61DA07E6F18609 22912069178DD005E8A3CC03990EFF8BF4A7E7F8AC5786E92FC5A08F44F40EF5 EEDD963CD83E7CFE2DCC893348AC941DFB69845DB932D5271B1BF86EE249DF4E 5186AECC48406C27C74ACBBC364B825B42A3ACC24754CA2AA227650167002283 DD6B1289A4342ED0FD4A585E51823782D7C6517DE52F2FCF53766810539EFCA3 E2F9619145CD0665C90BB1210D1E3B32934B54ACDC5E13981E186B057B282EC6 6DD3B7B6A157B5288F197F2A8557C4A56AB5A5BAC62A76BF00F48CB8A7633CE6 8C9D1C540B9A7339D43E46F969B489DE40D117AD1D63FE5C81891367DB939949 706C63353B9188318A299155D50B0195744CD4A164CEFF7C8B62B311A42AB17D 6F009076B3F23E109E6C963944BAB289A64000E77A769189F2821C8E0BBCFFE2 9FDB4EAF62DAF2E94DB8615CB4DCE2402074D7CECD8E16E8AD818238550C54C0 BBBC2B99F159CFDB8C2370EF8D74206906608088A574A17D6D6D1CAA44146A55 82447E63C5971362C25F61A1EE58D9294C14E3A4964C260C84AE9E601C534F5D BB2177EF28D6873D4CAABF47086357DEF18EE33F066557397DFB0D44E41B4B12 6DEF5E1BE50DBA2A8D2E0876D23255C04DB0AE4AA00263DAEA914EFCA3D6E7C6 005FCF57247F7B7F888559090F18700C182528DCB7068B668CD55DC7A48743E1 448ABF57C09DB73C037F533AB5B595C2A3EF1464D3988F2EE777308B49553ED6 C429E3BA7A8F0BB2BC47CFD77E03173A5BB327A4A4BEBB10A733EF3DFC376DFA C9375DD8ECADAF7F4C00792D444CA3D6A5B68BEE9CE124765C615B6C830500AF 589E4ED5862BDF23F4E784A8A3DA425EF97AB88C6B28AA5B62FF9191EBE7206F 8DBC4CFA9418F4D420DAA36380B310758416B577FBB8E35D8E3752AFED1F4602 0A26D432D1043BF6783F4345E6D27D32A48EA4698C892F4C3D944127E46B1A99 39F53E4F637938BD6FCB95C9E7244F7CF56E335530FA6A25E75AE0A9ACA43E24 9DA5988E56C717626291BA9F0CD4B5A54AEEAD808D3FF23541B623583B4F8E0E B78C43622EDB48DAE20B82AD2D582942EE6199FEF361641E8528AC71512701AF 6FEF43C946445D6E367FB51F0F5FE9C8F89C5A846CF2E5D401B57FD632BD4852 84F6796E3AEAF25D4CDC7DE0B0E502E32C0F0D8102461B6879F54E0EDB8ECA61 D360AA8902CA3A62C0C75B6295AE763FDC0AA3139CC41EF27265071020FCD487 0FD52E9D28040DA585124E701D806AFA959CF2687DA8044FD968825D79768A03 336F4C6D9B708FD160786E57FAA524946D1803A722EDE7E7DC9E3DEBB132605E A7F54977B5A7379DBFD3130F6923396EFFAC8ABDD5E4D7121641E8A4E3F9452A B0BCFB7A5F74A6B411E785D73060679B6B023A744F2A5BFD1127190FC1937429 38780D411397B537C3F15477C1400C6337FD43ED4150EC037BD8226A5520C6FA 8D576CB48044F1B2FA0B07A78B356D5772F2C6EC5D494C8A2DA3C6D7E65D0790 6D78DC6ED1209797C2E89FC536476C9BA81767ED736212A1CE7A7CF6662DF086 998CBF3125FD4E68F3E54D48020EF0E874F978744637E412C1E765687BF87310 025EB7620FED1F521E19B7779C7657A4A72ECAFDC3A12F511108CFF9341B95D1 15BF4B63E91CB7AC25D302A3C844121A71F69D7D348A9D446809FFAA17B93E18 C929F6B45C84B926F8999DA907A6C716902AB71141D47F800B93808DDFBE27E1 6009C968ADCDAB57BCE91C139621E1AC24A138B761073CA6E351F827B4AA9BFD 6FE6245EF28CFC47A376D846EE9D1F6C97DDB127C53F5641575F73F719383D74 6D35EB3DD2393AE1B7DB53957E88E77A7FA49441A76FF6719E2211E2AA4D2A8D E84807DCFB6F58C48B421D3ABC6EC77C0BB5AB47A74F130F0E6B99DDE9927299 5643D5D22CE9F655941DD99365313FAF7788D3048EC944F1F7E7FCF703AA327F E6315B752FA5F695706C6C3ECD489460ACB6377AE326E7C27C32C0A9F4980727 9D52DCBF5F0FC25092414683571F97CA0CAFB23E6DC62BF22203BE1FDF8AFF5E AFD94A4216E5D72427C3C20CA9560901862C849747FF80CDC37500355C0E9DB5 E4315B6D41475CC63848A83E39E4AEDD86A9C578465A21D7D58111BEF319E5FC FE30C48189DC3464401D2924E5156CDFDD3EEF556C7CB7C249465CFEE4003253 753D5381A88D244B0190A106E3EDB518207E1EA19A520809A503BB9C6EC543FC 309A8B27C8650A098145B11BF82151CE0806CC79600DB0C2889F3AB9FF4A69C9 A2474CE7B642993A588E63615003003AEFBFAD5D3C961FCD250FA60C0F35A18E F4D367636F8474690197DD2415CAF6EC85711E8D44E3814D336F0D528F4246DF 0D7DBB0495C42163727C9F6A4DD8106CEAF6927B8B5EFE21E18D4C3D95363720 1FD81B583B490EF46327403C02D71C8D376356F7B8839B273FD74C1CCBEEF6C0 50DA61ECE50DBE8D9BAF599FEEAEEADA72A0F7DD4BA598FD94E272B0A793219B CD1931A08A4E5D4D76F8252E2F59F6C3C4A91A76499560D5D60F8BA8586FC0E7 E558BE54C520FB6245C2C14161EAD1D6AB4F33935B0ED71A794B0594242B3C8D FF87E5AE4C7F50EBDF78359EAA8C724F8652871EFAE7B236FA404D7381BBD0EC F1362A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM1095 %!FontType1-1.0: SFRM1095 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm1095, tcrm1095, larm1095, lbrm1095, lcrm1095, rxrm1095. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM1095 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-188 -320 1445 942}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F33528B839DFD4B92DF0482493852D12053A7904 BF6E144B9488970F220C299E80886366662C1276120E72472BF84082B9EEC729 F7007ECDC5A850C88810EA679DABE81714004E65D938DA9ABDF29C949A52EF02 EDA8451563235D51286E9133FFC7A27067DF0332ED614AC2D4FAB88EC84E6CB9 FAB41C933E84B88097BA8742BC30A81416D1CAA3545F08E2554B28362B99B79E FC42281922B94604AABAF5F7A9B8E2D9A4358F38F2382EF9544B859D098DF243 034CC475CEDEBF0EDD0A60C907127BB32F7D85A62A44E90B4056D9B4B2FF3A49 786032C6B25794E2C0003C7852C6B0688351FBFC43300FB0B72880BB7B58BB61 3D1064E7D4DDB128A9B38EF7510B7E5F82BDE39489E2D1DF08816781B13836E4 89390F84577F31776FE43A5F94F817A4AA4A698AA4AE84B178FCB65F1B5A5CE1 334417595F6E40849041565BAA497F6E4B8F4305D849128C9A26A98B909EABE9 8F2659189ED27C588ADC7C744712B4D9AD0C5DD25D1233E979DE7F53C5F1C47C E9DF254086E5EC70EBC6B7E080060BA72F15E6BB75C75011B15B7ABB6BF761DD 428FF1BD688938C75BEABA7DEE2AF49364D2E198FDC7F8FA2313BBE598ED3703 7ECAAA4670BE3A85C693ACA829A5936778BCDCDB38A5981D4CAC8994E2B2F086 26D8793AC1393D49A8F2FE391F0EF8899A7720697B908266F619EAB1AE084905 36AD29AC3992BD3D77682CA8EEC0A297C9D4F167F3D6FE94EE31C80742E74DB2 0331C9E1C649D036DA3B081DEEF6D171EFCA22A3A0D668EE3121032D3A55BDD0 2AEB87D439107FB3778AB0EC59689768D3EC943D49A8EADC779F610C3087689C 19E649571778AF3905B73C16EAED4E185C873186862E2B848A6F7FF06FD50FB9 A3250B8A6B0782FF750829F55C0655D4D6FC707E24F5CE10B99E14ACD4566001 6B380CE26B9807513FDD928653CBC3FF333C089C557483220716BECF3B38AA5D 0433AFF5A5CF19043C6EC4A49FAAAB10ECDA541E143ACCD729EE49779466D11D A94FAB52C297569731F5BF3AD2FB94AFFB60B4E1CCB4595B2318D48BCFA55780 E205ED971C0B1BEC306E18139ADBC5AEDC2AF74042342682277EB1B742E28AD9 B0FB51CD6B4FE3335061CE19C71F2DB1522B4416AA366749D499C12682855A9F 9578800DACC9F47162A8E34FEF7DE05B2BDE24EA45C5521A5C45F278AAF56607 E60872B457F2CEDFD642D6219188350856B1F6E45AB8FE20E1807771A2C8C78E E350D342AEA003CAE47966EE4B6A33DC92C67D9A78529F835ED70B702152DC52 D908138FFEC4801C85C09FDED112B93EF7E68F06BDCC9711D7D6033B728F9136 95F1A2F4DAF08E7CEBCC6FDC810CB54204E22C49F0317379E6B45FAF5ED8A878 735E97A895F9E3481F20137FAA0B7567E02484E7635EBF14C12720025A582564 C9931DB46E01BDC256801F25694819EA9FDB956CACD1C1D18C1B6137CF5B6869 90B9D2D6E80D8D0C3C799CA40AC41C3C5F811C274F42A9F8CC178C0EF4F2964C F5715B61599E93DFD7C12716E8C9F9526133FFB284ED0F0B6DC0ED0C743C70EA 2AE33E791BFB54C61ACC54F273399DD819E013A3D943F55A6424FD038BFD50A4 21B796CB75AFCF6E99EDA8946B78E05E891195361D05DD7726AC8204E2C98C9F 658F1C765E754609D7266EE4E6568B22D805B0186E12B9BB75AFFBEEB315F719 5F1E1FFFB8B1FE4CEBE7C9F250F58B07189B323083B4A20D995CC1D43CC2A8CB 1B958DA526DB2AE050183B69F77A375F56488A9621814FE131604F34AC303669 653C6823FBD4D1517A9A36ACE7B2E2E2213C0C65EED4B73DA07FBD5774AAFB20 AC43C596E74B0F52B7C9720E9ED02B5C5C087AE4BE33F428F3231E4491254E60 B1A29B3D1612CCAE572B540B3D0A89652067A4EAC0BBB5432B32EED6A0425C6C FD94B09A7A018A70BC3E35C62F5FA085F3158D7F16A563705D4D9324C5DCA1C1 0321DDCA88B03E179D01C3B303C6856735D904397FA5BA912510AC23802A803D 37EA5AB43AD5580EAE6F3FD0145DD75587C6ECAE796448BE5F0F0CE29AD1F7AC 75BA998117B9086A9D333D0ABD28289B40162534E82750938543066F7E02555C B05210953D6F2D725214730B3AB6349BE5D19D19471AF79EC319718D7CF681E4 0CD1DB3082EF431ED9C5F63ADF55F4C8A7A7827720E30CA9B8F7D1A0A924060A 0D47AED3DEC92D0BB80AE4457D52E3FB1EA13798F2968534BD1420C1205E39E0 BDC5A72B77FC1B21223919B8F9CC6DA169D1A82B924DFBC85A7553E1ECC0A913 28AA9983695545D9056D98F884C5701EB670B46CD7200BA014041491934DABC5 C78CAE6B73476F123B3201C887915CC5EB99AC223ED5F7E7086802ED5CF0320A A4EFB0E0E24C73234D17EB238BDB291EE126BE1B3B3DDF50DB540EE350FEB664 EC48DA42DC9A03102BB867AEA67F08288DEC08D1E49D2DF3AA901217BEFF0F70 BFEAAF3DD20E4145DC751788DFB9EE0411D25018A13A0EDEBD4C62C19E602D5D 5E7D0D0B625A3B1DB4CF994FFA731579E62A8BC5C213F2FC4146521EDF5CFADB 42D373B734D879D654E796192F554EF484F9359079EA871C7348B10C568A9614 E7705663A86C71CD5984EB34FF385AC2B99EC0A0649025A5A1D2152FB367649F 4A3BBC329BBAABAFF288240D55D109ADB818FB6F24BF8640EF573C930B71AAEC 79DCC3E0768D2DEA2F88EB40D5771AE5B8DE566393DAE1FDC15AB12D40A8EE78 384AEA69D88372E74A8C3085D6402C4D5759E2B167BB03952C823C0DED9C312C D8EE5A583B4E98B9DC2F8C0F265C634765716DC06A04E3DCB3086CB84AC01B91 2C8F4F551E5A649B1A4C795905B30ED67F597EF4F02839CBAD948585FD65C8CC 17A2884DAD18E0EB09FFF006E7EBF4CE82ED6318CD3342AFA8C2997AA96D8399 D29D37137311D23479A3581D47752FE7FE13167E2181C9DC6678342172764C52 592909478B62A06012B241EBCFC2B9E6AA26C6AC580EE5745FE8EF4D556670EC 81A5E16C84B5354DAF3705CE174581AAA81AE1E1F727C30B163834BE704EC8BC E9CC075148C96C95080D2AA11374718AD1FD1859110612CAC388A0C945E19436 021ADD090710A388E84018449B29BECA1E66C9860CB5CC2DD64BDF0D32D2E454 40BDCEE405A0138FB4F7E2F3E4E67A82CE6C2C4B87C4B93B734C1CACEFEC0DDE 35C1C2D5B7F7EBE4C9A81AC93B375A7F598004D9967BB5A52F96956A256EC000 852A744AADC8BA2C0BDB76755AA577985784E49CFF9FC281422BD2BCB5EA01A5 94702C88D1CC26E18DCFEE5AF93ECA42D72A3A924A1E48B1C98C55EC77417DF9 8C1B17BA34D671B3633647BCF58653B64BD4B7D5F0A7DB9BA90AC5A738B3C2F0 33A3341193633F8B912B16E71E0EB6012D780BA01DBA71BB6EFC702151162426 9FE29DCF99B4A01CF609427317C3AEEF9A0A91886CAA8BD93175830886F8A162 7750F1CDBA0E9DADB8E291B92500369EB8A2848A06A31C55E4A5BD8F2683FA76 A07E9ECF4FE40720E75F07D5A401275DAFF14ED5A8DA7D988170BBF285D1F914 2CDFF81CE677D750AEECEB635AE0A3C17C821AFFD4047BC3147B930753F58D0B 45463F053E19A16E5A1B111901E0FFE0824D892C5AAC0ECA286C2A47ABDE6C3B AAD47E59BD785ED53DEF1DCD2FC6830AABA6921E161C6C6D4FC06E57BCE9DDE3 7BE464A4EF35A29066189C6177D8F83B8AD26EA7774D18F6E6459CB75F29189D 574A898F9E3736BEB458BB64308A71F1125BD3ADC8B4AF8C53C94F51BCFC6CEE 7E93863D41C8D27B234163E6680F89CAA725228CF17157F00A5E9FCBFDE41190 370564A9DF02C9F5B7BB957A768D98A12DBFE13786ACCC62AFE64E6468563CB4 974E31F83CA27E5D796A23BE19479C45ACCE665D840B3BD946646F58084A7C57 066FF7EB345034D6FBCAF77A08AE9F906A256553E88BB39DDBBAFD1D89F33FF7 E2075A90611E08C8C0F14D16B9F3937540132267169C29A3AB65B87A27AB2AD4 C3467F5EE2EF1C7ACC0D84D67D21BAB7AD3B0F93D17FB5B1A5626C08922A3F7F 504B1884117440B6CF54FC5917AE62E0EC1D4BA23F1241D44EE76F2A196A805A 6C1F3F5CD350BA2F5A7FC99CCB59A1BFD4874141BCA87F42341205145EEAAC5C EF9F1715AF7BE2D1367F3F6AC431ADC1B9A9D8893BCED3B0453ED7271911961A F8BD528227823F7E4CB67C523ED1A548780DB321604C566EDBC7A851C445DF61 13965E6F9D31B811384DE04D47FE84BF6B507C3958D993724C09CEEB5DCDF4E8 F89E1D515884B2DAD7A9AB502137328E1458AB12449733447AB20DDF04276C43 B5128218FEAECC7E76CAE8D7D3E89AF94A5018BB4451B2C1C0733B0D929E9A74 125599564D174B29167051C477EA7C5D4872F6B02B8A87D443E5514A69BFE3BF 07DC22660A7FD1584692E7C72D4E33551911721BDC5FA5472E93AF022BDCF275 C7A5AA9DE3B1D2770A51B9E660FCC123EAEB131B17067B364E0F744C85391C54 CE812BC0B26DA4724BC1E122D39BE3A88F65099D56A89C884C5D19951B7CD7D1 39B25F3BAE3FA9E40C8865645C62D5E38DFF46784F4C7337A1D2AA8496C5E327 A8061ABA7C868BE71E233B74E35560D214ECD6B3FE13B500EC8577A7E164B1EF E9C95EE5800B2B623E0488BECDD26DBB0B3CBE29B4635D290D50E21439971F93 0B77F2F59E82D2B617FEBC47D6956C4466AC70FD45B6BE75ADDF5C2B2620A81B 934D49E891CF1571EFA3AFEE32B14061DBE3F1957E571F9A33E0498DA1FC22C7 47D28249F531B146D3D081BD22322681395650C8C00A83A10DAAB8ED7E385C23 002AE3395C7FBD81A8DA5FA18B7D60B318C2BBD7688BADAA48DFBC17E9D7D0BD A3A32E78634D198C8E527709BD29032876E4604AC3E1274BAB378BCBDA94196D 7ED0FE772CE0E89EE224E611A85863D9936E13A7EDB4152CB6EDD22331D47111 582334C170CA7E61C44A7E2E7BA735385AC496BF7D45FF8566D21C81292D7ECA 4D83134F5602F5AC43300F30BF572FF87B05D415F7E490E510CF860E45C6C33D 9184E942EDB99B0CE8CD99A7AEEFC1B0C4158385BB4F4D8E05807ACB6D112338 E603449AA2DF16BE6B51FD3216FEB841C929EE3F253E0E3E1A85521F5FB6A75A 27F869FEF5A4838AEE39F2B4EF4785557C39BDE183D551F199375ED6648FC5F2 BA5957AC24F9BA8F205DD91051BCA6DC20624930DB77A6020C8D74F868DA2E1E 7D41DA632A1DCD5B03C5D1BFA746AE8F304FB738AB89E1F0A6092C917DD67FEE 29D6495AFEE0E148B83A1FD1E86AB9E2EADAED78CA6F50D48B92A7A54E325E9C AEFE4F8D747109FD5C8E2D24AEB1F11C0CE49E096B415A1054D636DB9DEA67A4 085B44C8689D5B67DF0B219EC6FFF847F6448FF7E097AD3FBD94548DF88C98A2 F240B3FB7F200A68082FF128C8155EF29F5E817F704342146F9744E89BF19327 E11F4488D13D4217AD82C65D7B8B2A2E021A9C4702E3DD3984F1896B5F90D897 0ECBBAA02E25442FC4DB96C15B184EC66770A710FB751A1A63B396DA5B697860 CC589B589423FE8E386C646710BCF518C27928ACBA25469832351BAC9DF7903F 684121B5B7F309F65E975C66F710613A860B1364386F6E252435A2F4A39F7853 95668136F3B8D6574E8217A7D2BBE4184493FC6CD6760A03566E94AB7A712874 2591731C8053D8D53D9762DEF2A03ACF420029234B166477DE3CB8708911BFFA D1295B258BAA0A31E232345BC224E9931C0772B86C8253596A949CA31A9E6260 93C72EB9CC2F5DA0FE36B8946446F7A98223792137526E7233E93ADC43690C79 0C0FB5FA652C6CB6D67EA8433FC129C759D6A376472C1BBBFF636A3D36D6B9FB CA80C92AE33FB6488AC7971810F2EFEDEB4099BED81DD41CB40C9A4340489FEA 94FAD4ACE7A841372669782346BEA55400DB4FC27BA16562A7202BEF1FB6302D 4DE3CA74EFE6664848B7645A17A41124595DBFB97377BE3E711EA1B227A44B50 17A05E0EB99FEA77EA361133CB024E32D290F9BA25EF4CC00552AE181174469E 2EDB0BC2818B7935AE49BB242B553D6971972FD93DB83BC0AB3BD78147524D5F 228B0A955302C1784A10FE9DED61B9C3B82FC671AF4B2C80ADB939F79D3EB87A 0AEDCB65F8D40C7435CE83B3474F086F382F10C950B3DF19AD8C9968F5ABE124 A2C413B04766693591F60A40DD965824B7FDEA8F45079AC8DF24B4F3EEF5E8F6 543C5A2DD98D5B02223D1466A34A6F6E3DE0473584728294101C4762D9ECD647 6CEEB7CB51000C3686E41F05B4B31110AB89359C4B7F90284DF89C04819363F8 4059BFD0344A398BDCE559D3342D945FD3F9B4B9C9114D834B26726E057588B3 DBCD74E502EB68D9B3F326028B67DA69B10DAAFF64B9A279C94711D7350422FA C82C374D5DBBECFAC1221EDE650494F8A03F05F01B38E055EBE07789D41AFA21 8637E12865F8104650BF1C719FE1388647CE1F78712961D9C708E1DAA30785F8 BE8E3840473DFBA2A19A7EF7FAB24E49D34625C2311705AC32F88D7BFF80AED1 AF453585D9CD9D7AC9709646E4C6FB34FB9EDA381111DCFCC7391B12E4BEA6E5 EAB5D39F87BA1A514F6FD6A9166F99BA46C719578BC48E9065AA87E8B8E9AB29 B653110BB70DE3CB1ABD4E08E64BAEB094F54685C3BACB9978173C987AC6934A 2DB150FAE0513820EE49509A8ED6790F5EA94D923AC1233D38398462824BEF16 44A3EB5817056D23C2B05CFF40BCABB8EE5944AC1BABC1D3BAA6C858567E7474 557DE10FA23CF79C87C6157A650B49370F2CDA21E28BA9F71BD2C5B15B89EFC6 E5F571A54745512B9B84A6479C6819C90D6918118720DD1BD5ECBC2189FEA080 56D280F09997BA017166BB3E8D68171733D227522E90E14068FE3B38534C95E9 8D90CF65FB8120D2C32AFFA2F57678A40F3D435732124A22AFD9AA816C7F47BA 59E6A82696B5D82B422340F5A77CB25C3298DBAEF34A797DE1EA0229CA4046D3 2E5949C704C84D10F6D46D625F503A67D96AF82BEF4DD1F86726A6D4518F3605 E38EB71D2D572C4A9DEC866883E78C990AFEE4497B96A7B858653DC9242D937A 273CBAAAA332EEFD654E792BC98F10E2556E1EE3234052F3014F9B6E2732EBC8 1F6DBDAB827ACEA8FB1F1B54AC5F434DFBD7B605DAD6E80D8D0C3C799CA40AC4 1C3C5F806A638F1C83B9A24918730C0FC37425534BED3F0FD6A90469F981B372 8A590966A1F611F826C21E9E0C08E1890406AECDD9AEA0F73452A949CAE5B3DA 967462257D5F9A76322C566CC561016B6BD2DB08E8471A5D00FB66DD39CFAEBE 34AB819B7850F858A12C4428563A4BC5A1E52B8D3E938C8C15B972D6FE826B63 6922E4F6848A23864E553A205F8E4B121EE8C2178D118E6F1ABC0F7842B87A69 EDC3C3A9108BE9A86888F7241059ADC4D52CBE9DA0CA518BB883B4550C5B67E3 269F501AE93DF5E9728585FC7A80EB4EDAA39722149628091413DE000A12E26A 6D0FD35C0ECD9248C49BB01B31283E66502C56FAB3FEFE2564703CC45EBB55B8 C00778EFD3506BA03FF5F4EB75E671AD1D4058AF8B4DFC3D63003EE063DD10F2 4A57A8797C6C38B0BFD28142BFD50CA5E2DB14A9C2E7B14A690EFD95A6A75360 36A002B983934B709CE9EA23D6CD70137F2EF8F72D3E88131B63BE8F9347E3CA 95F65812531988959E0429271503277A49AFF42E6755C4BFE970C75BB3803CE3 2E51EC4DBB64BF440ABF0C5C2753F11F93B566794C06DF25F29002B6A558A572 9E750E1918613656A3CC07A5C2060C49F2B585ADA0247AF4D8A6BA18F7E9E926 176DD9DAC0305D1C3E16CF4C910845676FA14CF35A06A1FE895C7ACCD96ABB6D 37325D3EA85FE76FF807267C096C415EA2299DEE80F870F114FF4010102B4387 AB3B6B7B262B63A73183E5AF591336898EFCD10F1140EB95D9E03CD928B671BF FBC96D2400B391497E984BF7D10FB5CE9ABF60849850CA7AFF81B25B8C300C30 1CA08BC250CC6096DC83D1DBEC62F3B1DCFC01BDDB01692C15C1E3439F2A209E F1DCBA59F8537C8B08B27F4ABA4B327844F4A7A2F82A8A628A2BFE41B3DBBE73 BCD48DAD764801349372AB41FF9FDD5492169783C40850B49E6AE3DE0D2641D8 CAB22E00B1CC120A64C8290846D2B64A7AD558EEC532FCD0C2F61A64890B8421 2036D3FB977E066A4E5C2954470769E6A242F7AAC82109F71914392567A82DBE C4ECA9B04283E70748DF3EA93C1AA74EEADCA792018061602E7FCFA28F83EF3C 410F3C21B869BBDE0B47D8F23A620060C06F556E8115241CE1D49065F0C989B5 7712EAD47D28935B978C93DC53D4DA1FCD9013BD469E76ACBD965F4A93D6C4C2 1C1E6F27E6F6E6D7AC0C3B7001667B6EB6636113491515EF42C5963A22432C31 A5EA1F66EADC375578D728C10B343E99B8A0EBF1B460D76981D11778C8BECAB6 7C4ED2AACF65D8C836CE8F60F70250E19FFC8F6D6C005EACE2A2B1B9F4DF2EFC 2FAA08098C752DFDCA4C0F418A7E2ED3D62A391C66628010F5D4D89AD803D5BB 84F8021AD2F25A5876F649E4B5BE3578C271F0350005FB02E3D0E3C1A31AEF97 FD06B78432E2414950D6FBB41FF7BAB39B497014E3273D687CFD56E213BEB567 A02FA42386CCF555A4AC642DDB69B0316C9D0878368B77E1783CB25518C5AB78 25A0BBB153BD23C83FE188E64EC7ACB0196673DA65A2DB1E2B045F0F5011D46D 01E050A579EFC54590D3C969B13C634E811A45DE2ED82F0A8ADB7F5E116DD1FB 0641EEAD8941105FFF6226EAFF417E42B5D9F39C0C4E3428D772CAED72650F89 E7E0B1538C5D0664BE5C79B5A41C0A3D62CE990E62666F6491AA00CC766B4F41 4BB07026D33B1E67AF483F69FA11269542DDB5E0850489ADD09148F56989AAFF 4F13998EAA0228634129D2ADA8CFAAAD0D1FC5818F220B2C713BA3B61308B346 DD2A49E953FE6C20E7DF6067EBD2F4CDED513867B5EAE023186F9F0FE9DF95AE DC32EC824E03F97243E97EBA78A4B34D78341095365042AD40FAAD9A144106B4 45E0B7A5C9F9B9E36C5B1F99101E1C975A89C51235D82687A87E336CBBB25691 DEE76792ECF843EF3D67703D38F1C1190AF61B7648984A6F608C3468D93D3823 9C1FB71614AEBC129C2B3EF13C02D08567D890C29570011EEA2C1BEE87B1B787 568C99860C48F5DB6F12AC17CD4241E7068524199B057DA84A14CBB3A05B4A21 F082BC9EB59D1EF23332737195ECAD77DA5757F4802781AD3E5504039A71E921 2979323B5717D99E1679B713423EA2C29429B292F8856E74D38961AE020308DD 6F87910BD9440EEE7D67DC835DB0095622E8BC078461D58F1AF1544E5A4D7219 BC15746C93C0BCD52F34F7043B31D7588025FE88D70EE7FDB0441024A31EE582 FBF2F16C79FA975BCF9EA5107839390623D40174AD00CE4B17DA644D873E9AFD 34DC6F4E03B12872ABC6898D1FF2506033065114CB0110CE0EA79FB925083D46 A59ACBF161D23CEDF0D75FF6B8AD07ACC60C6E686C5EA28F76FD3574AAE0696F C136465C5C6F80CE8772064FF7F3CF134D75D196832A206997DB768727A15A40 EDB32B88639153CE90CFF0CC0B3099443CCF46CB4DC451F9C47D045C393797B3 36899FF5075B4D37B7845BBF82AD16E86C742DC9DF53FFD4BAB64120FC90F290 EB3C4A958F96F10B53AAAE65D4ACCEAA68AAFC75D4B2CFBD0FB4DE330F831BA3 6335636803B4D1393A89FBB6EE8AD9A1187F2F737BDDF50E6867A00156D51DEF 14D750D98A232155513A79100212026E3F271B44C6B1D3CD21FD455A2377D603 04CABD9D3C1F5277EF229436B670CEE8B24F32FA71E6D0AE41AA38B5B3F33A5A 3091326CB870145267D6CFFC391E51CA09EDCA5ED3CDED0869495B92E61ED7DF 47148041D25A7835DD6FED89388E7CCB0C17D6B04C83FB8EF288D06E818DFB8B B0E0798A8BA38411ECCB0F5EBDE7FB57478D52F3798246A06F9C88B0A1A45643 04168A60094B8DD6181DD539CB00DD4F60988C29BC96128F689842FE797BA50B 04CCC3240D4C9EE4341045978D34A9AF4B357E059A6DF3934C9728722C04F19A 395B5AF5934BE6E2D0D45246935E2DFDC56E782C3338E680D589AA23E546C4F5 75601FC39452E6F2E278070B1FA8D793B1DE31369EF57509F8585365C6155B49 0C010C187111F152F02F597C8D4B0D41154D1B04586053568E477AA9933C0C00 0969CAA50BDF572C18A3E70E0F76847A99C790827B340D12EFB167A5E4B2C78A C8C48F7238152E4BC893E47AA009F8E2F7482604F556EE56195045A340AC87C5 8E3504D16DBC674E53856A45F16B65FA7D2C68B29971E6C539F80D8B8B81BEE7 24B1923FB8AD5D886B7FF910FA50D399E043BEA3022DBB679E32E8B6C7858EC0 BBAE6122C67D5B184CBFBD4D9F8D2F19AC18C5BFB03128E6961B63F20CF1AA69 C051F98C9BE96BE1F6C80D3CFAF1C1B38D864386B8A96F494FCF8D02FF016722 CF39A5CB6150F704609B5A3D6D2918ECD822AD777B7F3973C0D9AD4D5132E07D 916186A47557F717C97F4A3D6AD84F84BBC9FD664E30E26944221ED25930A0C7 C921F2EA0444ACDA52139EA2CCB1ABAF71A35D31BF3650F2640205DE9C3DFA59 2B81F8CDEB695285BD33F9B00FD3874C98BB95D07FB2D8075C6702D2CD20E367 A13CB1CA23A3361DD6629C46B2CB7D1D12A59C415584C1F36232020621C739A2 2479630ADF57D97EF505E96C9E6A3AECD886A7A550EFC78B5057C614E044E936 CE0269AC33D2FC5D972E10449566CEFE37424C0852D9AEDEE6941CE1033A7D5D 5F98909B5AAAC51CF5FDA380B3B8EB475F43BF1D9A4FBC4599CC66DD9E141B26 51B6B0398A87585CCE4E01E49934512373033E41C71484767D47560F3B3905C6 2F9201CDE26BC1D459E7FBA0B06B3F26F9BA8F319EAC27AA25982F10592D5283 541635DD41064F94F17A4A1CDC8A14AC86DDA0E432670B842013D437180256EC 2B520F0C00FD39B3B395BD277992A0960D438F23514AA330D36A0AEBCFA35E18 8428B104B116FD6F6A900ED0A44CEF60ADA5A18E98E9790EE187BA2C543649CA 55A50BDF572C18A4AF9EE24C1F8C3544E0C4724D95B3F43EC527F8E206B1444D 605A33C1EF29D69BD30D1E2615E7B8783FAD43305A046435F30D1ED768AFA901 628CC5654A8072E1250A76084C2927123D998310E8B2653446BE332D4FEC1026 5921D6CFA7F8C641FE9EE621CAF26567CF7EE1DC4DE736760F5CF3B47F7BA6BA 832E5023A96FA9262A5061388B92A6EEB5CF42CD0E5D8CBAFAD5B8A89B0BE1A6 F12A820CFF61165D2CB140D249765296D3086AC05E12B77DB6B54C920160633B 59C2DE28B27F4D73B66A519CB9D43F8166197D0A53FF212B6607CC676DDB4ADD B047F5283AE59D224EC4B5EF5179A1A08140D3216487A2205EE65DD2585CB5BA 09DBECFE5A994CF2C4F51B2564166D55A9878C8F3509B2C446694183E49FBA4E 0450B7BF4D267B014A254BBD37687BFD8DA0AF74097CDB6E280AACADF0EE9BBA E2C2034613631837410E4BEB55157A0115144EB51E359A8DC08CAA7B041A8763 E8664E847B6504E63D8248044B1CA32D7266A33A0B2C721F8EDA5099B4C69F3B 7F60D6868BD38CB2889D23EC2BB5EC981B2937368D65BB441FE03FE3684393D1 8FB474821303E35BA0ECAA9D264092B31CFC1089EBFA9FD538E32D6946950407 5CF31D25EE513D909502C340616C830EB0EBBF6F7BA7EE6FD5B970EB343E60B4 B3E9F12D435E169939E39270C3A6F3AC5F27DFE5E363837F12FF9490BEDDCC8D D2FD802777857C5B07B48DE067F47A868D46D5D8F49295E95FCFBFD2C6957561 9E61E7627CF8FDCFC0DD2265160BEB350F6DD666EBB63D04376A3C4B2CC45643 1F23A662A672AB1CD3AEF872961D50F182C5DD1BE041AEF9893EA76C85995FB0 E88F7D2FB25520B129C5612B04ADA368E75CCC7DEBF0E43DCD82EE7FC3ADF5F7 D940CE9023E5769F42B371DA95FD16A2F2399E862A25F89B4B472B2B148B6741 CBE548847AC429EB87FC233F134A629261939B03860C87B57C2B99547E91CE19 23F08C26C440F79D9EF30A2DF9B81FC38658D46BECFF55CB36AB2374CAF3D159 E9776BAE09E9DE09E112E044E936CE0269AC33D2FC5D972E1715C56AB14C5291 EA7962AACECD4A1243D31998CE98C5499E73A1BC2B1BB5652A867C671F226B94 9F1718F781D8908FEC9886FFB76469BABBF01ECE942567F8B7E599354A82487B 23622379DE103464A4A0586058D303EE03C3FCE66F0EC101A7897A6BE0E0EDB8 DBE5778801E2BE72089EDFC20A8E023AE8FD3B6DEDD8D53C3793D2CFFAF95482 C6E94D505F4704502EC7B4D406CBE8A09BAE1D0B21EC6F90EB7670151C47B53E 61B2012E0BC9592745AFED9080FA9D1EE4836311C773E3480074B6697683406F DB1D32C0D8AB4B0EBA762AF4DB447AD54A7FA482197C8BF2934AA97CEBFCFAEC 0A7568FCDE5E063BB9A5D0314C74BC4355E57553069F04FCF213FD9FB2DF7C1E 52F523C2D6CF20C4AE3B6824DC956BEBEF4BD42CE5148E2B7AAD1C88586FFF0B E70E97CFA8E3FF58B223BC4454D650D1250A2F93F19E620A1DB78F38C77D3214 1589EF0E54A15DF3AEF515D394CC08A437126B33DCBB2F1D20918FBECA520AF1 970A9251B9E29AD5312114C7EE4A3800E0ACBB86C1C23EA2D153646AC49478B4 3206F11EFA0152ED7195DEE9EDE1848921F5CF2FC5BB00EF4C3AA5D733BA3ACE ECA5F4B1FC8DA0FDEFD09B9A6A9836CB30DA7CC86EDA8D75A982B8C958779281 46DB5FBE444EB84F20B11A143840EC16F1647EB51CBCF92E3F519A36DF860312 500272C4EB1AF8A53A5C788BB01016875C2FC229294178DE58D98192144970EB C5B25A613677D06DB1E23768A45863BC7A16441725E83163B19E3EBF9134B7D2 09C77254D06C7686FF5CF691083D60CC2360669F73F90BC5827D6493B7C6AD9F F6046780C3763D9A87FF8D12D6B591F1A55F00F892C7678949FA5CE6118DCACA 7CF7289CA3034370710E8C708D7E603C8525143FF8FC2F19A73AEE44CFA90280 C74C2FCC15F46C94312787AB7B264BC99379C9ACA92AD5F5F6A0880B82FA6199 385D84D1A53A98C95121D31DED5FA28F10A55F99FC6F65A71B56E2CB8C26A47E 974BF431E4A2707C52E55E9B0B688113EDEE007C357491BFBA0CAB50551AC485 3E19CF0F08B147C1A0861430BE51BF42004EC94208266681A4F37C75D26D39E3 6824DC470AE00C0DD5AFC45D88054B8C2BFE41B3DBBE73BCD48DAD7648013493 740E2DA5FF22189B85782EE6195EF6ED3B6D34EC8611CFB0CDCE45DA4A1BAF95 E88BC3CDEF0D387F8B25D3F2D15D046795247494411BB37223AB5D69D451987C 04FA59C9BA9DEFCDB1314D6F30CFBCC0EC4B91C16CAE9E3C6E754A1332D46D15 8BCC380735F02C51072341DA33F15A5D79B165C2C163CD69CC6A2BCCCA9ED6E1 7F265E13307B78378EB6267893637369C7729F5A4CBAD8D78B02381F740F9D6D 3D9110DEC6F174FD8B2D54C896636E7A138E2FF1ED78235A57F0F5982A97C854 79FC17CF4C543A2EDDEA27A99C8AE89FC74055ED1602D8588AF1EA813B2B24BE 88BF68071DCAC8B8DF983FCE91203EE7083BB76D79D041D39891DFD8C0EC2F40 32C85B0197DD2F6109643A183DDFFFC288A94D6B132927CEE875633306029B1D 452C7419EAFECB964693884A2FB3B7F0FF5CFDD04FFAE44BF772BBAFC4DA837D EB39CC7B6E377D5CDE04EC2501452D8F1B9C56504DFF64C80E9AC19292B608C9 A6C12109CA1E425EC9853CE6A95CFED9018F85E7BA1AA0A013F507596777B661 3A512BFAA9977309CA8A2CE55F96E7867482FD3210BC46A8C597708D1283F29C DCA7D47C36454A870CC95021DF41F22C0FDEFB52A6A181E1010CFF41E45F6077 2007AE29653DE98E34B94F82E516245ABD1F76EED00509528AB80CB9741B98CC 31540BCD67EC90E3FF7D5F751CE82A78D0E0A98402DB4D127ED2B9171470D249 7612D386CC1076F5D4DDBDE65E84C51724F312EAE87EFB021D7411C3EDB94244 B0CA3175A510A034C971FB1E0D4BA0042A777AD11B3563288E865C38D840A16D 980867837CF7FBAE1921692F3CB62A89F00CA36D0B37F7BA240104063443EF9D 7B2909DB0590413C9DDC4D17A84D96B20368D4C7311EA243019B2DEEE516B237 CEF6FD990C7374FCC0988DEF889AB0F7160AF74351F758C0F6FEA6D19FE46FAC 777C4358DB743E9A75F962E779D7AC14BDA0F24AF0580B2621E7DFBD1F17FB82 2777E76C2D28B291777CB9A35A359216EEB97E53B18A4A54B5204ADFB24162D0 AFB32A39F98E053EBD8F16D34F9258F71CDA9E79AAA3616D37DD1D3E67683623 5CA0861E90E5322D91B67377CB18A1FD52A241D97019E10B7AC447AFA89CB9E5 EDDDB65D877F3EC613B6485B96819DBB7219C4CA79F7562699702552B634DA4A 9A860C3B91E00F6AAA9B5747427C7FBFC35B6FA607853B2490EF19AEA0AA826D 1C3FAFF112EC20BB38E2907A7194918D7B6647869A64E63E5F95A53270FD8E62 1120116AB4C81C1932894FC04A9FAD1C6531AFFBE13ADCF5A1BA1B77FA426CF2 624C0B89FE857A8AD5CECC9D8C711397B996D56ADA615D58C58CADC57A2D12D3 6D54CAFCD3C122A998A8B3D6433B348C4757B0F18128E4F748903150D0924092 B4E89EA543279072A7DBC384F1C0EF263A410A0A5D8E3FC2CDE3CB2CADB6C795 49DE6989DB8CA2E6505611869FAB0C30EC5CF467E1DE67088130A07C1DA3EB45 2F96D298775630AFD1B061CAA70AF94B47510962E91E990ED4F36B671EFA020D 27DC30DE493BC6C2F4204F25B395EB787B17C4355A1CE8C82B1E3557000281C4 0EC1BFEB6B123D1786082F7E85AE417A3D0FF02FF54C1B8C51E001003B1E8D1E 0E6288876C2DD4E79D06818F911E727EFE61ED7C48B0F9D65F506E56484CFC0B E8AA27284A5C2AAA6CCBE07F262BD5FDB7F7E772DA03589D4D8065E4FCC07345 9899667210BF60478E29A0269A333CA204E5D80A4047710E50341119EE678814 708C723054BFF8C9AE5A3853BC1D488E5BEABB9327D8B0187CC87BFB523A527B 7E8FC4235C7ED87783117684CBA345CB72B086A48638BFB42CB8071B25802F85 5AC6E2BA30C4CDF9A3ABBC214C731B85863463B66AA62A116184C6C5B704B274 E5BB838B87AADF18B1E2FC18730FD060386E2B3FBD0728D91F32B139A2A6701E BB357C08117EF462F35A88D83AD991623645C99649B71BA43F980020F083A04A 68B73340A5E7BC031B3C6B4DABDCE116723618BBD0D679EF696FAA926FD98A1B 8DFF2E6B0DB9C981D8929CC4D58B29EF3FA42BFDDE098D6E927A6CFF7D23E6B1 CBE20D4FDFA801C9EFA26F95873A476F7881D6333B07B035520A5DDB3FF06C9E 8032E4C92DE119E28BE4CD95BDC388BF86BC6F4FF083DF0A883D5D0AD266AFE6 C90328641435BE99DED5563CFAC92EC37D4C41EA1754A222802E54162EED9745 2AECBC8F94FE6942AF06A3B25F02D3C221540B31BAFC4A4496995A94BC75FDDD 19474F20574D7C037F8329639C6F159BBBE9A7EEA3E9E1F6BD250B5874842F68 C92DA119BD780F9188C537702C98C69800F9797A4F931BFB16E400661AB2D495 437176290ED6314D0643C65F71421C405D78C1E2A438F3B2DFD4941066FB6E13 782C5C0004C86A18B502D82C2BAD0B5F96E7867482FD35BB6E5D119C3065E464 1667E3892DE4666CF5F95ED74C4AFCFC05F53B4C44B5C246392D9310AC486AD9 4A9B7A7F52C1EF0BAB16DD89DA3C74A705CA1F65E78BEEB18F30771382D22C35 1FF01E562DAF56640E5A6845F1BED0EEA915C8E476DA4B7C3AD1059F59C5DACD 729608CE8AAF3A48C728305206269C920CF3D64F952CF68A50A756DB58C1DB8F 222EFDDF2C4B915D4EEBE9B5B73BC206B42402DD001691BA63C29C3A6175F580 B43EDCDF27B191A6D35CF856DCBF06B9A654CAFCE39B301A78FCE233A82D9998 181FEDA48B197B121CFA00032C1C4606D12AF442BD75757F4A197CA5415D1C28 3291A5277FDE08343F8598A45AD45509FC38B0D2567DB2F14A00DF57CFBB012A 4BB5176371FBD2274998431706DEA70C000FC01C0A2C05D20137D6B30779C4E3 1695A336BA62C2CA631321596201F40E68AFE2F77E6B63398ABEF390E8467F8A 8FE31DC0D45D362AF29BD95DC99650FEFBBFEF27CF578407C44D217B65A23512 D71E9EDE844188747106C69F6F0D6557921404D59C70839111EA5DFD95DAF1BB 02BEE66645270FFC2D203883276FFF3953D0939FB976D49643990B0FD808D09F 8031199030B4A8DA999047EDD7D4E25ECA50FE1EA79888F79044900A813194DD 1E59DA20A8EBA24D07BB94EE08EB48243F736DD7727625AC4B7DA3738F2680E3 E84A33C3174590D5B0C8F59F74E4D3210FCA39C1683C10221651BEC8BB98D970 6B96D936B7A7CB7CC584AC196F341FA3A5208DDA4C60AD2CF91E2443F0B1AA4B E2D3B69FBA352112F9143D273939DD77097384F1D7A3DF8759F3AE025F314BDC 5623F03E90513D07930F5457D0C01F04692076ECE78C254B8737035394FB352B 7356EA857D6849F017BA8CC06CE2B1D1330D163CF0F0CE82832B010A4F79DAD8 D22F960F9C8C5818D7ADD993E1360E9C0E3FD137DFE3F0185CA904614DA48B1D 8E40D824DD8B76A512D078AE2FA500D1387AAD73E7C0220D844E38A106173152 053367122FF047097E042AF6D418F2A59498FBDB71B1CB3F6FFF8EB6A4B80EC4 074A2DA43ACC97D99BFAEFDDE6DC664B31652A8E228796299F7BBC7ECEFF328B EA62DCB01FBDAB0736A8B1F9F6B7477EAAF0EC161CD2C4EC1561CD4EBC1CC4BA 246269B6FF273321E813E7E86FDD3101BDDE477F1089F1F12EB4BA5BF6E400F8 E6B1CEA1FF547FE80F02ACA3AB937D8C06F65F6E3B5D3F29D356DC2169FD0927 6AEBE37600FE4B4FA2D0E0E964C21D8865A20F2216428F6D57C4F0B4C145FC7A 03C8A0F37E56668321226DF5AE8CAF1E39427B7572E8002E6B9B3FE408F50DC3 EA2B2E704173D210980D114D60746A73D2AD9C75C5D91DDA58C37082B2C59C0A D644451244ED68415B0BA8418B1646E70C119652606D4FB43109357A1C23F48E 6C18F24F8469091160DFD4AE7B43EEC3DF360EEB4FD6D51A4B3291F2185ED8B9 498269FE4FCB852588C5298471B97BF0313D2405BC4A7C2D53B6DB3825AB1B13 3D7BD6BDAA8BAC3FF70DFD0B03969BA51F8CC3096C0FB2EBDC0ECCFDB82AC436 EE5EF45D9745A5B7501D1E708F72AEC944F37C466F03FA96A3C9C4C55FC66752 FAA109A708BD7DD73AB6F7E6F165A1157C7D1FE0AC6A66A56CB8E6C841EE9711 F5F0538FF8F37B8810E2D7051C4AA45D2F0BFC9BCBF443EB665F8EE674E07637 F0BA8054761902DA6EE925B3141F5D9F5BC97840EBD7706AA506C680C178D66F 24690263BCE010820AD0E2B707906E9B21CE33926ED6DABA6014187C8BF2934A A97CEBFCFAEC0A7568FCDCFAFC36D0605470D53C03755B4E3A2CB97056D441B7 9666A5BE883137B9BBE02BB81DB50FA39FAB8F656C700AFD46F3601349EF7BCA 244F442411E096D44CA34B00B0F3D7F324B135463BB7D398954D5DF055CFE159 7A2291C6A20594D080499A4022C1D3BEB3AA57AFA4C4C22FAFF18600AE339091 42C52820F442BD75757F4A197CA5415D1C2831EFFE61BDD3E513AA01CE0943FE 5EECAA1A322058D6823DC628CBA7E7AD17ABD8F8863BEE09D0BA15EF2147B5F6 CDCE2CA7DDEB4ECE97D03C016DAF6405C9F6D17EDD30DCA5647DD5B8D2A2CB03 332545FEAC295D1378243A8B019ACF3E18A8BA532BD69AAA75EC04C11ECB017C 724DE96BE736EE4ED2A05327FA346BDAFFE0FFB7EA5BCA52B690F32C3D38B6EE 610FD76759AC582905C13E64F186F6B2D41ABEDD9EF275835E8856E8DFA662D3 8917CAF5511820BCB2E11A6248C073948010E8C06AA564E6A6EE8E3C008C73EF AB9FD862702190EEFC4A2AC6D18498799AEBA0DDE45DAFD813BC5D248569054F 42FDE48AEE29B3BA431C40AFE03E14C9CDDFCF5EB39E92DFA740A4A13149C62D DAA700860622641F104F43CE14301A6E98311D98FC4E9A9BFC33F4366C494E56 1534BD337670DAC8119014149A54F4FC6144D250E355EC0CA9C24261DA7A42EC C9337359272C8E71BB392A3BACDCBB2F74E04A36147CB948C7BAF9F6EFF91D05 E547FE2944354AE3289695B4B85CE075FA11C29AC905057A9D48617928601320 D89619CBB7D41ED979314FC5EB6E07B6A326B4A665E0EE1FB1F677356CFB9320 6C9011D552ABAC54FE402799EF217ACCCFCAD28D18DA6369EA5C4EECC58FC964 2DE6935F81AE1138FB78A0042C6E3B474AAF7C39771687A4BC7BB2FB2F403BEF 0F4E803F9E6774BAF1240F85747282757A45DE4749B2DDDC4745442FB7EB6E6C BFFA227351AA00C9010D6719D3F0F2903EFF7D2D1DD750D98A232155513A7910 0212026BA719D51A1A293F59097005B997BE419479C34401757B2C537F5F727E 6A590CB4B75F15BE883C519B669C8B55461A569E7CA5D7F57099D33BB1398E8A 53FFE7F6E79CA21ABD610F5F1B9ABFAAB5ED231DA4F98FE7FA75593990D402F2 CC074A2DA4C9F50FECD5B7243F2F67C8303F88931E1ACE7B0BDD9C038315FEBF A978A6810A61EB6993DB6F81CD1BBC4A234FDFFE499FF1F8627303F73673031B 4DBDE4D8C863BA7E7CCA02BDCF20465A9A6074314CB5B5554D65C1DE31E4E520 360DCB5829CB45EB3ECD13CA15FE9A0D6AB575A0172DB724600C738ACE31FCEF AEC3C7E98C614BF0BCF9866C369A2766069705A255B6EA942E2E9BF901ABD504 381580672C4364A7F412D22B7EC34D9A948F82C10B882C9480936298FED62117 99886BC9916C1784C1C6AF01AEB09E681B73FF253816D558EA698ED6F5D452B4 F8386AB01A63148D2509E181A76C3A5E617E8418B80F1FA8EDFCA23FAAA0DDCB 7BEB5D5BC5FF01DCAA00EF7FC202D53F2BCB7689293B60E92CEF06DE91E01A81 127A23EFB3747FE9E1829946B2D773960BA2286A9C39EC6824B79081E235D371 60CEBFE811C783288F1442FCCAEA13A647A859304A94AEB98724D1F7A20D224A 5D18C0685C4C239A13D63FBDC3A43CF4C21CA4EE0737E3CF123E9EC3F718549A BC0CCCE926DA7C58CF0B1C062891E41B764F5A2C2DB9C1DBA454715F40D6FE9A 1972B05D95D181651ED7CAA11E497FC1561D95CBC773DF672290850F8C9C96E5 B86FDB5905C062B4B1C5AD1018E8D0497B01326458BB04A3D328B3035B50403C D133DB8BAEBD6FA61040FEA8D056FDDF043D9CBB85D27B546F6CA95901A3B9F7 44922C96B03981E84C6CFF7F7E08CCE193B2CB7E17870237844B37DA72C89267 0AE62ED53D8BB32D2068A410C687B10E9F33D64E2AA39420ED13161D2DBFCB6C 3064862D6306E829BDD01755D994D33B6D3D00B4037275DC45336899173664CC EEE58CCE0F00922DAE775C937D2304F159A55AAB1A1FF32B97592CD4EAC13AD0 FB41621DA59274E66E1242CD5CBC5939D385C61B834C590F8E4173277F326C9A 6A78ECE76B6D37F773645217862935FC23EA8D373C18D4CFA870C5E2B504C332 E87C00B567A5BB7F623FDD979B7502AFACA3012E8C665E623FFEEFDB4EED80E8 DC002FF9EBA1720A099039218FCCEE7430FAAD05336F29D2A9AF605F1B0C28BF 73D531853919A075D456790E9E287F90C9F219B2CC09292088F3BB4B6E6ABD05 01A8B73839CB6B53C90378DAE00A8F794FAF779FC5ADFE7F662A2C25642AFC31 CFD2D9CB5862459F8E3F1EE6FD45E62CDE80C098C88C2F75FC04786551BD4DE2 039D23E695AEFDD18B97194220701DA896AB6746DA05FF6867326348B39EA93D A1CBC6559ED8485D9CACB0AC243356B0576C77BD92853F6214379E023F546D55 40EC8CF04587144B81AC5D948508E511C1B1B22494E032328AA5680B6EE48708 7C718F0CB4E2D36A93BA8811855A710E154FF959717DB2BC619A5564113DD542 A906101CF33BB3AD6C0439B4AC01E02F8B6026FA2720EBCAF9AB29C119533828 8F68673163E893E933223C01A54685DE42555463C9E5CA41199E16D8DEB6A74B 3C93029B307110D29A101F67C6D0C00AF28B69F1775264FC3D6D1F580985EFA0 705CD8E5A8969E9A7EE73F7A97AF452BD10F9832D36BDDA1EDC36F614783BBD4 5A09A4192FDEAEFB769E6FCB7F651CFDB5421836E720F06CA6C4BAB4A8EFED58 06E4685A9E0B402A42887014297336EE48E915BEB59F2E6BEC10D5025B873442 A9C3B235698B4E46D5BAEFA6671468FA3DFF7E85E9D0DB80F1D2DC35B97DD0E7 FA560EA43BE3E195EF6A8A52EC9E1928416D6766884A4C324946B651FA3B4EF8 3C91929A58B0EFDEB650A2FCFE048D4D82DBE85CCA8F46AC213AA762AC8996BC 4F7EA664F49C5E5D31B92FA7521C51CC15B70BBA5A941960BDBE73A0C45E8D9E 41F0C3C7C00970D6C3CE1818587EBB540F89599454E478935BDFD2126D597660 A4FB7C877195546CB009E2579F859D06487C00E737D935D018D12315B3296A69 4265FD8BDA445E2C9D1BA9AC85DAF6344BC9322AF4AF319DDD7BF8066EED67E4 FFC45B46889CC72D8BE6731BF0BA66CD92BCB24CD11EDDF94487412448D69EA6 30258E12FE8241B9562C9375738239B09A7C74370E8D33286E47718A3D1B4BEA 4C6BD64CCFEE82AA6C0254D8A2150555989874F7CEF71D04FB375CFB0BDD4067 831B627462C96FF632E965A1198310F31FABC0F20E109FAA5E2FBAD2FD24B4DE BAFEAFFFB33A669A31C4484694FE13F96DB064E5365FAB8B7C3167E3A8EB5089 E0FDF551CE837E17D0CA1945A0EE91F97DAED71E308FFF7A43D80E126EADF2F5 CF758A791720F81CC1C9EA5671194543D25442A9E074F735218322038503317E 55E14766FF50AE52EA499416F8DA827912675BDFB24CEDAFCD2959488CBC61C6 6EE26354A1D942D518336C129B81F979492BB29B0FE42D9C483695B50132D05F 7ABCB49847C80FEF92724AEA421CD00A8E60904F5C8BA4C5A609BC9CB6E00DFB 016244822AF14436BBFE1E076A642E1E259610C5F7F78B1E7793C5B4EF26D344 8C81760A70A16CC54E04C93DAD59DBB10A3D5BC20F193696E93F9CB8AA3BA932 67DF48628F7F734C336B1433B71316C49ACA988BFCAAE50561FEC2C5481A6506 D626F17688C476D5690E524D3B4555EE5FE7E97D6454A6E0EA946E09E21D3E05 C9FDC148DBAAA3F9C0C55534007552EF23FC0F179E37AF4B9A005723FA4B747E 49FCBA527AD26BC0965A9290CD951AEA7984BB4D615FCCB6D7233A7DF0071A33 5367BF9F9A3903FF30A54693122D2B1744A87D1397CA62F920208A1B6DC46C89 24DDBA7834E43EC571DE47FAE893B498C0BDE39316A254317D08F08DF679377A 6BEB4DB71521D54D9F5441793D6CEF21A1543869D482E93D562616523D16BA6C C4D93D25B87D8E12ABDFFAA666E974A31C120F544CDA6B3520DAE98156D19436 86279F627558452F27DBF7B902AF0C6CB4B25F09C20652F8EDEFC1AB04456C74 9236E72ADAB673224C9310E078C21E085D8ED83C8C940CAAE2A5C7AF7E30698B 7746F016B10DBB0CC0FDBF58E2B138EDB997EF2CA228E7458B84AD7C0517C9AA 044F034DACD4C74E89BD6E13DB3FFD76C9FC5DB803BF5D764AB8B7BADAEF09EC 058831294973E54BA29F40E6D1560840E03FEEFB67616C2F62BB5F5518CF30ED 6B24234B19EB4D6715FD89DE99EE0184CBE8B067E1ED6F8A477AF9B472EB29DA 6C14943B5FBAB5EDB845A8BAC501417860DD0AC4A937495E8E21EA3439024973 27BCBCAEA48F1D0828BA7AAF4E3BB4B537EE111DFDD64A01F7A944EA2CA80C45 62E00ABF67D6EC1B5FF48265A49A6BED8BC3119CD5924563E4AFBDFD5EA39ED9 1DD70C14D0B004CB18D8114498C930EFAE25F1B8C5A03DA6E452AA8096856DEE EEC6585C9F8655B362DF7ACFF81B0C173F829C94540BD5AB91E52EFBC80D2EB4 D2AC1C5E07171D095F557A28B04EE9F6256665AEAC431D0360046C2495BDD0E5 0A2EE3D59FB8417AB289D4F4B59817B18888C2EC17108513E31657926EB2EFD6 CB0B3693349467F622DAEB696DA8B59E1B99193F3BB9633DD49AF654D25D6591 0F030591CBE269438F085F1E9EBDD0E1098ECA0E16DB46D3C2CE4CB7EE129F7E C241FE83ED18465A9094D1AEF5B78DB4239F87723642EAC9B2DBEEB656EB2F26 7A92F846B34F75198212E2A8EC78C70B247ED277A8B62039D0FA908F7BF2EF8F 1A313A00EC33A422CA91871D50E2EF946935C376790D2D0FF4CDD2C80D70DB80 630A481E55CA6B25C5AE3A38FEF4F78A716FB2E653D493C042E328B3D4698C72 80DFB36F055FED41C0EF2451CEB3BA71755B1996ECEF96CEAB9867F472F090CE 661112D8841158B88024CBF1D800DF14134F10F147E0B0A784FFE6C736BCBE7C 95135F140B0711C30CDF2FE92A9FBB8F075DDDF1D9A6E37247A240A298403846 85C1077E0917AB8E7CBB828D33415872E6781A9E1F64D1F5DBCE606795E35E79 CA93D6B0475F92EB358C2574DB7D587E577A149BE7F6AA48C3A54C3AAB7C5D00 AC8B23892F4CE78148EA87F19F94ED89704F29E657C77754D4B053C2279246F0 72960A73C5252CC2F55F272A94700D10F23C6CEF5211657566E31268F1CB6435 A67DC3235CBFCEBFD81E3F45AFBC92357F5F32B2E11334F0A0C6C60FED83280E 92EC546C02652223307E7305F1D22A0F4D05CEE1A48E0DE422ABC39A2E76DB40 35936B5DB6960E22E6C7E4A4EDCD33D61408643A4A935A19C66B30A95AF23962 A893861904FE94D55375C83DDFBC81D8259567B33D2F366E2B1459BF8194C8E0 2DFEB15A4B1B8E62789C68C65E4E7251CF0F310F5F9156270D1D95C8B2A034EE 3FC43E1AE990A602F26A761B9592C57010E5FBEF44C0F04C89885926DFD9B7A2 4986D2FADECC0F62DB4B012BA7CCDC0FB98A3C3B8F078FF5DDAF2E863C62FB0C 797EF8ADC0BD7593D3F7AA2C91425965BC22CC523F765440816AA13D01051FC8 2D14DD3C48739EC465E342C23759E45F4FEBB4B38050CF460198D1C46F9BD382 491C71CBE18FC355EF698ECBCF2FC57B5499D7389568291C2623FCB30E84C761 735FA1CC976264743F44A51B44A053519D841E05A054153195963FD1DF021964 2C08B97505F6E33A23C17EFCB499A8C9A9C9510F308B458C3FF87889B2AAC6D3 3A695C46818B684CF4BED62A2B47837744C9AA6374E53057F9C008072BE14D61 34245C2BA1D7521CF6949CBD8475CF2510F62CACB3905225BC8A49F418E1A0DF 6F3EDE0A58A5C81B039E6C0DEEB81EB20C9DD9203F8D0DA17F63A59B44960274 86FC361F05917BB4E7E0112091E8FCF1481509EACF24951FF49D6AF9174BD287 6151FDFFCE854A789E13E17DCFFDCBF5C5F69F4F33DC95A7B79FA7A98C2763F0 DF0E53FA048819C1B4F89751C69F0156F1F5485BB8620B2CF800C8099AAFDA12 E89D6BF3802CC7E86CBE86386FAF3F8F878563647AE5C8E5667A7AD028BB0846 4EB7D26DB80BE7E3FF8708FBE5A7BD54F7057722CE48C00DB769DFB60B53318E D126E53805AB0AB779E29A6431604CD4F460BB200701843667D54F413BFE0848 338708F4DF5E032494E6EC7BCB33E0C8863FF6ABDF03B6FE85A926A33F9F52E8 4F41E9CC49974F0A2ACA2751E8EE9AA0292782642836575C4CFA2DF76E44B63E EEBFDA560E252D354C1126DE246FF1935A85F1828503CAF58F342E62189C73B9 CD189873378FD2FC08E3586C088F7E56FC636843D3604CE05FA0ED003C58195D 04F9763B005720368A7E60E2B812DA27FF9203D8525D8E6348B1E764C177190D 15787903D19D607CF04B291FCDDF248F5095AAE3FF3DDF0886530009FA0C969D AB6A82AC70672B32746F2317FFAF294F9C352CDF3028EB7A1D2442EF48E8ACF9 6386AB4E850552D2196222437D0176F496AD7B8DA2BD2C10A9FAC9B766E06C8B 4D37E02C1A19A1DA42A0FF209E8230029062126D06D0A86AEC4B777DB2334DA6 1D3D5F8F458A42D6E00E8A375FBCD6DDE6BC7F96F73078B0A60AE7BA4F8343EA 75C216B4E3E8E9FA9891EB87B18395A4AF11AB7BDAA3628C9B0AA300B3845B26 D3C00EED67A218D46EA1579FB6F4252A00BB1CDEA2AA458C75EF526194E195EA 7D22238E80FF1145E994799B6B09E578340854ACCDB73EE44DFD89FECD714B68 A9E2BF089C81C15AFC61A3EAD1822D89A7C79C2849993314879CD86B447449DA 42DF52ED813D6A8F06B186A92C83E1DE757FD3C426FE605CF701B31E0C42E69D 9BA018CE2B2CE1CC90D541C12CEBB5A3FCBAD861657411619329631DA3868AA2 F5064A0BD8C53C7DE1095765CCF31E14A659600650932E54BE81718429BBC88C 9383E1D2094916D1DDB89707B0AE12193CB6207DD996A1F3ADC54A1C019DF330 844D62CE56C1B7D47BDAD1D79F73BEF6E3FE85909E2DDDFE7B7601DDD3B373EF 9F4749E090ADA5F70E76D6C8B7FAE076C951ED11D5186816871F437CB17A2633 30152C6AB96C0BDD3B93C31BC7EE42A921277D66B89FB9E6CEDAC29A297848EF A563BFCDE3952279CA658289230BD3FD8BCAF47CEAEABE0F8D30625607E5D941 F58007F45FE66151258369930A329A23D98DD7C2CFD2CA1658F4437E4D37A424 5760F7F14237AFCC1E7A196CE404B421FEDFC086DCDEB440DEF233A33B686AFA 298827735B5FF1BF29A54FFE0D12DEE80A0DE96EABE4110EDE6CDB19317F0D3E 29F0E729530A3B24390EF1190EA774920F9DA738901C45159884EA11A7B571B3 03723BAD9C05D96899B487EA0C8F159F3467FCEE161869FEBB4A388DEFAD2213 0D9F10B16A58AF3EC3AE260C47763919174688333A117200677BDBC5F8BCAF76 702DEF5012B47835A09FC2DFD15C7D409EE03A0D223D2C08F150A0409D7F342D AA753E3AEC062776C406BB2C2028A3D5A9AF9DBC596FAF7D184A7AB3E02EFE49 2C8512545B53F932F9BE7F887CC70F8FA98DB759AABC2613019FD497B1C56E94 9087434F10494DB7F3175853BF07B99F796FAF2B3DB02BF501D2DFCA4B641939 26807EF4BC29B2954F15C76E241282141DEBB64173D17C29BEE88594083BB4F5 78E837FEF512B176040A597ECD941AFFA10FE68DF849CB3716AEFACF254E9496 3680E1B93FBCCCF47D1F13CBDBB46B900FA3E99F4D756A304B1647B80E61E8CB 564060686D59A0B10FFD58690D8213E1C8F12A2A780602D706008CBDCB8F236D 6E60C1626A3EDCA6D1D3CC2A6151CEF2B2A143E3BA140076B288378660AD1926 8FC6253898B0B536BD929E530B647885B31C77871C552E48E8AED95D47F02A38 FD24239BCBF1CE140D4895F56C1B1D3E08052C82FF723A7C8064A894BC7FB843 B392C78714F0FAE07493BE46034714BAA466842D93F1900019EA80A58FE34DAC 4422912BDD9A6DD9CC296CA934B7C4B2C074445B62B8A20010D2D5D1D6076FE7 7A39A9146D4C24C219B3B153C645DE761AEC9BCA9FD697C9EFBC09EFEA7A00BF 027F4F574CDCE68D29FA972298486D1C117355C09AC44E49E43AC2C770B01736 EBED2D5500DD915AC6B6391809634C843F3708218597635DE7E71A75F812E3E7 D1CA3DA18541D61FF75CDE935554292CB8F8124B87D907B94F9C5A15BCD8F4D1 8C04E55AAFE32B01BDE193036E076C21072C9FCC821E56FA17041057EE35E2A9 66B26AE6EE2AFA64FA3156F46A7507FD87A7F2E081CBB499A14F9A6E349E8382 7D1B25EBB9170C1356A7428F4A1B31F389D527DF41902C7EE94C4FEFDD096A21 2DC199FABB06AED79DDE98A9FD2186BAA9111F55A205717688870EAD8048CD66 824BE522E6C5538EEB1DCEE51F11C9654E861157A38EA032C7542F0C9E2BE8ED EF8BD6AA2C42B18DD6294FF78411C8A8C0F884890C8CBA91E4B7539FEBA15157 3535372FCCE893134C5D6780C580F3DA16727C50F85030F28B636F4203F041F5 95EE6111CDEC7F04539F5838F40EBAF80EE8C9E3ECDBE8E704CD435609312E2C 60112BAF6C9410C02AC1620A2CE86515DEF25A404D95275A1E3ADD267C43A951 5049BC9CEE11CC9287E5FFA3E66AF56D3EC9C8681B2937E23DA62004AC89BC5F 336F3D267503CCD4D55C9648E046C4DF3C9DEE56BDBCD8DD0FAF06E5020B8A2D 3678A7C08F39FFA155B666336066942657D736EAAA9CAED24C658EE9AA2442CD F410678835848E1DEDBAEA5B141067C5663319AAA8AAA5047EEFA300BC475316 70A8102A2B218889023C0961C6AA3BC4650DECA0B10DE19DC1BBE2F1323252C1 70854B332AF59DC2FEB13E324447E6A1E8B3430E4C6D17299B1AB70FD682E11B 3A6E35F6B06924DC56241999CB62D60838AB641B70FF738BD966319EBD12B31D 1E5D60A4ABDB7525062BCCDA713C21A0F99E1DAE8DF684690B4AE0771EE5FB89 5DE076BF9C0DD3576407BDB1ED9F8D626B2863DC9132EC439F9FE44FC144E49A 4157300B5C696FF3AD4BEE0D9897E92BBC73CC0501BA1D372CC87645F0E7E58D 12388DE25F204FE00066DB46845097AAB921CB9EE660CB8A46318AC540D5E45C 11D3B417E7C37DF43206E84F632D16715F89DC59D105A35D06C8D1B50167840F 1C5A659D7A5258BD7455846EEF9325F0D4A22CA89629ABD43803B380E6BABE8B B2A4E56693129F5B734F95478B736CAC26A6402FEE5F2D3193E776EF39C53FF2 BD8DFD3C897AB40E3D89391AD0FE732E5501E3827F5BCD5D5D573E342B44A60E 377D86042B842A843A7CEF9FF32322D4B2195AE47EDED41E4F9B21C9308EED19 14B2E324BEAC0FB770BD927632DC56D1EB225012D3A358696C8F00B2B81CA788 EB7813DD84EDF164F328B47226F9F5CF0B6B8A86F2C67E007540949C963376C5 196F0CDEA9581564C9F82779AEF101275BF940DFEEB47C66F225F9C02092ECC0 E315A8BB7D0E414EC087CDF1318E79B28F60D794BB9FB451E0ADBD7E505A15C0 D2C4EAF47FBE9735A7EB85C388A6F4021FAA4C49B3490F1440B704BB52F59EB9 957D8945591842AD2A5DD1737413F091C02CEFFFCD929A84909C3A27C2BDD066 6450080311E313A07654551ECE14F8F4F83720C68FAB00CBC80520CABF406EAD A6D4303071C858B7F377F5ECA5BAEB8F8936362E84B62D61944D6D4237819699 7DE3664C326C6F81D9B7A92454F0B130EE46A4CD7F014A2738AD5EB1A0BDB875 5C6AEF081E3D97836B5C243022E03C7F7190C4AC3B912ABA87C32F73A8F58994 ED8AEC6EB254809655C307C3DE08B6AA330214E1479C56318BB943D95442C08C 41FC8585C818D23F4C9DEB81F45C755831CB0EEB54FFE7BE7C77B42796CD71EC 24300A50B309EAD2AA0BED7088BD0F11675AC1E12BC5E4DAAEA0194CEA0CAE79 A5F57E42CC0EB31DD704D534AD684675F77890196B695FE66B183E3B77EBA3E7 EB766ED531FE6F21C798D531567E54320CA3F220C8B2C5EDA4758C3FC3536B99 A53E14399E23DFD9CD7AA211F42ECE4EA1024F86223907CE651BF8F1DA2922C1 BD2A60BA5062A2159714D0368EE915AD06092D17FCEA884E6D4F163790523AF4 0FF53E3E4CC49F1D2E7EBA74A78948CC427CD6E40F1AAEB5FF4B1E25DE9A491E D394D0D041BEC4733020E1396E29E40CF82F1A9B7E91BC79AC55A61029DF8683 683A4C3407D76FFB0739874C6A5127F2F74DD1D688304A6F6A64BEFBF045C068 4F994C45199AB4C23D0884AD1811B2BB851F795DFC2D9B7C54A1F94261E6268E 9120F8087F4F798E332ECE23DCAFA8AFE54459057B72BAC59C0AD6E20DB43BBD FAB0A4FC45E52517A98F3A3671FF52CAF67F1AF1DE9F450DBE0934FDB60D9CC0 4371A7C5C473D76B550694620EB5EB78414083209438A729D227368EBE20E059 C36BA6381641894B5C94634ECAE829D667D26995F4C2D48A53424B2859786741 950EA31EEFE61D53D262AEA10F2C4222D0B306BC69B299E112F897BD1D4C9CB6 2A74755C65AD16618566E2F4EE80406F218887BE3B81C253EBF4AAD7D86F8CEA 7CA2EBD41EDBB3602DF5641EB45416BD6D2E31D6E770213B78212AF9FFC3D6D9 6802EC9C126966E31C15399CD06082615DD8C8805CD574CD06D9AFC64B19CB7A FD9CDF53226C488AF9508BADF636DE1BF3F2B784C1EFC08633AB9A2CF7928F9A CB4E5CFDB36BBB3A6D6887D45FE27BC011451C79C75111FFD6960D8E407DDAA3 9E47E8FFFD88D448189D35AC14DCC52B6BB78A357307BB623D670BE991D8CE96 FBF7919F51990929F9B2906709F1FBA7FE02BAC9D59E085A7CB4BBEA459346FE 1A8F8820CEF6B4429364AB0C977338B7ED6FADB38FEADC80E5A9D8BFED2D6790 7BCE23484758F27A70114A52123694349370FDE9CFC558C3F21EA70693BD51A4 CA7EE713034FD5DEB883CF08CDC06808904B41CAC4F03174FCB8C3C6847465E7 DC2A94E8FA2C2D7D2B73915A3E2E446648C660EA7500C8B9F2BB48347215E9AE BEB8EF7D05AF89DFC8114D439DCCCF08972B8C313BBD0F689E08E2F9E5BAA0CA DF50DDCF220751D4552A56086B99A624526DE652D528D92FBD2F553C5AC939C7 DF841228D09EFAA39A4D016BD56EE5B66DF1F1659ADA33D4D163D3ED1A3FECDB D9BA43B0C055513F688AF46315DDE7647D286E9ED2BE48F834F28D41EEC4A792 059D7975C9BFD97EDF8BA7E1ABF6020B388554E44E817C12133488AD49C7354E 9B5A981BC49232FED94293DDB6D0F250EDC3EC8CE198CCB7532438B07DD1FB74 A20455215007B0E1BEBB758BDB2FE3901284390D44CDD0D3995DB84F5E5E4F2C 9E02F204191A857693BB43E53F865E0C23C3FFC1272D7416562B1C7B67A3C13C 6EF200581CA8E9C1E859F88C4079E401CDF54352795C3A28843F30B7D0368D8D 9F14F84BF967C874986DA314C9B3905C7B8F92DA0223F525C4F0E6907DBCA350 3647DDBB460BEDDA8DA59466137B9FD87FC625B71DECE19AC3E0086D5C9DEF3B 6F3CA4E3F95164FC5DE9F6DF6E4A014B603060BAC2AAC05B203FC0D0118BD9CB 05303ED1922F63330B62E623F338697008FE367929B96B394C6AE5A0FE14AEA2 2E864FEED20C03C179364C741BE327A789C0CFBC7A5C1234D9082DF21362FDB9 0EAF69615A373CA4C5724AA94182F0CA8400A332F20BEB3F4301EDF57649A859 F76024C30EE78325935279A14D9D370C3BEBD8C794C2285A6FEC4E995BB4823F F87F60ABBCD77A3981FC2A0EDE5293745B1FFE2FA17238BE930F8461D0709D3F 3EE572A24FCFFAAF094A130760B16C9D7AA529748C8B1AD0F4EC9CF34587B8E2 25A139F10C7373A68D6C652F24F55CCAF41522462AB2CE8E6037B2F89EC428CA CD6CB386D884C5738C57EA8A2A4D3885686C6AABC614697E9AE8D0B787A8376F 11489F47A7E467F3CF41BA328EAC88C2E6E046B5D72B9ECB8565068D363A1A6B 92C9B92B9DC3273E62220AE9C392E6222588C3DC9D79C3CF9A4FC0D031F9C679 F901C0F9ECE7200529BA896C1F25BCD1D473CAA08860D451A4277ACBA508801A 9C167D19EBE3032EDAF1A3FA4ECB98D915D19FC67ED2C474004C1847E13213F0 27EE9951C245E53EDBC094C5E1C5241D3C1F3AF4AA526FF3598B29ECC194BF04 352FA3AF20C9DABC0A4149C8ECD44D81D225D1FE29B64810A29BC3B9B9921BB4 F44EC685235B0B85F3ABFB1BDB61933E93DC043D890A89E7E664FB8775D19E44 DE621FCEC69091F3F45646E4452ABB11137FB183204B6B992002FD365A4BCDA6 DFBE7E0DDAC7290744E7C96D3DCAC09FF3A7AB11DB453C282F7A0A42886BF882 8CB46883BD660FB2E4F41DB13E394DB2213C84C6B08C99851D4823F5709AD25C 732FD8A04D7EF7EC123C9251A9894E9FE82BD5DF712D62375F9E61CAAEC96140 1CA2DB7E5923BB9FBBEFF973AE3049EA50B238E739FC57FA0DE873544AC557A1 C2957F02C910CB4586A67C5281C4C0A6AEE269381C1C0BD20401E29D3AF07EF9 BF04C12C07EB07A7C7823E62184FF838618226A6BFF95E503DCB0F6892D94EC3 40BDD98AC6D896D8FC566D4B0B6EC7AF5A22A6B59777CA90558B47B701203152 200FB5418F855963C7FB02F3760935E53CA9DE044EAA3416E63C3FAC123EEC64 9D91E71B83F794008F8F66650E7800447D89E1042F0E1ADF8805AD6E6BE1CA77 900A26A6DB83A1C68B0B101D7905C428CE855C6828CA99757E07738C79394ED5 E292D99ADC238AE51939CBC42EF90D140EBEEFCB77D67574BD2D91404F79A517 61E791EE060A6786632392EF7CA3C3ADC154AE657DE0D5BB8D69E276A90F4F10 8DB5FA5CB1C3C5DA75BE40BB09E262824DBD5309F40593ECF45B07F360E008B0 BD46C65A934B590653815B6896D82156864DA1E0EF745C7C611E206D0A6C38B0 13A35551319D6CB027D0652504CA42253D948E4B79772EAB937CB1FDBE4C3457 723094D2CA407F969187FD11F1CCF6878B2BFA5B6EB1D6BCF16E6D0A1F6E8325 E27EDBF2352CDE85D89C009AE9CC6156C7E36ED78CCEF89404917D4776256117 8E6C00F05BB209C6B5EA322B0393904F200A9015C786F7EB6A456BF20D54CCBD 1552E76DCBA54374888E0AC4D65F5B387CFB9E8C1DF139D83667866939F70AA3 39E008E7C91A3F10E786F7E339ABDA1A7E6E961CD7B4DD26EADC65546955D785 217F45A329D197225433BCB8A5BFC7C29A8BE392459EDB395C1D82E62B4F7A17 F080121A6E1E92F7AC1C6E0EB49368EBD23B6F2382CB5D8F72BA58EE88B3FC40 29E2C6F6EBE8B6D062E28072C0A85C811E14056EA50A0C8F2A39A9F349085CCB 8830E51D462AB7FCC045232E27EF9A629D36F8FEA313C66928E01CF2EE5C6C2C 313C5BF6E815E3492AC57FFC4EDE2DC9840B8E74C07F367CDA026ED439FE35EF F5C3B992C9DCB08A1D81BEEBE158AF04B279CAD0D3A814948AB59FF365FCC6F8 DB1DD5227716DCEF985CF95C2928D8C98AEF4EFBC8405F30D0B5BE678EE75D43 EFF1133E4D93077B8990B5D15BD7677EAE501D56C9CF115F6B07E1FA6E57CCC3 B09AFA2DBB65663F1E7ABCD83A264334D9D4ACED2AA1C114E37D1C701AA9A8D5 B0990B00B3638C2B59DA6E1E9A6C29486348A8B1BE520C0706963D845742E7E8 5605C20F09FF51C505146360939CC6A24BB35DA85DECE62A11C6961060F7D88C C25D2A7CE10F7BC1D4A751E49EDA4DDDEBB12EB9BAF3109050B6EBE7FD403211 76FD5E60BAF02419412B64B0290B638C4BBECF13B971A4A5E51407D1B56F5969 365E14F3D8D8E106608134D3FAECB6E4A9827920F8C6B6A6AAFBEC294C061AC7 2E4E6494BDECA597AC628AC4E3AFF713DDB817F5AD7E8F7B7EA077A6677C72C0 A53EEAC64E34C64411BD2B20F8CB53B5D8845363DC3DDB9C60D4273A99B4F011 E603A3CA4CF6657B9364BF26238F0B666E7BD4CC662D5E5FEE962A7774ACE6BC CC28BA6C0B063FC0A444DBC0445636BC8BB85B08F82BD61397B291364D85DDD5 3C3383289F91B48A2609838256F8FD599CF77690719C6420E1224F9DE9FC7143 447969F3A403DA3C4C2FF3D852DAD09B887EF3CDBB47BAEAE607D009D7E53B44 0DA695C8A789F477751B731A206696BFECA9D3C2CD473548BA38567C952C3854 9F7A703D1A0ED56F03EA0B0AB2004D35AE18C134662AEDEA0C0120F368A93DB7 537D0148E8D5DC7884848181FCF1AB9223621E5B71F7ACF4917A6D140ED9EF5F 5543E8323D3079855AB0AB3528ABA3AE1101D0A69674780861AA3513ABB6FBD1 98787FABEE7C8677D0795E9BE021F76730E262036E7241A1A740190BECB10E93 15881E718E67184C3ACFED41E2AF4C473DD98B7339F81BD5A8DDF084E7B3DD09 C93AF741175D26F69664D2E0925D51B497187A1869AA0F365C8586A2806389B6 FE5FA29D5ADD6EFD8DE337CDE3315623B7D3495143E17EA1AE9D4E96359013CE D313CE2EE65775DE576460C11742FC50703812D800DC831810D4FB192891FFAB 192918A7C78CFA9562CB16C5B308D7F6865F87CF9368A7AA99658CAFF096407A C28ED4D5BD06BC2FD39A337ABD25E6756D39F3DAE1CE9948CAACA8BE0BB1366A AAD367ABACBEDEAAB372B8AFEA5897253D0327819914133A22423D93EF1024F7 8088199B6E7E1E9372745DB273E139B40CC3082B5A50CC19BB25F172E0CC1539 C883841477C0192D5AA7DBB071D8B0AF157E668F6C9DA4637906FF5649D6C18B 5116641814E6C24BF428657BFECADE03AE6C3299DE27B25FF3E6E324EB00FE5E 0CF5F8C507A167E8FEE6A50603622B4301B77CF0427D863857EB573DE1ACFAAC 18DDEE95FAE8970535261236E73732409B0726631E0573ECF79E88F6C21BB8DC 0F5DE381371A45641F8076324C485E0B413BCBD264148D5B215D4D6E54837BDB 4F3B280158657D11E388C8957EBC503E9AEB7FD93A4B632CE695493C12C7C2DD E6817FED9F8423D80D88FC3A421D5A852F6806E3D47F2C1134C0B725A6B66F81 DE4048DD38779DBCC030F72192927014767FF9FB620258C4BE9CF51941F123B5 C2BF9FF51C6760F231B71224C991E0375A557E42F83AB80968647F06CCCE010A F8AFC1BB1D95579CC715A984287CB0DB98F3D3A7F781F41149CB3F6A10CE641B BFC0BF14CE258C1B0A96AE7915E32094B47C3F8B349194725CECE9C5ABF25432 75A409511A83FBAD7FC50A0AFF9197F7D5D4AEDF8A2B3687BFAFFC40224C94A9 1457D02BD2503A6E5A16E214ABA46E594C8073F7BC399F2C8CDBDC9D025BB9B7 10900A785E0E52FFC9CAE8816EC664A9117CACADB092BBA6F169ED2296DE6AE9 49F3728DF5267235B9BA2D6A26105283F9EB6B02977D3E38D6FEAD32081E9EF9 C0C2B4BD38AE4A9674E6A5B3AF2BA3B6593DB2B986077E3CC87336C9E9D39203 D8FB55FDEF2C30FCB0BB1FF13D225CD9780F36D2F73BE30DD5FD857222C73D0A F811EEF35666394685121770A1319CBA4241972FEDBC73452E494A3BE5674C49 068212EC0195324D7768183C073F3E07AF8760B4E63D76500F173D98F3F50D16 2FA081996C36293948787ACAF5004792A09AAABB8EBCFC6C5DB29BD41B70949A 8603262A48748CA65F0445E253EB4F9E86344D695BEDCD424F9E69091C30DA09 D4D7F4E5DCC7EA4E91E60F192BB2E06CCDD3566CE659C96500275C77D062ECFC 6827BCFBC18514B95C773405FDD325A61366C8C79729696BD66B03D9243D0E77 D537CDC8361E5FF7F7A0DFAD4602993CB9EF1436A05477BCAB005134FE9ED6CF C4680FEBD6BA48E34CC5D67F9AD9862D668F1D1168D76FDE4FAF1715289A270A 8ADF7C463F865CE57EFE7BEB4F42D8F91D02CD8E16BF63DCC5164037FC521BF7 14974317E6F11E8F393CCF7C8C2BBC0FAEFC453C495187C3EF04014951FEEC40 41C54045FC120A5AD2F8F05212B6C3BA4A9B9CA94549A94E421EBF87EB005FA4 4F2739BD8105CD53FC041E22678CB7E5AED1CB2FFB77D6375FEDB276685BCBBB 825D292964299C9C587BE4A38F35D69272783D7DBCE43F72CB69A034E309488C CC0C4617034805C490372B84F5ADA77B522B63F13F9BDE0F2014AA4C12DC2A77 47537F85BEFC1BFBA4E821CDF0543BD78238D2728F0B3439593C9DBABFFC831F ABD8E12A9DCD10652C999D1753B9F29649B32327E4FF56C002D5C38157F15B68 C627F61FD9751FEE4E3626F15B34DAB59158491CA435FFDB0CBECB4F6743B936 EE4D0170754FE211897F676F4CA8DFAE983588D63F3A85C88FCB74407E359DC6 A0FB3DB51204AB0E322059DE1F5332AD99E4F4D2C54834FBC2968B7E03280AEB 23C2087ACE96C668EAC577216E37D8B1E3A9E1188CCD5210684AB8737C4EE859 AE4402633254F1DD0E1D2718CDC90AD60DB121FC09D09FC15DCF7EA4E778818A D9F87243690564F3A821C3A868E6AE821E6A0CA0DC884CD5526644B5D8EC6965 B7E470BF6B2A56C5610DC7A19322B9E499C935E704EDFC2D1C28BBEAE2D03F25 DB952B454F9638007596F1D4D6C9D436E5F6269901715376BE41E33DE9FB80E0 F8DED4AE50E82E68289C0316D88899D3B7C9A44A1271E89262454191790F5F34 463D405B56EC853A56591C77BE3CAB259698FF3CFC7E0FB49366D9822F62E53F 57B032818AFBC05DF050FEACA31972DD94280F15A259C37BF3F6B3EF9505EEF0 09D18614CFE6352A8907961CE59BD17A6F09E75FC6DF31682F8CA5669BAC90D1 7F208D77A0E4BBCF3B31C4B56EC7A2204C35D25D85F5EC61367E24814B260633 46FBA35A2F1C9DCC244833BAD72EBFE48B6EAB46D82F1E29993607E95D4BF0CB D3D4B9C2C34B3FA0AD38C2AB3097556515CEBE19E23DD4032727F2F7471CD5CA E8AA74221740BF2824FCF05CB7CE24A1D123B7FFC7E33A1B0998E7F21045C582 EC39B112ABE8FC498F3A86C9C313EF6A560770D02E7C6C9138A3E9069620653C 7FA5FAB2EEC762D3E19D83AD2C21B93C195B870AD8A4720BAE26F29B942FA697 DA67F425F90BEDE26536F7E854E8B86767045A9E1FD86472E7B4577CAC00D664 1B115AE984F12C8AEB975A8E5C8B1B7F614B432324CA02B7FCA157AD5EE0A0F9 D25406C8F33D066D30BA02F2AC5F1A0F40343DD15381A14C206D7F5B980C0BB9 8FF8B544351689CE6F735D5981C5C3FE7E93E773615EEA6BDF7BEDCAEB0B0C7F DC3D0009094910BBB8EAC87172299E921EB4FA5C3BFF26E786622F702326939B DF8B8F08CDB15094E6689671FFA5153B5514E916B39126660ECAA25296DD1198 FD48683A26A2630861AADBF28DE6A475CDB68733C510FE0BE4706F4239791D66 E1CD6D04DCE498D618AEC94250A17D5BEC08881998FF64231905D75451468995 F464403E17411BF1998F29A7016E49E4CCF46C01074400A946423673C2F88C77 4201920C41AC987AEA0D9B72891534D8A117B1D7E7B776C9593AB0177D918A6B 03DDF41A7AB24844A1F9277924BBFA5D860A493F8C38F279DFB3E3B3FB460860 FFE7C9709AF74164E4B3AEB21BD42049CD4C07A834128AA140B0DF8D402F72B1 A22AD439E4F96BFFB93CD9676B8AEB1EE3E24375789C038AA896B3BC743D6BB2 97C5BF050D6DCD167E42CC61BDEF0A14F6CD9E8DDF53E0CDA6248AF8A411BA9E 75EB3A3D9510C216632A1B9D401AC52588A3C6A4BA6461877912E10CC8C74182 FD057B5EAE2BED72A05FC47EC23FDC47DA431D030F3D89B2872B4EA0BEE8BAF0 11A7EECBF98CBC7A3D3FAAE31CE0DAA01203078F8CBCC79F1F00ABDEA0BB88C9 4FEB0CAE440F9D7435ACC0591EF7F1AF763EE58B64F45AC5EADF4BB4951E92BF E523C8A4D53841044CE94DBDF55098BAAE702B41C002B7934740D8D4D833C7DB 72057CC57BC14C5ABB7036400C0A184C95746603DFD855088E32F7EC93BB5A2C FFB76A0C9B24F5FBB9E5845B192CB16B0D0EE1466F00D5890D906FB81A495046 4C5040312ED4D1142B451496337ACC73C32C86752ECCEC0E8A3B699142E185E9 17950FD6F734FC8B4E7D72210A6F35BA9E00DCBF891B0BB591C05B14FD2D2F35 AAD0361F29E72CCA61C28F6C40489BC1D707FBD34CE1522A08BB4A1367B3E1AC 0D8216A9384C79A818AC2D4CEBD3B33FE5AA3DE75872F57DDD43A83063B667ED 025DBB2C81EED32D47E2220A53FB9EAC7538E5430E628EC0B94F8334D48C79F4 651FBFB9B090D894F5E9DC6E37B534851E6E2332651A4391A155716C677CD1B6 E43FBF1974309554D1648D613DAA1C50713C5E24C22F0DA5D386334D35250F9D 1BE4BEF6F7B32D1FBD8D57B03461EA77EC31FAE2494B2520DC61D7F31348AAA5 81302BD8BD9C925035843CB64350F5E255A4D8FE21D546E4F12C55C6A11680CC D88D16A35DC8ADA5137087C61C4009C22869268CF3AC3CF5596ED8514F1897D9 EDDF5108F9357DFD0F46C37860A05B8721393BC28A1ED5FD1BFA2486803E98E2 63C5DB0CE18075A82CF4A51572B1190E2AC4D20E4B7716D24F5ABED35FB72BE2 01D94130CDCA768F2365B8E7CC2880D27B8DA67F367AD6E45F8A0787FABD4149 7762B6F9491096E6B9F88DED2A4750AC94072E2829E582242A17BFE414EEE107 6AF35D6BC371D18A3D6059E5EC4018BE9203BDBBC0AF103062BFAC3D39D4B91F 11EF4C3BD38E534B86F35D190574BB99C9147957DB68AD4ADBFA44DCAD24FA41 349FB5ABDAAD23E27895D4B7CBE66D5B653210A2887B6FFB9CE202783A49CF41 E15CC1D795C329F859A5282D7DC4F5E5781CC100D4797EBBBCEF4D8E19B9C562 95C401BFA1274369658B4A457F749754A40164DAD48A26C0A95CA23E0FC1EDBA 827B75168B7C3C2F3CB58C9EA98BAE8FD903582A61F596E976774E7117E49910 33A43C4ACF1C7AC319AA7AB4AF4AF0E44905D282B07FEB6EBF3521483823BC65 6E03837175BD36BDBD0836FB204D6AAC2EE2F0CBA1289E7BC12D3B7E1EE7243F DCF9515848E841C08B0A71EF482EBFB280128D04DDA08D8427247B85241DCAB0 F9232FC21550682E27E0ED75D1F0D810116CFD3236927AF8AA1B0C33A0A1FCB1 49C971C867DDD5686BB29E3B276545CCEBB3D0CFC8E4F3518DC8E63A598A0104 4D9E4B47D28CCD0448A2C1CFA4EC4A23AF49DDB748ADA8E7A7F763B98495DD35 6F64AB61E60EF4FA53C97EB6696C6F4C524A80986932380327635CB4D8C3B96F A71E90C8010CC41EA25D6BDE9640834C0042622953407CDFB86606FF783EBD3F 5775E7BB8AA26EA2CC1E9BD904B9E00559B474E52DE1F6F9922F1C7F6C220E83 E441242CBB8FF917EA19FC1F8FC9EFCFAD271587BE46648692D82C7F0DA7D068 0AEF1E77E7F2B90D49452B59EDBF72191BA7C9FBBC3855049E3FC58FEBF215A3 1BA76A012DFF95BB9F8A4C772A0B9F1EBFB48D10E3FC2B42AC8F99A049B6A787 AEFCD9E7FA5D974D1590CA757D1F7E6B437A3529F278D31338985901B39C6087 D7CDC4CED206BDD903CD72610AC7EB19903E817E84AF4F9A31DC155D7B33BB2E 8FE92F57E401CC6F78D6AEF32C3222CE817B25E360D38979AB28391A143F9F6F B95CC9E1AB64131EDB0B60BF743E9950595AA34578A10B865C154C902A09528A 6DB9D118055C98C23ADE295AB96E3E3F4E536CC80CA688DF1A4F7FD1AB764295 36C224A3EBFF64F8552FEFF8E8A59D3EE2648B29B46605E8318D16CE8FF6616D C86FBE851942732E56E5B1C96768E689103622D84FDB771155B588C7928DD541 66957111F5A1928D585B0602FD525B49FC0C92C7467A4EF6B4E154D816D44993 B7345720A7EFCEB6CA6350EB5801F59569573EEC7D8501822DBBDEE4AD7ABFD3 4FFB60C74D8F84F6ACE08BB001C64249233FC4E97773F440150C9669C27CF642 67DE8D201B95F60E5632089B3943234746CDBF683CD1F4D992882B41917C9FD2 84F10A3CA0017258FFF83BD0017DE91EABDFF781189A8117B908BE44A41BB777 E26F90A1BC73A33713BDBCBC35CD774427E4424C3F38139EC3108AD83942398F 3CA883AF7DFECE62F29E3016D5BA003FD753A9B54CBC7D90628D4A06201FD7AB 5379BB2CF7C5DD53DE59EE6F2D2FBDDBB34FD774AC8065F9577449921CA8DEB5 0893824B89BCE682A1BBEA0DF544073D31BF092FE8631BDB92F9D0E26C412777 E4B4EE1B14D796ABE384CF93484EF8CEC9A633FC2D0D4FE4EC8AE751859B7F25 51675318BB03F01C33D9E48FCE28703FA86CB56D73AECB4924470D0449FE03F3 4311BF263BF48FB43C95EFFE5CB26E115A9C6EF252A1ADB82EB35AB43F8A20F2 459823F778C245CD1E297CBE55187F9EF3C11F3D1DC1237DEB51D338025753FB 282BAED4EA222960295174BB3C35BA53FFD02722B7D11EDBDAB38F7EF6FB41F9 88F7065D8A03D39540BC651CF9C5CCC38D571E5953EDE2AB024AAC422825B960 AFE91281ECB0E34C26E8AC141436882CCED4FBE8C360E283989F8A69B085AA35 4CC1CDAAC2E838856DB6526E888BDD67D768194DABDA4DEB715946C9C2114329 997B7F355E38DA1355F4F42690E39FE10A0CC7A4DF143F6FA34F68904D04274F CD15BBB449FA623D906A56C049BE83534867011692BE6BE1FAB22F64266EEDD8 D45EB4F83417DAD795FD655EA2AEF53550FBD156F9F6C7C1C0D6DF820883DF20 9EFCAC85E319D9B0970ECF8B8B1FDC5F81B9DBD2B420DF2F581ACF0A98FF616E 98F51E42239E1D6D1597E36360DFC074D92D218221F37BB4C3802FCE763D09DD A54009D6F166B39C46398CF9611B12D27AE9C8CD0EF47FEE99DFF08EB2D288B1 6A5CB236F8DEF13D5749CE504B3DF68FB1981A83D98AC0F345C36FDDAD9CDC95 976505773FB798D1FC397070B020F1CB2570CF89023755087CE61E6210E93DE1 2B3285A748C9CB1418DB43E541BF984E787E4FC3739F63D1FA54230C848168DB 6DBC036CCEC8F1A1152D53145A3D750C69EF724A1103F12E49E2F433931F4103 774A4CFBAADAAC96BBC03E6C24CEF81C7BF3C3EEBE3D1759DD7078C00101697A 88D473072840B75D3162EF526CC099A39692A5DB20CFB3DBFAE22744FDF39E33 7C9FDAE5D161915047DE3C4143CE4C2E2E435F3394BC9F67220DC69AEA57E1B5 B8D495C8B7785795E97D43C072A91F22437775AF2153500D21B942119F253F7B D586F423E711E6074BEF210C70884B1AB8C5E3CE56F00F954100B6EF8A2A0C12 CCCC0822700D1492C4B91A02BB4391DE8F4F2EB43FC52F841A138DBB90099B66 3AD9AB2F10A85A4B7B99DE5D216914225734A7FA61CFB105F3C076F04C47703D DC7C2A534D992DCE0912C2B0075DCE93C210953764C98022F586EC66B0997E5E 7BEAC9CE137D10944C810E51D6702B1D5BA1AB6E98DC58345D15DF093147DE95 8A6A335033F463B8F22D3CC5972BD9268903B1EA1A38EC9B5CEA9DD9EBF32286 DEC7326D4750E372C117BD963B0B7395B7B5943E95D5C599B1BFD354DBBF8941 C04C822586B911F2DED81759A53466A7E62409B0B8FF667E516F4D8ABAE3F7DB D2E2A1BAFDA7B1D6D54C582EA05EED320050737CA6A8B260669032FCFAF7777E 2A80CD8F23C59716039630BFCA77AD81F1F5F7ECCC679E0FCFDF7C0C7941786F 0E2E214CC711DA985AD53BDD7CF58DBF5FE71829ED5F955288D1086A03ECB842 025BD438AE409054F7A0452D685C9EEE22211C436743D4554511414EC414CE8B 659D5BC792763C6EDB05649D29B1B628D6F97818735AF6B2F0AEE04D09D0858A 3FD9CDF4CA0A84C7C99AEEE7D11B538D32343AEA026D18728BA17460AAE02AF4 FB9E22F4F4168DF02D39DE5824F0283D3F9ECD7427783897810924575C8340D0 2B4136058A7D746B3C297809A39E4DBA449EBB69D4981075B50402446FAAEBB2 DC55E732 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFBX1095 %!FontType1-1.0: SFBX1095 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecbx1095, tcbx1095, labx1095, lbbx1095, lcbx1095, rxbx1095. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Bold Extended) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Bold) def end readonly def /FontName /SFBX1095 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-227 -316 1723 930}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E4875AA0E2F461BA16EADB32842B6D00C76F8A3359BAB9 9CCDA63EAB4501FF88DF4CE0D9DC9F071B528726352196D1D889EC0F0512EAF1 A6ED201F5B8FD2B90DA9585F5B2004EC8159EB426405D76A85AA0ED1D29596CE FFD55DB52BF5C0325EB43E789D2128DE66E59F9A7C84CFF09969406DA529C87E 3410723FAC317F161388C55FBDC43B850230989AD991ADA95B1CDDC4D978E722 8BEB4E338C3EC48106B4274FD9FFC7CF03EF238D8160A515EA93C009A8F2D3B0 1CB8041F5EB86F1D975BF4EDDED8B7D2C81B665124CB1562B71114FA44449C6C 4DDCBBD36BC95B0E569A5A6EA9219B151426165BFEAA914437CA89EF4B0F5911 AC054509BA0102D462A183A29DFC304DF74A289A052531CF1C505EB94CAF245C 33DEF613E4F1B785DEC94402A2C46B2DD4FAE5DD176985E45A03D85E442D7D77 A7586ECE67CC2360820AC46A8CA0DE0852F2F3F7ABC9D4FDE78321A4B63ED2B0 AE51F2F1CBFAEB6FE8142B4877BBE69FE6D4FEFAB7E5A8A4B22803992910064A F998A0573C898D6EFC101CAE6E1FBEB97001A62893B76CDA3996BB92B7C2B8D8 F5C16CD2FBB4F8D9DDF27E66377E9BBA95CDFFFE02D05938F97D05AB348A74B9 1D39CA72320F8788593D99FE7CBBC69BE81D60CF58A584C366D2F5874A3CA93E 3D630E60D2D74E3CB14ABB6B38E8B409E1CAB8B8EB945BCF617A9FAD8D2C7410 219B73D6051C9AD48CA2ADE315A993BAF273005F4B13EC256471F1192BD4B8B4 B5B7698986E65AAC52D7FA913898B2DDB4BC6C2CC7F4521DCE96F7305994DC4E 8818A4619072461F746DEA0851A25A15B3FA2CE10B0DCDFCE81E848CC7B7B7D4 B4C3067243399657F7FD8227DE29E7E37CDC22DE9BB7BE6685FF502BB8325BC3 5F72EB2853B877FA40778E94543BCE349D3F6487B5374F2A0C1636DACD309FA2 0055557EA8DF883C90AB6B102B3ADAD3B23608F476A14E974DEF38A40616E2C9 413EF03D1B681495947416A78AEE38970CF110156DCC782BB609B464B790EC93 92F66CEF6C26A97692343EA6FEBC1391A91CC30424E57CDDA3D7A2035B13F8F3 6E818E4DD949200F9CC2DAC5D867E5D1DA4FE45BA45EDB6BC0509571EB2F465B E4EB59F3F56C6243B84BEE7156AA61FF86610BFE936952F5940181E21A29549C 7D748A38D39DE762650D35ACC35FFEFFB2ACCEDD68D067068FA870057EAF5693 ABE477D98879A2DC34209372C2F87AB4B76D7E03B03B9EFB35ECDD21C3DCA4E7 A39AB615F9507181590E126CED7225C94F55752CF013A08999DD504ADCFEF250 A1AEE073345844803F9E6774BAF1240F85747282757E981EA97AD1C68EF86B3E 728A64E1981C658099BD3466C25ACF8800501A3B3232AA055A290E9F234767CD 62AF33323B01FF00C621509B9F1AEC8F6AC22DD822E25449E88AF0774C1F63FC 325E404404B3CAADA00ACAA36B5FDC3D9ECEE2F49FEDAB490902D796340FCF9D B6CDE7CEF529A5187F7C3699464592574758249035E23B339EF9578FBA89B6C8 1ABFB5DDD866020027618E020AC137250A1D330CC174639E8419407826AAE3EB C4181757961B53B2D2CE4AEE652143FF85799661E8A2E4EFB162A0A172BA9ABC 971AFDB87661521E4C49CCB1D6CE47635601EF69F81D15CD377D310BC0674F5D 113689C1751DC635B8755151715519336A7D4E95C2B3D2B89D9CBBBEE36DB5BD F8E7E443981FAE71C8CB262A2C3E559E62B8A87DFD9C47E64BDB5963484697FA DF708D60DA76DDD8273EF555D70DA3CA329F6CC3FF5EBABD500FDE36BDFBE594 73A077190EFC3E05159E4C7EBC6E4A2B8D1D6FE49724DB54F70604FC21FF4EEC 44E35F294BFA233079AD5654B39D5DE77B5F7ABCBA19D3959214C260B05D426E B29A6A415AE04149B082DC068BCD3B6B0B1244D999ABE2D9E2CB94C90D217AF7 78A53161CB13831B9461F55B4A9D3F708B3EE785597D3951E877E5F31ACDBD05 C06D1C6C48971DE322FFA3082A2207ADADE56F84C54826A420CD81F314FF3336 407E38BAF13F7CD6CD321ABB4199242954145125FB0B69CC9A4B559380227745 7CD318EE0DD17F69E8D3F2203FEC8577A7E164B1EFED05EC3194131B54F4FA7F D45DD080DB5550DE4D10E255EEC184E05F7C019BC126E509B4D1CEA44582BA62 09467B358FB1F79D274DE6E099EEA9FAD94926CCC30DB10F6E6F0B69FBCAD186 82119E8EEFA1A0FC2054A81A3D2458929C909068355DFFD0AC6C2C049CEC4129 D3D220FA46BF168A93B97224DE4E1219FC46578A4C1CFB18D2EB1E9C270AA730 4A9A97B193CF52A33FF44BDF6284C1280A05B1E1B04FE37D26E6B707E0C7CCDD 269B733E2B9D02F42EF2E1B47DD90C4D77FC313003AF5B1E5153E734BB79BE22 159C875358C2415CCF3571D82BE24CD6ADA6EDA7FA1176680ACB091B3354E2D1 86FDCA728CDB1698A8D207F119CBD537F142B3ED2DBD71BA97E5EF826C2CABEA D72FBDFBD3AE0EBB4A38AC618AA3268B951B54E7D732299F4D7615D094C1A3D7 41907D5CFF5A3305F7D9E1AEE86374248314A08944B5D300D2CE49F5DCB6C591 E015E616811EC62679EDF0F9A17E47BD8261F39FE8E5B4F18D8180F8CEC8D840 B43621700A00F6CB233E29161110020767B5AAB809F4186ED33AD656664632B6 E41849E1E11305795931B9F172372AC98EAF239BA25E31BED5F2103319968B96 989AD1829F2078FBCDB637E52AC2AB45A419D2CEC828B95872DE4BD0C173B863 1DEFB986941924B199061D047FD5EA78FB55C05F443F315A3D2A0549DA1A31FD C7D428F2396DEA1A6B86C77004D11907E40ECD369819DA53D2CD39AF252F3B51 F7EB1C729B38782C31CB9CE74DA1DFF45E42A388AAA27D75E803D5A6B451C5D6 D0CCC13ECDA13D76EE34C4CC3139946B712CD58FCB39FEF732A780403A84174C AB0A56186794F19463F871DB941811E708ED2A8737DE05AEDD02447D5B57BBA0 30E30104C5AB16B32D0DFD60357F9A78F9940A43CA5E628F379CCA88C9492B6F A673DDEF254EA29E10EDE9BD4468E48B42322217B06684674777856A3CF6475B E7C99ECD5BF8A453D98B8FB3E0B4A356D8FB61E2F17209F414A4C17C1E499699 4DD6785D1F551DC19C8D3F87E3E78F0051FE14DE44D955A0591C88EFEE3513C9 1FC358689804AE0CF4A6DE8A88D9A900920541310F1B4C5DC949A3534F6E2EBE 6699F6D0E35B93CB13D1D3E85B6AD1AB102891710620FF98C140F4B8D15873E2 D677816326E44E9B181A2EB0A338CCD852EC3EDDAD9C85D93DC6D03236D7528F A651DDC59E45943F50E91212674A53B3ADE728E4FAFAB696834279DC6DF3796C 0CEFD83F4B9E59332FE29A0514182B9302C5DA1E35C4997506966CCF665A3B7B 8EE10DB72F5514F9DEE6E3D14201333FB23B5E04155B4D5554FC574655CA1F61 96F9F5BCB54E1429142CD2A2E64634E5EDD14AF630D1D11EB3BEF318B4B3B25C 242758858B2A9EEAB8DCA1CF36EF5A70607D97B2051729B4A8995562753EDBC0 3B591BA554EF5D79B7C4A6D501441A9B85C866CD37238B0C88F6754B88FB3A0D 4B3DC904C327E1974A69092481508A7EAB36A1E8B4B2086415D534D06A15E0E8 AE43B432884EF98CFB738B090364D10C950CA8E66546343EE8FD0C09C313F891 CC47DEE4F12506BF9AD9C6FB6B97270E30E9590B86A05F36E65059D0219F7E10 37D75994656F4A1F8EFC7B14626C77D191F62DD4ACE0AEC4B6F9DF21A3AB3201 A0271DA66EF5DC66241BE5F59A1F791E1D5319361C73E9F268D8E800649664A9 2576D75485DC48C4C7BEAAA053BA8D3FAD28C3104E28F1BC96C7A88BBFD5F134 F4974AB0989355759833E548BBF3F923348BE39DADB8E291B92D9C8C25FFFCFC 3E6DF11B19877F54B6215D3DFCEDAFEF5C81AF3DF3C8C65321DD0ADD7FC6348E 8C766796672D45540E911E023992CB35E946996586C79196F03715FC56E9B92B ED55A69F772B2CBCFCA7D66352341072AD8DF1DC47C464CAE16A2936DCABA136 3FE919E00192ED717537F7027DB398272533335CC7D531258FC77EA9A5A66E5C 53F987AB1F661391E66D4409C7210BF0CCD3EBD94BA96BA8A714A1C3627FF6A8 188534F1FF4A3535AA673AE15F560DDFF08EA7AC108D6A33F8E5FAC431AA012B 9194054F8C05E3BFD98892B2FDE7EF47AA724470B9BBA94D77DFD198DBAE9190 FA53F3E9D5D12E3978162FCA90A865B41F87DC44FDCB15FC3375B4B1012EA7F7 A3D878A66E3D04FE29E63018B6A4B33C567542F05816979CD2644B275DC4BCAB 79BE48A25474D4D9F485043C246CAADB03E84F7E4DFA8FF64555A202BB5A0413 96BE40CB6C2ACF1EBD61D401C9640BF198B3322BC2415170B2A738B9C40CE0E4 6D69A9E54E469AFAA5827025E9219E203716C600C3BE1B431D366E672098CB4E 4E3E374D818DCDDD6A291A30306FEC495BCE04690664A1FA91CC00329A9FD26E CC6F8D27D1B62EF4BCFB0B622C9A0E9B78FF583B35C8F097D8DCDA6E12B6EE82 53CD5E455D3A1E6F2A8A3B1ED1EBDAAA442198783BA82A9E82CB0863CA1DE9F9 11B3A4D779D7D5E0CDC6DBCD6AF8B9D91B2F88B781E6B9E61F9C67869C387C1F 24EE5D80ECFC0D0D2158B5093720189C73F7176905567F1C8F69A4772B854BA0 F1EB2B15F32EA324DC1A9F062F319454F8071246FA2FAB89767D16C43C466B69 8F5E7A7C7F3EF075B78CA3347898197A9A796A9A6996BA480FFB4B0A08F5D46A 50C126DAD50387CE6D524A8E171FAB3A449E4ADE2B73716DDADCE118775515EF 5AF7BF31F66AE5A3DFC9705DD8F660F1880F19FE0EEEAE793A0080BF66B36AD6 C9F9229FCBF7E305EE8BA3B4450D2E18FF31B9CE2A7DAAA94E8D769AAD1F75E4 D5B176E7439BC970F973831F1A344F8510A193DF375342B8752BB89CC8563686 0127740DE9CF1A3FB1F64F5E78D045976E82BD959C7D748A38D39DE59D93537E A6D478AAA3083BC5D2B3D7F5B16C601DBDF0F8DB7CD6599AF701C5C94C8B1650 FBB59A8AD273BCE14B7944754112CD02E8A1CFE84912214E37679616040FA84B 2E79436528CA5552029916E43CACEBED0F83B1E34CE5C1072EA4FD4B5BDE1AC7 EDFC3332205876C183F33472C14AC4DB40369F75EA8DFBA93BDECC857FE96AC6 5BEF4F685C48CF33F042DCB7834424FF72A5D71C3C19E8D1CC31014776B3EDCE EC360F6F5C58D9F0D4290877519219B0A4306532C37EE4D850A7BA07CA7FF0EC 284A8344F8F9AC480826C8948995F6F36A32A7DC6B705C9E57DFC14760B60253 5D1A8456C650247168FBF2A1E338BEE383BCB287A65469D2F49FAF91264E308B 71B7D3DB781A7CD97F81EBEBEC38244E3684285DDA851C2D35BDB10077153248 7C04FFFC8F5B1D20743105836E406BACB9C5B5CFB2EA123BB51537F33001338E 2BCDF640C6B568A3D7DD889CEBA91BD638BC0C253E6A1F34FE840E78086C40F2 BF47482E0F76D65C252B14A6AF87B8E9E5F409C82CC70A2B10D3095B45D701B5 43ADCCF7DF6BC0509571EB2F465BE4EB59F3F56C60FE3E6DD1AD0C46FF03E26C 8C9F8C6B7B9A130FDC5CC3CB53564F6C9A4F501AF32FD960FD2347F6F3B37915 909F2B67CA60F696D167B9DE03B13594BF6157F97DE2DE66ED932DEFC71CBF8B 1C5E8F3E8692ED1BAD2FF75143DEF447A654E6B4D2A60B5321A0C49F9BE51545 3CD9EAA72DE774592CC400645E2839BC0CA280C45F9861902FD93DB8352BE711 DA7B17E5A874BF14E532D888A79221FBFE65D8E117FB75434FD3280C1877D247 39F0697807C7933E921AFC4028F5784EDA2C0D4BD4377D9DE1827B388FE9F865 6AD9BDE9CCFCE1A3065C314C27FF32A5D03480674777856A3CF6475BE7C99ECD 5BF1D4DF36A752519A84536513B922F1FC0A070872E560E8D3C2D546487330DF 959CEB4F9DDEB3B7E6F84F650C5C2D856A65B9674FF626574D897DABAAF18961 49F59CF0EAA49A63BB2AD202CD7FC7697389C795931778A3210FA2ABB6A93EA2 30341F8034395A1BAA839CAF55E46F84B2E3960DAB18D604CF923C401341DB73 9D36D71CB4A96EA7AFF04E1FBA90D65E9A64F8E9E6A328BF57F4FE733FB49495 CA187EB106FC39A77BA465979F0AB488B284E37710A9A1AB429277B77BFD8FEB 5D6C1CCBFEE4EAC0A5DE4ACCF88DD53E9ABF8344F7EEE785C75ED7C8166673BC 59D7FCE7266ED5CE95844D83D12EB45C327ED805BB4AB09068FB3EF383F82F86 C9B62AB52F13667D5251A0CBAC7559D8CEC6C9A80CF6B58BBC64642C60426DE4 581143A8DC6C6CA349BC0691AAAFF54581052B6519CB1AC9E1561406DCD0990E DDEE2C8FE822ABEB863B4C5BD1695BD593DDB9C8BFCBFAC5A6024574B5062C76 AEDFD200384EC579CED49EF48ECDAEE8966483F21D51527C9EC88306FA46FEF4 59314B406AD33743D297144251691E4207D5936E75D5EE119A6618EF1071D740 37073029CB2787201656148B2FE999206643B869260246FD78C82B8C2502A331 6EB665BE1BB7E0A048A1AEA30E5631C78FED8E7F3E0281793AE4F0B95422D245 978A5E4F311F587F6C3F6731BA0480DBADBD8A56C64308F22937B34154B0E15D B97B4884E36A477334067545B6EFE8BA2C4919B13A0517E174A23DEA7EBACA3D 7DB67EC11B50363E452DD40BC1316BC6EEB5C7818A251C3BF6B996A3E0D9B01F 141F460049B12130D480C76F82AF2F157AF42FDB1FE8DB16BD673D3A714DEA4F 93E8614966D33ADBDA76880BF6DB5AD71040ABA21FC0FC3B59B45AA7518C66DC 86B4DF6D6112200346F58E0DD96C07FC17719A4BB074C6094C6C1E593939DC88 9BF462703F6251F58BB34B07D97451B4EA7019EC8E4EB69B4ADCA72FD465CE0C C7DB8121F5EDA252F0C02D7ABA876AF66DED2E34292EF5DC1A32DA0DBC861E9C FD1E630BD121BDE69FECBA2DFBD983C99DE5C7D013B9848F8BFA46C14DB12A20 5B38C43C1A0FBF8B68A0C760BAF73EDDE51BBE68FA322945DA83BA18E4F57281 9C164481E9CA61063E88CB31CF959B811157EDE8F3DEADBFBFF99E4C521B0A17 BA09BB2A81E0C6FE41B83C3D76B8CE2A20F23C89E3F887D35A26878CD1EE150D 92CBFA4454E360E0E20CFB779E822E278087B358D2BFF4284AEAC147833716AE 1A64082503DA2ED9FB16B6F30E5D230C31A9EC532EAF53CC6755F9831C22A9C6 FBAD4A5D20F92353483A02AB49D8B8A94F8D1D590C14DA2F7B688E1A4317EDEC 8B6A2A70537EA4AF071B050813DFEB658FCC5384DDAC234B3A29D8ECD41DC058 3A510C4873472D8E00965DEFC630FCF7CA831A87E00B4D60B2CE8882889DDA62 42413DE6FB8889601F21C9D354EDF04AC2A24BF0F4543166DFDCC921B6F04435 B366924FBD9AA7D142DCE5977D820E70C8D088AF8BBB11A67E3F57ABE586BF27 CA464FCFCB2C1F1C271ECA338D4EB649B1116178E0DC4527B534BB69243BCBE2 F0B5980FA478598C670C6554C3C509E363007FB2128F6EA2A8639C9456E55B50 3CFA6F892AF36D73B54FB7E9CFE74A2967FAECFA026BF7063D274B86D375BD92 A49CD85CAAC7B014F7D4A3060349E12440734E5BE96300BC0DE1E1499502E5FD 0A9026FA43973C6C91963F0AECCE9225CB0D22FBF974769188C066EF70C651F3 5FCF210876171868C5ED5B3804C77BBDDA09B7BDD68E477BAF861C673ED5AA19 29EEAD75E317B6574DCD113B464C2F9FBF61C4ABEF37252C1E44BA2E6D072A77 9485C23B30F6BBC6A4DA134FDE8B54123653340A41D3DCE4433D0887A13336F7 41FBE5AF21ECB1F931B95F0AEC70B39B8881EB52098965C08EDA5FC70762DA6A B4EB282C2E8184A18CC89B995734EF7BA8071980741260D73729A04309D9A35D E57048EE04670C17F0214200C4FC341F1C7EFE2D50B491BD6366C33449E1F217 8BCE3A8297DDD87C6E72FD4FC425CCB189CC2B8CBB3FD1E4F4522AA1F4C18907 AF48AE247D5EB409E8BC5315A80C35620B9D92F33A612C3ACC7CEE15E74CCF9C 5E829B05C8EAAC6A53FD80B6D0E143E54CD37ED906F5D54EA413DE4F2D3D9178 326369ACC789BC4867D723EBAFB4E0A64F1BC87E4E958D1903B48F6451BA2034 82F6E2A80F4802283DF85DC40CDD2EAC7290AF3895E438123F9F58C2890599A3 C1437541E0A68F61F56B91025F353124DB201F7EDCAE821294A55AD95B6D4B76 D2E51D9621884027096F65191C20F76D668D0B41EED6B006E2B69CB36D75B910 96A56BD742E6F485E49CBCD02CB558A61523D23195AC23BB80E9A75ED042DDC9 408C44554E71A1001A82FE62AE06FF96C0AEA7FE970E54FA8C8EA2444C3C6BAF 3CB7E5E014BEC6D76EA42E6AFEA142BB08A41ACBEEC17D5A5F570D7708660384 E0094BEB539470C7635B9F2F2BD14323C751080105AB62872DAFA447460BAB18 6682651393AC05C15DE2FD02CC7C7162A328A79AD0D6A9D442D6F6CE73FA3255 A93AA34EE1222DB38552091831D86D41E4C5F8560ECEF1EA18AC2F079A5A8BCF 14DA3728CA0B3FABDFD3366CBFCD5813F6DF3143AEAB60E0DEF2099A9ACECBC5 42FA85BEEFFE9CBBF87CF91CB3542A09B6991F69EB7A717E6BE00D0632E1C42B 5BE2945B6AAA8EF9FB39091ABB2B18D727B4FB3B4B66E0E2FF0C344F0803CC93 03F8F6B667E52C8E3418E15D1F34ED1261A36005E19129AF3E78C0317D33197D 106319DEB18F9EBA3DEA5AB43AD5580EAE6F3FD0145DD75270B207D4770BBECF 012E4F5BE88FDA3523BC23CD9BCB7BBDC577DD7245E5D0CD32FA9F713EB6EABD 864672C75231E979FE162806342C92D7F7EE53FCB7EF7BE9B926EEDD45987503 A96FCAEF6177245B97DF00EEC52EE06EB48408AF0DEAB658543B3403BE47028A 0A769953F81EFD2AC9FE16FE502A403EEA9AFAA6FD8316FD7C3669E792093D19 E171CFC0DDBA75EDA0B30A35076A749640791E4B93BC6265F469E3A118ED153C F2CD7661065DE0F67F0AAB8BEAA05471D5CB6A70166944BD279F68BA2D903BF0 1B9F81665C6073086AB006C5491F3C9C9235A7D55662EE7EE4627F41E21B6B86 F75FE172D9B08F9F8E089DBDE2133F3540E1232B7450224E0BA03DA3B0979DDC F25BB1D8DBDA6BB0B450DE4A57B781D231E9C9823DA285C3C547B98FADB4F68C 4946C44C44AA1958EC65AA2E653E3661F2D550F6C643672526783EB91055AC74 94AF31A313572C99A5F45D09F9926416B5E4B5848BD7FE5D3F3E547AB2D1F5E5 164D0BB064C7AFC151C4A9A1C138AFC198604B29286261F305D2C995E01EA14F ABDF695E6C2ECD03328C7D0F204A3B0B9B5956158252862B3272C55D7F665952 CFEA1812BD6A4EC1DA2ED68FC894A1527C89DD826743BBF8ADC0EB930637076A 214FF3EC1EA39384062FDF26A4B467CF3BC505F1229D1D4C4AD169E5F4812937 D461EF019CABFAA0D2B46E9C4588738DF7BF13E2B804EC9BAB75056859206FB5 9C264E9CDFB2CE68A94065C5B2EDBB90F13348E22B013F32A5FB81DFDE2C7698 421EAEC6585E084B85BCB5594D7ADAA386CAC423654335981212D67695F53846 41388D5A8FED3CAA1D77C99D5347AE5C098DBE87B454FF6E93F270C44590E464 A4FCB1BA37E4A11BC3DE5341C6E067E956F94D402305023CD7770583AE6D647A 501A92319232969C9060E2B71D713B6177D08B9EA98BAE47EB36250456C487E4 70DE74E3B29F14C5EC15B34A05EC13D279AE98F3BD0656F584CECE76A1715191 3D7B8568C68601287BA8DF67B346CA026F44D69B3FECAC37C7E050E8DFB0D5F1 B638172F1C66621D2BC0FE8B98BB53352DBA807E1D9FEBBDE84BF5F535410F82 355C2A572579C06D2C86A7BEE83C0E3BAE6FA313F76E5C09962DDCE7EF7DBEB1 B3154358212CB5E4DD65F1A0B45065C702C23EA20A3068D841DC2FAF4A8BF806 84D3F5BB34389E8677FD31BBDBA25B73A8B3D716AB89F3A05B1B2C9436572EDB 5EEACBE60AC88518D2E33F854259EBC424334598A39EAEF8DDFBC7E90A55128A 774184F2471881D19E1C29E1A3418E7DB6A7B8C58C33EEDDE833059E839707F9 4A6FEF3616C3EDF4BB80DF7CEF71ACE203013D3FC6B2EC5F07219F9110AE5BCA 2092ED9AFAF476B100EF0997855F6102028B01C2188E33BA1D4933D7CD58F2DD B6A86B94FC92CC55C02D2CA7D3A64EAD2E627D49B5816740C229B18A9BF270BC A1DC271573A6D9DE35A147F3E9CE7320E287428526653D10B607DE317A5618DD 8D30D2E088EA3DB52DAA3525BB44E8581105F623CC2170D515E113D42212D38A 605042E9D1C3D61DB3693A695C86791260E7506A57B72A77E33DE399C00CA98D 9F0AE1873CB950DED8E8F228D9BDB0915ABA92E7CD2F9AF2636D9E95025D15AB C597708D96BBA7E06C768C73F29572FFAACC389BCE7F47DDF7A259E0754BB10E 677D13707EBAF5E0CFC0A21FC667169B75564156FF555E34A77094130C7A4AFE D74F8FBE554350ACFDF33BBA18287D2414BCE2C9B598FCF2EB41E885B6D6504F B3A80F8828FE798C7F00AE1911146E3FAEDDB8D16DDD8486916979A7294B96B8 9912BCD149E2635D5877F272C28FC98B80B7E29E13DC0E2234901FA2DAF0D345 5CBDD171190B57890185FCE7E09A0B9F18F01A8F3E17F824114475E1BFAEB152 4B2BBEF7E8CBC0AA33FD8171541089CF31EA626B47EE5C6C440EAFCD1E69F824 581A91E2E30EC3FE52FD35427CFFBF2FE2DEF7C335163D7C748C4461B6737902 8F3543C4308635E3BCAEF766421E12BAB103BF99421DCA2A1FF4A14E4E2FF572 D9D59252F7066211746E1814DAF2D93E069292655AEDDA5469F8B3ACB722B41F 779B88D7C8E40BE6C4C35DAEA5041C672436F202109BECA97D655A16C0C26855 C795921D4C4AD169E5F4812937D461EF019CA188AB91EE2A045EE302F17DF302 B8DD007A2EBFFAED608FA62FDC9AC0B279D81894134EB50F56EF46402BFBA4BD B61EE45F2A6B8BB2989FBFA8758E494BB5B7F436B4578B06BB57DA92A25ED21C 6455AB5A822664E124BF5E815184A99FF881557200C80A78E007B9001A9E0E8D 7BD2E5FBA8B7F9D8DC6F2441D9711CC81D31B423A24296CEC91A7B77074EB7EE 129FCD06E8977851FF7A7CCBA13CF496950A84D1008A586429159B5E34BB89CF ED711F100F87344E2CC52948250D58603111EC64159EFF24DDEDD6D7DF36567A 11161C1392E7DAE55528267D5EBE3E8C1C6ECBBED6EE09D1D65F2C2BE666AA63 D06CBCD572B0A6A0228112011F5CDE11CE3481CAA8346020CCB2FDFB0B90FF0A E61F0108374AA0E58EB48492EBCB2949498A35B7A54B5EC0AC9E788A8C87311A 129D4EB0B75D684776A115BC58F14953AB46244856ABAB6D8020D58143DC7EB6 354CCBEAA562F7FF497654C63C3E9CF35F78C05B62DC055597D7BAF4C28472B3 5E75CEDC67F92DD7118204995477A27ECF26DC78A89DCEB9536CBB07D72FA0B1 5E75587747E27FBFAB63EE71371B528396DCD6F25F79DB414EF33E4DEF623040 5F4B4C7E2E37BC569396194A5B84D2515DFE2A487A75646D4AD48D6DB4E79934 957DD7DB8FBEBAB47D638DEDB577109500A343D563AF32FB564D93E623023531 4EB4474E27AE9DA486678B60C24B7832151D6F5BBFCE6D555D7C12AB3E3D1F7E 61757DA084EB933191AE9A655F25DBBEDCF2CFDB957E2304F1054566E859C89A 760972011908A1F9EEA53741C1EE658DC69C4AFC46F5B40C9E84CFE10ACB0876 DE5A98F735D56E38AD44EDD52299B3C4AD1DA5DD739FA0490894C7C6C045C42E BFBF182F0D752BE8E8D61ED6DAC34342591548E9CF01B2763A1F4830337DDA78 CF77653E23B38B5C7E44A4B4EA633113BD40158DF344A85AA03516CC1B20F4E8 926E5B1EB631DEB68B5D87AD1BB373BCF31B7117EDC696D7A2198085FD4BBA56 5ACC08F03133CF9ADD6AB74B4A1ED120384D0CB06766E094152B9043D3603CE6 36BFE8977B50D9EEC70EC7CCB3B0E5AC55ACC5EB54A166A09EFF08414EE09114 3D7DD36F34BD68FCF68DF5BEC6A0A706A7D576C65377B12B319499E41D93413B 74C76F1B557C32D3ABE3E767F2F3D5B062FFBB2FA51BAD382AED99523C81C084 E63A7C5FE33B2FA51F866D49085455510A09A9177B444DDAF89C84C9A546CA5F 71F912D3A7BC8A62BE8CDA1845E218E76611C0CD3321730CEABBC29C261AB684 901C5C5A43ED712D696670A710FB751A1A63B396DA5B697865377DC2622573D4 57E19E42A648A6E95485596DA5DA9B6FBAD028F92D0A7C89305D2933B475FF84 12F670BF8A614812EB1E27A87B75EFCF1206AA29EAC385C9DEE25CBB8D7C9550 7F3BBC3DE54BAB02DEB1E9D7709D685764896CD6B7196C3D04DF25A018A68468 873CFB0A8845ADB02479586AD4366A7367A353D6D316246ABA2CFFC6423C5CF3 57B044791D418FCA1F44EC185D3369D34FB23E800FF1F4D01F9F6CD2DE97A27F 4C1A25E85D517C34AE54BBA0A2C5621D6315BF0743F0D005CD4DE87AE4D3EE71 781A85E660C97C92E2A3F36EB44D1459ACBAA50F7480D6EB542AAE22E0F6D5CB 759BFC78C907C3A4B80C21D9F224F79B136344171C48CF73EB165936400C5D25 554FBDE7BE9A167605EE17B5F8C9F89BA1AACD47D5706D9F0A6CC901AE2A6883 FB82BB954BDDB7FF0678F775A5A3102F6760237C1BA7CDDAE5E1B2CCD9D8CD77 EB6DE0154777DC8C1356CE7692CEA3EE6B85F2EFABF38B29E335BAED5FF2B1CA 7D5F9773ED0FA5857C773EE176953D6A4D7435D7D06BDCFBC55F756808F49781 299A42D2FC04A672EB5D7B0B7F3A707986B796B7E4208194E6EC103AB3126296 6A10B34A6812F68ED3EABCBEFFF494E59E191862367F9018D447A9F592D1ABA3 56F58CA8ED3F5BB9D562A05B63B409DF20C182AE98C09CC88237D841BD503315 297CC4B6A30747D13D75BE2A6D2BBF02FD26822374CB3DEA6F33EC63A2C669C8 F3C7A2470E1805B357807D520BDF07E1C4AE7503F028F710B8CA3506417357F8 C3C532B19BD1740C0CEDC0AAE2EB919AF22FCFA06B10E735F5D8A6F7825E16B4 9F9BE6CB9B0E8A17AEC868521C0D91F337B9C89E5776278138D024757E2EAA6F 6561D2C90FCE05CAE805457E4DF768ADA1315B19DB43A396158D1BD33819A722 44F964357BACAC7E45DF14F44D1AB2A79192EC0F39C5B4AC7858B02D1AC329A2 A3A485C7871875ACDD4FB21863EB01B8BCCF6F2793AD64EABC3F2D975F4ACE10 3FD0538805984188BE850FA4E58C2F22031E5D3CDE7E1676AD6911057AF08AC7 A91D57D8FA8C8E0B281DD810A9DE10BB7D7AD75EB71A4BBF6C66F819B2140687 F6F186034A31ECDD6CF5B82435AA9BEB3E5CAC9CBF941185B62F94568A8C6FAC D0AE095B4121E2F49359244D0E4C58DF797DA5B326B8805D26F236C7905D286B 3015F04F6FF3B376E0349ED95F66B6666694353A70D02EA84EB93CA85E894406 A4F78C3B8DA29FF0ED7EA02E8D9D06EADD9170F63D67C48956B3121B1D8202AE 3123C0505AD347514666FBDED922D68614EF875D09FC7E47BAA4BAC36A066787 B4AA4E1E9928A7809D249DE4DF24BCBCC95E85894F82A48F76AFA0DA33C0AC62 AC54735AC331B47B338D8927F2AACB7E04FED3E0DAD615763D7F7E1F6C99EBCB 38B495127AF92F2F19B4D1D2313EF5F3CFA124B95805267B9805E2539369B34E 490E12497664B563B825312CC4445DF31F296D60D64FE134A830790AB1C1C5B0 CF4BCAA5A821CFFD4DCAD23923F274FFD2356EBF7641727AFF8DF1AFC8B6F121 2F37CC19216D19952753EC8F6BEF33735EDF34B23943F58B741F645F4ACF71BD 7BBA284E1B565D301478486F588B745C5E53EEC0D0FCA727506D00955879E521 982BDED734FB045F1711A24CB976EDFDCB74B77DD0A8CDD7778DA191A018A854 0F2A21850A92EA39B643322CC81AC52516191F8214ECBA8665186489FFF3C9EB 1B75E7689C16112ACB0A383AF3B27949E194F29351CEFE78899CE46B90098E23 E8D18B85A7B5AAD82FE5688E208069A1AFFF538965BABF4E4179CEDF10543415 CFCFE2A4D4BCA014B621186F2C10D7B1067A14F7F13172F81947747CBC7E6ED2 745CE151127B66B21694690B1B927BB3113DF4B08564A5AEDF7F6CDD74B2164F 26856CE5DA66996F947FD29B61F821FCCBF685456D30B36EDBA6D9D739932864 E1C468B8F9B27A85FDEBC0D74342A0FAD1657DCA594B3D66A5D1AA40BE75B38C BED0CC6FB31B196EB6B1D41DE505CB7D0CC414318B378E60587A9CAACAE024BC 469CA109931B3C6762A7733699ACE05C9EC0288EF4860899E5178DB32E7385F5 0CF4641D3A18DEFFA7AC8FD41420C4CFAE093323981CE5BF2196E15D7C3D7819 59DAB1F20D320C605B34DF469BEA6168445964C7A4EE7A3FD71FE4901287899E 2C27421A060BBA2543BF6F9F76AA4668EE62FCA6F439D937ED8FCCC6827C0B8E 2742E42C132FA6E083BDDB99772BD9A357478F197D3CA6FC5D153718CB418528 755E16971F47939A5BD1A840BCA58D35DBACB959306463702FA6B55D5EABF703 568D0764B27AC0810DC05C5535DBAB411B66012165782CFC4A772D8B75FFC376 5E7F59357089B790453BEDBEC122C94BC2C1B93A7B294F78DFCD99F0963103A3 81C468BA58DC1823727B8F7B47B0C0972CE574E2B56968F8B5C725DC1A60D3F0 F9F5D62659543A50B6DEA8DD562AEC76F2B24BEDAADE97891304BA855C28BF62 3945AC4C46D4581FCF29A0E940113D22152BCC547DF1D24770B66BFA2B5AC0C2 ADE487EB36C2C362852C3A45B6E9D60809C5B0CEE62FFE02B6E5138693A4D700 1A49DBEC9658F0CD8781765EAA61A3BA932EA29857BC97943E00FB719EC2BFD0 0F84423D8BD8819D9110FA301EC3C1E935772C96D7A8140EF3910A825E1E05AD DB80A225B38F2724E92B59FFC977DBF5C007D632AD6D08D83A99E8EC34DE6DC1 E471AFD57FD3D8B6EB379DA6E19694FC2325AD6DC1446B3C8BA53229492316AF 5A089B4DE83B8ED0C7DA8CE2EBB993847B43C2B011CD1BF2721388133610BB7E 5D61B76D49AB5B6305892A6E3A09023808E0050489C48D346919C3C54CBF3C34 2D0A4837BC2635B39D0DD9B1E85677D5534BC1A55177B0AAA5A2BDA3FEE66312 C9953836A3C7B5EE526375E2BC0FC555A7BA87D7802D5F91681D9AC47B51E903 47D47B0A58A334DEDA952ABEA0AB200F708CBB45AB5F76444C690C6F0889CBFB 8E3AC178D193B7A3852B4C12DBDE08508B5E228675D05122B438A5A503552944 04E033B3C92A6B23D99F45BBD34C23E5E656437E161053F7F50773D43081A103 2D7BD972EA6D791BB4AC0D19B6FCC87F352EF5C4E54EC9C48B3D9724C1362290 D0A09BAD0CE5FA3FEB02AC3AE5C8A7BA42B38D96036FC69A01C1463ADEB68CFE F886283A4A881620A633205D04A802E2E4DB8195C186E376F4029CBACE3AF24D AC10AA76C03C179312D4FE74C69835A319104D52026F064598347DEAA7F60CFF 85EB4C280851DCC72887DD58D3D39B4020A256C1BD6E8755016D1DD3AF79E621 DD382967352D7C3E056E8449D591595159BF5FA6EF0583030E1E235EEDA6098D 413C9D96DB07AE7449DCCE32CA58059432164A26B50F8BE63BAB361370A210E2 4EDFAF3A8D8EC8E54A36ACF93D4DC77AA5FC61C0F2A1DD706D4A57D935B30300 F09A2A4CEB75A4216B2E8F109274EFC020C38F1840457B886317A379FBD133FF 1F8CFFC028C94FBE999F80B856223D3B4516F47F60EE316E2F0AE3362A333B5F 6AAD7D40E8D7ED5A1C5B0053A1CC9AB1CAFA17CB809A6D182F86363100DE7512 77C99C0851E2635DB3A6B28090121F8DECEAF46FDE441A88E1DE85DA0082F4F8 BF94E627A75B8986CD355EBB8F56561C7EE37E386242DE1B24F8D9C99BE766EA 17C3E758CE06F0E5521881031985EBFB44FD60F7DE71187D6BA358EA6EED1311 586E16221DA38AC7A7CF38660996D4173862A4864061AA5E3A3A5EB63BECE709 1A55915C4DB363DBCC926595A1AA18BF04C375EA3CBCEA710401C352C44CDE1F C15112897D16E302E4A602987610F7CA0A8F1E998F68817F1277C99C0851E263 5DB3A6B28090121EDB378510A3404399954E790DA67887A81C53E17B063DED46 82B97E5C7DA98CCE893E14CEE3E1E522BAB63FC19A7C4447E7EEBB05952B5B1E 3268A58C27BFCF1D5B4E0A3ECAC84A00033A28BA80137E48616690B880BC4A96 F7B81008E747ACF26571E3B2C27361FA10A5019D58CF2D87A0348C46BFE1C1A3 BA5F53199AAA5E159A83E20C16FC34FFFAFFF7DF9472C5987811DFF2F57C7048 0B754194D3FDB1BB53B8636630F31E9065133A99F04332493FC9C0E35BCF0939 7887039DB4CE91519019FBE42041499245514FB482ECEC149E6BCF67649B3C31 70D352F8827EE84058608D92739BB4042A3DE0F489AA0F486AA83E08EDFE8536 F56EC4A9D82032167E6F84CA552BB9537871848036186FDCB7EB5FF854E57F65 1F8E52D37FC0854FD549F000803C800DB987F27C62F8EF386E1FCF71D6F2ACCA 99724FC2E5C22FDA68D32B23054ED82831B261A7237E6BB9EEC5396E24EC046C 54F5766FE35B2A7ECB16D6275651DBF276226D0D98B9CBE609960BFAE094BFC4 913996A74B73CC9BC195E8AFFE85D62E9DEB15D749F5BA02DA37749E06043DF1 1B41D70E77B32B4863BA56B29EF23FF8A9CDF7451C83FE7EE2E1196568FA2B0A 8914BA3CB40E84BBBB031FEB2B0A564017F6F27FDEF9C929E6B1A19608A8EBFE 2F44AA69BD7AC4189A6041483DB0FE7014EC15AF5224034C9692F00CEB40DC2A CDD0BD5DD67263FE3B84A7F66000AEA0E6DB13ABA68E09F3E26AA78EE8291E60 DC73CCF738D6A1E895B337B6698005DD3217C87EA8018906F68376D1A2DBDC19 8C07B86D8A082794A9A7F1A496099F1F58E44F4754A5E462A9C4B9597A180289 53E3FA2545677841215A2B5115534C7142050781178780D2F49C71446B581332 A84C3D18CE04D238831558C1708D6208BD434BCE32995ECDC83A240A9CF76B11 6F0162BF431ACACED6CCF7BD29C03B9C38F5A5E7ACA8AC73D997C480828B7087 05EF0F033B6B8123F40DE32DB9EFE28F3907ED91A2D2CC54613AF62054AE135E FED762812F049EA44CD7DC6F714653562B15B0C1DB492BFC59E34C6DE75E0381 B8D65B17F679FC6535DD2FE1F9908BA097A3E3A242F7AAC82109F71914392567 A8297D2B653CA329F8E2BDADE3846BA6D01561727EFA330239328466F37A30E5 A3DC178A67A039530495FFDA67D4D4975FEC367EA3B7A971E3269EA530FACFEA 5020E3A9BD56CE3E0DEF486D636FC6CCA44E9243AF6AE40CB0FC976E0D33DF2E 02A59806BB1596B724CBC734D80223E94708DE2BA7F59A940406BEB2767AEB39 247CD6E3F4CE4A3F375E7C5388B3F59D283686D160F649B9F5E34C07F5CEAFB8 9ABFE7E8AF1747A945A65A70FB1F8E449F52131E4AA97827FD389F59D347E415 2A962ED39303AEF1A93CF6D512422F3C7A38CDC86BAE5385477AECE5DA3EF391 1D24CCB008CA1FD50BB9E6761E38C9C06E133407613AF58800443F32CB27E11F F7507BE4D608D72543F7692E2DB713F08D1289F13C55437517194C29B9313AAB 0489072A533009B501249A21C1D49A882687966D005B6FFF950A4911CF4FE9B3 F72A42F3FC336D78D23E54FF96C260CF352DBA9399C3D533A1F381C5C6F8D48F 2D1C7D0802A3CEB90CA329858F8493E5CB7EAFF88E6E70A3542EC04E6803AF25 82F5515AF0085680352F68B25FCC18C661BA15B33C111B489F01011CDF5446B0 CE9745A69E7717619C5090B391755F8F6DCCF1D50321133B58F1B64150035428 9D5792E5AB1E01BB9382A2C7DC3B83D5F8C717BAEC8607E5142DEBA280A3C9F2 05596612650C6DA2A887331F1C0C875FA6F0D8AD446677FB3C03FAD8D4209ED4 9D597B7226E35BFF8F7AAD9907EB51A69877F80AD61FD7E67AED65B97932560E DB9A91D88795EE88DFEEE9AE671DB83A2520A9D4CE39A18A88220B7C0B958D27 64C1079941113CBEC6593BE39DED348ACF604DE2AC5FE4DCB70880B4789F5DDE BAFC1FAC7514BAA4E67860B3F12F90CFAA907DAB25B8098670B822E6B2279294 4A1FF46F71178001F5CC1E53E7A3AACB58E44EEB35407EEF7003927D0A807CF3 5553673DB742EE093C2635C73D7FB6BA7B26A2E0E13CDF89A214977528C06E96 4D4832D18F1E228A25A1B08E5745AB779A6F611EFE845F1FD709940E0DF0364F AFC018C7D0DF626497C3032C28D3CC3A9DFB4194DD4AB3A85E3F65842E4D3640 9033A99D2724FF4E2459AD061835C6618E1F8E80EB28FC471CAFB49081BD360A A9CF68685FE7988389765539EF8BC7275CC177D9E638B980A7C3576FFAABE6D0 58F997EA78E1356D5BD93BED420807821630562EC68AE64555F51A843A7820B7 13FC59B8D1A4009DAAA7D85A7BC79A6EE287FF976C891D9A6E492CE5FE74B333 E29FA51B57FDA155A6455ACAD836E528DE25628F013F0AAC04D94C04B735EC75 92B3F2CB4496C89FF7891ABB0F75E657E228E63493F9273928A36FC6EDD10D31 0FDD2C6BE581ECAA985C03D7D0BD14670D97FEC721752D7D7900C0F9319FA751 C0F07B6843D1D1916D53D9F63ECE5EA6C7E6E45506F04A4F88A6ACC1D9CE6FF1 10FB4F96706F5DFFED81A6B2F10CFE04F29923EEF2FEB88BC2A0282E4037CCE9 36BB457FA7EE6B85F2EFABF38B29E335BAED5FF0DFD3C437901FECDFE367A13C B1CA23A3338CA5DD131F038104DA17EF456E2E0FAC9AA083186420ABE61F4165 003FE0BF95441176B3E55D70C0E1AA3057F954E575018D987DE5CAAE7447071F B87E6B14F7CF503D83E941DEE43FF956B998615FF8E547CFEDD9E3C3B588B271 DA22CA76830635420557A85206F4176ABCDC6460711871D83495B194E567CC6B 7CEB074443DA69CD4B58AF33AC7D9B8AFA0B208A66D8CA892386FC69EBE98033 C20A2AF2C009B78C5A5609D3B54437C90047AD7793AE2D08BB276C9C5A5548C8 E22E9A5B741A8CFA6D843AAAEF012940FCF6BAF2C5B9288FA3AB0D106A4AE3E0 284337B732C010E042B26C218BCB42366A781D86A0C48E752406DCC83B2AC336 43804E789DDA71965A5F84ECF74C8115FFA28B23FA77F42FE7272EE5DC58DBF9 D63E77D32D89219A702152BEF6320516B77062FF81CB388A15F87F49A981D1D5 28C49879F5E499649DD7C2181139C8F771BE90DC55515FFEFDF1E30EA9F9EACD DE73D0E053DE0A0782BEF6721D2F7A144AA696669DC25D825F5E9B7B21BEE48E 781A89A41A51549B1F5E5AF1AE9BA1F5F2D17E524C96C5CBF2A8053108EEA891 B04F9971EA057EF95BE3B02988BDF034739DC8FA9DE9F6CD6C817D32A1564F1E C6F4F7EA1E995CA9F010311718791DB7B31DB34CD11211E97B26A891D892570B E3380388D352FBA4DC256194ECF721D1697918B3C8E8B926B6E2E61D58B5CA96 B3D1D4F44B25ED5D8B485A16A330E180982ABF6E443CC4DC893077A1F86BB8DA 46D7CC202CC8046ED509B3AF32E8D6ED83CB80975E2059FE4A36213039695C54 61E74F86BAD5DEF2C0EC65542539CB573167B82B1A9CCC6587F9A317198DC46E C3D9ED8095460E19F9B46BBD3D4FDAFDD958D4EFCBE859D283503D108B582D17 6B554D602E293239EC675BF3F3109EADC2887BE3709968A8EEA769D94B8CB2E7 812201ACCE79BB4FC4FF6D98547FECAAD93B9C2448D878FA41518DBFB8817CEB B4A131FB4627BAC95868EF73522A4ED633EDECED2144163949E491485E824259 C3CB35B4775408A80955F862FD10B8A35421F44014BF348985C7046E7158112D B019D83869EFEE3124B02DD4DB7E52ECE93FB324F992DE0B521B6B39EB9AABC5 9F65679079F8C99E42FFFA74569146AEE692CAA1E777E6162E9727C408FC2783 863F77390B9345DEDF892516E50698C63E37A6DDC0CA2A373E44D127B9621C6C 4EDC6C0CD08819F9722CFE06DA234F020D0EEE6AC5E5FA4688C9FFF5EEA0D757 E74FE2E41F3E95473E1E6DD51D160D38BE9716130A6549B5140DF2C793E55F2B 423B99B07C8DDB7BB49053064DB080412B93829018945E21DB85C30742AA2833 74CAF932D46D885D46542406D0C9148391A5E9FA955B1DBBFB2A882A38B251EE A6F6FCEF0FA787F9B6E6F84EB5E5D9291B47DAE0981396048A5AD1F663FB2874 BF790A793CD34AF57FCBAB81534BA9B8FE4107CD5938E5F2D9FCA5F76DAE16BB 13E0349748B60221B3C4BBFE1549E70D49F929EDC1212C6F8DE23C616BF6EC19 E573C33C791B0516560D45E58EC31B946C41CF80911826F482D917A6709E67E9 974FBBD35DAE87BB22E4757BCF8A7204078742E146CA8985E1FE9D30C5721D6E 8CC7B29EC618CA2986F81259FE8B6BDFDDCBECD3A1E9FA7C81EFB6EBBD8BA371 201DCD4820D5272BEAC7FF68FBD0418D2C30889C632D5C15592D9AF30A4F7554 0ED006C11E2F537E8016BA4C0A51266455570A54BD22E4EA8E353AC31DCD70EC 04A8DF37D37563172F88CAC25B1C3ACBD8019D7B259E97F17B7BBD2635387137 F29D0451C91B961AED9382E1314AF8EFEA168F36C60A4768107221A07ECEA56F 82191756BB8A520F48696E70C71A239A8DC53D4AEA7E5DAA0FFA281A27AC3BC9 3E416F0CFD15F77EF0EF8F73D9CAEA8BD4F3EBF9899A24853823DF9F7C4D5F0A 9D510257CE8699920AAE9DF609FDB9616380C5F3C12511D6685278408D2BF5AA C7108F03AF18A0E06301E09E169101BDAF8F9347E3CA11DE15F82F7651F9400C 089D5ACE59F9353AD6A9709E746067516077D451B920B627C6F78DA5E15CED46 96AA3E108B2070FAF722A5208AAE2CA01B3F973E0E00E413FFA611DC8147CBD7 9254353F36F4E4E634732DB14F2538861E40915252EA75E0C5FC0D7594847B36 4A3F36FEC0709D6C3DE964AEFF42B446DDE5223BC8D138D9E07E76E4A7A69B50 0258AF10F2FA61EA1F01DCB6E1744B501200A6A00B19EED864F1B74378C5581E 3BF78536EEDB214B643A36A441DC4A7077CD4112DCBF12CB9A0DADBA75015D80 A56C619306C9DB8EED4E05E21ABCA7EE502E7B1E048155F6FCF4A0B0A4EF9500 6E2DA6D8A3CADDF665E17F299DFF59BE6C9DEE21F794AD7E6E82B013C1A2691F DD88F8044B7DC70574C59C343C8B0D08D9F25813BA13FBA181BD7C8C42A5FF90 59D3EA7EC54B216475C3226F2E6D1A030457EE277C54D45E5ACEAF360D72647A 7E768CCC61D33A72E996F9E8E57F588E21A6E62E03B23AAED4D695A276ED5AA7 BAEE77B8BCC9C385E66162755D196B775C4AB57045BFEE7CB17B98B3BD659797 B79D0F07F7E928B2979B186D84B705117185F2DCCB45E5155BB8AA34608347CD DB20718EAA7978E1DF233C100307218B1558184CF236FF2ECBAB3D16AD2DBC26 AF021BB8C6DF6289D2F6C6F08FF74BE681F1069A9EB514E0D7148B3C4B91E4FE 65C42B5F3851494036359788CF5FD8E800B60F9402A13923967DD98BB600E20F 54EBF8624B62927337D97DC4971A485BBAE32201F2800BA0389356DB8169DCAF 377E4F771B383D6AA1764FBF802F46662FA55862DD7AC9AF6759936FBF742130 575189ECFAB3F35A602094394AC66C799D5DCCBB1238B6737628E56DA15FAFC2 31432555B5CC5E18C237E43BCE99A1C4C1F2F5268E697E7AEB9C77529C29F7DD C21F4C467F7FB83486FAB7E75099FBC5349B72A3240D285E731B1E8BB2D481BC 0AF3CD383C5893A10FE0F4664D752D546979BDAD3575305F93C96A6B7DB7CEBD 6F60C26935AA8F1F8D9C3FC0CAFF1AE188FDAA0F4D186803F47AF424571193B0 9937A35A69003E660593A41947904C44810607BAFB18BF454CFAFEBBAD098CF0 3EE1D5FCD52FA5B93A4BD1B662918412C35EC3D4E2F0230D12F539B537CF70E4 3C32E5FFE3C5B6A3B737F37E2DCFA2329B784516592E36D0A04CDA9D1C24AF51 972709F3D504BC54D97E246AEF1FF703B4FC8F5B40A37C911B616DEE4C22336D 66BBD81C7D0EF2FA36EDF8594C08FD5C08DA7387519B3439EF45983A3E0404C8 61C1658178E1C3DC0FE83EC18C1D73F6DE10AC193A4AFD107E49D628AF8BF48D 96B2B8EDD899E447AB390772C8D454F055DD14BC162A0F1F53CEFDE714796C6B A45631317AFD3CF905AA624F58F0758420612493F24BB37A88E49E079B2F8AC3 5FB8C52D1EB9DDF2F081DC07E7A1373DBDD807D103AF31FBB105AAB55A98721D 1550A313D2528B9BD02D0CDC31E115820559128D90BCF99A65E4B977CBBB2C6F B460063E42F78D7F3717952000562A4443AA485D6A574F41A6650A0450E7DB80 351B54AE0BA15035218B9A2B0BFB7047C4E02B729D3A3B7C2A1771809FB0EBF5 9B3B0D75F7809F3C77727ED665CE0CC7DB8121F5EDA252F0C02D7FA805EAFAC1 7091424B4B79299C1B7FC3C95FEE963F35C9AD1CDD5B5C57E4EDEBCE7A98360A 9EC25F73C685D91EF9338F9912E47FB11ED746706DBF75FF339487A7C4B3FF7B 285BD5BDFBF4DB948FE0B9C26B9FF9D0D6EE9C3535A8907D0EA7792359727536 9711D023688D886CBE48838678251241B46DBB357A49C7A7A5791B0E13A0A8D2 2AF6542F838FCF5C6519C9AE59F25CF9C116B9C5E59CDAEA35F9B7A7F749D18D 595F8937699A00C66221DD63C225DDD2287CC70F6FEAF8CDA6A0E9FE11DE3287 2F228F6823D5B8831B44A3EC5EFFCA93EF1BFF1C0B7B16732B98EE83B1BE8F82 75FE9ACF7B52E0863F69122657EAA3604E8DD05E04346C083172E408CBB95316 4D0D78C30A0CE1F30EF239CE5F5BC9DC0B32CB0845A37AF5419F724349DB4DA1 6EEEDBF8E1CCF55535482488ACE6AA3F52F6933C887A86BEBC65D22AAD82BA06 46F87A99FB7D777544666E8F68FC22ACF909493697D4ECAF5EB38166418E34E1 E540B3E4D262264F500DAC6CD2AC1138A8214E9F17E25B54DA4B027F9895AF00 4AA7D07DC68D87C9152C0E46EE893BBE0815AB8980B52AFEE2AB8B5BF1CC56B7 33595F7A9DC5C166ADCF202A9B628074FBFDC94FE4F5722743E0242C822E51A4 50C23D8819C439ABB8FE5B592248DB0BACBD4322A8E3EAB8EAD46FE7EA3189FD 04401EE935A242F3117BEA075EC13433D82BB9F6E394003C96C3C084F337DB37 80B8DEF079F8AEC452E9DA468B5307FFEBE145D96F8182479992A3367E850F9D 94E1E280B08F124A6142E44186F82C0A23B4C764E59D9F6E3FC67BDE029490C3 1153EF22024C29FE0F7D2F5DAACAE3173C865CA3163DE1E5C47111A558E7FA84 646C13395D6E27B211CCC182F477837E0829DDDCF3B1751FF75E8D83DAE9C543 6C392137548DAE76BE81B5BEE30ADB2D54A26F1750A23794769AB35870C3DF29 F96004362D6B0DC6268BB587F7605CB4338A6294FDFF0A4DF052B00E46132F67 B36BF29DB4D418C8D726B4C6A9FCF2E420A4E8C8C33D8120EE92457DB3935546 C8D922DC5219DC8BBD7316407DB67260A92B2505B9577572CFE7238BDE677E3C 7920ACF2F7DB5B5884D394ABA1B3F62F934D7F3DE5AE713CC37BD962770F37DE 942E9B95C82B7CCC2EBA81F8AA33822F002C9D10028205E243B831DAE09E92D6 21511857EABCD8B2968092A2D54DB5A4D13F2A4B5B2224F10FD8E081ABEB05FD 27CD6D2CF18781D522128043D34A694FC67C6D401356273038E8C97BF2FA2159 9D6FE457350105DB6344810758B10B2EA8C68918DBDBCEF204F806C8179C9944 D6290B809C36455EA119ED5FA28F10A55F99FC6F65A71B56EE9A4E72FFD31EBB 90DF8B929E806E915065A23BCFB64ADBC7489B47263A213680FA3ADE3C38E67E 08C4FB450D0B3191166ED0910BA5CB7A27189824DF510F5722B50C7887452776 2D6240CDED5DF14F9F0DA069B5552C7A144AA696669DC25D825F5E9B7B21B0BD EB5E2B4EC9EF1BEB07CB3803C83FC4BE066699ED8EBA3C7818D866268C0F3086 7905F86B0644C3D2E6229C0933CF4A100B06515346B48D95B56A049C11FF103A 055F5A1F27F114C1FC8D05647561C1D5C7DDBBA921D0D8234E1BC69AD30D3A03 7DB040BCEAABABDD4220A61CD00F1BB5284434C917A1B30B8B59FA560DA5EFDB 22578A7F9D6951A605E95372559B2F971E9DD853251462BFF5B1EE7E9E9B6E5D A79D1B91FCCC1431D431AC9FD71E78608F3BA2A5A1D2152FB369CCE473518029 1E72DE255479D8E1AA7A50B19306B31D348B9FB2EA8495EC0EEC720D2828434C EF9105A1282D5C9AE201C72F1517BCF3E5D1863B6C651B99165C8DDEF2548DD1 CE52A34D04D3A5C78F6CC832791E32AB6BAFDA475B518230A0CF54F0BA788AC8 8CBC6FB6FB60E18DDA9D18F1FE61E660580FA98BBC61E2FF7C32EC2A0D8E8B67 E275B25F3C52C4F27C1ABA91511835465DB7C5FE70ACDE05AC83013B6D498889 21E456016F54286A0FD0ABE4038E28C1DAF88B9DED9E534B6D9BED63F0A8928C 0C06829558BDCA1C19AD3A13FA281591873D92BA5A04EDF1FEF0DF307B0947E7 F4C640816B2D839E8A497210DE3C85F6EFE29A062C84602997BE87156F5F2684 2B30704FB6D8D882C09E1DA029E716AEA2E16FFA5A475B876CCE4BD1AC3F24A9 A714149B780CBFD3AF672D5F0FC8FB2683102821B9517794A198A70F1E86165B A3F60F28DA7DE21F452216956651A350E0D16B6EBB2B01340F32F4578998C6D0 94D922CD70E5E0F55242EBD34EB3481685A91F679498D29B9D13670F86A034F5 C82C63FFCBF21A70F773C58BF7EE56670751EAF063F2C3CB39A4DF6A5E899853 2D70A9CA1B45CEC2174D0E6422111BB81D4C8B5073BCA3F26F6AC358043CE6B7 CDE475BB6C7F6FACC7705FA00F385367B5A9B8E0C478BB37601D79EB01562BC6 7BDB6C8E2204BEA7BDDEEF6F2D2FBD4E421297D36AB8A7D5A158141E91D31B27 2746A957036BF27C114559DDF063382245754FB9E2D79AC4B8D59EE3AE961EB6 77219306B7449F059AE815812A64C0E1E1DAA031DEC31BC63DF9EEC5ED59A685 8E19DE76F6F7CD966237C791BD82944CA35A6EA5D140DA6854D31056B9BDC795 801169570DF3D7D09EDD6A02320C9B9BFE1A72861376537BA2848F6E1DEC663A 85EE0E8B59A6A52B3C5BEC13B783E6A87E682798376F9F3762D6CE21EE6AA1A9 8C2D76871E77B36491295345188CDF8229A2A00C5E70DFCA7AF281296564B5AB 27BBC9ECD4A24CBBF0ACFA532714623BC0B755824639254C82CE8EC422308206 E8311C4337234ED03A67218CF24DEC9C75381FAF2AC6514832DB56C999937CEC 419D331D717C541444CC9A0255D652B35B7A469AEAEBB485972A80D1C6CFF61F 7871290D0276CDB3B1D41A72366CE29B7370615DF1E1691251E0FBCF1174730F D83A69378FB5974FF7B2472AEFC0F672A5CD28AED5F17B7329A0638379D6A306 16FD824A2C1941F1EE7BAB408544F71DB373BCF31B7117EDC696D7A219808809 BEFF3918E6F23C7D57F379E9BE619F5AD5D99E0489180EA5E8298B6E3B85EB91 471AF83760AFC1F06E051B096BFE41FBDA1C5A8BA288182FFCEC02FACFDB277B 8BB6BD57C057F70FE653702ADFF4541B4326BD6A3FC69F9A2AD4A77C8554D245 75C2E872BCF9F1BD11B8439CE89BF79F3D8949B97B109ED78E7731183FAAA37E 13B1B3B900A384B1DCE1E3403FAFF41294971E32E3308C0DC66CF6525A1C6B2B F91F08FF470A62E383D8A51F9DCAC1831DEE40BBCE64AF94774DDFA5083CAD66 0AF79E4D36B4A04E5063BF14450254EAF189EC8F446EBDEB19CBF07CB3978F94 9C6FB9F5D313FA57353EB568D33FBB7F49B6D4D0CD90B75D3BC68B8C846B0C92 F3EFCDB14737D23D4332AB08B88BD5801921BDA638B481EB66BB00B7EFE75E97 5A6ED1B0560078BAF7E37B176D5AC1450DEE923ADB4EA8D2897B62AB2782F4D0 CE73F455ABBBA7ADDD256FB23C51A1F6515964420BCF74E52DB18DC8FCB26B3F 82991461FE013C93A640B2B66B2A47EE3D3FD7ABCAE6FAAAA0590547BC2BB8B5 9E1A5C2FA63B707A108E45F3267CDD117FA8090EE56338E0CD8B9CA3558B105D D2EE7616669DD6B252FA0AC2D19D29B9830AE890EBC1CC733E5C11005DE4BA36 00067C76724B62BB0C106333B242128B907F82CA9CA946E84E839BFCA8AF32DC F83DC2BD087B37FEF579DD998D23B8215A33C8C4BD07E26EF964BA42A53A0184 21051AAF1A5A44E6DD90525F504D9A60592C55DC1AAE337DAE898315CEE464BB B439F61C37CCCC3B1E68C28821E5B1E366735DFCBD5282270500C7C6818380E3 3D03A09443484AC18A3E2DBF09CA2BA555EFF020D48B4E59D982BF9E06969E6B C5E6DE18BDA345AF8DEE96B23DF5383063C18A403CB09501E27B223E97BABCEC 48E4ACC1536B618CBDE18106AF545301BAED4B5C074DA439F9DAA06B2DEE25D2 EA1844466C7AED0D40835196B4CE6A0E0E05468E12CA2458FEC72FA42B27CCB1 8895F084CB8BD753CB34BC2131562A7F1F31B33FF18099602C69ED3F37597B2A 8076795A99800C7B103AF60A487F2C9A1A7FBEB3B6C103F633F3FC800C90019F 4912B1489612D2E9E418AE4440AA63136A636E650898E42E18D338D884E0C657 A806F322C4F1ABC8CE1843BBCC7A5AF0D15C70AD7451BCCF5412FD1554FB810D AC5153B7E31805DAD043CBAB10FF23E23376F9E0CD71A7D5D51EB5688187B3AA 4BB36B85BC386C3D3F04C6789DD382CEC2720622B237A0DD59A63D81DE41F7C2 4249DA67782CE68883E1DE18E3262F9391A0ED0E7400718514A029D06C85ECAD 39B33097E6C1E76B755BBB0A229F605A464C530BEEF471B11638BFE7B326CF51 7B7EE20B6F985FE60572C02F78E8620719882584F9C6621330332C29DA39715F 58779952458B0305F5D4AF4615C6093D25A41A96447D451BF00485FABFA601A1 AC1544BE674E4BC16829BDA5E25BDD795A3B485C4E8BA1B657347115D51485D3 59FBE02A5640E18838437621296C46A77DFF2F5143F4E234A7D4703E9AF61AB3 A7FC0101A1CCADA63C81354C02E8AE7ED6AAFE45A38B395913C4322586F7BF64 29D084BFC22311BEACB16D8C7A6CFE8105D8DADBBFE699083B3D4CE6A9A6E77A 2A6FDC01B6B522C06F89811D77DA7AA76F4288E1080E63274357078302676BA9 7F4EA79FD2442E8398F269C59F7502AFACEA3867F4D87D315E62A0B46256D13D 21A0F3E62A5D41DE35C023DF0F4DE86700396C920D5EA37CC5FDA0794B98E76E 206BF128DE21AD533F4E1501C20A20E48E353D75E24C00F253F8C2BC1E3DD260 610E528737ADB36C352CA2AABD738C7D95CDE703B0036F2E6A897C1129BF2470 FDAC09CB451DE8F0E059C1495A12C6C192DBFBC67203033A5DDC1CD624A354DC 6B8CB29A17412C64D23CAE1C034FE260C04BD55D5C85EF0C20F607FFD295FB43 88A9CC9088DC94FEAC479BEA6168FD20FC7EE5337A5BF3BF0CEEEBB3CC1351A3 F606C4C31545942E1BD404AFC1D92A0D4254583288AC3C68F7B43D7C4897BEA4 D44CA8A4D4E9EBB451975BAB5B8E768020F161461D7370AFAE113E0B64F82E9F 9385F0A79D29184E65B6F49FA0B70997EF91E15A48B7252C848FAA98D8BB3C5F 8386F92FF523C9CF7B85DDFBDDB2596E3FC84DE557E19C41D094074BBE497F62 EA0924469072CEC9D1839E64A767530C82598C1328DD4509AAA4713A15EBD039 C1738FEBA0A00BFFAC1D4EEACB41D4C62173030FA1E24B58395DB5F1982BE344 4999482E25458217023D041D9F3E7AAF7520DF4E7AC368C74CDF092E53117836 57E210D21A64E8D7A0379EBA0A772AFC9351A26EE5FD47D8AEF8408EB3E8DBF5 2007ECDC6F13FC5D8B93EFD84D2C7F33230E224C730C61DD02B4CC94E07BD577 AA19D09E296FF1924AF5819BBA02523543EA14C3E9EA2B1EFE0BA7440C10F20F EA9C89CDE3F206F8B3EEEE26E682D005F6A1F185D322B9E39CA36405E350FFFB 49B8E747ECCEEDAD8A72B877AF1A20DA99F17B9780A487083D6211FB743E6A24 C600B9CF66D9092A4AD457AF9868F447FEA31CDA064FD7D09900E9E60D3BFD26 B190F8D58E7AB5C1EADD66E9F57BA4B234A495D2D14D574141B6C517B7FD3554 2002AC613C785218258A0314130F6B3EA220D15774F5E14AE7ECF2CE0C6BA6D3 0FD76851772ED474CAD626AF61D88956CDCA2B3D29B5EFA3816480BCF432AFA9 15630DE31CC671753446E131975DC60956414EF481BA9DB708388D61293418B1 8F8286658F70D6AC275DDF739C1C52773EDD39B46F860CE84B2AA20AF611C1A4 EA41DC5D01FDB9E31D9E215018446486E115EE03C62801255582A6318F3918FE C82DA90A9939594A89EEC57A3D96998C2A1CD2A0EA15AE2AF612B0F96E6D2D97 B4C9F9514E2AE78296F5809105B4E7580F6A8896EDB619B45C8C046486714DBC 029FBD1C007D00C748A4AA92D9F4AFA75B1A329E0813E335D67A0BB08365377C 694BE6AB9546F30A791AE67463F15DF4801131684B27EF1D10C9D9547665DB28 A7661778BC47F86F12ED88BD9CCB404C0025F1CACAFA0427C76B8F6BF9578401 5F26D86BACE2C34A2531BB9739F8441D0588BA8C4A3253DCF3D1B31D1A2ABB18 5D2396864E4C0857A64A522688398CF34DD9A1AF5C000FBC78C0F6005194A40C 16D0F7E4FEB7550947A56A46EB6D73F9A0400335FFBC479063BC8CA7418C63E6 B1D10190278470629C8E6B4DF82518ABF310B0631641A08DE7E9F1276EABA249 E4DB6ACDD934425B1D787384F8AAD42A320715536757B6D8F4033C1245DCD815 46E035AD5B21391BD90447D594FC4FFC1386656E219233B3C26499747B856D77 9322DE2831823724C02FAF4EF34C94BBFB2B39E71B1DB0D91E521B589961BE14 212770C320C282D9C2BD68D06D0AD21BEA96605F44F001850AA6354C7931E8E1 D3CE294D4C7F8988EF22F32F621899FFCE71C8222CD59798F153D4F68D364F6F A7DF1B81CC305BBDBF179A47BF5E142AC23779EE80E447DFF7C46401C1F8FEF5 8D330CE0FC95EFD5574FB854E6C3A29F68947160DDC932B3DBE55B541BC1424A FFF444CC044490395C5E59EFEF1521E2AB61F25A86BEF37BFD955672446B16FF F6CEC871CD0BA8B773B3D54C797FF02B1CCDCA484DED6CEB54CEDEDE204E4B29 99A2BB9B50987BBA27335746513F34D53EA1A26CD36F127DC7C0B35C11650B7D 9960ADB212F1E50B0591C309161DF554C3BD187185FAF22CD1385F69B213972B A0FF606F6F34A3207E2B2C3077831C4E078F58DF964180976770332029A57581 9BDAAA790B09C3C1B0CE2F952B923E4A7F8D328B142045C348DD5D0394A680A0 8CC05C0432C4AF69FC129A8052E5181637069BB0A8180740B7FCF0141B7D52DD B10F6D2E011FAC484B64D61633D38EC8CDDA93F24AD3E655FA135C84816E3913 602F615FBBEA1292653049733CA50F89CE16B71F8BA10932B2CE7D9C5656835C 9A9F556ED928BAAC31E773F42B1C88BF2519B2C158B82BC7434E5F2E35467926 55776282D568BACB1DA00E86623D759D4DE7DFA4AA03AADCAA5538191ACAAFEF 372FD86CB83A3F67724A2557F5454B3304349E32ED5112AFFD784521C12318AB 9CCEA70C430448418B62C6DC0946E17D0478883F0F1ACF0D186FBE7D6EAFC5DC 594EBD914A741D67FD19EE399DAF77A879A9D01413420979CCBC5023C4D5E4F2 9319104D4BB548093AA6685BE604413E27357009C96D2FA743FD8B7270374BED 5A825CFD07C0C91C8D0FBD42A501E86EDEA755D787CE9A1D79FD004897273C40 B232FC14726C5C82E3A154624C969F4AA6F9A6905ED48A74ED07C3CA141D0125 3D3081C48A2D7B1EA81B3960A98AD68A133DE46360C24A2A176F366B207820D0 389C5D93E6A8481C5BD51134EA1A38893A283D72749F2AADA196A0E057B7A756 28D221ABB585E1ED65031FB2499009100887EC7420043C4540620988668EEC37 2DFD0A3859481676D5B6512CB9040C8310448D6BC86274FC19C0D3FC1D778BCB F77140B176FF99807D637351CE318A248D419B40EF953622C32AF0BDA33FD516 518FA615CFDF4E44E8A7B1136D45A31D588FD3AFAE9F14B32D85C37F67A72C3A 9857C8DED85270E593DABC45ADC8694FDD9A763D8536897D08295918E80A0100 07BEFFD891721BE86D52CFE9701D26FA3E188A4A52B26EC56E377773BE91E982 7D87E7A798E106696D9EC00C10ADDC2F45DCF777E6DD77EACB0E236F86132EEC C4F195A496E930FA71BC58C4FEE398ED5D75B3C756C8DF33C8B1EED98C1F3D34 E300A98A9FD29CDED57E0802D3A5CFD9CAAF8F331A434C2B38D95E8FF7787C8F 62461AEF96A3F1FFF18CC1038AB03346C3434ADB9E0C988220B6FA09734945B8 B10DF27CB8A77CBDDBC84D5128481A3761386F37042AF46041467474C8D59EA3 F45C0D3271C63DA16208C17C0D654343D80FFA432530BF5266ECE55C0E768A5D FE401D49A03215134C6A91DC65256BE74CAB084F2BB4129F3AFF3F0A44ADB1BA 3A2DF25F8498ACBAE01C06FA509C64BF24D716BD47C1E0FE30672C4BD747DB16 139A4F8F487E4EF624D33B5E43DC1FB8D9CF268B5A2260A36883A52234307E77 57AD5194923600D5631CE466FD08BB7BCE9543B51438EB6B04AB1F6A18C73D5C 68C14211C3167A7ECED5E01BDB0FF01CC9C3D5E40A8C07E85B355BE9E55BD28A 0C583A045D166AD2C610C290B5162262CCF15CB5C6F02449CBE7BE7C3049D977 53FE5876A1A781D73A5E441B9090AFE8AB38B765C8ED0C2D47866D0E6DB558DF 8E945DEEBAEEEFA81445F2B3CBC42E7A51EE886873DD22CA903350F6CD14923D A9C3972B09097BBE3DF19CEF3897FD089463E9F7F123AF7A7F4A1F06D3C9B9C4 8F3F94141C13E77215F6D671ACF3709B4CA65F0537BACBB195487DFDBB0ADE5A 8089E2A6CA318113C04867BFB08C8461A47A2BF8BE8DCF2F5F1C21A1F5F6CD4A EEB07EB60EE253C9BEE5D8A53D561A1A89E63C55C47457C7E197E0089CFCDD00 C8A4262A05B18672F673D0333FEA2D977E986107F8B4298BBF060D3D645FBD77 E78A3E202C938FC8AEEFA7A8F3D10077517364FCAA30DF1EBE3BFF29D567CEDA 1BC37641ABA341A88B678D4ABB750DFFED7FDB51DF08B97A02B2CD797D9DCCEB E7E1793162CB28009CBAD1AEC2327EB5E6208CC432E285E498B3A88E75FA9039 5E23F40CFC43F06753FCCC614A0728487FA2540ADBEAA41DC7CCBDB720CA568A 7FD85EC987034A7F408BEEB4DC3EAA265D4CC015A13EE754F6DA5A7E8DBF0DB0 22A7A7999E06C5AF3C1987D585C5E7CAB07CBF5AE9779869852D0FB62CF15759 23324BD0366B94ECE9BB7E2F659F1ED05322251AEBA023246B52D5A2E2B2B163 5D6C22ECDA9F71E3622274E6975BF55AC6A9D56E75C29A376670D4670B56FC77 AF8C98DEA9AF341C9B0C245FAA5E5AA05DF2819A46941A20106B1C853F30F44D 7FB5FD17BB391D072177DF12E1E48018F66C7F954E240D9C8A15FF9AF2BB84AB 3F3AC0489021AF6193F03CEA369429FE5B2FAB162C50C1636EB32478898FA879 F7680A55FF4463DC2084ED19F5CA894E61422C4CBFF04379DEB05F23E93B114B 9FF74A98E6B8206ED5C2A0159EBC42659973D78B8FB8A16A34823ADB2BAF4239 D99D2314753DE9D305C2DE5685E3E8F7177E423A46DD5FF76C64559F1EC1835B FCE5956D9933532C7BADBB7CF4CD55FA589AD888547036D6E92F6D7F7B81DED1 152317E8B1F2EB393762D23224DD755190FF296E8F9DB4BCE9A2CF0858D7EA3F DDDCF9C57ED1A0C85E3FAFCB55F369A507D0D2DF2553E3DC8FE2B4343FACEAD8 FE7F9E3B78E6C04FE88A5B04A4391CB47CBA4B21350548CE0DD244BD9C4E9E58 4A9A6A065D42573ED673AFE7EE05DEA9709451A3FD0AEFFDB51CEADE8B5CD695 49CA044B73F29CCD0957964BBC0D2316E7235DE8B0A6CA0F1E765183E512F45C 1920AFF5C1FB9C045B1E63F2B5CC7BFFE8721D228468A59E6179E1AB37001871 A0D6732062253981729274F8D83959D21587C85B3E1AB786015BA721032BC3D6 EE0E52BD01DD19C8200B72CD253A4D24CD7E8CF2BB80A9DB0B30B397AD56E947 707DAB7371EE1B2E96D2F960FF896E7844808F10FE100FE4818012A3B2D88448 0D6966CD3C28132F66E7CA042654477A08877EC54ECF496F5C39AC871E7179C6 9028A69CE59B3DED098DBC0A73E5A87ED5DBD33758152F38F29A8B0A727AE45A 12DD471C96A28002364D64B0A398EB0DE7078568C3E7B213EC14FE582AA26F68 D09A9F401A3B31CA55D9E4C2D782B1DF195BBC7D917F81CB103A0EE96F1675E9 DF0F5DC9C1E2E9BCB38CFECC53FEE8D194635E1E136DCDA7B01C851D7945F421 3FD9E36BC82117C896800ED6AD0BCCD5AD2B4DFA57B49F3EC59DBD2C06E09F9B 322037CD12AAA0409482719BD7CD2DDE89FA473EC1DFA2B97470CBC539F4C864 8CF1EAEE5B68B3B70EBBB1F3E7DA89ED30F160126028DB8128B9D91BA9D2625A ED5DD0F695A925F4EDE5CC049192EE549275F14E8E942BE08E7C21E018649DB1 D93B7D79A34A6EC8AD183C9DA1049A8A769713CF7B5E080BD438F91E1BB10DB2 9B12844EE724C2DC0CC1222C30B9E6985282AD26DD1952B5DEAB94600A3DE290 0AE99D25508367B61A91B11ADCF03446ABCC45C0D9B4F6E03D2EEC7B13A7D725 A964F23FF9AEE8227479393962345DC5D6B99F512334E928DC66D7AEA98941AF BA90E3422538E5E6F13F07C82AFC45B269A484C066FE3DD694F301A7B2B8CA17 F5489CBACF8D373F8DDA0D26FAD45CCE342F9E6EEC6A77E199B3B62A6AEAE092 7F73AD0B75C572CFD0E461A1E8DCE6E6EE5B3EC66DCA7DF526A1B76FEAA5D140 4E1B2F8C848283871928BE0B21D86F23F26E186FA5891AA700B1527D4808948C C7252E412D17C213CC58C889959D2A76A84FA49B9D5B9B964275BE67483494FF E50F230689687793384B3FB8DD49B75B0E21C0B5B195933337B261E73B4669B5 0AF3D5999759A503B9A1416608A95FE9984605BE3EE05233EDCC057148CF0916 F9CBA585712A88774D70CA3806470E62436D84AB87CB8860720079167E8D6CF0 5C8053472D1E8BF08CEA25AC1ED848D4C64B3DB69F42A213663AE281807157A0 7F1CE43C7A40517C56F33E6D80029CDD8B2C676510BFC71FE46D1DF17CE70627 405B90728664FE2377A9D13C2A864C3E89B4F191B4F5F821EB71F2F20D07D62F 368753BBCB53344F2F4EAEC0459E58294CF5D5F6D245BA1A70517F63498BF9BE B112F2A0E284CC953A2D77D1EECCC6EF00642B753083509C4FEFBA6BE54F763A 9AB3BCAAFDA9F9AE8AF5BAC78391170D2766C1359CF5AEDA72D176E5101A051A 1BE6E1DB450E383DCA87C0A0333D9FBFE9063950193D9DB979E7CA60E20A87BC 0B4E19471D55A570290A5172F97F55B4515DA0066B66EFAF6B6C417543FFAFB7 6A8999AEB9604937502CDB332200AE82B55828B150E08AF42102191A75E7B5FF 455D2DD21AE063DC682AE8C7C23B593EB71DD9EA968203A8A7B00649F0387518 E4FFA0A4DE062275B2CBE0943001454627C9AEA9CF82BCD1547E04675307374B C896957AD9B15EDED7F2B5FFC38074331878B5F1C16D20C27A067BB6E202F20A D85178CB204F5484416C6110E8692BFA46F8EBC1FE8419732E881DEDF6BAA764 3B800AC4278DF5142C53A3906914F21E62041C83A078EFC7689ECBE0715E922C D08634D46CCB7BB976F79E87620D709B1377302B7772DF2FBBAC8B3E90270F54 0BE54BD4BD3B9010E2FD7F686C8293CF5CCB616CA52B809C10AEA7DE3499CFF1 EF4DD9EDA56B78EC79ADDECB05056CA9B630535F13B4E2F8AFAD2A9FE031D7FD 01AA2D5961B83F963174144A34D096E7A1D54EEC39A54FEB5E10E234A644411F 3C35224022CC19B3C7A75D56A828EB99F3157FD41936D3A544A8E4FC3E84BFF6 BA2E8E72F0C85ADE9F8C4CD2E76D1F18900BE3FAF9333A227317B7811F0246F7 0193A582100CA91928B6A9642363D5011F4610767B86A67D6EC5A704373A48E8 33DF0DF58CC0B766278082A8123E3C5722E777100BC30B1B2017DDE81DD7C4EB BD3E6BB0078CE0033A398F89FB1C73BBEAF76B4BCBE482226FE383B741DDD62B 8F893D582DBBCC8EFB352F53F05F57A1F7F516D6CA605504D7B3A50946007D03 339F16C96387660DF58B4C234F1257747064384E85BC940898FA0C10EBEC0676 644237C34AD9C1FE8CF1008B7ED4940ABD42AFA36352D32ABBBBE612D4D9FCA1 BE75A03D453AF6BAF1E33451780F01CD8CCF07B264E7D06BF2ECC217F38F5D9B 49434E41B50735559AC3C185056962FC3D1C73B5D4457CF1BA8B12C22E5AD0E8 11535C193BB2A6699BE0F9664826A64F7E9515D7ADC147443FFA85E9266DA24F 02375DF9FF8D05F26150FD98460E3AF0C71FA54E185C7AA2220AE9C8F8CB4B59 0B39F3A641FB219AD6C42BB7AA9F12FB3150B3F77AF2361BD3FF667C51F798AD 5C3FA8665C563125C7C443CD5CD881ACA065238CF77A380ECD1927C1DA3FFDE9 F19D3D7A9EFD2D72C6A7DC276F292E9BC72AA9ED1B6024169615298E2BF2A7B5 2FC928C6E2F540B06EA2978A405234D03EE9B21F7D481DD1035B97199368E863 F66AA3C79D9C39FE6FAACD6DB7E2C75FF759C8BA8BF63C2391194DDBD7406B44 5652E522BA8DD6E1F4123040A9388A973305A1255A3F4DF78F908F4920E439AF 20EAD2E208FB1A5603B52AC6B49128B779978772DA8CA2A67848BE1411206CD6 5BB27EC8A1588C5D98EB6F4CD5E17EB154910364BF023F55CFDC1B40A0853ADB EFA0B80959E36B28DB8AD74A7308CE64D05197975F98445B0358910EC23B6B18 DB5B4648E224600F89983E7633B224DC87E762FDC02D59BE3FFCFE4222BDE29C C71B6FB67BA8B8E133FB3A8B7A2071757C81B41EE3AA0BC455B896CEAA2B8F06 A707DD03010B7064C4F89361FA9EEE140578F4FE31BAA5670FA7122F44C35045 CC6277424F0F1A95FAE812626FA49CF383DBCB7F3AF5D9B554EBF21083FAD63D 1BB135C525A81628B0B5CB7E676E9924D3D4FB8A84DDE03AA50ADA055CEBADAA E09302DDCCD70F36C2B3240EFD73A49E7B2071E28090FFDA020ECD67570C3424 20D8E3F5E8DB49A5AE36E0CB4F098C9F926465AE9DCC755A356D491113D0EEF4 A8E43087046200AB7B8AEF2823AD257AC21A8E7DB6132E9E4CD948DA3FE4F7AC 738B81E7490703D6987AD2C9E9EF7CD7A3F441753B6FAC55008178D37944F15F 461823B464A0A518741EF7B6E3ED700390DDDE1E48EB043D5593F18FC0433001 481CDA5CEFB4777E6F57728A36FBE79D8143BAF7C0B625F94B52103FCAEEBBA0 50088A5C25DAB80AB7C54232EA9CB7F2784C721CED28742A87D0DF35C87BBA6B 55C02BD4266F9B042E842A7D3114A30708ED508E7EDAF898DDE69383CF0D59CE 333DDF0CE8C46E9F154457C527BDFDCC44BEEE3E96EDB54E22F59ECCF8D07852 70BF60F5518F8D2410311969ECAF05F219E7737B29E2C05A947DDF25EEC49072 163092782D4F288FFB8BE033254C4B07914623DE9D923A20EFB7EB4A836BD1B3 8442397FA63133452B6FF8420B0A8BA842720991B8EB2D12D85A6095B4F0BB47 F76573826573F626DAE9D618064E260FEB579422432A3E0DE66DC6664F8890E8 A0C796C4F137FC7BB40E86BE2EA1C92BB9F406A665C80C576255CF3B6B1C9834 7E07E14182694290C647B7E7BDB09969E2D3AD86D02F30F9695CB3A27F28B4C5 381EFD9D6F31A669F7A1848C5FA35EAF559BBB97A773A234A5CFBB84E7318D5F 650326941F17DF93DFC850E84C7E8BB9351730B0B11974B65C94E548977EE80C 965CDF511F416EB792752AD559BCF02A848B450F96CB283A272690940C511886 53B9F281E5645FD79C88ABDD114659B92A7CA71A52616F18A086A31A70DFFBF8 A603D7951CAC7C2E219B8947E5F3FB4FFE2AB3DA6439B923C7B1DE7214856F61 A76F24EE24ECC0090149B046517D1DF7D33AAE860CC289B6DB70B23F65923E82 62B38C2EF08F5B1C90F9A25DD4DA24F51F97654F396A53AC62F170A4E20400F2 915A1958DFCACB8CE0A6EBD46CB2B3C98443759C7BD640311D6D8EBA41BB5EFD 83863665962B1335E6F0D085EC4C0A5BDBC2B501EED4B6B51FAD75955F981B98 66404E71021C873E190765021C23D4A9F68B69DCB5E721A3E06995E730F346E3 43A0A7FD889C24C50E31C029D332A3251806CCB019834555F0B9131A940D70FA D8EE7FD0E9D4D7FD7D122970AECAF7BF3984835A3327875C0A1EFFFC05A03446 60D9F10B143ED3A0DA71F0237805CD7E4E6BA0069229B5DD865E2751C4CA2BCD EB760ADC732AA65BEB3BD1DDCA0F571A9435493D4425136B9AFABFF40EA52729 8BF4D9546B315884CBE8BC828FAB5F134A76E6D3EAA43103D7B8F7EC33651177 A408B1D780A73CE10217200A162CA102E41742C37BFDB37AAC9ECF6E70920571 3CE59742B3B709EB34E1EEE1132CB8AAF71DB8AC46B5B0EB1C39246A38434812 01EC7997641D21F3B897101F486502361CB23C3F5BA90F1C99A8326231606015 0F34712FAC7D6CD1BEF3BCB965AC96AC45A0346E6CD4797145420F14AD68C71F B9BD1A9456C7CD64C203C2CB425936FF00A4C4579F6EC98FA485C4B6830C7C5E 7C0694AAC2C149629B38EF0D206FDEF89C90014A97273A301D4865CF4681A17F C4005495A9D88454D98734D1DD866A49A924D8F308D19A8A74FDE0ED791C5E6E 7951B6CEB8284F779AFDE3B6EBB113FBE118C060D570CE6BE25E86398AB975EA 064AC6DFAF40E87E59B2A40CF2033550A0A9F98A9C7072C9C2F09358AEFF42B4 C32E2933A51326DDBB1E140348CED9D259AF687B75E5FF330896A929E5166572 82A9A5201F7167F4EBC0ED94E37D141F81078E06162FA8CD6B01B4DCC456F2F2 69426AB227B655D1F792D0B21489B6BC74FEA41E4D51B3A434EF8B567F84CEB5 6B301824CA9B3F58E3C873A0FF267399CA0ECB5E579CC8D0A87AACE13C6608F0 3299153AA7932B0A5112B3907A7BD7F2AEE9212E0D2E14F712CB4AC419B05E1E 9FF36CA58FAEFE1042F3C70C036343F71C98BACEE5025FE90E31C9FC008E5E8F 48EB7237B217C7B72CA802240F271853A21C815E2B32479F51821F9B13240CB9 CC89CE087A3B7035FF279DADC0A994E98788AB3381AD4FCC44612EF270E09C58 781C45097BBD5BAB3F469FF1DB5B14C09C543080EC018176291C5B6A01D0B2E4 658F7FDE18B7F60A44BD6095B56CE2E505F263624230F766B7C4A76371EA9683 E2995E291F1834036347FD9E846D4D3417DDCC437ED6737C428CBB5782E1B9A4 CE1B0644B977512D24FED8DEE385579774272F805981EDB5CFD8B83F81404522 4E8F4E3A727130005C72BD616AB78621DC13BC88A56063E51CFE4FCAC84902EF 99DA9099427873D1788DABD31F265653DEF6E9D2345ED8B97EC3DA0B288F564B B78E015ED141D5CB89005CBBFC4B6C3E4463FB1B5D7DFF7FFA3470C18B9589B1 48FEAACF6BDA885B8B95C65F195060D9A9099CB5319AAC754DA15C8995BE1703 3F5CCCABF238F6EED47B81C7A13A0F46C48192F95F43B64A13EDB6DBC38ED240 2B738446BE2C82D24C1F20212D7D4C35E40620540025A2F2AAB3AEB04E19B3DA E9FDC843A38521CF1BD7806CAD6C9BE7DB5615877E767251B9476D52CF738949 0B35875A2C649DC553172F59BEBABCE395D3AD45471E3EC2ADF869257B8C3ED5 E65CB619F24621149450CD1121DA173661C71C5CA9A9C58D01E55A6204756973 2387BDA6FE23F9D9190608F6D9643EE19EA5ECB4F5BF8C1FF3646201C1A21394 8BA1C6575E71D6D52B28DF4115A80FD9C6DF772555EF47D949A19589AB98C9C3 FCA3A75F7A55BBE290570A10CEF8B75EF50455480C460F58FD3A9D5AF77D934B 8AD2D7459F7ADB8AD557C72426F9A1910DA6896B5EFFF02106C17C1DB05643C5 70B00B02576E583C5429E12C44D76EC7F8956541FB89043728211047C0E859D7 5E0C665D5F186AF7BCD2C792764EA374D033FBD9816EF7613B82046E3145C123 58DF75FE67F50F7D3E5453E4F15B79B8BF6E22BD8417D596B0957AA8C874C039 851AF0D4298B99662A0C359757F5B7CFD8F7558EF79D5387E25A81610BC2B35E 672DEB855171E25EF06B1C2DBC1993E732BC2EE8F0D4EC424BA661BB20894BB8 5E2DB3E8D3A7D55BDC7EFA4CCAF72CEE8FBB56BA846952D2B866AD03ACCA0783 43B8A69A4055AAACBEF8B3EF72B190B38BD12B90D7E42A3D810FB43CD192FE79 B0204928A37291EF98F3B811ED89A528476FA491FD31FE97C53E906A83B1D87D CE6005C34F0CA32B28525DAE84A40D6051260C6378E5B9BC9A51D28361DC8A64 A3E3E3DB67569B7D9A67AB4A80F926398CB563A61310D66E6BFFE868B6924556 1501918F9D71CE2B2E285C9B1E81559E9B8FE30E6FD77C62C7C5129B2612847A 71A08645CD1767CAD68F83A54790FC3F31114B6BA1A6505FE64393123CD84139 65BC6B94F1DEE8B4F0574764325E937B9C74115578833C5158A93EC806700A3D C1573C7840B655A2699FE2B5C3CE468CC057167B2B3DCC63D718023B1A6C4A68 F34293C3FAB27B352791B7FEF132A38CC12BE37E652FBF6F6B018289FD34757F 0B0E47DABB8505C8EC6047FE599A66F2DB475B2E136CC125CBAB3583E138C397 9B1B5C7AA5A3C5BDAF3E336090F307594FC729650BA398CC15B47D63B13299FA DB12B803DCD99DBE017208359C6376B56C1328434A8B7DA7AB9C4BBD5F91349E FBCD14A321C2BCFEA6C8A3BA0BD91031D23593910FEA1202BB50B6450F122BC1 367B5D08D2A48F4781B73E4D39D4ADACC130CB8B15A68B19CAF698256821E95C 0F73766B82D5D8F8FA27CA3218449F5557EC4E2F296AEF9EAC01FC448E502FE5 D2CAEAEAA961B9D265E1D8BFF6AA48055B0B2F24E64A33C5B7E5B059DD58CCB9 1CADB6185A291E6F4909AAE31B6584AD5FD7D95D9B28139892B0261DD35E7580 5D834F27B0C8C749320821529527E598E1919647EA88785D2CF80FFD8DE5DD99 417850F3D020DC9ED35802344797F7EB864017018D92C3E076DD28735B5EC4A9 581E62308F77237B054A5B19C3F37B96BEA74550CBED4657F304EE74BFE4FFAA 3DB410CA951167A7837DE7847EDFD14E13334A43942762A6B743781CEEBD3247 FFB56376B22D7BA50F7E93E6DE32EB5F2380C8ED01C75CFD4A3162300B2338D3 0A912132E2732D0FA6E907798C6CB6EAE6288E771EC17F7FB9868B952A303298 ACA73BC087DD4CBF0F6B036058584C3AB270AC4E29A4A537EC3864C294B94512 430F8EC4BBF8C37CA1A3FADA9F94A9AF22103E6A4722B3B8826913ECEE90EE18 24898BC76B3B7FD39C3DEAD73E4A5C04955757244ABE1F8E14710BBEEEB916BF D6B07D219F3144778DBFEA1A72418089D1AFC61F1C66CFF15EA66B2FE77B3019 EF6AC0D5FF2DD3E4C5B9905523D9B588D6B74A4BAAD3F2908604F9BECC272A11 5CD867D7BAEE7FFF183F4D5602C410B90C20674E691551C63510D0C81A94557E 59CC28F50D72181B9BF3E9463355C25768B63D21E632DECE169324942AC7A10A C34E8F5C5C5308945376F7F0DD27F1519D11BFFC783A5B686D4B9BF0D212BD9B 7919E07B6E4D9E5C65CE6CAAC2636DCE74E285671C18F066A3F9B0A011CA3EA3 EE913D009F1145205640E38314071F740CD4A761181DF70D3FF4A5A0E304375A CEA94E872AFB355EF6B7C7C5133EFA46D1D3080C6B72AE995CB91AA2D23D1270 784D7170FFC5B3E7DF99228F464C85EC4588D67624F48B3A38CD2BE7582C0A15 9FB9381028C22EF3C553ECD3200AFC2873131E83D6C8CDDABC7F436CE7115354 92CD18784589B3B1DB853EE94DE1AF0461B9461F397B143E4E05297DF48127DD F3ED3A17FECBAFA051714900AF9DB8BF9FAE3814A8245BE9C4B44EBD36922E92 028674EAB3185CB7D6E9BB9849DEAA1A9F83B44079A59DB6C396EE085239575B AA041A1E5CF10AA5AFB3F0356F0DA9F6C7BD0274309F611E388D0D12A9AF85AC A08E46639A43FD51A0D8DEBA527DF739BD2E06B27B42BA79A4BAA1D77D0CB5AE EA9F3D917911FD0A611BD4AF5B230D0367330D0478996D81E8DA09881EF06F53 7FA0D46CCA77B2624551B25699FE18930E342FDF9DCCF8A0F07D8D35AFB5B68E 4C13728A66CEC1D45031CD2DF7DD9AC30584DD5BEC512399AB6A94931E2B9B72 531CCD6D6B9E82A5780E48042A94B57EC3ADCBFD49F10BEDC69D991BEDECED25 022EC818DEB9E74E5E5BA440EAFB7ACD1BC7C01605FF2803C5B385811DD8B1A3 BE005250728E9F69E96618CC27F7EAF59B019952425B020CC49EDD5CA09E3543 F6641E09C8B14266A666C30A98E4151ED0649FFB5BF5DAA620894CBB62730EFF B19A37F2EE43A2718F52565E4D970C5738E5BE402F790B17CEDF093B006B3497 9F8B0A49EDD01608027FA99E43E8DB9F3FA51BD84D860F6D2EC27FC9C6A6497E C5B4B5FB0D6EBE88F74620A13BD054CB5B1EB4D15EE5C94C1F0F8FB8DE1A57E0 1F063FDE994D3C60776C95769D01B999484509E166A1C5837043E4329CE2E670 5B54FF6BE86864A1A85BCCE4F58B432424D659BB91BD1DF74864CA725BB64CDC 56DA2930EDE601A4AF00F2DEC9EF31C46D40597AAFA7A24668443E37FF045EEA E7210F0CCD03CEF2FAE3237BDA3C640EDAC7CF0507B468A67916D8C3901DDBB8 C147148C71096E34FFD6FF2689AB8B6D7C7B9E9936D30511B701FB9A30188149 6EFECD944707CDC9D318C75FBC17A8EB337920F042AE1B0146DD793354EF3EE4 C48CD0166EBB56752954BA727609F788FB1681541A73B7DFCF96E1B06B7EF89E B56E4B4F2095DF983909609663D8E3AAF13123F3560F8C58C4CD8C4FC150C3BE 8D552904FB5330BFD2517E732C5995A701E74D1DD689631D32CDFE50E4036460 8A3A69B8023AA6A82726E61B1FD87D956B27F8450F7A3F38284A98C2F4C4080F AA085F20AF76B987A44D647CD0CE22030A1C2BC066E817B1CBAB8AD7E33F06D3 1853C1D8AE458900BEDE99F9A73CA6E646CD05D3969EEC424DA6BF6DE2596C72 B829A6CA132C67041FD3BD9054DEAF7F594CE6F4112CEB09D733F4BFFE3ED0A4 03C2B8594AF3AE3CFBD64856D6A5EBC9BBE73F36E1D4E90E05F831D2D03BDD2C 4D051564675D14A98B80BEE9B2218D3C1381F47E6BC9691344D9B22062923040 DEA39592E41AB628CB361D3A4D32487D1DC002BE00CBCACADC8027228F077D82 C73C76370F84D2B75695903ED40E52C44DEEB0D5690A97FDCF9931C7FA203836 EE4D21BABB657479DD047D48100FC21198F4FB337563272C9EC7791ECB2817A1 69CD21CB0E5FF1A3DDCE3E7CF73DEA03CC2B298AF55965460B6E09CC4E3631E1 F8348A9771134B602D8A2BA67D65A77F2A8BA7D68D5721DEA8B2CAD5CA66E9E7 3A013CF0749663D048A9E4BD55D6F834CEB12B7029560D37BBCF5AD530A1B978 CBB95A57132293DFC65A2209DF5C0BE7142DF10F6D27FF0AD334FD5AD0F4D2A0 EA7D5A98771547AC7A13E958026312495AD41CA980F08ED4098CEBA1EE04629C 8F327B3A68153A1C4B6450F479CF3493E368ADCA6CEBC49E41EE7F7B7053B4D9 EDD3B4A0F70786C05EBEBFBFCF67271DA5E7E9EDA1B031F532C28B36AFED72C3 C4B8589B9C3421CB472CEF2E0D75E95FFE4011129DB121FD680883327F2656B0 49703A6C9AD5E356DB8F293E8ACCEF60399B4979991EEEDC98C131C11D0D0AA8 904D995D096CB22DF54D8042C8E105A2C27427FEBCD9989C2F2B4268005C7981 49652788F821D960F1CBA9F6702E83C8A43C6D47A13A5C59951482EC72E6F39D 4D3F7D4EA9D6DD6CDF0BD062822B3D78FCDE47D6F9BE09C00029157B1A68BFB6 92DB339D4F5FD1C7DC8F2EAB78F1668F8D5553981A6C544D0366D74BF24ECB0D 363C0356DBE83494EA66C38EDBCEDACDC2F77C00A13099245909ABAD2613208A 197D7CE44C85EB9965FFD37C7E2874F759DE118AFA7D7288FAC0C14C8751D38B EBBD986C8742A9838D59731A4B5465B6DED862387624BF415C111E33C3784414 4DFE874487F4D0CBB7B946FBE8B10FFB2CC2E2957A6F6C4F6F0A9D3F0E3DE7D6 0B126ED870C9F8DAC5843351CC524FCD0B002C2DCB80CA864B6624ECA310C681 35359396227A7C1B7642F3428C4A77191AB13E55B69D276B1F9E8E980829777F D689F4290C36FE55FA0104199A28B8B9DE2869F4935CD02D4FB53D3210D5DE4A 2674D01C40F8523334117C1A48BC2386514C61F2546F39290C4F7EC4375ADE92 A162C8CB3987D892FCB94143DE636CD4B012E69CF3EF68BEE302B4B7AFC883B8 E76F3E6E03BCC4E4A5635220AD785D6BFCCFCCB8F61E4910B2CA208696AE476C 06C875505A34E5EB392092DDF3F539160E65B0AF7387CF4FB0F91FE720E2 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFBX1440 %!FontType1-1.0: SFBX1440 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecbx1440, tcbx1440, labx1440, lbbx1440, lcbx1440, rxbx1440. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Bold Extended) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Bold) def end readonly def /FontName /SFBX1440 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-218 -316 1652 915}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E4875AA0E2F461BA16EADB32842B6D00C76EFC613FE56C 378A7118B0589B3EE5425457AE310AFB3829876138A59F58D965843B709A0F4F D1AD54875BBADFC803A755669491D9E98262991B9634084E8E2BE46EF805B219 D18DE35ADE9A8DBAB7AB761864BFB6A27E5B421C32CEE4569624D9308A32B426 FCFA5CEB883444393CD7A58F9CD522BA73E17492DDABB7E00B2F6BE47F585EB7 FDDBFF33F1B5E5465287717D1580105BF3929C09EC621CEE9606EC49D7051A00 11935EE728A2FD47BFCCF00C93EE54910F77C1CB8622B9CA129D466746BFE1B0 594A9F0C785F6CA67161EA1480AD4EC6781B9CAE9536F5D3AC6D447F16821F77 AE2705279CF3DF4E1E9AED81A0CBEFBD61808E2D59AD970264A5B66D1F399DA2 55BA0AAC8EF1A1E16FD8240D577F5E00E0040EEBCC193F074FEC48DF30882551 E23D64EF84283F9640AC5F60EB1F26CDB79078AB0C0D97D1D6297D092380D4B6 6A2099F06A513A78A3C3B82A6DBD985A0DCED7150B19FA42991A3D408FF95978 15D309AACEA8C5C0AE812F50330CCBF47B4759C550D49173127DECF05D783DB0 978A366ABD3CA7D9BBB6652459A5E19F9630CE75C2BC7BDFBFE0EA3D8098CBB1 98CBE02F196C0A0C5E976DECE72778358CF8D0A79A8B5629A6322716CBFBDEE4 934E8782E716185235712845BBD03896BB5C45F3ABFC920F7595F7E64231EC76 6FD974A9546D7D4EF18E899A4ED4599128805F5F221014E3FCFA9DED61B94339 41A5D49FDE9003CCB87F12C13E9071E75E133F9A94746DB7CB534D1AEC95D57B 12D2EEE881D8E9EF87B4DD2118087A03CF79E3F4CB04601265FAB3AFF04E83D0 E9927B7F75BC0482995C51E6BBBE93985558AEAC697BCFFDBE3B657299835C47 63A6985CB387387BDD3C19684AD85D74AEF3F5ECE47A4507A5A161C32929867F ECEA06E73290E29A0CEE1EBF17AA9F7497975BCC04E2255DBDC15B5BCA10DB82 A08487FC064D626BA54D3765365BA75142600308DEACE428BB73B70041FD50BA 9A0DE43CFEE8737FC0EADF3FAA525042F972FAE51A0B0538FECB246C8276C5A7 698AFB038EE8315657C2FF0E631D16D7B35AB356E98C4852402731B1E7A79621 ACE90F9F56A47C16373E04F3E875B734CA0E705F28A9792E72655F4CF13266AF E8AE202EEC55E2278AB3E9CA87CCBC6CFB22842FE6408B5E53198522C434869A 0C67906B55C3B35F5D15667D04A4E55753145228592C4C8FD307763A3CE4A6ED EA771A3852812CC5D190E130D25BEB3868DC84FE0F3EE94BE87BA9AA105823B0 85E179913487290CC04CD039FB34D9EACA56E7E1B0F3D3C76B8D7AAFD08B7CFA CAB3BCD6697C7F11E8CB4A9D15DD5F56DF4FFBF19FD303AF03B42134373CF8A4 0C3D75B079C508D2D5E9B7BFA63949C6C3F6ACDB5B55C268CA4EF2AFE35798B9 08F5087CBF8C7E7EC0E9DB507F1DC32DA7C5CB636C5D632E91864909E4EC1201 4E33B72BD8EF887FBB5314868323AA71613301D6A4D5D54C632C968C9361BE5E 42DC9C42A738E9CE377C2C5263F85D216DF3697FF039F759090FBA65CE6E9AD0 8A7F035020F72E625FDEF6C38ACD3B1982F655B10A762A9164587DBA6DDA6D6D 4EEC20824BD3150416FFCABA5DBEAAA5533F3FD5742AC798604B29286261F305 D2C995E01EA145A96B1B1CD6C9CA6EF42DEEA17246576BF1EFCE9A8C95E447FD 020938E02C1D26003FC51B9B845C1AC0711A55C6C0DDCE98CB4DE8AC3CC9FCB3 772DFF81306027235D2CEF17B3B44F4DE5338B95073834D79F74EBB11CD2A431 FE3103AF0DA9FB3F148B3C4F2213690D7E1DB47B800B006887577A6E2C553DB4 457D94ADE420B852FF8A1F9E63D05D28B1B49638CD589B8E089DBDE2133F3540 E1232B745025D25FA16F1AFE32A44BADCEC8190320BFB07B8D314CBB30EAB183 C398377A8B3FD8E0864FF2F95B1A8F65FDC80E3F59455005CF89589C564BE309 ED55FB41D84F04AD9F17160941A797086750E57C8B3C1C9228E4FDC6BAC8A3A2 CBD21CD3A62A29B60894D0D1994BC19ACED21DA7797BED307D53E1ECC02D9B27 CE56376867A124EFDC7811C168273F8F2C5A5134CB028DE375C405756E5C5613 1BBED1C34422C8A85C4123C11544005BD8C4203897CC9B65D2F728DCE0876AC2 0486F7D845B1EDCB542ABD1410D8C03AFB3029ADCFE2BD056E837A08DDA7B66A C8339FB858FA84C30D28D89D98EEF722FC9EE46958A53C622123907B4E9050E5 13A9FAFE2DA4119B317AE028A280BCDDB45D9AA70DD9CC8E7DB77CF7193C93E8 23696380552B2277B7C69443C8922F2845643E74FD3632E67034A7B72C0CDDFD AEFAB79879360490EC0AA4A4BD7DDC21C2B74E64288CB8E60588DBB192A0014E 80BF9F9FEB27C2D8530825E68883E1DE18E3262F9391A0ED0E7A3D2EE713CE38 4BBC5B154BCF99217F8DE851FA4D9EFECE5E28DEFF5011A06D5A3439C338E6A4 7CBA39AE6DA19468F8185B21CA2629FDC600FFF5C9580B3E2E7557716A683727 15EAD7D8545C11F061463F09726B9F3174BF88E4B7CE8F110BC72462F08C7498 98EF2B51D9DC1B256127EDAAD6DCE266E94137FCDD88882DCDF4301D931C997F 589170D82A0ACB73580BA4030715A6133C7929BF0F08F586A8513058BD937737 ED6FA58D0496515D1B264C93CF0C156F51920356A5E33226D8E748A96DE01F45 E3776809003E6D283D4C511D52B96C2466FE194D253C3234BF45D2EBFECAB2F1 BF8D6EB6EEEA1134788B1083AB91E1376AEC28F7A626F8A214762B64C0E1E1DA A031DEC31BC63DF9EEC5E2A3BE34C39A4DA2050F4CCC3C7439CCCD8AD58F4C24 DDAD2334BDF9A390CB2E1C51D2184989802EA2981180D66B2A4EBD6E2FFE0F56 4ADEBC3013D533E5D9D6EB14058281335ACFA705F1CAF203698184EB0F6F28FF 3893BC62D9B6CBDF3078FA1141201BA46E311A4A793048107586B13CD2BBC825 84B6F8FAC2F904F1AAB9129E639189365E4CBE015BF312EAE4271B27689C9969 A78E9D5A39141AAF786D5195F016DF008ACDF9D23CF6D17699B54ACB77531FC6 0DF9E5E30AC4FB02F9A8A04CA7FB021A67C49BD73551EE33D8347F92508F6E04 02BD9828BDE367D12F9A5DC0A06F7528FDDC6102FECAE58D2A7162FFB88A41A7 72BCECC4A90327065C0F6F58CD177CA56D015F934406642BE1ADDD26DD780AE1 0B38BADBEBD0CB6355470557459D7AD4E8D86E3CC62600301076763F94D3C156 C2755A08FA58A8917CA80C31C45E2CDA98B0E7F904534CBC8C49FC0FCBC50CA1 46A626C909CA37AC9AF549C06ADBF2F8994A6BA4E313A646C97BC507260CAC9F 0847B2723B1FD08C1AE0C3A90864CA6025F0C790B2615D87EB3C2DBE90C79FE2 4F1A8368C2301E3DE6320E4F7F571EA1D80C45283A7F60D6868BD38CB2889D23 EC2BB5E90E23AA96AD55D81795CDA8C21B738351E226C44A4426027713EA65D7 1A4A5E6C8CFC9FC38F8F2EED99D23A99B7C4EF5821393B4AE1FDAACE60D5A600 9CC1644BCDB9A47C5F695F6BFC7B1A41B641BB1A506B03CA1FFD3F22C2AE7352 47FA120EDE4E5300648677894724D13A676C071F4EF3E84242BE39FD6EAFD991 B8C6FDF9FE1DDB1815D29E4A3A22DD7685FEC66BC5A81CF894930AA638706E2E ACA33026379BBF46A618D8F66D65BEFCD869F009155E87FE3AF852E839CD5ACE 6E2A0119B5772316A2FCAF0BC5CEFAC0C07BBCEB51E7B22833F54B876DD8797D 2B8A8CC58EBAAF03B07C9F5B68D68B27DA27EE97737C7D1AA33264DC83402B8F 9F05B00ACF13A6D639BBD9DEB0B3B90C04471362FE0B422890A6E424B703A3B0 5D871D43A27E2121D4D20CDDC1E160FD5C97D2CF680A107BB21E02B7FA0D331B 5D0662B4FE3DB0EBB35496A4B55F95151805F2EFFA0034DB8C9D30DA6008CFCA FCE32B7C0B2501E3ECEAF367E1DE67088130A07C1DA3EB452F929BD8F3C79860 9482147DB6F8688CBB543F9AB18CADC24B14EE5388592BD478B2CDA73CC652DF BF9497E34EE79C367DA074BDBD56B5B411CBAEB961956C9A98A22BAE29AE3805 2D10B536DF4AB5AD5A3C8BB4F51DFB1EC27932CE46A69D77B99233479FC9E095 ABF00763CFB145C0DB6E51FB9A5ECCECE43AF3D0044C4AC6EB75616404C07814 F63E7E6A6DC3079B9F15DE202D6F8BA6AD48D934EBD8860E78086CC4991C09E9 38354A0C68937970064E752B9E5C612529C9B9A1CB54A3BE19E1A0CB2353495C 0945D09871001400B2B75AB5B810F297F4FD1C087564AA39AB966589C1EF1603 0B59A64029BBB643503C8FF4152158F9EEAC59113402DEDAE8E9405DBE46B78C DD8C1F27E280953FB8FC62D84EE9FB383C131BE8F85C95571926E0240EA4F930 DDB4CD897B15813F788E17320F4556B2A41CB83147D06B580C3A67A90ABB7014 FC16FBCB4AA18617D0FFB24E731CD17E5BC41DBB8BC8D65ACFA569DF0709204F 0BA39D73D43E91115F3BE196C9252A0441B9E9E66869724B82B61DBDC1C6F261 121C66525184921BBA169218976FF8B593547E5BA9CEB548E54EA57F452E3896 BCA6B355016E9772CF003361E12F2569A42DF985415F2ABEC93519F85D5CCC07 C07B6D3059CD72BE529B96547A2A8BC0F291309CBDB2032C787F32D062500248 D94FB243BC6C65BAD30515FB0058AFC3CCF8B7FB7FA71528AB20FD66E30EBA19 D3263E56A8E4CA3919DD362E1A631F6C028D065B8B0570F27483514EA2316F9B E8F1E7842E0406D0770CA937FF7D516D8F22C8F7AB21C9BFDD5FB6A3EB9A8A4C CAF794F922361EA7984902A63E039B6FA09CC7A7204076F9FF18B37A143FC607 09344274B026E8C2A0F1A167444F3636F7220B1B569D60627641CADA9751CA57 27BC41F581DFFC5021E4FBA621CF27AFD953C2E8EA728F26CDDEC6449AEB7269 86BEFEF72D91D30C2F804215434B2DB8C99A27587045571BA21A4D8821202836 DFE33E7C783A1C04A444FA4AED1FB046CB95FEF4DC3F5D4E9DDC3FCFB189C9B5 512F2CC36C7A40CBBB96C89A3D0A0426C5357F7F712BE98EEB5362A67A12D1C1 2B5A5548C8E22E9DEEA79A210FC8D93F0BB178B36E5C41F9626085C94C8455D1 11E0F5AA4EAF9537010B07EDA49733A27ED7E573BC74AB93B42D625F937127BF 301D1F805FBBC2B0A3D09383E086FE312E548758C771FA68B1555C02ACB743A5 9384F0204E19F1B558FB4ECA83FA4572B3CA19A49432C4DC5E6744D3D19D5185 ACA7EAB87C34A0A211DAAB7DD2027469CED155D216CD428EA2B13CA3BC741690 938016E74A9725CF1209168E68C0A6B5EFE740F644E197522E88C941526C7811 B7A83BC03851EC33B6D56F5BD022F4EF4B5B2B0A5F7DCAF841ACC7CE18093417 1169D8669C5D711A3D47015561B50A9784447B363872C805A78A4C11B426EE80 4942A07BA3090708B98B1EFD70414E57D4042F81CDC0EFFAE7F99936ED273E2C 7B4349D3C803D2E7C6B298B32B59826BC6E458F0D8A43E34700DB1229CF0F762 58639F4FB3F7422FC91F216AB382AC951464418C326B5E42682E9F4A84EA8286 98BED9792557A26E6E104A080B90090F78CEAAC2E92F4608AC9063FF90376492 3197C303F5FA2B258BBE0B7EE204C0691338EF29C178C0A82E1EF5332C61623C 1E82C61DC4327D30B4B88CF4DA3AAB2CBCCE9E91164223C03AEF5A18D4380E4B BC02B83B5BB9D562A05B63B409DF20C182AE9EFD4BEF8D1F22FAD6A28B3F0E4E F0228A3B51158F2D234A96C10FB17EA26549517E0D292F8188D0A4B2BC7841D3 548078A1D224F3681D8D2D8B467BBC003D420B4B56C7F6C6BE63344998E91AC9 C177168F047E593115148840254EDDDF4833B5B48F8A92F37B0298BCCDCB31D0 8249027D050C909E9252D1E91FF703B4FC8F5B40A37C911B616DEB3ECF4B7194 86F719117362E24C324335A5411ECC7BA802E945602657190A61F29068B3C9B2 F410C55C0A720BE26B2EEAA9BD18EA4347CC7C797466062E4DC6C940133F9797 F172A70EB2D7A48EE9F803E3C9F6D68B2E5F651735173D22A9645EDE0693356B 564F0AB60F558AF4C9729EC1672902C0442B28D2E2BA32941BCBF0B7EDE7186C FC7CBA3E7E6432C4420B870792BCE5BDF0FBE0A0B46F7ECD10D8390E91A587DC 9F82B6BE089C60867D844A052AF3F25690A5D28CC037546AF5C6C8E0F6A60CC8 F8CABD064949F62EEA444BEB2FCF16D4AE84E928FDC8155030869E1529250622 6BF88DD99F3323786E4FB400B9A1A37ED8019B294E97386886EF0D79338C083C 728998BD1AC0D43F1AA653A9991C24AF51972709F3D504BC54D97E21C230B911 BADFAE94C5789D864D85AAED9BA870FEE08C99FDF1EB77AEDEFEDAB18C6B9196 DC520D599788A86F9096A0F39C297BC06D7A73FEA9D1AE580701ECA6AE8458D2 CC5B7900EEA5E61D3970A8E069121F3566A8FD1B9ED0F05B39EED9A4B69F4881 D91B2C7FCA29258CF7AD697B1A54AEBEBDB8C753212CCCC9BA822F8DED437AC9 B7A2D6B602F5B3E136BCEE7A1B5A6C364F15AB4729215EEE75B087251284B145 3E2FD2F2C26C79ACD0E11ABD054DF78F7233BD99132535224C724F0D03DFE321 AA77AD96270F0C23D72E0E172C8AC420BD0DA240FDB4B1999A47A5588EED8FF8 843DFDCC251B505F9F5A80DA6F99F601D495FF18182FBEDA5E0998C4B620D656 61CD3809C10413AF0BA074FBAFDD10AA94330D7F6BDDC249097FB80FF907EF86 41A755898C004F831ECBA1C6E90825E410C04A558C6857AE5CBCB441E9B74F7C 0D54BD95F313C1F14C320D8BDAF66CD91BEEFFFDD234A21FD81C60A2DFD883DC 48BA1CCD8368BCDE5BA120DA482DB94A661CE600FFA01D586FFFC05DD36F778D 8BACE7F5AEF4A9AA5192144E65B0F10EB696F21930ECE3CA6A025B0EC8953AD6 C2F443F2718C33E729700AEF861D6B8ABE14EE86623A1DFCD1CFC7725D52551B AF3D2187685FC2B48923A83CE875FF3489FADDFFBC47882A5DAD552CE5B02A88 D47844071CA1862050C55961581CDBD5E2D5B3AC065B4DE49CD5087B6F2DB3CB 010C0898282051FB5E06385B5819398DBD3FDD45B5F5A18A5544EC30B6691EE0 F0B1FF208368AACA89B74F5234FEC5732771684619EC8E2D95998E840EF13CB1 A29D7438C4A02CEA00006DA31157A08C51553B806DF4EB45A4B062E1DD1B3231 33D69CCE7756E5E5DEA26470B231194E9F050D47731B05B17E627B68C4C1C9FB EDD240AA3947D7578B0FC696723E8C52F30580DE8B7CD982EF32EAC93508D544 A070C12CD77701B9A16DAD8F1C576296E39B5243489935816F201E58AB078CFC 02DFA5BB3138561A4E71920B4A195DCD10E13CA8990DCED9AF70CEAA633D7B4E D7B8ABB45C025943692D4DFB1E628A4499946ACD4A643BCD5B18DF45C28F916C 8750E0A4F7B79B49C0F2ED4395E4304274B0261417F5EBC99E1C5D1A0BC88F0D 4AA0D42BE364B046992248D93379FD38424F2F4D9B3EB2B8262D6F40201D501D A9BE93A5DD581A3710687D040FA435EF6AE78766657EBADF1BA748BD6F245DB7 52972F028E73F2316B8FEADC5C22F767E211AE9F92D5C55490AF3CF392611266 EBF2A4004A089BAECC35E02CD0C14BCAA3C3619B45795C4D2C82DC30F78DCDCA 0C179B7644517394AEC07F7494ECE1A7B6587B86897AF068D2B7D258F9672959 DF6540680DDB6FBE126FE61C3BAD677BCCDE708FC1DA5F510806328186199C3B BAAB24862F05BA793DB31D5E979F33CC01A06CB1368F56B10F6FCE73C4B7BE0B F44BC40A21CAB57C5EF59318F155CF537A9EA529B41BBE006A4EBC447DB71213 10F54E5EAA28202676EC35E129DCF3221EAA22BC8C71256BC602488CBF10A628 89512238ACDD24422887A74EB43265417493DDE1B88BC2A0282E4037CCE936BB 412832296193C700E02D24F6990A4E2CAD5215A9A3E2B926AA680E2F12B76852 6D0450FDEABC51DB2FF3338D732167761F12FF22794BEB8FD23F075861CCDCE7 37EB44FB2FBA950F23EA0C2159F02112467F92E881D8E9EF87B25943ABD6F2D4 8C4CC32FE4D3394F74C6FB102D68B5F13CEEE6B9E23A0A45A3D1891A1421CE0C 69502E216DAC7BFF3127D068314C1885206AC8BA6EEFD1C458B9F2751C67BA83 F760ECD830186C1DEE5D73C1C5BECB4644AC8A2A53B9ECB870DCD89031AE30BF 39EB6C73010E0A15B7D1235C3D5D345E4D29E60029D09E5059B8A6F45B31B89C 3C2C23378E7B9776EAEF8C6493DB301DD90A9915459CE1EDDD606AF864C7E6E4 1FF27FCB489A5669762BCEB8AB14C848C1F48FE08C5DFED4386AED68381DF68F E78C17ABA0D11060874059C8008FBE2B96828E595490DFE577AC4997516287F4 ACBB5922C725B9FD9BCCEEE9C5B58B6AEE2B56D12D33F599194A044ECEAAAB76 099FE5A54C778DA40488A92FD1CB2588F59BF0193A648A1665E1D6872B1FD84C 811B6463598D8E0C675D596C6FD3C83DCA37218175C6011F0ACC4D1B5B2FA351 A8BCC7A50880B7038E8679EAF42B6D05A070D178A1CA1FE7C27C18409596D179 901C0CAC10B249A2BA2744E04DBC4FFF499F27B52F846625715FD9F7C696B164 0F39199395D7959395C58AB32F79BD9CAAA657A12DBAB006FD7BF71A1826D5F9 8FEA3576D093BBE85B47388FE076EA8C17833876B152EE9EF247F1B35EB9C623 D410939938B4FE99943461C701C5B46D7C9E9F941C8E907BE44E9545E4C37F49 DD648CEFC050E13EA4209EAA97260D94D1B75BDC15CD8487475C87CF3088089F CA24633F614A9E2D828849F98CF9A16F66CA459C56A3D8AE5525EC33FF55A0ED B029EDC161EB20D1D6F380FB2D615104CD4EA79511FAE694F28F7445F8607C93 AA7388CF2CBBF4E2D47C0B2589283F5AE6AEF416A375B4FDED008392B5DD0B06 8D6EBDD4858592C23F4EE13244F8E8FCD31C55093EC814CA49A3065A79629D39 0EF786681122BDD675C0E67D55C4FBBA8C76364CF29EB8CEDE663827A5F25BA9 6256A53561869C084C5B8517BF362F5EF1E095D43077D47D7C7B621041F008A9 D74A2CCCE77BADAA0DB9F4C15739916855ACE75D72BD92E6C89F2D268B3546F0 557469F319EAB1AE084AC059FC80159929B6E30B5C9F39BF447536211C7F3583 C928AC511AC78C55193AD8B1736EAD500AF828107004F29B0A4EDAA170171A3D 203C134B8B706E15EBA812C50D0933E7273B009DC8440D9435B786CF4611FC13 C058EF5A20705436FE0658EE9CA27A885C33EBB268537B20A7B4A2639E7A6265 526CFBFDBEB920B8AC2A6A33619EB7C4B5C4CB761AB31A8646DEB04A257A002C 326BD7314E3B36D05AFCB884D550997B965BD283ADD44D7DB4B9841278AFA69E 2405AF82571442FC861301F4357083C64A1E28D0177929B6C7CABD3826A149F5 6953BE837CFF6806F3BFDE9B94904F30603DF495B087FF9E3B2C5B218CA7FAC9 0CF528FABDE0C3204EA4AD13E84E11690039F8B89617A1CF9B98D6C762131E1D FBA0130900405E649EB90036D6E803D24BDD833D9A2B22D9F3F7695CE74A1FBC BA022550C45D68F66EF1B00BA453343FA6844ADA6E929F1B78B8331726CBF508 2F51E7321382A32851B7E47C20CA3FDB13EDE5F3BE6A28BBBA24338B8723DF80 E5B89A772C8480DB9C5DEC8E64AD4BE97BD8F0A189C24257B2AE311E3E3B09FD BDAFC2139829A8FB16584CCF1A947B3C623C1E0BCD2B0407563E6B141DA4E10D 7CCBDE013B3CCC73B23098C202C4978B0B4768F9F1415819300DAE35E437FB26 9366E8BD66FF768377BF8633E53898AF2FA890E3DA4F77856A3C7139F1DCF636 E88E955172302DDC81B41ED6F6CA71B402F789C8C62E9A088511DB8144D8D85B 8C3CCB73D298FFB1E47111775343192C5C571D4EE45BF11F1C73F1D27B1C6FE3 A2BB41D1C03F7CAFFCA4F64C76529E02A585AA57E38AFBB5932BA3DAE979BCF7 629C76464EA039A19FE0567340C40D9AC30E4999910AFC67FC6D190D51CD3204 010339CD7657417FE127C21587B2BFDA15586DAB0F3D90947C94C9D4473D5591 A7086D56E701531C981D0597E43B23CB83A2DBCAB4916A201EB1A40B89E87549 4366AB5358837BB245A455D7002E38EFAD8921925E28CB8EE7E862E8A2B2EECC E03CB4842D827CAD3CBC248CAF6A049D12A209ECAE36F52AB3DA276A7EEEEA67 0EF0964F1EC86444A4466D0AFFB8791D59846EF15B4632B6E41849E53FC40A84 280D51FE61924E7FBE024354EC9D409A6C7069C0FA5BE2CD4E02D80CDF925264 33240B0B1DCC43A1538FAE45D1B02FABF57D81FC3743A898C666D89289FA3EDE 8997A3FAE720AA240146113BDE623F786CFF0706373CBF3A088C74C194CB2CA4 7D3F8EA1FC212A17276ED54C2626626738EAE496FABC30628C5507F1D0E4C35C BE91CCCB7EC1DF527313FCA67A64299304FEFEDBCF82D4441924D50A39C564F2 C4C91D130D4AC98986C54B7C3CB5E6E37FB3DAE116DFA181E014DD1136203F29 F976D26E2ECBFA9CCEBBD7947B768E4A9E2ACD4BA1BD85E62E06BBC34E1885BA 441BC089FED23AD61B2D6CB66CD6BF4C74ED4AE77739818C77C9BAA099E65F64 A379F635012CDF509B2CF760AB25808E9CA4328E33B5261BEA38923F1CF13B14 B69236D8A79DD4A8E0C35DD478F66CA400301BD2C4692E599E8BBA3F8B0D3C91 FC4B4A481F0B6482355FBD7179E7038CAC1EF93C280ED71BCEE0234229DB7C8B FD0309F63FC3832E4C5557A3F88AD5DA3108A291A0A1B0D7A0D9933AD9C9A067 59B5C9B2065BF365311727A9BFA41F87EE42C6E63791F60C618B356C53516023 043CAC25A630DC6BE62BC7B79D7F0A4AF9942732B3312A2E70F4703BFBA9EEEC BD57D99D9858A9E044FF36163C8671E3BA1B6827108319B1D48D24D6FE389988 AC62A7F35277DB7CAEA62F6390BC183D6860EE0D8F09CFCB180ACD68E18C8694 A1CE08D2D5E9B7BFA63949C6C3F6ACDB5B541F09F33B315507BC8642F48A03A6 79E33FE1C07DF1C789330F4986E648F9DC82107AB39071F56567A1C7B18D6372 5ED7106CB266304C696CF5AEDA24F2DCBA940E1C3BA229BC2E9EFC37F08E99ED 48352198C1DABE8F95EE84B41CAD74608C8D79CB30F3FDE18166357D0343CF24 7D4F642B626C62849EC073B09A207337C5B85D849033E2AF4BFAB88937EC451C 8D855A29B4CC5CC50FBFAEF60D46EAE0650DA4E413A915CDDFA9A1CD913612C0 FA582790B32F9E50F554BDD274114B520BB02CE52B464780FAA79948BE079A91 D02F451BB71F63D8021C5DC8EB0AF422E9551CB8DEE052D6D47A478EA7A12C28 90F8CC8043EFF1E391FA17FF0CDAB83615DB54D1C7D9C7422552AD23625E9F0C 7268CEF3416A09DD968F949C6FB9F5D313FA57353EB568DEDDA1715D157BB3F1 73342CB7F3702852E3F4F24E56495FE3999E9D14E2DE51FD87F0193022CEEA22 775D9303FF223D8DCD14FE87817994B9AC2AA60286244B3925AC7D595F5BCB87 FF41B8EF4A3D033CE816849F3177E6E77F057585833553A532812F9BCAE4F8C3 81D2A44A5A55510232BB7FD60BFA348B6C6F5EDB87B5FAD548E3AEE8B60612EA 1310768FC3E362C5F6D78F7F3A3C51E284DCD78B53CA0BF076AD971B63A4877D 396F849B19310C1AB95C1E01F539C74CE73B2BE62154E3661B0247E7619B8C69 F19908510DAB08B7BCA905B9DA50C4BDB1AD952A70175418CD2E78FEFB0ABCB0 06353643D7FB8ECDC8970598E6AB0E385830AFA54C4F86CC36DFD25696FB3564 D06A68B3DDDAC0160AE93D10723F398BB50251D861E12D65D72405CBCDD84837 AE6D76AECC9740A7A0D4A1EADD233ACBC08C6FA848AF4E13BE8D1A08617A2ED7 DCB0FD61B6D57BCA69C7C9CDC48F87AADF184DB8651ABBB338987E995E848595 E0027D58C187468D09E8B3FC86E9738D251CE8ACCED62D592D3DA9B650F7005A 34CA900C7DF666D3E2E6F9F0128D8EB9415B815089F5ED726D4256DF9BBF61B7 4965FE75BAC7FC7A6812DBE91E60A0559CFBF0634F027DCB0F552D820983423F 8080E6D0AD337E916B76592A8D637448FC3B9EB4D1B824434FC3DAFA42416583 F8E09EE530BA1D9FE09883E39712D0277B325CC6540ECD955FEB3D89021D6015 11A488D250DC6A85C3EF4C86B8CBC7DFF25F79FCA9451EA11D2BE04F348FB6DD 459C43D130CE5C0AA447F0566396FB4B7782BE7BD8453797950326CD14EB99C9 CB7934B5B613D477175054175A89C04ADA9BE53A8BF085066FF702CB06C70AA1 D090E0116B67FC7CF67104B26FBB91F3F315AC5C3D5332434667F08CDA339924 36786B9178DB6574B7A97C7C4F3F033FCD11ED33898E6917152FCBD33C115121 4C2B052CAB8EF8971E19B356ED8F889C31AD6DBC9EA4A4A6EFE9B7D6928BE419 41A3FCB512FC84BEEADCA2AE4F1A1BCEB919F48A527A50AC92F0A46BA0B3B19A F6A20E796E7336B933189BD36F933469A9AF83BDA04D56AC157B7ABFF225C67A 8C73C1EDF03B5F16C7159B37239267EC4D452741C515C88CCA35C6F8E12D2932 6FF6207C16CC104B3474FE56CA3B771FBB0FE770BBD77432A6D797182113FA75 D986E6267088DC760225ED905D98A99BA98A4BFE80B45093472AFB5EE9C9F02B 6A719E675A8A36EDE8F6DC195E944C66427CD4F6F6CFE3429CD0059A9FA98737 6BBB9D5DDCB246145D9A1D669FCBD966FFB84E03035437F3ED75324BDC9839B9 35B1F1F03284CE6F2E298B6B357AC2EBB3121717B1B2B710487F931A5DCC2D07 57B047D81CDB756B23C795FA12E4B03CA0DE37EF1317B1421932183603526800 FC8E127CCC379510D200CFC267A26D8F2653937ECEA0A18981B1F9EF97591EAB 67707E6C6C598BBB6F2AE1F1877374DE94C1F2EE49AED3967122AE7137E19AB7 F8DAC3A8D3966C9832860BD2463AEB6CD33B324B76A66C330DF8E47BC52478C3 A5346D153EB20409F295F67DC12C830B842729FDB9E2873DC545967F311C9FA0 DF99E14BCF76530FD861E3A8381E4C7BC260E0EF1E6FE19A87B4DE8A43A53183 FD79C41B41DC7284E273BF14AA2F33B09F363E89E47BAAF00EE934737F41CD6C 5D5D36D95CC122C73846D4CC5828F71FD761E20DF2161B08F39756E710899846 364CD8ECFC1AD064C5B36E0777972356B682134436B0DEFB5D87909D8BEF8DF8 459F1AFCF2836A36AB59F7F6268B040BAECA8B33865EE699FC0B3F630089B486 9461E45455D0ECE4C5AD914FBEFFF1410AE9D1F228951E056FC7E17729A55289 7A74624F1978245ADC0EC00A2AB120CAB5897C5A9D8417A0B5EDAAF002F66EAD 3C52BE11536F24E19FABCDAA463274E871F8791F33B5B59C18D63A2585D626DC 1F0627C4F44BC75AA0D66DBD9047CA00DC0437E09693D068E49024DA3E3E0521 C9D3A425E77C10BEE0E5EBB904C13D024523E714151D4C394EAC35534343E382 7EE25C845C393CCFB2B652AED1EC42F237D04C9513E2893E1788C1D1DB450759 1F850355C2D765356072389F7BBC26102990E062BC1338BB2B732A1B2FC4B1F9 42D87F704E1355DDF063382245754FB9E2D79AC4B8D9D9E268A56B0158B0EF87 38F65C347E47E9C5A6C9F4D3AB40950DE8F214DB1ABF8B795E163411E452D336 C70F5FEF0809580742A01652CE1F54261D72A456DBD9A6BD665497842F4EAE1D D83D97BBA099512BDA161577A78FAB7C1F64920BE37418F9ED22231C74BEBD52 9CFA779D661A01F891E2EC776EAF67E0E44452438863D588B306950873DF8AB1 AEBEE06F0A0A36E584A86BF1BD10D7ED34732DB14F2538861E40915252EA75E2 A3A6EC128DBA3D5427137E8EFF765ECEF95154A44BA1C8623B9B70847F780627 08C79EBAF3E49D426E35FA4CDDA6FE3EAEDC5AE91409CD02A66A36E0EE064E3D 180A2E9117E08EDBBF2455AC2E09DAACD30A86AA9565D90812F329580C8536FD 4B0288F8BAF6A30BD14A3B8923239EEF15B3B97852470355C66E0F2ECA5A8AEE 0DDBB535193DB8FA64AD97F3C06A8FF7B6AE3FF4E0C9A5C6D5D9FC469607B0B9 68F11E7A21EC8AB1545725457DD9818B17FA62A315E423290FF878C8A850C76A 52F92BB4BBECC58D564A2A4E3EE5C3C32B02C62C906E10075EA14B3058CAE06D 2C416BE7CE56B996FB84316586EAE09841F97C6899E866C57E64287B2BE4DAC9 9D6CDCA14DBBE4A677BE0AF1B361E2AA58980C12F15270D171189099BA03C2C9 4A939F0557A0939B5898ABF14DAFE4CA472D2BA51C89710D3A8CF93BBE4E16D4 177B3DAA697AA4048EBB0EAB7B5DC8670EB6567CBDE5018CF2E5C49524482B09 84EA7993E58AAED6F36DEE2A2DCF1F6B62F97B1EA412F525E9985F09DE8EC180 522A90FBB1D6436715F4E115463FB71C01B2C65AC5DDBDFD60266EC57EF3D0C6 66BDCBA12A38A89BDC4CC4998865C10FA7325BF329193741C11A83828562B66B 27B6EF761AA5923D3E6DA00D11B0C3B23708AFBB897F101BB80A110C293A8790 7363FD2082E7363B612DBBC52D731CF38464FEEB562DCC8A4949A7BD6749236E DEB175E2A08152E6661195C76A6AD3B96FD6676C0AE998C529E3C214868978AE 61B32492DC9FF93B4B709A9A1F8A67E107A311F50A8669FCCACC7455AFC8C031 5E0D5509D331396ECBCA8CC575E9C2459EEA57B83322C4E5140FBE6F534C893D 523EB7873808DE2677A9A461FCA7D8EA099DEB2374AF53F953DAEC243FE25DC8 5F44E84ED06A69B139F8E136797BFDE24078C8D01D6B2082A8718A8C70516CDF ABD02B5CDD2591567BB42A7623E77D6B5C58DBDDFA806CCCDBE9B3034A0BD56E C8C8B9C334CA6EA3F43CA6F65F1BAFAAE6AB8DD58516F54291575E3D70D993F2 EF232795AEF0D6A65B67F36D6280B400AB57A1D9CB0ADD4B0E5EA82665DB7ED1 14B76216DCBC8FD96AEB8309583145B6F959CD0F21D4C95804432E91C7ADB3A5 B3869A22ACEB907E0B92673AF469F082A5AD053D7DE63DA346CC260C1AD3B59B E8915DB690D8D57EE7018A3670FD551FDA591139CF049A6D3E3AD1BB36DB4233 C557628DA0F9F3B4A0DFC6CBF1C53BE0B858CEE5F6927BF70890C6612BF7608D D8EA2571CA7AD147F8A95C9DC17D2740848C3B02C04A77498E1644BEA3A5DBAD FC5B327128E40B7BE445DBA6AA91E47431E4874F529E4AF2FC051BFCC4831A04 8ACA4E3E340A55A5EE148994E2A18BC898F958A847A2378C2E4E38216649FC20 5280EF22E6BC9E50D69CC1C4DFE20D723F0B14C0627D7D708F42C2A2C317BB8D 5E39E0F335A0CD2CB6423DF71438C34D2604E4824D6EC2C87FD59BF4A2992CAF 6C7314E0DE18B061FBDFF9AEFEF7B85EEE239D5A6797D7EE6443E04D616815B0 552B1788019A7CF6F4DB1D80F66A13E86C1C9E409C4B5B57B1A5E6E94DA23335 9CE7DC17F2D86D581289EF8FC0A3D0A82B2000B81F1D684CE0D230F220CBC734 D80223EA72B8359F3CE7EAB4AA67D1C2C00DC64D41791E781181FBC1D5C0E493 3AE39EC90E0EF39DF5F10250E19F0E7A2AD33FB1EFE8DBC1326B0ED13886795A C67D6778642B394A9EC03747B878831A18A998EA942B239F297DA30B34BBC1F1 6C5D5064A6882BEE82ACA462F7D2E0499502E76A357A30E508E828E42C876854 82C8634BCD0A5E04E551ACEE65E7CB44D964C8DC0D7061BB5933F00DD74EB0CC 65A854F5497E0682023755D774FCD1B7ABA6D1251515CE98028E74BD731323A8 36EAB564BE76551DFA3B9BDC3F27E3A488B613058AB48EFABD01119DA5EDBD2A A07DE07D2F621F06A21CC61F2951812B810FC32EE511207AA73F54130956C1FA 349AC397C991664FB30A43ECC482042321128A2850B277BF373A0B05CD220E48 38C1431A90B2F7627A78DC750783E18A0C12F308B4D7AF3EE38625740C3D7C4B AB0226A6018AEE83C2E70CA49B79796C8728C1F6299629099952B3AD0FE92871 374D3BDAAB00F07FA14A96BF7477CA8004B5B357839B2E32F4A157D0B1186618 F74973F9172F02EB535278B18C17A2F2B808B6CA3457549219177D6A3B630296 48BCF941B9003448E2CA14FF02873677075511F53056FA9162001095A9919EBA EE56E7C60840A87A43B5BF197EE0C552BE08EA513A6958FE2326FDFBC1DD9866 3367D4467918DF5E5ACAFED89154E79D34BEA2C91FF8267F2A1A6141E66BCD8C 546293A7B8F67785D8B7C97677CAA521F2FA825F5A12FBE8AB0A12BF34C296D4 E090665434F6CBEAECDBE80B51C45E9E6995255120CF3941BF3862430281BBAF AEBF6460552B154363833BF00AF9D98AAE0F910F9B8F7C55A14FA8CB13D52115 9756A548B1A0C5343D5B1B985240D5BF0962A3441FC76E22FE429A591302876B 135B3971335E7878293E7791497A86BCEB30680EFF6C95ABAE40087C41634067 3AB3D562D9A94882DE83BD635C031ED8245D43100765B6C386837EE5FBDF1992 8A1CC02FD0DB2F849EFA52833396A7A5F37D50F05712202EE1DC4C7A8F8F6398 C79EA893CF60D9756C8E98C78EE2BF0A3B5A45754554F262235DEBC63B27CE43 8A82FC43B62EF0B63DF1E0F985CC0E9182D1D47AA3278677813C90F0026A9F66 ED3CE6A58EAD247DD1444E90CC9D1831458A31D39EA3873AC06EA0DF87A486CE CBC9338EB365EF31160F058B9EC07CB4ADCEEABEFC8F10033844F1CBE97B18C6 EA9D0401C542CA4A691F73099523E7605B6DD81C388BE51FE61C3071BC90A86C 2CC213142EBED5E0C726C342D7E5BC514387B4C12410EA3E161C317F319D1D08 54FAFA702F3A5C74F1B22595A0332ADE635E4052D7DC808DCAB80421EF5978FE 6467BAA3DC912FFD49BA308EB1FAE49499062A024F4A0FE9BAF74DC1A9F25B4C A7E90E77EE4A9B756E7A24D1C4FA1F452F11E39992D195177C66B519DAE968CE A5E096A7C03FB09855E4420CA95C73C2079A1EDE30709EBDF1E5716E3A5FA881 D26CF9266572E427371A73596820A5088E8F14EB4A84D8A1DD1F7F05BC6AB3FA 0794CEF659ACDAC0AD374F46C94F2F9E6D98C792270C241D0430E68F2A0F071A AFE95A28655F2CA667FB59110482B5FB6F1313F4A513DECCA4CB3DA0738C8283 64A99805FFAB684479CA09C01A43CD0EA97273F41715BB94FF42A438ED454F62 E5F06CDC632BFD76E84FE9AE923319CCCDF9F432251378E22022B48E4D71ED32 E0735A9FC244D190848D0ED8E1DD903FC580934172358BEFED457CB69E5C3AF9 EC5712157DCE3126D5FE2EF259B4591F1C18F41FBFD6617808CF45B883E64680 6B347C1FB4E176001C49ECEFEB691E78FA2A59172444B387DB7D9D67A5DF9D7D 7591E91B294D98EA345492E60D881D6258B23C9AF03F922BFE05492724722DAE 30FCFF7D4AE6D1D464F29D6F300EED52146A6F6B7B603BF84C3F03DCBBB6127A 41536CB136A3014D2614A9CF997B2DDD79D61B3DC77674D7937300EFDB00989F A7B1147183C57B1CCE8C08C042634E5DE205D4664A838ECD2AA88C571F6855CF 4792D6BDE38D62B6919315458E951139A4911132A6A664CFD75B59637DB92A08 5A6B2E22EDF9D8072F01C1DD939BDA33E97C6227AD5902429C749792DABCD84C 7A46DC5FBA0B90358FB65B187DECD9D79FB10BD790DCF8382B030F6386918C9A 21FA7B9E81934AF9AA9F69104372AEB6357278F3309E71B97A17E930C165725B C78ABD6A44D9A9FF9E9A37322C6CA2A55361E77AEA275915ECA53769E26CC271 8900C81D29233880CD15B20080BD70DA744E4C8B34E9DBC06D0AB1A24838C82D 94563EF86C0233890993E6CD18641E40F6765F9CD1C23CCC608F3085422BB6D4 2F1470544CE7EEFDD7279BE52570CAD325D82E75319AB15C9D9586296E65B56F ACCC2207991B66C8A0C2AC32CDC9E1BBEEBAA76CB7495D2C192CA29AE22EE160 6BCD2ED419EC7CF0FACC7082752808A7FAFDD1F449C772FD3CEEB697472EC075 E6D3607296BD1827134D207695BEDD46343D20942A9CAC91B2A971FA38E132DF 0EA0EBE35804378E205216F3C4015196E48DDFE54421D27521AE90124687408C 6A36E50617D1488ECF9017C838258C0C6AD8CC76283E2A49ABE126067965F39C D4541F9CA337EDD3ED45ECE99EB7A37A9FF92466CEC47A793E3EEF974FC7F677 E02991087F4E69B71875C3D4256221F6F61BBDAED70FDC01348E7A1F78D5EFEA 82F4F51B386162B3557D639C20A23C6064AB5275432B904AAA9B467281C44A6F 15B87989C6BFA63EA2883A612E5C630A2076618A2C2F87B470B5C106D1636221 AD730992171A84F9158B7EDF54D1433BA75E9B20450D37F13CA43270FADE7693 195FBB96B4F448040D1A60B7A959B126C33F1EACA7F373943ACD3D10C17147F6 27A5F8932C34F60926BF687DF0A305FC145DFBEB624E5643AAF27BE415E3DBA7 5DEF5F489F7E7FF65C6F00A208156362BC4399208F20164552AE872DD1A80B25 E8230AD99096FB59ADE12C24254A684DD584AA075C84C45E34B7164F76281221 A129708FAEEF6D31954500998549D886D731193AF1228573FD6E99B28E8EBC9E 1CB9B6A8BEEF97E4F4696A6A026C50044206E6B9D9A8CCEB85BFC8B09B49142B 230A0DA7BF85834FC0554DBF71451EEDEDFF67E99B95B28B82D05B0C58C001EA 03A85A0EC279AA6771EA4AE4E804E4B2D45C31ED5F8A7241346C48611F4A85B1 817640A0EFA891A4E0161706B8EC1F31F8D07895A2CC4FF05A96D875017C3240 84C536C7F280F817E8C1A16BDDAA267F436F72A2E37E4D6D51AEC8342E9C8438 673FD65F07F609A65F9D52E0F281CC3EACBA3808C1F7CE64D88FFF86C905FD7A 3539EA8D411E2C66998340AF67834DB9E38989690AB2E88391356E6466267BFD 41765603AA206D61B2A25527E14E8E30692328DF29138A9BC85534C068E11E56 7495E4F0183D753899A3B182853571D4837541EC26384CDCC1C8C7CBF659CC8B 347B11932E649A2B4E8E0545EC539C03B8AEDB22A8B1D072EABA9397701CDB18 9F0F5748CC2741417F698BA43E1D8BD02126D7F4633B55F7A226A93370A9ACDA 2F5C99B65F89F17AA3B66D30736114FBA9D61BCC293D77DF79679E59CAB623FA 21C24E3681D34B41771255B5BF1A2BA6E8587E460F463573DC2D9BF21E5D3D59 87B193749841773F8EC02FADE9B3D8D936FE3C17427DF1FEF196E79AA9EEE0C0 6EC235AE5F4E523C611B5A23D950246B8759AF00D57EE9963136D7CF90C9AC16 D81EFD76E06BDB233C9694F79E9BCA4B9EAA293D40BF924820E1280C0368D6FE 9B15950A00B3E4CA5D312B7735D9A63517F1681118FE6358AE2B4B743FFC06CD 1A32C4B68AB37133941F851EE53BAEE147593C4868F8FDD3C5718CF51F71C116 2B2A6E2F0BAC1859142BFE664FF2DF43241589B9D32D4E1B04D28893365D4382 53499D5940C5E1940E177194A6AF87F566B90BD7B60C5B5DAD1355A2657F7303 6940D6DE683B0F802067AD4223F0D439D27F7608E46E03F88C427BAFEAE375FF 2D81903D44759CEE950D7D88993F1A462C58E47091122D9A47E776C3C368AFF5 DE878095F6C730FE7A91323106F9FC834056D6A30F98AF2A038F78EAE90E1968 797D137F97D1D9A7BDCACC137BA511DC81470231506353A3D9825256370FF339 5BA7D0C2EB80792C71F369F1058E924DDDABFC6CD4522928F1D1BD86FE841B30 B942DDE9BB4078D4BA5F201A9B23365129E768EEC4E8590AEE9CC0956AEE9855 F1848D1487290E34F2B72F31D31C08522EFA96CA864389CC5E92EBD366C6CF99 CBF0057AD518F2E0633F207E8B397067B04CF995476DD0D5CC021C5838E63429 75DCE7A564ACF0E4CEB33F758FD1ACAC901DAB8A5DAC55327B1BE1F47B4EFDFB C9D1B5AE94A7CD3935D2CCDFCCE42F332935F1B651354B2DA4C4546B55D3D1E5 C531A71044A0E0F697ABB811C66C3BB13D256F9627E45595B2E7EC8D1B5C3FF3 2CD2248A0790DEC6CF1DE73E04E29D27B75925BBEA4D852A4977EF3942A418CA 6F7CB0C3A6C1657A18E07C9FC7A34CAA27A7B345A6D7346F9D09EB1443F85E81 98E9FEBD6EB8E377563679C4C74BA8303C4877931FC9D5A2F5E0B723473D1276 210A2257C309C5A4DAECDFE09E3BDA015C9658698D43F6FB928AAC9902097578 58EFC9D988C39C28A7F634ECAA7697A169BDA06E09C309F511BC51BCE54E042A 69B30C87FE88ED4CF4F072AAE4AB7C10ACC55DAB7D3BAE87A7726F68D26A4706 73481B0C558F5B0EE56BF97D8E181D6046EDD586F6CBB627B61E1A64D2C60B62 3ABD052BA05644280EFA8A6C5660A86FD44465B17E1CC5B2E22899E2F0562FAE 180D8C26920462F1AB63236D783CC2A73F52A124281859557BA67E9258243B74 18D776B2C8BA20C98A555F7DEF1384611F0B8A12E5B6942546097F57C7CC8198 5B2D366978CE91E2D6BC5B67BDC04419042CEA71EB68D3AC983BF0CC19F12D22 EBA053AF14C060EBDC71D441DA71C3748CA98DBDBC7D1B6CCAAAE1E080E09F07 3A6F38899A1F143C21B437357B39ACD0512AF21939C2604B99D63B529B66F07F 62F585AF20B84ABD8E3E0B4492E51C39B3FA9376E2F869DF24D787310CD903E8 B0EC3A9421237EB575CF8DC3744D4AC12E7BE2A300B5ED73D7A9C383229EB135 24EE47C4134FFA64D2445DF0673D1EE6A6A2E252174F2D9139F027411220699D 2ECA771CB24A2521F85FAB265AF030F92667ED34737C3D2D42CC9DD97F954B84 308547728CE26A51A266490F652FC511DFCE9F4E746B3439F949F03C5A39FF25 FD154CB77E07C2A1693A68D0227FB2F4B022ACF86397DA14A4FFA7DD1B9383FD 2C4EE4259A3F146FF153E46025A02C54AED6E2CE6F215C2E41E5F43700DDCA22 98F003E22086C91D216C3D9C3634DE26AE9DCAF9747CDD4E787DE42005F6BA4B 22B21496D50B94E32E88A735672185F7929B1BABB17B7C9D3E7F2AE0003D0BB5 316B71E3CE289EDE215E2BA2F28FD690138BBFE826810BCBBD0A9CF166D1A19B FB539ED2F4170E62FD3AD18FE14F026EFCDF0D98B95B6492DC1E397E8E788843 9E7145D5FF7F8E88E4E9D1AC5767BDB753AF21782ADA6474CE4AD98570149C8E 5EA2E59F39B838FFDA83080022C9C7AA1A9414582028B142493A101D41774223 22F9B7FBB059563290E8A23FBFA78C40A68976C90ED12DE1168A2F3BFE09252B FFBB5E89B25AE6E31DF5BC357A54B56566497B8C679046022DF69054DED356FC 778A7389BC2283F599111F018BF489D439343989DDDD7EAD421E6ADB6D1BC467 C995AC41AC6946CE016638398DE4DA6F71480B6F957E3B1B4B6C902757E66B82 B3E2E7C7D549F815F143713FC8D99744F8585E48870DCF1CBC9FF9BFC69AFCC7 B727DF5B83993FB10F432DAE8F6EED864B81C73039699B88DFA7545188281856 B534589A2A19352DD19FCF3577CC6FA8F77B78E7B4FE96C438CAAE9967093753 5E137FFD2F63EC5376FE53B7FE9E59D905767E481F14205670CB597E7046A2B6 5FAD219088B0DF85A1D24DBAE6D8C1EC0D51C3704F02AE2E2424851C835B1700 325E882D6AA8ED08C287D47BDBA01B0170E7ACF56181516D493623E494D544A5 3ABAA24334185FE4F672712A53E6E67E597259367A8685F16476A431A67E7DAC EBAF1610846157B4BB331E84C0548902BE0E55A2D464529CEC7EEB54E62312C1 8A63FBC1BB080E14DDFD32960F55246CDE6170B26686A0A7ED187E051AF504F4 17BEB0E33621AD4A355CCDDF4E71D5A0DCC951F1C58EB81ADBC2C432D3F48A04 3F07A9449E9E8EB4284D0733E822E69028CD9A05128DFEBAC912DFFEBA4B1594 AA17E2F4CD3955283D36513A9A328EC59A9D5521EAB895EE6F95DC98490241CD 85422388C1B663BE2C570F3F76F3ED663810B90DAF8A97FAABD2610BA3C8AA1E CE32F934E43DCCA45C50AFE8B97BD0E63A3A6D7BEE9166DB344C7BFC8986A3B6 8469AB263B59E848B745684C67BBD6B31211F9E6035EB8AF7B0FE3AF52727F71 80177A77ADBAC46C5F1F972B595BE7A484A0865FED265DE90930A94E5520518A C5E63D0947ADE1D84C4EF2BE5C56CD723C7D2701A8F0CFC45790B73214051D4F 234ED4AB23B6C5C77B25CE702DD1B6455C36727FF9FEFE1EAD28A16C82270ADD 3F03A81D5C74A7C94C873E3B4EB217272E38FE32025679808BAC730391AAFFF7 57E3304189F57ACB9422B0C89FA34CBCB8BF6FF79677B3393C7FDC306A27B5DB 7C112EBFE8977B503320885691790753B1AB0DD803D220551685B0D0D3023572 CB5A142B6A609F841BE12DE6C62909DEDFFC203E9DB943D47B15A68B632542D1 6A67F9557C495A72165C4B77A741FA236169FC4A1DE23B260E4FFA8F7B2519CC 7FFFB3E236FF20F804294B7CA65754FBCF6EA825D2E94345F5EC19E62ACB0151 1BAA4021D1D065FF67261E4D696F2711F91EB375FCF7E92B0EED2A445F9885FF EF9984414B4C4150357B84BD9052C83479B6F8505F7D06C9F75FA26590977B4B 5404930BC0ED4DFED392717B41DA5CF237B5BBEF113DA59EE567A1BEBB2FF78C 9155AB8FF313B0B4FC090A6571BBCE4C1398C3D7CDAE3ADCA622684986D98811 319D4B01B6EA8C0A28BEABFDA90643B1FE1D06A2FCB52FBE1F4362D9C9CD1039 2CCEC53954F38AFC7A34B1CD880E638D285E02942A27C96DE06FBFF2B25D8486 9ADDBCDB61C1EF7E1F9E3E243BF84AF1DDFEA876D3A66E3908DDA0C7A103308F 4F3DD68AC7221B42B66509BDC0FBA163930D73FBC214C65B8D9DF3C0A6FD3C17 AE179BCB17EF3669172F340B5A80F2BB65A7FF9E823569632CADEA659ECFE152 381B2C5F432F48B168E3B7472A65DE2E6FCB31AAAEC317D6C476FBBAE39DF826 A830F0D1881D70455B9C182E182397F31ABFBC8629E9AFD8B0E5BC5DBF322BD5 A154C61D4DB878AAC60F27CE269B0E110301421694657E040CCEC4D908F80C5D BB601CC69983BE87CA1E0AFDE30BD666DA2ED46E8AA8433C1F0B86A98CAA76F3 AD363C705F3561C947336CA71CD0BC807FD5BA116D16195F5E23F7EE0FB49158 8D00E6E6D094DCEF81FB857FB804B4D3DAD74A42223AAEEF9BA4005480502680 0D88BA36375A86E83190110996AA3184BF2A471320A048C7A45643E8AB71172D 934EBAE0470F79A2E8D3AA79CC401E3361525F63D36DEC254B2915E594CAD2D9 5CD03243F79688D7884A6B97BECC311E0C729F32D7807CE9ABF8668BEA815B27 2FE55D47B514E42DC15C7C85765CA4B1947D7A21714676B8569AA45457A884FC 611B4138C3498D84C2CA639662DF52633C99903434E7464F96A5C4E394E140FB EBFF5AA9FDC91E2F537E32B00214F980CCAA952276A50881F7406F7C2B13884B 882BE5CCFEA23EEC4D8597BFF1CF5796DC2B819157B78BB5E82620A9E34FA01E 8EB262EACDEBB802741C5B0EC03706BB78434BBFBC21DF59D82976BA1322CF64 CC478B46C1B7AF67306E3008C1822F0D056D6C074344EAAB2AB0EA630B32C444 BE460ACD3C8A2A20DF5D2F1B054046BDB8F16F146470BD3BCD7E774D8B451676 99CC7B0DB925FC0EE99E4175CA96A718ED6FFA0D301820E0C1B42A36A4F3A3A6 6E75726436CB16C4E7E8EB1244F2436469A3BEABC35DA0394E054503EE6383FF 7DEADBDE91AD338BDD61526FA43922F0DD9AF35D9A69BA2330CC2D48497B3530 5BA6D2B123EFF1CA387EFE89D2ABA9E5DC16ED536EF6F0EC5C7AEA9036AD0892 F96AA3961D923D737249E6A3F620725CE47562CBA7C785D3B87A21CFAAB40053 6AB8239D438E5E3E76323D80683352E7DD1C3EE875EC58D4AF0102A414C85458 E807D05FE0BCAAAA33E0548C53F81CA76AB295DDCDC902F223C84A001CCC9F39 432401E297518855EF5296D9FE4895AA59E208451DD30AD57ECE1B4CA7333323 51C39615312DFEB5152C3E0CD38E3D99AD0B53714F735E10C6AF256E1C73C280 1A7CD5B7BE720919BE1A5F5908589D99368A196B737609731EB321241AE4C129 DA6FCE453A08CFB36AAECDEAED0BA9DF088F8F370D44AD84C466DC038D80B244 32E79ED605B0512602C1F01D4FE09086A792125A9A7E491102043C6FCD1A970A 73ED77B2B9FC3A239FFFE598B0859D83192222B6250FB600E28B50942FAD5293 AF41AE1B5E8755AB8A1FFE429E6A42284439A254FDBD26BA50377040B4CD09B7 3C76058558A881B57B9E8EAC247461903A40622F10DFEF70ADA8626BCECCD3D5 BABECAF3982D651DF6030E7B7BA2C13E0BF3B637F33B002588CF925997235B4E 433DA6668669672D5B06D2DF4201204B1C8C3A2A7BFE52B8AB69F2538F61F3FD 9C82AE289CA3516E667C68CBF190D556DFEBB1AF96BAB80D45596222579D31D0 B5130519006256D3C08123EDCEEA4A76C4736B200538F4BD8B3F5B506CF8876C 849E56669E71B487BD30B661D7C15528875CEEAAB60B329B11D0AD494B60A849 9CC5EF2E4117C3963A33B0517B6AAF9ED11898C76CA4E313A6EDAEED9C273D9A 80B67B1B51B47B1760B0DFA20D8AFB98B7AA07688C14E31AB2817FB88CCF8015 4E10CA9BA87D1EE20C5B80DA32EFC25D70697406E4C777C1FCF37A305AB83B93 5EA06EF85B7D0790CB78750B602C4759B08B3E87C5FF860350C95EDE1096EE51 3D07381EBE6D382AB0D9912050338FD75E03D17D9F56BE839563F05B77F40887 CED7885143474FE0608AA8B7F6B1345A28B5109D43ECD799DFC0B03DA6F7E217 6859A66997468206EC1081EEC22E8EB9F0B26CF4927C5E8AC0F2BFEA2BE4EB3D C89425BC8D525C3A2FD4ACC61F4AB1247CCAD43860AA107858D83049E4D45956 C6AF1DA3B8D8812A03E5E29E07D7AE19CD2D19FEEA7F8D0546E5A62B3293594B DF12E77E8200B395E34C7FF5791BA19C2C2F1658F801D5F70C3402B35A646E3C 5724409A4F5AA2C7784A152E46550539E5C19F4DABA04644D777AD4ED006F35B 3B5A8D7B5C9914B6E94B25B572D302D69F529D4348FA713A402AC95616C528D0 C1A099B991EBBD46BC75D59A06B4DFD349C54F9AA536EB0BB246C45565D74AA2 82B93A50207E5AAAC09DA2971C60DE36C4EBA077A6667959083E2BB29E6F7014 BC721872F29C07D100972EB8988BBB69DC19BCF2BA1D00C60F975345282882E6 166722A0D8A38664FB84A34394CEF039C58E5DFFF2522B3363E18479DC025F63 8629A278DCCEF49F802562D4D53284DFC0B6CD8C6FF9806D41E1D648D9D99D3F 6C2D2F8AC2A7571C50E41D5A5CC46B8206761E5EE0A18A4F129FEFF8D7471813 92B5C0158FD8E7D26E679E8AF53859C537F63497B955C4BB47A4DFE30EC2A0D3 0BCADECAE110474FDD4E824E8D88DEAFEE435F439923D4AE72D65EDCC6C60FDF D7906E1E76D9AFD9736DD4C8218E404817124917FA0CB22C31E8A5DE4366CCBF 29002718F8D602D2129B586F6B2A59BCF3AA8C3E7A1FB29CD0CB55ACDC6182E9 D2F6ACC7752B793FD1F8D8AD1D86C2AE87FD96F24D5F93AB48FCF7D1CAAE872F 6586FB0AF6CD3EE96CA0978DCC8874CFD6E3B9BF76A03F18AEDE9ED9EC349C6E 25970D89634AE8E9BA71C5D6087F10FA80D9C88751229B3E7B0D644F312B4B20 DC5BB9F0F8A2AD84130BDBA27EBC21AF7D32C2F1A01CCF67CF4815B9FE70A0D7 BC3F6EDB439EFBB7DB9B31 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM1200 %!FontType1-1.0: SFRM1200 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm1200, tcrm1200, larm1200, lbrm1200, lcrm1200, rxrm1200. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM1200 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-185 -320 1420 942}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F33528B839DFD4B92DF049F26DBA77FA20B6513D 285BE588908C3BAD6A1BF20F213E587F1372774EF31D66B237AD60712D60BCFA 83574CC5F88A6B4676356ABC2DCCBA498F4272476923789659CA8836F2FDA94D 38271FA2CA8B77D7099705602FEB41085F6674B7AA0DC588C9ABCCBD9115601F CDFBCD7A8E3CFC8B1E718E576254F5F05FAB25DC253CB561EC3604749243AED5 76898EC99BDB1760B0CA75CEAE3FE6FFF1700F64F585BE9267ACBD5F155F3122 732792E17022F23B1F46FEFB0696E5C2B78DE0479F09B6512035B9C488042B62 98525003ACCAB6C8F36BBDDBF6E82F5CFCCB418706BBEC1D4E42086E70847405 3ADD1383ADD34574F2C6C64907B0561F107A259A649BB525F0B74CC3B1F42412 C4F81A7ACDC6A3F37DE7FC06DEF21B9821DD39D75432AE3881E431569A012092 38FCECF1BE90B0B199DC4D56EE18658B2818B69FB6836486BA302CE7F6EB18CD 7AC5AC6648097F65C8AB851E9BD1696B9703230711F68FD82E1DF92936A4B1A2 CCE51645573EB0E762D68A417AB6C0A2EC8756FC9BFE5972DFC4C794E948A970 918BBB1BD7B31F9B1B323EB2AF8D41A153CB1B1511F43560825DB6ECE30C16E4 902BFD1EFF59F06984F36F284553AB3F2C7901B37ECE058F5E477EC9C629847E 1C7A3628DB7C47C099A0DF53F05ABEF94A760232985AEDEEB7AA05C95273179F 8A1AEA30BE626653D22F7725C28498D776493AF6DEBC59D44A2F6F26E5DA1A77 7B9EB9D897130FB3F6017F80AF21E4FDB73CD96834152BA948E1EC4765B253A6 565F51A1ED2AC8374CF4DB767E7F3FAF13F0A1198110F554CB6735D3C2DABCF4 0C0A431D263F22D091D0F560ABF5968868126430A293C6E8A6A87593E580B110 E15A84AE30E4846980EC5C1FB6D4037D7E1DE8CF57B6A60DD4DDF422075F85BB 0B1411164E99A03A3591915372454A70C8CC75EEE08AF87D35032DFBFD61A4E9 F968D1F514A69D62B30B89F47FCD45A41B423664A7862A1246B6D7C5E2B352E3 D5428D2B6677D38729C5752DF835EAA366A11F6C7564C80EB1E0A3EE9990ED0F 520EB2AC073E63DD9C935504D14BAB14A4305B3D64638B6D952333CFB7CC93CA D84B6DE80B35AC82623BE64BB6C1DF9165E00D29054A5911CEBE09A2054EB39A 7894F49184B672F4AA1143A2633647BCF502A77F12506C02F1A78AE9061F1497 CABDF651CF5ECC83877724A90D67D660CD4C54EFB79F9A6C1DC8EBDB66E8D709 D4C0A81E7C7EDB6CF1E266B753AF6BD100261A6CDA280902D3F0D15EF4042F54 5586901E870F2A99727E9B64147EC20330C3E54FE01AEA9875DFAEC86A0B6F39 D89E035185C3A6B25CBE093FA5C7BDCF99E5C68A9EBBABB3D61A6AB4F30B4D7F 94F4B4DD1AAB6C22FC9A18BF46B81CB362B87BB87E9552402C35490285FB83C5 EA4825225DCC23DF406DC5CE8E67FFB64DAFA43E89D6C65BA6C0F41AA44EECFB DB8B9ACF11B6ADE903B6EB177A00E2B22593F7EDADA3A7DD72A3BE1D488E5BEA BB9327D8B0187CC87BFD35F4591D3F63B87490338692E1E8CBC869CA13C68761 6276CF2A654946B67B1885F915E2D53E923D1A7B9D373539E8AD0C47731B05B1 7E627B68C4C1C9FBEDD4234643720D3A7EE90502081339CDBD455004D38302E0 FA91517F04289EEB213EA283590D0EEA039CA3BA5694C0DB35F68EDDE43F0CC9 DE58D2EFEF8E3D81853BFAA0BFB73296E70ABAEB606ADCCEFE9AC3EC7736215C B144B249E1FCF4A66590502254335D9505C9A962FF3A7D45FF770DB07AB439DA BBF81F0F47330560107A6101A5C76F54C285DDAD4E7817C6B93392DF83CF924E 00DCD4DD8BEF1136AFB87E24A20883FF87DD69789556A974B8807C5F8030CA58 5301124D8A96D5B23FFD181D66140874153114B81A52D69164014ABE126D1E47 6752720C0CEDC0AAE2EAE314CF25CA05C3D569CE8871B49AAF2F371CE632A913 4E4735863644E0B7B8CCDD82F1709F81DBA6440AD57B94A928E1F15D948C7EA4 105A252E3AFCEB539773BDCC8FE919D55E1351579EC5C3EBD311A8EE9A9373EF 934E4C61DED60F0FB051231ACAE4E12B03013D7B9BFE305B9AA54B0AEC8BDADA C3FBFD3A4ABFA43D98F2991894B0E1EA7FCEA4843CB86FC4DABEE41F24ADD548 82C163617B77D65D423C565647491E885469725CF356762F01753FE97CA9643D 7EEE4365D5C807298D61C1250921C4F14BDBF39D08F3896967A5C9BF25113779 7C1909EAD87BF0D60C43F1AE79FFB1A23620EF2C324D5E6F6D00CBB22BE70E0B AF849544750046F6031B872CEA4F6843BC35E05C73313978F2D74A52F2D52095 25947CFBD1D90A82EEFAF5750631A17DB096B594B6C033ADC43EB9328B5366C0 A8B7DAA7048C0028AFD0E17D3A435C530ADF039B402213DF9BB13372632469D8 568F819DF9554C1930B7B3C6FAC84650AD5454E5C0DBDF10DAF451A8D99640A3 00550839FB6356827BBB65B73F31051792CDE85D8598F0825CDC92D8957797F6 0CA60789EF683AD4C7D307304177D48E8515FD26575A917C9E7333337E070509 2783D66F0F50B55270EC8C75BBE78CB32E0133765517039417C35C57DE3B0D45 97863BDB6F0216EC699AB82DA5AE17C56E64998CBEA5DA56916984CAD87625ED 98355974A608CB758F2FB28EE42A76F11607C84F944D3FE51263A8DBA84E93A7 BF7BB6DF9EA825E6DD1B38F09E0010533BC14E56C291413C50141070B380466E 377DE82A00329C607B7DB839267F83EC08B4819411F01130BCD93B9C2448D878 FA41518DBFB8817CEBBB0FA2A3BD96611746DD6C801A694FAFF1A7BE8D4C6D02 A196CAC9BFFE850F28C2C13EC101F217D4EDA1413004DC220A1A4EC497DABAB4 388653B248A9D14D7FBEB1868535F630C5D06BB3BA30A4C09EB0B23BA7FF85C6 1C430B5CB8A0A48CF9E9D19AA91E47F1A46F19035AF1BB31F76574B9CB351C0E E1D6FF7E34703E95A6D0AF6965369BCA0E4C3E813D1A1E6C8A5814C436B25C7A DCFDDC4A585780D02177F2F088D5CE5EE555F94FBC07BE33A006F8F578B49B1A E4A166BE43F3E699F5D79B42ACAD360DFA6D40A7ABB4E1E4BCCF6F5DEB3C8C4F CAE3587778BE3CF49987BC2F766156316B82B6551715151CD2115C9E741C3E03 AB9EB66995D7ECBB8E8FDD8D52B52408E3E8BC939D61D7F2EB36CD271CCD7C9D C1888569264165867C03431A4A5A55D9AB034EDF79DB1832B5F542C08B8BE51C A65422CA6E434CFF9B0F5454DDE7574B557D8DD1E541D7205849B088B5D0D483 6B95A4589F54603BE7A12370489A70F5CCA069DAA3CDF009DBD64B90AD4ADAE7 28A404E7AE95469839226EDFA014A5D35BCEB6715743F0AEDEFB064DA56E72FB 176C960F9B884EC295EB95236B82D486FE17DD515FE0CB61A4A575AEB7D668C2 BE7DD6D130248E8235BA1EEC1B49E55E980856DE00A4EB68B4B991D8822847C7 DA009888662A8DC6829F4B896323A364BADA8E64E317C3E75870AC2F2BA029D8 207A52F1128D8EB9415B815089F5ED726D4253B36E35C97B1654A105DD84A54D D0385F33E709F7F9A87B9193D2DD4FA34A791B1325515B30B017A969BB2A6982 D6ED7B67767D16D057820B73BB56B43D6A10E971961454C16601011FE0596F27 B9D68AA19429CB2D5DFA4F65B0C2DB7DF71D27F478244D0B32FA27175C9E8C91 1E20C556CC833788BABB313BFF08B0CAA834BE6582C3F81AADEF9B6629191651 D49DE799BEEBB5C0AB14FB9BBB316592590125DA1421E0E3CC223988AB668C0A 51CBDB7BF3876A3459C6D27DC1FFFC27172C43FDE9BC06A85BDC3879A70FAA73 3D5C2E6D07B7877B352D5C29DDEFAFC5893F58272C7CD5BE6FC40C79C78061B8 3E035C72FDDCF725F793E1D5B4975437F75671912326B58EA4C31879C9B8D830 8F037F64763D99BF7F0D31648934CABF4429B55AE8AB24AD37DDD4794B950170 5B9C8ABD0E1D2DB419027F2582E72BA3A572DD143AB5D89A251135DA1DC435EB EA07CA1CF7CA45E59420B3C8CE993BECD9A30AE49FED4D2F0FCA2CFBE73C4A53 C193A3E1729921C790177A14DE852104365A9A8CA7A1A94773BC1AA35E47519A 61F9A2F505E28030059F04637AFEC703C8161A06348DE9AC13E922561CBA0992 D001121176E2EBDB1C64D975906ED508CA6536BFEC998452E49EC8F17F0895E2 B54F9DCD81D2F792244BD6ADAB3C186FE52EA9E30FA98DEADE97C35AF0A64687 AD715C4FEDB99B0CE8CD99A7AEEFC1B0C415838486388ACE2E9A59BB724F6439 6D279484B8839F0FF8CCE45B16DB1AE70C94832B1FFAE39C67AFC5ED94692DF1 2A7CC63B5B75FF270FD36ECFB7111BEAC0A5DE4ACCF88DD9748E577481D22E7E BDD3C4E1B2455344351FCFDAAA6FC993115D73984DEA53961B7AC20754E7168A 791E952BC6768FF004A8E700E87440A3E6197D5DFE27452051462AD17614FFCF 55BA91FBED2B28C6D74015EDBFEDC546944661F590AEF14FA9D6617B72692469 F9739F87171FA2AF5B0D1EB4B6F557BF0E928D5DB66C4EBB60C080AED9633D22 A2A34072F945BFC994A215943256C1E1E95738CBB18115723D370DBB23D5F6D0 48A13998968032E4C9DEC8C0BED602BF78B4358FBEBFBCDBB0C5D02BB673B9D4 9874E3A45D9E3AA50CA8F8DEAE303DDA7B54BE6F79017ABC5A6BDF5E42A06F81 801BC733D8311427E030B0C06E669B098D551E75C9A394F7B537C8057B1DB87F FCFBA03FB3E43C5D5290609DB55252B0DEEB81DFD270EE469D3EBCE156D8D254 1264E5B2B6C25A3BEC78A11D478BF53F4450824CE858F76C4FCE760986750D42 A296DBCC071D5B917C508E280D7F516B47B2C5D22D2CAD38CE90C439D07A1F73 F75BD74E03CA7BC423D376E2C216513264BA2D16130E059A2440412E3624EBB3 2B9EFE7F6091BF3A9084447B363872C6AEB8D7F9AACF2CC66F3244B7C3DB3496 24FB33A51D0BC75ABD78A8EF3243D6377BDCA2F7DAA182B819D2F33D3A5912F1 2D071204FD3C54002FDD1DE1AB5EDDC5A75360397A7F8C60E8C0204CA1015352 C9CF801630231031F68C048CE84E4E5266E58B9BAC8565D1E0999B1F85974F00 EEA17CF4A9394C3E796FC5664490597DA5F2CAC7C0013B115C9B5B4D6E00A301 AD88E2A1732B362659C421B173B56E58FE69C725B9FD9BCCEC05D2312309DC33 D82AA93E393144D56BE2892FA21DE4F0B995863DA2E5BA9CE7675F951A3CA985 B7213FB2CDA7BBAD5C077185D4EE067036710186E6E073A5E4D9C69291B96700 4B8E5B3414606385395FD76257FBA4948FC2E7933316B55FAFAB1D5780045573 723AFAD713AD906B31EBEEA862D9DF30CCB2C0BB6CC55A89C2529A4F261AD82C 4EA9F795AFE7D4C10A5C30B74F5F89D7546A96B667545DAE84A4B76A65DD7F4C 2FC1BEBCB3DBA3DC7A94213A35415EE8DE6DCE431FA4ECE32CB9D34ED335B4AB AA446EC08B5AD1FDC5C07A9ED6C46282927088B156A8D5DF48731A202E0CAB8A 069A9EB514E0D229976446052A40AEDEE2FAD548E3AEE8B05003C75E2828CDDD 3107095FD062D11B7E947D1FBED7AFD8C334877EB91D5A5F4C58095A6845F1BE D0EEA915C8E476DA4B7C3D619A2D7818A95D058ABC884EE745F760368A7EDB12 9F90967824D6E3644E21203562D08629BDC7B8B45A1FBF6D005EA0771D91DDFE 212EA15C483A752A41A2DAACCF781842FE52BD242CC5B03E2614541891B78E0D 1E20FC0CF8CF2D402149BF7F3E93E768E590555288FDCF314508E4A8B82DEDFE 4DC57BD554F948F0DC2E13D4718D04ED9527242A2F4F8095BC13EA9339B6DC8E 984DBD7912BCBE4EE3AAD564336517B2A4366A5EB4327AB2EBE51C4C3822F1F5 1030783F8CBDC778DE14D5021FF1F7A2B6AFEC021C3EDBE03C5C9745FBB56FED 18C2B93FC88100692D07F8A55F341E8AAA70749C520DA2FDD9533EEBB718DE9E F5D5CC5934E588FF88BFC98B9668C33A0D9172DF3B1B12AF2E75298E17622B92 EFD5217D9E70546DEE5401E1B3EE9E0838CB2FC2E4E84B3AF40166011BE3D791 A9F7C18F43734A8E29FA7B50C20FC05524DC3A28258536CEB1AA06ADBE7FA611 E7297031157184E1F24B85304F54925C2205770C222F0EE3C6C8B96AF7ADAF6F 32695219691CB67089C9406EB30331EEE94C087E1BE86A570C97468D29E28C7A 75E36E793D9DFE60338A73083C4108D9470B9A69795A01DE77FED88A06C1587D 1F82D049A7D848C7B861325A9758F70935D55B1F77C8A152098B5DD721AF8DD3 08208F6EFF8D5789AFFCF0AD1F55CF223F3E6E4EDD8804F7FC655C3F77FA97E8 37F763D0E07C68A908975581116873B9AE578A26918A0DC8FB6CAC049DD3A478 447C0AEC3223C1459E3780735BFED6E10DB82416A1188665435FEC6023C39DE4 462E2354EF812D4BC62C59AE5E6C18EF78EAF84CD221BD31F681219626C8FF79 BB4088A41BADA4B5D72F904B8BD5F9F7402C43FECEB710FF43C33BE4F13A201A 86433D4D158BE14FCCFDE6084B9F14026E44E9542CE695ADFB7CAA107669EEA5 C46E36B81046EC41C4D5B5325C879B537E40FD34E46F95EDC4010AC0B6B1D7F3 3D5B4AB1630754D0922E55FE6751257E47D26E7AB75A249837BC42208225B16B 24514A96DCFD19994BFD574CE59ED5C3EE2A71EA684C53D47CFC7A8BEEBBC4E4 E67C38AAC6952E40444E42E0A4D77752EC4CD7C8EC5AA896207E978267F5676D 66D00D38D83D859C06ACEF6F51936BFBBEFAF4D872586D85A70DDD065CA4E843 4D73AC36C62ACB4B0848DA6D47E9870B34072F209C3C163328392B5F3CA87F8C D1D25F1690495EEE448BBFC520C45583D95D7F5ECBDCA5B4A21151905BB6D081 D0A83CDCAC9444C3AA95279731512C980D425552789AC3D6639E6559E7F9B0AF 8AD0A745EAC426B659FDE76FF925F924FC95B37B979BFE8FA2E5348257AFCF78 B5AD02E9E700905E767530464F17C7E38B333C7CDC791A5C6BE598A448C9272E A02E66EB1DF372630D0BA6BFFD948AB9AFBD19A49653CE4FA35888F63501225E 412E687FD5B99F71E3974A7C56EAB8F3284CBF2E1158F052A1348CF7D0CBDE60 A5DF70C05FA759994B7454C627F02BD6A72DD939D4C162357C5CAC49CA4DF719 7A5F8DB894642096B3D28B5999A9F0E7831D53CCFA3B54A2E80DE0DAA6443D4A 0F9925FEC05D81E64BE6623CC256E5E2D3A198E2C7F476CB49DBA0FFB2CB59F2 30726317DDBC543DBBACDD038E74E93F2241D8F088B8FAF6DB1EAFDC2EC726D5 60ADC9F5077B030FAA0652A206A7ABC4392BEFA5F26E06A035C8DB2668A67156 09CE09469FE5C6B980077948C219C4B704FFCF778ACCFAB7A0DE5D250A129B0F 29434DB669490EDDDE2E3D623B2280ADF218975755731BED2026715EFDA9FE33 E691EEBC3E6B27AEE824337646B0E515B7FD87333B8F00E7096E96F178333917 2EAB1591DE9DF8FF16E0E200BDC0C8F32CAF4ECA0423E5B04350BDD29DF243E2 5F63B28C45AE5775EFA2DCAEA8C780CA25CEF919FDA2BFD79F8F3E888FAA00FE 5A593078FD62B097B3F39503947D26FD8571CF8A62057B35810768798906AD0F 5A48462F4B18714570E828171F78DB2D7B70F75B85D5012A0BDE436726C96B66 9A11AD4C15FCADDD62D5D141FCA21793790414412B7A3814D0016DE9C5BE1A7E 6BB5B96FBBEB709848FF02492BDB5552535B3C73EC6EC05EA00FCDD2BAD14E54 1FDA2D3D6E261788909CB092079AD5F94F4D4613FB16CD377D310BC0674F5D11 3689C1751C16BA421DE11077FDB2A13843ED5564F7248502E1DBD900A74CBE10 4E972C5181D183C1F08F99D9EC251B2953B8C045927A179F4A9496CC5153167B A36C34DA3D841B0C34664150BCA3EFEBEEBCBB9E556B6F07D622376F4CF8A6FC 021D07C3277F59A41F129ADD44FD481D40C8DA930AFBC1AAE14543E7205A5C29 196C4A60EB046B6B11F3538E808DE7A4C90749E7D33F88C39096D27D3D6FBF4A C01B912C8F4F551E5A649B1A4C795D5AB288D1D4DAC3900DEB535A10B6E3F947 C00FED2A954C28941F7D629E27D5F96365F7F100C9274257C3ACE8614D29B082 C90A26F02208A2CFF19D4E3890D6563EB1AD01C8AB5181C84823B6BF33A12D2B E7E7A3129D025EBE4552437A93BBA21D3B530E8F71897C5C6FBA4DB374D2F9FD 8E1198602B07A031FF02FA971C2272E790C2ECAB70AE3ABD074AD2AAB9AAF8D8 3D3F8B03A7FA9C083087085567817FEBCE728F89F9BD1A4071C1C296F872BB33 A525F89DB8C34F99BEDD52B5C348199C474FAE6FE1A6F82933AE40D459943AF9 C00D21B397608E32615CE5CB01E71AAFBEA5F5208F539AFDF9361520D2E2DB6E D325CCD0C50FAF01BC264C611E8BDEAFF31DABE7A95D1A400EEC0071C59FC338 6F3D412185E38553655DB2C39CA75F056A3E1B2AA3D5A9AF0B2F8C7243988989 4BA8D7D1377BB5BCC8DB8FD1FA6DB83CBE3CDC260D9DFD1581F0E58182B13D93 E844236732E08A0B48B6CD8B7EC141D5F9A21559C9315E1C66A902060476B523 E587A4AB67D1862736C441BCF3FA2075E07F3021023121F38470D1543FD4D047 0FBB9D78AC9D2DC9C96F99A9427F7D05B7287FEB743C8E2514D661752D577EBF 0995C81EF24FFE6819D6C329C990F8555DDDC72F9E3653A4BBC53C56E01F4934 770959F67188EDAB8F6003D7116D054019A69006FD7FD182CF9605E083924CD5 61BFD0EFD69F85056DF0ED39116F0B5E0B44B2C47220AC3EEE6C723521748A50 2D1E6DBC2DC6122EA41E2EA012B331A2751A3CC68D7B963FCC9660E35EE076A0 61EB8285DA119A27336F61A3568F3C513F37DD1628E0701F6F7E565461A14DFA 106319DEB18F9F61E2444948248A778CCE717F62CD73B36848C85380D01A88D8 95C9F2C1A5836E94D7347DA871E535AA75E6ED86EFEAF68046A618D8F66D671D 01D12E05BF8FCF306959BA70CDB2554EF188D0B950B6B2D6CFC86493E1CDFD27 922701EEB94D65752431F54A7B7F6F52E57FCCB2B100ADD37C1E46A2349B62E2 878E626F6593DBBC44F3375A9093550881FEFF36A34E8BE6B00707F362A83D12 8B7FEF549E27EA2424EFC6CF0C3B8B1ED7AC1BC02486C65BE3B036E4DE1A2B09 D5D9F03F1466776D563282F141E2469E42F73ACA779E62C20F57D70366200255 DBC524C89B8DEBD1E5C6A2157AAFB961328B8BDAB8023467C7E0B3D844C4E316 8DA877C1E3EADE70E8D555CAFF2BF2B2039CA50A868AE11FFB66A02791DBAADA 26A7159562865AAA83B884E377490CB2ECF9F16E3C80DC2BD05663D4B95B9783 79FB6E8E052F80E973E271248E59BB5AB88635C3E1B89948BE9F32E937B4785F 27C7882DA9D0A699E733AA64B5269DCE98C5499E73A1BC2B1BB5652A867BB056 06F20B3FB9E4A5F51446F45871E08C7F5813594257BBEB02FBB3744FBE8041D6 C9820138032946EDD761F5EFEF43C493380B2DA782D59C627972AA618682D0AE 03DC8EBD743E52D94EC0088091C6263682315CF9116258A92CF3D9A289700C0C 42BB0FFBDE4366ADE47658CF277DA14BBDEF36BCEF73DF297B6149DE4831634E FCFC58DEC16412B6E25AB9C247FDA0800455244AE2C6457CEAE425B6F416A191 DDBA8D9CFA81E057F009AFB2ABA08A3FCC35588C2AEE3157EFD632E7F6550079 954C481C3697EA12F2664AE6C371FFC22BAA0AFEBD61E874EB2B8B1DDBE979BC F7629C76464EA039A19FE0567291BAFB715762BAE8419FB4C114A198A95BAD30 BF39EB6C73010E0A15B7D1235C3D5AAE2F44EA2E587DA7445BAEB865E3AA8CDE B9405C3561BDE601BF64480CC5A7AA7973EB5F1F03E9929200773D7037ACCC6F 1333F0D36C0F03483314B5B66B13B85A02C106735EC062F6CE66D6049B003BA1 94BA29C9EA03843BB4FDBD5BC3581F6F3BBD0B7AB93FA00F62F7A579FA9B5E68 04196135964CA08B2D4F08E7A677D4435D0F75419EB2EB6846AE0761DDA83F67 621BF39C1521E1644040D939A89C378A75AA868F2D0A9F9FB9D6B04E19EBFAB9 38931313205B214BB42B6DD39C20CE46C985484F139C46B6BCA884454B296374 296176E0402019CCC731797ED712DB06411FB9EB545F3B6C224C908F7EC73377 91DA2C03ED472A0B15A517033EA6384CF28896B00B1B8A14C7FB34A965E93DDE F574F03B3BD363E01F2460165E08F8E3DBE5B57B4024BD27661386CCE2C3DF10 34B62CBEDBDF02402E7640BFC18CAB71CC05043CD29074D82A4473B21E02B7FA 0D331B5D0662B4FE3DB24CB0BB0764D0534078E23432E6FE0E4BC2C4DC81E7F3 6AF08177B809D61F490325421D6D71940421FA781D91997FD805BB4AB09068FB 3EF383F82F86CB154BAE00AF1B5FB4AB5A8720A47BA58EAF089A024784E7A12D B3429AE002F3B71C295FA143C7CD8801E02D97E30B996B1649EB426A2DE6935F 81AE1138FB78A0042C6E3EE58A0D0A49580822DAA2148CDCD13B00FBC7385277 821E7C20DAA4E3FBAC0CA1E1FD36EAE068AFCB0390B1CDF163579EE3AA4B7C43 DD8FF6AEC6A3CE18C6B3C79BAAEFD422797162F1BDD5D152FB9C4DBAD95818B5 AA1ADC06BC1E7868BE5BC495AA4625A4E5712A20F4DC4A920A431CE78542AE65 A908BC1E50491F896E03ABDD5712825C0D642085FBD3044BD33022463309F701 02C8091BABBB594FFF71C16BC71DF174DBE7654F377E46A8C140E7085A248C48 DD46D9E3EFF1B1A652F815906BAF60486820AD219033AEAAB217E93B3BCE5386 DF2AC0316645AA6F3F93FC8F00B52C0BF8E15EF7FB0206DFC64DB674810FEFAE 83CF025B89C875F63311D0DDDE631E094A1B65C13AFB6272363D2FE2954FB96A 9EB1C389DC2B3E665CF3F6F27BE34967FF0172A3567974821297445DE8F44651 BB3A54856FB7B1339E01F176D11CE0F2FE66E5F012AD590C7498E5BAC83D64D9 B9E74E5E94A7533E359DE5E3A57120A73221F6C261FB223E55574BC6C5F414E4 C9051FA56409BBAA568A2085E551551EEC898EFDBCAF8DD4277072846F1570C6 718FD28CE0790AA49CD2816D43E6148CD37457BCA5E3BFF86982C1839B88E149 4C235E074644755CAFD7F71429B72416469B6FE016B5289F3C429FDF271C136B 8BBA284CBEB7DBD0BF22360D42CF0A10D10FC811442051EC7A95C33558D753ED D69CA18600157CE4B2AEEE3B98D4688C3ADDBCB09C44CB164E017B676CBDEDFF 6A3CC5728E9D8CCF2FEF4703FEE70191F178D7E770013DDA26E8CF7D69624DBA 48E952D2B1E759C362864C9871374F96A715FA799C6324F2B26AF0F8CBC0C393 48FBDF8DAEB6555918C71679658009E7DA0F684EC2362326BDDAE0294BC44F4B 0938D79336D47A4C62566C08D7004D0B15498805F37335669160CADB900DC43E 641A215D8D59108DD41805F007949849C1E83917A9D6DDC7E9DBF643C5BB0563 2CFAE4AFD1932ADBEF6C767667251BE71BE45DA12C5BF62115F5B63CCDB8DE23 78DDEBB65445FBC793E55F2B423B99B07C8DDB7BB493FA9F1D1CFA93D523F080 F503E7B54769B6691438EA39F0F6C1B8196F7A2F11AADC46DAA59E2CFE327979 7AD9DBA5D43602141892A6F86634CF7269042A083EDF44B4052A99A042EA13BF 2C5D30ED0D4183D73D7948A849F59E3D1A0EA3A059F6075A69EAD7D4420630F3 7517879D3909306F969288B1CFBB16B0723C63BE265DFD1A3C384BBCDAA5CBE0 ECBE0E8E0F4DEBA482090FAFC229BF02730EB6059D18BE0369B0A13ED2AE02B2 C1D3FE51529673200686F0383670A99D2BCD7096D3E3B8783FADB0526936A6D9 FB8A4DF8BAF2ADE5764CC16FEA1B452CAF54B06E4405746CA7E0A2610B56D0C3 593F258DC5B92ABF6CF64EFF4AFBB066294F317783B259546BE35E7CC10AAD93 6A53E6D90DD7EBE85AF7087BA48C11E776810E8B9392B6FB7C800BDC90F7603C 59A1B984FBF893B77CF01347412F127A6DB7CD1B2EF1232FA3151EBBFA361593 C298224F6024698D82747D904C44810607B9CA3448790D4025E339F8A7ACA13B CDBD10CB87420F47C2504459B337869CF99D01F255BB518403134F42A259F0DB BA440916251AEA52D44FDCC4EBA62552F92DC3567F634B90AA1996F7A50176A7 06D60CA1EB8A4495059ECABB76BDB5B1C6029FE6A9BCF8230C554CF99A5FD751 70B0205DCDCA4E8512067D88145E1FFCFE24EBEE1D2C3A11820FA8CEC9D9F830 63639C1971FB232FCBE3C23E7DFE4E5C435BBBA755FD6E807CF8648B6498942A DA8A22C5505B8BE855ABFA3AD0455DA68357745F675B625DB0C0E0EEB02A4B7A CF909A20045A27C28AEE8B8FBB54F5F294E6BDE9FA15474AC675E8EE1F8ACD96 E8B60835C443840C9227DF1B8DFB66FA81B0E460FD42B78EA146CCD4F08C6EAF 99541C92C31F3D7253A22EEAB6B562DC60CEFCC95543D9703874AB7FD924D57E 0BE99050F1C9DCE93061A34A70C274C3CD492EE4D97619991867C2096839DCF0 A3C65FBBA6B7D04FD4E80E24D069E6BC0989114E28A4E4EFEB0A63815B9021C9 F6F39C6FABA7F3DFE1ECB6FDF91F3D745C058A451D7BCB8B75CC9405566D7D18 5B57BEBE114AA2E311754547EA061E304318C3099AD4E5AC2018D17EF0641E2C 793CCEC2FB1DD91E3BD5243D4AE62330D472B77AA4A57684B3CD23F57896BC9D 667ABD0148DDAF1A67EE9AEE712C79CA9F6931A3F8B9B245FA6724E959D8F8CA 9129D1456B37551FD0DE95A0F1C4E9BC11A9B96583D4762A07F32946E0F30FCD 4D985EBCA3ABC46E1FC83033F764ED045DEB0426598042B95AC5245A0270CD53 E72377D6A9642A0FBCE6CAC4B79AA021CEA623CA006CE4DC8DA41FB1D1E643C8 DEED28D66E4DAC1DE3A933730160CAA7B970C36787CD2CA3F34F72531A3339CE 5E1ACC4E17A964CEE606A7EDA19FF235A1B1D92C9048EBA3547F6E85CF93CF39 37BE25DE46DA396791B9645F9C025870648DFBD5035EA3B088AB09E63E543A52 5AFA0B07C773E6A0511F1B9DE1079F45AE936BF7DA3B1F8128ACF24AA8C84402 91832B3EC508055AE9629E2F0F2F3C0D814B450994D2C9FBB70C6D88E6AFA6C7 19C3AF60D4A8EDC509992BB7411301E4E1963927A6EC463FA6308D89E0EA5897 7004A767EC6DDB51FE5500BCFA6F85B55E41CAF28BB726E128B677EB2AA2AA74 6F7BC4234DC1B8230076BFA61CCAF0DCF98467B3C54227E1FDE3579A7CCC8C29 61656CB7D4FF0391583FCB27E118396D9AB910758666420B9F89015FD6C7B112 4D1FE984E239B3528C2F168E15C31C290C06B2E5DE35E4D2ABEF07EF4EE80825 FB222DD2AF73B3FCBF3CE766C9C996E3EDFAE56994302F1A26FD2E3016477CD6 FCC2FC6AE4E3486A9BA6E7B6FEBD1C534EF5A9618BAD5238F83BF6621C9E636F E7883C6A15EC3C5DFA04E99C8C4C5078F430DE87AEE7B6BA0AC017F3042516F9 B8B2D24208FA13CEE995678B3177E75E3667DBF0FFC8FD87A4B788FA906169A7 24AB2879B2FF9496CF4D764249873AC97299EC9F29CA9C6B1E344207E4CAE008 A6253F0790FE80E497E33832A1BDA40AB515A3408B6F202B5F71AD4A6C12BFCE 1F17CD873BC22AE471FD4C9AA0D82A629F4C6C28204CCFE86124B28DCB3D675A 75081A7B73F59172244956BE3C8B09572FC9EA95EA470787EF1119424E2A6A71 518CE12252AE4498AB36676611870BD6B61D7DFF0313F1DD880594333A1E501B 07CC930B94D1A0F4D813C4FBE9AF458B675B753123C21755F45F65B7116D7A3B E985CA9BDC563EE5D7C5D69184DD7F262B2F3C6555D8721681C697CBC80C30D0 5D90F9793DF3CBD39BAAEAB3EE3835DB000A2578D2F80095663C85288DA0BC5A 67557A83E253D0AD935854BDD0D96885E3F3C106EE99D04B91368F056FC51621 B4BA224FF31B576B05B26F170A6042533B6326DA12318EA1354D15C907A7B3B5 74F800640DE24F75356850BF9BC69103DA366A28457B6AA03D00DA78C4B5DE3A 8D778F1348C55E636AC31A1349B47D20E1B0B54A555C105071BA868776058EB5 A9585E85665331BF03B40F7D9B0D02F1577338A54109E9A915699F0841570B93 428F4BE1120A99E2AAD447837594C4206852B93148AB8F1B5D4EA62AD5C91423 649B5621BBCDCE0EAB6C24285B53E66E282770AA8EF1D9C6D08D798346EC7709 AF04CF1E043E855749DDBDC9AB5D5DBF090180CCC8825C44F418AFA8134196EC 4AD16F49F8CA6C54372C9E42F76AC4D9F3DAF6FD5DF148162877D2F59209071A BA096582FDA402B7C28E7ECA6ACE88ADD95B6F29C09CEE9B160C2129B87AA421 48B83F2F058CFCC5F6F232FD6947268EF107614D67A9211D13132BBC9E3F735F 7C51740EBDABE3C6CEE3B5F70CD475F2FE6A57164767795DEFE45A946414BD0F D74EFE0129F0C48114F6F7BD6F729162B3BDF9181AF90E67A335BBD178ECA9A5 D914FB7C3A57AF2025911EF6695A1DE8BAFF2C3EFE9BCBFFB02B9E323AEE0555 FAE66B730563251220B0C5261919D4F5C661BB101D73C4C15AB6723120440572 2A423BEB29B6B49F0E17D24A11B79BD620803DBD3F50E43518FD540C97F9AD04 1211359405AD37022380B6A75922F7693BBA7B997BB55202C405BF24FDFFB5F2 7E806ED6B7B560F76DF9B168149439AC29767753A21DFE9C8021D0944C4C44CC C0B47FF36CD075326D10818812FF4168F65143A6A3F101DA8B110683735BAE7F 0A365E515DB2DB809A1F22F5790A791686A24089EC53C25194F6F64284DF4E0F 6275458A1BEFAC9784289A8A31698518ABEA5198679ECF7DA75F3B31D8941C07 2EA8FD889F2F36144F71CF56115709AE63342703B0869B8DA17C10C292369296 11A38ECE4782DAB1FF5BC9818068C8539EAB2302FA5734A261809B9D63316A43 AFCEAEA40F9A5B0D8EBF3633B7C88DA6A611DE48D282D80034573BE1FBBBF058 FD286EE7E1120BFC04489510FA6885E38C030A678E8A3CE1A3A96E56BC5DEB91 8695DF37CC1B872C95D1BE59B9E1AE324CE947E73294C688154BB5E5704DE61F E2D3E9387014D6C4024D4E5193231930EBBCD6803FC3818D18BC190EF7111F8C 1E0C9B8C513499730E9718F7BE7F9D5B9379C2899D45B88A1F21ACA4FE175CA1 B1AB688538214638F2BED7FAB66C1C256800185FD36707A27CF83AD6915DEFDF C93CBC08481066E1AFC589E26B61638784DBF3E3767564E7E51A40E7FD2550B3 CDDDF2795E6806C382940689C95599AB6B0CC6CC7BB4F67C499A7F306C81B407 FC6F181CBD4E299ABCC56DBD46CC679128442DD7CF1F8F607303736C9D6C6159 D76924DA05FD3A3E8E8DC632F6A4C5A422AF0D6A64C82C1A4A728268E50A6EB3 6D557E3FE76FF86B63D4A8BA36F0CE16053F7D519E3C68A1B468FCB1A7BF4BB5 B8333B4C1DFE609077A1A2ED7F60A21DB87E25A81A7902E51EA5993A5CC16B66 9A5FF6B0903B95B1AC41A77AAF12F9FD4F0F9B083906B17AE68658634C7675F5 82E1F600B04E8662543B5F53502251ABB6DEB7DE58980C43CA61B1A84BF9694A FAB32A057C4F3ED819418A21B822877CE97D5EC5603DE540A717AA3FA3AE35A1 0445077B412BF1AA548E624FC904CC2A1AF18EE6194E753609B3241BC1E5BF17 68DE1FE8CD4F5FE6E4733CB4C18522796F6CF3114E63A7952DAD9E1129A66C21 D3C37869CE94D75E503E58FE585836592FBA9E3BD241DE5D2666B04EAA7CAF89 24F51615F514672158070A121552F694372DF33A770A7D107C8C5743554FD2A8 75D34AF844F9CE5275CC877CACD56F2BD59C4C32544B6A91BB326173EB8CF2BD D584DAB7D2122CA0B4063A6F804D0252D8D15709F0A82B9F6035D88861D7B46A D57EDBDAEF4EB8ED49C9F7E07A79601BAA5AECB06689ED3EF67B434D2E0AB453 A4DCBA4BD3656A55A2355D7300CBA53FDF6CC370CB8D0C20869B0C846BBB7607 3700256F98AA30F4A58727E3556A3C6DE6F698CE6D06AFF5118B219479B875F9 5A50120990A57FDB526DA901A07B081447FB9B795E0829E304B5B55E010FA02E 1884735FA1FE159B048846748FEA02408BC844979E7DCDD158AD3030D66B5572 786746F7375DB6F7D9E6F7E06E427479FFE6F19CC1AC3256E82225F2A56DA833 78FF3001A0DDAC11FAA4F3626C8F46E5CEB0D0BD61CF867358FAB5C07A914C13 BCA1156A6DED6F115DFAB7694069BAE584EBFDD39E0AC6085C7B6480AD29CBB1 8BC822A61E13B6BB91FE6F4E573E0A5D88FC789F2E4F493D0661EAF2C8BAFE1E BEEEBB79DFECF9E9D9DE317CB0F3822C97AAD97D6A359458C063E8FAB0D736B2 D6126804B2EC907F085670109ADC5A560B23209BFEB0C8A523222368CE7DA2CF 2195FDA51E5C68251C3BA06AF28EDF92142D7E118EF419AB4EE4CDF7A426CD68 B0C74AB075407879445F81F686C6B3468F58C2563200EC2ACE3BE5AEBF45047B 2D910020D638C778315397FA3FD128063888D29B3C1147E12B21F0438F0B61AA 74A39F4C19B77E475875BD757C41858B6221C872898D59EAC2524B14DEC2AA9B 6BC8CB865185031A352169154F8DEFEBC786557BF0BBAACBAAAA09DEF7B6D431 8EA5E2E2583C2A3D606EFF1A6B61A7C6FC35DECE8BF1C7111CAAC4D14D814D05 D2A259BBFDEDA23DB4324B7BFF2E448A229D51426027182DE784BA355CA76C16 DD84E89787C6F73A0B07D0AA6CBBDCD3960DD91CE4A6B7C6A192F4FB8EFF6CD9 AF308FAA3098817C6732ED6CF1FB141FA181A07C11606E7827A41788456D4A58 13E4BE2FFF83FE7C109134E2E87F32F7700E58E795FCFF46CB0204729A43C99B 278B199F445E3A0385452BC920F7F2F4455BB8A85031BDED2753EB48B9578A48 9EB4E6CDA71F06C56566D329F8D0C171C1DEB2688160E230882B3DAB3D27898A 5331CE4D437A60EB69A6DFED2718F1654B91D12D86F11E5CB9CEFE80469ED10C 56D09422BB6A2D2246F400190D189B782D95F08E263DAC1E77A955F3D6BAADB3 3E9455AE99F82107BB7D53B7A38C54E61CCFAE5CC5868B4D1A166E817143AE4F 6973B39CBB023ADD1C0485BB9E5967F9CA4404D3B759416D2A351B02F6D5BBBB AF67315177A230D77C11CC66AAAA33327DBCC58DFE0550CFD1D009BC02570E55 A06B9A90C0F3BBF2F0887B3A39C5B64B5C57B4D33057424308497BCB7BB2A5DC AD9FFD630AE3E50FD9A4DD191DE90B048D40CBF9BDBBA7329862AF4799F78C00 5C410E377999BBCB303BB5FDDFBF3D3B83C53016D546A7D5E8AC3D5C8141C645 02E3B4160A226597258F21B8A1FEF876988BB4380ED455F4C052484684E7D589 082DB2DE1B332C905B5D19EE154662D1C9A990AF4956179C8298DE0C512469D7 527CED1E5CD3F25169E1BB691FC3239A3E8AF46700CF327D65ED738684A6ABDC C7FA7C55E99964D089A88A6126A74CE5BB982063C2D1400E72A69C5919DC86C9 677B5265D24A6C125333C95669AFFB77960FDDB34B09962A511AFC83F6C6C534 AD20408BA685E0F1702B90CE4F3C3197E92FC7F55B36E5A578879C9CA5D99054 ABCD4DB6FE020AD64594D84017A50FDEB87FE597B46C54882156F976AFA7120B 66D9278E9EAA53312C2AEF5854C9A907F5202C44FC42AD4D89A5C175DA219123 586271C2EFE868AC78A928655B1998BEA24117740965CE2A8DD3B4DBA7EAF05D 2B48F43550DA305DCAEAF51701368687A3CE3EB1F85B208A6404C2BAF3122C0F AC53CB78EF1E9F405037339C1531696232F4A49DEB487100BBC60CD73421ADD5 DFDF53D6869E314E95930604EA22A54F476A9B94DB3DFFEE9F2D28E4D9E90F74 D46FA81247C52DA77822C5E6B260F7AEB3E3A7EA93C3AF037292BBE323185B96 6BFD7763810C1E250D0316BFB3D7ECA35B267F11 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM1728 %!FontType1-1.0: SFRM1728 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm1728, tcrm1728, larm1728, lbrm1728, lcrm1728, rxrm1728. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM1728 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-174 -318 1347 949}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E4875AA4DC69A02016AD2E6C71441AF87012AB28D4F0F6 05A1B80B954FBE39F81BCEE3BB01BA5C5E565B5AA6FC97C7B6B67E84357BA44C 2937AA743FB277BB74912DA3E25E67CB130405792F93CE2E46116C19329DE8BA EE04B792CB05588004C5CE06F43DA6B4B7A32927F2C6F890A67FF20BB1365D06 3253F39A8AE19D733468E9F5471E11AC6CCD6414D32B064FC8EBD4AF9566E2A6 EEDC38EC94CBA2D168CF68A2446460BEE734A3DBA42E9E603A42A39D56C31B65 CB46AFB15FB6173722CBB1A11340FD4D60C9C1E5FE87804590AFD4CFC5BE2708 DDBCEADB09C259533E430B4969688B9ECFF89E492D13C71C38F5CA9ADD1FF1EA 5616C0A52C7FC2599A22FA881C576B2EEBC0E178815E97DB82FC6C2CEEB0019C 4294AB22B62F31451ED2310FF7D31077065FA4DA0C578E84DC5B45EBE5910053 4705EA0BCD13654FDD9853F9B32E4256CE9281C2A01C858D43FCD28C34BAD1DD A9438AC1802E3A2F18A13FE940B948290D3423E7E8BB8914B605290D931A5921 2BC316BA868C0A90877010683689700681E32A9F65839CD7E737EAB2B87C9A48 BC2DCD592E530EAD50C8F49FBDDB3E4720A71674E5FC179BC0D407B00919537E 67FB521FF5A4B32317C44EDC5EEB3159FB0E6EDC040841978A5D3210CCB067E4 75A43DF2B7106A8423E4C5FF6A84003A1D43A64470CBB0EB30581D79F4196C09 382CD6C7E56453FF7A15528E8FB8CF560DF8222DB031074F387ACAEB81723EA9 AE3B3FDAA62EC2D497594D7682AED7EB8914D13B035470557B23B9D51CE0F2FE 66E5F04E399E3BBB19432E9D4FA81CD44C3F88E53723A073BBFF8C194008B810 18E1A1443CB8897EBB1FC1C2767E08A433AC8E0C96E39FD5FAD68FA2141144B5 BF0DFB5F106C29C7C87BD0773BA10EDD037D5C3FE2BC9CD49F9011885EBB0E1E 7754947BCB7DDF52D82F648B40950852899C78629DCE327B5682AAABA7CC4B68 59E4D8679F04375B9CFAB4EDD543214B6D978C379E33FFEBB1B84E3E7280D326 32B2B0B608259CC88561A7DBDF5213879B86395E7896365ABF47F9C9B71DE7C3 707E282482836514F597118E8183417B87851F2B959DC637E01941EAD880A7C3 B5E28AE879EEEBB609E8C8ECA9B04283E70748DF3EA93C1AA74D3DEF72F7588F CA4F8DD487B705F6FF3834309F2E9FA31C38F01FA6BB929B7D2781551583B6A1 DC39C40FD37EBAAEA6EE5FB118C32B78C8313C3AA4402F7733CC02D720494DC2 37BA8F8ADF789662C3CEE0B98F23D84EFF89DFD6D26F89E6170053D11D63C94D 490D91D481711BB870204FD10989CBFB8EC97D715D8547404A01A6FAEFBB8F08 3604DB0FE8CCAE9DCA6ACDEB1A0510505B5B72BF158E72300A2D5A286B4314E3 F9041E681F461DD52B566D8725FFA0C0D33C519DEB202AF53BADCDBDEF0CAC86 9DCED6FE52AEBA66664944DB07F0908B6DC9CD42010D766FC97F981EA97AD1C6 8EF86B3E728A64E1981D2B563A4BC5A1E52B8D3E938C8C15B9738530D9AA6905 7626DA202C6A35909BA4D6D0DC2E32184A5AE3B770DBE028D8EC0255CB22BBFB B9B3B92231886B7B339CD71513DF01252A2942C6C454C2EC2E3888284189DF52 B92843A95501EC63C67ABDBD23DB383FF3A155AC5E6F068CF202540346029806 1C181F0B9FB0B28D20F7B3A1D1B0A4D75934F8443E9AE3BA17751823F256B5BA 949B5ED945005796D6E904B18BBAFE72CDB6C6535DF22D8F98CEEDB862CBCD59 C0AEECA6EA498BF279BED4B0B9DF6643B869260246FD78C82B8A4FFEA3D71E0B 1760D3C7601193219152C598CD84B25907DD03E509284A4D43B5C29929D49BAE 65EFAED723ADD7E587154E6EF330D96DA22BB0E345D1A49845748CA89A6A4A79 537FD06EE7C6E6AB56944EACCAAAB09A79B157D0C27FE57345CFD2048A6CD4E8 1BF43B111309D247613EA30773EECE5FEEC5400C687E2003D7497D9F41AFDDDE BFB922A82BF8FE45235AE3EE24E262B087FB0031D90BB7149E3B0BA06A7A6CE2 4B00960111A1630CEF896BB4F30B4D7F94F4B4DD1AAB6C22FC9CFC8D140EF9AF 38DC6618C5B2CE27AEFA8F4088A4DF07E63147981FA08A40882ADB4C7F3D3884 972AF0BCADBEF2B2376706FF75CB1A6916EAD6F4BB34D2423CC2D1D499353FC7 02CA7AC736023891A0D173103CA77A11F6744B7561C355BCD58C0E0685ABB3E2 B00586F0EF584652EDF517008BEF5AB6DA89264846E4FE0C6A3E38A487146537 53D6DF14A59159D28EEC745176027BB3D5AC01795D57E4FB4CEB7114F85A2E16 11C514D0A1C73129BA869092A6F0F2DBD54846573CFB43CFEB5CD2AA760AE03F 987EF83A4E2E92CBD92C868E05A2C861DF6685E87C4E740A606C0EBD7AD10896 56E68F15095E006F462B7912C578C6FB7E0B6CC20680E1FC18969EAC3C8C5CEA CC02B1CD8B8233387B6766F68659A329119D416A0B120AFAD7B273FAF6EE9502 15BE50DC846374B50FFB53814F6387F3A24C8636763C6540955B61F8D9EA9F08 9E727C5ED76A531AF23B6B216126E43B23D164A25E0C75197132C98F88B9950C 05422C157F83C246136C1BC0548BE676D7B7E646540DBDD8EE8C88C308EBBB06 185358DAB68F3B1F7AA10EF5A0A7EC59B5C0A4B7914C05A6870FCFFE978BBAA3 E1DB302ED11A53852783FAA3CC1C0778BBB284356F466A9D7602A46EFCC51193 16040F4DD9481E594E6D99A4BD87993E3CEA298634FAFF278FF3124373C9EA0C F12EB7D4F962028B00DC0087A766A60F63978BE757E7F6E7EA3789FB48CC5E29 C2A86767D287474EE0D955CED31605129E49B07547960C5E3F3392948BBDF952 EF06E6238C39AA94709B2C50EE6E015FDE2809D752B9B10AD45D42553EF9B6AD 5B58A01838E01E05E62078DC1DFD763C1FCE48AE61ED50AE8C966323C4F2D0DF 15C1AE394645332905A37F0816B9EBB8200F2AB7DE3219B0857151C7BF6E309A EF2CA999760B44A57D7DAA49C0B038B5B0C93EC5C4FD0A764B34ED26BDA0FF0B B4A1CDF1DD1BC638424093D1B68FBC0D53C386A53E3314FD87D9354F9E38FBE1 ABAD591050BF6E2E01071E5B712F2C19A1C1AD46AA4BBD9A1DDB12244F335AEF 967585E6A22648D8CEFB6B7F2439AFC82735A1CF4D1CE19E46C61A0AF6912DAC A4147BB87D81B3CA5B558C2CC6C6664240CA03F9B165840BBEF2BCF74FB1E376 074F3862EC97081D32FF147266263D69115F7A1A40CB6D7E2AEC445AFD7EA203 DA91633CB3A6EFE7559390B7143D09AD29A2048DC36AAF162BB34333C807DDC7 F0A46109EC3147ACCB854A74DEB5C64631867140D506DFF506CD428F68A5E787 92EC3F52A561F2CB074E2ACA6E2A9781E48DB8F5F6E33BC1F65CA5AF6D70FCCD 46CD6181C424FD35CE5C12D5BC78C7BBD8E100749B38E1AE7AAA5549F5A4264B D84D7FBEB186853D071CB13A0517E174A23DEA7EBACA3D7DB5B09153C0F42344 614C1A6BB29E51AAAF8EE72454B9673FB763DACE83E44F3CAC5970BDEB35E58A 03B7691ABE8B9F9E1AFDCEC14D8A9FDD5E5E11FCB4A83206037F69846660A7C1 7E37F9B5700A4E4BB6081364D2B047F43219ABE19A98E9BAEE0D3D8A12D63738 82212036D3FB977E066A4E5C29544704D47B2E73E6460AFBE8EDCDFADDFAF3D5 91AF14BDA0F24AF0580B2621E7DFBD1F17FFDE9E9D3FE324A15B6CA922EA3648 C55D7A096A806BB2154E6B118DF33908E6BED58904C302BDCF20465A9A607431 4CB5B5554AC22EF8EFBDF7ADB03535949CE4D14F9ADDB25223B3A9245CB38C02 170EEA1D0323EFCC42EB67CBBC53C00FC07240CE0811225962C09988D82C7220 70327FE0080C2F6E3D40F48AE47A46D51E819463796B070A2B3216BB17B5EF47 2B22A7667AD3285CECAB79D20D4EABD0FF7A7D07B9A5BED35DEE30BF2A99C522 B478EF262FF6CD97469AF1C172022BCEF77B064611D742E6D31A30036E559F00 B8473EB8F462201102A4870FE04CEB27C112FF1DC94992D35FA7EF605075EE16 2E55BDCC3CC8377275360C438FF0E862A7E7E06EB6FBB6E07BD329E9B9CF1C87 BB9B11F7A1CC4339E97EA1684275778A369CE0CC6816689D6B716D3250044452 650AC9F15FC5C1F362D5153CAF9DC64B16D6EE1A03E424ACEFF250A86AD18CC5 C1BAF659D06552E0BE7615C82FC3000FED17EA056D12D3791E487ECCD3585CE0 CD283391C768E5DC98237BC16C2ADC5117F025EE75EF233DF4809EED796DB49E 4192E8771E3EB16DD6DB8CA12C47BA44A22773D7627ED7538635EA29ECBC8F94 FE6942AF06A3B25F02D3C225AE07332308F8DEC57362F997A4FF1AD2C9939657 CF9DFF38300063F60AB26FC8966A2E47E19436021ADD090710A388E840184DDB 24631BF2BB54874F6206780CCDF8104864DDEA80084865FE3A4054EC2EB7C1B7 E2FCA9089EC3F6C4E115B5BD5895070514EDEC2BFE426A768678819B070C50CA B47B1D5674D502C4E3EE351374F429AA22E21D16D1E2B179B085A88D9A6FA071 51200A2521A21299FDADF3C21F161FAA1E28EC28D50FAF4DD8721A21AF05613B 8E50F75CC7893C842EC8B0E9551CB7A461A3B5746CCE8AE6A7002F677597F65A 53C3C1D9896EFEB11A51C539A9D5870507907507ED492B8DC2B8723E8DA142F3 D6F5144C7D2DD24979B3BC0EA8F9F233B921509D3B2C09E451C0BED27A9EB35A A7E4635E2D6D439D3B8A2E27BEDC347953F4A1EDAF432F766B7C6A9B3D96F664 F3221A83A203F432A6F170A5FD7DC04B04AB47E17888FC2C1C9A3DFA6C31BFB1 D3832124F21362FD196FC91B921FB8BF6565945B8A2F065EEDD89F309FDBEE7B 1B2AE74607BF50BAF9417FB6DD0521AE6964C58654371F0D4BFD284560DD928B 97F03B90F853C8AB3AA18648F59055C0255C80F2E99AC2A0938753571EA4ECFA 81043CED8B0D7E5718DB05FC20E3C8C69E20DC470F0940133C1DAE3A117EC4A6 2DD9DB8278A0A91107E4AB62AEE36712F85072C69C8D841079565818DD8A1AD4 41D014DCD8AF161D0E0DEBAB086C3C781BEAC1865DD0E6305207F6DEA4F89683 9267A923EF2E7ADD1C24093E29816745F282F7CA2D3A11102B9C6513612E737B 621041F008A9D74A2CCCE77BADA8990F97AF58479E225A85580DBDAE3AE4A54C B6D8AF11C11BDAA5C395E558AAC41DEDBE0EB5158617BEDA29995A9D33FD660B 146C570C396F9C39E4FE33352421E79A5C0C51AA53A58D39D20C3855DC34CEA6 04CDFC2270985793D8617AC836F35BD6232B0B7346EE2D6AFEF7405B80CEE656 EAA8868DB2A98B4A590221B7B421583544B2968689F684DF1542E0A4C0637E8B 01B6B1E19224F494FC59D70362931D8195472A36DE2F8BFEDEBBB4FC85855069 3F4C709D34D5963E226AB14BF267E20387D2BF2F7022B38CB7DDF4911D4E81FA 79D1A719B2DFDC18ED31980433771A8A899D8366122FA7C4D6C1C0082A07F5A5 A1C15373CA3D91A2CDF3424644937A99015287DD4746C530F01112306DDEB3FF 49C7BCEA1A0C120A1C8B44C75D9E7C488F39EB6D342EA9E3EDD2C9C644CC5BF3 E678DA860DC117D6A8454EA11DF4A3856ABB244F632945A228982E7FE722341B D44E62AFAA1E08A3F241D8D12CE496182B15C3B4DD2A872A7A397020ADD720CF 96E4D87F65E0FE8551354605820D48BA0B2EEE00A687BFD29A3AB7A5461A7751 9449E79298C755064C5410E81DE9D9628412B1724431E8B05E21C922B5371BCD 6FDCD23A25B994039C3FA129C8AEBB58D6DCBBFA745CAF433D31E6A64F1BC87E 4E958D1903B48F6451BA26E845A4A22A1C39A83A3B13DE7AD5B63E995D6BF8A4 60A6997847DE1349C8E1D29B7C16F8ED45B88C207D9F5400276E7502D9FDA552 4617569FE5C5935C16918F0AB2DD6258C0159E8C5E67E8BB86CE6B4C714A1265 50EF3248B65C331D398E56602451495CC5780EB9FEC05CF95EDD202E744CC3B6 5B5ECB28BB9025796FA97B63F4B43B193A4E3776994EEABB0773F24A6BC3614F 7E4C87ECFE0607132B66A80659D1E8011A2C6F1BD1651A58FC9C6AE89500FB15 491E2407EA735D0C37EBABA41F0EA252119950277E7F146F9A96BFB38A5A0D2C 82D2E717A506A7B26B04B4621098DFA5B2252367EFD9F7751743CA1877F3817B 234FC4FE47BBCF8D4438B16D66AFC53FE0319821DC0E2944A9C1A71281555294 F65A8E3C686A3F8D65AE537418375E3A06B17C59B85FBF883DD295DAD6B582DF 9004064B733884BC081F33CB054016F8EA8D0235C76342A9A713A005746742E9 2D98C932CD97D28D5FCAD3F3FE409A81B94B8E02E2B1BC7F74D2930C1F354F50 4132FE27F5F3A495ED77B286B4A72A199F16F2C2499BEBE2613232E4866B0F82 F15CF45D6B2AFE0DB6A4576B6E6BA2387436925B054289236AD44F2DD1B2673F 20AFE5D3D0853F5DE4BA3600067C76724B62BB0C1B1BA9C612471BC33EB5563C A921B50D54CAAED2940B52246B7ACCF2B3144FDD8728B99A04120DF1AA7A65AD 4B5FA847723B6156E50B8C0470CD3AD16D161C219811618138A23A4F67E65BE2 599EDCD10D0407325DFCDEF6E063F1BC54D7AA390721D24F8878A9A3639F4DE3 A411C6D859441AD69F4B470C9F0371C93773C87138FA231A72D8C331867AFA4B 1E51A20F41119742F4E3281AFF630FBBE0A31F812A245A84C7A836A58B084C99 5885B92A69DC0DF9D4D4A2E9F96F4F828D352041DC8E6923A275A78BF3A39487 DB91F5F605C6288085A0C17E7A955C5840E4BB14D4521266339AE1FC4FF99C29 C798D25EEEC46B8EED083BED57BFD8E466394884258F3435AB4B8E5311310420 8DE3B01B62A795F619ED92B6419B999306921828C1D2FB051CA44CA48BABA007 8A0AC1B8AEF5E2669F36EDF49B15DE30D2F632825936EFCE4AF7FE992B3B2B1C 8753E86C5FC40BB41445E2C13DD2FEACE5C946797E396157CD84AF99AAB8EF4B 20D43BCBACC4ECF89E1C4DE518A362B4EF8EB840A595773493EDA922DAEED244 FAF529699C152D7E11E78CF5E711F60F2C7C27B9E8DC5DD83EA858CDC794FFAB DE0A293F6C4CA8C097227E90541B16821A5E05511207FD6E7F5C5D8987D32CB0 FD0AD5E8C0B36974FEB521654CBA4A65F7B3856AF7EE94818841417E9DC74C96 208899F05A644B2CABE1DEA4E1672E3FE980F05C0411FE9C8810A3167BE8579F B95337410D91CE79224DDCC6C93CFF2DEABA293EEF5C09D0515F26D772C5164C 1FB86D4090A6DD00A42AC9B1F7B0097970341C90E60DB1ABA3E00FAA24ADD08A FB863B94D4315312337B0C332FB91C70591A71A951CC34EED044AF85AA0F47B4 46420B3F219204CA43989ADE045B1D3C1A653D9AEB2B491FF8476745FD4B1D9B 837FEA7764C5F02623E0997836891F20F15FC88947F2259C9AC2FCCC886D2880 AA5FEAD234BE9AC28611EE83825C8D8098D27394AF7F5F27FB6EF7A00B678740 2DE27CFBF067ADEF88D148CEF6189F15C8D66C6CF00D11366B11F0BD623C5837 42EB91BEB2C71851C9B20DF35015FA19A653DFED06A079CB0E9C28EAB7220005 CBEDC0AD7F3716143E4250D4B9BE14AB037971D5575A3D1151199B86640EEA8B 49F80BC01FEA11855F3ECAFDC1ED9915A591AA3CD97D683FD51468208072BD86 1CA3EA8185BCFAA3C383E9BBDE2CBFC03164F724A5D21C55B11AF383AEDF5B51 FAFF0174012508F26D37EA82524C575AFDABB364DFB521FD15326A481A4C4CAC 1BFF487C6B6710BCF518C1B92B759ED714FF0C1544F7DBBB387CAE540B935828 9A17B198F129369735C2229ACA8F1BB85D1DEF007C608681967A2EA7DC46B1EA C18DC6F5CFF32CFDC12E56C67571D9A15B7778BE3CF49987BC2F766156316B80 D9542BC80D89C422C502FA0840A71D8CA73863BE8E118FD8C7865BC1099BD4ED 00A6334AAD29B3C4BC8FB60B74E990A77EBB8793372FA2A63C0333315F81E1BD A0E7CEAE2CEE71B77B93FEB9E308B154FFEB5044A45A0EFC904130DA68286FBA 449AE8F9B2794795B71BB8375FADB988E6FE08AD0BD8A0D024A54D25EF0CA4C2 9FD895A6B5D5A019C1B1DBBEAD0F46F1CE20D0966D23A12CD1CCB65AAAD69ECB EE3E25D19CE536023111E0DF78184C2938C14207DA54B4851506DF25F29002B7 504CF0E54324D5D2058FE7F95C56B282E85229DAE553C7B6C74A0982626BE02C D5C660C3B53E75B02B5F67F509EA0CE2D23C09BA1ED860FBD6BC52EFAA1F499E 8E83D4F7728833F5064EA574B328F0651D926C0EA39FA4C17F214AA3284D5400 68151BF94C790BC50D72CF7BA9BB7E1E8B28BAA582F46003469556E50E0C584F 1FFABFAAA9F849C4C3DB48823C8A88AA70289F6626E92FA2EF066CA11AF63E72 0FE1F28D6565F714BF4433E65495A55A2B575B385F0385442471718C19D83B1C 66AD54FD6CE1454E58A4C4C1F2F5268E697E7AEB9C77529C2DC90CAFD11AB063 3C816C3FEA2F97D671F5ED72DD9CDC7257A831D99BED9E43439B6EDEED78D08B D98C51CF7FEC1816313959F23B5ECF664B9F2E4AF3D5C3BB741AE73DD2EB759A AF572C4998A01B280870B95BAE598E0D29234DA977490C11993FE138E5AEC75F B9B5919D280441616F71087835962612D105FC2DF8CFF940A406E019370CA85F 553B69E8BCA71C873A6B4FE36B3DB7ABA88F67E4E1F375CAF841ACC7CE180934 171169D8669E32FCF9B181FBFACA9D65A016EF312027D60E138C4D4902A26A32 E05F133710232F68C0542589B1A2A0150D825E4C847F33E8911793BAFA3E21B2 54DB13A59CB3139284ABFA0301EEA316F0447E330C92BBFA9867B16501F36F2F 2B195E8509090CE2D75BFFA4A78684B6BFC5E2D6D9762A876980EC5C1484C634 2183A2F86BCA507EF983AB01D8D4ED91C4797601B3B3D420CCEEB0FA4D0BB9F4 5377CC210177165FD10B74D28AA4C907E8E0411EE5DAD2062B3E50CE7B5DCCEE 3E81A6EE96D7A6CF2991F1E189425AC6A92B06B4CC8F5CF15078B158BB10A69F E60AD007D3441BA85588B0F934C832987A61FC0FC2B4323F1B37CD274F93E7B1 5CFD2FD66605ECF797F89FAD0CCCE020634658F1BCAAAE461299F1787ECC2F3B F58BE6A5293EBC91AD6D6E276CA5D2DF36485379A0716AED49B5A9840B9B9CC2 987BBC73557BD09FD61749040F8C180C6D51ED5B06D03E967999287C226C972E 5A91189A53498FA3DA42D5058E935827C0F89C97586C37F06CE425245C53C1BC 6E30E64FC294A5B1C1C5BB7A3F8FCD1D7277B56CD3F69660D891E6D1911EC79F 0247D1AAC06586BF8E3B26115CFA8DE7DCA792018061602E7FCFA28F83EF3C40 5CB09FEFB4B949CAA426E90BFA7ED45DC36453E01F4934770959F67188EDAB8F 6003D173946640C4CCFBAA342A28C7CBB47B49B40EB8F4FE841574B0D9BC0041 9C8FCB29A8720C6483864D8BA7F038555572D81B74F21C8E6E0996D41790907B 1BD807C450CF11405940D3EF692858BF02274124FAB71233AB195930E3882769 F3B7DF6369ABDDBE92294B7318A5169A1A3C9F5E73461E18D9BFA2A0FF25F892 89D62D7C911D06B86C90F18F6712F79255530CFC97724E745DA73D2FA72763CC D191D2D45162E76448D1CD1E98578506F81EBCE8D1F420CBBAA33C6B6C5DDD96 5ED8CA671A40349C0C30C13D92E2DFC374017298F7C66140E10C8D9673FE2433 DDBBCE8234B59A6A1CDF1557A70C4540B5968B09AD811011C695D95688A154C0 853D9AA95F38D9C2694CC88CCCCAD7FE46DBA987273745D4338686E17B61CCDA 6E28C3131A3D203C134B8B706E15EBA812C50D09373D7DFD3AB067F46A64153E 392FB6E031935070C181790E1C4D9FB14B1A16D4D3E2627C2BC49F8717AB23A1 051BE31C3427B413661027CA9647EE2EB55AEE658C50AB2C8E36EF732B69E3A5 1D690ED747B160885530FABDFC734C4FE9AB1BD41BFD7640789BEB2BB83C77F5 4D9F01DD870836863119C10A3EF67D955C3F6695DC266B84B610225A54DDA432 703037321B332CA9C483A41C44E3AD53A7C4C3A9C35B4F1944B856AD10C23E36 0D623DE874E432CA685A08ECB175BA66825A9B507D65A681EE24C0373A7CAC1C B2EB411CAE31F437881D084930052FCEED3159DBEEF0D4617855140B3DB6E751 F50FC2601BB46B30E7F81D2E542A22718D4EEC96671290F82F21D00C97947882 9E0C4DD82C096498899CC5E8073A19DD82C80647C8B169CC9813E25B9D2D27A1 C04D2B8F47B2B717DA64649D14C608BCB0B4FFB4CF7056FEF21BCF2022653A7C 65590AD386645653CB9176ACBD965F4A93D6C4C21C1E6F27E7A46599ED8EBA3C 7818D866268C0F308672B54731C2C915D433969BACB7D3FD49E1D4263C0977A9 60F5B134B33C511CEB1DBE4C8D26BF2C07355D78E4D5B50C996F1A54AB5F5EFD F8238CF01555A01B277FC53686C4B34FD02BCBF9146D4B3364F6B34D06B117C8 DABDB44D673D7DC1F9A0446C51F462BFC47F9CFFE21ECA53806157DA378B4444 C427FF9401E35CDC6016D116DD87E534985043D8D91B995579ED102371E9C0DE 569490D5795253FC29ADD3292B955915E160B6EF797B630BD4305A4BB961A535 B55642660732D60CED0B372AF195EED1ADAA9536982259990B69B37B30E5E7D8 17AB38790E872C89DAEB4E04B744597C49AB980E868D345AA7D5F9083FD897A0 5D27FAF12A603AA2DA0E5A087AE4BE33F428F3231E4491254E60B6BE62081CBA B8102DA38315C299D106B1E76A73D213A0FD4C65D149051CF351563E3B2905A3 7F0816B9EBB8200F2AB7DE32144F5D6E5B804EFD2A8EBE557A32CE4179F7C46F 7B9DDACF000059386907E4489A142251731408CDEFEAB338D9366BC723D2FDCB 6C55A62F35F46C1C8ED4CBD07E423FFD947C75BF5E66411593D10A76D9B292A3 A34192D3F00F017DA6AD3F224005ADFB2660471BB00392953F72E2D84D5EBBA9 26C02FF32FDF4BC76836A17868E80F0EE827C6BD9C6AB16226B9F5AC350FBD9C 0621C0961ECF35A152BCB2ADE8FAB08EE670A2AB8C1F7313630A1CE2823C58BC 4A6EFA5FF6E4EC9A756FDA7987E8EA9CD88BECCF78802C00C4CDA7088C938252 CC2FF9AC8671AC3EAAC964F4B6F6DD920B8CB923DC8A212229055F7C874BBA0A B6EB6BDD5DD15B941500074C253BC19691D09738B48610367D4C914932D9A2F6 6CBFC66D4180C25FC386B6955B4B94F5A348896387C1A1A622BE0A0A9FC2A13D 24EB36F5A2F8E577D9936D4DD2560FB5A4C94E0EFA2A56D506A04093D2988F7F FD4EBA771234165CB664AE29BB777F0C55300A634E2E0780069CBEB28820E94E 5E53A378877AD8AA1628DB3E09C2831BB9EB5007986CA77E73BDB8E072050EF7 481B68C5601EBFD23B320F1AF93A78936EFC59E9C64F001BE94F51D71CB1F85E 55FE8D165CF7AC06F3EC155AFAA67E3FE690A4167E6593C795C3095A077B552E B271CCEFF589B5C0E62E30E48DC5EDAD8BE5B0C7D671112C4FD98A0E920C4A76 42EB92ADBBCF085AFD648BC216BCCA0BA140CD6838DC44379E87B61DFF2443C0 45F7585D535C8C31A82566D26620EA35505CA64C5C16DBC142078067A8E71B6C 8D8C17923881F52C362AD2C902AE40885E5A65AFECA6F396FB1F5C4A6846693B 3844106B20D25BC87BA2E837A9AAF4E1479A58CBB0474093A90BC8856CF57489 D8B7A6887DF5B865A1B20E6BCB72E06546A014FB11A3C8CCEECA973D7DE018F2 6AEB85482A24841BD09271AFE81E635A20BBC1A009F78D9BF89D0523B29FD5E4 E48FA61D2BE5B7DD6B628840DCAC889AFA04EF9133672935EF99EC35A7B92542 0C1EBF1EC81E7902886A4B252F46502A4ABE0D0C511E96A1A3698AA445E6EE5D 30B72DE2312DA6461DFD647E7941A9963ADFA85DC39E495120B6795290AB98AF 7008D9A96A1A7C6D784CEEB918ED7E247B56B492C52357B21E4FCEBC54E69130 67361BAFA7FD08DB67FFBB421AA7C07283278233E1A448B2546E7018CC9905E0 588D4608A9BE2DD2C61B08324ADA6AD324934C4B20049DCC942DBD1F5D13BCD6 440D8F9137F8FBF036F762F23841E912C9D80FBB7FC3146AC4C001C5D4254A37 FE960A4D08A43AE4FF92B758B5C728C5F7FC93FA2914E407C892D715979E1104 84FB8CD3A10B0C94598DB876DEB24455CAAE54F6AF66D48161140A289989845D 61DE048B92169E0CC350BA85CDABF9807D78AF1E5D78E9B516C79B25504DAAC7 EEC2A963FAE836FF1CDA5CA01C91A556B4F6D5D94AA5E92D90FAF4A23B1FC6BC FBFC7D05A5B298B49F4766B56955ECC173E400D72CA921CC8780E482AD14D60C B79B995773CB56560F317A6E840A60B7DFC8412BA47EA2AFF2CDF810EE165925 51E0DB38E0080C81A05BDBEC2B278D0A90049C821CFAD9CCAC38357C25C74A27 D4FAA13511EC641539E1074D62D73B4CD6231E2D83E122E8ACD92DE558B56614 D15E17109EFC182D7E94C84240BB5A3508CA02AE1FFABBC676989B15A8A4B98B 7E08AC50756DC0A1266A36250654EF7F8382DA6FE263F3A1F4E7745331999C33 E5826CD270455E77B16A8E261F4304EB87A65CFE9CD11184D40A8565078391E0 A38F86BC9450A7BBC6C6085F699D344A18FC654DF2A4ABD62D980C06779BFBA9 292B6210AF17DEE9209975F284A78793A62D12D4D42A9E64C06BFE5523A3A780 D8D72C23323633E1C593C11BBCC34CC49E7E73A83B92D71542D68748116D2564 8EFC144C59E2786CA0135E33D8C3C448228AAED69AF70BFC0F29253587C40C67 C572A902B40C7332E5E6C6AD143BFD7C00226BA8EF88B994DE2623C389E272AB 6ECB0DB5875917A364928C12D3DBC5B8F9FAD279CA79223359B63B399F6682D8 A52B0535AA625C029E2383AA371AF1B47D42AC10DC3549D858174FB901C8B9FA 2D20BF71B516C899BB4148B1134F754348FD98F405A1BE107731AA5E127F6FE5 82FB6BECFB190B52A973E6CAB943134206F6BBA74D0634322688E2DE0A18891B D6C1E40A153D1A6DF7C90732CCBE47F8DB191BFD05E2FAEC7452930E3C8D6972 0D782AA928BD2414F2AC09AD9BB91A79DEC8F9C41901603861ABA8BD0CE12EFA 7528FFC2ECDAF2BEFBD2D73ED4A808F67EB5553E1F2913601D8697DB373A4115 C1F80A41F9DF419435F9A921C1B98DA46AA29BFA6B998C6ABDE8B60F003A509A 7DC7EB447BBF3400FB631B0645D11A6681093B251A445C71D59EC712DB5EFBF3 C25AFE41F87B50D0EFB1EDB6C2ED133CEA76782EEDB0F4F8E9CA5518CA9843CA 399F0CCE49DEC8EF49ED792A70FEADF889FB42EB854B093EEE5FB951EBDF6FCC 4110C629DE43929DE6057483CF04F08B664B216765C868F71FF9B38BC878B63C EE2E8A7F42254769DDB922643C4C65AABA876B8EA9B6CFE5FF30AFA340F90761 CDEDB2789644CECC5EFA6BDD9F96385AB138882EC3D6EDA173240B990B6D4E8B 95269B622D6D0DC9A0A9652C890FA9DDC8248B8693B0B84F0FBDB7D33CBCF0DE F99D540FEB8CB572359CDBEA1D17F00CBDDCC43144C78F99A9B9CA21C6EAA979 EAFA75A2A3A66E951DFE0969D11FB16BD1F607D5875A7FBD6C7B7DBBA087F3B6 A390DD189C2230E53FC3239A29C37B356CB6D3C28BAAC463023C92B2C8FDEF52 8C20F48B7AC966FD682B3817629E5D900506345287F79F7C8A585CFB13B96906 B031AA9E89005326D911D3A751C674353FFF9ECFB6EDB1427310385C92D33B30 58291D9C929C5DDF0353DB7509CF9B03216B1A407D1560B66151ACA8ED2DAC7D 3568E495001EF0D01F50C9B52011BF09F4ACEEB9B8E0249C949E8976F67FA249 3EADA552E906B39F85FD720DF51C63A188A543DFF94D4C534EC2B1A1CCDD78F1 7A9DED8ECD4B268C2B711B0430459FC1B4541D657971FAEB8621E18309361C1F EDCAABB3B2E31BDECB9FCCE7AA234B983F30F5634B6806891BD160FD4409D7B0 6E976AD4F9171278A6F9B4599FE392823A9EB492ABF078402D810A16F758713E 4AEFAEF59453356AF7F95937278B5A418C338B49F8EA3912A7F9EA1F36877CE2 776D7CE12E9CF21460AA506575872D623B248A71DD5C7ACD410E4E69043C24B0 81DD44A4535C1A31B1AB1F9C1209AE56571821EEADFC316F9EA1E0ADB45CA11F F8DA6AE15ADC3D4B78BD2ECD15BC03BAD5AE475E937AA882251FC197445709CE 33CBAFE83EDD26ED7564004E97A4E71A98E9E4000FDC6218962442F507D217F0 45020366E4E3D662487F7CC55B13A9136CE9BC6EF57D97AE6DD4AAD4B960FC1F 9BB6D4198D14055E219CEC2D9B4E4AF9343B5770C581E46EF9BA0C15E8B06BCA A05713E0085BE8A9B5463A3529FB1DDA0335612249AED2153CD44F533A7C1781 0A7C68CF4F62CD96DAFCE9DC4C0D12F6D37B5879998FC2EF3FF8E0A78916BBA3 6CC7BBEBE3D15765EB0F22025EF292623EC93152FA599A7682794388C78E6B98 8573C4621C43EB4A33102B9F207F562D5C97A7ECAE185E1C5227B619989DA184 E4429E009440EE00A480A303A41C911DA432E57567DEE95AB5189AD9BC0299AA 9079CAB2F5A1D2C3379D0FD06A284EBAFA0A87FE71586C68810F332A7FC8854E C912A4A0B9D9C01C8782D237C2C0FF9146ED97099BD9AC63BEAA36B49587DA1D 5E30212338485A964377E62A91A32F48A6D15AC564AB1DED690F2EDB937DC6 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39158280 55380996 1000 600 600 (fiaif.dvi) @start /Fa 131[30 1[30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 1[30 1[30 1[30 30 30 30 30 30 30 30 30 30 1[30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 1[30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 1[30 30 30 30 2[30 30 30 34[{ TeXBase1Encoding ReEncodeFont }82 49.8132 /NimbusMonL-Regu rf /Fb 138[55 55 55 55 1[55 55 55 1[55 2[55 2[55 55 55 55 1[55 51[55 45[{ TeXBase1Encoding ReEncodeFont }15 90.9091 /NimbusMonL-Bold rf /Fc 162[25 1[25 34[45 45 45 45 1[45 45 50[{}8 90.9091 /CMR10 rf /Fd 150[35 35 88[45 14[71{}4 90.9091 /CMSY10 rf /Fe 133[55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 1[55 55 1[55 55 55 55 1[55 1[55 1[55 55 55 55 55 55 55 55 55 55 55 55 1[55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 2[55 55 55 1[55 1[55 55 55 55 55 55 55 55 55 55 55 55 55 4[55 4[55 34[{ TeXBase1Encoding ReEncodeFont }71 90.9091 /NimbusMonL-Regu rf /Ff 145[43 4[24 39 4[35 1[39 97[{ T1Encoding ReEncodeFont }5 74.7198 /SFTI0900 rf /Fg 134[41 41 55 41 43 30 30 30 1[43 38 43 64 21 2[21 43 38 23 34 43 34 43 38 16[52 3[48 2[28 28[21 44[{ T1Encoding ReEncodeFont }26 74.7198 /SFRM0900 rf /Fh 205[30 30 49[{ T1Encoding ReEncodeFont }2 49.8132 /SFRM0600 rf /Fi 205[35 35 49[{ T1Encoding ReEncodeFont }2 66.4176 /SFRM0800 rf /Fj 133[37 44 41 60 41 48 30 37 38 1[46 46 51 74 23 41 1[28 46 41 28 41 46 41 41 46 1[69 4[55 2[90 2[65 51 66 1[61 1[67 81 3[35 2[59 61 68 65 63 67 19[32 28 2[37 37 11[51 10[32 32 16[{ T1Encoding ReEncodeFont }47 90.9091 /SFTI1095 rf /Fk 133[50 59 59 81 59 62 44 44 46 59 62 56 62 93 31 59 1[31 1[56 34 51 62 50 1[54 1[87 4[68 6[62 2[77 1[88 106 3[42 4[86 1[80 10[56 56 56 56 56 56 56 2[31 17[62 28[{ T1Encoding ReEncodeFont }41 99.6264 /SFBX1200 rf /Fl 131[25 1[40 48 48 65 48 50 35 36 35 48 50 45 50 75 25 48 28 25 50 45 28 40 50 40 50 45 1[70 1[25 1[25 55 68 68 93 68 68 65 50 67 70 61 70 68 83 56 70 46 33 68 71 59 61 69 65 64 68 2[70 70 70 1[25 45 45 45 45 45 45 45 45 45 45 45 25 30 25 70 1[35 35 25 2[45 5[75 50 50 53 27[{ T1Encoding ReEncodeFont }83 90.9091 /SFRM1095 rf /Fm 133[46 55 55 75 55 58 40 41 43 55 58 52 58 87 29 55 1[29 58 52 32 47 58 46 58 50 1[81 4[63 78 2[78 80 72 58 78 1[71 78 81 98 62 81 1[39 81 82 65 68 80 75 74 78 6[29 52 52 52 52 52 52 52 52 52 52 52 29 15[87 1[58 28[{ T1Encoding ReEncodeFont }63 90.9091 /SFBX1095 rf /Fn 133[58 1[69 95 1[73 51 52 53 1[73 66 73 110 37 69 1[37 73 66 40 60 73 58 1[66 11[101 1[73 98 1[90 6[48 2[83 86 1[95 93 99 7[66 66 66 66 66 66 66 66 66 66 19[73 28[{ T1Encoding ReEncodeFont }42 119.552 /SFBX1440 rf /Fo 138[60 60 60 60 3[60 60 5[60 60 60 60 2[60 32[60 17[60 46[{ TeXBase1Encoding ReEncodeFont }13 99.6264 /NimbusMonL-Regu rf /Fp 138[54 38 38 38 2[49 54 81 3[27 1[49 1[43 54 2[49 10[73 5[66 9[64 4[73 12[49 2[49 49 1[27 46[{ T1Encoding ReEncodeFont }20 99.6264 /SFRM1200 rf /Fq 135[71 97 1[75 2[52 3[75 1[37 2[37 1[67 1[60 75 2[67 20[84 2[49 2[88 4[101 65[{ T1Encoding ReEncodeFont }15 143.462 /SFRM1728 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: a4 /setpagedevice where { pop << /PageSize [595 842] >> setpagedevice } { /a4 where { pop a4 } if } ifelse %%EndPaperSize end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 1017 911 a Fq(Lin)l(ux)46 b(Firew)l(alling)i(and) d(FIAIF)1382 1163 y Fp(Anders)33 b(P)m(eter)h(F)-8 b(ugmann)1338 1279 y Fo(anders@fugmann.net)1602 1482 y Fp(V)g(ersion)34 b(1.0.4)p eop end %%Page: 1 2 TeXDict begin 1 1 bop 382 548 a Fn(Con)l(ten)l(ts)382 751 y Fm(1)83 b(Preface)2466 b(1)517 864 y Fl(1.1)93 b(Summary)78 b(.)46 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(1)517 977 y(1.2)93 b(Prerequisites)e(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)143 b(1)382 1180 y Fm(2)83 b(In)m(tro)s(duction)2229 b(2)382 1384 y(3)83 b(Firew)m(alls)2397 b(3)517 1497 y Fl(3.1)93 b(Purp)s(ose)31 b(of)f(a)g(\034rew)m(all)68 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)143 b(3)517 1609 y(3.2)93 b(Net\034lter)57 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(3)725 1722 y(3.2.1)105 b(Setting)31 b(up)g(a)f(Lin)m(ux)h(\034rew)m (all)c(.)46 b(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)143 b(4)382 1926 y Fm(4)83 b(FIAIF)2516 b(5)517 2039 y Fl(4.1)93 b(Design)50 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)143 b(5)725 2152 y(4.1.1)105 b(Zones)81 b(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(5)725 2264 y(4.1.2)105 b(Statefull)31 b(\034rew)m(alling)k(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(6)725 2377 y(4.1.3)105 b(Net)m(w)m(ork)31 b(address)g(translation)44 b(.)i(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(6)517 2490 y(4.2)93 b(Implemen)m(tation)48 b(.)d(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)143 b(6)382 2694 y Fm(5)83 b(Con\034guration)2177 b(7)517 2806 y Fl(5.1)93 b(Zone)31 b(sp)s(eci\034cation)i(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(7)382 3010 y Fm(6)83 b(Con\034guring)33 b(a)i(zone)1946 b(7)517 3123 y Fl(6.1)93 b(De\034nitions)31 b(.)46 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(7)517 3236 y(6.2)93 b(Zone)31 b(de\034nition)77 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(9)517 3349 y(6.3)93 b(Zone)31 b(access)69 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(10)725 3461 y(6.3.1)105 b(Input)30 b(rules)85 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)98 b(11)725 3574 y(6.3.2)105 b(Output)31 b(rules)82 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(11)725 3687 y(6.3.3)105 b(F)-8 b(orw)m(ard)32 b(rules)48 b(.)e(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(11)725 3800 y(6.3.4)105 b(Reply)30 b(rules)73 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)98 b(12)725 3913 y(6.3.5)105 b(Limit)31 b(rules)86 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(12)517 4026 y(6.4)93 b(Net)m(w)m(ork)32 b(address)e(translation)i(rules)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(13)725 4139 y(6.4.1)105 b(Redirect)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)98 b(13)725 4252 y(6.4.2)105 b(Masquerading/SNA)-8 b(T)32 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)98 b(13)517 4365 y(6.5)93 b(Miscellaneous)31 b(rules)52 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(14)725 4478 y(6.5.1)105 b(P)m(ac)m(k)m(et)32 b(marking)45 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(14)725 4591 y(6.5.2)105 b(T)-8 b(ra\036c)31 b(monitoring)88 b(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)98 b(14)725 4703 y(6.5.3)105 b(Den)m(ying)31 b(comm)m(unication)i(to)e(MA)m(C)f(addresses)82 b(.)46 b(.)f(.)h(.)g(.)f(.)98 b(15)725 4816 y(6.5.4)105 b(Den)m(ying)31 b(comm)m(unication)i(to)e(IP)f(addresses)60 b(.)46 b(.)f(.)h(.)f(.)h(.) g(.)f(.)98 b(15)725 4929 y(6.5.5)105 b(Clearing)31 b(ECN)g(bits)f(from) h(pac)m(k)m(ets)g(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) 98 b(15)382 5133 y Fm(7)83 b(Example)35 b(setup)2077 b(16)382 5336 y(8)83 b(Related)36 b(w)m(ork)2143 b(17)1864 5652 y Fl(i)p eop end %%Page: 2 3 TeXDict begin 2 2 bop 382 548 a Fm(9)83 b(Status)2463 b(18)382 751 y(10)31 b(F)-9 b(urther)35 b(w)m(ork)2148 b(18)382 955 y(A)57 b(Usage)2480 b(20)382 1158 y(B)61 b(Con\034guration)34 b(\034les)1916 b(20)517 1271 y Fl(B.1)74 b(\034aif.conf)49 b(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(20)517 1384 y(B.2)74 b(reserv)m(ed_net)m(w)m(orks)c(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)98 b(22)517 1497 y(B.3)74 b(priv)-5 b(ate_net)m(w)m(orks)47 b(.)f(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(22)517 1609 y(B.4)74 b(t)m(yp)s(e_of_services)52 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(23)517 1722 y(B.5)74 b(zone.ext)62 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(23)517 1835 y(B.6)74 b(zone.in)m(t)k(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)98 b(25)517 1948 y(B.7)74 b(zone.dmz)91 b(.)46 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(26)1851 5652 y(ii)p eop end %%Page: 1 4 TeXDict begin 1 3 bop 382 548 a Fn(1)131 b(Preface)382 754 y Fk(1.1)112 b(Summary)382 926 y Fl(In)32 b(this)h(pap)s(er)g(a)g (general)h(o)m(v)m(erview)g(of)f(\034rew)m(alling)i(is)d(presen)m(ted,) j(and)e(some)g(basic)382 1039 y(terms)d(used)g(in)g(the)h(Lin)m(ux)g (\034rew)m(all)g(implemen)m(tation)i(is)d(giv)m(en.)41 b(Based)30 b(on)g(require-)382 1152 y(men)m(ts)45 b(of)e(a)h(\034rew)m (all,)49 b(a)44 b(design)g(is)g(presen)m(ted)h(whic)m(h)g(will)g(ease)f (the)g(setup)g(of)f(a)382 1265 y(\034rew)m(all.)e(The)27 b(resulting)h(implemen)m(tation)h(is)e(brie\035y)g(describ)s(ed)g(and)g (con\034guration)382 1377 y(is)j(explaind)h(in)f(detail.)382 1621 y Fk(1.2)112 b(Prerequisites)382 1792 y Fl(In)30 b(this)h(pap)s(er,)g(it)f(is)g(assumed)h(that)g(the)g(reader)h(is)e (familiar)h(with)g(net)m(w)m(ork)h(theory)-8 b(,)382 1905 y(routing)30 b(and)g(net)m(w)m(ork)h(tra\036c.)41 b(Basic)29 b(Lin)m(ux)i(kno)m(wledge)g(is)d(preferable)j(in)e(order)h (to)382 2018 y(setup)g(the)h(soft)m(w)m(are)h(describ)s(ed)f(in)f(this) g(pap)s(er,)h(though)g(not)g(a)f(requiremen)m(t.)1854 5652 y(1)p eop end %%Page: 2 5 TeXDict begin 2 4 bop 382 548 a Fn(2)131 b(In)l(tro)t(duction)382 751 y Fl(T)-8 b(o)s(da)m(y)g(,)43 b(ev)m(er)c(more)h(mac)m(hines)g(and) g(p)s(eople)f(are)h(connected)g(to)f(the)h(In)m(ternet)g(and)382 864 y(hac)m(k)m(ers)35 b(con)m(tin)m(ually)i(tries)e(to)f(in)m(v)-5 b(ade)35 b(mac)m(hines)h(connected)g(to)f(the)f(In)m(ternet.)54 b(As)382 977 y(still)21 b(more)h(p)s(eople)f(gains)h(access)e(to)i(the) f(In)m(ternet,)j(hac)m(king)f(b)s(ecomes)e(more)h(frequen)m(t,)382 1090 y(and)36 b(fo)s(cus)f(on)g(securit)m(y)i(on)e(serv)m(ers)h(ha)m(v) m(e)h(b)s(ecome)f(a)f(necessit)m(y)-8 b(.)57 b(Securit)m(y)37 b(can)f(b)s(e)382 1202 y(divided)31 b(in)m(to)g(three)g(parts.)382 1415 y Fm(Application)k(securit)m(y:)45 b Fl(Applications)33 b(usually)g(enforce)g(some)g(kind)g(of)f(securit)m(y)609 1528 y(b)m(y)k(restricting)g(users)f(in)g(terms)g(of)g(functionalit)m (y)i(and)f(access)f(to)g(mac)m(hines.)609 1641 y(An)c(example)h(of)f (this)h(is)f(a)g(w)m(eb-serv)m(er.)45 b(A)31 b(simple)h(w)m(eb-serv)m (er)h(only)e(exp)s(oses)609 1754 y(a)25 b(de\034ned)h(set)f(of)f (\034les)h(to)g(the)g(In)m(ternet,)j(and)d(only)g(a)g(problem)h(in)f (the)g(soft)m(w)m(are)609 1867 y(w)m(ould)32 b(giv)m(e)f(remote)g (users)f(access)g(to)h(other)g(than)g(the)f(said)h(\034les.)382 2054 y Fm(User)j(securit)m(y:)46 b Fl(If)27 b(a)i(remote)h(user)e(is)h (able)g(to)g(circum)m(v)m(en)m(t)i(the)e(securit)m(y)g(imp)s(osed)609 2167 y(b)m(y)42 b(some)f(program)h(\(b)m(y)g(exploiting)g(a)f(bug)h(in) f(the)h(soft)m(w)m(are\),)j(the)d(user)f(is)609 2280 y(still)30 b(restricted)g(to)f(the)h(righ)m(ts)g(of)f(the)h(user)f(who) h(started)g(the)g(started.)41 b(As)28 b(an)609 2393 y(example,)i(a)f(w) m(eb-serv)m(er)i(is)e(usually)g(stated)g(as)g(the)g(users)g Fj(nob)-5 b(o)g(dy)p Fl(,)30 b(whic)m(h)h(has)609 2506 y(v)m(ery)g(limited)g(righ)m(ts)g(in)g(terms)f(of)g(reading)i(and)e (executing)i(programs.)382 2694 y Fm(Net)m(w)m(ork)j(securit)m(y:)45 b Fl(This)26 b(is)e(the)i(lo)m(w)m(est)g(lev)m(el)g(of)e(securit)m(y)-8 b(.)40 b(By)25 b(con)m(trolling)i(com-)609 2806 y(m)m(unication)i(b)s (et)m(w)m(een)f(remote)f(mac)m(hines)h(and)f(In)m(ternet)h(services,)f (unsafe)f(ap-)609 2919 y(plications)32 b(can)e(b)s(e)g(protected)i (against)f(un)m(trusted)h(access.)523 3132 y(This)38 b(pap)s(er)f(will)h(concen)m(trate)i(on)e(net)m(w)m(ork)h(securit)m(y)f (in)g(terms)g(of)f(de\034ning)h(a)382 3245 y(metho)s(dology)h(for)g (describing)g(a)g(\034rew)m(all,)j(and)d(implemen)m(ting)j(the)c(metho) s(dology)382 3358 y(under)31 b(Lin)m(ux.)1854 5652 y(2)p eop end %%Page: 3 6 TeXDict begin 3 5 bop 382 548 a Fn(3)131 b(Firew)l(alls)382 751 y Fl(This)24 b(section)i(will)f(describ)s(e)f(the)h(purp)s(ose)g (of)f(a)g(\034rew)m(all)j(and)e(outline)g(ho)m(w)h(the)e(Lin)m(ux)382 864 y(\034rew)m(alling)32 b(co)s(de)f(w)m(orks.)382 1107 y Fk(3.1)112 b(Purp)s(ose)38 b(of)f(a)h(\034rew)m(all)382 1279 y Fl(A)32 b(\034rew)m(all)h(is)f(usually)g(placed)i(in)e(fron)m(t) h(of)f(a)g(group)h(of)f(mac)m(hines)h(and)g(its)f(primary)382 1392 y(function)38 b(is)f(to)h(con)m(trol)h(comm)m(unication)i(from)c (and)h(to)g(this)f(group)i(of)e(mac)m(hines.)382 1505 y(Comm)m(unication)29 b(b)s(et)m(w)m(een)e(t)m(w)m(o)h(mac)m(hines)f(o) m(v)m(er)g(the)f(In)m(ternet)h(is)f(a)g(stream)g(of)g(pac)m(k-)382 1618 y(ets)35 b(\(datagrams\))h(send)g(in)f(b)s(oth)g(directions.)56 b(The)36 b(\034rew)m(all)g(examines)g(all)f(pac)m(k)m(ets)382 1730 y(that)28 b(is)g(ab)s(out)g(to)g(b)s(e)f(routed)i(through)g(the)g (mac)m(hine)g(and,)g(based)f(on)g(a)g(set)g(of)f(rules,)382 1843 y(determines)h(if)e(the)h(pac)m(k)m(et)h(is)f(allo)m(w)m(ed)h(to)f (pass)g(through)g(the)g(mac)m(hine)i(or)e(not.)39 b(This)382 1956 y(functionalit)m(y)32 b(is)e(often)g(referred)h(as)f(a)h Fj(p)-5 b(acket)34 b(\034lter)p Fl(.)523 2069 y(The)42 b(secondary)h(function)g(of)e(a)h(\034rew)m(all)i(is)d(to)i(mo)s(dify)e (the)h(pac)m(k)m(ets)h(passing)382 2182 y(through)36 b(the)g(\034rew)m(all.)57 b(This)36 b(is)f(called)h Fj(Network)i(addr) -5 b(ess)38 b(tr)-5 b(anslation)36 b(\(NA)-7 b(T\))p Fl(,)35 b(as)382 2295 y(the)44 b(mo)s(di\034cations)g(usually)f (applies)h(to)g(either)g(sender)f(or)h(receiv)m(er)g(information)382 2408 y(con)m(tained)36 b(in)e(the)g(pac)m(k)m(ets.)52 b(NA)-8 b(T)34 b(can)g(for)g(example)h(b)s(e)e(used)h(to)g(allo)m(w)h (mac)m(hines)382 2521 y(without)j(a)f(public)h(addressable)g(In)m (ternet)h(proto)s(col)f(\(IP\))f(n)m(um)m(b)s(er,)k(to)c(access)g(the) 382 2634 y(In)m(ternet)j(through)g(a)f(\034rew)m(all,)k(b)m(y)c(using)h (the)f(IP-n)m(um)m(b)s(er)i(of)d(the)i(\034rew)m(all)g(as)f(the)382 2747 y(sender)29 b(iden)m(ti\034cation.)43 b(This)29 b(is)f(also)h(called)h(ip)f(masquerading,)i(as)d(it)h(disguises)g(the) 382 2860 y(address)h(of)g(the)h(mac)m(hines)h(b)s(ehind)f(the)f (\034rew)m(all.)382 3103 y Fk(3.2)112 b(Net\034lter)382 3275 y Fl(The)31 b(\034rew)m(all)h(implemen)m(ted)g(in)f(Lin)m(ux)g(is) f(called)h Fj(Net\034lter)p Fl(.)523 3387 y(Net\034lter)46 b(implemen)m(ts)g(b)s(oth)f(a)g(pac)m(k)m(et)h(\034lter)g(and)f(NA)-8 b(T)45 b(and)g(is)f(a)h(statefull)382 3500 y(\034rew)m(all.)e (Statefull)31 b(\034rew)m(alls)h(di\033eren)m(tiates)h(from)d (non-statefull)i(\034rew)m(alls)g(b)m(y)f(ha)m(v-)382 3613 y(ing)37 b(kno)m(wledge)h(of)e(the)g(state)h(of)f(all)h (connections)g(made)g(though)h(the)f(\034rew)m(all.)60 b(A)382 3726 y(non-statefull)42 b(\034rew)m(all)h(examines)f(pac)m(k)m (ets)g(individually)-8 b(,)46 b(without)c(kno)m(wledge)h(of)382 3839 y(previous)f(send)g(pac)m(k)m(ets)h(and)f(has,)j(for)d(example,)k (no)c(information)h(ab)s(out)f(whic)m(h)382 3952 y(mac)m(hine)32 b(instan)m(tiated)h(the)e(comm)m(unication.)44 b(This)31 b(means)g(that)g(in)g(order)h(for)e(ma-)382 4065 y(c)m(hines)38 b(b)s(ehind)g(a)g(\034rew)m(all)h(to)e(b)s(e)g(able)h(to)g(comm)m (unicate)i(fully)d(with)h(mac)m(hine)h(on)382 4178 y(the)30 b(In)m(ternet,)h(almost)f(all)g(pac)m(k)m(ets)h(m)m(ust)f(b)s(e)f(allo) m(w)m(ed)j(though)e(the)g(\034rew)m(all)i(in)d(b)s(oth)382 4291 y(directions)i(and)g(th)m(us)g(greatly)g(degrading)h(the)e (securit)m(y)h(imp)s(osed)g(b)m(y)f(the)h(\034rew)m(all.)523 4404 y(As)g(said,)h(a)g(statefull)g(\034rew)m(all)h(main)m(tains)g(a)f (history)g(of)f(established)i(comm)m(uni-)382 4517 y(cation)g(and)f (de\034nes)g(a)g(state)g(for)f(all)h(connections.)46 b(In)31 b(Net\034lter)i(p)s(ossible)e(states)h(of)382 4629 y(a)e(connection)i(are:)382 4842 y Fm(New:)46 b Fl(This)30 b(state)h(indicates,)g(that)g(the)g(pac)m(k)m(et)h(is)e (part)h(of)f(a)h(connection)h(that)f(has)609 4955 y(not)g(b)s(een)f (registered)i(\(seen\))e(b)s(efore.)382 5143 y Fm(Established:)45 b Fl(This)h(state)g(indicates)g(that)g(the)f(pac)m(k)m(et)i(is)e(part)h (of)f(an)h(already)609 5255 y(established)31 b(comm)m(unication.)1854 5652 y(3)p eop end %%Page: 4 7 TeXDict begin 4 6 bop 382 548 a Fm(Related:)46 b Fl(This)37 b(state)g(indicates)h(that)f(the)g(pac)m(k)m(et)h(is)f(related)g(to)g (an)g(already)h(es-)609 661 y(tablished)d(connection)g(but)g(not)f (part)g(hereof.)52 b(This)33 b(is)h(useful)f(for)h(proto)s(cols)609 774 y(that)26 b(established)h(new)f(connections,)i(suc)m(h)e(as)g (passiv)m(e)f(ftp)h(data)g(streams)g(and)609 887 y(ICMP)31 b(pac)m(k)m(ets.)382 1074 y Fm(In)m(v)-6 b(alid:)45 b Fl(A)34 b(pac)m(k)m(et)j(mark)m(ed)f(in)m(v)-5 b(alid)36 b(means)g(that)g(the)f(pac)m(k)m(et)i(is)d(someho)m(w)j(mal-)609 1187 y(formed.)44 b(Malformed)32 b(pac)m(k)m(ets)g(are)g(usually)f(pac) m(k)m(ets)h(that)g(do)s(es)f(not)g(con\034rm)609 1300 y(to)g(e\033ectiv)m(e)g(RF)m(C's.)523 1513 y(By)e(using)h(these)g (states,)g(it)g(is)f(p)s(ossible)g(to)h(create)h(a)f(v)m(ery)f(tigh)m (t)i(securit)m(y)g(p)s(olicy)382 1626 y(with)g(only)f(a)h(small)f(set)g (of)g(rules.)382 1866 y Fm(3.2.1)103 b(Setting)35 b(up)f(a)h(Lin)m(ux)g (\034rew)m(all)382 2037 y Fl(The)h(most)g(common)i(w)m(a)m(y)f(to)f (de\034ne)g(a)g(\034rew)m(all,)j(is)d(to)g(ha)m(v)m(e)h(a)f(list)g(of)g (rules)g(to)g(b)s(e)382 2150 y(tra)m(v)m(ersed)j(for)e(eac)m(h)h(pac)m (k)m(et)h(hitting)g(the)e(\034rew)m(all.)64 b(A)37 b(\034rew)m(all)i (rule)e(consists)g(of)g(a)382 2263 y(set)30 b(of)g(conditions)h(and)g (an)f(action.)42 b(If)29 b(the)h(conditions)i(of)e(a)g(rule)h(is)e (meet,)i(then)g(the)382 2376 y(action)j(is)e(executed)i(on)f(that)h (pac)m(k)m(et.)49 b(Usually)33 b(the)g(action)h(is)f(either)g(to)g (accept)h(or)382 2489 y(reject)27 b(a)f(pac)m(k)m(et,)j(and)e(is)f (therefore)h(usually)f(called)i(the)e Fj(tar)-5 b(get)37 b Fl(of)26 b(a)g(rule.)40 b(Examples)382 2602 y(of)30 b(conditions)i(on)f(a)g(rule)g(is:)42 b(the)31 b(source)g(address)g(of) f(a)h(pac)m(k)m(et,)i(the)e(destination)h(of)382 2715 y(a)e(pac)m(k)m(et)i(etc.)523 2828 y(The)37 b(list)836 2795 y Fi(1)912 2828 y Fl(of)g(rules)g(is)f(tra)m(v)m(ersed)i(un)m(til) g(the)f(pac)m(k)m(et)h(is)f(either)g(accepted)h(or)f(re-)382 2941 y(jected,)h(and)e(pro)s(cessing)g(stops.)58 b(If)35 b(no)h(rules)g(applies)h(to)f(the)h(pac)m(k)m(et,)i(the)d(default)382 3053 y(p)s(olicy)30 b(of)g(the)h(c)m(hain)g(determines)h(if)e(the)g (pac)m(k)m(et)i(is)e(accepted)i(or)e(rejected.)523 3166 y(In)37 b(Lin)m(ux,)j(the)d(list)g(of)g(rules)g(is)g(main)m(tained)i (in)e(the)g(Lin)m(ux)i(k)m(ernel)f(itself,)g(and)382 3279 y(a)f(userspace)h(program,)j Fj(iptables)p Fl(,)f(is)d(used)h(to)f (manage)i(rules.)62 b(As)37 b(the)g(placemen)m(t)382 3392 y(of)c(rules)h(in)g(the)g(list)g(is)f(vital)h(to)g(the)g(op)s (eration)h(of)e(the)h(\034rew)m(all,)j(it)d(can)g(b)s(e)f(a)h(non-)382 3505 y(trivial)h(job)g(to)g(implemen)m(t)i(complex)f(rule-sets)f(in)g (Lin)m(ux.)55 b(F)-8 b(or)36 b(more)f(information)382 3618 y(of)30 b(iptables/Net\034lter)i(see)e([4)q(,)g(2].)p 382 5317 1196 4 v 486 5371 a Fh(1)520 5403 y Fg(In)25 b(Lin)n(ux)g(called)h(a)g Ff(chain)1854 5652 y Fl(4)p eop end %%Page: 5 8 TeXDict begin 5 7 bop 382 548 a Fn(4)131 b(FIAIF)382 751 y Fl(This)29 b(section)h(will)g(describ)s(e)f(the)h(design)g(goals) f(of)g(FIAIF,)f Fj(FIAIF)j(is)g(an)g(intel)5 b(ligent)382 864 y(\034r)-5 b(ewal)5 b(l)k Fl([5)q(],)30 b(a)h(to)s(ol)f(to)h(setup) f(a)g(\034rew)m(all)i(under)g(Lin)m(ux.)382 1107 y Fk(4.1)112 b(Design)382 1279 y Fl(The)30 b(idea)h(b)s(ehind)g(FIAIF)d(is)i(that)h (it)f(is)g(to)s(o)f(hard)i(to)f(setup)h(a)f(complex,)h(y)m(et)f(secure) 382 1392 y(\034rew)m(all)j(under)f(Lin)m(ux.)44 b(Doing)32 b(so)f(requires)g(deep)h(insigh)m(t)g(in)m(to)g(building)h(a)e(\034rew) m(all)382 1505 y(and)g(complete)h(understanding)h(of)d(the)h(Lin)m(ux)h (\034rew)m(alling)g(mo)s(dules,)g(Net\034lter)f(and)382 1618 y(iptables.)523 1730 y(The)g(foremost)g(requiremen)m(t)h(of)f (FIAIF)e(is)h(that)h(it)g(should)g(b)s(e)f(secure)h(and)g(easy)382 1843 y(to)h(con\034gure.)48 b(If)31 b(FIAIF)g(is)h(to)s(o)g(di\036cult) i(to)e(con\034gure,)j(errors)d(are)h(more)g(lik)m(ely)f(to)382 1956 y(o)s(ccur)e(and)h(an)g(insecure)g(\034rew)m(all)h(migh)m(t)f (result.)523 2069 y(Also)38 b(it)h(is)f(a)g(requiremen)m(t)j(that)e (FIAIF)e(is)h(expansible)h(and)g(\035exible.)66 b(FIAIF)382 2182 y(should)27 b(b)s(e)f(able)h(to)g(handle)h(b)s(oth)e(simple)h(and) g(complex)h(net)m(w)m(ork)g(con\034gurations)g(in)382 2295 y(an)i(generic)i(manner.)382 2535 y Fm(4.1.1)103 b(Zones)382 2707 y Fl(T)-8 b(o)33 b(satisfy)f(extendabilit)m(y)i(a)f (new)g(term,)i Fj(zones)p Fl(,)e(is)f(in)m(tro)s(duced.)50 b(A)32 b(zone)h(de\034nes)g(a)382 2820 y(net)m(w)m(ork)c(to)f(whic)m(h) h(the)f(\034rew)m(all)h(is)f(connected,)i(and)e(enables)g(the)g (administrator)h(to)382 2932 y(setup)h(di\033eren)m(t)i(securit)m(y)f (p)s(olicies)g(for)f(eac)m(h)h(zone.)523 3158 y(The)36 b(securit)m(y)g(p)s(olicies)g(for)g(eac)m(h)g(zone)h(has)e(b)s(een)h(c) m(hosen)g(to)g(primarally)h(limit)382 3271 y(the)e(tra\036c)g(en)m (tering)i(a)d(zone,)i(and)f(not)g(restricting)h(net)m(w)m(ork)g (tra\036c)g(coming)f(from)382 3384 y(mac)m(hines)e(within)g(a)f(zone.) 47 b(This)32 b(has)g(b)s(een)g(c)m(hosen,)h(as)f(it)g(enables)h(to)f (administra-)382 3497 y(tor)g(to)f(add)h(new)g(zone)g(de\034nitions)h (to)e(an)h(existing)f(con\034guration)j(without)f(ha)m(ving)382 3610 y(to)f(mo)s(dify)g(the)h(con\034guration)i(of)d(other)h(zones,)g (to)f(either)i(allo)m(w)f(or)g(den)m(y)g(net)m(w)m(ork)382 3723 y(comm)m(unication.)523 3949 y(On)h(\034gure)h(1)f(on)g(the)g (follo)m(wing)h(page)g(is)e(an)h(example)h(of)e(a)h(net)m(w)m(ork)i (split)e(in)m(to)382 4062 y(three)d(zones:)382 4249 y Fm(External)k(zone)46 b Fl(:)40 b(This)30 b(zone)h(de\034nes)g(the)g (whole)g(In)m(ternet.)382 4437 y Fm(In)m(ternal)k(zone)45 b Fl(:)60 b(This)40 b(zone)h(de\034nes)f(all)h(mac)m(hines)g(on)f(a)g (LAN.)g(The)h(primary)609 4550 y(function)30 b(of)f(the)h(\034rew)m (all)h(is)e(to)h(protect)h(mac)m(hines)f(on)g(the)g(LAN)f(from)h(unau-) 609 4663 y(thorised)h(access)f(from)h(the)g(In)m(ternet.)382 4850 y Fm(Demilitarised)j(zone)46 b Fl(:)62 b(A)41 b(demilitarised)i (zone)f(de\034nes)g(a)f(group)h(of)f(mac)m(hines)609 4963 y(whic)m(h)25 b(runs)f(services)f(exp)s(osed)g(to)h(the)f(In)m (ternet.)40 b(Examples)24 b(of)f(these)h(services)609 5076 y(es)30 b(are:)41 b(Login)31 b(serv)m(er,)g(W)-8 b(eb-serv)m(er,)32 b(Mail)e(gatew)m(a)m(y)i(etc.)41 b(As)30 b(users)g(from)g(the)609 5189 y(In)m(ternet)38 b(can)f(gain)g(access)f (to)g(these)h(serv)m(er,)h(v)m(ery)f(strict)g(securit)m(y)g(m)m(ust)g (b)s(e)1854 5652 y(5)p eop end %%Page: 6 9 TeXDict begin 6 8 bop 609 548 a Fl(in)29 b(place,)h(under)g(the)f (assumption)h(that)f(these)g(services)g(are)g(not)g(100)g(p)s(ercen)m (t)609 661 y(secure)850 628 y Fi(2)890 661 y Fl(.)797 1779 y @beginspecial 0 @llx 0 @lly 1036 @urx 453 @ury 2590 @rwi @setspecial %%BeginDocument: fig/zones.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: fig/zones.dia %%Creator: Dia v0.97.2 %%CreationDate: Sat Jan 19 18:15:01 2013 %%For: afu %%Orientation: Portrait %%Magnification: 1.0000 %%BoundingBox: 0 0 1036 453 %%BeginSetup %%EndSetup %%EndComments %%BeginProlog [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def /cp {closepath} bind def /c {curveto} bind def /f {fill} bind def /a {arc} bind def /ef {eofill} bind def /ex {exch} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth pop} bind def /tr {translate} bind def /ellipsedict 8 dict def ellipsedict /mtrx matrix put /ellipse { ellipsedict begin /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc savematrix setmatrix end } def /mergeprocs { dup length 3 -1 roll dup length dup 5 1 roll 3 -1 roll add array cvx dup 3 -1 roll 0 exch putinterval dup 4 2 roll putinterval } bind def /dpi_x 300 def /dpi_y 300 def /conicto { /to_y exch def /to_x exch def /conic_cntrl_y exch def /conic_cntrl_x exch def currentpoint /p0_y exch def /p0_x exch def /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def /p2_x p1_x to_x p0_x sub 1 3 div mul add def /p2_y p1_y to_y p0_y sub 1 3 div mul add def p1_x p1_y p2_x p2_y to_x to_y curveto } bind def /start_ol { gsave 1.1 dpi_x div dup scale} bind def /end_ol { closepath fill grestore } bind def 28.346000 -28.346000 scale 2.780060 -18.331250 translate %%EndProlog 0.100000 slw [] 0 sd [] 0 sd 0 slc 0 slj 0.080000 slw 0 slc 0 slj [] 0 sd 0.701961 0.701961 0.701961 srgb n 14.750813 13.048900 m 14.750813 15.560859 l 15.827367 15.560859 l 15.827367 13.048900 l f 0.000000 0.000000 0.000000 srgb n 14.750813 13.048900 m 14.750813 15.560859 l 15.827367 15.560859 l 15.827367 13.048900 l cp s 0.010000 slw 0 slc 0 slj [] 0 sd n 14.858468 13.199618 m 14.858468 13.486699 l 15.719711 13.486699 l 15.719711 13.199618 l cp s 0 slc 0 slj [] 0 sd n 14.858468 13.486699 m 14.858468 13.773780 l 15.719711 13.773780 l 15.719711 13.486699 l cp s 0 slc 0 slj [] 0 sd n 14.858468 13.773780 m 14.858468 14.060861 l 15.719711 14.060861 l 15.719711 13.773780 l cp s 0 slc 0 slj [] 0 sd n 14.858468 14.060861 m 14.858468 14.347942 l 15.719711 14.347942 l 15.719711 14.060861 l cp s 0 slc 0 slj [] 0 sd n 14.858468 14.405358 m 14.858468 14.577607 l 15.396745 14.577607 l 15.396745 14.405358 l cp s 0 slc 0 slj [] 0 sd 0.000000 1.000000 0.000000 srgb n 15.665884 14.434066 0.037679 0.037679 0 360 ellipse f 0.000000 0.000000 0.000000 srgb n 15.665884 14.434066 0.037679 0.037679 0 360 ellipse cp s 0 slc 0 slj [] 0 sd 1.000000 1.000000 0.000000 srgb n 15.665884 14.548898 0.037679 0.037679 0 360 ellipse f 0.000000 0.000000 0.000000 srgb n 15.665884 14.548898 0.037679 0.037679 0 360 ellipse cp s 0 slc 0 slj [] 0 sd 1.000000 1.000000 1.000000 srgb n 15.450573 14.462774 m 15.450573 14.577607 l 15.579759 14.577607 l 15.579759 14.462774 l f 0.000000 0.000000 0.000000 srgb n 15.450573 14.462774 m 15.450573 14.577607 l 15.579759 14.577607 l 15.579759 14.462774 l cp s 0 slc 0 slj [] 0 sd n 14.930239 14.807271 m 14.930239 15.435261 l s 0 slc 0 slj [] 0 sd n 15.109664 14.807271 m 15.109664 15.435261 l s 0 slc 0 slj [] 0 sd n 15.289090 14.807271 m 15.289090 15.435261 l s 0 slc 0 slj [] 0 sd n 15.468516 14.807271 m 15.468516 15.435261 l s 0 slc 0 slj [] 0 sd n 15.647941 14.807271 m 15.647941 15.435261 l s 0 slc 0 slj [] 0 sd n 15.827367 14.807271 m 15.827367 15.435261 l s 0 slc 0 slj [] 0 sd 0.600000 0.600000 0.600000 srgb n 14.535502 15.776170 m 14.750813 15.345548 l 14.750813 15.560859 l 15.827367 15.560859 l 15.827367 15.345548 l 16.114448 15.776170 l ef 0.000000 0.000000 0.000000 srgb n 14.535502 15.776170 m 14.750813 15.345548 l 14.750813 15.560859 l 15.827367 15.560859 l 15.827367 15.345548 l 16.114448 15.776170 l cp s 0.100000 slw [] 0 sd [] 0 sd 0 slc 0 slj 0.100000 slw 0 slc 0 slj [] 0 sd 1.000000 1.000000 1.000000 srgb n 0.347692 13.420057 m -0.716389 13.396670 -2.780060 13.887790 -2.489856 14.940191 c -2.199655 15.992591 -0.813124 16.226449 -0.232716 15.922431 c 0.347692 15.618405 -1.135573 17.395783 1.701978 17.863516 c 4.539504 18.331250 5.990525 17.582876 5.571341 17.044983 c 5.152157 16.507089 8.054199 18.307863 9.408485 17.278849 c 10.762771 16.249836 8.021954 15.267604 8.602362 15.407924 c 9.182770 15.548245 10.956240 15.361151 10.375832 13.607150 c 9.795423 11.853149 4.571749 13.209577 5.152157 12.952323 c 5.732566 12.695070 4.281545 11.408800 2.475856 11.666053 c 0.670141 11.923309 0.542065 12.390131 0.348595 13.419145 c 0.347692 13.420057 l ef 0.000000 0.000000 0.000000 srgb n 0.347692 13.420057 m -0.716389 13.396670 -2.780060 13.887790 -2.489856 14.940191 c -2.199655 15.992591 -0.813124 16.226449 -0.232716 15.922431 c 0.347692 15.618405 -1.135573 17.395783 1.701978 17.863516 c 4.539504 18.331250 5.990525 17.582876 5.571341 17.044983 c 5.152157 16.507089 8.054199 18.307863 9.408485 17.278849 c 10.762771 16.249836 8.021954 15.267604 8.602362 15.407924 c 9.182770 15.548245 10.956240 15.361151 10.375832 13.607150 c 9.795423 11.853149 4.571749 13.209577 5.152157 12.952323 c 5.732566 12.695070 4.281545 11.408800 2.475856 11.666053 c 0.670141 11.923309 0.542065 12.390131 0.348595 13.419145 c 0.347692 13.420057 l s gsave 1.953812 14.752053 translate 0.035278 -0.035278 scale start_ol 1536 2624 moveto 1536 192 lineto 2240 192 lineto 2309 192 2338 165 conicto 2368 139 2368 96 conicto 2368 55 2338 27 conicto 2309 0 2240 0 conicto 640 0 lineto 571 0 541 27 conicto 512 55 512 96 conicto 512 139 541 165 conicto 571 192 640 192 conicto 1344 192 lineto 1344 2624 lineto 640 2624 lineto 571 2624 541 2650 conicto 512 2677 512 2720 conicto 512 2763 541 2789 conicto 571 2816 640 2816 conicto 2240 2816 lineto 2309 2816 2338 2789 conicto 2368 2763 2368 2720 conicto 2368 2677 2338 2650 conicto 2309 2624 2240 2624 conicto 1536 2624 lineto end_ol grestore gsave 2.338450 14.752053 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 2.723088 14.752053 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 3.107726 14.752053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 3.492364 14.752053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 3.877002 14.752053 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 4.261640 14.752053 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 4.646278 14.752053 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore gsave 5.030916 14.752053 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 5.415554 14.752053 translate 0.035278 -0.035278 scale start_ol 2368 2112 moveto 2376 1943 lineto 758 192 lineto 2240 192 lineto 2240 448 lineto 2240 517 2266 546 conicto 2293 576 2336 576 conicto 2378 576 2405 546 conicto 2432 517 2432 448 conicto 2430 0 lineto 512 0 lineto 504 171 lineto 2121 1920 lineto 768 1920 lineto 768 1664 lineto 768 1595 749 1565 conicto 731 1536 704 1536 conicto 647 1536 611 1565 conicto 576 1595 576 1664 conicto 576 2112 lineto 2368 2112 lineto end_ol grestore gsave 5.800192 14.752053 translate 0.035278 -0.035278 scale start_ol 2560 1055 moveto 2560 592 2232 264 conicto 1904 -64 1441 -64 conicto 974 -64 647 265 conicto 320 594 320 1055 conicto 320 1518 647 1847 conicto 974 2176 1441 2176 conicto 1904 2176 2232 1848 conicto 2560 1520 2560 1055 conicto 2368 1056 moveto 2368 1442 2097 1713 conicto 1826 1984 1440 1984 conicto 1054 1984 783 1711 conicto 512 1439 512 1056 conicto 512 675 783 401 conicto 1054 128 1440 128 conicto 1826 128 2097 400 conicto 2368 673 2368 1056 conicto end_ol grestore gsave 6.184831 14.752053 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 6.569469 14.752053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 3.493812 15.552053 translate 0.035278 -0.035278 scale start_ol 1408 1185 moveto 1408 1462 1468 1772 conicto 1529 2083 1700 2490 conicto 1871 2897 1950 2982 conicto 1974 3008 2008 3008 conicto 2051 3008 2081 2979 conicto 2112 2950 2112 2909 conicto 2112 2885 2095 2856 conicto 1828 2370 1714 1975 conicto 1600 1580 1600 1185 conicto 1600 788 1714 393 conicto 1828 -2 2095 -486 conicto 2112 -515 2112 -539 conicto 2112 -580 2080 -610 conicto 2048 -640 2006 -640 conicto 1974 -640 1950 -614 conicto 1875 -532 1706 -134 conicto 1537 263 1472 569 conicto 1408 875 1408 1185 conicto end_ol grestore gsave 3.878450 15.552053 translate 0.035278 -0.035278 scale start_ol 1088 2624 moveto 1088 192 lineto 2432 192 lineto 2432 960 lineto 2432 1029 2459 1058 conicto 2486 1088 2529 1088 conicto 2570 1088 2597 1059 conicto 2624 1031 2624 960 conicto 2624 0 lineto 384 0 lineto 315 0 285 27 conicto 256 55 256 96 conicto 256 139 285 165 conicto 315 192 384 192 conicto 896 192 lineto 896 2624 lineto 384 2624 lineto 315 2624 285 2650 conicto 256 2677 256 2720 conicto 256 2763 285 2789 conicto 315 2816 384 2816 conicto 1600 2816 lineto 1669 2816 1698 2789 conicto 1728 2763 1728 2720 conicto 1728 2677 1698 2650 conicto 1669 2624 1600 2624 conicto 1088 2624 lineto end_ol grestore gsave 4.263088 15.552053 translate 0.035278 -0.035278 scale start_ol 2208 960 moveto 729 960 lineto 445 192 lineto 832 192 lineto 901 192 930 165 conicto 960 139 960 96 conicto 960 55 930 27 conicto 901 0 832 0 conicto 128 0 lineto 59 0 29 27 conicto 0 55 0 96 conicto 0 139 29 165 conicto 59 192 128 192 conicto 242 192 lineto 1141 2624 lineto 576 2624 lineto 507 2624 477 2650 conicto 448 2677 448 2720 conicto 448 2763 477 2789 conicto 507 2816 576 2816 conicto 1733 2816 lineto 2691 192 lineto 2816 192 lineto 2885 192 2914 165 conicto 2944 139 2944 96 conicto 2944 55 2914 27 conicto 2885 0 2816 0 conicto 2112 0 lineto 2042 0 2013 27 conicto 1984 55 1984 96 conicto 1984 139 2013 165 conicto 2042 192 2112 192 conicto 2488 192 lineto 2208 960 lineto 2138 1152 moveto 1600 2624 lineto 1344 2624 lineto 800 1152 lineto 2138 1152 lineto end_ol grestore gsave 4.647726 15.552053 translate 0.035278 -0.035278 scale start_ol 2432 0 moveto 2214 0 lineto 704 2496 lineto 704 192 lineto 1088 192 lineto 1158 192 1187 165 conicto 1216 139 1216 96 conicto 1216 55 1187 27 conicto 1158 0 1088 0 conicto 384 0 lineto 314 0 285 27 conicto 256 55 256 96 conicto 256 139 285 165 conicto 314 192 384 192 conicto 512 192 lineto 512 2624 lineto 256 2624 lineto 187 2624 157 2650 conicto 128 2677 128 2720 conicto 128 2763 157 2789 conicto 187 2816 256 2816 conicto 730 2816 lineto 2240 320 lineto 2240 2624 lineto 1856 2624 lineto 1787 2624 1757 2650 conicto 1728 2677 1728 2720 conicto 1728 2763 1756 2789 conicto 1785 2816 1856 2816 conicto 2560 2816 lineto 2629 2816 2658 2789 conicto 2688 2763 2688 2720 conicto 2688 2677 2658 2650 conicto 2629 2624 2560 2624 conicto 2432 2624 lineto 2432 0 lineto end_ol grestore gsave 5.032364 15.552053 translate 0.035278 -0.035278 scale start_ol 1536 1183 moveto 1536 906 1475 596 conicto 1415 287 1244 -121 conicto 1073 -529 994 -611 conicto 970 -640 936 -640 conicto 893 -640 862 -610 conicto 832 -580 832 -539 conicto 832 -515 849 -486 conicto 1116 -2 1230 393 conicto 1344 788 1344 1183 conicto 1344 1580 1230 1975 conicto 1116 2370 849 2856 conicto 832 2885 832 2909 conicto 832 2950 864 2979 conicto 896 3008 938 3008 conicto 970 3008 994 2982 conicto 1069 2900 1238 2502 conicto 1407 2105 1471 1799 conicto 1536 1493 1536 1183 conicto end_ol grestore 0.100000 slw [] 0 sd [] 0 sd 0 slc 0 slj 0.100000 slw 0 slc 0 slj [] 0 sd 1.000000 1.000000 1.000000 srgb n 11.190919 4.370057 m 9.750257 4.346670 6.956250 4.837790 7.349158 5.890191 c 7.742061 6.942591 9.619288 7.176449 10.405104 6.872431 c 11.190919 6.568405 9.182724 8.345783 13.024489 8.813516 c 16.866220 9.281250 18.830760 8.532876 18.263226 7.994983 c 17.695693 7.457089 21.624771 9.257863 23.458341 8.228849 c 25.291911 7.199836 21.581115 6.217604 22.366931 6.357924 c 23.152746 6.498245 25.553850 6.311151 24.768034 4.557150 c 23.982219 2.803149 16.909877 4.159577 17.695693 3.902323 c 18.481508 3.645070 16.516969 2.358800 14.072244 2.616053 c 11.627484 2.873309 11.454080 3.340131 11.192142 4.369145 c 11.190919 4.370057 l ef 0.000000 0.000000 0.000000 srgb n 11.190919 4.370057 m 9.750257 4.346670 6.956250 4.837790 7.349158 5.890191 c 7.742061 6.942591 9.619288 7.176449 10.405104 6.872431 c 11.190919 6.568405 9.182724 8.345783 13.024489 8.813516 c 16.866220 9.281250 18.830760 8.532876 18.263226 7.994983 c 17.695693 7.457089 21.624771 9.257863 23.458341 8.228849 c 25.291911 7.199836 21.581115 6.217604 22.366931 6.357924 c 23.152746 6.498245 25.553850 6.311151 24.768034 4.557150 c 23.982219 2.803149 16.909877 4.159577 17.695693 3.902323 c 18.481508 3.645070 16.516969 2.358800 14.072244 2.616053 c 11.627484 2.873309 11.454080 3.340131 11.192142 4.369145 c 11.190919 4.370057 l s gsave 13.288587 5.702053 translate 0.035278 -0.035278 scale start_ol 704 192 moveto 704 2624 lineto 576 2624 lineto 507 2624 477 2650 conicto 448 2677 448 2720 conicto 448 2763 477 2789 conicto 507 2816 576 2816 conicto 1636 2816 lineto 1884 2816 2089 2710 conicto 2295 2604 2403 2469 conicto 2588 2241 2684 1986 conicto 2752 1800 2752 1548 conicto 2752 1268 lineto 2752 958 2618 666 conicto 2485 375 2173 159 conicto 1941 0 1636 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 704 192 lineto 896 192 moveto 1633 192 lineto 1889 192 2112 343 conicto 2335 495 2447 745 conicto 2560 995 2560 1224 conicto 2560 1592 lineto 2560 1782 2500 1930 conicto 2413 2178 2253 2340 conicto 2166 2475 1997 2549 conicto 1828 2624 1633 2624 conicto 896 2624 lineto 896 192 lineto end_ol grestore gsave 13.673225 5.702053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 14.057863 5.702053 translate 0.035278 -0.035278 scale start_ol 512 2112 moveto 512 1911 lineto 767 2176 1025 2176 conicto 1180 2176 1297 2095 conicto 1414 2015 1493 1852 conicto 1627 2015 1765 2095 conicto 1903 2176 2042 2176 conicto 2260 2176 2390 2032 conicto 2560 1846 2560 1626 conicto 2560 192 lineto 2816 192 lineto 2885 192 2914 165 conicto 2944 139 2944 96 conicto 2944 55 2914 27 conicto 2885 0 2816 0 conicto 2368 0 lineto 2368 1622 lineto 2368 1779 2273 1881 conicto 2178 1984 2054 1984 conicto 1942 1984 1818 1899 conicto 1694 1815 1536 1568 conicto 1536 192 lineto 1792 192 lineto 1861 192 1890 165 conicto 1920 139 1920 96 conicto 1920 55 1890 27 conicto 1861 0 1792 0 conicto 1344 0 lineto 1344 1607 lineto 1344 1771 1249 1877 conicto 1154 1984 1036 1984 conicto 927 1984 821 1913 conicto 674 1813 512 1568 conicto 512 192 lineto 768 192 lineto 837 192 866 165 conicto 896 139 896 96 conicto 896 55 866 27 conicto 837 0 768 0 conicto 64 0 lineto -5 0 -34 27 conicto -64 55 -64 96 conicto -64 139 -34 165 conicto -5 192 64 192 conicto 320 192 lineto 320 1920 lineto 64 1920 lineto -5 1920 -34 1947 conicto -64 1974 -64 2016 conicto -64 2057 -34 2084 conicto -5 2112 64 2112 conicto 512 2112 lineto end_ol grestore gsave 14.442501 5.702053 translate 0.035278 -0.035278 scale start_ol 1536 3136 moveto 1536 2624 lineto 1216 2624 lineto 1216 3136 lineto 1536 3136 lineto 1536 2112 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 1920 lineto 768 1920 lineto 701 1920 670 1947 conicto 640 1974 640 2015 conicto 640 2058 669 2085 conicto 698 2112 768 2112 conicto 1536 2112 lineto end_ol grestore gsave 14.827139 5.702053 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore gsave 15.211777 5.702053 translate 0.035278 -0.035278 scale start_ol 1536 3136 moveto 1536 2624 lineto 1216 2624 lineto 1216 3136 lineto 1536 3136 lineto 1536 2112 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 1920 lineto 768 1920 lineto 701 1920 670 1947 conicto 640 1974 640 2015 conicto 640 2058 669 2085 conicto 698 2112 768 2112 conicto 1536 2112 lineto end_ol grestore gsave 15.596415 5.702053 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 15.981053 5.702053 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 16.365691 5.702053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 16.750329 5.702053 translate 0.035278 -0.035278 scale start_ol 1536 3136 moveto 1536 2624 lineto 1216 2624 lineto 1216 3136 lineto 1536 3136 lineto 1536 2112 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 1920 lineto 768 1920 lineto 701 1920 670 1947 conicto 640 1974 640 2015 conicto 640 2058 669 2085 conicto 698 2112 768 2112 conicto 1536 2112 lineto end_ol grestore gsave 17.134967 5.702053 translate 0.035278 -0.035278 scale start_ol 2368 2112 moveto 2376 1943 lineto 758 192 lineto 2240 192 lineto 2240 448 lineto 2240 517 2266 546 conicto 2293 576 2336 576 conicto 2378 576 2405 546 conicto 2432 517 2432 448 conicto 2430 0 lineto 512 0 lineto 504 171 lineto 2121 1920 lineto 768 1920 lineto 768 1664 lineto 768 1595 749 1565 conicto 731 1536 704 1536 conicto 647 1536 611 1565 conicto 576 1595 576 1664 conicto 576 2112 lineto 2368 2112 lineto end_ol grestore gsave 17.519605 5.702053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 17.904243 5.702053 translate 0.035278 -0.035278 scale start_ol 2432 3008 moveto 2432 192 lineto 2688 192 lineto 2758 192 2787 165 conicto 2816 139 2816 96 conicto 2816 55 2787 27 conicto 2758 0 2688 0 conicto 2240 0 lineto 2240 411 lineto 1885 -64 1337 -64 conicto 1059 -64 805 82 conicto 551 228 403 498 conicto 256 768 256 1055 conicto 256 1344 403 1613 conicto 551 1882 805 2029 conicto 1059 2176 1339 2176 conicto 1875 2176 2240 1703 conicto 2240 2816 lineto 1984 2816 lineto 1914 2816 1885 2834 conicto 1856 2852 1856 2880 conicto 1856 2935 1885 2971 conicto 1914 3008 1984 3008 conicto 2432 3008 lineto 2240 1056 moveto 2240 1447 1975 1715 conicto 1710 1984 1345 1984 conicto 978 1984 713 1715 conicto 448 1447 448 1056 conicto 448 668 713 398 conicto 978 128 1345 128 conicto 1710 128 1975 398 conicto 2240 668 2240 1056 conicto end_ol grestore gsave 18.288881 5.702053 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 18.673519 5.702053 translate 0.035278 -0.035278 scale start_ol 2432 0 moveto 512 0 lineto 512 284 lineto 2112 2607 lineto 2112 2624 lineto 832 2624 lineto 832 2048 lineto 832 1978 796 1949 conicto 761 1920 704 1920 conicto 677 1920 658 1949 conicto 640 1978 640 2048 conicto 640 2816 lineto 2304 2816 lineto 2304 2539 lineto 704 214 lineto 704 192 lineto 2240 192 lineto 2240 896 lineto 2240 966 2266 995 conicto 2293 1024 2336 1024 conicto 2379 1024 2405 995 conicto 2432 966 2432 896 conicto 2432 0 lineto end_ol grestore gsave 19.058157 5.702053 translate 0.035278 -0.035278 scale start_ol 2560 1055 moveto 2560 592 2232 264 conicto 1904 -64 1441 -64 conicto 974 -64 647 265 conicto 320 594 320 1055 conicto 320 1518 647 1847 conicto 974 2176 1441 2176 conicto 1904 2176 2232 1848 conicto 2560 1520 2560 1055 conicto 2368 1056 moveto 2368 1442 2097 1713 conicto 1826 1984 1440 1984 conicto 1054 1984 783 1711 conicto 512 1439 512 1056 conicto 512 675 783 401 conicto 1054 128 1440 128 conicto 1826 128 2097 400 conicto 2368 673 2368 1056 conicto end_ol grestore gsave 19.442795 5.702053 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 19.827433 5.702053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 14.251087 6.502053 translate 0.035278 -0.035278 scale start_ol 1408 1185 moveto 1408 1462 1468 1772 conicto 1529 2083 1700 2490 conicto 1871 2897 1950 2982 conicto 1974 3008 2008 3008 conicto 2051 3008 2081 2979 conicto 2112 2950 2112 2909 conicto 2112 2885 2095 2856 conicto 1828 2370 1714 1975 conicto 1600 1580 1600 1185 conicto 1600 788 1714 393 conicto 1828 -2 2095 -486 conicto 2112 -515 2112 -539 conicto 2112 -580 2080 -610 conicto 2048 -640 2006 -640 conicto 1974 -640 1950 -614 conicto 1875 -532 1706 -134 conicto 1537 263 1472 569 conicto 1408 875 1408 1185 conicto end_ol grestore gsave 14.635725 6.502053 translate 0.035278 -0.035278 scale start_ol 2240 2617 moveto 2240 2683 lineto 2240 2754 2266 2785 conicto 2293 2816 2336 2816 conicto 2379 2816 2405 2783 conicto 2432 2750 2432 2673 conicto 2432 2127 lineto 2432 2050 2405 2017 conicto 2379 1984 2336 1984 conicto 2295 1984 2268 2015 conicto 2242 2047 2240 2118 conicto 2228 2337 2029 2512 conicto 1830 2688 1508 2688 conicto 1168 2688 968 2525 conicto 768 2362 768 2101 conicto 768 1979 824 1878 conicto 880 1778 973 1715 conicto 1066 1653 1183 1615 conicto 1300 1578 1549 1536 conicto 1967 1470 2110 1391 conicto 2301 1308 2398 1144 conicto 2496 981 2496 759 conicto 2496 417 2220 176 conicto 1945 -64 1478 -64 conicto 954 -64 640 255 conicto 640 137 lineto 640 64 613 32 conicto 587 0 544 0 conicto 503 0 475 31 conicto 448 63 448 135 conicto 448 695 lineto 448 769 474 800 conicto 501 832 544 832 conicto 585 832 611 803 conicto 638 775 640 710 conicto 652 490 877 309 conicto 1102 128 1483 128 conicto 1863 128 2083 298 conicto 2304 469 2304 760 conicto 2304 917 2227 1039 conicto 2150 1161 1998 1232 conicto 1893 1282 1522 1344 conicto 1012 1429 794 1603 conicto 576 1778 576 2100 conicto 576 2420 831 2650 conicto 1087 2880 1506 2880 conicto 1932 2880 2240 2617 conicto end_ol grestore gsave 15.020363 6.502053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 15.405001 6.502053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 15.789639 6.502053 translate 0.035278 -0.035278 scale start_ol 1659 0 moveto 1349 0 lineto 549 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 1152 2112 lineto 1221 2112 1250 2085 conicto 1280 2058 1280 2016 conicto 1280 1975 1250 1947 conicto 1221 1920 1152 1920 conicto 752 1920 lineto 1472 192 lineto 1536 192 lineto 2256 1920 lineto 1856 1920 lineto 1787 1920 1757 1947 conicto 1728 1974 1728 2016 conicto 1728 2057 1757 2084 conicto 1787 2112 1856 2112 conicto 2688 2112 lineto 2759 2112 2787 2085 conicto 2816 2058 2816 2016 conicto 2816 1975 2787 1947 conicto 2759 1920 2688 1920 conicto 2459 1920 lineto 1659 0 lineto end_ol grestore gsave 16.174277 6.502053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 16.558915 6.502053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 16.943553 6.502053 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 17.328191 6.502053 translate 0.035278 -0.035278 scale start_ol 704 2112 moveto 704 1735 lineto 887 1954 1097 2065 conicto 1307 2176 1592 2176 conicto 1895 2176 2151 2032 conicto 2407 1888 2547 1630 conicto 2688 1373 2688 1089 conicto 2688 639 2372 319 conicto 2056 0 1595 0 conicto 1046 0 704 441 conicto 704 -704 lineto 1216 -704 lineto 1285 -704 1314 -730 conicto 1344 -757 1344 -800 conicto 1344 -841 1314 -868 conicto 1285 -896 1216 -896 conicto 256 -896 lineto 187 -896 157 -869 conicto 128 -843 128 -800 conicto 128 -757 157 -730 conicto 187 -704 256 -704 conicto 512 -704 lineto 512 1920 lineto 256 1920 lineto 187 1920 157 1947 conicto 128 1974 128 2016 conicto 128 2057 157 2084 conicto 187 2112 256 2112 conicto 704 2112 lineto 2496 1089 moveto 2496 1458 2236 1721 conicto 1977 1984 1602 1984 conicto 1226 1984 965 1719 conicto 704 1455 704 1089 conicto 704 721 965 456 conicto 1226 192 1602 192 conicto 1974 192 2235 455 conicto 2496 718 2496 1089 conicto end_ol grestore gsave 17.712829 6.502053 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 18.097467 6.502053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 18.482105 6.502053 translate 0.035278 -0.035278 scale start_ol 1024 888 moveto 1024 0 lineto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 832 192 lineto 832 2816 lineto 576 2816 lineto 507 2816 477 2843 conicto 448 2870 448 2912 conicto 448 2953 477 2980 conicto 507 3008 576 3008 conicto 1024 3008 lineto 1024 1114 lineto 2046 1920 lineto 1984 1920 lineto 1915 1920 1885 1947 conicto 1856 1975 1856 2016 conicto 1856 2058 1885 2085 conicto 1915 2112 1984 2112 conicto 2560 2112 lineto 2630 2112 2659 2085 conicto 2688 2058 2688 2016 conicto 2688 1975 2659 1947 conicto 2630 1920 2560 1920 conicto 2325 1920 lineto 1413 1195 lineto 2459 192 lineto 2688 192 lineto 2758 192 2787 165 conicto 2816 139 2816 96 conicto 2816 55 2787 27 conicto 2758 0 2688 0 conicto 1984 0 lineto 1915 0 1885 27 conicto 1856 55 1856 96 conicto 1856 139 1885 165 conicto 1915 192 1984 192 conicto 2216 192 lineto 1274 1085 lineto 1024 888 lineto end_ol grestore gsave 18.866743 6.502053 translate 0.035278 -0.035278 scale start_ol 1536 1183 moveto 1536 906 1475 596 conicto 1415 287 1244 -121 conicto 1073 -529 994 -611 conicto 970 -640 936 -640 conicto 893 -640 862 -610 conicto 832 -580 832 -539 conicto 832 -515 849 -486 conicto 1116 -2 1230 393 conicto 1344 788 1344 1183 conicto 1344 1580 1230 1975 conicto 1116 2370 849 2856 conicto 832 2885 832 2909 conicto 832 2950 864 2979 conicto 896 3008 938 3008 conicto 970 3008 994 2982 conicto 1069 2900 1238 2502 conicto 1407 2105 1471 1799 conicto 1536 1493 1536 1183 conicto end_ol grestore 0.100000 slw [] 0 sd [] 0 sd 0 slc 0 slj 0.100000 slw 0 slc 0 slj [] 0 sd 1.000000 1.000000 1.000000 srgb n 23.100060 12.938250 m 22.030532 12.914474 19.956300 13.413773 20.247989 14.483699 c 20.539675 15.553626 21.933302 15.791377 22.516681 15.482297 c 23.100060 15.173207 21.609203 16.980184 24.461277 17.455707 c 27.313324 17.931230 28.771771 17.170394 28.350442 16.623542 c 27.929113 16.076691 30.846007 17.907454 32.207223 16.861304 c 33.568440 15.815154 30.813597 14.816565 31.396975 14.959222 c 31.980354 15.101879 33.762900 14.911670 33.179521 13.128459 c 32.596143 11.345249 27.345734 12.724265 27.929113 12.462728 c 28.512492 12.201190 27.054045 10.893500 25.239115 11.155038 c 23.424159 11.416577 23.295427 11.891173 23.100967 12.937323 c 23.100060 12.938250 l ef 0.000000 0.000000 0.000000 srgb n 23.100060 12.938250 m 22.030532 12.914474 19.956300 13.413773 20.247989 14.483699 c 20.539675 15.553626 21.933302 15.791377 22.516681 15.482297 c 23.100060 15.173207 21.609203 16.980184 24.461277 17.455707 c 27.313324 17.931230 28.771771 17.170394 28.350442 16.623542 c 27.929113 16.076691 30.846007 17.907454 32.207223 16.861304 c 33.568440 15.815154 30.813597 14.816565 31.396975 14.959222 c 31.980354 15.101879 33.762900 14.911670 33.179521 13.128459 c 32.596143 11.345249 27.345734 12.724265 27.929113 12.462728 c 28.512492 12.201190 27.054045 10.893500 25.239115 11.155038 c 23.424159 11.416577 23.295427 11.891173 23.100967 12.937323 c 23.100060 12.938250 l s gsave 25.497207 13.896425 translate 0.035278 -0.035278 scale start_ol 832 1344 moveto 832 192 lineto 2368 192 lineto 2368 768 lineto 2368 837 2394 866 conicto 2421 896 2464 896 conicto 2507 896 2533 866 conicto 2560 837 2560 768 conicto 2560 0 lineto 384 0 lineto 315 0 285 27 conicto 256 55 256 96 conicto 256 139 285 165 conicto 315 192 384 192 conicto 640 192 lineto 640 2624 lineto 384 2624 lineto 315 2624 285 2650 conicto 256 2677 256 2720 conicto 256 2763 285 2789 conicto 315 2816 384 2816 conicto 2432 2816 lineto 2432 2112 lineto 2432 2043 2405 2013 conicto 2379 1984 2336 1984 conicto 2293 1984 2266 2013 conicto 2240 2043 2240 2112 conicto 2240 2624 lineto 832 2624 lineto 832 1536 lineto 1536 1536 lineto 1536 1792 lineto 1536 1861 1563 1890 conicto 1590 1920 1633 1920 conicto 1674 1920 1701 1890 conicto 1728 1861 1728 1792 conicto 1728 1088 lineto 1728 1019 1701 989 conicto 1674 960 1633 960 conicto 1590 960 1563 989 conicto 1536 1019 1536 1088 conicto 1536 1344 lineto 832 1344 lineto end_ol grestore gsave 25.881845 13.896425 translate 0.035278 -0.035278 scale start_ol 1594 1118 moveto 2528 192 lineto 2611 192 2633 184 conicto 2655 176 2671 151 conicto 2688 126 2688 96 conicto 2688 55 2657 27 conicto 2627 0 2555 0 conicto 1925 0 lineto 1853 0 1822 27 conicto 1792 55 1792 96 conicto 1792 139 1825 165 conicto 1858 192 1936 192 conicto 2288 192 lineto 1474 998 lineto 665 192 lineto 1013 192 lineto 1087 192 1119 165 conicto 1152 139 1152 96 conicto 1152 55 1121 27 conicto 1091 0 1022 0 conicto 386 0 lineto 317 0 286 27 conicto 256 55 256 96 conicto 256 126 272 151 conicto 289 176 310 184 conicto 332 192 416 192 conicto 1350 1122 lineto 544 1920 lineto 462 1920 440 1929 conicto 418 1938 401 1963 conicto 384 1988 384 2017 conicto 384 2058 413 2085 conicto 442 2112 512 2112 conicto 1026 2112 lineto 1096 2112 1124 2085 conicto 1152 2058 1152 2015 conicto 1152 1974 1122 1947 conicto 1093 1920 1020 1920 conicto 785 1920 lineto 1470 1241 lineto 2151 1920 lineto 1922 1920 lineto 1854 1920 1823 1947 conicto 1792 1974 1792 2017 conicto 1792 2058 1821 2085 conicto 1850 2112 1920 2112 conicto 2434 2112 lineto 2502 2112 2531 2085 conicto 2560 2058 2560 2015 conicto 2560 1988 2543 1963 conicto 2526 1938 2504 1929 conicto 2482 1920 2400 1920 conicto 1594 1118 lineto end_ol grestore gsave 26.266483 13.896425 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 26.651121 13.896425 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 27.035759 13.896425 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 27.420397 13.896425 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 27.805035 13.896425 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 28.189673 13.896425 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore gsave 28.574311 13.896425 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 26.267207 14.696425 translate 0.035278 -0.035278 scale start_ol 2368 2112 moveto 2376 1943 lineto 758 192 lineto 2240 192 lineto 2240 448 lineto 2240 517 2266 546 conicto 2293 576 2336 576 conicto 2378 576 2405 546 conicto 2432 517 2432 448 conicto 2430 0 lineto 512 0 lineto 504 171 lineto 2121 1920 lineto 768 1920 lineto 768 1664 lineto 768 1595 749 1565 conicto 731 1536 704 1536 conicto 647 1536 611 1565 conicto 576 1595 576 1664 conicto 576 2112 lineto 2368 2112 lineto end_ol grestore gsave 26.651845 14.696425 translate 0.035278 -0.035278 scale start_ol 2560 1055 moveto 2560 592 2232 264 conicto 1904 -64 1441 -64 conicto 974 -64 647 265 conicto 320 594 320 1055 conicto 320 1518 647 1847 conicto 974 2176 1441 2176 conicto 1904 2176 2232 1848 conicto 2560 1520 2560 1055 conicto 2368 1056 moveto 2368 1442 2097 1713 conicto 1826 1984 1440 1984 conicto 1054 1984 783 1711 conicto 512 1439 512 1056 conicto 512 675 783 401 conicto 1054 128 1440 128 conicto 1826 128 2097 400 conicto 2368 673 2368 1056 conicto end_ol grestore gsave 27.036483 14.696425 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 27.421121 14.696425 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 27.805759 14.696425 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 25.304707 15.496425 translate 0.035278 -0.035278 scale start_ol 1408 1185 moveto 1408 1462 1468 1772 conicto 1529 2083 1700 2490 conicto 1871 2897 1950 2982 conicto 1974 3008 2008 3008 conicto 2051 3008 2081 2979 conicto 2112 2950 2112 2909 conicto 2112 2885 2095 2856 conicto 1828 2370 1714 1975 conicto 1600 1580 1600 1185 conicto 1600 788 1714 393 conicto 1828 -2 2095 -486 conicto 2112 -515 2112 -539 conicto 2112 -580 2080 -610 conicto 2048 -640 2006 -640 conicto 1974 -640 1950 -614 conicto 1875 -532 1706 -134 conicto 1537 263 1472 569 conicto 1408 875 1408 1185 conicto end_ol grestore gsave 25.689345 15.496425 translate 0.035278 -0.035278 scale start_ol 1536 2624 moveto 1536 192 lineto 2240 192 lineto 2309 192 2338 165 conicto 2368 139 2368 96 conicto 2368 55 2338 27 conicto 2309 0 2240 0 conicto 640 0 lineto 571 0 541 27 conicto 512 55 512 96 conicto 512 139 541 165 conicto 571 192 640 192 conicto 1344 192 lineto 1344 2624 lineto 640 2624 lineto 571 2624 541 2650 conicto 512 2677 512 2720 conicto 512 2763 541 2789 conicto 571 2816 640 2816 conicto 2240 2816 lineto 2309 2816 2338 2789 conicto 2368 2763 2368 2720 conicto 2368 2677 2338 2650 conicto 2309 2624 2240 2624 conicto 1536 2624 lineto end_ol grestore gsave 26.073983 15.496425 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 26.458621 15.496425 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 26.843259 15.496425 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 27.227897 15.496425 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 27.612535 15.496425 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 27.997173 15.496425 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 28.381811 15.496425 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 28.766449 15.496425 translate 0.035278 -0.035278 scale start_ol 1536 1183 moveto 1536 906 1475 596 conicto 1415 287 1244 -121 conicto 1073 -529 994 -611 conicto 970 -640 936 -640 conicto 893 -640 862 -610 conicto 832 -580 832 -539 conicto 832 -515 849 -486 conicto 1116 -2 1230 393 conicto 1344 788 1344 1183 conicto 1344 1580 1230 1975 conicto 1116 2370 849 2856 conicto 832 2885 832 2909 conicto 832 2950 864 2979 conicto 896 3008 938 3008 conicto 970 3008 994 2982 conicto 1069 2900 1238 2502 conicto 1407 2105 1471 1799 conicto 1536 1493 1536 1183 conicto end_ol grestore 0.100000 slw [] 0 sd [] 0 sd 0 slc n 15.325000 13.048900 m 15.301900 8.963990 l s 0.100000 slw [] 0 sd [] 0 sd 0 slc n 14.806200 14.331300 m 10.485000 14.264900 l s 0.100000 slw [] 0 sd [] 0 sd 0 slc n 15.856300 14.331300 m 20.214000 14.308300 l s gsave 13.785000 16.926100 translate 0.035278 -0.035278 scale start_ol 1024 1344 moveto 1024 192 lineto 1728 192 lineto 1797 192 1826 165 conicto 1856 139 1856 96 conicto 1856 55 1826 27 conicto 1797 0 1728 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 832 192 lineto 832 2624 lineto 576 2624 lineto 507 2624 477 2650 conicto 448 2677 448 2720 conicto 448 2763 482 2793 conicto 507 2816 576 2816 conicto 2752 2816 lineto 2752 2112 lineto 2752 2043 2725 2013 conicto 2698 1984 2657 1984 conicto 2614 1984 2587 2013 conicto 2560 2043 2560 2112 conicto 2560 2624 lineto 1024 2624 lineto 1024 1536 lineto 1728 1536 lineto 1728 1792 lineto 1728 1861 1755 1890 conicto 1782 1920 1825 1920 conicto 1866 1920 1893 1890 conicto 1920 1861 1920 1792 conicto 1920 1088 lineto 1920 1019 1893 989 conicto 1866 960 1825 960 conicto 1782 960 1755 989 conicto 1728 1019 1728 1088 conicto 1728 1344 lineto 1024 1344 lineto end_ol grestore gsave 14.169638 16.926100 translate 0.035278 -0.035278 scale start_ol 1536 3136 moveto 1536 2624 lineto 1216 2624 lineto 1216 3136 lineto 1536 3136 lineto 1536 2112 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 1920 lineto 768 1920 lineto 701 1920 670 1947 conicto 640 1974 640 2015 conicto 640 2058 669 2085 conicto 698 2112 768 2112 conicto 1536 2112 lineto end_ol grestore gsave 14.554276 16.926100 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 14.938914 16.926100 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 15.323552 16.926100 translate 0.035278 -0.035278 scale start_ol 2140 0 moveto 1939 0 lineto 1440 1264 lineto 941 0 lineto 740 0 lineto 305 1920 lineto 256 1920 lineto 187 1920 157 1947 conicto 128 1974 128 2016 conicto 128 2057 157 2084 conicto 187 2112 256 2112 conicto 704 2112 lineto 773 2112 802 2085 conicto 832 2058 832 2016 conicto 832 1975 802 1947 conicto 773 1920 704 1920 conicto 501 1920 lineto 864 320 lineto 1344 1536 lineto 1536 1536 lineto 2016 320 lineto 2383 1920 lineto 2176 1920 lineto 2109 1920 2078 1947 conicto 2048 1974 2048 2016 conicto 2048 2057 2077 2084 conicto 2106 2112 2176 2112 conicto 2624 2112 lineto 2694 2112 2723 2085 conicto 2752 2058 2752 2016 conicto 2752 1975 2723 1947 conicto 2694 1920 2624 1920 conicto 2580 1920 lineto 2140 0 lineto end_ol grestore gsave 15.708190 16.926100 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 16.092828 16.926100 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore gsave 16.477466 16.926100 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore showpage %%EndDocument @endspecial 1044 2075 a(Figure)i(1:)40 b(A)30 b(net)m(w)m(ork)i(split) f(in)m(to)g(three)g(zones)382 2432 y Fm(4.1.2)103 b(Statefull)35 b(\034rew)m(alling)382 2604 y Fl(As)27 b(Lin)m(ux)i(supp)s(orts)e (statefull)h(insp)s(ection)g(of)g(all)g(pac)m(k)m(ets)g(en)m(tering)i (and/or)e(lea)m(ving)382 2716 y(the)39 b(\034rew)m(all,)k (con\034guration)e(of)e(a)g(zone)h(only)f(concerns)g(pac)m(k)m(ets)i (with)e(the)g Fj(NEW)382 2829 y Fl(state,)28 b(as)f(explained)h(in)g (section)g(3.2)f(on)h(page)g(3.)39 b(Related)28 b(and)f(established)h (pac)m(k)m(ets)382 2942 y(are)39 b(automatically)g(accepted.)66 b(The)39 b(reason)f(for)g(this)h(design)f(is)g(that)h(it)f(allo)m(ws)h (a)382 3055 y(bi-directional)c(comm)m(unication)g(b)s(et)m(w)m(een)g(t) m(w)m(o)f(zones,)g(ev)m(en)f(if)f(one)h(zone)h(do)s(es)e(not)382 3168 y(p)s(ermit)h(comm)m(unication)i(en)m(tering)g(from)d(an)m(y)i (zone,)f(but)g(only)g(if)f(the)h(comm)m(unica-)382 3281 y(tion)e(is)f(initiated)i(from)e(a)h(trusted)g(zone.)41 b(The)31 b(goal)g(is)f(to)g(k)m(eep)h(zone)g(con\034guration)382 3394 y(v)m(ery)i(simple.)50 b(The)33 b(dogma)i(is:)45 b Fj(\020If)35 b(no)g(c)-5 b(ommunic)g(ation)35 b(must)g(exist,)h(do)f (not)g(al)5 b(low)382 3507 y(it)32 b(in)f(the)i(\034rst)f(plac)-5 b(e\021)7 b Fl(.)382 3747 y Fm(4.1.3)103 b(Net)m(w)m(ork)35 b(address)g(translation)382 3918 y Fl(Apart)23 b(from)g(con)m(trolling) i(the)e(connections)h(that)f(can)g(b)s(e)g(established)g(from)g(one)g (zone)382 4031 y(to)37 b(another,)j(zones)d(also)g(con)m(trol)i(net)m (w)m(ork)f(address)f(translation)h(\(NA)-8 b(T\).)38 b(NA)-8 b(T)37 b(is)382 4144 y(used)30 b(to)h(alter)g(source)g(and)f (destination)i(of)e(IP)g(datagrams.)382 4388 y Fk(4.2)112 b(Implemen)m(tation)382 4559 y Fl(FIAIF)25 b(is)g(implemen)m(ted)k(as)c (a)h(shell)g(script,)i(using)e(the)g Fj(Bourne)k(again)e(shel)5 b(l)p Fl(,)27 b(BASH,)382 4672 y(in)m(terpreter.)40 b(The)25 b(reason)f(for)g(this)g(language)i(is,)f(that)f(it)h(allo)m(ws)f(a)g (minimal)i(installa-)382 4785 y(tion)d(of)g(soft)m(w)m(are)h(on)f(the)h (\034rew)m(all)g(and)g(is)e(platform)i(indep)s(enden)m(t.)40 b(Other)24 b(languages)382 4898 y(suc)m(h)37 b(as)f(C++)i(or)f(Ja)m(v) -5 b(a)37 b(migh)m(t)h(ha)m(v)m(e)g(b)s(een)f(a)f(b)s(etter)h(c)m (hoice)h(of)f(language)h(from)e(a)382 5011 y(programmers)e(p)s(oin)m(t) f(of)f(view,)h(but)g(in)m(tro)s(duces)h(a)e(list)g(of)g(problems)i (when)f(p)s(orting)382 5124 y(to)28 b(other)h(platforms.)41 b(Ja)m(v)-5 b(a)29 b(requires)f(a)h(ja)m(v)-5 b(a)28 b(virtual)h(mac)m(hine)h(to)e(b)s(e)g(installed,)i(and)p 382 5203 1196 4 v 486 5257 a Fh(2)520 5288 y Fg(Practise)23 b(has)f(sho)n(wn)h(that)e(no)h(soft)n(w)n(are)h(is)g(without)f(bugs,)h (and)e(can)h(in)g(w)n(orst)h(case,)g(ha)n(v)n(e)f(bugs)382 5380 y(that)j(allo)n(w)j(users)e(to)f(gain)i(con)n(trol)f(o)n(v)n(er)f (the)h(underlying)f(op)r(erating)h(system)1854 5652 y Fl(6)p eop end %%Page: 7 10 TeXDict begin 7 9 bop 382 548 a Fl(C++)28 b(w)m(ould)h(require)f(sev)m (eral)h(dynamic)f(libraries)h(to)e(b)s(e)h(installed,)h(whic)m(h)g(ma)m (y)f(not)382 661 y(b)s(e)i(desirable)h(on)g(a)f(\034rew)m(all.)382 947 y Fn(5)131 b(Con\034guration)382 1150 y Fl(FIAIF)31 b(is)h(con)m(trolled)j(b)m(y)e(m)m(ultiple)h(con\034guration)g (\034les.)47 b(When)33 b(\034aif)g(is)f(started,)h(it)382 1263 y(reads)26 b(the)g(\034le)g Fe(/etc/fiaif/fiai)o(f.c)o(on)o(f)p Fl(.)33 b(This)25 b(\034les)h(holds)g(most)g(global)h(con-)382 1376 y(\034guration)c(directiv)m(es,)h(and)e(references)g(to)g (additional)h(con\034guration)h(\034les)d(including)382 1489 y(zone)31 b(con\034guration)h(\034les.)382 1732 y Fk(5.1)112 b(Zone)38 b(sp)s(eci\034cation)382 1904 y Fl(In)31 b(order)g(for)g(FIAIF)f(to)h(kno)m(w)h(whic)m(h)g(zone)g (con\034guration)h(\034les)e(to)h(use,)f(eac)m(h)h(zone)382 2017 y(name)21 b(m)m(ust)g(b)s(e)f(listed)g(in)h(FIAIF)e(global)i (con\034guration)h(\034le,)h(named)e Fe(/etc/fiaif/fiaif)o(.c)o(on)o(f) p Fl(.)382 2130 y(This)28 b(\034le)g(con)m(tains)h(m)m(ultiple)h (global)f(con\034guration)h(directiv)m(es.)41 b(In)27 b(this)h(\034le,)h(a)f(con-)382 2243 y(\034guration)j(directiv)m(e)g Fe(ZONE)d Fl(should)i(b)s(e)f(set)h(to)f(a)h(list)g(of)f(iden)m (ti\034ers)i(for)e(all)h(enabled)382 2356 y(zones.)39 b(These)24 b(iden)m(ti\034ers)i(m)m(ust)g(matc)m(h)f(the)g(name)g(as)f (sp)s(eci\034ed)h(in)g(the)g(corrosp)s(ond-)382 2468 y(ing)g(zone)h(con\034guration)h(\034le.)39 b(F)-8 b(or)26 b(eac)m(h)g(zone)g(iden)m(ti\034er,)i Fe()p Fl(,)23 b(a)i(con\034guration)382 2581 y(directiv)m(e)32 b(sp)s(ecifying)e(the) g(name)i(of)e(the)h(con\034guration)h(\034le)f(m)m(ust)g(b)s(e)f (presen)m(t.)42 b(The)382 2694 y(form)30 b(of)g(these)h (con\034guration)h(directiv)m(es)g(are:)40 b Fe(CONF_=)p Fl(.)382 2934 y Fm(Example:)382 3122 y Fe(ZONE="INT)i(EXT") 382 3235 y(CONF_INT='zone.)o(in)o(t')382 3348 y(CONF_EXT='zone.)o(ex)o (t')382 3535 y Fl(In)38 b(the)i(example)f(ab)s(o)m(v)m(e,)j(t)m(w)m(o)f (zones)e(are)g(enabled.)67 b(The)40 b(zones)f(are)g(named)h Fe(INT)382 3648 y Fl(and)34 b Fe(EXT)p Fl(.)e(The)i(con\034guration)h (\034le)f(for)f(zone)h Fe(INT)e Fl(is)h(called)h Fe(zone.int)p Fl(,)c(and)k(the)382 3761 y(con\034guration)c(\034le)e(for)g(zone)g Fe(EXT)e Fl(is)i(called)h Fe(zone.ext)p Fl(.)35 b(It)28 b(is)f(imp)s(ortan)m(t)j(that)e(the)382 3874 y(name)35 b(sp)s(eci\034ed)f(within)h(the)f(con\034guration)i(\034les)e(corresp)s (ond)h(to)f(the)g(iden)m(ti\034er)i(in)382 3987 y(the)31 b(global)g(con\034guration)h(\034le.)523 4100 y(The)26 b(next)f(section)h(will)g(describ)s(e)g(in)f(detail)h(ho)m(w)h(to)e (setup)h(a)f(zone)h(con\034guration)382 4213 y(\034le.)382 4499 y Fn(6)131 b(Con\034guring)43 b(a)h(zone)382 4702 y Fl(In)36 b(this)g(section)h(the)g(syn)m(tax)f(of)g(rules)h(will)g(b)s (e)f(presen)m(ted,)j(and)e(examples)g(will)g(b)s(e)382 4815 y(giv)m(en.)382 5059 y Fk(6.1)112 b(De\034nitions)382 5230 y Fl(All)23 b(rules)g(are)g(de\034ned)i(b)m(y)e(using)g(a)g(k)m (eyw)m(ord)h(and)g(an)f(assignmen)m(t.)40 b(Three)23 b(categories)382 5343 y(of)30 b(k)m(eyw)m(ords)h(exists:)1854 5652 y(7)p eop end %%Page: 8 11 TeXDict begin 8 10 bop 382 548 a Fm(Simple:)44 b Fl(These)c(are)f (simple)g(k)m(eyw)m(ords)h(that)g(can)f(only)g(b)s(e)g(assigned)g(one)g (v)-5 b(alue.)609 661 y(These)31 b(k)m(eyw)m(ords)g(are)g(used)f(on)h (the)f(form)h Fe(KEYWORD=value)p Fl(.)382 848 y Fm(Arra)m(y:)45 b Fl(Arra)m(y)23 b(k)m(eyw)m(ords)h(de\034nes)f(an)g(arra)m(y)h(of)e (rules.)38 b(The)23 b(k)m(eyw)m(ord)h(is)f(indexed)g(b)m(y)609 961 y(p)s(ost\034xing)32 b(it)g(with)h Fe([n])p Fl(,)e(where)i Fe(n)e Fl(is)g(the)i(p)s(osition)f(in)g(the)g(arra)m(y)-8 b(.)47 b(The)32 b(\034rst)609 1074 y(elemen)m(t)f(in)f(the)g(arra)m(y)g (is)f(one,)h(no)f(indexes)h(m)m(ust)g(b)s(e)f(left)g(out)h(in)g(a)f (sequence.)609 1187 y(If)g(t)m(w)m(o)i(rules)f(ha)m(v)m(e)h(the)f(same) g(index,)g(there)g(is)g(no)g(guaran)m(tee)h(on)f(whic)m(h)h(rules)609 1300 y(will)g(b)s(e)f(c)m(hosen.)382 1488 y Fm(Sets:)46 b Fl(Keyw)m(ord)f(sets)e(are)h(on)g(the)g(form)g Fe(KEYWORD_)o(=v)o(al)o(ue)p Fl(,)609 1601 y(where)33 b(the)f(iden)m (ti\034er)i(can)f(b)s(e)e(replaced)j(b)m(y)e(an)m(y)g(string.)46 b(In)32 b(sets)f(there)i(is)e(no)609 1714 y(sp)s(eci\034ed)k(order)h (of)e(the)h(rules.)54 b(If)34 b(t)m(w)m(o)i(iden)m(tical)h(rule)e (names)g(are)g(sp)s(eci\034ed,)609 1826 y(only)c(one)f(will)h(b)s(e)f (used)h(in)f(a)g(non-deterministic)j(fashion.)382 2039 y(The)25 b(syn)m(tax)g(of)f(all)i(rules)f(will)g(b)s(e)f(presen)m(ted)j (as)d(BNF.)h(Before)g(presen)m(ting)h(the)f(rules,)382 2152 y(a)g(list)h(of)f(de\034nitions)h(will)g(b)s(e)f(giv)m(en,)j(whic) m(h)e(will)g(b)s(e)f(used)h(when)g(sp)s(ecifying)f(the)h(syn-)382 2265 y(tax)k(of)g(the)h(rules:)382 2579 y Fd(h)p Fj(zone_name)7 b Fd(i)31 b Fl(::=)46 b(.string.)41 b Fd(h)p Fj(zone)7 b Fd(i)31 b Fl(::=)f Fd(h)p Fj(zone_name)7 b Fd(i)31 b Fl(|)g('ALL')382 2785 y Fd(h)p Fj(byteint)9 b Fd(i)30 b Fl(::=)46 b(0..255)382 2991 y Fd(h)p Fj(shortint)9 b Fd(i)30 b Fl(::=)46 b(0..65535)382 3197 y Fd(h)p Fj(int)9 b Fd(i)30 b Fl(::=)46 b(0..4294967295)382 3403 y Fd(h)p Fj(hexint)9 b Fd(i)31 b Fl(::=)46 b(00..FF)382 3609 y Fd(h)p Fj(b)-5 b(o)g(ol)9 b Fd(i)33 b Fl(::=)46 b('0')30 b(|)h('1')382 3814 y Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(byteint)9 b Fd(i)q Fl(.)p Fd(h)p Fj(byteint)g Fd(i)p Fl(.)p Fd(h)p Fj(byteint)g Fd(i)q Fl(.)p Fd(h)p Fj(byteint)g Fd(i)30 b(h)p Fj(mask)10 b Fd(i)447 3927 y Fl(|)91 b Fd(h)p Fj(name)32 b(of)g(machine)7 b Fd(i)382 4133 y(h)p Fj(mac_addr)-5 b(ess)7 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(hexint)9 b Fd(i)p Fl(:)p Fd(h)p Fj(hexint)g Fd(i)q Fl(:)p Fd(h)p Fj(hexint)g Fd(i)q Fl(:)p Fd(h)p Fj(hexint)g Fd(i)q Fl(:)p Fd(h)p Fj(hexint)g Fd(i)q Fl(:)p Fd(h)p Fj(hexint)g Fd(i)382 4339 y(h)p Fj(mask)h Fd(i)31 b Fl(::=)46 b('/')30 b(0..32)h(|)g Fd(h)p Fj(empty)8 b Fd(i)382 4545 y(h)p Fj(p)-5 b(ort_name)7 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(shortint)9 b Fd(i)30 b Fl(|)h Fd(h)p Fj(servic)-5 b(e_name)7 b Fd(i)382 4751 y(h)p Fj(p)-5 b(ort_r)g(ange)7 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(shortint)9 b Fd(i)o Fl(':')p Fd(h)p Fj(shortint)g Fd(i)382 4956 y(h)p Fj(p)-5 b(ort_opt)9 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(p)-5 b(ort_name)7 b Fd(i)32 b Fl(|)e Fd(h)p Fj(p)-5 b(ort_r)g(ange)7 b Fd(i)447 5069 y Fl(|)91 b Fd(h)p Fj(p)-5 b(ort_opt)9 b Fd(i)31 b Fl(',')g Fd(h)p Fj(p)-5 b(ort_opt)9 b Fd(i)382 5275 y(h)p Fj(p)-5 b(ort)9 b Fd(i)31 b Fl(::=)46 b('ALL')31 b(|)f Fd(h)p Fj(p)-5 b(ort_opt)9 b Fd(i)1854 5652 y Fl(8)p eop end %%Page: 9 12 TeXDict begin 9 11 bop 382 548 a Fd(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(byteint)9 b Fd(i)31 b Fl(|)f Fd(h)p Fj(icmp_name)7 b Fd(i)447 661 y Fl(|)91 b Fd(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)31 b Fl(',')g Fd(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)382 867 y(h)p Fj(icmp_name)-5 b(d_typ)g(e)7 b Fd(i)32 b Fl(::=)46 b('icmp-net-unreac)m(hable')35 b(|)30 b('icmp-host-unreac)m(hable')447 980 y(|)91 b('icmp-p)s (ort-unreac)m(hable')34 b(|)c('icmp-proto-unreac)m(hable')447 1093 y(|)91 b('icmp-net-prohibited')34 b(|)c('icmp-host-prohibited')382 1298 y Fd(h)p Fj(pr)-5 b(oto)g(c)g(ol)9 b Fd(i)33 b Fl(::=)46 b('ALL')31 b(|)g Fd(h)p Fj(byteint)9 b Fd(i)30 b Fl(|)g('icmp')i Fd(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)447 1411 y Fl(|)91 b('udp')31 b Fd(h)p Fj(p)-5 b(ort)9 b Fd(i)447 1524 y Fl(|)91 b('tcp')31 b Fd(h)p Fj(p)-5 b(ort)9 b Fd(i)382 1730 y(h)p Fj(sr)-5 b(c_dst_ip)6 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)r Fl('=>')p Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)382 1936 y(h)p Fj(p)-5 b(olicy)8 b Fd(i)31 b Fl(::=)46 b('A)m(CCEPT')33 b(|)d('REJECT')i(|)e('DR)m(OP') 447 2049 y(|)91 b('A)m(CCEPT_LOG')33 b(|)d('REJECT_NOLOG')j(|)d('DR)m (OP_NOLOG')447 2162 y(|)91 b('LOG')382 2367 y Fd(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(pr)-5 b(oto)g(c)g(ol)9 b Fd(i)33 b(h)p Fj(sr)-5 b(c_dst_ip)6 b Fd(i)382 2580 y Fl(A)43 b(rule)i(consists)e(of)h(an)g(action/p)s (olicy)h(and)f(a)g(set)g(of)f(matc)m(hes)i(whic)m(h)g(m)m(ust)g(b)s(e) 382 2693 y(ful\034lled)39 b(in)g(order)g(for)f(the)h(action/p)s(olicy)g (to)g(b)s(e)f(applied)i(to)e(the)h(connection.)66 b(If)382 2806 y(this)30 b(is)g(the)h(case,)f(it)h(is)f(said)g(that)h(the)g (rules)f Fj(matches)38 b Fl(the)31 b(connection.)523 2919 y(The)j Fe()c Fl(de\034nes)k(a)g(general)h(connection)g (matc)m(h)h(used)e(throughout)382 3032 y(the)29 b(con\034guration)j (\034les.)40 b(The)29 b(\034rst)g(argumen)m(t)i()g(matc)m (hes)f(connections)382 3145 y(of)f(this)h(t)m(yp)s(e.)40 b(If)29 b(the)h(proto)s(col)g(is)f(either)i Fe(tcp)d Fl(or)i Fe(udp)e Fl(then)i(the)g(p)s(ort)g(sp)s(eci\034es)f(the)382 3257 y(destination)34 b(p)s(ort.)48 b(If)32 b(the)h(proto)s(col)g(is)g Fe(icmp)d Fl(a)j(icmp)h(t)m(yp)s(e)e(is)h(required.)48 b(The)34 b(last)382 3370 y(argumen)m(t)29 b Fe()22 b Fl(sp)s(eci\034es)27 b(the)h(source)f(and)h(destination)h(ip)e (address)h(of)382 3483 y(the)38 b(connection,)k(i.e.)63 b(the)38 b(source)g(ip)g(address)g(m)m(ust)g(matc)m(h)h(the)g (initiator)g(of)e(the)382 3596 y(connection,)32 b(and)f(the)f (destination)i(for)e(the)h(endp)s(oin)m(t)h(of)e(the)g(connection.)382 3840 y Fk(6.2)112 b(Zone)38 b(de\034nition)382 4011 y Fl(T)-8 b(o)42 b(setup)f(a)g(zone,)k(sev)m(eral)c(parameters)i(are)e (required)h(in)f(order)h(to)f(iden)m(tify)h(the)382 4124 y(zone.)f(The)31 b(parameters)g(are)g(all)g(on)f(simple)h(form,)f(and)h (are)g(listed)g(b)s(elo)m(w.)382 4364 y Fm(NAME)91 b Fl(This)33 b(iden)m(ti\034es)h(the)f(name)g(of)f(the)g(zone.)48 b(The)33 b(name)g(m)m(ust)g(b)s(e)f(unique,)382 4477 y(and)37 b(m)m(ust)g(b)s(e)f(iden)m(tical)j(to)d(the)h(name)g(as)g(sp)s (eci\034ed)f(in)h(the)g(global)g(con\034guration)382 4590 y(\034le.)382 4703 y(Example:)k Fe(NAME=EXT)382 4943 y Fm(DEV)90 b Fl(This)33 b(parameter)i(sp)s(eci\034es)e(the)g(net) m(w)m(ork)i(in)m(terface)f(to)f(whic)m(h)h(the)f(zone)h(is)382 5056 y(connected.)382 5169 y(Example:)41 b Fe(DEV=eth0)1854 5652 y Fl(9)p eop end %%Page: 10 13 TeXDict begin 10 12 bop 382 548 a Fm(D)m(YNAMIC)91 b Fl(If)26 b(the)h(in)m(terface)h(as)e(sp)s(eci\034ed)h(b)m(y)g(the)g Fe(DEV)e Fl(parameter)k(obtains)e(its)382 661 y(ip)21 b(address)g(from)h(a)f(dhcp)g(serv)m(er,)j(or)d(can)h(ha)m(v)m(e)g(its) f(ip)g(address)g(c)m(hanged)i(dynamically)-8 b(,)382 774 y(D)m(YNAMIC)30 b(m)m(ust)h(b)s(e)f(enabled.)382 952 y Fd(h)p Fj(dynamic)5 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(b)-5 b(o)g(ol)9 b Fd(i)382 1142 y Fl(Example:)41 b Fe(DYNAMIC=0)382 1379 y Fm(DHCP_SER)-12 b(VER)90 b Fl(T)-8 b(o)27 b(sp)s(ecify)f(that)i(the)f(\034rew)m(all)h(also)f(acts)g(as)g (a)g(dhcp)g(serv)m(er,)382 1492 y(this)f(parameter)j(should)e(b)s(e)f (set)g(to)h(one,)h(in)f(order)g(for)f(dhcp)i(queries)e(to)h(b)s(e)f (accepted)382 1605 y(from)k(mac)m(hines)i(in)f(the)f(curren)m(t)i (zone.)382 1783 y Fd(h)p Fj(dhcp_server)10 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(b)-5 b(o)g(ol)9 b Fd(i)382 1973 y Fl(Example:)41 b Fe(DHCP_SERVER=1)382 2209 y Fm(GLOBAL)91 b Fl(The)24 b(global)h(parameter)h(sp)s(eci\034es)e(if)g(the)g(in)m (terface)i(connects)e(the)h(\034re-)382 2322 y(w)m(all)i(to)g(the)g(In) m(ternet.)40 b(If)26 b(the)h(in)m(terface)g(do)s(es)f(connect)i(the)f (\034rew)m(all)h(to)e(the)h(In)m(ternet)382 2435 y(then)k(global)g (should)g(b)s(e)f(set)g(to)g(one.)382 2614 y Fd(h)p Fj(glob)-5 b(al)9 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(b)-5 b(o)g(ol)9 b Fd(i)382 2804 y Fl(Example:)41 b Fe(GLOBAL=1)382 3030 y Fl(The)36 b(follo)m(wing)h(parameters)g(are)f(only)g(required)g(if)f (the)h(zone)g(is)g(sp)s(eci\034ed)g(as)f(non-)382 3142 y(dynamic,)c(that)g(is)f Fe(DYNAMIC=0)p Fl(.)382 3379 y Fm(IP)90 b Fl(The)24 b Fe(IP)f Fl(should)h(b)s(e)g(set)f(the)i (primary)f(ip)g(of)f(the)i(in)m(terface)g(of)e(the)h(curren)m(t)i (zone.)382 3492 y(Example:)41 b Fe(IP=1.2.3.4)382 3728 y Fm(NET)91 b Fl(Sp)s(eci\034es)28 b(the)g(address)g(of)g(the)g(net)m (w)m(ork)h(to)f(whic)m(h)h(this)f(zone)g(is)g(connected.)382 3841 y(Example:)41 b Fe(IP=1.2.3.2)382 4078 y Fm(MASK)91 b Fl(Sp)s(eci\034es)31 b(the)f(net)m(w)m(ork)i(mask)f(of)e(the)i (address)g(in)f(dotted)h(notation.)382 4191 y(Example:)41 b Fe(IP=255.255.255.2)o(52)382 4427 y Fm(BCAST)90 b Fl(Sp)s(eci\034es) 31 b(the)g(broadcast)g(address)g(of)e(the)i(net)m(w)m(ork)h(for)e(this) h(zone.)382 4540 y(Example:)41 b Fe(IP=1.2.3.6)382 4780 y Fk(6.3)112 b(Zone)38 b(access)382 4951 y Fl(The)45 b(access)f(rules)h(are)g(the)g(cen)m(tral)h(rules)f(in)g(the)g(zone.)84 b(These)45 b(de\034nes)g(access)382 5064 y(b)s(et)m(w)m(een)32 b(other)g(zones)f(and)g(the)h(\034rew)m(all)g(itself.)42 b(All)31 b(zone)g(access)g(rules)g(are)g(arra)m(ys,)382 5177 y(whic)m(h)e(are)f(pro)s(cessed)f(sequen)m(tially)-8 b(.)41 b(It)27 b(is)g(highly)h(recommended)i(to)e(ha)m(v)m(e)g(an)g Fj(c)-5 b(atch)382 5290 y(al)5 b(l)43 b Fl(rule)35 b(as)f(the)g(last)g (rule,)i(sp)s(ecifying)d(a)i(default)f(p)s(olicy)g(for)g(pac)m(k)m(ets) h(not)g(co)m(v)m(ered)382 5403 y(b)m(y)30 b(previous)h(rules.)1831 5652 y(10)p eop end %%Page: 11 14 TeXDict begin 11 13 bop 382 548 a Fm(6.3.1)103 b(Input)34 b(rules)382 720 y Fl(The)44 b(input)f(rules)h(con)m(trol)h(access)e (from)g(mac)m(hines)h(lo)s(cated)g(in)f(the)h(zone)g(to)f(the)382 832 y(\034rew)m(all)32 b(itself.)40 b(Input)31 b(rules)f(are)h(sp)s (eci\034ed)f(as)g(an)h(arra)m(y)g(named)g Fe(INPUT)p Fl(:)382 1009 y Fd(h)p Fj(input)9 b Fd(i)30 b Fl(::=)46 b Fd(h)p Fj(p)-5 b(olicy)8 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)382 1197 y Fl(The)22 b(p)s(olicy)f(de\034nes)h(whether)h(to)e (drop,)j(reject)e(or)f(accept)i(connections)f(that)g(matc)m(hes)382 1310 y(this)30 b(rule.)382 1550 y Fm(Example)382 1737 y Fe(INPUT[0]="ACCEP)o(T)48 b(tcp)53 b(25,80,443,22)c(0.0.0.0/0=>0.0.0) o(.0)o(/0)o(")382 1850 y(INPUT[1]="DROP)f(ALL)53 b(0.0.0.0/0=>0.0.)o (0.0)o(/0)o(")382 2038 y Fl(This)29 b(will)h(accept)h(only)e(h)m(ttp,)i (h)m(ttps,)f(sm)m(tp)h(\(mail)f(transfer\))g(and)f(ssh)g(access)h(to)f (the)382 2151 y(\034rew)m(all)38 b(itself.)59 b(An)m(y)37 b(other)g(pac)m(k)m(et)h(originating)h(from)e(the)g(zone)g(destined)g (to)g(the)382 2264 y(\034rew)m(all)32 b(itself)e(will)h(b)s(e)f (discarded.)382 2504 y Fm(6.3.2)103 b(Output)35 b(rules)382 2676 y Fl(The)30 b(output)h(rules)f(determines)g(access)g(from)g(the)g (\034rew)m(all)h(to)f(mac)m(hines)h(lo)s(cated)f(in)382 2788 y(the)h(zone.)41 b(Output)31 b(rules)g(are)f(sp)s(eci\034ed)h(as)f (an)g(arra)m(y)h(named)h Fe(FORWARD)p Fl(:)382 2965 y Fd(h)p Fj(output)9 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(p)-5 b(olicy)8 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)382 3153 y Fl(The)22 b(p)s(olicy)f(de\034nes)h(whether)h(to)e(drop,)j (reject)e(or)f(accept)i(connections)f(that)g(matc)m(hes)382 3266 y(this)30 b(rule.)382 3506 y Fm(Example)382 3693 y Fe(OUTPUT[0]="ACCE)o(PT)48 b(tcp)53 b(22)h(0.0.0.0/0=>0.0)o(.0)o(.0)o (/0)o(")382 3806 y(OUTPUT[1]="REJE)o(CT)48 b(ALL)53 b(0.0.0.0/0=>0.0.)o (0.)o(0/)o(0")382 3994 y Fl(This)34 b(will)g(allo)m(w)g(the)g(\034rew)m (all)i(only)d(to)h(initiate)h(ssh)e(comm)m(unication)j(to)e(mac)m (hines)382 4107 y(lo)s(cated)h(within)h(the)g(zone.)55 b(All)34 b(other)i(comm)m(unication)i(initiated)e(b)m(y)g(the)f (\034rew)m(all)382 4220 y(to)30 b(mac)m(hines)i(in)f(this)f(zone)h(is)f (prohibited,)i(and)f(pac)m(k)m(ets)g(are)g(blo)s(c)m(k)m(ed.)382 4460 y Fm(6.3.3)103 b(F)-9 b(orw)m(ard)35 b(rules)382 4632 y Fl(The)h(forw)m(ard)h(rules)f(restricts)g(access)g(from)f(mac)m (hines)j(lo)s(cated)e(in)g(other)g(zones)g(to)382 4744 y(this)30 b(zone.)41 b(F)-8 b(orw)m(ard)33 b(rules)d(are)h(sp)s (eci\034ed)f(as)g(an)h(arra)m(y)g(named)g Fe(FORWARD)p Fl(:)382 4921 y Fd(h)p Fj(forwar)-5 b(d)9 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(zone)7 b Fd(i)30 b(h)p Fj(p)-5 b(olicy)8 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)382 5109 y Fl(The)35 b(\034rst)g(argumen)m(t)h(sp)s(eci\034es)f(the)g (source)g(zone)g(of)f(the)h(connection.)56 b(The)35 b(p)s(olicy)382 5222 y(de\034nes)28 b(whether)h(to)f(drop,)h(reject)g(or)f(accept)g (connections)i(that)e(matc)m(hes)h(this)f(rule.)1831 5652 y(11)p eop end %%Page: 12 15 TeXDict begin 12 14 bop 382 548 a Fm(Example)382 694 y Fe(FORWARD[0]="ALL)48 b(ACCEPT)j(tcp)j(22)f(0.0.0.0/0=>0.0.)o(0.0)o (/0)o(")382 807 y(FORWARD[1]="DRO)o(P)48 b(ALL)53 b(0.0.0.0/0=>0.0.0)o (.0)o(/0)o(")382 953 y Fl(Mac)m(hines)29 b(lo)s(cated)g(in)f(other)h (zones)f(are)h(only)f(allo)m(w)m(ed)i(to)e(initiate)i(ssh)d(comm)m (unica-)382 1066 y(tion)f(to)f(mac)m(hines)i(lo)s(cated)f(in)g(this)f (zone.)40 b(An)m(y)25 b(other)h(comm)m(unication)j(initiated)d(b)m(y) 382 1179 y(mac)m(hines)36 b(in)e(zones)h(di\033eren)m(t)g(from)g(this)f (zone)h(to)g(mac)m(hines)g(in)g(the)g(presen)m(t)g(zone)382 1292 y(are)c(silen)m(tly)g(dropp)s(ed.)382 1524 y Fm(6.3.4)103 b(Reply)34 b(rules)382 1696 y Fl(Reply)24 b(rules)g(sp)s(eci\034es)g(a) g(sp)s(ecial)h(resp)s(onse)f(to)g(connection)i(attempts)f(to)f(the)h (\034rew)m(all)382 1809 y(itself,)37 b(b)s(efore)f(dropping)i(the)e (connection.)60 b(The)36 b(resp)s(onses)g(usually)g(mean)h(that)f(a)382 1922 y(p)s(ort)30 b(or)h(proto)s(col)g(is)f(not)g(a)m(v)-5 b(ailable)32 b(on)f(the)f(system.)382 2074 y Fd(h)p Fj(r)-5 b(eply)8 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(zone)7 b Fd(i)30 b(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)447 2187 y Fl(|)91 b Fd(h)p Fj(zone)7 b Fd(i)31 b Fl('tcp-reset')g('tcp')g Fd(h)p Fj(p)-5 b(ort)9 b Fd(i)31 b(h)p Fj(sr)-5 b(c_dst_ip)6 b Fd(i)382 2350 y Fl(The)29 b(\034rst)g(argumen)m(t)i(sp)s(eci\034es)e(the)g(resp)s(onse)g(to)g (the)g(connection)i(attempt.)41 b(The)29 b(2.)382 2463 y(argumen)m(t)j(serv)m(es)e(as)g(conditions)i(of)e(the)g(rule.)41 b(A)30 b(sp)s(ecial)g('tcp-reset')i(can)e(b)s(e)g(used,)382 2575 y(only)g(if)g(the)h(proto)s(col)g(is)f(sp)s(eci\034ed)h(as)f(tcp.) 382 2808 y Fm(Example)382 2954 y Fe(REPLY_AUTH="EXT)48 b(tcp-reset)i(tcp)j(auth)g(0.0.0.0/0=>0.0.)o(0.)o(0/)o(0")382 3100 y Fl(This)26 b(example)h(sp)s(eci\034es)f(that)h(queries)f(to)h (the)f(auth)h(daemon)g(should)g(b)s(e)f(resp)s(onded)382 3213 y(b)m(y)36 b Fe(tcp-reset)p Fl(.)55 b(Man)m(y)36 b(services)g(on)h(the)f(In)m(ternet)i(mak)m(es)e(an)h(auth)g(request)f (on)382 3326 y(hosts)27 b(that)h(mak)m(es)g(use)g(of)f(the)h(services.) 40 b(The)28 b(\034rst)f(line)h(sp)s(eeds)g(this)f(pro)s(cess)g(up)h(b)m (y)382 3439 y(resetting)j(the)g(connection,)h(instead)f(of)f(silen)m (tly)h(dropping)g(pac)m(k)m(ets.)382 3671 y Fm(6.3.5)103 b(Limit)35 b(rules)382 3843 y Fl(Limit)c(rules)e(serv)m(es)h(as)f(an)h (supplemen)m(t)h(to)f(input)g(and)h(forw)m(ard)f(rules.)41 b(Lin)m(ux)30 b(rules)382 3956 y(allo)m(ws)35 b(only)g(limited)g (acceptance)h(of)e(pac)m(k)m(ets,)j(used)e(in)f(order)h(to)g(a)m(v)m (oid)h Fj(Denial)g(of)382 4069 y(servic)-5 b(e)39 b Fl(attac)m(ks.)i (The)31 b(rules)f(are)h(on)f(the)h(form)g Fe()p Fl(,)c(as)j(giv)m(en)h(b)s(elo)m(w.)382 4221 y Fd(h)p Fj(r)-5 b(ate)7 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(int)9 b Fd(i)29 b(h)p Fj(r)-5 b(ate_opt)9 b Fd(i)382 4410 y(h)p Fj(r)-5 b(ate_opt)9 b Fd(i)32 b Fl(::=)46 b('/second')31 b(|)f('/min)m(ute')i(|)f('/hour')g(|)f('/da)m(y')i(|)e Fd(h)p Fj(empty)8 b Fd(i)382 4599 y(h)p Fj(burst)h Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(int)9 b Fd(i)382 4789 y(h)p Fj(limit)g Fd(i)29 b Fl(::=)46 b Fd(h)p Fj(zone)7 b Fd(i)31 b(h)p Fj(p)-5 b(olicy)8 b Fd(i)32 b(h)p Fj(r)-5 b(ate)7 b Fd(i)31 b(h)p Fj(burst)9 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)382 4951 y Fl(The)28 b Fe()d Fl(and)j Fe()c Fl(sp)s(eci\034es)k(the)g(maxim)m(um)h(a)m(v)m(erage)g(matc)m(hing)h (rate,)382 5064 y(and)i(the)g(initial)g(pac)m(k)m(ets)h(to)f(matc)m(h.) 45 b(The)33 b Fe()28 b Fl(sp)s(eci\034es)k(the)g(source)g(zone)g (for)382 5177 y(pac)m(k)m(ets)26 b(that)f(can)h(b)s(e)e(matc)m(hed)j(b) m(y)e(this)g(rule.)39 b(If)24 b(the)i(source)f(zone)h(equals)e(that)i (zone)382 5290 y(for)37 b(whic)m(h)i(the)f(rule)f(is)g(sp)s(eci\034ed,) j(then)e(the)g(rule)g(is)f(applied)h(for)f(requests)h(to)f(the)382 5403 y(\034rew)m(all)32 b(itself.)1831 5652 y(12)p eop end %%Page: 13 16 TeXDict begin 13 15 bop 382 548 a Fm(Example)382 695 y Fe(LIMIT_PING="EXT)48 b(DROP)k(1/second)f(3)j(icmp)f(echo-request)c (\\)382 808 y(0.0.0.0/0=>0.0.)o(0.)o(0/)o(0")382 955 y Fl(This)38 b(example)h(will)f(drop)h(ping's)f(arriving)h(faster)f (than)g(one)h(p)s(er)e(second,)k(with)d(a)382 1068 y(maxim)m(um)32 b(of)e(three.)382 1304 y Fk(6.4)112 b(Net)m(w)m(ork)36 b(address)j(translation)f(rules)382 1475 y Fl(The)32 b(net)m(w)m(ork)h(address)f(translation)h(rules)e(are)h(used)g(to)g (alter)g(either)g(the)g(source)g(or)382 1588 y(the)37 b(destination)g(of)f(a)h(pac)m(k)m(et.)60 b(This)36 b(can)h(b)s(e)f (used)h(to)f(redirect)i(requests)e(and)h(for)382 1701 y(masquerading.)382 1933 y Fm(6.4.1)103 b(Redirect)382 2105 y Fl(Redirect)30 b(rules)f(can)g(alter)h(the)g(destination)g(of)f (connection)i(attempts.)41 b(These)29 b(rules)382 2218 y(only)e(apply)g(pac)m(k)m(ets)h(originating)h(from)e(the)g(curren)m(t) h(zone.)40 b(Redirect)28 b(rules)f(are)g(sets)382 2331 y(of)j(rules)g(on)h(the)g(form)f Fe(redirect)d Fl(as)j(giv)m(en)h(b)s (elo)m(w.)382 2484 y Fd(h)p Fj(addr)-5 b(ess_opt)9 b Fd(i)32 b Fl(::=)46 b(',')30 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(addr)-5 b(ess_opt)9 b Fd(i)447 2597 y Fl(|)91 b Fd(h)p Fj(empty)8 b Fd(i)382 2786 y(h)p Fj(r)-5 b(e)g(dir_dest)9 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(addr)-5 b(ess_opt)9 b Fd(i)382 2976 y(h)p Fj(r)-5 b(e)g(dir)g(e)g(ct)9 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)31 b(h)p Fj(r)-5 b(e)g(dir_dest)9 b Fd(i)32 b(h)p Fj(p)-5 b(ort)9 b Fd(i)382 3140 y Fl(If)41 b(pac)m(k)m(ets)i(originating)g(from)f(the)h(curren)m (t)g(zone)g(matc)m(hes)g Fe()p Fl(,)d(then)382 3253 y(the)29 b(destination)h(of)f(the)g(pac)m(k)m(ets)h(are)f(c)m (hanged)i(to)e(the)g(destination)h(as)f(sp)s(eci\034ed)g(b)m(y)382 3365 y Fe()49 b()p Fl(.)36 b(If)26 b(a)h(range)h(of)e(ip)h(addresses)g(is)f(sp)s(eci\034ed)h(for)g(the)g (new)382 3478 y(destination,)g(then)e(redirection)h(will)g(b)s(e)e (done)h(to)g(eac)m(h)h(ip)e(in)h(a)g(round)g(robin)g(fashion.)382 3591 y(This)30 b(is)g(often)h(used)f(to)h(load)g(balance)g(serv)m(ers.) 382 3824 y Fm(Example)382 3971 y Fe(REDIRECT_SSH="t)o(cp)48 b(:22)53 b(10.0.0.1:22")382 4118 y Fl(This)30 b(will)h(redirect)h(an)m (y)e(ssh)g(queries)g(to)h(b)s(e)f(redirect)h(to)g(address)f(10.0.0.1.) 382 4350 y Fm(6.4.2)103 b(Masquerading/SNA)-9 b(T)382 4522 y Fl(Masquerading)37 b(is)f(used)g(when)h(no)f(public)h(net)m(w)m (ork)h(is)e(a)m(v)-5 b(ailable.)59 b(It)36 b(c)m(hanges)h(the)382 4635 y(source)f(ip)g(and)h(source)f(p)s(ort)g(of)g(an)m(y)g(pac)m(k)m (et)h(coming)g(from)f(this)g(zone.)58 b(The)36 b(rules)382 4748 y(are)31 b(sets)e(on)i(the)g(form)f Fe()d Fl(as)j(giv)m(en)i(b)s(elo)m(w.)382 4901 y Fd(h)p Fj(snat)9 b Fd(i)30 b Fl(::=)46 b(\()30 b Fd(h)p Fj(zone)j(name)7 b Fd(i)30 b Fl(|)h Fd(h)p Fj(ip)6 b Fd(i)30 b Fl(\))g Fd(h)p Fj(pr)-5 b(oto_p)g(ort_ip)6 b Fd(i)382 5064 y Fl(The)25 b Fe()22 b Fl(sp)s(eci\034es)i(the)g (destination)i(zone)e(of)g(the)h(pac)m(k)m(ets.)39 b(All)24 b(pac)m(k)m(ets)382 5177 y(originating)g(from)f(the)g(curren)m(t)i (zone)e(to)m(w)m(ard)i(the)e(sp)s(eci\034ed)g(zone)g(are)g (masqueraded,)382 5290 y(and)42 b(will)f(ha)m(v)m(e)h(their)g(source)g (address)f(c)m(hanged)i(to)e(the)h(ip)f(address)h(of)e(the)i(zone)382 5403 y(sp)s(eci\034ed,)31 b(in)f(a)g(round)i(robin)f(manner.)1831 5652 y(13)p eop end %%Page: 14 17 TeXDict begin 14 16 bop 382 548 a Fm(Example)382 732 y Fe(SNAT[0]="EXT)49 b(ALL)k(0.0.0.0/0=>0.0.)o(0.)o(0/0)o(")523 916 y Fl(In)43 b(this)g(example,)48 b(all)43 b(pac)m(k)m(ets)i(send)e (from)g(the)h(curren)m(t)h(zone)f(to)f(zone)h Fe(EXT)382 1029 y Fl(will)35 b(b)s(e)g(masqueraded,)i(and)e(the)g(source)g(of)g (the)g(pac)m(k)m(ets)h(will)f(b)s(e)g(c)m(hanged)h(to)f(the)382 1142 y(ip)i(of)g(zone)g Fe(EXT)p Fl(.)f(The)h(source)h(p)s(orts)e(will) i(b)s(e)e(c)m(hanged)j(to)e(b)s(e)g(with)g(in)g(the)h(range)382 1255 y Fc([32768)23 b Fd(\000)d Fc(65535])p Fl(.)382 1497 y Fk(6.5)112 b(Miscellaneous)40 b(rules)382 1669 y Fm(6.5.1)103 b(P)m(ac)m(k)m(et)36 b(marking)382 1841 y Fl(P)m(ac)m(k)m(et)28 b(marking)f(is)f(used)g(to)g(mark)g(pac)m(k)m (ets)i(going)e(through)i(the)e(\034rew)m(all.)41 b(This)26 b(can)382 1954 y(b)s(e)k(used)g(b)m(y)h(external)g(programs)g(suc)m(h)g (as)f(tra\036c)h(shaping.)523 2067 y(Rules)41 b(for)h(marking)h(is)e (sp)s(eci\034ed)i(through)g(an)f(arra)m(y)h Fe(MARK)p Fl(.)d(The)i(syn)m(tax)g(of)382 2179 y(mark)30 b(rules)h(are)g(sp)s (eci\034ed)f(b)s(elo)m(w)h(as)f Fe()p Fl(.)382 2377 y Fd(h)p Fj(mark_value)7 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(int)9 b Fd(i)382 2581 y(h)p Fj(mark)h Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(zone)7 b Fd(i)31 b(h)p Fj(mark_value)7 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)523 2789 y Fl(P)m(ac)m(k)m(ets)28 b(originating)g(from)e(the)g(curren)m(t)i(zone)e (destined)h(for)f(the)g(sp)s(eci\034ed)h(zone,)382 2902 y(and)21 b(that)f(matc)m(hes)i(the)f Fe(proto_ip)16 b Fl(are)21 b(mark)m(ed)g(with)g(the)g(v)-5 b(alue)20 b Fe()p Fl(.)382 3142 y Fm(Example)382 3326 y Fe(MARK[0]="ALL)49 b(1)54 b(tcp)f(ALL)g(0.0.0.0/0=>0.0.0)o(.0)o(/0)o (")382 3510 y Fl(This)37 b(rule)h(will)g(mark)f(an)m(y)h(pac)m(k)m(ets) g(lea)m(ving)g(the)g(curren)m(t)g(zone)g(with)g(mark)f(v)-5 b(alue)382 3623 y('1'.)382 3862 y Fm(6.5.2)103 b(T)-9 b(ra\036c)35 b(monitoring)382 4034 y Fl(This)h(rule)h(is)f(used)h(to)f (monitor)i(tra\036c)f(going)h(in)m(to)f(or)g(lea)m(ving)g(the)g(curren) m(t)h(zone.)382 4147 y(Monitored)31 b(pac)m(k)m(ets)h(are)e(logged)i (to)e(the)h(system)f(log)g(for)g(later)h(insp)s(ection.)523 4260 y(Monitoring)38 b(is)f(done)h(on)f(a)g(p)s(er)g(ip)g(basis.)61 b(Only)37 b(one)g(en)m(try)h(can)g(exist)e(and)i(is)382 4372 y(called)31 b Fe(WATCH_IP)p Fl(.)c(The)j(grammar)i(is)e(sp)s (eci\034ed)h(as)f Fe()p Fl(.)382 4570 y Fd(h)p Fj(watch_ip)6 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(watch_ip)6 b Fd(i)31 b Fl(|)f Fd(h)p Fj(empty)8 b Fd(i)382 4809 y Fm(Example)382 4993 y Fe(WATCH_IP=''10.0)o(.0)o(.1)48 b(10.0.0.2'')382 5177 y Fl(An)m(y)38 b(pac)m(k)m(et)h(going)g(in)m(to)f(or)h(lea)m(ving)f (the)h(curren)m(t)g(zone)g(either)f(destined)h(or)f(orig-)382 5290 y(inating)e(from)g(ip)g(address)f Fe(10.0.0.1)d Fl(or)k(ip)g(address)f Fe(10.0.0.2)d Fl(are)k(logged)g(to)382 5403 y(the)31 b(system)e(log.)1831 5652 y(14)p eop end %%Page: 15 18 TeXDict begin 15 17 bop 382 548 a Fm(6.5.3)103 b(Den)m(ying)34 b(comm)m(unication)g(to)h(MA)m(C)g(addresses)382 720 y Fl(Comm)m(unication)25 b(with)d(mac)m(hines)i(ha)m(ving)e(a)g(sp)s (eci\034c)g(MA)m(C)g(address)g(can)h(b)s(e)e(prohib-)382 832 y(ited.)39 b(Due)24 b(to)h(the)f(nature)i(of)d(Ethernet,)28 b(only)c(pac)m(k)m(ets)h(receiv)m(ed)h(from)e(the)h(o\033ending)382 945 y(mac)m(hine)32 b(can)f(b)s(e)f(prohibited.)523 1058 y(T)-8 b(o)21 b(prohibit)h(comm)m(unication)h(from)d(a)h(list)f(of)g (MA)m(C)g(addresses,)j(a)d(single)h(v)-5 b(ariable)382 1171 y Fe(MAC_DROP)26 b Fl(is)k(used.)41 b(The)31 b(grammar)g(is)f(sp)s (eci\034ed)h(as)f Fe(mac_drop)c Fl(b)s(elo)m(w.)382 1359 y Fd(h)p Fj(mac_dr)-5 b(op)6 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(mac_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(mac_dr)-5 b(op)6 b Fd(i)32 b Fl(|)e Fd(h)p Fj(empty)8 b Fd(i)382 1597 y Fm(Example)382 1774 y Fe(MAC_DROP=''12:2)o(3:)o(34)o(:4)o(5:)o (56:)o(67)o('')382 1950 y Fl(This)22 b(will)g(drop)g(all)g(pac)m(k)m (ets)h(originating)g(from)f(the)g(in)m(ternal)i(zone)e(from)g(the)g (mac)m(hine)382 2063 y(with)31 b(MA)m(C)f(address)h Fe(12:23:34:45:56)o (:6)o(7)p Fl(.)382 2301 y Fm(6.5.4)103 b(Den)m(ying)34 b(comm)m(unication)g(to)h(IP)f(addresses)382 2472 y Fl(T)-8 b(o)30 b(den)m(y)g(comm)m(unication)i(to)e(and)g(from)f(a)g(mac)m(hine) i(in)f(the)g(zone,)g(it)f(is)g(p)s(ossible)g(to)382 2585 y(sp)s(ecify)g(a)i(list)f(of)g(ip)g(addresses)h(whose)f(pac)m(k)m(ets)i (are)e(to)h(b)s(e)f(dropp)s(ed.)523 2698 y(This)43 b(is)g(sp)s (eci\034ed)h(b)m(y)g(the)f(v)-5 b(ariable)45 b Fe(IP_DROP)p Fl(.)40 b(The)k(grammar)g(is)f(sp)s(eci\034ed)382 2811 y(b)s(elo)m(w)31 b(as)f Fe()p Fl(.)382 2999 y Fd(h)p Fj(ip_dr)-5 b(op_alt)9 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(ip_dr)-5 b(op)6 b Fd(i)382 3200 y(h)p Fj(ip_dr)-5 b(op)6 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_dr)-5 b(op_alt)9 b Fd(i)31 b Fl(|)g Fd(h)p Fj(empty)8 b Fd(i)382 3438 y Fm(Example)382 3615 y Fe(IP_DROP=''10.0.)o(0.)o(10)o('')382 3791 y Fl(This)40 b(will)g(drop)g(all)g(comm)m(unication)j(to)c(and)h(from)g(a)g(mac)m (hine)h(with)g(ip)e(address)382 3904 y Fe(10.0.0.10)p Fl(.)382 4142 y Fm(6.5.5)103 b(Clearing)35 b(ECN)g(bits)f(from)g(pac)m (k)m(ets)382 4313 y Fl(Eexplicit)29 b(congestion)h(noti\034cation,)g (RF)m(C3168,)g(w)m(as)f(de\034ned)g(as)f(an)g(in)m(ternet)i(stan-)382 4426 y(dard)35 b(in)g(Septem)m(b)s(er)i(2001.)54 b(Unfortunatly)35 b(man)m(y)h(serv)m(ers)f(still)f(drops)h(all)g(pac)m(k)m(ets)382 4539 y(with)42 b(the)g(ECN)g(bits)f(set.)74 b(As)41 b(a)h(w)m (ork-arround)h(for)f(this)f(problem,)46 b(this)c(option)382 4652 y(allo)m(ws)30 b(the)f(sp)s(eci\034cation)h(of)e(a)h(list)g(of)g (serv)m(ers)g(that)g(do)s(es)g(not)g(accept)h(pac)m(k)m(ets)g(with)382 4765 y(the)h(ECN)f(bits)h(set,)f(and)h(clears)f(the)h(bits.)523 4878 y(The)21 b(list)f(of)g(serv)m(ers)h(is)f(sp)s(eci\034ed)h(b)m(y)f (the)h(v)-5 b(ariable)21 b Fe(ECN_REMOVE)p Fl(.)16 b(The)21 b(grammar)382 4991 y(is)30 b(sp)s(eci\034ed)g(b)s(elo)m(w)i(as)e Fe()p Fl(.)382 5179 y Fd(h)p Fj(ip_dr)-5 b(op_alt)9 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(ip_dr)-5 b(op)6 b Fd(i)382 5380 y(h)p Fj(e)-5 b(cn_r)g(emove)7 b Fd(i)34 b Fl(::=)46 b Fd(h)p Fj(ip_dr)-5 b(op_alt)9 b Fd(i)31 b Fl(|)f Fd(h)p Fj(empty)8 b Fd(i)1831 5652 y Fl(15)p eop end %%Page: 16 19 TeXDict begin 16 18 bop 382 548 a Fm(Example)382 696 y Fe(ECN_REMOVE=''10)o(.0)o(.0)o(.1)o(0')o(')382 845 y Fl(This)31 b(will)h(strip)f(o\033)g(the)h(ECN)f(bits)g(in)h(all)f (pac)m(k)m(ets)h(destined)g(to)f(the)h(mac)m(hine)h(with)382 958 y(ip)d(address)h Fe(10.0.0.10)p Fl(.)382 1237 y Fn(7)131 b(Example)43 b(setup)382 1440 y Fl(When)36 b(FIAIF)e(is)i(started,)h (it)f(reads)g Fe(/etc/fiaif/fiai)o(f.)o(con)o(f)p Fl(.)50 b(This)36 b(is)f(the)382 1553 y(global)24 b(con\034guration)h(\034le.) 38 b(It)22 b(de\034nes)i(the)f(zones)g(a)m(v)-5 b(ailable,)26 b(and)d(a)g(n)m(um)m(b)s(er)h(of)f(other)382 1665 y(global)28 b(settings,)f(suc)m(h)h(as)e Fj(typ)-5 b(e)30 b(of)f(servic)-5 b(e)35 b Fl(\(TOS\))28 b(settings,)g(references)f(to)g(reserv)m(ed)382 1778 y(and)k(priv)-5 b(ate)31 b(net)m(w)m(orks.)523 1891 y(The)h(default)h(\(the)f(sample)h(con\034guration)h(\034les,)e(see)g (app)s(endix)g(B)g(on)g(page)g(20\))382 2004 y(sets)45 b(up)g(an)h(external)g(zone)g(EXT,)g(whic)m(h)h(is)e(y)m(our)h(In)m (ternet)h(connection.)87 b(T)-8 b(w)m(o)382 2117 y(additional)39 b(zone)e(con\034guration)j(\034les)d(are)g(pro)m(vided:)56 b(an)37 b(in)m(ternal)i(zone,)h Fj(INT)p Fl(,)c(to)382 2230 y(describ)s(e)28 b(y)m(our)g(priv)-5 b(ate)28 b(net)m(w)m(ork,)i (and)e(a)g(demilitarized)h(zone,)g Fj(DMZ)p Fl(,)f(to)g(describ)s(e)f (a)382 2343 y(zone)f(in)f(whic)m(h)i(serv)m(ers)e(accessable)h(from)g (the)f(in)m(ternet)i(are)f(lo)s(cated.)39 b(In)25 b(the)h(default)382 2456 y(con\034guration)32 b(neither)g(are)e(used.)382 2689 y Fm(The)35 b(default)g(setup)g(of)f(the)h(External)g(zone)518 2837 y Fd(\017)46 b Fl(A)m(ccepts)31 b(dns)f(queries,)h(ssh,)f(h)m (ttp,)h(h)m(ttps)g(and)g(icmp-ping.)518 3009 y Fd(\017)46 b Fl(Limits)31 b(ping)g(to)g(1)f(p)s(er)g(sec,)g(with)h(a)g(start-v)-5 b(alue)31 b(of)f(3.)518 3181 y Fd(\017)46 b Fl(Close)31 b(comm)m(unication)i(with)e Fj(TCP-RESET)41 b Fl(on)31 b(authorization)h(requests.)382 3414 y Fm(The)j(default)g(setup)g(of)f (the)h(in)m(ternal)g(zone)518 3562 y Fd(\017)46 b Fl(Allo)m(ws)31 b(all)g(connections)g(from)g(this)f(zone)h(to)f(the)h(\034rew)m(all.) 518 3734 y Fd(\017)46 b Fl(Redirects)31 b(all)f(h)m(ttp)i(requests)e (to)g(a)h(transparen)m(t)h(pro)m(xy)-8 b(.)518 3906 y Fd(\017)46 b Fl(A)m(dds)26 b(Masquerading/NA)-8 b(T)26 b(for)f(all)h(connections)h(going)f(out)f(on)h(the)g(external)609 4019 y(in)m(terface.)518 4191 y Fd(\017)46 b Fl(Disallo)m(ws)35 b(an)m(y)g(new)g(pac)m(k)m(ets)h(from)f(an)m(y)f(other)i(zones)e (\(already)i(established)609 4304 y(connections)c(are)f(automatically)h (let)e(though\))382 4536 y Fm(The)35 b(default)g(setup)g(of)f(the)h (demilitarized)g(zone)518 4685 y Fd(\017)46 b Fl(A)m(ccept)31 b(www)g(and)g(h)m(ttps)g(requests)f(from)h(the)f(external)h(zone)g (\(In)m(ternet\).)518 4857 y Fd(\017)46 b Fl(No)35 b(comm)m(unication)j (with)d(the)h(\034rew)m(all)g(itself)f(is)g(allo)m(w)m(ed.)56 b(The)36 b(idea)f(b)s(eing)609 4970 y(that)26 b(a)f(crac)m(k)m(er's)i (gaining)g(access)e(to)g(a)h(mac)m(hine)h(in)e(the)h(DMZ,)f(do)s(es)g (not)h(p)s(ose)609 5083 y(a)31 b(securit)m(y)g(risk)e(for)h(an)m(y)h (other)g(zones)g(or)f(for)g(the)h(\034rew)m(all)h(itself.)518 5255 y Fd(\017)46 b Fl(A)m(ccept)24 b(only)f(ssh)g(from)g(the)h(in)m (ternal)g(zone.)39 b(This)23 b(w)m(a)m(y)h(mac)m(hines)h(in)e(the)h (DMZ)609 5368 y(can)31 b(b)s(e)f(administered.)1831 5652 y(16)p eop end %%Page: 17 20 TeXDict begin 17 19 bop 382 548 a Fn(8)131 b(Related)43 b(w)l(ork)382 751 y Fl(Man)m(y)29 b(to)s(ols)g(exists)f(to)h(help)g (setup)h(a)e(\034rew)m(all,)j(and)f(create)g(the)f(rules)g(necessary)g (for)382 864 y(Lin)m(ux.)41 b(In)30 b(general,)i(these)e(to)s(ols)g (can)h(b)s(e)f(categorized)i(in)m(to)g(t)m(w)m(o)f(ma)5 b(jor)31 b(categories:)382 1076 y Fm(Sp)s(eci\034c)j(to)s(ols:)45 b Fl(Man)m(y)31 b(\034rew)m(all)g(scripts)f(help)h(the)f(user)g(to)g (setup)g(a)g(\034rew)m(all)i(for)d(a)609 1189 y(sp)s(ecial)36 b(purp)s(ose.)57 b(These)37 b(to)s(ols)e(con)m(tain)j(no)e(or)g(v)m (ery)g(little)g(lev)m(el)h(of)f(con\034g-)609 1302 y(uration,)h(as)e (they)g(are)g(made)g(with)g(a)g(simple)g(purp)s(ose)g(in)g(mind.)55 b(Examples)609 1415 y(are)37 b(scripts)g(that)h(sets)e(up)h(a)g (masquerading)h(\034rew)m(all)h(with)e(only)g(one)g(in)m(ter-)609 1528 y(nal)d(net)m(w)m(ork.)53 b(Con\034guration)36 b(is)d(mainly)h (done)h(b)m(y)f(c)m(hanging)h(in)f(the)g(source)609 1641 y(co)s(de)28 b(\(usually)g(accompanied)h(with)g(go)s(o)s(d)e(commen)m (ts)i(of)e(where)i(and)f(what)g(to)609 1754 y(c)m(hange\).)42 b(These)29 b(scripts)f(are)h(usually)g(targeted)g(for)g(the)g(mass)f (public,)i(where)609 1867 y(a)g(\034rew)m(all)i(protects)f(a)g(single)f (home)h(LAN)f(from)g(attac)m(ks)h(from)g(the)f(In)m(ternet.)382 2054 y Fm(Generic)k(to)s(ols:)46 b Fl(T)-8 b(o)s(ols)31 b(that)g(are)g(extensible)g(and)h(not)f(limited)g(to)g(a)g(sp)s (eci\034c)g(net-)609 2167 y(w)m(ork)f(setup)f(fall)h(in)m(to)g(this)f (category)-8 b(.)41 b(Setup)30 b(is)f(usually)g(done)h(with)g(no)f(mo)s (d-)609 2280 y(i\034cations)k(to)f(the)g(source)g(co)s(de,)h(and)f (users)f(are)i(required)f(to)g(ha)m(v)m(e)h(extensiv)m(e)609 2393 y(kno)m(wledge)f(of)e(net)m(w)m(ork)i(setup)f(and)f(securit)m(y)h (issues.)382 2606 y(Hundreds)26 b(of)f(scripts)g(that)h(fall)f(in)m(to) h(the)g Fj(sp)-5 b(e)g(ci\034c)29 b(to)-5 b(ols)33 b Fl(exists,)26 b(while)g(only)f(v)m(ery)h(few)382 2718 y(are)31 b(generic)g(to)s(ols.)40 b(Of)30 b(these)h(can)f(b)s(e)g (named:)382 2931 y Fm(Shorew)m(all:)45 b Fl(Shorew)m(all[3)r(])32 b(seems)f(to)g(b)s(e)g(the)g(most)h(attractiv)m(e)h(alternativ)m(e)g (to)e(FI-)609 3044 y(AIF.)36 b(The)g(term)h(zones)f(are)h(also)f(used)g (in)h(this)f(pro)s(duct.)59 b(Con\034guration)38 b(is)609 3157 y(said)32 b(the)g(b)s(e)g(somewhat)h(more)f(di\036cult)h(than)g (FIAIF,)e(and)h(con\034guration)i(is)609 3270 y(not)d(split)f(in)m(to)i (zone)f(con\034guration)h(\034les.)382 3457 y Fm(Mandrak)m(e:)47 b(Multi)35 b(Net)m(w)m(ork)g(Firew)m(all:)46 b Fl(This)g(commercial)i (\034rew)m(all[6)r(])e(sup-)609 3570 y(p)s(orts)29 b(de\034nitions)h (of)f(m)m(ultiple)i(securit)m(y)f(zones,)f(supp)s(ort)g(for)g(virtual)h (priv)-5 b(ate)609 3683 y(net)m(w)m(orks)37 b(\(VPN\),)g (con\034gurable)g(through)g(a)f(w)m(eb)h(in)m(terface.)58 b(The)37 b(pro)s(duct)609 3796 y(is)g(commercial,)j(and)d(costs)g(in)g (the)g(area)h(of)e($2000.)61 b(As)36 b(Mandrak)m(esoft)i(has)609 3909 y(\034led)e(for)f(bankruptcy)-8 b(,)38 b(the)d(stabilit)m(y)h(in)g (using)f(this)g(commercial)i(\034rew)m(all)g(is)609 4022 y(somewhat)32 b(questionable.)1831 5652 y(17)p eop end %%Page: 18 21 TeXDict begin 18 20 bop 382 548 a Fn(9)131 b(Status)382 751 y Fl(The)21 b(\034rew)m(all)i(setup)e(to)s(ol)g(describ)s(ed)h(in)f (this)g(pap)s(er)g(is)g(under)h(constan)m(t)g(dev)m(elopmen)m(t.)382 864 y(It)29 b(has)g(b)s(een)g(dev)m(elop)s(ed)h(under)g(the)f(terms)h (of)e(the)i(Gn)m(u)f(public)h(license,)g(and)g(is)f(free)382 977 y(of)d(use)h(for)f(ev)m(ery)m(one.)41 b(Qualit)m(y)28 b(is)e(assured)h(through)h(man)m(y)f(users,)h(who)f(rep)s(ort)g(bac)m (k)382 1090 y(problems)34 b(and)f(incon)m(v)m(eniences.)51 b(As)32 b(of)g(no)m(w)i(the)g(\034rew)m(all)g(is)f(b)s(eing)g(bundled)h (with)382 1202 y(the)g(P)m(olish)g(Lin)m(ux)g(distribution,)i(and)d(is) g(curren)m(tly)i(b)s(eing)f(tested)f(for)g(inclusion)h(in)382 1315 y(Debian[1)q(].)382 1602 y Fn(10)131 b(F)-11 b(urther)44 b(w)l(ork)382 1805 y Fl(Con\034guring)27 b(b)m(y)e(c)m(hanging)j (directly)d(in)h(the)g(con\034guration)h(\034les)e(using)h(an)f(editor) h(re-)382 1918 y(quires)21 b(the)h(users)f(sp)s(eci\034c)h(kno)m (wledge)h(of)e(rule)h(and)g(con\034guration)i(syn)m(tax.)37 b(Creating)382 2031 y(a)30 b(user)h(in)m(terface)g(\(graphical)h(or)f (text)f(mo)s(de\),)h(migh)m(t)g(eliminate)h(suc)m(h)f(problems.)1831 5652 y(18)p eop end %%Page: 19 22 TeXDict begin 19 21 bop 382 548 a Fn(References)382 751 y Fl([1])46 b(Debian.)523 864 y(h)m(ttp://www.debian.org.)382 1051 y([2])g(Net\034lter.)523 1164 y(h)m(ttp://www.net\034lter.org.)382 1352 y([3])g(Shorew)m(all.)523 1465 y(h)m(ttp://www.shorew)m(all.net.) 382 1652 y([4])g(Osk)-5 b(ar)30 b(Andreasson.)41 b(Iptables)30 b(tutorial.)523 1765 y(h)m(ttp://iptables-tutorial.frozen)m (tux.net/ipt)q(ables-tut)q(orial.)q(h)m(tm)q(l.)382 1953 y([5])46 b(Anders)30 b(F)-8 b(ugmann.)42 b(Fiaif)30 b(is)g(an)h(in)m (telligen)m(t)i(\034rew)m(all.)523 2066 y(h)m(ttp://www.\034aif.net.) 382 2254 y([6])46 b(Mandrak)m(esoft.)41 b(Multi)30 b(net)m(w)m(ork)i (\034rew)m(all.)523 2366 y(h)m(ttp://www.mandrak)m(esoft.com/pro)s (ducts/mnf.)1831 5652 y(19)p eop end %%Page: 20 23 TeXDict begin 20 22 bop 382 548 a Fn(A)132 b(Usage)382 751 y Fl(FIAIF)22 b(installs)i(a)g(program)h(in)f Fe(/etc/init.d/fi)o (ai)o(f)p Fl(,)19 b(whic)m(h)25 b(is)e(used)h(to)g(con)m(trol)382 864 y(the)41 b(\034rew)m(all.)74 b(The)41 b(program)h(should)f(only)g (b)s(e)g(started)g(b)m(y)g(the)h Fj(r)-5 b(o)g(ot)50 b Fl(user.)72 b(The)382 977 y(program)31 b(accepts)g(the)g(follo)m (wing)h(argumen)m(ts.)382 1189 y Fb(start)p Fm(:)43 b Fl(This)23 b(will)h(sa)m(v)m(e)f(the)h(curren)m(t)h(\034rew)m(all)g (rules,)f(and)g(deplo)m(ys)g(the)f(new)h(\034rew)m(all)609 1302 y(as)30 b(describ)s(ed)h(b)m(y)g(the)f(con\034guration)j(\034les.) 382 1490 y Fb(stop)p Fm(:)43 b Fl(Remo)m(v)m(e)28 b(all)e(\034rew)m (all)i(rules,)g(and)e(restores)h(previously)f(sa)m(v)m(ed)h(\034rew)m (all)h(rules.)609 1603 y(This)j(can)f(only)h(b)s(e)f(used)g(if)g(the)h (\034rew)m(all)h(has)e(b)s(een)g(previously)h(started.)382 1790 y Fb(force-reload)p Fm(:)40 b Fl(This)20 b(option)h(is)f(the)h (same)f(as)g(start,)j(although)f(it)e(can)h(b)s(e)f(in)m(v)m(ok)m(ed) 609 1903 y(without)32 b(stopping)f(the)f(\034rew)m(all)i(\034rst.)382 2091 y Fb(restart)p Fm(:)42 b Fl(This)24 b(option)h(stops)f(and)h(then) f(restarts)h(the)f(\034rew)m(all.)40 b(Refer)24 b(to)g(starting)609 2204 y(and)31 b(stopping)g(FIAIF.)382 2391 y Fb(panic)p Fm(:)43 b Fl(Sh)m(ut)c(o\033)e(all)h(IP)f(tra\036c)h(-)g(do)g(not)g (accept)g(an)m(y)g(pac)m(k)m(ets)g(from)g(an)m(ywhere)609 2504 y(for)43 b(an)m(y)f(reason.)78 b(This)43 b(can)g(b)s(e)f(used,)k (for)c(example,)47 b(if)42 b(unin)m(vited)i(guests)609 2617 y(are)e(disco)m(v)m(ered)h(on)f(the)g(system)g(to)f(quic)m(kly)h (close)g(the)g(\034rew)m(all)h(and)f(start)609 2730 y(analyzing)31 b(log)g(\034les.)382 2918 y Fb(status)p Fm(:)42 b Fl(Lists)31 b(all)f(rules)h(in)f(the)h(\034rew)m(all.)382 3105 y Fb(test)p Fm(:)43 b Fl(Chec)m(k)d(the)g(rules)f(in)h(the)f (con\034guration)j(\034les.)67 b(All)39 b(rules)g(are)h(written)g(to) 609 3218 y(the)35 b(\034le)g(sp)s(eci\034ed)g(in)g(the)g Fe(TEST_FILE)30 b Fl(parameter)36 b(in)f(the)g(global)g(con\034gu-)609 3331 y(ration)k(\034le.)65 b(This)38 b(can)h(b)s(e)f(useful)g(to)g(see) g(that)h(the)g(syn)m(tax)f(of)g(the)h(rules)f(is)609 3444 y(correct)43 b(b)s(efore)f(deplo)m(ying)h(the)f(\034rew)m(all.)76 b(An)m(y)42 b(errors)g(will)g(b)s(e)g(written)g(to)609 3557 y Fe(stdout)p Fl(.)36 b(Besides)26 b(testing,)h(it)e(also)h(runs)f (a)h(sanit)m(y)g(c)m(hec)m(k)h(on)e(the)h(net)m(w)m(orking)609 3670 y(con\034guration.)382 3956 y Fn(B)132 b(Con\034guration)43 b(\034les)382 4159 y Fl(Con\034guration)23 b(\034les)f(are)f(placed)i (under)f Fe(/etc/fiaif)16 b Fl(b)m(y)22 b(the)f(default)h (installation.)382 4403 y Fk(B.1)112 b(\034aif.conf)382 4519 y Fa(##########################################################)o (########)o(#########)o(####)382 4578 y(#)30 b(FIAIF)f(global)g (configuration)g(file.)382 4636 y(#)h(Version)f($Id:)g(fiaif.conf,v)g (1.37)g(2003/05/24)g(22:50:51)g(afu)h(Exp)f($)382 4694 y(##########################################################)o (########)o(#########)o(####)382 4810 y(##)h(Reserved)f(\(illegal\))f (and)i(private)f(networks)382 4868 y(##)h(See:)f(www.iana.com)382 4926 y(RESERVED_NETWORKS=reserved_networks)382 4984 y (PRIVATE_NETWORKS=private_networks)382 5101 y (LOOPBACK_NET="127.0.0.1/255.0.0.0")382 5159 y (SERVICES="/etc/services")382 5275 y (##########################################################)o(########) o(#########)o(####)382 5333 y(#)h(Search)f(path)g(for)h(binaries)382 5391 y(##########################################################)o (########)o(#########)o(####)1831 5652 y Fl(20)p eop end %%Page: 21 24 TeXDict begin 21 23 bop 382 548 a Fa (BIN_PATH=/sbin:/usr/sbin:/usr/local/sbin)382 664 y (##########################################################)o(########) o(#########)o(####)382 722 y(#)30 b(User)f(configurable)g(parameters) 382 780 y(##########################################################)o (########)o(#########)o(####)382 897 y(##)h(Activate)f(fiaif?)382 955 y(##)h(Set)f(this)h(VARIABLE)f(to)g(0)h(or)g(delete)f(the)g(line)h (to)g(enable)f(FIAIF.)382 1013 y(DONT_START=1)382 1129 y(##)h(Configuration)e(directory.)h(All)g(configuration)g(files)g(are)h (read)f(from)g(this)382 1187 y(##)h(directory.)382 1245 y(CONF_DIR=/etc/fiaif/)382 1362 y(##)g(Zone)f(names.)g(Only)h(these)f (zones)g(are)h(used.)382 1420 y(##)g(You)f(must)h(have)f(a)h (CONF_)e(entry)i(for)f(each)h(below.)382 1478 y(ZONES="EXT)f (INT")382 1594 y(##)h(Zone)f(cofiguration)g(files.)382 1652 y(##)h(The)f(files)g(are)h(expected)f(to)h(be)f(found)h(in)f (CONF_DIR)382 1710 y(##)h(Use:)f(CONF_XXX=)382 1768 y(CONF_INT=zone.int)382 1826 y(CONF_EXT=zone.ext)382 1885 y(CONF_DMZ=zone.dmz)382 2001 y(##)h(Use)f(iptables-save)g(and)g (iptables)g(restore)g(to)h(speed)f(up)382 2059 y(##)h(Startup)f (scripts.)g(You)g(should)g(leave)h(this)f(setting)g(to)h(0.)382 2117 y(##)g(Use:)f(SAVE_STATE=0|1)382 2175 y(SAVE_STATE=1)382 2291 y(##)h(Change)f(values)g(in)h(/proc/sys/net/)1400 2300 y(*)382 2350 y(##)g(When)f(issuing)g(a)h('fiaif)f(test')g(a)h (list)g(of)f(errors)h(and)f(warnings)g(are)h(displayed.)382 2408 y(##)g(The)f(SET_PROC_ERRORS,)f(specifies)h(that)h(FIAIF)f(should) g(correct)g(the)h(errors,)f(and)382 2466 y(##)h(The)f (SET_PROC_WARNINGS,)f(specifies)h(that)g(FIAIF)h(should)f(correct)g (the)g(warnings.)382 2524 y(##)h(SET_PROC_ERRORS=<0|1>)382 2582 y(##)g(SET_PROC_WARNINGS=<0|1>)382 2640 y(SET_PROC_ERRORS=1)382 2698 y(SET_PROC_WARNINGS=0)382 2814 y(##)g(Enable)f(TC)g(for)h(any)g (zone.)382 2873 y(##)g(Overrides)e(ENABLE_TC)h(in)h(zone)f (configurations.)382 2931 y(##)h(Use:)f(ENABLE_TC=<0|1>)382 2989 y(ENABLE_TC=0)382 3105 y(##)h(File)f(to)h(which)f(commands)g(are)h (written)f(when)g(making)g(a)h(test.)382 3163 y(##)g(TEST_FILE=)382 3221 y(TEST_FILE="/tmp/fiaif.out")382 3337 y(##)i(If)f(set)h(to)f(one)h(the)g(default)f(policy)g(of)h(all)f (standard)g(chains)g(\(input,)g(output)382 3396 y(##)h(and)f(forward\)) g(will)h(be)f(to)h(ACCEPT)f(unmatched)g(packets.)382 3454 y(##)h(If)f(set)h(to)f(zero,)h(the)f(policy)h(will)f(be)h(to)f (DROP)h(these)f(packets,)g(which)g(should)382 3512 y(##)h(be)f(the)h (default.)382 3570 y(##)g(DEBUG=<0|1>)382 3628 y(DEBUG=0)382 3744 y(##)g(Set)f(to)h(one,)f(to)h(enable)f(logging)g(via)h(ulogd.)382 3802 y(##)g(You)f(need)h(to)f(have)h(the)f(ulogd)h(installed,)e(to)i (enable)f(this)h(functionality)382 3861 y(##)g(Note:)f(does)g(not)h (work)f(correctly)g(with)h(kernel)f(2.4.18.)382 3919 y(##)h(ENABLE_ULOGD=<0|1>)382 3977 y(ENABLE_ULOG=0)382 4093 y(##)g(Set)f(to)h(one)f(if)h(dropped)f(or)h(rejected)f(packets)g (should)g(be)h(logged.)382 4151 y(##)g(VERBOSE=<0|1>)382 4209 y(VERBOSE=1)382 4325 y(##)g(Prefix)f(to)g(pre-pend)g(to)h(log)g (messages)382 4384 y(##)g(Use:)f(LOG_PREFIX="FIAIF_")382 4442 y(##)89 b(This)30 b(will)f(cause)h(log)f(messages)g(to)h(have)f ([FIAIF_DROP])g(or)g([FIAIF_MARTIAN])g(\(etc\))382 4500 y(##)89 b(as)30 b(their)f(marker)382 4558 y(LOG_PREFIX="FIAIF_")382 4674 y(##)h(Limit)f(the)g(number)h(of)f(log-messages)g(when)g(packets)g (are)h(dropped.)382 4732 y(##)g(Lower)f(to)h(avoid)f(spamming)g(the)g (logs.)382 4790 y(##)h(Use:)f(LOG_LEVEL=)382 4848 y(##)h(Use:)f(LOG_LIMIT=)382 4907 y(##)h(Use:)f (LOG_BURST=)382 4965 y(##)89 b(LEVEL)30 b(:)f(defines)h(the)f (level)g(\(or)h(priority\))f(of)h(the)f(logged)382 5023 y(##)328 b(messages)29 b(-)h(See)g(syslog.conf\(5\))e(for)i(more)382 5081 y(##)328 b(If)30 b(ulog)g(is)f(enabled,)g(the)h(value)f(must)h(be) f(in)h(the)f(range)382 5139 y(##)179 b(1..32)382 5197 y(##)89 b(LIMIT)30 b(:)f(Maximum)59 b(average)30 b(matching)f(rate:)g (specified)g(as)g(a)h(number,)382 5255 y(##)328 b(with)30 b(an)g(optional)f('/second',)f('/minute',)h('/hour',)g(or)h('/day')382 5313 y(##)328 b(suffix.)382 5372 y(##)89 b(BURST)30 b(:)f(Maximum)59 b(initial)g(number)h(of)29 b(packets)g(to)h(match:)f(this)1831 5652 y Fl(21)p eop end %%Page: 22 25 TeXDict begin 22 24 bop 382 548 a Fa(##)328 b(number)30 b(is)f(incrementedby)g(one)g(every)h(time)59 b(the)g(limit)382 606 y(##)328 b(specified)59 b(above)30 b(is)f(not)h(reached,)f(up)g(to) h(this)g(number.)382 664 y(LOG_LEVEL=CRIT)382 722 y (LOG_LIMIT=10/minute)382 780 y(LOG_BURST=10)382 897 y(##)g(Load)f (modules)g(upon)h(starting)f(the)g(firewall.)g(The)h(modules)f(will)g (be)382 955 y(##)h(unloaded,)e(when)i(the)f(firewall)g(is)h(stopped.) 382 1013 y(##)g(MODULES=[module_name])1102 1022 y(*)382 1071 y(MODULES="ip_nat_ftp")382 1187 y(##)g(The)f(following)g(lines)g (allows)h(users)f(specified)g(commands)g(to)382 1245 y(##)h(be)f(executed)g(before)g(and)h(after)f(FIAIF)h(is)f (started/stopped.)382 1303 y(##)h(This)f(can)h(be)f(used)h(to)f(e.g.)h (insert)f(additional)g(rules)g(for)h(traffic)f(counters,)382 1362 y(##)h(And)f(then)h(save/restore)e(these.)382 1420 y(##)i(Use:)382 1478 y(##)89 b (__SCTIPT[N]=)382 1594 y(#PRE_START_SCRIPT[0]="")382 1652 y(#PRE_START_SCRIPT[1]="")382 1710 y(#POST_START_SCRIPT[0]="")382 1768 y(#POST_START_SCRIPT[1]="")382 1885 y(#PRE_STOP_SCRIPT[0]="")382 1943 y(#PRE_STOP_SCRIPT[1]="")382 2001 y(#POST_STOP_SCRIPT[0]="")382 2059 y(#POST_STOP_SCRIPT[1]="")382 2175 y(##)k(Specify)f(localtion)g(of)g("Type)h(Of)f(Services")g(file.) 382 2233 y(##)h(This)f(can)h(either)f(be)g(empty)h(or)f(a)h(file.)382 2291 y(TOS_FILE=type_of_services)382 2408 y(##)g(Specify)f(aliases)g (file.)382 2466 y(##)h(In)f(this)h(file,)f(aliases)g(for)h(IP)f (numbers)g(can)h(be)g(specified.)382 2524 y(ALIASES=aliases)382 2767 y Fk(B.2)112 b(reserv)m(ed_net)m(w)m(orks)382 2898 y Fa(#)30 b($Id:)f(reserved_networks,v)f(1.36)h(2010/06/10)g(21:48:23)g (afu)h(Exp)f($)382 3015 y(#)h(This)f(file)h(contains)f(a)g(list)h(of)f (networks)g(reserved)g(by)h(IANA.)382 3073 y(#)g(The)f(list)h(can)f(be) h(found)f(at:)382 3131 y(#)89 b (http://www.iana.org/assignments/ipv4-address-space)382 3189 y(#)30 b(For)f(additional)g(information)g(see)g(RFC3330)382 3305 y(0.0.0.0/8)382 3363 y(5.0.0.0/8)382 3421 y(23.0.0.0/8)382 3479 y(36.0.0.0/7)382 3538 y(39.0.0.0/8)382 3596 y(42.0.0.0/8)382 3654 y(49.0.0.0/8)382 3712 y(100.0.0.0/6)382 3770 y(104.0.0.0/7)382 3828 y(106.0.0.0/8)382 3886 y(127.0.0.0/8)382 3944 y(169.254.0.0/16)382 4002 y(179.0.0.0/8)382 4061 y(185.0.0.0/8)382 4119 y(192.0.2.0/24)382 4177 y(198.18.0.0/15)382 4235 y(223.0.0.0/8)382 4293 y(240.0.0.0/4)382 4536 y Fk(B.3)112 b(priv)-6 b(ate_net)m(w)m(orks)382 4667 y Fa(#)30 b($Id:)f(private_networks,v)f(1.3)i(2003/02/13)e (22:15:11)h(afu)h(Exp)f($)382 4784 y(#)h(This)f(file)h(contains)f(the)g (list)h(of)f(all)h(networks)382 4842 y(#)g(reserved)f(for)g(private)g (use.)382 4900 y(#)h(Please)f(see)g(RFC1918)h(for)f(details.)382 5016 y(10.0.0.0/8)382 5074 y(127.0.0.0/8)382 5132 y(172.16.0.0/12)382 5191 y(192.168.0.0/16)1831 5652 y Fl(22)p eop end %%Page: 23 26 TeXDict begin 23 25 bop 382 548 a Fk(B.4)112 b(t)m(yp)s(e_of_services) 382 677 y Fa(##)30 b(Set)f(Type)h(of)f(services)g(fields)g(on)h(some)g (packages)f(from)g(the)h(server.)382 735 y(##)g(These)f(values)g(are)h (based)f(on)h(RFC)f(1060/1349.)382 793 y(##)h(Note)f(that)g(ssh)h (automatically)e(sets)i(the)f(TOS)h(value.)382 910 y(##)g(The)f(syntax) g(is:)382 968 y(##)h(TOS_FOO=")h()g([)h(any)f(|)h (port[,port])1967 977 y(*)2026 968 y(|)g(ICMP)f(type)g(specifier)g(]") 382 1026 y(##)h(Where:)382 1084 y(##)89 b(TOS_type)29 b(is:)h(Minimize-Delay|Maximize-Throughput|)382 1142 y(##)478 b(Maximize-Reliability|Minimize-Cost|)382 1200 y(##)g(Normal-Service)382 1258 y(##)89 b(protocol)29 b(is:)h(Any)f(protocol)g(specified)g(in)h(/etc/protocols,)382 1316 y(##)478 b(or)30 b(a)f(protocol)g(number)382 1375 y(##)89 b(port)30 b(specification)e(is)i(either:)382 1433 y(##)89 b(-)30 b(any:)g(matching)f(any)g(packet)g(with)h(the)f (specified)g(protocol.)382 1491 y(##)478 b(-)30 b(A)f(list)h(of)g (ports,)f(if)g(TCP)h(or)g(UDP)f(is)h(specified.)382 1549 y(##)478 b(-)30 b(An)f(ICMP)h(type)f(or)h(number,)f(if)h(the)f (protocol)g(is)h(ICMP.)382 1723 y (TOS_MINIMIZE_DELAY_TCP="Minimize-Delay)c(tcp)j(ftp,telnet")382 1781 y(TOS_MAXIMIZE_THROUGHPUT_TCP="Maximize-Throughput)24 b(tcp)30 b(ftp-data,smtp,imap,imaps,pop3,pop3s,cvspserver,rsync")382 1840 y(TOS_MAXIMIZE_RELIABILITY_TCP="Maximize-Reliability)24 b(tcp")382 1898 y(TOS_MINIMIZE_COST_TCP="Minimize-Cost)i(tcp)j(nntp") 382 1956 y(TOS_NORMAL_SERVICE_TCP="Normal-Service)d(tcp)j(www,https") 382 2072 y(TOS_MINIMIZE_DELAY_UDP="Minimize-Delay)d(udp)j (domain,ntp,tftp")382 2130 y (TOS_MAXIMIZE_THROUGHPUT_UDP="Maximize-Throughput)24 b(udp")382 2188 y(TOS_MAXIMIZE_RELIABILITY_UDP="Maximize-Reliability)g (udp")382 2246 y(TOS_MINIMIZE_COST_UDP="Minimize-Cost)i(udp)j(snmp")382 2304 y(TOS_NORMAL_SERVICE_UDP="Normal-Service)d(udp)j(bootps,bootpc") 382 2421 y(TOS_MAXIMIZE_RELIABILITY_IGMP="Maximize-Reliability)24 b(igmp)30 b(any")382 2479 y(TOS_NORMAL_SERVICE_EGP="Normal-Service)c (egp)j(any")382 2722 y Fk(B.5)112 b(zone.ext)382 2839 y Fa(##########################################################)o (########)o(#########)o(###)382 2897 y(##)30 b(Example)f(zone)g (configuration)g(file.)382 2955 y(##)h(Read)f(all)h(configuration)e (parameters,)h(and)g(modify)g(to)h(suit)g(your)f(needs.)382 3013 y(##########################################################)o (########)o(#########)o(###)382 3130 y(##)h(A)f(sample)h(zone)f (configuration)f(to)i(control)f(traffic)g(to)h(the)g(internet)382 3246 y(##)g(Name)f(of)h(the)f(zone.)h(Must)f(match)g(the)h(name)f(in)h (fiaif.conf.)382 3304 y(NAME=EXT)382 3362 y(##)g(Network)f(interface)g (name)382 3420 y(DEV=eth0)382 3536 y(##)h(DYNAMIC:)148 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(can)f(change)h(during)f (operation)g(or)382 3595 y(##)418 b(if)30 b(the)f(IP)h(address)f(is)h (unknown)f(when)g(fiaif)h(is)f(started.)382 3653 y(##)h(GLOBAL:)178 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(if)f(this)h(zone)f(connects)g (you)h(to)f(the)382 3711 y(##)418 b(internet.)29 b(Set)h(to)f(zero)h (for)f(private)g(networks.)382 3769 y(DYNAMIC=1)382 3827 y(GLOBAL=1)382 3943 y(##)h(Network)f(information.)f(Nessesary)h(only)h (if)f(DYNAMIC=0)382 4001 y(#IP=80.196.xxx.xxx)382 4059 y(#MASK=255.255.255.252)382 4118 y(#NET=80.196.xxx.xxx/255.255.255.252) 382 4176 y(#BCAST=80.196.xxx.xxx)382 4292 y(##)h(IP_EXTRA)f(specifies)f (that)i(the)f(interface)g(has)h(multiple)f(IP)h(addresses;)382 4350 y(##)g(all)f(the)h(interface's)e(extra)i(IP's)f(should)g(be)h (listed)f(here.)382 4408 y(IP_EXTRA="")382 4466 y(##)h(Specifies)e (extra)i(networks)f(in)g(this)h(zone)f(\(besides)g(NET\).)382 4524 y(NET_EXTRA="")382 4641 y(##)h(Specify)f(if)g(the)h(zone)f(should) h(respond)f(to)g(DHCP)h(queries.)382 4699 y(##)g(This)f(is)h(usefull)f (if)g(a)h(DHCP)g(server)f(is)h(running)f(on)g(the)h(firewall.)382 4757 y(##)g(Remember)f(to)g(set)h(this)f(only)h(in)f(the)h(zone)f(for)h (which)f(the)h(DHCP)f(server)g(is)h(running.)382 4815 y(DHCP_SERVER=0)382 4931 y(##)g(The)f(descriptions)g(of)g(packets)g (coming)h(IN)f(to)h(the)g(interface)e(specifed)h(in)h(DEV)g(and)f (NETWORK)g(to)h(drop|accept|reject)382 4989 y(##)g(Use:)f (INPUT[N]=")e([:port]])2686 4998 y(*)2716 4989 y(]>)f(ip[/mask]>")382 5047 y(INPUT[0]="ACCEPT)h(tcp)i (smtp,www,https,ssh)d(0.0.0.0/0=>0.0.0.0/0")382 5106 y(INPUT[1]="ACCEPT)h(icmp)h(echo-request)g(0.0.0.0/0=>0.0.0.0/0")382 5164 y(#INPUT[2]="ACCEPT)f(igmp)h(0.0.0.0/0=>224.0.0.0/4")382 5222 y(INPUT[2]="DROP)f(ALL)i(0.0.0.0/0=>0.0.0.0/0")382 5338 y(##)g(The)f(descriptions)g(of)g(packets)g(going)h(OUT)f(of)h(the) g(interface)e(specifed)h(in)h(DEV)g(and)f(NETWORK)g(to)h (drop|accept|reject)382 5396 y(##)g(Use:)f (OUTPUT[N]=")d([:port]])2716 5405 y(*)2746 5396 y(]>)e(ip[/mask]>")1831 5652 y Fl(23)p eop end %%Page: 24 27 TeXDict begin 24 26 bop 382 548 a Fa(OUTPUT[0]="ACCEPT)28 b(ALL)h(0.0.0.0/0=>0.0.0.0/0")382 664 y(##)h(Forward)f(rules.)g (Specify)g(where)g(packets)g(entering)g(this)h(zone)f(may)h(originate)f (from.)382 722 y(##)h(Use:)f(FORWARD[N]=")e ()h([:port]])3075 731 y(*)3105 722 y(]>)d(ip[/mask]=>ip[/mask]")382 780 y(##)382 839 y(##)k(Use)f(this)h(to)f(protect)g(this)h(zone)382 897 y(##)g(Rules)f(are)g(read)h(in)g(the)f(order)g(they)h(are)f (written.)382 955 y(##)h(Default)f(is)g(to)h(accept)f(everything:)g (all)g(zones)h(are)f(allowd)h(to)f(talk)382 1013 y(##)h(with)f(the)h (Internet.)382 1071 y(FORWARD[0]="ALL)e(ACCEPT)h(ALL)h (0.0.0.0/0=>0.0.0.0/0")382 1187 y(##)g(Mark)f(rules.)g(Mark)h(packets)f (parsing)g(through)g(the)h(firewall.)382 1245 y(##)g(Use)f (MARK[N]=")f()g([:port]])2746 1254 y(*)2776 1245 y(]>)e(ip[/mask]>")382 1303 y(##)382 1362 y(##)j(MARK)f(packets)g(can)h(be)f(used)h(to)f(determine)g(how)h(a)g (packet)f(sould)g(be)h(routed.)382 1420 y(##)g(FIAIF)f(does)g(not)h (use)f(marking.)382 1478 y(#MARK[0]="ALL)f(1)i(tcp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 1536 y(#MARK[1]="ALL)f(2)i(udp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 1652 y(##)h(Make)f(special)g(replys)g(on)h (incoming)f(packets.)382 1710 y(##)h(Use:)f(REPLY_XXX=")f() h([:port]])2507 1719 y(*)2537 1710 y(]>)d(ip[/mask]>")382 1768 y(##)k(Where)f(type)g(can)h(be)g(one)f(of)h(the)f(following:)382 1826 y(##)89 b(icmp-net-unreachable,)28 b(icmp-host-unreachable,)f (icmp-port-unreachable,)382 1885 y(##)89 b(icmp-proto-unreachable,)28 b(icmp-net-prohibited,)f(icmp-host-prohibited)h(or)382 1943 y(##)89 b(tcp-reset)29 b(\(Only)h(valid)f(if)h(the)f(protocol)g (if)h(TCP\))382 2001 y(##)g(If)f(the)h(zone)f(equal)h(this)f(zone,)g (then)h(the)f(rules)h(apply)f(to)h(packets)f(originating)f(from)382 2059 y(##)i(this)f(network)g(towards)g(the)h(firewall)382 2117 y(REPLY_AUTH="EXT)e(tcp-reset)h(tcp)h(auth)f (0.0.0.0/0=>0.0.0.0/0")382 2175 y(REPLY_TRACEROUTE="EXT)e (icmp-port-unreachable)h(udp)i(33434:33464)e(0.0.0.0/0=>0.0.0.0/0")382 2291 y(##)i(Alter)f(the)g(destination)g(of)h(packets.)382 2350 y(##)g(Use:)f(REDIRECT_XXX=")i (ip[/mask]>)e(<[ipaddr[,ipaddr])2984 2359 y(*)3014 2350 y(])h([port]")382 2408 y(##)i(The)f(rule)h(applies)f (only)g(for)h(packet)f(originating)g(from)g(this)g(zone.)382 2466 y(#REDIRECT_SSH="tcp)f(22)h(0.0.0.0/0=>0.0.0.0/0)f(10.0.0.1)h(22") 382 2582 y(##)h(Log)f(all)h(traffic)f(for)g(these)h(IP)f(addresses)382 2640 y(##)h(Use)f(WATCH_IP="[IP[/MASK]])1221 2649 y(*)1251 2640 y(|[FILE]")382 2698 y(#WATCH_IP="111.111.111.111/32)e (222.222.222.222/24")382 2814 y(##)j(Strip)f(ECN)g(bits)h(from)f(all)h (packets)f(destined)g(for)h(specified)e(IP-addresses)382 2873 y(##)i(in)f(this)h(zone)382 2931 y(##)g(Use:)f (ECN_REMOVE="[IP[/MASK]])1311 2940 y(*)1341 2931 y(|[FILE]")382 2989 y(#ECN_REMOVE="111.111.111.111/32)d(222.222.222.222/24")382 3105 y(##)k(Dissalow)f(any)g(communication)g(with)g(specified)g (MAC-addresses)f(in)i(this)f(zone)382 3163 y(##)h(Use:)f (MAX_DROP="[MAC)f(address])1309 3172 y(*)1339 3163 y(|[FILE]")382 3221 y(##)i(Inserted)f(on)g(PREROUTING)g(chain)382 3279 y(#MAC_DROP="XX:XX:XX:XX:XX:XX)e(YY:YY:YY:YY:YY:YY")382 3396 y(##)j(Dissalow)f(any)g(communication)g(with)g(specified)g (IP-addresses)f(in)i(this)f(zone)382 3454 y(##)h(Use:)f (IP_DROP="[IP[/MASK]])1221 3463 y(*)1251 3454 y(|[FILE]")382 3512 y(#IP_DROP="111.111.111.111/32)e(222.222.222.222/24")382 3628 y(##)j(Change)f(the)g(source)h(address)f(of)g(a)h(packet)f (comming)g(from)h(this)f(zone.)382 3686 y(##)h(This)f(is)h(also)f (called)g(masquerading.)382 3744 y(##)h(Use:)f(SNAT[N]=")f ([:port]])2238 3753 y(*)2268 3744 y(]>)d(ip[/mask]>")382 3802 y(##)k(Where:)f(ZONE)119 b(:)60 b(Destination)28 b(zone.)i(The)f(source)g(of)h(matched)f (packets)g(is)382 3861 y(##)568 b(changed)29 b(to)g(all)h(ip)g(numbers) f(for)g(the)h(zone.)382 3919 y(##)g(Warning:)f(enabling)g(a)g(default)g (\(0.0.0.0=>0.0.0.0\))f(SNAT)i(rule)f(and)h(having)382 3977 y(##)g(GLOBAL=1)f(or)g(DYNAMIC=1)g(enables)g(NAT)h(for)1607 3986 y(*)1637 3977 y(all)1727 3986 y(*)1787 3977 y(zones)f(since)g (there)h(is)f(no)h(way)382 4035 y(##)g(to)f(know)h(the)f(networks)g (for)h(NAT)f(beforehand.)g(Be)h(sure)f(to)h(restrict)f(the)382 4093 y(##)h(FORWARD[x])e(rules)i(in)f(this)h(file)f(to)h(only)f (forward)g(traffic)h(from)f(this)g(network.)382 4151 y(#SNAT[0]="EXT)f(ALL)i(0.0.0.0/0=>0.0.0.0/0")382 4267 y(##)g(Limit)f(new)g(packets.)382 4325 y(##)h(Use:)f(LIMIT_XXX=") f()h()g()g()2595 4334 y(*)2625 4325 y(|<:port>]>)e(ip[/mask]>")382 4384 y(##)j(Where:)382 4442 y(##)89 b(ZONE)149 b(:)30 b(Is)g(the)f(zone)h(from)f(which)h(the)f(packet)g(originates.)g(This)g (can)h(be)g(this)f(zone)g(itself.)382 4500 y(##)89 b(POLICY)g(:)30 b(Is)g(waht)f(to)h(do)g(with)f(the)h(packet:)f(ACCEPT|REJECT|DROP)382 4558 y(##)89 b(LIMIT)119 b(:)30 b(Maximum)59 b(average)29 b(matching)g(rate:)h(specified)e(as)i(a)g(number,)59 b(with)g(an)90 b(optional)382 4616 y(##)418 b('/second',)29 b('/minute',)g('/hour',)g(or)g('/day')h(suffix.)382 4674 y(##)89 b(BURST)119 b(:)30 b(Maximum)59 b(initial)g(number)g(of)30 b(packets)f(to)h(match:)f(this)382 4732 y(##)418 b(number)29 b(gets)h(recharged)f(by)g(one)h(every)f(time)60 b(the)f(limit)382 4790 y(##)418 b(specified)59 b(above)29 b(is)h(not)f(reached,)g(up)h (to)g(this)f(number.)382 4848 y(##)89 b(PROTOCOL)29 b(:)h(The)g (protocol:)f(tcp|udp|icmp|all.)f(This)h(parameter)g(is)g(optional)382 4907 y(##)89 b(PORTS)119 b(:)30 b(If)g(protocol)f(is)g(tcp|udp:)g(A)h (list)g(of)f(ports)h(or)f(a)h(port)f(range.)382 4965 y(##)866 b(icmp)90 b(:)29 b(A)h(single)f(icmp)h(type.)382 5023 y(##)418 b(this)30 b(parameter)e(is)i(optional,)f(and)h(must)f (only)g(be)h(specified,)382 5081 y(##)418 b(if)30 b(a)g(protocol)f(is)g (specified.)382 5139 y(##)89 b(IP/MASK)59 b(:)30 b(If)g(PORTS)f(are)h (specified,)e(then)i(an)g(optional)f(IP/MASK)g(source)g(and)g(address)g (can)h(be)g(specified.)382 5197 y(LIMIT_PING="EXT)e(DROP)i(1/second)f (3)g(ICMP)h(echo-request)e(0.0.0.0/0=>0.0.0.0/0")1831 5652 y Fl(24)p eop end %%Page: 25 28 TeXDict begin 25 27 bop 382 548 a Fk(B.6)112 b(zone.in)m(t)382 665 y Fa(##########################################################)o (########)o(#########)o(###)382 723 y(##)30 b(Example)f(zone)g (configuration)g(file.)382 781 y(##)h(Read)f(all)h(configuration)e (parameters,)h(and)g(modify)g(to)h(suit)g(your)f(needs.)382 839 y(##########################################################)o (########)o(#########)o(###)382 955 y(##)h(A)f(sample)h(zone)f (configuration)f(to)i(control)f(traffic)g(to)h(and)g(from)f(an)h (internal)382 1013 y(##)g(network)f(\(reached)g(via)g(eth1\).)382 1130 y(##)h(Name)f(of)h(the)f(zone.)h(Must)f(match)g(the)h(name)f(in)h (fiaif.conf.)382 1188 y(NAME=INT)382 1246 y(##)g(Network)f(interface)g (name)382 1304 y(DEV=eth1)382 1420 y(##)h(DYNAMIC:)148 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(can)f(change)h(during)f (operation)g(or)382 1478 y(##)418 b(if)30 b(the)f(IP)h(address)f(is)h (unknown)f(when)g(fiaif)h(is)f(started.)382 1536 y(##)h(GLOBAL:)178 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(if)f(this)h(zone)f(connects)g (you)h(to)f(the)382 1595 y(##)418 b(internet.)29 b(Set)h(to)f(zero)h (for)f(private)g(networks.)382 1653 y(DYNAMIC=1)382 1711 y(GLOBAL=0)382 1827 y(##)h(Network)f(information.)f(Nessesary)h(only)h (if)f(DYNAMIC=0)382 1885 y(#IP=10.0.0.254)382 1943 y (#MASK=255.255.254.0)382 2001 y(#NET=10.0.0.254/255.255.254.0)382 2060 y(#BCAST=10.0.1.255)382 2176 y(##)h(IP_EXTRA)f(specifies)f(that)i (the)f(interface)g(has)h(multiple)f(IP)h(addresses;)382 2234 y(##)g(all)f(the)h(interface's)e(extra)i(IP's)f(should)g(be)h (listed)f(here.)382 2292 y(IP_EXTRA="")382 2350 y(##)h(Specifies)e (extra)i(networks)f(in)g(this)h(zone)f(\(besides)g(NET\).)382 2408 y(#NET_EXTRA="224.0.0.0/4")382 2524 y(##)h(Specify)f(if)g(the)h (zone)f(should)h(respond)f(to)g(DHCP)h(queries.)382 2583 y(##)g(This)f(is)h(usefull)f(if)g(a)h(DHCP)g(server)f(is)h(running)f (on)g(the)h(firewall.)382 2641 y(##)g(Remember)f(to)g(set)h(this)f (only)h(in)f(the)h(zone)f(for)h(which)f(the)h(DHCP)f(server)g(is)h (running.)382 2699 y(DHCP_SERVER=0)382 2815 y(##)g(The)f(descriptions)g (of)g(packets)g(coming)h(IN)f(to)h(the)g(interface)e(specifed)h(in)h (DEV)g(and)f(NETWORK)g(to)h(drop|accept|return)382 2873 y(##)g(Use:)f(INPUT[N]=")e([:port]])2686 2882 y(*)2716 2873 y(]>)f(ip[/mask]=>ip[/mask]")382 2931 y(INPUT[0]="ACCEPT)h(ALL)i (0.0.0.0/0=>0.0.0.0/0")382 3047 y(##)g(The)f(descriptions)g(of)g (packets)g(going)h(OUT)f(of)h(the)g(interface)e(specifed)h(in)h(DEV)g (and)f(NETWORK)g(to)h(drop|accept|return)382 3106 y(##)g(Use:)f (OUTPUT[N]=")d([:port]])2716 3115 y(*)2746 3106 y(]>)e(ip[/mask]>")382 3164 y(OUTPUT[0]="ACCEPT)h(ALL)h (0.0.0.0/0=>0.0.0.0/0")382 3280 y(##)h(Forward)f(rules.)g(Specify)g (where)g(packets)g(entering)g(this)h(zone)f(may)h(originate)f(from.)382 3338 y(##)h(Use:)f(FORWARD[N]=")e()h ([:port]])3075 3347 y(*)3105 3338 y(]>)d(ip[/mask]>")382 3396 y(##)382 3454 y(##)k(Use)f(this)h(to)f(protect)g(a)h(zone.)382 3512 y(##)g(Rules)f(are)g(read)h(in)g(the)f(order)g(they)h(are)f (written.)382 3571 y(##)h(Default)f(is)g(to)h(drop)f(everything,)g (accepting)g(only)g(related)h(and)f(establihed)g(connections.)382 3629 y(FORWARD[0]="ALL)f(DROP)i(ALL)f(0.0.0.0/0=>0.0.0.0/0")382 3745 y(##)h(Mark)f(rules.)g(Mark)h(packets)f(parsing)g(through)g(the)h (firewall.)382 3803 y(##)g(Use)f(MARK[N]=")f() g([:port]])2746 3812 y(*)2776 3803 y(]>)e(ip[/mask]>")382 3861 y(##)382 3919 y(##)j(MARK)f(packets)g(can)h(be)f(used)h(to)f(determine) g(how)h(a)g(packet)f(sould)g(be)h(routed.)382 3977 y(##)g(FIAIF)f(does) g(not)h(use)f(marking.)382 4035 y(#MARK[0]="ALL)f(1)i(tcp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 4094 y(#MARK[1]="ALL)f(2)i(udp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 4210 y(##)h(Make)f(special)g(replys)g(on)h (incoming)f(packets.)382 4268 y(##)h(Use:)f(REPLY_XXX=")f() h([:port]])2507 4277 y(*)2537 4268 y(]>)d(ip[/mask]>")382 4326 y(##)k(Where)f(type)g(can)h(be)g(one)f(of)h(the)f(following:)382 4384 y(##)89 b(icmp-net-unreachable,)28 b(icmp-host-unreachable,)f (icmp-port-unreachable,)382 4442 y(##)89 b(icmp-proto-unreachable,)28 b(icmp-net-prohibited,)f(icmp-host-prohibited)h(or)382 4500 y(##)89 b(tcp-reset)29 b(\(Only)h(valid)f(if)h(the)f(protocol)g (if)h(TCP\))382 4558 y(##)g(If)f(the)h(zone)f(equal)h(this)f(zone,)g (then)h(the)f(rules)h(apply)f(to)h(packets)f(originating)f(from)382 4617 y(##)i(this)f(network)g(towards)g(the)h(firewall)382 4675 y(#REPLY_AUTH="ALL)e(tcp-reset)h(tcp)g(auth)h (0.0.0.0/0=>0.0.0.0/0")382 4791 y(##)g(Alter)f(the)g(destination)g(of)h (packets.)382 4849 y(##)g(Use:)f(REDIRECT_XXX=")i(ip[/mask]>)e(<[ipaddr[,ipaddr])2984 4858 y(*)3014 4849 y(])h([port]>")382 4907 y(##)i(The)f(rule)h(applies) f(only)g(for)h(packet)f(originating)g(from)g(this)g(zone.)382 4965 y(#REDIRECT_PROXY="tcp)f(80)h(0.0.0.0/0=>0.0.0.0/0)f(127.0.0.1)h (3128")382 5082 y(##)h(Log)f(all)h(traffic)f(for)g(these)h(IP)f (addresses)382 5140 y(##)h(Use)f(WATCH_IP="[IP[/MASK]])1221 5149 y(*)1251 5140 y(|[FILE]")382 5198 y(#WATCH_IP="111.111.111.111/32) e(222.222.222.222/24")382 5314 y(##)j(Strip)f(ECN)g(bits)h(from)f(all)h (packets)f(destined)g(for)h(specified)e(IP-addresses)382 5372 y(##)i(in)f(this)h(zone)1831 5652 y Fl(25)p eop end %%Page: 26 29 TeXDict begin 26 28 bop 382 548 a Fa(##)30 b(Use:)f (ECN_REMOVE="[IP[/MASK]])1311 557 y(*)1341 548 y(|[FILE]")382 606 y(#ECN_REMOVE="111.111.111.111/32)d(222.222.222.222/24")382 722 y(##)k(Dissalow)f(any)g(communication)g(with)g(specified)g (MAC-addresses)f(in)i(this)f(zone)382 780 y(##)h(Use:)f(MAX_DROP="[MAC) f(address])1309 789 y(*)1339 780 y(|[FILE]")382 839 y(##)i(Inserted)f (on)g(PREROUTING)g(chain)382 897 y(#MAC_DROP="XX:XX:XX:XX:XX:XX)e (YY:YY:YY:YY:YY:YY")382 1013 y(##)j(Dissalow)f(any)g(communication)g (with)g(specified)g(IP-addresses)f(in)i(this)f(zone)382 1071 y(##)h(Use:)f(IP_DROP="[IP[/MASK]])1221 1080 y(*)1251 1071 y(|[FILE]")382 1129 y(#IP_DROP="111.111.111.111/32)e (222.222.222.222/24")382 1245 y(##)j(Change)f(the)g(source)h(address)f (of)g(a)h(packet)f(comming)g(from)h(this)f(zone.)382 1303 y(##)h(This)f(is)h(also)f(called)g(masquerading.)382 1362 y(##)h(Use:)f(SNAT[N]=")f([:port]])2238 1371 y(*)2268 1362 y(]>)d(ip[/mask]>")382 1420 y(##)k(Where:)f(ZONE)119 b(:)60 b(Destination)28 b(zone.)i(The)f(source)g(of)h(matched)f (packets)g(is)382 1478 y(##)568 b(changed)29 b(to)g(all)h(ip)g(numbers) f(for)g(the)h(zone.)382 1536 y(##)g(Warning:)f(enabling)g(a)g(default)g (\(0.0.0.0=>0.0.0.0\))f(SNAT)i(rule)f(and)h(having)382 1594 y(##)g(GLOBAL=1)f(or)g(DYNAMIC=1)g(enables)g(NAT)h(for)1607 1603 y(*)1637 1594 y(all)1727 1603 y(*)1787 1594 y(zones)f(since)g (there)h(is)f(no)h(way)382 1652 y(##)g(to)f(know)h(the)f(networks)g (for)h(NAT)f(beforehand.)g(Be)h(sure)f(to)h(restrict)f(the)382 1710 y(##)h(FORWARD[x])e(rules)i(in)f(zone.ext)g(to)h(only)f(forward)h (traffic)f(from)g(this)g(network.)382 1768 y(SNAT[0]="EXT)f(ALL)i (0.0.0.0/0=>0.0.0.0/0")382 1885 y(##)g(Limit)f(new)g(packets.)382 1943 y(##)h(Use:)f(LIMIT_XXX=")f()h()g()g ()2595 1952 y(*)2625 1943 y(|<:port>]>)e (ip[/mask]>")382 2001 y(##)j(Where:)382 2059 y(##)89 b(ZONE)149 b(:)30 b(Is)g(the)f(zone)h(from)f(which)h(the)f (packet)g(originates.)g(This)g(can)h(be)g(this)f(zone)g(itself.)382 2117 y(##)89 b(POLICY)g(:)30 b(Is)g(what)f(to)h(do)g(with)f(the)h (packet:)f(ACCEPT|REJECT|DROP)382 2175 y(##)89 b(LIMIT)119 b(:)30 b(Maximum)59 b(average)29 b(matching)g(rate:)h(specified)e(as)i (a)g(number,)f(with)g(an)h(optional)382 2233 y(##)418 b('/second',)29 b('/minute',)g('/hour',)g(or)g('/day')h(suffix.)382 2291 y(##)89 b(BURST)119 b(:)30 b(Maximum)59 b(initial)g(number)g(of)30 b(packets)f(to)h(match:)f(this)382 2350 y(##)418 b(number)29 b(gets)h(recharged)f(by)g(one)h(every)f(time)60 b(the)f(limit)382 2408 y(##)418 b(specified)59 b(above)29 b(is)h(not)f(reached,)g(up)h (to)g(this)f(number.)382 2466 y(##)89 b(PROTOCOL)29 b(:)h(The)g (protocol:)f(tcp|udp|icmp|all.)f(This)h(parameter)g(is)g(optional)382 2524 y(##)89 b(PORTS)119 b(:)30 b(If)g(protocol)f(is)g(tcp|udp:)g(A)h (list)g(of)f(ports)h(or)f(a)h(port)f(range.)382 2582 y(##)866 b(icmp)90 b(:)29 b(A)h(single)f(icmp)h(type.)382 2640 y(##)418 b(this)30 b(parameter)e(is)i(optional,)f(and)h(must)f (only)g(be)h(specified,)382 2698 y(##)418 b(if)30 b(a)g(protocol)f(is)g (specified.)382 2756 y(##)89 b(IP/MASK)59 b(:)30 b(If)g(PORTS)f(are)h (specified,)e(then)i(an)g(optional)f(IP/MASK)g(source)g(and)g(address)g (can)h(be)g(specified.)382 2814 y(#LIMIT_PING="EXT)e(DROP)h(1/second)g (3)h(ICMP)g(echo-request)e(0.0.0.0/0=>0.0.0.0/0")382 3116 y Fk(B.7)112 b(zone.dmz)382 3233 y Fa (##########################################################)o(########) o(#########)o(###)382 3291 y(##)30 b(Example)f(zone)g(configuration)g (file.)382 3349 y(##)h(Read)f(all)h(configuration)e(parameters,)h(and)g (modify)g(to)h(suit)g(your)f(needs.)382 3407 y (##########################################################)o(########) o(#########)o(###)382 3523 y(##)h(The)f(DMZ)h(\(DeMilitarized)e(Zone\)) h(is)h(the)g(most)f(restricted)g(network,)382 3581 y(##)h(since)f(it)h (exposes)f(partly)g(unsecure)g(services)g(to)h(the)f(Internet.)382 3640 y(##)h(No)f(connections)g(are)g(allowed)h(in)f(either)g(direction) g(between)g(the)h(firewall)f(and)g(this)h(zone.)382 3698 y(##)g(The)f(idea)h(is,)f(that)h(if)f(any)h(hacker)f(gains)g(access)h (to)f(a)h(machine)f(in)h(the)f(DMZ,)382 3756 y(##)h(This)f(does)g(not)h (pose)f(a)h(security)f(risk)h(for)f(any)h(other)f(zones,)g(only)h(the)f (firewall)382 3814 y(##)h(itself.)382 3872 y(##)g(To)f(administer)g (the)h(machines)f(within)g(the)g(zone,)h('ssh')f(is)h(allowed)f(from)g (the)382 3930 y(##)h(Internal)f(zone.)382 3988 y(##)h(The)f(zone)h(is)f (not)h(activated)f(in)g(the)h(default)f(fiaif.conf.)g(To)g(do)h(this)f (please)h(add)f(DMZ)h(to)382 4046 y(##)g(ZONES)f(variable.)382 4163 y(##)h(Name)f(of)h(the)f(zone.)h(Must)f(match)g(the)h(name)f(in)h (fiaif.conf.)382 4221 y(NAME=DMZ)382 4279 y(##)g(Network)f(interface)g (name)382 4337 y(DEV=eth2)382 4453 y(##)h(DYNAMIC:)148 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(can)f(change)h(during)f (operation)g(or)382 4511 y(##)418 b(if)30 b(the)f(IP)h(address)f(is)h (unknown)f(when)g(fiaif)h(is)f(started.)382 4569 y(##)h(GLOBAL:)178 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(if)f(this)h(zone)f(connects)g (you)h(to)f(the)382 4628 y(##)418 b(internet.)29 b(Set)h(to)f(zero)h (for)f(private)g(networks.)382 4686 y(DYNAMIC=0)382 4744 y(GLOBAL=1)382 4860 y(##)h(Network)f(information.)f(Nessesary)h(only)h (if)f(DYNAMIC=0)382 4918 y(IP=80.203.xxx.xxx)382 4976 y(MASK=255.255.255.0)382 5034 y(NET=80.203.xxx.xxx/255.255.255.0)382 5092 y(BCAST=80.203.xxx.xxx)382 5209 y(##)h(IP_EXTRA)f(specifies)f (that)i(the)f(interface)g(has)h(multiple)f(IP)h(addresses;)382 5267 y(##)g(all)f(the)h(interface's)e(extra)i(IP's)f(should)g(be)h (listed)f(here.)382 5325 y(IP_EXTRA="")382 5383 y(##)h(Specifies)e (extra)i(networks)f(in)g(this)h(zone)f(\(besides)g(NET\).)1831 5652 y Fl(26)p eop end %%Page: 27 30 TeXDict begin 27 29 bop 382 548 a Fa(NET_EXTRA="")382 664 y(##)30 b(Specify)f(if)g(the)h(zone)f(should)h(respond)f(to)g(DHCP) h(queries.)382 722 y(##)g(This)f(is)h(usefull)f(if)g(a)h(DHCP)g(server) f(is)h(running)f(on)g(the)h(firewall.)382 780 y(##)g(Remember)f(to)g (set)h(this)f(only)h(in)f(the)h(zone)f(for)h(which)f(the)h(DHCP)f (server)g(is)h(running.)382 839 y(DHCP_SERVER=0)382 955 y(##)g(The)f(descriptions)g(of)g(packets)g(coming)h(IN)f(to)h(the)g (interface)e(specifed)h(in)h(DEV)g(and)f(NETWORK)g(to)h (drop|accept|reject)382 1013 y(##)g(Use:)f (INPUT[N]=")e([:port]])2686 1022 y(*)2716 1013 y(]>)f(ip[/mask]>")382 1071 y(INPUT[0]="REJECT)h(ALL)i (0.0.0.0/0=>0.0.0.0/0")382 1187 y(##)g(The)f(descriptions)g(of)g (packets)g(going)h(OUT)f(of)h(the)g(interface)e(specifed)h(in)h(DEV)g (and)f(NETWORK)g(to)h(drop|accept|reject)382 1245 y(##)g(Use:)f (OUTPUT[N]=")d([:port]])2716 1254 y(*)2746 1245 y(]>)e(ip[/mask]>")382 1303 y(OUTPUT[0]="REJECT)h(ALL)h (0.0.0.0/0=>0.0.0.0/0")382 1420 y(##)h(Forward)f(rules.)g(Specify)g (where)g(packets)g(entering)g(this)h(zone)f(may)h(originate)f(from.)382 1478 y(##)h(Use:)f(FORWARD[N]=")e()h ([:port]])3075 1487 y(*)3105 1478 y(]>)d(ip[/mask]>")382 1536 y(##)382 1594 y(##)k(Use)f(this)h(to)f(protect)g(this)h(zone.)382 1652 y(##)g(Rules)f(are)g(read)h(in)g(the)f(order)g(they)h(are)f (written.)382 1710 y(##)h(Default)f(is)g(to)h(only)f(allow)h(www)f(and) h(https.)382 1768 y(##)g(Zone)f(int)h(are)f(also)h(allows)f(ssh)g (connections)382 1826 y(FORWARD[0]="ALL)f(ACCEPT)h(tcp)h(www,https)f (0.0.0.0/0=>0.0.0.0/0")382 1885 y(FORWARD[1]="INT)f(ACCEPT)h(tcp)h(ssh) f(0.0.0.0/0=>0.0.0.0/0")382 1943 y(FORWARD[2]="ALL)f(DROP)i(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 2059 y(##)h(Mark)f(rules.)g(Mark)h(packets)f (parsing)g(through)g(the)h(firewall.)382 2117 y(##)g(Use)f (MARK[N]=")f()g([:port]])2746 2126 y(*)2776 2117 y(]>)e(ip[/mask]>")382 2175 y(##)382 2233 y(##)j(MARK)f(packets)g(can)h(be)f(used)h(to)f(determine)g(how)h(a)g (packet)f(sould)g(be)h(routed.)382 2291 y(##)g(FIAIF)f(does)g(not)h (use)f(marking.)382 2350 y(#MARK[0]="ALL)f(1)i(tcp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 2408 y(#MARK[1]="ALL)f(2)i(udp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 2524 y(##)h(Make)f(special)g(replys)g(on)h (incoming)f(packets.)382 2582 y(##)h(Use:)f(REPLY_XXX=")f() h([:port]])2507 2591 y(*)2537 2582 y(]>)d(ip[/mask]>")382 2640 y(##)k(Where)f(type)g(can)h(be)g(one)f(of)h(the)f(following:)382 2698 y(##)89 b(icmp-net-unreachable,)28 b(icmp-host-unreachable,)f (icmp-port-unreachable,)382 2756 y(##)89 b(icmp-proto-unreachable,)28 b(icmp-net-prohibited,)f(icmp-host-prohibited)h(or)382 2814 y(##)89 b(tcp-reset)29 b(\(Only)h(valid)f(if)h(the)f(protocol)g (if)h(TCP\))382 2873 y(##)g(If)f(the)h(zone)f(equal)h(this)f(zone,)g (then)h(the)f(rules)h(apply)f(to)h(packets)382 2931 y(##)g(originating) e(from)i(this)f(network)g(towards)g(the)h(firewall)382 2989 y(REPLY_AUTH="DMZ)e(tcp-reset)h(tcp)h(auth)f (0.0.0.0/0=>0.0.0.0/0")382 3047 y(REPLY_TRACEROUTE="DMZ)e (icmp-port-unreachable)h(udp)i(33434:33464)e(0.0.0.0/0=>0.0.0.0/0")382 3163 y(##)i(Alter)f(the)g(destination)g(of)h(packets.)382 3221 y(##)g(Use:)f(REDIRECT_XXX=")i (ip[/mask]>)e(<[ipaddr[,ipaddr])2984 3230 y(*)3014 3221 y(])h([port]")382 3279 y(##)i(The)f(rule)h(applies)f (only)g(for)h(packet)f(originating)g(from)g(this)g(zone.)382 3337 y(#REDIRECT_PROXY="tcp)f(80)h(0.0.0.0/0=>0.0.0.0/0)f(127.0.0.1)h (3128")382 3454 y(##)h(Log)f(all)h(traffic)f(for)g(these)h(IP)f (addresses)382 3512 y(##)h(Use)f(WATCH_IP="[IP[/MASK]])1221 3521 y(*)1251 3512 y(|[FILE]")382 3570 y(#WATCH_IP="111.111.111.111/32) e(222.222.222.222/24")382 3686 y(##)j(Strip)f(ECN)g(bits)h(from)f(all)h (packets)f(destined)g(for)h(specified)e(IP-addresses)382 3744 y(##)i(in)f(this)h(zone)382 3802 y(##)g(Use:)f (ECN_REMOVE="[IP[/MASK]])1311 3811 y(*)1341 3802 y(|[FILE]")382 3861 y(#ECN_REMOVE="111.111.111.111/32)d(222.222.222.222/24")382 3977 y(##)k(Dissalow)f(any)g(communication)g(with)g(specified)g (MAC-addresses)f(in)i(this)f(zone)382 4035 y(##)h(Use:)f (MAX_DROP="[MAC)f(address])1309 4044 y(*)1339 4035 y(|[FILE]")382 4093 y(##)i(Inserted)f(on)g(PREROUTING)g(chain)382 4151 y(#MAC_DROP="XX:XX:XX:XX:XX:XX)e(YY:YY:YY:YY:YY:YY")382 4267 y(##)j(Dissalow)f(any)g(communication)g(with)g(specified)g (IP-addresses)f(in)i(this)f(zone)382 4325 y(##)h(Use:)f (IP_DROP="[IP[/MASK]])1221 4334 y(*)1251 4325 y(|[FILE]")382 4384 y(#IP_DROP="111.111.111.111/32)e(222.222.222.222/24")382 4500 y(##)j(Change)f(the)g(source)h(address)f(of)g(a)h(packet)f (comming)g(from)h(this)f(zone.)382 4558 y(##)h(This)f(is)h(also)f (called)g(masquerading.)382 4616 y(##)h(Use:)f(SNAT[N]=")f ([:port]])2238 4625 y(*)2268 4616 y(]>)d(ip[/mask]>")382 4674 y(##)k(Where:)f(ZONE)119 b(:)60 b(Destination)28 b(zone.)i(The)f(source)g(of)h(matched)f (packets)g(is)382 4732 y(##)568 b(changed)29 b(to)g(all)h(ip)g(numbers) f(for)g(the)h(zone.)382 4790 y(##)g(Warning:)f(enabling)g(a)g(default)g (\(0.0.0.0=>0.0.0.0\))f(SNAT)i(rule)f(and)h(having)382 4848 y(##)g(GLOBAL=1)f(or)g(DYNAMIC=1)g(enables)g(NAT)h(for)1607 4857 y(*)1637 4848 y(all)1727 4857 y(*)1787 4848 y(zones)f(since)g (there)h(is)f(no)h(way)382 4907 y(##)g(to)f(know)h(the)f(networks)g (for)h(NAT)f(beforehand.)g(Be)h(sure)f(to)h(restrict)f(the)382 4965 y(##)h(FORWARD[x])e(rules)i(in)f(zone.ext)g(to)h(only)f(forward)h (traffic)f(from)g(this)g(network.)382 5023 y(#SNAT[0]="EXT)f(ALL)i (0.0.0.0/0=>0.0.0.0/0")382 5139 y(##)g(Limit)f(new)g(packets.)382 5197 y(##)h(Use:)f(LIMIT_XXX=")f()h()g()g ()2595 5206 y(*)2625 5197 y(|<:port>]>)e (ip[/mask]>")382 5255 y(##)j(Where:)382 5313 y(##)89 b(ZONE)149 b(:)30 b(Is)g(the)f(zone)h(from)f(which)h(the)f (packet)g(originates.)g(This)g(can)h(be)g(this)f(zone)g(itself.)382 5372 y(##)89 b(POLICY)g(:)30 b(Is)g(waht)f(to)h(do)g(with)f(the)h (packet:)f(ACCEPT|REJECT|DROP)1831 5652 y Fl(27)p eop end %%Page: 28 31 TeXDict begin 28 30 bop 382 548 a Fa(##)89 b(LIMIT)119 b(:)30 b(Maximum)59 b(average)29 b(matching)g(rate:)h(specified)e(as)i (a)g(number,)59 b(with)g(an)90 b(optional)382 606 y(##)418 b('/second',)29 b('/minute',)g('/hour',)g(or)g('/day')h(suffix.)382 664 y(##)89 b(BURST)119 b(:)30 b(Maximum)59 b(initial)g(number)g(of)30 b(packets)f(to)h(match:)f(this)382 722 y(##)418 b(number)29 b(gets)h(recharged)f(by)g(one)h(every)f(time)60 b(the)f(limit)382 780 y(##)418 b(specified)59 b(above)29 b(is)h(not)f(reached,)g(up)h(to) g(this)f(number.)382 839 y(##)89 b(PROTOCOL)29 b(:)h(The)g(protocol:)f (tcp|udp|icmp|all.)f(This)h(parameter)g(is)g(optional)382 897 y(##)89 b(PORTS)119 b(:)30 b(If)g(protocol)f(is)g(tcp|udp:)g(A)h (list)g(of)f(ports)h(or)f(a)h(port)f(range.)382 955 y(##)866 b(icmp)90 b(:)29 b(A)h(single)f(icmp)h(type.)382 1013 y(##)418 b(this)30 b(parameter)e(is)i(optional,)f(and)h(must)f(only)g (be)h(specified,)382 1071 y(##)418 b(if)30 b(a)g(protocol)f(is)g (specified.)382 1129 y(##)89 b(IP/MASK)59 b(:)30 b(If)g(PORTS)f(are)h (specified,)e(then)i(an)g(optional)f(IP/MASK)g(source)g(and)g(address)g (can)h(be)g(specified.)382 1187 y(LIMIT_PING="EXT)e(DROP)i(5/second)f (10)g(TCP)h(www,https)f(0.0.0.0/0=>0.0.0.0/0")1831 5652 y Fl(28)p eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF fiaif-1.23.1/GPL.txt0000640000175000017500000004310311571724545013361 0ustar calvincalvin GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. fiaif-1.23.1/conf/0000750000175000017500000000000012076546350013116 5ustar calvincalvinfiaif-1.23.1/conf/aliases0000640000175000017500000000126211571724545014467 0ustar calvincalvin############################################################################## ## This file specifies global aliases to be used in ## zone configuration files. The aliases can only be ## used in rules with the syntax: "ip[/mask]=>ip[/mask]" ## Where either of the sied can be replaced with a name of an alias. ## ## Aliases defined overrides IPSET variables in zone configuration files ## And an error will be displayed is conflicting names exists. ## ## The syntax for ALIASES is: ## = [[/mask] ]* ## ## Examples: ## FIREWALL = 1.2.3.4 ## BACKUP_SERVERS = 11.22.33.44 111.222.333.444 ############################################################################## fiaif-1.23.1/conf/type_of_services0000640000175000017500000000265511571724545016425 0ustar calvincalvin## Set Type of services fields on some packages from the server. ## These values are based on RFC 1060/1349. ## Note that ssh automatically sets the TOS value. ## The syntax is: ## TOS_FOO=" [ any | port[,port]* | ICMP type specifier ]" ## Where: ## TOS_type is: Minimize-Delay|Maximize-Throughput| ## Maximize-Reliability|Minimize-Cost| ## Normal-Service ## protocol is: Any protocol specified in /etc/protocols, ## or a protocol number ## port specification is either: ## - any: matching any packet with the specified protocol. ## - A list of ports, if TCP or UDP is specified. ## - An ICMP type or number, if the protocol is ICMP. TOS_MINIMIZE_DELAY_TCP="Minimize-Delay tcp ftp,telnet" TOS_MAXIMIZE_THROUGHPUT_TCP="Maximize-Throughput tcp ftp-data,smtp,imap,imaps,pop3,pop3s,cvspserver,rsync" TOS_MAXIMIZE_RELIABILITY_TCP="Maximize-Reliability tcp" TOS_MINIMIZE_COST_TCP="Minimize-Cost tcp nntp" TOS_NORMAL_SERVICE_TCP="Normal-Service tcp www,https" TOS_MINIMIZE_DELAY_UDP="Minimize-Delay udp domain,ntp,tftp" TOS_MAXIMIZE_THROUGHPUT_UDP="Maximize-Throughput udp" TOS_MAXIMIZE_RELIABILITY_UDP="Maximize-Reliability udp" TOS_MINIMIZE_COST_UDP="Minimize-Cost udp snmp" TOS_NORMAL_SERVICE_UDP="Normal-Service udp bootps,bootpc" TOS_MAXIMIZE_RELIABILITY_IGMP="Maximize-Reliability igmp any" TOS_NORMAL_SERVICE_EGP="Normal-Service egp any" fiaif-1.23.1/conf/zone.ext0000640000175000017500000001370712076546330014622 0ustar calvincalvin############################################################################## ## Example zone configuration file. ## Read all configuration parameters, and modify to suit your needs. ############################################################################## ## A sample zone configuration to control traffic to the internet ## Name of the zone. Must match the name in fiaif.conf. NAME=EXT ## Network interface name DEV=eth0 ## DYNAMIC: Set to '1' if the IP can change during operation or ## if the IP address is unknown when fiaif is started. ## GLOBAL: Set to '1' if the IP if this zone connects you to the ## internet. Set to zero for private networks. DYNAMIC=1 GLOBAL=1 ## Network information. Nessesary only if DYNAMIC=0 #IP=80.196.xxx.xxx #MASK=255.255.255.252 #NET=80.196.xxx.xxx/255.255.255.252 #BCAST=80.196.xxx.xxx ## IP_EXTRA specifies that the interface has multiple IP addresses; ## all the interface's extra IP's should be listed here. IP_EXTRA="" ## Specifies extra networks in this zone (besides NET). NET_EXTRA="" ## Specify if the zone should respond to DHCP queries. ## This is usefull if a DHCP server is running on the firewall. ## Remember to set this only in the zone for which the DHCP server is running. DHCP_SERVER=0 ## The descriptions of packets coming IN to the interface specifed in DEV and NETWORK to drop|accept|reject ## Use: INPUT[N]=" [:port]]*]> ip[/mask]>" INPUT[0]="ACCEPT tcp smtp,www,https,ssh 0.0.0.0/0=>0.0.0.0/0" INPUT[1]="ACCEPT icmp echo-request 0.0.0.0/0=>0.0.0.0/0" #INPUT[2]="ACCEPT igmp 0.0.0.0/0=>224.0.0.0/4" INPUT[2]="DROP ALL 0.0.0.0/0=>0.0.0.0/0" ## The descriptions of packets going OUT of the interface specifed in DEV and NETWORK to drop|accept|reject ## Use: OUTPUT[N]=" [:port]]*]> ip[/mask]>" OUTPUT[0]="ACCEPT ALL 0.0.0.0/0=>0.0.0.0/0" ## Forward rules. Specify where packets entering this zone may originate from. ## Use: FORWARD[N]=" [:port]]*]> ip[/mask]=>ip[/mask]" ## ## Use this to protect this zone ## Rules are read in the order they are written. ## Default is to accept everything: all zones are allowd to talk ## with the Internet. FORWARD[0]="ALL ACCEPT ALL 0.0.0.0/0=>0.0.0.0/0" ## Mark rules. Mark packets parsing through the firewall. ## Use MARK[N]=" [:port]]*]> ip[/mask]>" ## ## MARK packets can be used to determine how a packet sould be routed. ## FIAIF does not use marking. #MARK[0]="ALL 1 tcp ALL 0.0.0.0/0=>0.0.0.0/0" #MARK[1]="ALL 2 udp ALL 0.0.0.0/0=>0.0.0.0/0" ## Make special replys on incoming packets. ## Use: REPLY_XXX=" [:port]]*]> ip[/mask]>" ## Where type can be one of the following: ## icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, ## icmp-proto-unreachable, icmp-net-prohibited, icmp-host-prohibited or ## tcp-reset (Only valid if the protocol if TCP) ## If the zone equal this zone, then the rules apply to packets originating from ## this network towards the firewall REPLY_AUTH="EXT tcp-reset tcp auth 0.0.0.0/0=>0.0.0.0/0" REPLY_TRACEROUTE="EXT icmp-port-unreachable udp 33434:33464 0.0.0.0/0=>0.0.0.0/0" ## Alter the destination of packets. ## Use: REDIRECT_XXX=" ip[/mask]> <[ipaddr[,ipaddr]*] [port]" ## The rule applies only for packet originating from this zone. #REDIRECT_SSH="tcp 22 0.0.0.0/0=>0.0.0.0/0 10.0.0.1 22" ## Log all traffic for these IP addresses ## Use WATCH_IP="[IP[/MASK]]*|[FILE]" #WATCH_IP="111.111.111.111/32 222.222.222.222/24" ## Strip ECN bits from all packets destined for specified IP-addresses ## in this zone ## Use: ECN_REMOVE="[IP[/MASK]]*|[FILE]" #ECN_REMOVE="111.111.111.111/32 222.222.222.222/24" ## Dissalow any communication with specified MAC-addresses in this zone ## Use: MAX_DROP="[MAC address]*|[FILE]" ## Inserted on PREROUTING chain #MAC_DROP="XX:XX:XX:XX:XX:XX YY:YY:YY:YY:YY:YY" ## Dissalow any communication with specified IP-addresses in this zone ## Use: IP_DROP="[IP[/MASK]]*|[FILE]" #IP_DROP="111.111.111.111/32 222.222.222.222/24" ## Change the source address of a packet comming from this zone. ## This is also called masquerading. ## Use: SNAT[N]=" [:port]]*]> ip[/mask]>" ## Where: ZONE : Destination zone. The source of matched packets is ## changed to all ip numbers for the zone. ## Warning: enabling a default (0.0.0.0=>0.0.0.0) SNAT rule and having ## GLOBAL=1 or DYNAMIC=1 enables NAT for *all* zones since there is no way ## to know the networks for NAT beforehand. Be sure to restrict the ## FORWARD[x] rules in this file to only forward traffic from this network. #SNAT[0]="EXT ALL 0.0.0.0/0=>0.0.0.0/0" ## Limit new packets. ## Use: LIMIT_XXX=" *|<:port>]> ip[/mask]>" ## Where: ## ZONE : Is the zone from which the packet originates. This can be this zone itself. ## POLICY : Is waht to do with the packet: ACCEPT|REJECT|DROP ## LIMIT : Maximum average matching rate: specified as a number, with an optional ## '/second', '/minute', '/hour', or '/day' suffix. ## BURST : Maximum initial number of packets to match: this ## number gets recharged by one every time the limit ## specified above is not reached, up to this number. ## PROTOCOL : The protocol: tcp|udp|icmp|all. This parameter is optional ## PORTS : If protocol is tcp|udp: A list of ports or a port range. ## icmp : A single icmp type. ## this parameter is optional, and must only be specified, ## if a protocol is specified. ## IP/MASK : If PORTS are specified, then an optional IP/MASK source and address can be specified. LIMIT_PING="EXT DROP 1/second 3 ICMP echo-request 0.0.0.0/0=>0.0.0.0/0" fiaif-1.23.1/conf/zone.dmz0000640000175000017500000001460312076546350014612 0ustar calvincalvin############################################################################## ## Example zone configuration file. ## Read all configuration parameters, and modify to suit your needs. ############################################################################## ## The DMZ (DeMilitarized Zone) is the most restricted network, ## since it exposes partly unsecure services to the Internet. ## No connections are allowed in either direction between the firewall and this zone. ## The idea is, that if any hacker gains access to a machine in the DMZ, ## This does not pose a security risk for any other zones, only the firewall ## itself. ## To administer the machines within the zone, 'ssh' is allowed from the ## Internal zone. ## The zone is not activated in the default fiaif.conf. To do this please add DMZ to ## ZONES variable. ## Name of the zone. Must match the name in fiaif.conf. NAME=DMZ ## Network interface name DEV=eth2 ## DYNAMIC: Set to '1' if the IP can change during operation or ## if the IP address is unknown when fiaif is started. ## GLOBAL: Set to '1' if the IP if this zone connects you to the ## internet. Set to zero for private networks. DYNAMIC=0 GLOBAL=1 ## Network information. Nessesary only if DYNAMIC=0 IP=80.203.xxx.xxx MASK=255.255.255.0 NET=80.203.xxx.xxx/255.255.255.0 BCAST=80.203.xxx.xxx ## IP_EXTRA specifies that the interface has multiple IP addresses; ## all the interface's extra IP's should be listed here. IP_EXTRA="" ## Specifies extra networks in this zone (besides NET). NET_EXTRA="" ## Specify if the zone should respond to DHCP queries. ## This is usefull if a DHCP server is running on the firewall. ## Remember to set this only in the zone for which the DHCP server is running. DHCP_SERVER=0 ## The descriptions of packets coming IN to the interface specifed in DEV and NETWORK to drop|accept|reject ## Use: INPUT[N]=" [:port]]*]> ip[/mask]>" INPUT[0]="REJECT ALL 0.0.0.0/0=>0.0.0.0/0" ## The descriptions of packets going OUT of the interface specifed in DEV and NETWORK to drop|accept|reject ## Use: OUTPUT[N]=" [:port]]*]> ip[/mask]>" OUTPUT[0]="REJECT ALL 0.0.0.0/0=>0.0.0.0/0" ## Forward rules. Specify where packets entering this zone may originate from. ## Use: FORWARD[N]=" [:port]]*]> ip[/mask]>" ## ## Use this to protect this zone. ## Rules are read in the order they are written. ## Default is to only allow www and https. ## Zone int are also allows ssh connections FORWARD[0]="ALL ACCEPT tcp www,https 0.0.0.0/0=>0.0.0.0/0" FORWARD[1]="INT ACCEPT tcp ssh 0.0.0.0/0=>0.0.0.0/0" FORWARD[2]="ALL DROP ALL 0.0.0.0/0=>0.0.0.0/0" ## Mark rules. Mark packets parsing through the firewall. ## Use MARK[N]=" [:port]]*]> ip[/mask]>" ## ## MARK packets can be used to determine how a packet sould be routed. ## FIAIF does not use marking. #MARK[0]="ALL 1 tcp ALL 0.0.0.0/0=>0.0.0.0/0" #MARK[1]="ALL 2 udp ALL 0.0.0.0/0=>0.0.0.0/0" ## Make special replys on incoming packets. ## Use: REPLY_XXX=" [:port]]*]> ip[/mask]>" ## Where type can be one of the following: ## icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, ## icmp-proto-unreachable, icmp-net-prohibited, icmp-host-prohibited or ## tcp-reset (Only valid if the protocol if TCP) ## If the zone equal this zone, then the rules apply to packets ## originating from this network towards the firewall REPLY_AUTH="DMZ tcp-reset tcp auth 0.0.0.0/0=>0.0.0.0/0" REPLY_TRACEROUTE="DMZ icmp-port-unreachable udp 33434:33464 0.0.0.0/0=>0.0.0.0/0" ## Alter the destination of packets. ## Use: REDIRECT_XXX=" ip[/mask]> <[ipaddr[,ipaddr]*] [port]" ## The rule applies only for packet originating from this zone. #REDIRECT_PROXY="tcp 80 0.0.0.0/0=>0.0.0.0/0 127.0.0.1 3128" ## Log all traffic for these IP addresses ## Use WATCH_IP="[IP[/MASK]]*|[FILE]" #WATCH_IP="111.111.111.111/32 222.222.222.222/24" ## Strip ECN bits from all packets destined for specified IP-addresses ## in this zone ## Use: ECN_REMOVE="[IP[/MASK]]*|[FILE]" #ECN_REMOVE="111.111.111.111/32 222.222.222.222/24" ## Dissalow any communication with specified MAC-addresses in this zone ## Use: MAX_DROP="[MAC address]*|[FILE]" ## Inserted on PREROUTING chain #MAC_DROP="XX:XX:XX:XX:XX:XX YY:YY:YY:YY:YY:YY" ## Dissalow any communication with specified IP-addresses in this zone ## Use: IP_DROP="[IP[/MASK]]*|[FILE]" #IP_DROP="111.111.111.111/32 222.222.222.222/24" ## Change the source address of a packet comming from this zone. ## This is also called masquerading. ## Use: SNAT[N]=" [:port]]*]> ip[/mask]>" ## Where: ZONE : Destination zone. The source of matched packets is ## changed to all ip numbers for the zone. ## Warning: enabling a default (0.0.0.0=>0.0.0.0) SNAT rule and having ## GLOBAL=1 or DYNAMIC=1 enables NAT for *all* zones since there is no way ## to know the networks for NAT beforehand. Be sure to restrict the ## FORWARD[x] rules in zone.ext to only forward traffic from this network. #SNAT[0]="EXT ALL 0.0.0.0/0=>0.0.0.0/0" ## Limit new packets. ## Use: LIMIT_XXX=" *|<:port>]> ip[/mask]>" ## Where: ## ZONE : Is the zone from which the packet originates. This can be this zone itself. ## POLICY : Is waht to do with the packet: ACCEPT|REJECT|DROP ## LIMIT : Maximum average matching rate: specified as a number, with an optional ## '/second', '/minute', '/hour', or '/day' suffix. ## BURST : Maximum initial number of packets to match: this ## number gets recharged by one every time the limit ## specified above is not reached, up to this number. ## PROTOCOL : The protocol: tcp|udp|icmp|all. This parameter is optional ## PORTS : If protocol is tcp|udp: A list of ports or a port range. ## icmp : A single icmp type. ## this parameter is optional, and must only be specified, ## if a protocol is specified. ## IP/MASK : If PORTS are specified, then an optional IP/MASK source and address can be specified. LIMIT_PING="EXT DROP 5/second 10 TCP www,https 0.0.0.0/0=>0.0.0.0/0" fiaif-1.23.1/conf/private_networks0000640000175000017500000000034211571724545016452 0ustar calvincalvin# $Id: private_networks,v 1.3 2003/02/13 22:15:11 afu Exp $ # This file contains the list of all networks # reserved for private use. # Please see RFC1918 for details. 10.0.0.0/8 127.0.0.0/8 172.16.0.0/12 192.168.0.0/16 fiaif-1.23.1/conf/reserved_networks0000640000175000017500000000071311571724545016621 0ustar calvincalvin# $Id: reserved_networks,v 1.36 2010/06/10 21:48:23 afu Exp $ # This file contains a list of networks reserved by IANA. # The list can be found at: # http://www.iana.org/assignments/ipv4-address-space # For additional information see RFC3330 0.0.0.0/8 5.0.0.0/8 23.0.0.0/8 36.0.0.0/7 39.0.0.0/8 42.0.0.0/8 49.0.0.0/8 100.0.0.0/6 104.0.0.0/7 106.0.0.0/8 127.0.0.0/8 169.254.0.0/16 179.0.0.0/8 185.0.0.0/8 192.0.2.0/24 198.18.0.0/15 223.0.0.0/8 240.0.0.0/4 fiaif-1.23.1/conf/zone.int0000640000175000017500000001336112076546340014611 0ustar calvincalvin############################################################################## ## Example zone configuration file. ## Read all configuration parameters, and modify to suit your needs. ############################################################################## ## A sample zone configuration to control traffic to and from an internal ## network (reached via eth1). ## Name of the zone. Must match the name in fiaif.conf. NAME=INT ## Network interface name DEV=eth1 ## DYNAMIC: Set to '1' if the IP can change during operation or ## if the IP address is unknown when fiaif is started. ## GLOBAL: Set to '1' if the IP if this zone connects you to the ## internet. Set to zero for private networks. DYNAMIC=1 GLOBAL=0 ## Network information. Nessesary only if DYNAMIC=0 #IP=10.0.0.254 #MASK=255.255.254.0 #NET=10.0.0.254/255.255.254.0 #BCAST=10.0.1.255 ## IP_EXTRA specifies that the interface has multiple IP addresses; ## all the interface's extra IP's should be listed here. IP_EXTRA="" ## Specifies extra networks in this zone (besides NET). #NET_EXTRA="224.0.0.0/4" ## Specify if the zone should respond to DHCP queries. ## This is usefull if a DHCP server is running on the firewall. ## Remember to set this only in the zone for which the DHCP server is running. DHCP_SERVER=0 ## The descriptions of packets coming IN to the interface specifed in DEV and NETWORK to drop|accept|return ## Use: INPUT[N]=" [:port]]*]> ip[/mask]=>ip[/mask]" INPUT[0]="ACCEPT ALL 0.0.0.0/0=>0.0.0.0/0" ## The descriptions of packets going OUT of the interface specifed in DEV and NETWORK to drop|accept|return ## Use: OUTPUT[N]=" [:port]]*]> ip[/mask]>" OUTPUT[0]="ACCEPT ALL 0.0.0.0/0=>0.0.0.0/0" ## Forward rules. Specify where packets entering this zone may originate from. ## Use: FORWARD[N]=" [:port]]*]> ip[/mask]>" ## ## Use this to protect a zone. ## Rules are read in the order they are written. ## Default is to drop everything, accepting only related and establihed connections. FORWARD[0]="ALL DROP ALL 0.0.0.0/0=>0.0.0.0/0" ## Mark rules. Mark packets parsing through the firewall. ## Use MARK[N]=" [:port]]*]> ip[/mask]>" ## ## MARK packets can be used to determine how a packet sould be routed. ## FIAIF does not use marking. #MARK[0]="ALL 1 tcp ALL 0.0.0.0/0=>0.0.0.0/0" #MARK[1]="ALL 2 udp ALL 0.0.0.0/0=>0.0.0.0/0" ## Make special replys on incoming packets. ## Use: REPLY_XXX=" [:port]]*]> ip[/mask]>" ## Where type can be one of the following: ## icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, ## icmp-proto-unreachable, icmp-net-prohibited, icmp-host-prohibited or ## tcp-reset (Only valid if the protocol if TCP) ## If the zone equal this zone, then the rules apply to packets originating from ## this network towards the firewall #REPLY_AUTH="ALL tcp-reset tcp auth 0.0.0.0/0=>0.0.0.0/0" ## Alter the destination of packets. ## Use: REDIRECT_XXX=" ip[/mask]> <[ipaddr[,ipaddr]*] [port]>" ## The rule applies only for packet originating from this zone. #REDIRECT_PROXY="tcp 80 0.0.0.0/0=>0.0.0.0/0 127.0.0.1 3128" ## Log all traffic for these IP addresses ## Use WATCH_IP="[IP[/MASK]]*|[FILE]" #WATCH_IP="111.111.111.111/32 222.222.222.222/24" ## Strip ECN bits from all packets destined for specified IP-addresses ## in this zone ## Use: ECN_REMOVE="[IP[/MASK]]*|[FILE]" #ECN_REMOVE="111.111.111.111/32 222.222.222.222/24" ## Dissalow any communication with specified MAC-addresses in this zone ## Use: MAX_DROP="[MAC address]*|[FILE]" ## Inserted on PREROUTING chain #MAC_DROP="XX:XX:XX:XX:XX:XX YY:YY:YY:YY:YY:YY" ## Dissalow any communication with specified IP-addresses in this zone ## Use: IP_DROP="[IP[/MASK]]*|[FILE]" #IP_DROP="111.111.111.111/32 222.222.222.222/24" ## Change the source address of a packet comming from this zone. ## This is also called masquerading. ## Use: SNAT[N]=" [:port]]*]> ip[/mask]>" ## Where: ZONE : Destination zone. The source of matched packets is ## changed to all ip numbers for the zone. ## Warning: enabling a default (0.0.0.0=>0.0.0.0) SNAT rule and having ## GLOBAL=1 or DYNAMIC=1 enables NAT for *all* zones since there is no way ## to know the networks for NAT beforehand. Be sure to restrict the ## FORWARD[x] rules in zone.ext to only forward traffic from this network. SNAT[0]="EXT ALL 0.0.0.0/0=>0.0.0.0/0" ## Limit new packets. ## Use: LIMIT_XXX=" *|<:port>]> ip[/mask]>" ## Where: ## ZONE : Is the zone from which the packet originates. This can be this zone itself. ## POLICY : Is what to do with the packet: ACCEPT|REJECT|DROP ## LIMIT : Maximum average matching rate: specified as a number, with an optional ## '/second', '/minute', '/hour', or '/day' suffix. ## BURST : Maximum initial number of packets to match: this ## number gets recharged by one every time the limit ## specified above is not reached, up to this number. ## PROTOCOL : The protocol: tcp|udp|icmp|all. This parameter is optional ## PORTS : If protocol is tcp|udp: A list of ports or a port range. ## icmp : A single icmp type. ## this parameter is optional, and must only be specified, ## if a protocol is specified. ## IP/MASK : If PORTS are specified, then an optional IP/MASK source and address can be specified. #LIMIT_PING="EXT DROP 1/second 3 ICMP echo-request 0.0.0.0/0=>0.0.0.0/0" fiaif-1.23.1/conf/fiaif.conf0000640000175000017500000001052611571724545015053 0ustar calvincalvin############################################################################### # FIAIF global configuration file. # Version $Id: fiaif.conf,v 1.37 2003/05/24 22:50:51 afu Exp $ ############################################################################### ## Reserved (illegal) and private networks ## See: www.iana.com RESERVED_NETWORKS=reserved_networks PRIVATE_NETWORKS=private_networks LOOPBACK_NET="127.0.0.1/255.0.0.0" SERVICES="/etc/services" ############################################################################### # Search path for binaries ############################################################################### BIN_PATH=/sbin:/usr/sbin:/usr/local/sbin ############################################################################### # User configurable parameters ############################################################################### ## Activate fiaif? ## Set this VARIABLE to 0 or delete the line to enable FIAIF. DONT_START=1 ## Configuration directory. All configuration files are read from this ## directory. CONF_DIR=/etc/fiaif/ ## Zone names. Only these zones are used. ## You must have a CONF_ entry for each below. ZONES="EXT INT" ## Zone cofiguration files. ## The files are expected to be found in CONF_DIR ## Use: CONF_XXX= CONF_INT=zone.int CONF_EXT=zone.ext CONF_DMZ=zone.dmz ## Use iptables-save and iptables restore to speed up ## Startup scripts. You should leave this setting to 0. ## Use: SAVE_STATE=0|1 SAVE_STATE=1 ## Change values in /proc/sys/net/* ## When issuing a 'fiaif test' a list of errors and warnings are displayed. ## The SET_PROC_ERRORS, specifies that FIAIF should correct the errors, and ## The SET_PROC_WARNINGS, specifies that FIAIF should correct the warnings. ## SET_PROC_ERRORS=<0|1> ## SET_PROC_WARNINGS=<0|1> SET_PROC_ERRORS=1 SET_PROC_WARNINGS=0 ## Enable TC for any zone. ## Overrides ENABLE_TC in zone configurations. ## Use: ENABLE_TC=<0|1> ENABLE_TC=0 ## File to which commands are written when making a test. ## TEST_FILE= TEST_FILE="/tmp/fiaif.out" ## If set to one the default policy of all standard chains (input, output ## and forward) will be to ACCEPT unmatched packets. ## If set to zero, the policy will be to DROP these packets, which should ## be the default. ## DEBUG=<0|1> DEBUG=0 ## Set to one, to enable logging via ulogd. ## You need to have the ulogd installed, to enable this functionality ## Note: does not work correctly with kernel 2.4.18. ## ENABLE_ULOGD=<0|1> ENABLE_ULOG=0 ## Set to one if dropped or rejected packets should be logged. ## VERBOSE=<0|1> VERBOSE=1 ## Prefix to pre-pend to log messages ## Use: LOG_PREFIX="FIAIF_" ## This will cause log messages to have [FIAIF_DROP] or [FIAIF_MARTIAN] (etc) ## as their marker LOG_PREFIX="FIAIF_" ## Limit the number of log-messages when packets are dropped. ## Lower to avoid spamming the logs. ## Use: LOG_LEVEL= ## Use: LOG_LIMIT= ## Use: LOG_BURST= ## LEVEL : defines the level (or priority) of the logged ## messages - See syslog.conf(5) for more ## If ulog is enabled, the value must be in the range ## 1..32 ## LIMIT : Maximum average matching rate: specified as a number, ## with an optional '/second', '/minute', '/hour', or '/day' ## suffix. ## BURST : Maximum initial number of packets to match: this ## number is incrementedby one every time the limit ## specified above is not reached, up to this number. LOG_LEVEL=CRIT LOG_LIMIT=10/minute LOG_BURST=10 ## Load modules upon starting the firewall. The modules will be ## unloaded, when the firewall is stopped. ## MODULES=[module_name]* MODULES="ip_nat_ftp" ## The following lines allows users specified commands to ## be executed before and after FIAIF is started/stopped. ## This can be used to e.g. insert additional rules for traffic counters, ## And then save/restore these. ## Use: ## __SCTIPT[N]= #PRE_START_SCRIPT[0]="" #PRE_START_SCRIPT[1]="" #POST_START_SCRIPT[0]="" #POST_START_SCRIPT[1]="" #PRE_STOP_SCRIPT[0]="" #PRE_STOP_SCRIPT[1]="" #POST_STOP_SCRIPT[0]="" #POST_STOP_SCRIPT[1]="" ## Specify localtion of "Type Of Services" file. ## This can either be empty or a file. TOS_FILE=type_of_services ## Specify aliases file. ## In this file, aliases for IP numbers can be specified. ALIASES=aliases fiaif-1.23.1/fiaif.spec0000640000175000017500000002557012076546620014135 0ustar calvincalvin# FIAIF is an Intelligent firewall, version: $Revision: 1.191 $ # # RPM specification file. # # Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2003 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Debian rpm hack. %define _sysconfdir /etc # Mandrake rpm hack %define _unpackaged_files_terminate_build 0 Summary: Fiaif is an Intelligent Firewall for iptables based Linux systems Summary(pl): Fiaif - inteligentny firewall bazuj?cy na iptables Name: fiaif Version: 1.23.1 Release: 0.1 License: GPL Group: Networking/Utilities Source0: http://www.fiaif.net/dist/%{name}_%{version}.tar.gz URL: http://www.fiaif.net/ Packager: Anders Fugmann BuildArch: noarch Requires: iptables >= 1.2.6a, Requires: bash >= 2.04 Requires: sed Requires: grep Requires: textutils Requires: sh-utils Requires: bind-utils Requires: mktemp Requires: crontabs Requires: /bin/awk Requires(post,preun): /sbin/chkconfig Prereq: /sbin/chkconfig #PreReq: rpm-helper Conflicts: ipmasq, knetfilter, firewall-easy, shorewall, firewall-init BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(id -u -n) %description The Goal of FIAIF is to provide a highly customizable script for setting up an iptables based firewall. Unlike many other scripts, FIAIF can be truly customized allowing multiple interfaces (or rather zones). There is no limit on the number of zones. All configuration is done through configuration files. No need to understand the script behind it all. The script makes heavy use of state-full firewalling, and all RELATED and ESTABLISHED packets are accepted on all chains. If you which to block something out, do not accept it in the first place. The script is written in BASH. Though this is not the optimal program to use, it means that you do not need to install extra interpreters on your firewall. This allows you to have a minimalistic installation on your firewall. Install this package if your machine is ever on the internet. %description -l pl Celem FIAIF jest udostêpnienie wysoce dostosowawczego skryptu ustawiania regu³ ¶ciany ogniowej opartej na netfiltrze. W przeciwieñstwie do innych skryptów, FIAIF umo¿liwia ustawianie regu³ na wielu interfejsach, a raczej strefach. Nie ma limitu stref. Ca³± konfiguracjê przeprowadza siê za pomoc± plików konfiguracyjnych. Nie ma potrzeby rozumienia stoj±cego za nimi skryptu. Skrypt mocno u¿ywa zabezpieczeñ typu stateful, przepuszczaj±c wszystkie pakiety RELATED i ESTABLISHED na wszystkich ³añcuchach. ¯eby co¶ zablokowaæ, wystarczy nie akceptowaæ tego na pocz±tku. Skrypt napisany jest w bashu, co pozwala na zmniejszenie koniecznej instalacji na ¶cianie ogniowej. %prep %setup -q -n %{name}-%{version} rm -Rf $RPM_BUILD_ROOT %build %install %{__make} install DESTDIR=$RPM_BUILD_ROOT %{__make} install-config DESTDIR=$RPM_BUILD_ROOT [ -f fiaif.ps ] && gzip -9 fiaif.ps install -d $RPM_BUILD_ROOT{%{_sbindir},%{_mandir}/man8} \ $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d install prog/fiaif $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/fiaif %clean rm -rf $RPM_BUILD_ROOT %post /sbin/chkconfig --add fiaif # Check is fiaif has been restarted yet. if [ -f %{_var}/lock/subsys/fiaif ]; then echo "Before restarting FIAIF, please go through the configuration" echo "and see if any updates are nessesary." else echo "Configure fiaif and remove the line 'DONT_START=1'" echo "from /etc/fiaif/fiaif.conf, then execute" echo "'/etc/rc.d/init.d/fiaif start' to start fiaif." fi %preun # Test that this is truly an remove. if [ "$1" = "0" ]; then if [ -f %{_var}/lock/subsys/fiaif ]; then /etc/rc.d/init.d/fiaif stop >&2 fi /sbin/chkconfig --del fiaif fi %files %defattr(644,root,root,755) %doc GPL.txt %doc changelog %doc doc/faq.txt %doc doc/DHCP.txt %doc doc/upgrade.txt %doc doc/reporting_bugs.txt %doc /usr/share/doc/fiaif/DHCP.txt %doc /usr/share/doc/fiaif/changelog %doc /usr/share/doc/fiaif/changelog.gz %doc /usr/share/doc/fiaif/copyright %doc /usr/share/doc/fiaif/fiaif.ps.gz %doc /usr/share/doc/fiaif/reporting_bugs.txt %doc /usr/share/doc/fiaif/upgrade.txt %dir %attr(0700,root,root) %{_sysconfdir}/fiaif/ %dir %attr(0700,root,root) %{_var}/lib/fiaif/ %config(noreplace) %verify(not size mtime md5) %attr(0600,root,root) %{_sysconfdir}/fiaif/zone.dmz %config(noreplace) %verify(not size mtime md5) %attr(0600,root,root) %{_sysconfdir}/fiaif/zone.ext %config(noreplace) %verify(not size mtime md5) %attr(0600,root,root) %{_sysconfdir}/fiaif/zone.int %config(noreplace) %verify(not size mtime md5) %attr(0600,root,root) %{_sysconfdir}/fiaif/fiaif.conf %config(noreplace) %verify(not size mtime md5) %attr(0600,root,root) %{_sysconfdir}/fiaif/reserved_networks %config(noreplace) %verify(not size mtime md5) %attr(0600,root,root) %{_sysconfdir}/fiaif/private_networks %config(noreplace) %verify(not size mtime md5) %attr(0600,root,root) %{_sysconfdir}/fiaif/aliases %config(noreplace) %verify(not size mtime md5) %attr(0600,root,root) %{_sysconfdir}/fiaif/type_of_services %config(noreplace) %verify(not size mtime md5) %attr(0644,root,root) %{_sysconfdir}/cron.daily/fiaif %attr(0755,root,root) %{_sysconfdir}/rc.d/init.d/fiaif %attr(0755,root,root) %{_sysconfdir}/init.d/fiaif %attr(0755,root,root) %{_sbindir}/fiaif-scan %attr(0755,root,root) %{_sbindir}/fiaif-update %attr(0755,root,root) %{_sbindir}/fiaif-getdev %dir %{_datadir}/fiaif %{_datadir}/fiaif/functions.sh %{_datadir}/fiaif/zones.sh %{_datadir}/fiaif/iptables.sh %{_datadir}/fiaif/proc-check.sh %{_datadir}/fiaif/sanity_check.sh %{_datadir}/fiaif/constants.sh %{_datadir}/fiaif/cleanup_rules.sh %{_datadir}/fiaif/aliases.sh %{_datadir}/fiaif/zone_rules.awk %{_datadir}/fiaif/fiaif_rules.awk %{_datadir}/fiaif/syntax.awk %{_datadir}/fiaif/cleanup_rules.awk %{_datadir}/fiaif/VERSION %{_mandir}/man8/fiaif.8* %{_mandir}/man5/zone.conf.5* %{_mandir}/man5/fiaif.conf.5* %{_mandir}/man8/fiaif-scan.8* %{_mandir}/man8/fiaif-update.8* %{_mandir}/man8/fiaif-getdev.8* %define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`) %changelog * Sat Jan 19 2013 Anders Fugmann - new upstream version 1.23.1 * Sun Mar 20 2011 Anders Fugmann - new upstream version 1.22.1 * Sun Mar 20 2011 Anders Fugmann - new upstream version 1.22.0 * Tue Jan 23 2007 Anders Fugmann - new upstream version 1.21.1 * Fri Dec 16 2005 Anders Fugmann - new upstream version 1.21.0 * Fri Dec 16 2005 Anders Fugmann - new upstream version 1.20.1 * Sun Dec 04 2005 Anders Fugmann - new upstream version 1.20.0 * Sun May 02 2004 Anders Fugmann - new upstream version 1.19.3 * Wed Feb 25 2004 Anders Fugmann - new upstream version 1.19.2 * Mon Feb 23 2004 Anders Fugmann - new upstream version 1.19.1 * Sun Feb 22 2004 Anders Fugmann - new upstream version 1.19.0 * Sat Jan 03 2004 Anders Fugmann - new upstream version 1.18.0 * Wed Oct 01 2003 Anders Fugmann - new upstream version 1.17.2 * Sun Sep 28 2003 Anders Fugmann - new upstream version 1.17.1 * Sun Sep 28 2003 Anders Fugmann - new upstream version 1.17.0 * Sun Aug 31 2003 Anders Fugmann - new upstream version 1.16.1 * Mon Aug 11 2003 Anders Fugmann - new upstream version 1.16.0 * Mon May 26 2003 Anders Fugmann - new upstream version 1.15.1 * Sun May 25 2003 Anders Fugmann - new upstream version 1.15.0 * Tue Apr 22 2003 Anders Fugmann - new upstream version 1.14.0 * Wed Apr 09 2003 Anders Fugmann - new upstream version 1.13.3 * Wed Apr 09 2003 Anders Fugmann - new upstream version 1.13.2 * Tue Apr 08 2003 Anders Fugmann - new upstream version 1.13.1 * Mon Apr 07 2003 Anders Fugmann - new upstream version 1.13.0 * Sun Apr 06 2003 Anders Fugmann - new upstream version 1.12.2 * Sun Mar 16 2003 Anders Fugmann - add aliases.sh * Sat Mar 08 2003 Anders Fugmann - new upstream version 1.12.1 * Sat Mar 01 2003 Anders Fugmann - new upstream version 1.12.0 * Fri Feb 28 2003 Anders Fugmann - new upstream version 1.11.0 * Sat Feb 22 2003 Anders Fugmann - new upstream version 1.10.0 * Sat Feb 22 2003 Anders Fugmann - new upstream version 1.9.2 * Thu Feb 20 2003 Anders Fugmann - new upstream version 1.9.1 * Mon Feb 17 2003 Anders Fugmann - new upstream version 1.9.0 * Thu Feb 13 2003 Anders Fugmann - new upstream version 1.8.2 * Thu Feb 13 2003 Anders Fugmann - new upstream version 1.8.1 * Tue Feb 11 2003 Anders Fugmann - new upstream version 1.8.0 * Tue Feb 11 2003 Anders Fugmann - new upstream version 1.7.4 * Wed Jan 29 2003 Anders Fugmann - new upstream version 1.7.3 * Wed Jan 29 2003 Anders Fugmann - new upstream version 1.7.2 * Wed Jan 29 2003 Anders Fugmann - new upstream version 1.7.1 - Do not require dia when building * Wed Jan 29 2003 Anders Fugmann - new upstream version 1.7.0 * Fri Jan 24 2003 Anders Fugmann - new upstream version 1.6.4 * Thu Jan 23 2003 Anders Fugmann - New build scripts * Sat Jan 4 2003 Anders Fugmann - Dont use _preun_service. It breaks things on RH 8.0 * Mon Dec 30 2002 Anders Fugmann - Work better with mandrake (Thanks to Rémi Denis-Courmont) * Thu Oct 24 2002 Anders Fugmann - Updated spec file based on changes from Sergiusz Pawlowicz. * Sun Sep 08 2002 Anders Fugmann - Remove /var/state/fiaif/iptables en upgrading. * Wed Jun 05 2002 Anders Fugmann - RPM done. - See /usr/share/doc/fiaif/changelog for more information fiaif-1.23.1/cron/0000750000175000017500000000000011571724545013135 5ustar calvincalvinfiaif-1.23.1/cron/fiaif0000750000175000017500000000051111571724545014136 0ustar calvincalvin#!/bin/sh # Retrieve a new version of reserved_networks and private_networks # If the files are updated, then an email will be send # to the admin with information about version number and a diff between # the old file and the new file /usr/sbin/fiaif-update --silent update && /etc/init.d/fiaif restart > /dev/null || true fiaif-1.23.1/src/0000750000175000017500000000000012076552122012752 5ustar calvincalvinfiaif-1.23.1/src/proc-check.sh0000640000175000017500000002727211571724545015350 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################## # Check /proc/sys/net settings, and print out any strange settings ############################################################################## function check_network_settings () { RES_ERRORS="" RES_WARNINGS="" echo "Examining system Configuration:" local PROC_PATH=/proc/sys/net/ipv4 if [ \! -d ${PROC_PATH} ];then echo "Could not find $PROC_PATH." echo "Please make sure that you have" echo "compiled the kernel with CONFIG_PROC_FS enabled" echo "and mounted /proc." echo "Aborting system examination." return fi local ERRORS=0 local WARNINGS=0 # /proc/sys/net/ipv4/conf/all/accept_source_route local SOURCE_ROUTE=$(cat /proc/sys/net/ipv4/conf/all/accept_source_route) if (( SOURCE_ROUTE == 1 )); then echo "Problem: accept_source_route=1" echo " Source routing should be disabled, to avoid IP-spoofing." echo " Please note that SRR is not a safeguard against IP-spoofing" echo "Solution:" echo " Make sure the line 'net/ipv4/conf/all/accept_source_route=0'" echo " is in /etc/sysctl.conf" echo RES_ERRORS="${RES_ERRORS} net/ipv4/conf/all/accept_source_route=0" let ERRORS++ fi # /proc/sys/net/ipv4/conf/all/accept_redirects local ACCEPT_REDIRECTS=$(cat /proc/sys/net/ipv4/conf/all/accept_redirects) if (( SOURCE_ROUTE == 1 )); then echo "Problem: accept_redirects=1" echo " Do not accept redirects to minimize possibility of IP-spoofing." echo "Solution:" echo " Make sure the line 'net/ipv4/conf/all/accept_redirects=0'" echo " is in /etc/sysctl.conf" echo RES_ERRORS="${RES_ERRORS} net/ipv4/conf/all/accept_redirects=0" let ERRORS++ fi # /net/ipv4/ip_forward local NR_ZONES=0 local DUMMY for DUMMY in $ZONES; do let NR_ZONES++ done local IP_FORWARD=$(cat /proc/sys/net/ipv4/ip_forward) if (( NR_ZONES <= 1 && IP_FORWARD == 1 )); then # Only one zone, but ip_forward enabled echo "Problem: ip_forward=1" echo " You have not specified multiple zones, yet 'ip_forward' is enabled." echo " This poses a security risk." echo "Solution:" echo " Make sure the line 'net/ipv4/ip_forward=0' is in /etc/sysctl.conf" echo RES_ERRORS="${RES_ERRORS} net/ipv4/ip_forward=0" let ERRORS++ elif (( NR_ZONES >= 2 && IP_FORWARD == 0 )); then # Multiple zones, but no forwarding. echo "Problem: ip_forward=0" echo " You have specified multiple zones, yet 'ip_forward' is not enabled." echo " This means that your firewall cannot route packets between zones." echo "Solution:" echo " Make sure the line 'net/ipv4/ip_forward=1' is in /etc/sysctl.conf" echo RES_ERRORS="${RES_ERRORS} net/ipv4/ip_forward=1" let ERRORS++ fi # net/ipv4/conf/all/rp_filter=1 local ZONE local GLOBAL_ZONES=0 for ZONE in ${ZONES}; do read_zone ${ZONE} if (( $? == 0 && GLOBAL == 1 )); then let GLOBAL_ZONES++ fi done local RP_FILTER=$(cat /proc/sys/net/ipv4/conf/all/rp_filter) if (( GLOBAL_ZONES <= 1 )); then if (( RP_FILTER == 0 )); then echo "Warning: rp_filter=0" echo " Source validation by reversed path, as specified in RFC1812 is disabled." echo " If you only have one internet connection, this should be enabled." echo " It should be disabled if you have multible routes to the same network, e.g. two " echo " or more internet connections." echo "Solution:" echo " Make sure the line 'net/ipv4/conf/all/rp_filter=1' is in /etc/sysctl.conf" echo let WARNINGS++ RES_WARNINGS="${RES_WARNINGS} net/ipv4/conf/all/rp_filter=1" fi else if (( RP_FILTER > 0 )); then echo "Warning: rp_filter != 0" echo " Source validation by reversed path, as specified in RFC1812 is enabled." echo " Since you have specified more that two global zones, FIAIF assumes that you have more " echo " than one internet connection. If this is the case, rp_filter should be disabled." echo "Solution:" echo " Make sure the line 'net/ipv4/conf/all/rp_filter=0' is in /etc/sysctl.conf" echo " or use the 'rp_filter_mask' patch, which can be found at" echo " http://www.linuxvirtualserver.org/~julian/. When this is applied" echo " you can saftly disregard this message." echo let ERRORS++ RES_ERRORS="${RES_ERRORS} net/ipv4/conf/all/rp_filter=0" fi fi # net/ipv4/icmp_echo_ignore_broadcasts=1 if (( $(cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts) == 0 )); then echo "Warning: icmp_echo_ignore_broadcasts=0" echo " System responds to broadcast ping." echo " This is often used by hackers, who makes broadcast pings to see which hosts are up." echo "Solution:" echo " Make sure the line 'net/ipv4/icmp_echo_ignore_broadcasts=1' is in /etc/sysctl.conf" echo RES_WARNINGS="${RES_WARNINGS} net/ipv4/icmp_echo_ignore_broadcasts=1" let WARNINGS++ fi # net/ipv4/tcp_syncookies if [ -f /proc/sys/net/ipv4/tcp_syncookies ]; then if (( $(cat /proc/sys/net/ipv4/tcp_syncookies) == 0 )); then echo "Warning: tcp_syncookies=0" echo " Send out syncookies when the syn backlog queue of a socket" echo " overflows. This is done to prevent against the common 'syn flood attack'" echo " This might break things on high load servers." echo "Solution:" echo " Make sure the line 'net/ipv4/tcp_syncookies=1' is in /etc/sysctl.conf" echo RES_WARNINGS="${RES_WARNINGS} net/ipv4/tcp_syncookies=1" let WARNINGS++ fi else echo "Warning: Kernel compiled without 'CONFIG_SYNCOOKIES'" echo " Send out syncookies when the syn backlog queue of a socket" echo " overflows. This is to prevent against the common 'syn flood attack'" echo " Do not enable this on high load servers." echo "Solution:" echo " Recompile the kernel with 'CONFIG_SYNCOOKIES' option" echo let WARNINGS++ fi # net/ipv4/tcp_ecn=1 if [ -f /proc/sys/net/ipv4/tcp_ecn ]; then if (( $(cat /proc/sys/net/ipv4/tcp_ecn) == 0 )); then echo "Warning: tcp_ecn=0" echo " ECN (Explicit Congestion Notification) is defined in RFC3168." echo " It allows routers on the internet to notify when congestion occurs," echo " and can avoid packet being dropped due to queue overflow. Overall this is" echo " good for the internet." echo " The backside is that some really brain-damaged firewalls and routers do" echo " not allow packets with the ECN bit set (and thus not conforming to RFC3168). " echo "Solution:" echo " Make sure the line 'net/ipv4/tcp_ecn=1' is in /etc/sysctl.conf" echo RES_WARNINGS="${RES_WARNINGS} net/ipv4/tcp_ecn=1" let WARNINGS++ fi else echo "Warning: Kernel not compiled with ECN support." echo " ECN (Explicit Congestion Notification) is defined in RFC3168." echo " It allows routers on the internet to notify when congestion occurs," echo " and can avoid packet being dropped due to queue overflow. Overall this is" echo " good for the internet." echo " The backside is that some really brain-damaged firewalls and routers do" echo " not allow packets with the ECN bit set (and thus not conforming to RFC3168). " echo "Solution:" echo " Recompile the kernel with 'CONFIG_INET_ECN' option." echo let WARNINGS++ fi # net/ipv4/tcp_fin_timeout > ${TCP_FIN_TIMEOUT} if (( $(cat /proc/sys/net/ipv4/tcp_fin_timeout) > ${TCP_FIN_TIMEOUT} )); then echo "Warning: tcp_fin_timeout > ${TCP_FIN_TIMEOUT}" echo " System holds broken TCP connections for more than ${TCP_FIN_TIMEOUT} seconds" echo " Holding these connectinos open can quickly overflow memory." echo "Solution:" echo " Make sure the line 'net/ipv4/tcp_fin_timeout=${TCP_FIN_TIMEOUT}' is in /etc/sysctl.conf" echo RES_WARNINGS="${RES_WARNINGS} net/ipv4/tcp_fin_timeout=${TCP_FIN_TIMEOUT}" let WARNINGS++ fi # /net/ipv4/ip_dynaddr local ZONE local DYNAMIC_ZONES=0 for ZONE in ${ZONES}; do read_zone ${ZONE} if (( $? == 0 && DYNAMIC == 1 )); then let DYNAMIC_ZONES++ fi done local IP_DYNADDR=$(cat /proc/sys/net/ipv4/ip_dynaddr) if (( IP_DYNADDR == 1 && DYNAMIC_ZONES == 0 )); then echo "Warning: Dynamic addresses enabled." echo " Dynamic addresses should only be enabled if the ip address of any of your interfaces can" echo " change while the interface is up. As no zones are specified as dynamic this should never happen." echo "Solution:" echo " Make sure the line 'net/ipv4/ip_dynaddr=0' is in /etc/sysctl.conf" RES_WARNINGS="${RES_WARNINGS} net/ipv4/ip_dynaddr=0" let WARNINGS++ elif (( IP_DYNADDR == 0 && DYNAMIC_ZONES == 1 )); then echo "Warning: Dynamic addresses disabled." echo " The kernel is set not to allow address changes on intercases while they are up." echo " However, as one or more zones are specified as dynamic, this indicates that this may happen." echo "Solution:" echo " Make sure the line 'net/ipv4/ip_dynaddr=1' is in /etc/sysctl.conf" RES_WARNINGS="${RES_WARNINGS} net/ipv4/ip_dynaddr=1" let WARNINGS++ fi if (( ERRORS > 0 || WARNINGS > 0 )); then echo echo "Problems found: ${ERRORS}" echo "Warnings found: ${WARNINGS}" echo echo "Above is given a description of the problems and warnings found while" echo "examining the system, and solutions are given." echo "Please read carefully, since it might improve overall security of your system" echo "For more information, please see: " echo " http://www.linuxhq.com/kernel/v2.4/doc/networking/ip-sysctl.txt.html" echo " http://ipsysctl-tutorial.frozentux.net/ipsysctl-tutorial.html" else echo "Done." fi } function set_proc () { local STATE_FILE=$1 local RES_ERRORS local RES_WARNINGS check_network_settings > /dev/null if [[ -n ${STATE_FILE} ]]; then rm -fr ${STATE_FILE} touch ${STATE_FILE} chown root:root ${STATE_FILE} chmod 600 ${STATE_FILE} else STATE_FILE=/dev/null fi local FILE local VALUE if [ "${SET_PROC_ERRORS}" = "1" ]; then for CHANGE in ${RES_ERRORS}; do FILE=/proc/sys/${CHANGE%=*} VALUE=${CHANGE#*=} echo "${CHANGE%=*}=$(cat ${FILE})" >> ${PROC_STATE_FILE} echo ${VALUE} > ${FILE} done fi if [ "${SET_PROC_WARNINGS}" = "1" ]; then for CHANGE in ${RES_WARNINGS}; do FILE=/proc/sys/${CHANGE%=*} VALUE=${CHANGE#*=} echo "${CHANGE%=*}=$(cat ${FILE})" >> ${STATE_FILE} echo ${VALUE} > ${FILE} done fi } function restore_proc () { # This could also be done by sysctl, if we wanted to depend on it. local STATE_FILE=$1 echo -n "Restoring proc settings: " if [[ -f ${STATE_FILE} ]]; then CHANGES=$(cat ${STATE_FILE}) for CHANGE in ${CHANGES}; do FILE=/proc/sys/${CHANGE%=*} VALUE=${CHANGE#*=} echo ${VALUE} > ${FILE} done else echo -n "File '${STATE_FILE}' not found " fi echo "Done." } fiaif-1.23.1/src/constants.sh0000640000175000017500000000664311571724545015345 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################### # Constants ############################################################################### declare -r CONF_FILE=${FIAIF_CONF:-/etc/fiaif/fiaif.conf} declare -r FIAIF_STATE_FILE=/var/lib/fiaif/fiaif declare -r NETFILTER_STATE_FILE=/var/lib/fiaif/iptables declare -r PROC_STATE_FILE=/var/lib/fiaif/sysctl declare -r SUBSYS_FILE=/var/lock/subsys/fiaif declare -r FIAIF_SHARED=/usr/share/fiaif/ declare -r VERSION_FILE=${FIAIF_SHARED}/VERSION declare -r BUILT_IN_CHAINS_nat="PREROUTING OUTPUT POSTROUTING" declare -r BUILT_IN_CHAINS_mangle="PREROUTING INPUT FORWARD OUTPUT POSTROUTING" declare -r BUILT_IN_CHAINS_filter="INPUT FORWARD OUTPUT" declare -r LOG_ACCEPT_TARGETS="ACCEPT LIMIT_ACCEPT" declare -r LOG_DROP_TARGETS="MARTIAN DROP INVALID MISS ZONE_MISS \ LIMIT_DROP SYN SCAN GLOBAL_MISS" declare -r LOG_REJECT_TARGETS="REJECT LIMIT_REJECT" declare -r LOG_TARGETS="WATCH TEST LOG" declare -r STANDARD_TARGETS="ACCEPT REJECT DROP" declare -r -i MAX_MULTI_PORTS=15 if [ -f /proc/net/ip_tables_names ]; then declare -r TABLES=$(cat /proc/net/ip_tables_names) else declare -r TABLES="filter nat mangle" fi if [ ! -d /var/lock/subsys ]; then mkdir -p /var/lock/subsys fi ############################################################################### # Global Variables ############################################################################### LINUX_VERSION=$(uname -a | cut -d" " -f 3) declare -ri MAJOR=$(echo ${LINUX_VERSION} | cut -d"." -f 1) declare -ri MINOR=$(echo ${LINUX_VERSION} | cut -d"." -f 2) declare -ri RELEASE=$(echo ${LINUX_VERSION} | cut -d"." -f 3 | sed "s/\([[:digit:]]*\).*/\1/") #if [ ${MAJOR} -gt 2 -o ${MINOR} -gt 4 -o ${RELEASE} -ge 18 ]; then iptables -t mangle -L POSTROUTING > /dev/null 2>&1 if (( $? == 0 )); then declare -ri EXTENDED_MANGLE=1 else declare -ri EXTENDED_MANGLE=0 fi ############################################################################### # Proc check constants ############################################################################### declare -ri TCP_FIN_TIMEOUT=60 ############################################################################### # Function check ############################################################################### #Test how to resolve ip's type dnsname &> /dev/null if (( $? == 0 )); then DNS_RESOLVE="dnsname" else DNS_RESOLVE="dig +short +tries=1 +noauthority -x" fi declare -r DNS_RESOLVE fiaif-1.23.1/src/sanity_check.sh0000640000175000017500000001273712076551023015764 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################### # Filter out illegal packets. # Parameters: ############################################################################### function add_sanity_check() { local TABLE=$1 local QUEUE=$2 IPTABLES -t ${TABLE} -A ${QUEUE} -m conntrack --ctstate INVALID -j LOG_INVALID IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL ACK -m conntrack --ctstate ESTABLISHED -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL ACK -m conntrack --ctstate NEW,RELATED -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL SYN -m conntrack --ctstate NEW -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL SYN -m conntrack --ctstate RELATED -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL PSH,ACK -m conntrack --ctstate ESTABLISHED -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL PSH,ACK -m conntrack --ctstate NEW -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL PSH,ACK -m conntrack --ctstate RELATED -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL NONE -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL ALL -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags SYN,RST SYN,RST -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags RST,FIN RST,FIN -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags SYN,URG SYN,URG -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL SYN,PSH -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL SYN,ACK,PSH -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ACK,FIN FIN -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ACK,PSH PSH -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ACK,URG URG -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL RST -m conntrack --ctstate ESTABLISHED -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL RST -m conntrack --ctstate NEW,RELATED -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags SYN,ACK NONE -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL SYN -m conntrack --ctstate NEW -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL SYN -m conntrack --ctstate RELATED -j RETURN ## This seems to conservative.... # IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL SYN -m conntrack --ctstate ESTABLISHED -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL SYN,ACK -m conntrack --ctstate ESTABLISHED -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL SYN,ACK -m conntrack --ctstate NEW,RELATED -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL FIN,ACK -m conntrack --ctstate ESTABLISHED -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL FIN,ACK -m conntrack --ctstate NEW,RELATED -j LOG_SCAN_NOLOG IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL ACK,PSH,RST -m conntrack --ctstate ESTABLISHED -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL ACK,PSH,RST -m conntrack --ctstate NEW,RELATED -j LOG_SCAN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL FIN,PSH,ACK -m conntrack --ctstate ESTABLISHED -j RETURN IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL FIN,PSH,ACK -m conntrack --ctstate NEW,RELATED -j LOG_SCAN #IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL RST,ACK,PSH -j LOG_SCAN #IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL RST,ACK,URG -j LOG_SCAN #IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL RST,ACK,PSH,URG -j LOG_SCAN #IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL FIN,PSH,ACK,URG -j LOG_SCAN #IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL ACK,URG -j LOG_SCAN #IPTABLES -t ${TABLE} -A ${QUEUE} -p tcp --tcp-flags ALL ACK,URG,FIN -j LOG_SCAN ### ICMP TESTS IPTABLES -t ${TABLE} -A ${QUEUE} -p icmp --fragment -j LOG_DROP IPTABLES -t ${TABLE} -A ${QUEUE} -p icmp --icmp-type address-mask-request -j LOG_DROP IPTABLES -t ${TABLE} -A ${QUEUE} -p icmp --icmp-type address-mask-reply -j LOG_DROP IPTABLES -t ${TABLE} -A ${QUEUE} -p icmp --icmp-type timestamp-request -j LOG_DROP IPTABLES -t ${TABLE} -A ${QUEUE} -p icmp --icmp-type timestamp-reply -j LOG_DROP IPTABLES -t ${TABLE} -A ${QUEUE} -p icmp --icmp-type redirect -j LOG_DROP } fiaif-1.23.1/src/iptables.sh0000640000175000017500000003715412076545330015127 0ustar calvincalvin# FIAIF is an Intelligent firewall # # Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################### # Clear all chains # Arguments: 0 for close, 1 for open. ############################################################################### function iptables_stop () { local DEBUG=$1 local POLICY if (( DEBUG == 0 )); then POLICY=DROP else POLICY=ACCEPT fi echo -n "Clearing all rules: " IPTABLES -F IPTABLES -F -t nat IPTABLES -F -t mangle IPTABLES -X IPTABLES -X -t nat IPTABLES -X -t mangle IPTABLES -Z IPTABLES -Z -t nat IPTABLES -Z -t mangle #Always set default policy. IPTABLES -P INPUT ${POLICY} IPTABLES -P FORWARD ${POLICY} IPTABLES -P OUTPUT ${POLICY} IPTABLES -t nat -P PREROUTING ACCEPT IPTABLES -t nat -P POSTROUTING ACCEPT IPTABLES -t nat -P OUTPUT ACCEPT IPTABLES -t mangle -P PREROUTING ACCEPT IPTABLES -t mangle -P OUTPUT ACCEPT if (( EXTENDED_MANGLE == 1 )); then IPTABLES -t mangle -P INPUT ACCEPT IPTABLES -t mangle -P FORWARD ACCEPT IPTABLES -t mangle -P POSTROUTING ACCEPT fi echo "Done." } ############################################################################### # setup_default_chains ############################################################################### function setup_default_chains () { debug_out "Setting up default chains." local POLICY local LOG_NAME local TARGET LOG_LIMIT=${LOG_LIMIT:=5/min} LOG_BURST=${LOG_BURST:=5} if (( VERBOSE == 1 )); then for TARGET in ${STANDARD_TARGETS}; do IPTABLES -N LIMIT_LOGGING_${TARGET} IPTABLES -A LIMIT_LOGGING_${TARGET} -m limit --limit ${LOG_LIMIT} \ --limit-burst ${LOG_BURST} -j RETURN if (( $? == 0 )); then IPTABLES -A LIMIT_LOGGING_${TARGET} -j ${TARGET} fi done fi local LOG if (( ENABLE_ULOG == 1 )); then let ${LOG_LEVEL:=1} LOG="-j ULOG --ulog-nlgroup ${LOG_LEVEL} --ulog-prefix " else let ${LOG_LEVEL:=CRIT} LOG="-j LOG --log-level ${LOG_LEVEL} --log-prefix " fi # All DROP targets if (( DEBUG == 0 )); then POLICY=DROP else POLICY=ACCEPT fi for LOG_NAME in ${LOG_DROP_TARGETS}; do IPTABLES -N LOG_${LOG_NAME} IPTABLES -N LOG_${LOG_NAME}_NOLOG if (( VERBOSE == 1 )); then IPTABLES -A LOG_${LOG_NAME} -j LIMIT_LOGGING_${POLICY} IPTABLES -A LOG_${LOG_NAME} ${LOG} "[${LOG_PREFIX}${LOG_NAME}]:" fi IPTABLES -A LOG_${LOG_NAME} -j ${POLICY} IPTABLES -A LOG_${LOG_NAME}_NOLOG -j ${POLICY} done # All REJECT targets if (( DEBUG == 0 )); then POLICY=REJECT else POLICY=ACCEPT fi for LOG_NAME in ${LOG_REJECT_TARGETS}; do IPTABLES -N LOG_${LOG_NAME} IPTABLES -N LOG_${LOG_NAME}_NOLOG if (( VERBOSE == 1 )); then IPTABLES -A LOG_${LOG_NAME} -j LIMIT_LOGGING_${POLICY} IPTABLES -A LOG_${LOG_NAME} ${LOG} "[${LOG_PREFIX}${LOG_NAME}]:" fi IPTABLES -A LOG_${LOG_NAME} -j ${POLICY} IPTABLES -A LOG_${LOG_NAME}_NOLOG -j ${POLICY} done # All ACCEPT targets (Never log.) for LOG_NAME in ${LOG_ACCEPT_TARGETS}; do IPTABLES -N LOG_${LOG_NAME} IPTABLES -N LOG_${LOG_NAME}_LOG if (( VERBOSE == 1 )); then IPTABLES -A LOG_${LOG_NAME}_LOG -j LIMIT_LOGGING_ACCEPT IPTABLES -A LOG_${LOG_NAME}_LOG ${LOG} "[${LOG_PREFIX}${LOG_NAME}]:" fi IPTABLES -A LOG_${LOG_NAME} -j ACCEPT IPTABLES -A LOG_${LOG_NAME}_LOG -j ACCEPT done # Pure logging targets. for LOG_NAME in ${LOG_TARGETS}; do IPTABLES -N LOG_${LOG_NAME} IPTABLES -A LOG_${LOG_NAME} ${LIMIT} ${LOG} "[${LOG_PREFIX}${LOG_NAME}]:" done # Drop packets, but dont log them. if (( DEBUG == 0 )); then POLICY=DROP else POLICY=ACCEPT fi IPTABLES -N NOLOG_DROP IPTABLES -A NOLOG_DROP -j ${POLICY} # Make reserved chain local RESERVED # Either a list or a file. debug_out "RESERVED_NETWORKS=${RESERVED_NETWORKS}" IPTABLES -N RESERVED_SRC IPTABLES -N RESERVED_DST if [[ -f "${CONF_DIR}/${RESERVED_NETWORKS}" ]]; then cat "${CONF_DIR}/${RESERVED_NETWORKS}" | cut -d"#" -f1 | while read RESERVED; do if [[ -z "${RESERVED}" ]]; then continue fi IPTABLES -A RESERVED_SRC -s ${RESERVED} -j LOG_MARTIAN IPTABLES -A RESERVED_DST -d ${RESERVED} -j LOG_MARTIAN done else for RESERVED in ${RESERVED_NETWORKS}; do IPTABLES -A RESERVED_SRC -s ${RESERVED} -j LOG_MARTIAN IPTABLES -A RESERVED_DST -d ${RESERVED} -j LOG_MARTIAN done fi local PRIVATE debug_out "PRIVATE_NETWORKS=${PRIVATE_NETWORKS}" IPTABLES -N PRIVATE_SRC IPTABLES -N PRIVATE_DST if [[ -f "${CONF_DIR}/${PRIVATE_NETWORKS}" ]]; then cat "${CONF_DIR}/${PRIVATE_NETWORKS}" | cut -d"#" -f1 | while read PRIVATE; do if [[ -z "${PRIVATE}" ]]; then continue fi IPTABLES -A PRIVATE_SRC -s ${PRIVATE} -j LOG_MARTIAN IPTABLES -A PRIVATE_DST -d ${PRIVATE} -j LOG_MARTIAN done else for PRIVATE in ${PRIVATE_NETWORKS}; do IPTABLES -A PRIVATE_SRC -s ${PRIVATE} -j LOG_MARTIAN IPTABLES -A PRIVATE_DST -d ${PRIVATE} -j LOG_MARTIAN done fi debug_out "Setup packets sanity checks" IPTABLES -t filter -N SANITY add_sanity_check filter SANITY local DEVICE IPTABLES -N CHECK_IP for DEVICE in ${DEVICE_LIST}; do IPTABLES -N DEV_${DEVICE}_SRC IPTABLES -N DEV_${DEVICE}_DST IPTABLES -A CHECK_IP -i ${DEVICE} -j DEV_${DEVICE}_SRC IPTABLES -A CHECK_IP -o ${DEVICE} -j DEV_${DEVICE}_DST done # Add zone miss targets. if (( DEBUG == 0 )); then POLICY=DROP else POLICY=ACCEPT fi for ZONE in ${ZONES}; do IPTABLES -N LOG_MISS_${ZONE} if (( VERBOSE == 1 )); then IPTABLES -A LOG_MISS_${ZONE} -j LIMIT_LOGGING_${POLICY} IPTABLES -A LOG_MISS_${ZONE} ${LOG} "[${LOG_PREFIX}ZONE_MISS_${ZONE}]:" fi IPTABLES -A LOG_MISS_${ZONE} -j ${POLICY} done } ############################################################################### # Setup initial redirection to chains. ############################################################################### function chain_redirect () { debug_out "Global chains" local CHAIN local PROTOCOL local DEVICE local PARAM IPTABLES -N GENERAL IPTABLES -A GENERAL -j SANITY IPTABLES -A GENERAL -m conntrack --ctstate RELATED,ESTABLISHED -j LOG_ACCEPT # We only examine new packets. IPTABLES -A GENERAL -j CHECK_IP for CHAIN in ${BUILT_IN_CHAINS_filter}; do IPTABLES -N ${CHAIN}_NEW IPTABLES -A ${CHAIN} -j GENERAL IPTABLES -A ${CHAIN} -m conntrack --ctstate NEW -j ${CHAIN}_NEW IPTABLES -A ${CHAIN} -j LOG_GLOBAL_MISS for DEVICE in ${DEVICE_LIST}; do IPTABLES -N ${CHAIN}_NEW_${DEVICE} case "${CHAIN}" in INPUT) PARAM="-i ${DEVICE}" ;; OUTPUT | FORWARD) PARAM="-o ${DEVICE}" ;; esac IPTABLES -A ${CHAIN}_NEW ${PARAM} -j ${CHAIN}_NEW_${DEVICE} done done if kernel_version_ge 2.4.21; then debug_out "Enable traceroute workarround:" IPTABLES -I OUTPUT -p ICMP -m conntrack --ctstate INVALID --icmp-type 11 \ -j OUTPUT_NEW fi for DEVICE in ${DEVICE_LIST}; do IPTABLES -N SEND_NEW_${DEVICE} # Insert before all other forward rules IPTABLES -I FORWARD_NEW -i ${DEVICE} -j SEND_NEW_${DEVICE} done } ############################################################################### # set_tos # Params: TOS protocol ports ############################################################################### function set_tos () { local CHAIN=$1 local TOS=$2 local PROTOCOL=$3 local PORTS=$4 if [[ -n "${PORTS}" ]]; then local PORTS_PARAM="" if [[ "${PORTS}" == "any" || "${PORTS}" == "ANY" ]]; then IPTABLES -t mangle -A ${CHAIN} -p ${PROTOCOL} \ -j TOS --set-tos ${TOS} else if [[ "${PROTOCOL}" = "icmp" || "${PROTOCOL}" = "ICMP" ]]; then IPTABLES -t mangle -A ${CHAIN} -p ${PROTOCOL} \ --icmp-type ${PORTS} -j TOS --set-tos ${TOS} else IPTABLES -t mangle -A ${CHAIN} -p ${PROTOCOL} \ -m multiport --dports ${PORTS} -j TOS --set-tos ${TOS} IPTABLES -t mangle -A ${CHAIN} -p ${PROTOCOL} \ -m multiport --sports ${PORTS} -j TOS --set-tos ${TOS} fi fi fi } ############################################################################### # Read TOS_FILE, and call set_tos ############################################################################### function read_tos() { if [[ -n "${TOS_FILE}" ]]; then if [[ ! -f ${CONF_DIR}/${TOS_FILE} ]]; then echo Could not locate TOS settings file: ${CONF_DIR}/${TOS_FILE}. else source ${CONF_DIR}/${TOS_FILE} # Create the chain. local CHAIN="SET_TOS" IPTABLES -t mangle -N ${CHAIN} local TOS # Setup TOS values: for TOS in ${!TOS_*}; do debug_out "${TOS}=${!TOS}" set_tos ${CHAIN} ${!TOS} done IPTABLES -t mangle -A ${CHAIN} -m helper --helper ftp -j TOS --set-tos Maximize-Throughput # Route the the chain. if (( EXTENDED_MANGLE == 1 )); then IPTABLES -t mangle -A INPUT -j ${CHAIN} IPTABLES -t mangle -A FORWARD -j ${CHAIN} IPTABLES -t mangle -A OUTPUT -j ${CHAIN} else IPTABLES -t mangle -A PREROUTING -j ${CHAIN} IPTABLES -t mangle -A OUTPUT -j ${CHAIN} fi fi fi } ############################################################################### # Setup zone LO. This zone is so specialized, # so who would change rules on this. # I still believe that the loopback interface is weired. ############################################################################### function configure_zone_lo () { debug_out "Configuring zone: LO" #Do not allow forwarding. IPTABLES -A FORWARD -o lo -j LOG_DROP IPTABLES -A FORWARD -i lo -j LOG_DROP # Accept any packets. IPTABLES -A INPUT -i lo -j ACCEPT # Allow lo to send any packets. IPTABLES -A OUTPUT -o lo -j ACCEPT } ############################################################################### # State valid: # returns 1, if the state file is valid. ############################################################################### function state_valid() { if [[ ! -f ${FIAIF_STATE_FILE} ]]; then return 2 fi if [[ ${FIAIF_STATE_FILE} -ot ${CONF_FILE} || ${FIAIF_STATE_FILE} -ot ${CONF_DIR}/${RESERVED_NETS} || \ ${FIAIF_STATE_FILE} -ot ${CONF_DIR}/${PRIVATE_NETS} || \ ${FIAIF_STATE_FILE} -ot ${CONF_DIR}/${TOS_FILE} || \ ${FIAIF_STATE_FILE} -ot ${VERSION_FILE} ]]; then return 1 fi local ZONE_FILE local ZONE for ZONE in ${ZONES}; do ZONE_FILE=CONF_${ZONE} ZONE_FILE=${CONF_DIR}/${!ZONE_FILE} if [[ ${FIAIF_STATE_FILE} -ot ${ZONE_FILE} ]]; then return 1 fi done local FILE for FILE in ${CONF_DIR}/*; do if [[ ${FIAIF_STATE_FILE} -ot ${FILE} ]]; then return 1 fi done return 0 } ############################################################################### # Test if a zone can be read and initialized. # returns 1, if everything is ok. ############################################################################### function test_zone () { local ZONE=$1 local ZONE_LIST=${ZONES// /,} local TMP_FILE=$(mktemp /tmp/fiaif-tmp.XXXXXX) local ZONE_FILE=CONF_${ZONE} ZONE_FILE=${!ZONE_FILE} ZONE_FILE=${CONF_DIR}/${ZONE_FILE} local AVAILABLE=1 local STRING # First test the syntax. # Remember to send all output to the debug file also. awk -v "ZONES=${ZONE_LIST}" \ -f ${FIAIF_SHARED}/syntax.awk \ -f ${FIAIF_SHARED}/zone_rules.awk < ${ZONE_FILE} > ${TMP_FILE} if (( $? != 0 )); then # We found an error. print_err "Syntax check for zone ${ZONE} failed. See errors below." cat ${TMP_FILE} | while read line; do print_err "${line}" done AVAILABLE=0 else # Try reading the zone. read_zone ${ZONE} if (( $? != 0 )); then print_err "Warning: Device for ${ZONE} is not up." print_err "Unable to configure zone." AVAILABLE=0 fi fi rm -f ${TMP_FILE} return ${AVAILABLE} } ############################################################################### # Main ############################################################################### function iptables_setup () { # Damn bash. We really needed this to be in a seperate function, # but declare only declares locally to functions. local GLOBAL_INTERFACES="" local DYNAMIC_INTERFACES="" DEVICE_LIST="" local DEVICE for ZONE in ${ZONES}; do # Test the zone file. test_zone ${ZONE} if (( $? == 0 )); then declare -ri ${ZONE}_AVAILABLE="0" let DEV_ERRORS++ else declare -r ${ZONE}_DEV="${DEV}" declare -r ${ZONE}_IP="${IP}" declare -ri ${ZONE}_DYNAMIC="${DYNAMIC}" declare -r ${ZONE}_BCAST="${BCAST}" declare -ri ${ZONE}_GLOBAL="${GLOBAL}" declare -r ${ZONE}_NETS="${NET} ${NET_EXTRA}" declare -r ${ZONE}_IPS="${IP} ${IP_EXTRA}" declare -ri ${ZONE}_AVAILABLE="1" # Make sure that only one DYNAMIC/GLOBAL zone per interface. local IFACE for IFACE in ${GLOBAL_INTERFACES} ${DYNAMIC_INTERFACES}; do if [[ "${IFACE}" == "${DEV}" ]]; then if (( GLOBAL == 1 )); then print_err "Error: Zone ${ZONE} declared GLOBAL, but a zone has already been defined for ${DEV}" elif (( DYNAMIC == 1 )); then print_err "Error: Zone ${ZONE} declared DYNAMIC, but a zone has already been defined for ${DEV}" else print_err "Error: Zone ${ZONE} covers interface ${DEV}, but a zone definition already exists" print_err "for ${DEV}, which is declared GLOBAL or DYNAMIC." fi declare ${ZONE}_AVAILABLE="0" let DEV_ERRORS++ fi done local AVAILABLE=${ZONE}_AVAILABLE AVAILABLE=${!AVAILABLE} if (( AVAILABLE == 0 )); then continue; fi if (( GLOBAL == 1 )); then GLOBAL_INTERFACES="${GLOBAL_INTERFACES} ${DEV}" fi if (( DYNAMIC == 1 )); then DYNAMIC_INTERFACES="${DYNAMIC_INTERFACES} ${DEV}" fi # Create a device-based list for DEVICE in ${DEVICE_LIST}; do if [[ "${DEVICE}" == "${DEV}" ]]; then break fi done if [[ "${DEVICE}" != "${DEV}" ]]; then DEVICE_LIST="${DEVICE_LIST} ${DEV}" fi # Create zone specific chains. zone_chains ${ZONE} fi done # Setup default global chains. setup_default_chains # Set TOS values read_tos # Configure the loopback device. configure_zone_lo # Setup chain redirection. chain_redirect # read aliases. if [[ -f "${CONF_DIR}/${ALIASES}" ]]; then local FILE=$(mktemp "/tmp/fiaif-tmp.XXXXXX") read_aliases ${CONF_DIR}/${ALIASES} ${FILE} source ${FILE} rm -f ${FILE} fi echo -n "Configuring zone:" for ZONE in ${ZONES}; do local ZONE_AVL=${ZONE}_AVAILABLE ZONE_AVL=${!ZONE_AVL} if (( ZONE_AVL == 1 )); then echo -n " ${ZONE}" configure_zone ${ZONE} fi done echo debug_out "Log martians" for DEVICE in ${DEVICE_LIST}; do IPTABLES -A DEV_${DEVICE}_SRC -j LOG_MARTIAN IPTABLES -A DEV_${DEVICE}_DST -j LOG_MARTIAN done return ${DEV_ERRORS} } fiaif-1.23.1/src/aliases.sh0000640000175000017500000000462611571724545014751 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################### # Compose a new file containing IPSETS # Arguments: ############################################################################### function read_aliases () { local IN_FILE=$1 local OUT_FILE=$2 local NEW_LINE=1 local LINE local LINE_NO=0 local ALIAS local VALUE local I cat ${IN_FILE} | cut -d"#" -f1 | while read -a LINE; do let LINE_NO++ if (( ${#LINE[*]} == 0 )); then continue fi # Syntax: ALIAS = [IP,]* ALIAS=${LINE[0]} if [[ "${LINE[1]}" != "=" ]]; then debug_err "Error in alias syntax on line ${LINE_NO}" fi VALUE="" for ((I=2;I<${#LINE[*]};I++)); do VALUE="${VALUE} ${LINE[I]}" done # Print the correct string to a new file echo "declare -r IPSET_${ALIAS}=\"${VALUE}\"" >> ${OUT_FILE} done } ############################################################################### # Expand an ip alias. # Args: # Returns: RESULT is a space seperated list of IPs. ############################################################################### function get_alias () { local ALIAS=$1 local VAR=IPSET_${ALIAS} VAR="${!VAR}" local RES # Will not recurse when no alias is found. for IP in ${VAR}; do get_alias ${IP} if [[ -n ${RESULT} ]]; then IP=${RESULT} fi if [[ -z ${RES} ]]; then RES=${IP} else RES="${RES} ${IP}" fi done RESULT="${RES}" } fiaif-1.23.1/src/fiaif_rules.awk0000640000175000017500000000625511571724545015770 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## This file contains the patterns and rules used by 'syntax.awk' ## To test the syntax of a zone configuration file. BEGIN { PATTERN["empty"] = "" PATTERN["any"] = ".*" PATTERN["space"] = "[ ]+" PATTERN["colon"] = ":" PATTERN["slash"] = "/" PATTERN["integer"] = "[0-9]+" PATTERN["hex"] = "[0-9A-F]+" PATTERN["string"] = "[A-Za-z][a-zA-Z0-9_-]*" PATTERN["boolean"] = "(0|1)" PATTERN["zone_name"] = "#string#" PATTERN["filename"] = "([/]*[A-Za-z0-9_.-]+)+" PATTERN["pathname"] = "[A-Za-z0-9_/.-]*" PATTERN["ip"] = "[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+" PATTERN["mask"] = "(#ip#|#integer#)" PATTERN["limit_rate"] = "(second|minute|hour|day)" PATTERN["limit"] = "#integer#/(#limit_rate#)" PATTERN["burst"] = "#integer#" PATTERN["path_list"] = "#pathname#(:#pathname#)*" PATTERN["zone_list"] = "#zone_name#([ ]+#zone_name#)*" PATTERN["module_list"] = "#string#([ ]+#string#)*" # Rules: RULE["RESERVED_NETWORKS"] = "filename" RULE["PRIVATE_NETWORKS"] = "filename" RULE["LOOPBACK_NET"] = "ip slash mask" RULE["SERVICES"] = "filename" RULE["BIN_PATH"] = "(path_list | empty) " RULE["DONT_START"] = "(boolean | empty)" RULE["CONF_DIR"] = "pathname" RULE["ZONES"] = "(zone_list)" RULE["CONF"] = "filename" RULE["SAVE_STATE"] = "boolean" RULE["SET_PROC_ERRORS"] = "boolean" RULE["SET_PROC_WARNINGS"] = "boolean" RULE["ENABLE_TC"] = "boolean" RULE["TEST_FILE"] = "filename" RULE["DEBUG"] = "boolean" RULE["ENABLE_ULOG"] = "boolean" RULE["VERBOSE"] = "boolean" RULE["LOG_PREFIX"] = "string" RULE["LOG_LEVEL"] = "(integer | string)" RULE["LOG_LIMIT"] = "limit" RULE["LOG_BURST"] = "burst" RULE["MODULES"] = "(module_list | empty)" RULE["PRE_SCRIPT"] = "any" RULE["POST_SCRIPT"] = "any" RULE["PRE_START_SCRIPT"] = "any" RULE["POST_START_SCRIPT"] = "any" RULE["PRE_STOP_SCRIPT"] = "any" RULE["POST_STOP_SCRIPT"] = "any" RULE["TOS_FILE"] = "filename" RULE["ALIASES"] = "filename" } fiaif-1.23.1/src/syntax.awk0000640000175000017500000001566311571724545015031 0ustar calvincalvin#! /usr/bin/awk -f # FIAIF is an Intelligent firewall, version: $Revision: 1.17 $ # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. BEGIN { FS = "NO SPLITTING" line = 0 errors = 0 } ## Test if a pattern covers the whole string ## Returns 1 on success, 0 othervice. function exact_match (string, pattern) { match(string, pattern) return ( RSTART == 1 && RLENGTH == length(string) ) } ## Trim a string starting spaces ## Returns a trimmed list. function trim (string) { if ( match(string, "[ ]+") == 1 ) return substr(string, RLENGTH+1) else return string } ## Expand a regular expression as found in the PATTERN array. ## Any elements enclosed in '#' is substituted by the corrosponding value ## as found in PATTERN[value]. ## Returns: The resulting string. function expand_pattern(pattern, expansion) { while ( match(pattern, "#[^#]*#" ) ) { expansion=substr(pattern,RSTART+1,RLENGTH-2) sub("#[^#]*#", PATTERN[expansion], pattern) } return pattern } ## Expand a rule as found in the RULE array. ## Any elements enclosed in '<' and '>' is substituted by the corrosponding value ## as found in RULE[value]. ## Returns: The resulting string. function expand_rule(rule, expansion) { while ( match(rule, "<[^#]*>" ) ) { expansion=substr(rule,RSTART+1,RLENGTH-2) sub("<[^#]*>", RULE[expansion], rule) } return rule } ## Generate an array of tokens from an string of tokens. ## Returns: number of tokens extracted. ## the 2. parameter contains an array of all found tokens. function split_tokens(token_list, token_arr, tok, token, tok_index) { tok=0 token_list=trim(token_list) while (length(token_list)) { if ( match(token_list, "[(][^)]*[)]") == 1 || match(token_list, "[^ ]*") == 1 ) { token_arr[tok++]=substr(token_list, 1, RLENGTH) token_list=trim(substr(token_list, RLENGTH+1)) } else { printf("Error in token_list"); break } } return tok } ## Eat tokens (as specified by the string 'tokens') from the given 'string'. ## Returns: 1 on success, 0 othervice. ## EMSG: A string containing the unmatched token. ## ELEN: The number of chars eaten. function eat(string, tokens, total_eaten, token, token_arr, eaten, expr, nr_tokens, compound, nr_compound, compound_arr) { error_msg = "" total_eaten=0 nr_tokens = split_tokens(tokens, token_arr) for ( token=0; token < nr_tokens; token++ ) { # printf("Next token: '%s'\n", token_arr[token]) # If expandable pattern if ( exact_match(token_arr[token], "<[^#]*>") ) { eaten = eat(string, expand_rule(token_arr[token])) if (!eaten) { ELEN+=total_eaten return 0 } eaten = ELEN } else { # If enclosed in paranthes if ( match(token_arr[token], "[(][^)]*[)]") == 1) { compound = substr(token_arr[token], 2, length(token_arr[token])-2) nr_compound = split(compound, compound_arr, "|") # List all compound tokens: for ( compound=1; compound <= nr_compound; compound++ ) { eaten = eat(string, compound_arr[compound], error_msg) # If something was eaten, then return an error. if (ELEN) { break } } if (!eaten) { ELEN+=total_eaten return 0 } eaten = ELEN } else { # just eat a standard pattern expr = expand_pattern(PATTERN[token_arr[token]]) if (DEBUG == 1) { printf(" Matching exp: %s (%s) to '%s'\n", expr, token_arr[token], string) } if ( match(string, expr) != 1 ) { EMSG = sprintf("<%s> expected.", token_arr[token]) ELEN = total_eaten return 0 } else { eaten=RLENGTH } } } string=substr(string, eaten+1) total_eaten+=eaten } ELEN = total_eaten EMSG = "" return 1 } ## Test values against rules for the paramter. ## Returns: 1 on success, 0 othervice. ## EMSG: A string containing the error message. ## ELEN: The number of chars eaten. function test_arguments(param_name, string, value, stripped) { ELEN=0 stripped=0 if ( ! exact_match(string, "([^ ]*|\".*\")[ #]*.*") ) { EMSG = "Value not enclosed in '\"'" return 0 } EMGS="" # Strip \". if ( match(string , "\".*\"") ) { string = substr(string, RSTART+1, RLENGTH-2) stripped=1 } value = eat(string, RULE[param_name]) # Test if extra chars exists (besides spaces): if ( value && ELEN < length(string) && ! (exact_match(substr(string, ELEN+1), "[ ]*([#].*)?") )) { EMSG="Unexpected character." value = 0 } ELEN+=stripped return value } ## Examine if a parametername is valid, and return ## the variable name on simple form function get_rule_name (string, name) { # First test that construction is ok. if ( ! (exact_match(string, "[A-Z]+[A-Z0-9_]*([[][0-9]+[]])?") || exact_match(string, "[A-Z]+[A-Z0-9_]*([[][$][{][#][A-Z]+[A-Z0-9_]*[[]@[]][}][]])?")) ) return "" # See if longname exists: if ( match(string, "[A-Z0-9_]+") == 1 ) { name=substr(string, 1, RLENGTH) if ( RULE[name] != "" ) { return name } } if ( match(string, "[A-Z]+") == 1 ) { name=substr(string, 1, RLENGTH) if ( RULE[name] != "" ) { return name } } return "" } ## Main functions (so to speak) ## Errors are printed to stdout. ## The total number of errors are stored in the var errors { if ( match($1, "=") ) { param=substr($1, 1, RSTART-1) value=substr($1, RSTART+1, length($1)) } else param=$1 line++ if ( match($1, "^[ ]*($|#)") == 0 ) { name = get_rule_name(param) if ( name == "" ) { errors++ printf("Line %d: Illegal parameter name <%s>\n", line, param) } else { if ( test_arguments(name, value) == 0 ) { errors++ printf("Line %d, pos %d: %s\n", line, ELEN+length(param)+2, EMSG) } } } } ## Give correct error value. ## If any erros was found, then exit with value if 1. ## Othervice exit with value 0. END { if (errors) { if (errors == 1) error_str="error" else error_str="errors" printf("%d lines scanned, %d %s found\n", line, errors, error_str) exit 1 } else { exit 0 } } fiaif-1.23.1/src/zone_rules.awk0000640000175000017500000001145312076546434015661 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## This file contains the patterns and rules used by 'syntax.awk' ## To test the syntax of a zone configuration file. BEGIN { # Patterns: # Parse the list of zones: if (ZONES != "") { gsub(",", "|", ZONES) ZONES = sprintf("%s|ALL|all", ZONES) } else { ZONES = "#string#" } PATTERN["alias"] = "#string#" PATTERN["zone"] = ZONES PATTERN["empty"] = "" PATTERN["any"] = ".*" PATTERN["space"] = "[ ]+" PATTERN["colon"] = ":" PATTERN["integer"] = "[0-9]+" PATTERN["hex"] = "[0-9A-Fa-f]+" PATTERN["string"] = "[A-Za-z][a-zA-Z0-9_-]*" PATTERN["boolean"] = "(0|1)" PATTERN["filename"] = "([/]*[A-Za-z0-9_.-]+)+" PATTERN["device"] = "[A-Za-z]+[0-9]*[+]?" PATTERN["proto_tcp_udp"] = "(TCP|tcp|UDP|udp)" PATTERN["proto_icmp"] = "(ICMP|icmp)" PATTERN["protocol"] = "(#integer#|#string#)" PATTERN["port"] = "(#integer#|#string#)" PATTERN["port_range"] = "#integer#(:#integer#)?" PATTERN["port_list"] = "(#port_range#|#port#)(,(#port_range#|#port#))*" PATTERN["icmp_type"] = "(#integer#)|(#string#)" PATTERN["policy"] = "(ACCEPT|REJECT|DROP|LOG|ACCEPT_LOG|DROP_NOLOG|REJECT_NOLOG)" PATTERN["ip"] = "[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+" PATTERN["ip_mask"] = "#ip#(/#mask#)?" PATTERN["ipset"] = "#string#" PATTERN["mask"] = "(#ip#|#integer#)" PATTERN["ip_extra_list"] = "#ip#([ ]+#ip#)*" PATTERN["ip_list"] = "#ip#(,#ip#)*" PATTERN["ip_mask_list"] = "#ip_mask#([ ]+#ip_mask#)*" PATTERN["ip_range"] = "#ip#(-#ip#)?" PATTERN["network"] = "#ip#/#mask#" PATTERN["network_list"] = "#network#([ ]+#network#)*" PATTERN["src_ip"] = "#ipset#|#ip_mask#" PATTERN["dst_ip"] = "#ipset#|#ip_mask#" PATTERN["to"] = "=>" PATTERN["mac"] = "#hex#:#hex#:#hex#:#hex#:#hex#:#hex#" PATTERN["mac_list"] = "#mac#([ ]+#mac#)*" PATTERN["limit_rate"] = "(second|minute|hour|day)" PATTERN["limit"] = "#integer#/(#limit_rate#)" PATTERN["burst"] = "#integer#" # Rules: RULE["PROTO_IP"] = "(proto_tcp_udp space port_list | proto_icmp space icmp_type | protocol) space src_ip to dst_ip" RULE["NAME"] = "zone" RULE["DEV"] = "device" RULE["DYNAMIC"] = "boolean" RULE["GLOBAL"] = "boolean" RULE["IP"] = "ip" RULE["MASK"] = "mask" RULE["NET"] = "network" RULE["BCAST"] = "ip" RULE["IP_EXTRA"] = "(ip_extra_list | empty)" RULE["NET_EXTRA"] = "(network_list | empty)" RULE["DHCP_SERVER"] = "boolean" RULE["INPUT"] = "policy space " RULE["OUTPUT"] = "policy space " RULE["FORWARD"] = "zone space policy space " RULE["MARK"] = "zone space integer space " RULE["REPLY"] = "zone space icmp_type space " RULE["REDIRECT"] = " space (ip_list | alias) (space port | empty)" RULE["WATCH_IP"] = "(ip_mask_list | filename | empty)" RULE["MAC_DROP"] = "(mac_list | filename | empty)" RULE["IP_DROP"] = "(ip_mask_list | filename | empty)" RULE["ECN_REMOVE"] = "(ip_mask_list | filename | empty)" RULE["SNAT"] = "(zone | ip) space " RULE["LIMIT"] = "zone space policy space limit space burst space " RULE["IPSET"] = "any" } fiaif-1.23.1/src/cleanup_rules.awk0000750000175000017500000002124312076551422016326 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. BEGIN { rules_deleted = 0; FS = "NO SPLITTING"; rule_no = 0; if ( TABLE == "" ) TABLE="filter"; } function scan_rule(string, target, chain, spec_start, specification) { start = match(string, "-A[ ]"); if (start == 1) { string = substr(string, RLENGTH+1, length(string) - RLENGTH); if (match(string, "[a-zA-Z0-9_+]+") != 1) { printf("Error scanning rule: '%s'\n", string); return; } chain = substr(string, RSTART, RLENGTH); spec_start = RLENGTH+2; if ( match(string, "-j[ ][a-zA-Z0-9_+]+.*") == 0) { printf("Rule with no target: -A %s %s\n", chain, specification); return; } target = substr(string, RSTART+3, RLENGTH-3); specification = substr(string, spec_start, length(string) - spec_start - (RLENGTH)); if ( specification == "" && target == "" ) { printf("Rule error: %s", string); } rule_num++; RULES[rule_num, "CHAIN"] = chain; RULES[rule_num, "SPECIFICATION"] = specification; RULES[rule_num, "TARGET"] = target; REFERENCES[target]++; CHAIN_RULES[chain]++; #printf("Scanned rule: -t '%s' -A '%s' '%s' -j '%s'\n", TABLE, chain, specification, target); #printf("REFERENCES: '%s' %d\n", target, REFERENCES[target]); } else { # Store all user chains. if ( match(string, ":[a-zA-Z0-9_+]+[ ]-") == 1 ) { match(string,":[a-zA-Z0-9_+]+"); USER_CHAIN[substr(string, RSTART+1, RLENGTH-1)] = 1; } } } ## Delete references to empty chains. ## Return number of deletions. function delete_chain_references(chain, rule, ret, rule_index) { ret = 0 # Find all rules with reference to this chain. for (rule = 1; rule <= rule_num; rule++) { if ( RULES[rule, "TARGET"] == chain ) { rule_index = rule_index=get_rule_index(RULES[rule, "CHAIN"], rule); printf("iptables -t %s -D %s %d\n", TABLE, RULES[rule, "CHAIN"], rule_index); # Decrement all counters. REFERENCES[RULES[rule, "TARGET"]]--; CHAIN_RULES[RULES[rule, "CHAIN"]]--; delete RULES[rule, "CHAIN"]; delete RULES[rule, "TARGET"]; delete RULES[rule, "SPECIFICATION"]; ret++; } } return ret } function delete_chain(chain, rule) { printf("iptables -t %s -F %s\n", TABLE, chain); printf("iptables -t %s -X %s\n", TABLE, chain); CHAIN_RULES[chain]=0; USER_CHAIN[chain]=0 # Delete all rules for (rule = 1; rule <= rule_num; rule++) { if (RULES[rule, "CHAIN"] == chain) { REFERENCES[RULES[rule, "TARGET"]]--; delete RULES[rule, "CHAIN"]; delete RULES[rule, "TARGET"]; delete RULES[rule, "SPECIFICATION"]; } } } # Merge two rules. function merge_rule ( old_rule, new_rule, ret, has_interface, has_source, has_destination) { # Merge two rules. ret = ""; if (old_rule == "") ret = new_rule; else if (new_rule == "") ret = old_rule; else if (old_rule == new_rule) ret = new_rule; else { match(old_rule,"([-][isd][ ][a-zA-Z0-9_./]+[ ]*)*"); if ((RSTART == 1) && (RLENGTH == length(old_rule))) { # the old rule has only source/interface. has_interface = match(old_rule,"[-]i[ ][a-zA-Z0-9_+]+"); has_source = match(old_rule,"[-]s[ ][a-zA-Z0-9_./]+"); has_destinaion = match(old_rule,"[-]d[ ][a-zA-Z0-9_./]+"); # Only replace if no dublets. if ( (! has_interface || ! match(new_rule,"[-]i[ ][a-zA-Z0-9_./]+")) && (! has_source || ! match(new_rule,"[-]s[ ][a-zA-Z0-9_./]+")) && (! has_destination || ! match(new_rule,"[-]d[ ][a-zA-Z0-9_./]+")) ) { ret = sprintf("%s %s", old_rule, new_rule); } #else # printf("# Old_Rule: '%s' New_rule: '%s'\n", old_rule, new_rule); } } #printf("Merge: %s + %s => %s\n", old_rule, new_rule, ret); return ret; } ## Return the index of the rule in the specified chain. ## The index starts with 1. ## Returns 0 if the rule is not found. function get_rule_index(chain, rule_id, ret) { ret = 0; for (rule = 1; rule <= rule_num; rule++) { if ( RULES[rule, "CHAIN"] == chain ) { ret++; if (rule_id == rule) break; } } return ret; } # Merge one rule from chain with all rules that references the chain. # Retunr the number of merged rules. function merge_chain (chain, rule, specification, target, new_spec, rule_index, merged, new_target) { merged = 0; for (rule = 1; rule <= rule_num; rule++) { if ( RULES[rule, "CHAIN"] == chain ) { specification = RULES[rule,"SPECIFICATION"]; target = RULES[rule,"TARGET"]; #printf("Rule: '%s' '%s' '%s'\n", chain, specification, target); break; } } for (rule = 1; rule <= rule_num; rule++) { if ( RULES[rule, "TARGET"] == chain ) { new_spec = merge_rule(RULES[rule, "SPECIFICATION"], specification); if ( new_spec != "" ) { rule_index=get_rule_index(RULES[rule, "CHAIN"], rule); # Delete both rules if it was a return statement. if ( target == "RETURN" ) { printf("iptables -t %s -D %s %d \n", TABLE, RULES[rule, "CHAIN"], rule_index); # Update structures on the deleted chain. REFERENCES[RULES[rule, "TARGET"]]--; CHAIN_RULES[RULES[rule, "CHAIN"]]--; delete RULES[rule, "CHAIN"]; delete RULES[rule, "TARGET"]; delete RULES[rule, "SPECIFICATION"]; } else { if (target == "") printf("# Target zero\n"); printf("iptables -t %s -R %s %d %s -j %s\n", TABLE, RULES[rule, "CHAIN"], rule_index, new_spec, target); # Update structures. REFERENCES[RULES[rule, "TARGET"]]--; RULES[rule, "TARGET"] = target; REFERENCES[target]++; RULES[rule, "SPECIFICATION"] = new_spec; } merged++; } } } return merged; } # If a catch all rule exists in a chain, then delete all following rules. function truncate_chain(chain, catch_all, ret, rule, rule_index) { ret = 0; catch_all = 0; for ( rule = 1; rule <= rule_num; rule++ ) { if ( RULES[rule, "CHAIN"] == chain ) { if ( catch_all == 0 ) { # See if the rule is a catch_all rule. if ( RULES[rule, "SPECIFICATION"] == "" && ( RULES[rule, "TARGET"] == "DROP" || RULES[rule, "TARGET"] == "ACCEPT" || RULES[rule, "TARGET"] == "RETURN" || RULES[rule, "TARGET"] == "REJECT" ) ) { catch_all = 1; if (RULES[rule, "TARGET"] == "RETURN") { # Do not leave empry returns. rule_index = get_rule_index(chain, rule); printf("iptables -t %s -D %s %d\n", TABLE, chain, rule_index); REFERENCES[RULES[rule, "TARGET"]]--; CHAIN_RULES[RULES[rule, "CHAIN"]]--; delete RULES[rule, "CHAIN"]; delete RULES[rule, "TARGET"]; delete RULES[rule, "SPECIFICATION"]; ret++; } } } else { # Delete all following rules. rule_index = get_rule_index(chain, rule); printf("iptables -t %s -D %s %d\n", TABLE, chain, rule_index); REFERENCES[RULES[rule, "TARGET"]]--; CHAIN_RULES[RULES[rule, "CHAIN"]]--; delete RULES[rule, "CHAIN"]; delete RULES[rule, "TARGET"]; delete RULES[rule, "SPECIFICATION"]; ret++; } } } return ret; } ## Main function { scan_rule($1); } END { iterations = 0; has_work = 1; while(has_work > 0) { iterations++; has_work = 0; for (chain in USER_CHAIN) { #printf("Testing chain: '%s'. #rules %d, #references %d\n", chain, CHAIN_RULES[chain], REFERENCES[chain]); } for (chain in USER_CHAIN) { if (USER_CHAIN[chain] != 1) continue; if (REFERENCES[chain] == 0) { delete_chain(chain); has_work++; } if (CHAIN_RULES[chain] > 0) { has_work += truncate_chain(chain); } if (CHAIN_RULES[chain] == 1) { has_work += merge_chain(chain); } if (CHAIN_RULES[chain] == 0) { has_work += delete_chain_references(chain); } } } if (VERBOSE == 1) printf("# Iterations: %d\n", iterations); } fiaif-1.23.1/src/zones.sh0000640000175000017500000006050611571724545014465 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################### # Read a zone # RETURN=0 if reading was successful ############################################################################### function read_zone () { local ZONE=$1 # Clear all variables for VAR in INPUT OUTPUT FORWARD SNAT IP_EXTRA NET_EXTRA MARK ${!REPLY_*} \ ${!REDIRECT_*} ${!LIMIT_*} ${!TC_*} IP_DROP MAC_DROP WATCH_IP \ GLOBAL DHCP_SERVER DYNAMIC ECN_REMOVE; do unset $VAR done local ZONE_FILE=CONF_${ZONE} ZONE_FILE=${!ZONE_FILE} local SOURCE_FILE=${CONF_DIR}/${ZONE_FILE} # First check that the syntax is ok. if [[ -f ${SOURCE_FILE} ]]; then source ${SOURCE_FILE} else if [[ -z "${ZONE_FILE}" ]]; then echo "CONF_${ZONE} variable not set or empty." debug_out "CONF_${ZONE} variable not set or empty." else echo "Zonefile not found: ${SOURCE_FILE}" debug_out "Zonefile not found: ${SOURCE_FILE}" fi let FILE_ERRORS++ return 1 fi # Accept the old PUBLIC variable. if [[ -z "${GLOBAL}" && -n "${PUBLIC}" ]]; then GLOBAL=${PUBLIC} unset PUBLIC fi # Accept the old STATIC if [[ -z "${DYNAMIC}" && -n "${STATIC}" ]]; then if (( STATIC == 1 )); then DYNAMIC=0 else DYNAMIC=1 fi unset STATIC fi # Default values. declare -i GLOBAL=${GLOBAL:=1} declare -i DHCP_SERVER=${DHCP_SERVER:=0} declare -i DYNAMIC=${DYNAMIC:=1} declare -i TC_ENABLE=${TC_ENABLE:=0} declare TC_TYPE=${TC_TYPE:=HTB} # Got all nessesary information about the interface? if (( DYNAMIC == 0 )); then # Test that important settings are available. if [[ -z "${IP}" ]]; then echo -e "\n${ZONE_FILE}: IP not defined.\n" debug_out "${ZONE_FILE}: IP not defined." return 1 fi if [[ -z "${MASK}" ]]; then echo -e "\n${ZONE_FILE}: MASK not defined.\n" debug_out "${ZONE_FILE}: MASK not defined." return 1 fi if [[ -z "${NET}" ]]; then echo -e "\n${ZONE_FILE}: NET not defined.\n" debug_out "${ZONE_FILE}: NET not defined." return 1 fi if [[ -z "${BCAST}" ]]; then echo -e "\n${ZONE_FILE}: BCAST not defined.\n" debug_out "${ZONE_FILE}: BCAST not defined." return 1 fi fi } ############################################################################### # add_ip_drop ############################################################################### function add_ip_drop () { local ZONE=$1 local IP=$2 # Resolve aliases. get_alias ${IP} local IPS=${RESULT} if [ -z "${IPS}" ]; then IPS=$IP fi for IP in ${IPS}; do IPTABLES -A INPUT_${ZONE} -s ${IP} -j LOG_DROP IPTABLES -A OUTPUT_${ZONE} -d ${IP} -j LOG_DROP IPTABLES -A FORWARD_${ZONE} -d ${IP} -j LOG_DROP IPTABLES -A SEND_${ZONE} -s ${IP} -j LOG_DROP done } ############################################################################### # add_mac_drop ############################################################################### function add_mac_drop () { local ZONE=$1 local MAC=$2 IPTABLES -A INPUT_${ZONE} -m mac --mac-source ${MAC} -j LOG_DROP IPTABLES -A SEND_${ZONE} -m mac --mac-source ${MAC} -j LOG_DROP } ############################################################################### # add_watch_ip ############################################################################### function add_watch_ip () { local ZONE=$1 local IP=$2 # Resolve aliases. get_alias ${IP} local IPS=${RESULT} if [ -z "${IPS}" ]; then IPS=$IP fi for IP in ${IPS}; do IPTABLES -A INPUT_${ZONE} -s ${IP} -j LOG_WATCH IPTABLES -A OUTPUT_${ZONE} -d ${IP} -j LOG_WATCH IPTABLES -A FORWARD_${ZONE} -d ${IP} -j LOG_WATCH IPTABLES -A SEND_${ZONE} -s ${IP} -j LOG_WATCH done } ############################################################################### # remove_ecn (remove the ECN-bit) ############################################################################### function remove_ecn () { local CHAIN=$1 local IP=$2 get_alias ${IP} local IPS=${RESULT} if [ -z "${IPS}" ]; then IPS=$IP fi for IP in ${IPS}; do IPTABLES -t mangle -A ${CHAIN} -p tcp -d ${IP} -j ECN --ecn-tcp-remove done } ############################################################################### # Add reply with ############################################################################### function add_reply_with () { local RULEID=$1 local ZONE=$2 local TYPE=$3 local PROTOCOL=$4 shift 4 if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then PORTS=$1 shift fi local IP=$1 shift if ! check_zone ${ZONE} "Zone ${ZONE} is not defined in REPLY rule."; then let ZONE_ERRORS++ return fi local PARAM="-j REJECT --reject-with ${TYPE}" case ${ZONE} in all|ALL) add_rule_protocol_ip_port "filter" INPUT_${NAME} \ ${PROTOCOL} ${PORTS} ${IP} ${PARAM} add_rule_protocol_ip_port "filter" FORWARD_${NAME} \ ${PROTOCOL} ${PORTS} ${IP} ${PARAM} ;; ${NAME}) add_rule_protocol_ip_port "filter" INPUT_${NAME} \ ${PROTOCOL} ${PORTS} ${IP} ${PARAM} ;; *) IPTABLES -N ${RULE_ID}_${NAME} jump_zone ${ZONE} "SRC" "filter" FORWARD_${NAME} ${RULE_ID}_${NAME} add_rule_protocol_ip_port "filter" ${FORWARD_CHAIN} \ ${PROTOCOL} ${PORTS} ${IP} ${PARAM} esac } ############################################################################### # Limit packet types. ############################################################################### function add_limit () { # LIMIT_XXX = [protocol [port[,port]*]] local CHAIN=$1 local NEW_CHAIN=$2 local ZONE=$3 local POLICY=$4 local LIMIT=$5 local BURST=$6 local PROTOCOL=$7 shift 7 local PORTS="" if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then PORTS=$1 shift fi local IP=$1 shift if [[ "${IP}" == @(ALL|all) ]]; then print_err "" print_err "Error in rules." print_err "It seems that a port was specified with protocol 'ALL'." print_err "Please recheck INPUT, OUTPUT, FORWARD, MARK and LIMIT rules". let RULE_ERRORS++ IP=$1 shift fi if ! check_zone ${ZONE} "Zone ${ZONE} is not defined in LIMIT rule."; then let ZONE_ERRORS++ return fi local LIMIT="-m limit --limit ${LIMIT} --limit-burst ${BURST}" IPTABLES -N ${NEW_CHAIN} IPTABLES -A ${NEW_CHAIN} ${LIMIT} -j RETURN IPTABLES -A ${NEW_CHAIN} -j LOG_LIMIT_${POLICY} add_rule_protocol_ip_port "filter" ${CHAIN} ${PROTOCOL} ${PORTS} ${IP} \ -j ${NEW_CHAIN} } ############################################################################### # Mark packets. # ipmask> ############################################################################### function add_mark () { local RULE_ID=$1 local CHAIN_PRE=$2 local CHAIN_OUT=$3 local SRC_ZONE=$4 local MARK=$5 local PROTOCOL=$6 shift 6 local PORTS="" if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then PORTS=$1 shift fi local IP=$1 shift if ! check_zone ${ZONE} "Zone ${ZONE} is not defined in MARK rule."; then let ZONE_ERRORS++ return fi local PARAM PARAM="-j MARK --set-mark ${MARK}" # Get the device case ${SRC_ZONE} in ALL|all) add_rule_protocol_ip_port "mangle" ${CHAIN_PRE} \ ${PROTOCOL} ${PORTS} ${IP} ${PARAM} add_rule_protocol_ip_port "mangle" ${CHAIN_OUT} \ ${PROTOCOL} ${PORTS} ${IP} ${PARAM} ;; ${NAME}) add_rule_protocol_ip_port "mangle" ${CHAIN_OUT} \ ${PROTOCOL} ${PORTS} ${IP} ${PARAM} ;; *) IPTABLES -t mangle -N MARK_${RULE_ID} jump_zone ${ZONE} "SRC" "mangle" ${CHAIN_PRE} MARK_${RULE_ID} add_rule_protocol_ip_port "mangle" MARK_${RULE_ID} \ ${PROTOCOL} ${PORTS} ${IP} ${PARAM} ;; esac } ############################################################################### # Add redirect rules. ############################################################################### function add_redirect () { local CHAIN=$1 local SNAT_CHAIN=$2 local FORWARD_CHAIN=$3 local RULE_ID=$4 local PROTOCOL=$5 shift 5 local PORTS="" if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then PORTS=$1 shift fi local SRC_IP=$1 local DNAT_IPS=$2 shift 2 if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then local DNAT_PORT=$1 shift fi # If DNAT_PORT is an alias, then translate it into a port number. if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp) && ${DNAT_PORT} != *([0-9]) ]]; then get_service_port ${PROTOCOL} ${DNAT_PORT} if [[ -n ${RESULT} ]]; then DNAT_PORT=${RESULT} fi fi # Allow use of aliases in DNAT_IPS get_alias ${DNAT_IPS} if [[ -n ${RESULT} ]]; then DNAT_IPS=${RESULT/ /,} fi local PARAM="" local REDIRECT # Test if destination is localhost. if [[ ${DNAT_IPS} == "127.0.0.1" || ${DNAT_IPS} == "localhost" ]]; then REDIRECT="-j REDIRECT" # Tests if there are ports involved if [[ -n ${DNAT_PORT} ]]; then REDIRECT="${REDIRECT} --to-ports ${DNAT_PORT}" fi else local DNAT_IP REDIRECT="-j DNAT" for DNAT_IP in ${DNAT_IPS//,/ }; do REDIRECT="${REDIRECT} --to-destination ${DNAT_IP}" if [[ -n ${DNAT_PORT} ]]; then REDIRECT="${REDIRECT}:${DNAT_PORT}" fi # Test if a SNAT is needed to route back to the same network. if (( DYNAMIC == 0 && GLOBAL == 0 )); then # Need to examine all networks - A zone can have NET_EXTRA local NETWORKS=${ZONE}_NETS NETWORKS=${!NETWORKS} local NET local RET for NET in ${NETWORKS}; do if ip_in_network ${NET%/*} ${NET#*/} ${DNAT_IP}; then RET=1 break; fi done if (( RET == 1 )); then # Add SNAT for packets going back to the zone. local SNAT_ADDR=${NAME}_IP SNAT_ADDR=${!SNAT_ADDR} local NEW_SNAT_CHAIN=${RULE_ID}_${NAME} local NEW_FORWARD_CHAIN=${RULE_ID}_${NAME} IPTABLES -t nat -N ${NEW_SNAT_CHAIN} add_rule_protocol_ip_port "nat" ${NEW_SNAT_CHAIN} \ ${PROTOCOL} ${DNAT_PORT} "0.0.0.0/0=>${DNAT_IP}" \ -j SNAT --to-source ${SNAT_ADDR} IPTABLES -N ${NEW_FORWARD_CHAIN} add_rule_protocol_ip_port "filter" ${NEW_FORWARD_CHAIN} \ ${PROTOCOL} ${DNAT_PORT} "0.0.0.0/0=>${DNAT_IP}" \ -i ${DEV} -j ACCEPT for NET in ${NETWORKS}; do IPTABLES -t nat -A ${SNAT_CHAIN} -s ${NET} \ -j ${NEW_SNAT_CHAIN} IPTABLES -A ${FORWARD_CHAIN} -s ${NET} \ -j ${NEW_FORWARD_CHAIN} done fi fi done fi add_rule_protocol_ip_port "nat" ${CHAIN} \ ${PROTOCOL} ${PORTS} ${SRC_IP} ${REDIRECT} } ############################################################################### # add_snat: [ports [ip[/mask]]] ############################################################################### function add_snat () { local RULE_ID=$1 local SNAT_ZONE=$2 local PROTOCOL=$3 shift 3 local PORTS="" if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then PORTS=$1 shift fi local IP=$1 local NAT_TYPE="" local PARAM="" local PARAM_PORTS="" local SOURCE="" local SNAT_IPS="" if check_ip ${SNAT_ZONE}; then SNAT_IPS=${SNAT_ZONE} SNAT_ZONE="" # Find the destination zone local AZONE local ZONE_IPS local ZONE_IP for AZONE in ${ZONES}; do ZONE_IPS=${AZONE}_IPS ZONE_IPS=${!ZONE_IPS} for ZONE_IP in ${ZONE_IPS}; do if [[ "${ZONE_IP}" == "${SNAT_IPS}" ]]; then SNAT_ZONE=${AZONE} break fi done if [[ -n "${SNAT_ZONE}" ]]; then break fi done if [[ -z "${SNAT_ZONE}" ]]; then print_err "SNAT rule error: Unable to locate destnation zone for ip ${SNAT_IPS}" print_err "The specified IP must be specified in another zone under IP or IP_EXTRA" let ZONE_ERRORS++ return 1 fi else if check_zone ${SNAT_ZONE} "Zone ${ZONE} is not defined in SNAT rule."; then local ZONE_IPS=${SNAT_ZONE}_IPS SNAT_IPS=${!ZONE_IPS} else let ZONE_ERRORS++ return 1 fi fi if [[ "${SNAT_ZONE}" == ${NAME} ]]; then print_err "SNAT rule error: Cannot SNAT back into the same zone as packets originates" let ZONE_ERRORS++ return 1 fi local SNAT_CHAIN=POSTROUTING_NAT_${SNAT_ZONE} local ZONE_GLOBAL=${ZONE}_GLOBAL local ZONE_DYNAMIC=${ZONE}_DYNAMIC local SNAT_DYNAMIC=${SNAT_ZONE}_DYNAMIC ZONE_GLOBAL=${!ZONE_GLOBAL} ZONE_DYNAMIC=${!ZONE_DYNAMIC} SNAT_DYNAMIC=${!SNAT_DYNAMIC} local NEW_SNAT_CHAIN=SNAT_${NAME}_${RULE_ID} IPTABLES -t nat -N ${NEW_SNAT_CHAIN} local NETWORKS=${NAME}_NETS NETWORKS=${!NETWORKS} local NETWORK if (( ZONE_GLOBAL == 0 && ZONE_DYNAMIC == 0 )); then for NETWORK in ${NETWORKS}; do IPTABLES -t nat -A ${SNAT_CHAIN} -s ${NETWORK} -j ${NEW_SNAT_CHAIN} done else # No way to test. SNAT all IPTABLES -t nat -A ${SNAT_CHAIN} -j ${NEW_SNAT_CHAIN} fi local SNAT_PARAM="" if (( SNAT_DYNAMIC == 0 )); then NAT_TYPE="SNAT" local SNAT_IP for SNAT_IP in ${SNAT_IPS}; do SNAT_PARAM="${SNAT_PARAM} --to-source ${SNAT_IP}" break done else NAT_TYPE="MASQUERADE" fi add_rule_protocol_ip_port "nat" ${NEW_SNAT_CHAIN} \ ${PROTOCOL} ${PORTS} ${IP} -j ${NAT_TYPE} ${SNAT_PARAM} } ############################################################################### # Add deafult rules for in/out. ############################################################################### function add_zone_rule() { local CHAIN=$1 local POLICY=$2 local PROTOCOL=$3 shift 3 local PORTS="" if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then PORTS=$1 shift fi local IP=$1 shift if [[ "${IP}" == @(ALL|all) ]]; then print_err "" print_err "Error in rules." print_err "It seems that a port was specified with protocol 'ALL'." print_err "Please recheck INPUT, OUTPUT, FORWARD, MARK and LIMIT rules". let RULE_ERRORS++ IP=$1 shift fi # Actual function add_rule_protocol_ip_port "filter" ${CHAIN} \ ${PROTOCOL} ${PORTS} ${IP} -j LOG_${POLICY} } ############################################################################### # add_zone_forward: chain zone protocol ports policy ############################################################################### function add_zone_forward () { local RULE_ID=$1 local CHAIN=$2 local ZONE=$3 local POLICY=$4 local PROTOCOL=$5 shift 5 local PORTS="" if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then PORTS=$1 shift fi local IP=$1 shift if ! check_zone ${ZONE} "Zone ${ZONE} is not defined in FORWARD rule."; then let ZONE_ERRORS++ return fi case ${ZONE} in ALL|all) add_rule_protocol_ip_port "filter" ${CHAIN} \ ${PROTOCOL} ${PORTS} ${IP} -j LOG_${POLICY} ;; *) IPTABLES -N FORWARD_${RULE_ID} jump_zone ${ZONE} "SRC" "filter" ${CHAIN} FORWARD_${RULE_ID} add_rule_protocol_ip_port "filter" FORWARD_${RULE_ID} \ ${PROTOCOL} ${PORTS} ${IP} -j LOG_${POLICY} ;; esac } ############################################################################### # Setup Zone chains. # Give zone name as argument ############################################################################### function zone_chains () { local ZONE=$1 debug_out "Creating global chains for zone: ${ZONE}" # FILTER chains for CHAIN in ${BUILT_IN_CHAINS_filter} SEND; do IPTABLES -N ${CHAIN}_${ZONE} done for CHAIN in ${BUILT_IN_CHAINS_mangle}; do IPTABLES -t mangle -N ${CHAIN}_MANGLE_${ZONE} done for CHAIN in ${BUILT_IN_CHAINS_nat}; do IPTABLES -t nat -N ${CHAIN}_NAT_${ZONE} done } ############################################################################### # Setup zone specific rules. ############################################################################### function configure_zone () { local ZONE=$1 read_zone ${ZONE} # Stop processing if the device is not available due # to a configuration error. local ZONE_AVAILABLE=${ZONE}_AVAILABLE ZONE_AVAILABLE=${!ZONE_AVAILABLE} if (( ZONE_AVAILABLE == 0 )); then return fi debug_out "" debug_out "" debug_out "Configuring zone: ${NAME}" debug_out "DEV=${DEV}, DYNAMIC=${DYNAMIC}, GLOBAL=${GLOBAL}" if (( DYNAMIC == 0 )); then debug_out "IP=${IP}, MASK=${MASK}, NET=${NET}, BCAST=${BCAST}" fi debug_out "" debug_out "Creating zone chains" local PRE_NAT_CHAIN=PREROUTING_NAT_${NAME} local POST_NAT_CHAIN=POSTROUTING_NAT_${NAME} local PRE_MANGLE_CHAIN=PREROUTING_MANGLE_${NAME} local POST_MANGLE_CHAIN=POSTROUTING_MANGLE_${NAME} local OUTPUT_MANGLE_CHAIN=OUTPUT_MANGLE_${NAME} # Allow server to answer DHCP queries. debug_out "DHCP_SERVER=${DHCP_SERVER}" if (( DHCP_SERVER == 1 )); then IPTABLES -A DEV_${DEV}_SRC -p UDP -d 255.255.255.255 \ --dport bootps -j LOG_ACCEPT IPTABLES -A DEV_${DEV}_DST -p UDP -d 255.255.255.255 \ --dport bootpc -j LOG_ACCEPT fi # Allow server to send DHCP queries. debug_out "DYNAMIC=${DYNAMIC}" if (( DYNAMIC == 1 )); then IPTABLES -A DEV_${DEV}_SRC -p UDP -d 255.255.255.255 \ --dport bootpc -j LOG_ACCEPT IPTABLES -A DEV_${DEV}_DST -p UDP -d 255.255.255.255 \ --dport bootps -j LOG_ACCEPT fi # Forward packets to queues. # Only allow packets that can originate from the device. # This way we can have more than one zone on one interface # - Unless its global, then there can be only one zone per interface. debug_out "GLOBAL=${GLOBAL}" local CHAIN_INPUT=INPUT_${NAME} local CHAIN_OUTPUT=OUTPUT_${NAME} local CHAIN_FORWARD=FORWARD_${NAME} local CHAIN_SEND=SEND_${NAME} # Both GLOBAL and NONGLOBAL have net and net_extra specified. if (( DYNAMIC == 0 )); then local NETWORK for NETWORK in ${NET} ${NET_EXTRA}; do IPTABLES -A DEV_${DEV}_DST -d ${NETWORK} -j RETURN IPTABLES -A DEV_${DEV}_SRC -s ${NETWORK} -j RETURN done fi if (( GLOBAL == 1 || DYNAMIC == 1 )); then IPTABLES -t nat -A PREROUTING -i ${DEV} -j ${PRE_NAT_CHAIN} IPTABLES -t nat -A POSTROUTING -o ${DEV} -j ${POST_NAT_CHAIN} IPTABLES -t mangle -A PREROUTING -i ${DEV} -j ${PRE_MANGLE_CHAIN} IPTABLES -t mangle -A POSTROUTING -o ${DEV} -j ${POST_MANGLE_CHAIN} IPTABLES -t mangle -A OUTPUT -o ${DEV} -j ${OUTPUT_MANGLE_CHAIN} if (( DYNAMIC == 0 )); then IPTABLES -A DEV_${DEV}_DST -j PRIVATE_DST IPTABLES -A DEV_${DEV}_SRC -j PRIVATE_SRC fi IPTABLES -A DEV_${DEV}_DST -j RESERVED_DST IPTABLES -A DEV_${DEV}_DST -j RETURN IPTABLES -A DEV_${DEV}_SRC -j RESERVED_SRC IPTABLES -A DEV_${DEV}_SRC -j RETURN # Jump to corect chains. IPTABLES -A INPUT_NEW_${DEV} -j ${CHAIN_INPUT} IPTABLES -A OUTPUT_NEW_${DEV} -j ${CHAIN_OUTPUT} IPTABLES -A FORWARD_NEW_${DEV} -j ${CHAIN_FORWARD} IPTABLES -A SEND_NEW_${DEV} -j ${CHAIN_SEND} else for NETWORK in ${NET} ${NET_EXTRA}; do IPTABLES -t nat -A PREROUTING -i ${DEV} -s ${NETWORK} \ -j ${PRE_NAT_CHAIN} IPTABLES -t nat -A POSTROUTING -o ${DEV} -d ${NETWORK} \ -j ${POST_NAT_CHAIN} IPTABLES -t mangle -A PREROUTING -i ${DEV} -s ${NETWORK} \ -j ${PRE_MANGLE_CHAIN} IPTABLES -t mangle -A POSTROUTING -o ${DEV} -d ${NETWORK} \ -j ${POST_MANGLE_CHAIN} IPTABLES -t mangle -A OUTPUT -o ${DEV} -d ${NETWORK} \ -j ${OUTPUT_MANGLE_CHAIN} IPTABLES -A INPUT_NEW_${DEV} -s ${NETWORK} -j ${CHAIN_INPUT} IPTABLES -A OUTPUT_NEW_${DEV} -d ${NETWORK} -j ${CHAIN_OUTPUT} IPTABLES -A FORWARD_NEW_${DEV} -d ${NETWORK} -j ${CHAIN_FORWARD} IPTABLES -A SEND_NEW_${DEV} -s ${NETWORK} -j ${CHAIN_SEND} done fi # Setup redirects. These are added to the NAT chain. local REDIRECT for REDIRECT in ${!REDIRECT_*}; do debug_out "${REDIRECT}=${!REDIRECT}" add_redirect ${PRE_NAT_CHAIN} ${POST_NAT_CHAIN} ${CHAIN_FORWARD} \ ${REDIRECT} ${!REDIRECT} done local I for ((I=0;I<${#MARK[*]};I++)); do debug_out "MARK[${I}]=${MARK[I]}" add_mark ${ZONE}${I} ${PRE_MANGLE_CHAIN} ${OUTPUT_MANGLE_CHAIN} \ ${MARK[I]} done local VAR #Setup Watch rules: debug_out "WATCH_IP: ${WATCH_IP}" if [[ -f "${CONF_DIR}/${WATCH_IP}" ]]; then cat ${CONF_DIR}/${WATCH_IP} | cut -d"#" -f1 | while read VAR; do if [[ -z ${VAR} ]]; then continue fi add_watch_ip ${NAME} ${VAR} done else for VAR in ${WATCH_IP}; do add_watch_ip ${NAME} ${VAR} done fi #Setup ECN_REMOVE rules: debug_out "ECN_REMOVE: ${ECN_REMOVE}" if [[ -f "${CONF_DIR}/${ECN_REMOVE}" ]]; then cat ${CONF_DIR}/${ECN_REMOVE} | cut -d"#" -f1 | while read VAR; do if [[ -z ${VAR} ]]; then continue fi remove_ecn ${POST_MANGLE_CHAIN} ${VAR} remove_ecn ${OUTPUT_MANGLE_CHAIN} ${VAR} done else for VAR in ${ECN_REMOVE}; do remove_ecn ${POST_MANGLE_CHAIN} ${VAR} remove_ecn ${OUTPUT_MANGLE_CHAIN} ${VAR} done fi # Setup drop rules debug_out "MAC_DROP: ${MAC_DROP}" if [[ -f "${CONF_DIR}/${MAC_DROP}" ]]; then cat ${CONF_DIR}/${MAC_DROP} | cut -d"#" -f1 | while read VAR; do if [[ -z ${VAR} ]]; then continue fi add_mac_drop ${NAME} ${VAR} done else for VAR in ${MAC_DROP}; do add_mac_drop ${NAME} ${VAR} done fi debug_out "IP_DROP: ${IP_DROP}" if [[ -f "${CONF_DIR}/${IP_DROP}" ]]; then cat ${CONF_DIR}/${IP_DROP} | cut -d"#" -f1 | while read VAR; do if [[ -z ${VAR} ]]; then continue fi add_ip_drop ${NAME} ${VAR} done else for VAR in ${IP_DROP}; do add_ip_drop ${NAME} ${VAR} done fi # Source NAT are done in the NAT table - postrouting. for (( I=0;I<${#SNAT[*]};I++ )); do debug_out "SNAT[${I}]=${SNAT[I]}" add_snat ${I} ${SNAT[I]} done # Setup reply_with local REPLY for REPLY in ${!REPLY_*}; do debug_out "${REPLY}=${!REPLY}" add_reply_with ${REPLY} ${!REPLY} done # Limit number of packets. local LIMIT for LIMIT in ${!LIMIT_*}; do debug_out "${LIMIT}=${!LIMIT}" if [[ "${!LIMIT%% *}" = "${NAME}" ]]; then add_limit ${CHAIN_INPUT} ${LIMIT}_${ZONE} ${!LIMIT} else add_limit ${CHAIN_FORWARD} ${LIMIT}_${ZONE} ${!LIMIT} fi done # Create rules for INPUT. if (( DHCP_SERVER == 1 )); then # Allow renewal of DHCP leases. IPTABLES -A ${CHAIN_INPUT} -p udp \ --sport bootpc --dport bootps -j ACCEPT fi # Add user chains local CHAIN local FIAIF_CHAIN for CHAIN in INPUT OUTPUT FORWARD; do IPTABLES -N USER_${CHAIN}_${NAME} FIAIF_CHAIN=CHAIN_${CHAIN} IPTABLES -I ${!FIAIF_CHAIN} -j USER_${CHAIN}_${NAME} done for (( I=0;I<${#INPUT[*]};I++ )); do debug_out "INPUT[${I}]=${INPUT[I]}" add_zone_rule ${CHAIN_INPUT} ${INPUT[I]} done # Create rules for OUTPUT. for (( I=0;I<${#OUTPUT[*]};I++ )); do debug_out "OUTPUT[${I}]=${OUTPUT[I]}" add_zone_rule ${CHAIN_OUTPUT} ${OUTPUT[I]} done # Create rules for FORWARD. for (( I=0;I<${#FORWARD[*]};I++ )); do debug_out "FORWARD[${I}]=${FORWARD[I]}" add_zone_forward ${ZONE}${I} ${CHAIN_FORWARD} ${FORWARD[I]} done debug_out "Log all unmatched packets in this zone" IPTABLES -A ${CHAIN_INPUT} -j LOG_MISS_${NAME} IPTABLES -A ${CHAIN_OUTPUT} -j LOG_MISS_${NAME} IPTABLES -A ${CHAIN_FORWARD} -j LOG_MISS_${NAME} debug_out "Done configuring zone" } fiaif-1.23.1/src/cleanup_rules.sh0000640000175000017500000000313411571724545016162 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################### # Main function. Calls awk script to get a list # of iptables calls to clean_up rules. ############################################################################### function cleanup_rules () { local FILE=$(mktemp /tmp/fiaif-cleanup.XXXXXX) local COMMAND for TABLE in ${TABLES}; do iptables-save -t ${TABLE} | awk -f ${FIAIF_SHARED}/cleanup_rules.awk -v TABLE=${TABLE} >> ${FILE} done cat ${FILE} | while read COMMAND; do if [[ -n "${COMMAND%%#*}" ]]; then ${COMMAND} || echo "Error: ${COMMAND}" else echo "${COMMAND}" fi done rm -f ${FILE} } fiaif-1.23.1/src/functions.sh0000640000175000017500000004435412076552122015331 0ustar calvincalvin# FIAIF is an Intelligent firewall # # description: Automates a packet filtering firewall with iptables. # # Script Author: Anders Fugmann # # FIAIF is an Intelligent firewall # Copyright (C) 2002-2011 Anders Peter Fugmann # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################### # Iptables. Log errornous lines ############################################################################### function IPTABLES () { local ERR=0 if [ "${TEST}" = "1" ]; then echo "iptables $@" >> ${TEST_FILE} else iptables $@ fi ERR=$? if (( ERR != 0 )); then echo "Error: iptables $@" 1>&2 let IPTABLES_ERRORS++ fi return ${ERR} } ############################################################################### # Call tc ############################################################################### function TC () { local ERR=0 if (( TEST == 1 )); then echo "tc $@" >> ${TEST_FILE} else tc $@ || ERR=1 fi if (( ERR == 1 )); then echo "Error: tc $@" 1>&2 fi } ############################################################################### # debug_out # write textual messages to file if testing. ############################################################################### function debug_out () { if (( TEST == 1 )); then echo "### $@" >> ${TEST_FILE} fi } ############################################################################### # print_err # write textual messages to strdout and file if testing. ############################################################################### function print_err () { echo "### $@" if (( TEST == 1 )); then echo "### $@" >> ${TEST_FILE} fi } ############################################################################### # Print copyright and the version number ############################################################################### function print_version () { local VERSION=$(<${VERSION_FILE}) echo "FIAIF ver. $VERSION, by Anders Fugmann (C) 2002-2013" } ############################################################################### # get_protocol_port_ip # param: # [protocol [port[,port]* [ip[/mask]] ] ] # # returns: RETURN ############################################################################### function get_protocol_port_ip () { local PROTOCOL=$1 shift local PORTS="" if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then PORTS=$1 shift fi local IP=$1 shift RETURN="" if [[ ${PROTOCOL} != @(ALL|all) ]]; then RETURN="-p ${PROTOCOL}" if [[ -n ${PORTS} ]]; then case ${PROTOCOL} in TCP | tcp | UDP | udp) # Test to see if the port is a range if [[ ! ${PORTS} == @(ALL|all) ]]; then if [[ ${PORTS} == *,* ]]; then RETURN="${RETURN} -m multiport --dports ${PORTS}" else RETURN="${RETURN} --dport ${PORTS}" fi fi ;; ICMP|icmp) if [[ ! ${PORTS} == @(ALL|all) ]]; then RETURN="${RETURN} --icmp-type ${PORTS}" fi ;; esac fi fi local SRC_IP=${IP%*=>*} local DST_IP=${IP#*=>*} if [[ "${SRC_IP}" != */0 ]]; then RETURN="${RETURN} -s ${SRC_IP} " fi if [[ "${DST_IP}" != */0 ]]; then RETURN="${RETURN} -d ${DST_IP}" fi } ############################################################################### # Adds iptables rules, based on protocol_ip_ports # Args:
# => # ############################################################################### function add_rule_protocol_ip_port { local TABLE=$1 local CHAIN=$2 local PROTOCOL=$3 shift 3 local PORTS="" if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp|ICMP|icmp) ]]; then PORTS=$1 shift fi local IP=$1 shift local RULE=$@ local SRC_IP=${IP/=>*} local DST_IP=${IP//*=>} if [[ ${SRC_IP} == *([[:alnum:]_]) ]]; then # Expand SRC_IP local VAR=IPSET_${SRC_IP} if [[ -f "${CONF_DIR}/${!VAR}" ]]; then cat ${CONF_DIR}/${!VAR} | cut -d"#" -f1 | \ while read SRC_IP; do if [[ -z ${SRC_IP} ]]; then continue fi add_rule_protocol_ip_port ${TABLE} ${CHAIN} \ ${PROTOCOL} ${PORTS} ${SRC_IP}=\>${DST_IP} ${RULE} done else for SRC_IP in ${!VAR}; do add_rule_protocol_ip_port ${TABLE} ${CHAIN} \ ${PROTOCOL} ${PORTS} ${SRC_IP}=\>${DST_IP} ${RULE} done fi # End processing return elif [[ ${DST_IP} == *([[:alnum:]_]) ]]; then # Expand DST_IP local VAR=IPSET_${DST_IP} if [[ -f "${CONF_DIR}/${!VAR}" ]]; then cat ${CONF_DIR}/${!VAR} | cut -d"#" -f1 | \ while read DST_IP; do if [[ -z ${DST_IP} ]]; then continue fi add_rule_protocol_ip_port ${TABLE} ${CHAIN} \ ${PROTOCOL} ${PORTS} ${SRC_IP}=\>${DST_IP} ${RULE} done else for DST_IP in ${!VAR}; do add_rule_protocol_ip_port ${TABLE} ${CHAIN} \ ${PROTOCOL} ${PORTS} ${SRC_IP}=\>${DST_IP} ${RULE} done fi # End processing return fi # Split the ports if nessesary if [[ ${PROTOCOL} == @(TCP|tcp|UDP|udp) && -n "${PORTS}" && ${PORTS} != +([[:alnum:]]):+([[:alnum:]]) && ${PORTS} != +([[:alnum:]-])*(,+([[:alnum:]-])) ]]; then local SINGLE_PORTS="" local RANGE_PORTS="" for ELEM in ${PORTS//,/ }; do if [[ ${ELEM} == +([[:alnum:]]):+([[:alnum:]]) ]]; then RANGE_PORTS="${RANGE_PORTS} ${ELEM}" else SINGLE_PORTS="${SINGLE_PORTS},${ELEM}" fi done for PORTS in ${RANGE_PORTS} ${SINGLE_PORTS#,}; do add_rule_protocol_ip_port ${TABLE} ${CHAIN} \ ${PROTOCOL} ${PORTS} ${IP} ${RULE} done return fi # Do not allow more than MAX_MULTI_PORTS on multiport argument declare -a PORT_ARR=( ${PORTS//,/ } ) if (( ${#PORT_ARR[*]} > MAX_MULTI_PORTS )); then local I PORTS="" for ((I=0;I<${#PORT_ARR[*]};I++)); do if (( I % MAX_MULTI_PORTS == 0 )) && [[ -n ${PORTS} ]]; then add_rule_protocol_ip_port ${TABLE} ${CHAIN} \ ${PROTOCOL} ${PORTS#,} ${IP} ${RULE} PORTS="" fi PORTS="${PORTS},${PORT_ARR[I]}" done PORTS=${PORTS#,} if [[ -z "${PORTS}" ]]; then return fi fi if [[ -n "${PORTS}" && ${PROTOCOL} == @(ICMP|icmp) ]]; then declare -a ICMP_TYPES=( ${PORTS//,/ } ) local I for ((I=0;I<${#ICMP_TYPES[*]}-1;I++)); do add_rule_protocol_ip_port ${TABLE} ${CHAIN} \ ${PROTOCOL} ${ICMP_TYPES[I]} ${IP} ${RULE} done PORTS=${ICMP_TYPES[I]} fi get_protocol_port_ip ${PROTOCOL} ${PORTS} ${IP} local PROT_IP_PORT=${RETURN} # Call iptables IPTABLES -t ${TABLE} -A ${CHAIN} ${PROT_IP_PORT} ${RULE} } ############################################################################### # Give staus of the firewall ############################################################################### function iptables_status () { IPTABLES -nvL IPTABLES -t nat -nvL IPTABLES -t mangle -nvL } ############################################################################### # Restore the firewall rules as saved with save_rules ############################################################################### function restore_rules () { local STATE_FILE=$1 echo -n "Restoring rules: " if [[ -f ${STATE_FILE} ]]; then iptables-restore -c < ${STATE_FILE} else echo -n "File '${STATE_FILE}' not found " fi echo "Done." } ############################################################################### # Give staus of the firewall ############################################################################### function save_rules () { local STATE_FILE=$1 echo -n "Saving rules: " # Make sure that this file is not tampered. rm -f ${STATE_FILE} touch ${STATE_FILE} chown root:root ${STATE_FILE} chmod 600 ${STATE_FILE} iptables-save -c >> ${STATE_FILE} echo "Done." } ############################################################################### # apply_script: ############################################################################### function apply_script { local SCRIPT=$1 local LENGTH=$2 local VAR local I for ((I=0;I<${LENGTH};I++)); do VAR=${SCRIPT}[$I] debug_out "${VAR}=${!VAR}" if (( TEST == 1 )); then echo "${!VAR}" >> ${TEST_FILE} else ${!VAR} fi done } ############################################################################### # Get the name of a service based on port and protocol # RESULT holds the return value. # The result is cached. ############################################################################### function get_service_name { local PROTOCOL=$1 local PORT=$2 #Lookup in the cache RESULT="" local I if [[ -n "${PORT}" ]]; then for ((I=0;I<${#SERVICE_CACHE[*]};I++));do if [[ "${SERVICE_CACHE[I]%:*}" = "${PORT}/${PROTOCOL}" ]];then RESULT=${SERVICE_CACHE[I]#*:} return fi done RESULT=$(grep -i -e "[^0-9]${PORT}/${PROTOCOL}" ${SERVICES} | cut -f1) if [[ -z "${RESULT}" ]]; then RESULT="${PORT}" fi SERVICE_CACHE[${#SERVICE_CACHE[*]}]="${PORT}/${PROTOCOL}:$RESULT" else RESULT="" fi } ############################################################################### # Get the port number based on a service name and protocol # RESULT holds the return value. ############################################################################### function get_service_port () { local PROTOCOL=$1 local PORTNAME=$2 RESULT=$(grep -e "${PORTNAME}.*/${PROTOCOL}" /etc/services | cut -f 3 | cut -d'/' -f1) } ############################################################################### # Get the name of a ip-address. # RESULT holds the return value. # Result is pooled for later use. ############################################################################### function get_host_name () { local IP=$1 RESULT=${IP} if [[ -n "${IP}" ]]; then local I for ((I=0;I<${#HOST_CACHE[*]};I++));do if [[ "${HOST_CACHE[I]}" = ${IP}:* ]];then RESULT=${HOST_CACHE[I]#*:} return fi done RESULT=$(${DNS_RESOLVE} ${IP}) if [[ -n "${RESULT}" ]]; then IP=${RESULT%%.} fi # Always put result into the cache to save time looking up again. HOST_CACHE[${#HOST_CACHE[*]}]="${IP}:$RESULT" fi } ############################################################################### # Load modules. ############################################################################### function load_modules () { local MODULE for MODULE in ${MODULES}; do if (( TEST == 1 )); then echo "modprobe ${MODULE}" >> ${TEST_FILE} else modprobe ${MODULE} fi done } ############################################################################### # Unload modules. ############################################################################### function unload_modules () { local MODULE for MODULE in ${MODULES}; do if (( TEST == 1 )); then echo "modprobe -r ${MODULE}" >> ${TEST_FILE} else modprobe -r ${MODULE} > /dev/null 2>&1 fi done } ############################################################################### # Convert a mask to a number. ############################################################################### function mask_to_number () { local MASK=$1 RESULT=1 case ${MASK} in 1) RESULT=128 ;; 2) RESULT=64 ;; 3) RESULT=32 ;; 4) RESULT=16 ;; 5) RESULT=8 ;; 6) RESULT=4 ;; 7) RESULT=2 ;; 8) RESULT=1 ;; esac } ############################################################################### # Convert a mask to a number. ############################################################################### function bitmap_to_mask () { local MASK=$1 RESULT=0 local BITS local i for ((i=0;i<4;i++)); do case ${MASK%%.*} in 255) BITS=8 ;; 254) BITS=7 ;; 252) BITS=6 ;; 248) BITS=5 ;; 240) BITS=4 ;; 224) BITS=3 ;; 192) BITS=2 ;; 128) BITS=1 ;; 0) BITS=0 ;; esac RESULT=$(( ${RESULT} + ${BITS} )) MASK=${MASK#*.} done } ############################################################################### # Test if an IP is in the given network # Param: network mask ip # Where mask is a single number. ############################################################################### function ip_in_network () { local NET=$1 local MASK=$2 local IP=$3 local NUMBER # If mask is in dotted notation, convert it to bitmask if [[ "${MASK}" == +(+([[:digit:]]).)+([[:digit:]]) ]]; then bitmap_to_mask ${MASK} MASK=${RESULT} fi while (( ${MASK} >= 1 )); do mask_to_number ${MASK} NUMBER=${RESULT} NET_FIELD=$(( ${NET%%.*} / ${NUMBER} )) IP_FIELD=$(( ${IP%%.*} / ${NUMBER} )) #echo ${NET_FIELD} -ne ${IP_FIELD} if (( NET_FIELD != IP_FIELD )); then return -1 break fi NET=${NET#*.} IP=${IP#*.} MASK=$((${MASK} - 8)) done return 0 } ############################################################################### # Compare two ip numbers. # Result: -1 ip1 lower than ip2 # 0 equal # 1 ip1 greater than ip2 ############################################################################### function compare_ip () { RESULT=0 declare -a IP1="( $(echo $1 | sed s/\\\./\ /g) )" declare -a IP2="( $(echo $2 | sed s/\\\./\ /g) )" local I for ((I=0;I<4;I++)); do if (( ${IP1[I]} > ${IP2[I]} ));then RESULT=1 return elif (( ${IP1[I]} < ${IP2[I]} )); then RESULT=-1 return fi done } ############################################################################### # Check that argument is an ip number # return value 0 if argument is a number ############################################################################### function check_ip () { local IP=$1 if [[ "${IP}" == +([[:digit:]]).+([[:digit:]]).+([[:digit:]]).+([[:digit:]]) ]]; then return 0 else return 1 fi } ############################################################################### # Check that a zone exists # function returns 0 on success ############################################################################### function check_zone () { local ZONE=$1 local ERRORMSG=$2 RESULT=0 local AZONE for AZONE in ${ZONES} ALL; do if [[ "${ZONE}" == "${AZONE}" ]]; then return 0 fi done if [[ -n "${ERRORMSG}" ]]; then local ZONEFILE ZONEFILE=CONF_${NAME} ZONEFILE=${!ZONEFILE} echo -e "\n${ZONEFILE}: ${ERRORMSG}\n" debug_out "${ZONEFILE}: ${ERRORMSG}" fi return 1 } ############################################################################### # Locate zone based on ip and interface. All zones needs to be loaded. # Param: # Returns: Name of the zone ############################################################################### function get_zone_name () { local ZONE_DEV=$1 local ZONE_IP=$2 RESULT="UNKNOWN" for ZONE in ${ZONES}; do GLOBAL=${ZONE}_GLOBAL; GLOBAL=${!GLOBAL} DYNAMIC=${ZONE}_DYNAMIC; DYNAMIC=${!DYNAMIC} NETS=${ZONE}_NETS; NETS=${!NETS} if [[ ${ZONE_DEV} == ${DEV} ]]; then if (( GLOBAL == 1 || DYNAMIC == 1 )); then RESULT=${ZONE} else for NET in ${NETS}; do if ip_in_network ${NET%/*} ${NET#*/} ${ZONE_IP}; then RESULT=${ZONE} fi done fi fi if [[ "${RESULT}" != "UNKNOWN" ]]; then break fi done } ############################################################################### # Jumps to the specified chain, if the destination zone matches. # Args:
############################################################################### function jump_zone () { local DST_ZONE=$1 local DIRECTION=$2 local TABLE=$3 local SRC_CHAIN=$4 local DST_CHAIN=$5 local NETS=${DST_ZONE}_NETS local GLOBAL=${DST_ZONE}_GLOBAL local DYNAMIC=${DST_ZONE}_DYNAMIC local DEV=${DST_ZONE}_DEV NETS=${!NETS} GLOBAL=${!GLOBAL} DYNAMIC=${!DYNAMIC} DEV=${!DEV} local DEV_ARG local NET_ARG case ${DIRECTION} in SRC) DEV_ARG="-i" NET_ARG="-s" ;; DST) DEV_ARG="-o" NET_ARG="-d" ;; esac if (( GLOBAL == 1 || DYNAMIC == 1 )); then IPTABLES -t ${TABLE} -A ${SRC_CHAIN} ${DEV_ARG} ${DEV} -j ${DST_CHAIN} else local NET for NET in ${NETS}; do IPTABLES -t ${TABLE} -A ${SRC_CHAIN} \ ${DEV_ARG} ${DEV} ${NET_ARG} ${NET} -j ${DST_CHAIN} done fi } ############################################################################### # Test if the current kernel version is greater or equal to the given. # E.g: kernel_version 2.4.21 ############################################################################### function kernel_version_ge () { local KERNEL_VERSION=$1 local KMA=$(echo ${KERNEL_VERSION} | cut -d"." -f 1) local KMI=$(echo ${KERNEL_VERSION} | cut -d"." -f 2) local KRE=$(echo ${KERNEL_VERSION} | cut -d"." -f 3) local VAL=$(( ${KMA}*10000 + ${KMI}*100 + ${KRE} )) local CUR_VAL=$(( ${MAJOR}*10000 + ${MINOR}*100 + ${RELEASE})) if (( ${CUR_VAL} >= ${VAL} )); then return 0 else return 1 fi } ############################################################################### # Test if the current kernel version is less or equal to the given. # E.g: kernel_version 2.4.21 ############################################################################### function kernel_version_le () { local KERNEL_VERSION=$1 local KMA=$(echo ${KERNEL_VERSION} | cut -d"." -f 1) local KMI=$(echo ${KERNEL_VERSION} | cut -d"." -f 2) local KRE=$(echo ${KERNEL_VERSION} | cut -d"." -f 3) local VAL=$(( ${KMA}*10000 + ${KMI}*100 + ${KRE} )) local CUR_VAL=$(( ${MAJOR}*10000 + ${MINOR}*100 + ${RELEASE} )) if (( ${CUR_VAL} <= ${VAL} )); then return 0 else return 1 fi } fiaif-1.23.1/VERSION0000640000175000017500000000000712076552224013234 0ustar calvincalvin1.23.1 fiaif-1.23.1/Makefile0000640000175000017500000001766411571724545013653 0ustar calvincalvin# Makefile for FIAIF # # Copyright (C) 2002-2011 Anders Peter Fugmann # This package comes with ABSOLUTELY NO WARRANTY # Use strictly at your own risk. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. INSTALL_SRC_PATH=/usr/share/fiaif INSTALL_DOC_PATH=/usr/share/doc/fiaif INSTALL_CONF_PATH=/etc/fiaif INSTALL_INIT_PATH=/etc/init.d INSTALL_MAN_PATH=/usr/share/man/man INSTALL_PROG_PATH=/usr/sbin INSTALL_CRON_PATH=/etc/cron.daily/ HTML_PATH=/home/afu/fiaif DIST_PATH=$(HTML_PATH)/dist BETA_PATH=$(HTML_PATH)/beta SRC_PATH=src/ CONF_PATH=conf/ MAN_PATH=man DOC_PATH=doc/ PROG_PATH=prog/ CRON_PATH=cron INITD_LEVEL=09 INIT_FILE=fiaif CRON_FILE=fiaif.cron FAQ=doc/faq.txt CHANGELOG=changelog DOC_FILES=$(CHANGELOG) debian/copyright doc/DHCP.txt \ doc/reporting_bugs.txt doc/upgrade.txt CONF_FILES=fiaif.conf zone.int zone.ext zone.dmz \ reserved_networks private_networks \ type_of_services aliases VERSION:=$(shell head -n1 changelog | cut -d" " -f 3) DEB_VERSION:=$(shell VER=$$(head -n1 debian/changelog | sed "s/.*(\(.*\)).*/\1/g"); \ if test "$$VER" = "$(VERSION)*"; then echo $$VER; \ else echo $(VERSION)-0.1; fi) SPEC_VERSION:=$(shell VER=$$(grep "Version" fiaif.spec | cut -f 2); \ REL=$$(grep "Release" fiaif.spec | cut -f 2); \ if test "$$VER" = "$(VERSION)"; then echo "$$VER-$$REL"; \ else echo "$(VERSION)-0.1"; fi) .PHONY: install uninstall install-config install-initd \ clean all dist debian tar rpm html fiaif.ps all: install install-initd install: VERSION fiaif.ps install -d $(DESTDIR)/$(INSTALL_SRC_PATH) install -d $(DESTDIR)/$(INSTALL_DOC_PATH) install -m 700 -d $(DESTDIR)/$(INSTALL_CONF_PATH) install -d $(DESTDIR)/$(INSTALL_INIT_PATH) install -d $(DESTDIR)/$(INSTALL_MAN_PATH)5 install -d $(DESTDIR)/$(INSTALL_MAN_PATH)8 install -d $(DESTDIR)/$(INSTALL_PROG_PATH) install -d $(DESTDIR)/var/lib/fiaif install -d $(DESTDIR)/var/lock/subsys install -d $(DESTDIR)/$(INSTALL_CRON_PATH) install -m 644 $(SRC_PATH)/*sh $(DESTDIR)/$(INSTALL_SRC_PATH) install -m 644 $(SRC_PATH)/*awk $(DESTDIR)/$(INSTALL_SRC_PATH) install -m 644 $(DOC_FILES) $(DESTDIR)/$(INSTALL_DOC_PATH) [ -f fiaif.ps ] && \ gzip -9 -c fiaif.ps > $(DESTDIR)/$(INSTALL_DOC_PATH)/fiaif.ps.gz || echo ok gzip -9 -c changelog > $(DESTDIR)/$(INSTALL_DOC_PATH)/changelog.gz install -m 644 $(MAN_PATH)/*.8 $(DESTDIR)/$(INSTALL_MAN_PATH)8/ install -m 644 $(MAN_PATH)/*.5 $(DESTDIR)/$(INSTALL_MAN_PATH)5/ install -m 755 $(PROG_PATH)/$(INIT_FILE) $(DESTDIR)/$(INSTALL_INIT_PATH) install -m 755 $(PROG_PATH)/fiaif-* $(DESTDIR)/$(INSTALL_PROG_PATH) install -m 644 VERSION $(DESTDIR)/$(INSTALL_SRC_PATH) rm -f $(DESTDIR)/var/lib/fiaif/iptables install -m 755 $(CRON_PATH)/fiaif $(DESTDIR)/$(INSTALL_CRON_PATH) install-initd: if [[ -d $(DESTDIR)/etc/rcS.d/ ]] ; then \ if [[ ! -f $(DESTDIR)/etc/rcS.d/S$(INITD_LEVEL)$(INIT_FILE) ]]; then \ ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/rcS.d/S$(INITD_LEVEL)$(INIT_FILE) ; \ fi \ elif [[ -d $(DESTDIR)/etc/init.d/ && ! -L $(DESTDIR)/etc/init.d ]]; then \ if [[ ! -f $(DESTDIR)/etc/init.d/rc3.d/S$(INITD_LEVEL)$(INIT_FILE) ]]; then \ ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/init.d/rc3.d/S$(INITD_LEVEL)$(INIT_FILE) ; \ ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/init.d/rc5.d/S$(INITD_LEVEL)$(INIT_FILE) ; \ fi \ elif [[ -d $(DESTDIR)/etc/rc.d/ ]]; then \ if [[ ! -f $(DESTDIR)/etc/rc.d/rc3.d/S$(INITD_LEVEL)$(INIT_FILE) ]]; then \ ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/rc.d/rc3.d/S$(INITD_LEVEL)$(INIT_FILE) ; \ ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/rc.d/rc5.d/S$(INITD_LEVEL)$(INIT_FILE) ; \ fi \ fi install-config: install -m 600 --backup --suffix ".orig" $(addprefix $(CONF_PATH), $(CONF_FILES)) $(DESTDIR)$(INSTALL_CONF_PATH) uninstall: $(RM) -r $(DESTDIR)/$(INSTALL_DOC_PATH) $(RM) $(DESTDIR)/$(INSTALL_INIT_PATH)/$(INIT_FILE) $(RM) -r $(DESTDIR)/$(CONF_PATH) $(RM) $(DESTDIR)/etc/rc?.d/S$(LEVEL)$(INIT_FILE) html: fiaif.ps install -d $(HTML_PATH)/img install -d $(HTML_PATH)/dist install -d $(HTML_PATH)/beta install -d $(HTML_PATH)/man install -d $(HTML_PATH)/conf install -m 644 $(FAQ) $(HTML_PATH) install -m 644 html/favicon.ico $(HTML_PATH) install -m 644 html/*php $(HTML_PATH)/ install -m 644 html/img/*png $(HTML_PATH)/img install -m 644 $(addprefix $(CONF_PATH), $(CONF_FILES)) $(HTML_PATH)/conf for manpage in $(MAN_PATH)/*{5,8}; do \ groff -man -Thtml $$manpage > $(HTML_PATH)/$$manpage.html; \ done install -m 644 fiaif.ps $(HTML_PATH) $(MAKE) -C doc/fiaif html HTML_DIR=$(HTML_PATH)/doc fiaif.ps: $(MAKE) -C doc/fiaif fiaif.ps cp doc/fiaif/fiaif.ps . deb: VERSION fakeroot dpkg-buildpackage -us -uc || true rm -fr debian/fiaif rpm: tar VERSION cp ../fiaif_$(VERSION).tar.gz ~/rpmbuild/SOURCES/ rpmbuild -ba --rmsource --clean fiaif.spec mv ~/rpmbuild/RPMS/noarch/fiaif-$(SPEC_VERSION).noarch.rpm ../fiaif_$(SPEC_VERSION).noarch.rpm mv ~/rpmbuild/SRPMS/fiaif-$(SPEC_VERSION).src.rpm ../fiaif_$(SPEC_VERSION).src.rpm tar: clean VERSION fiaif.ps cd ..; find fiaif -type d -name .svn > /tmp/exclude cd ..; find fiaif -type f -name .cvsignore >> /tmp/exclude echo fiaif/html >> /tmp/exclude echo update_changelog.sh >> /tmp/exclude cd ..; tar zcf fiaif_$(VERSION).tar.gz -X /tmp/exclude fiaif/* tar zxf ../fiaif_$(VERSION).tar.gz --directory debian mv debian/fiaif debian/fiaif-$(VERSION) cd debian; tar zcf ../../fiaif_$(VERSION).tar.gz fiaif-$(VERSION)/* rm -fr debian/fiaif-$(VERSION) rm -f /tmp/exclude VERSION: $(CHANGELOG) ./update_changelog.sh echo $(VERSION) > VERSION dist: clean tar deb rpm VERSION install -m 644 ../fiaif_$(DEB_VERSION).dsc $(DIST_PATH) install -m 644 ../fiaif_$(DEB_VERSION)_all.deb $(DIST_PATH) install -m 644 ../fiaif_$(DEB_VERSION)_*.changes $(DIST_PATH) install -m 644 ../fiaif_$(SPEC_VERSION).noarch.rpm $(DIST_PATH) install -m 644 ../fiaif_$(SPEC_VERSION).src.rpm $(DIST_PATH) install -m 644 ../fiaif_$(VERSION).tar.gz $(DIST_PATH) cd $(DIST_PATH); apt-ftparchive packages . | gzip > Packages.gz cd $(DIST_PATH); apt-ftparchive sources . | gzip > Sources.gz echo "$(VERSION)" > $(HTML_PATH)/VERSION echo "$(DEB_VERSION)" > $(HTML_PATH)/DEB_VERSION echo "$(SPEC_VERSION)" > $(HTML_PATH)/SPEC_VERSION install -m 644 $(CHANGELOG) $(HTML_PATH)/ rm -f $(DIST_PATH)/LATEST-IS-* touch $(DIST_PATH)/LATEST-IS-$(VERSION) cd $(DIST_PATH)/; md5sum fiaif* > md5sums beta: clean tar deb rpm html VERSION install -m 644 ../fiaif_$(DEB_VERSION).dsc $(BETA_PATH) install -m 644 ../fiaif_$(DEB_VERSION)_all.deb $(BETA_PATH) install -m 644 ../fiaif_$(DEB_VERSION)_i386.changes $(BETA_PATH) install -m 644 ../fiaif_$(SPEC_VERSION).noarch.rpm $(BETA_PATH) install -m 644 ../fiaif_$(SPEC_VERSION).src.rpm $(BETA_PATH) install -m 644 ../fiaif_$(VERSION).tar.gz $(BETA_PATH) cd $(BETA_PATH); apt-ftparchive packages . | gzip -9c > Packages.gz cd $(BETA_PATH); apt-ftparchive sources . | gzip -9c > Sources.gz install -m 644 $(CHANGELOG) $(HTML_PATH)/ rm -f $(BETA_PATH)/LATEST-IS-* touch $(BETA_PATH)/LATEST-IS-$(VERSION) cd $(BETA_PATH)/; md5sum fiaif* > md5sums clean: $(MAKE) -C doc/fiaif clean find . -name \*~ | xargs rm -f $(RM) ../fiaif_* $(RM) -r debian/fiaif $(RM) -r debian/fiaif_$(VERSION) $(RM) debian/*debhelper debian/files debian/*substvars $(RM) fiaif.ps $(RM) VERSION $(RM) build-stamp fiaif-1.23.1/changelog0000640000175000017500000005554512076551755014067 0ustar calvincalvinFIAIF Version: 1.23.1 Sun, 19 Jan 2013 - Use conntrack instead of obsolete state match - Remove traffic shaping - Fix bug in rule cleanup FIAIF Version: 1.22.1 Sun, 19 Mar 2011 - Allow trafficshaping for devicenames ending on + FIAIF Version: 1.22.0 Sun, 19 Mar 2011 - Include patches from Debain - Update website a bit - Improved traffic-shaping - Allow device names such as eth0+ FIAIF Version: 1.21.1 Tue, 23 Jan 2007 - Fix major problem with SNAT rules. FIAIF Version: 1.21.0 Tue, 23 Jan 2007 - New traffic shaping based on hfsc sheduler. - Bug fixes for REJECT rules and sanity checks. - Bug fix for DHCP clients beeing rejected. - Fix bug where ACCEPT_LOG target never accepted packets. FIAIF Version: 1.20.1 Sun, 16 Dec 2005 - Remove all notions of CBQ scheduler. FIAIF Version: 1.20.0 Sun, 4 Dec 2005 - Improved traffic shaping. - Always classify ftp data as bulk traffic - Prioritize traffic correctly, only guaranteing minimum bandwidths. - Remove cbq traffic shaping. - Base shaping on theoretical bandwidth and estimate real bandwidth. FIAIF Version: 1.19.3 Wed, 2 May 2004 - Add some ICMP sanity checks. - Updated the reserved networks file. FIAIF Version: 1.19.2 Wed, 25 Feb 2004 - Remove fiaif6 manpage. FIAIF Version: 1.19.1 Mon, 23 Feb 2004 - Relax tcp sanity checking for SYN packets in ESTABLISHED state. FIAIF Version: 1.19.0 Sat, 22 Feb 2004 - Allow for use of '+' in interface names, eg. ppp+ - Rewrite of sanity-checking of tcp packets. - Better cleaning of rules. FIAIF Version: 1.18.0 Sat, 3 Jan 2004 - Do not log ACK,FIN packets. - Posibility to specify configuration through FIAIF_CONF variable if set. - Fix alien character in fiaif_rules.awk which breaks fedora. FIAIF Version: 1.17.2 Sat, 1 Oct 2003 - Fix probem in IP_DROP, IP_WATCH etc, when not using aliases. FIAIF Version: 1.17.1 Sat, 28 Sep 2003 - Allow uppercase letters in MAC addresses. - Only apply fix for traceroute ICMP packets if kernel >= 2.4.21 - Fix redirect rules. - Log scan packets, instead of dropping them silently. - Allow use of aliases in IP_DROP and IP_WATCH and ECH_REMOVE - Fix optimization of statements that has RETURN as target. FIAIF Version: 1.16.0 Mon, 11 Aug 2003 - Fix problems with recent versions of gawk - Do not log rules that could not be cleaned up. - Allow use of service name in redirect rules. - Allow use of ip aliases in redirect rules. FIAIF Version: 1.15.2 Mon, 26 May 2003 - Fix REDIRECT syntax. FIAIF Version: 1.15.1 Mon, 26 May 2003 - Fix syntax for WATCH_IP, MAC_DROP, IP_DROP and ECN_REMOVE. - If limit is wrong, log all packets. FIAIF Version: 1.15.0 Sun, 25 May 2003 - Documentation updates. - Allow specification of a single IP in SNAT rules. - Add ECN_REMOVE rule. FIAIF Version: 1.14.0 Tue, 29 Apr 2003 - fiaif-getdev updated to not append networks already covered in NET_EXTRA. - Manpages updated. - Complete rewite of cleanup-rules to use awk sctipt. - Make init.d script always send information to the syslog. - Fix REDIRECT rules to accept more than two IP's. FIAIF Version: 1.13.3 Wed, 9 Apr 2003 - Added fiaif-getdev to obtain interface information. - Fixed syntax check when referencing to a file in zone files. - Corrected some bogus references in the manpages. FIAIF Version: 1.13.2 Wed, 8 Apr 2003 - Conform with LSB 1.3 for init.d scripts. - Fixed bug when testing length of POST_SCTIPS - Fixed regular expressions for fiaif.conf syntax check. - Made syntax check a bit more strict. - Made FIAIF print out which zone containd syntax errors. FIAIF Version: 1.13.1 Wed, 8 Apr 2003 - Make awk scripts compatible with gawk and original-awk FIAIF Version: 1.13.0 Wed, 7 Apr 2003 - Add check for ip_dynnaddr. - new versioning scheme for rpms and debs. - Fix potiental error when cleaning up rules. - Strict syntax check of configuration files. FIAIF Version: 1.12.1 Sat, 08 Mar 2003 - Fix underscores in IPSETS FIAIF Version: 1.12.0 Sat, 08 Mar 2003 - update-fiaif is now interactive. - Print from which zone a packet was missed. - New configuration option: ALIASES for specification of global IP aliases. FIAIF Version: 1.11.0 Fri, 28 Feb 2003 - Change all references to fiaif.net - Fix bug in MARK rule generation. - Add ACCEPT_LOG DROP_NOLOG REJECT_NOLOG targets to INPUT OUTPUT and FORWARD rules. - Add LOG target to INPUT, OUTPUT and FORWARD. - Allow lists of icmp names or numbers in rules. FIAIF Version: 1.10.0 Mon, 24 Feb 2003 - Change SNAT syntax. - Last bug fixes in cleanup_rules. - Fix bug when specifying over 15 ports in rule specifications. - Internal cleanup. - Fix some bugs in fiaif-update, and check private networks aswell. - Allow reference to files in IPSET variables. FIAIF Version: 1.9.2 Sat, 22 Feb 2003 - Change cron script to give information when files are updated - Make cleanup_rules compatible with older versions of bash. FIAIF Version: 1.9.0 Wed, 19 Feb 2003 - Structual changes. Preperation for using MARK. - Documentation updates. - Better cleaning of rules by concatination of rules. - Added fiaif-update, and made cron job to update reserved_networks. FIAIF Version: 1.8.2 Thr, 13 Feb 2003 - Update reserved_networks file to latest IANA changes. FIAIF Version: 1.8.1 Wed, 12 Feb 2003 - Fix WATCH_IP rule generation. - Fix Limit rules with REJECT target - Decrease netfilter memory usage when logging is enabled. - Add a general chain for better caching of rules. - Logging targets moved to constants.sh - Log packets wothout a know state. FIAIF Version: 1.8.0 Tue, 11 Feb 2003 - Fix bug in SNAT rules. - Allow reference to files in WATCH_IP, IP_DROP and MAC_DROP - Minor updates to debian package creation. - Allow Comments at end of line in reserved and private networks file FIAIF Version: 1.7.3 Wed, 29 Jan 2003 - Fix error output when zone not found in REPLY rules. - Include ps file instead of dvi, which did not contain graphics. - Build even if doc could not be build FIAIF Version: 1.7.0 Wed, 29 Jan 2003 - Fix errors when VERBOSE==0. - Fix bug in SNAT when the source zone is declared DYNAMIC or GLOBAL. - Fixed possible bugs for DYNAMIC zones. - Use either dig or dnsname to resolve ip addresses. - Change format of reply rules. - Change format of REDIRECT rules. - Minor manpage updates. FIAIF Version: 1.6.3 Thr, 23 Jan 2003 - Changelog seperated from debian changelog. - Autoupdate versions in fiaif.spec and debian/changelog FIAIF Version: 1.6.2-2 Fri, 17 Jan 2003 - Fixed probem when specifying a single port for protocol tcp or udp. FIAIF Version: 1.6.1-2 Fri, 17 Jan 2003 - Changes to debian package creation. FIAIF Version: 1.6.1-1 Wed, 15 Jan 2003 - Fix a bug when cleaning up rules. - Fix a bug in POST_NAT_CHAIN. - Make REDIRECT rules match zones more closely. - Make SNAT rules match zones more closly. FIAIF Version: 1.6.0-2 Tue, 14 Jan 2003 - Update examples in manpages to reflect new syntax. - Update the zone.dmz example. FIAIF Version: 1.6.0-1 Mon, 12 Jan 2003 - Stop processing of rules, if user is not root. - Make owner of all state-files root:root - Delete temporary file when cleaning up rules - Reenable ip solving in fiaif-scan - Make traffic shaping work again - If protocol is ALL, then accept no port argument in FORWARD, INPUT and OUTPUT, MARK and LIMIT rules - Cleanup functions - Update manpage for zone.conf - autoupdate VERSION and fiaif.spec from version contained in debian/changelog FIAIF Version: 1.5.2-2 Sat, 4 Jan 2003 - Fix WATCH_IP rules. - Fix some debian package problems. - Fix rpm errors on RH 8.0 - Fix install-initd target in tar.gz distribution - Build and distribute srpms. FIAIF Version: 1.5.1-3 Thr, 2 Jan 2003 - Fix rpm package. - Fix how to declare parameters in read_zone. - Do not return status in RETURN from read_zone. - Fix tests in read_zone. FIAIF Version: 1.5.1-1 Tue, 31 Dec 2002 - Declare variables, if possible. - Fix restart, and let force-reload ignore previous state files. - Update DHCP.txt to new configuration options. - Added upgrade.txt to documentation section. FIAIF Version: 1.5.0-1 Sun, 29 Dec 2002 - Watch IP's in (PRE|POST)ROUTING mangle chains. - Fix IP_DROP to match incomming packets. - Allow empty lines and lines starting with \# in private/reserved_networks file - Test for only one GLOBAL/DYNAMIC zone per interface - Actually fix proc settings when running FIAIF. - Refer to Oskar Andreasson's Ipsysctl tutorial, in case of proc problems. - Add prefix to all logged lines - Fix MAC_DROP rules - Make cleanup chains delete untill nothing more can be deleted. - Save previous state of netfilter and /proc, and restore on stop. FIAIF Version: 1.4.5-1 Fri, 13 Dec 2002 - Fix creation of mangle chains for MARK rules. - Fix REDIRECT problem. FIAIF Version: 1.4.4-3 Wed, 11 Dec 2002 - Specify template for mktemp. - Add shell option to fiaif-scan FIAIF Version: 1.4.4-1 Wed, 5 Dec 2002 - Changed proc tests to use integer tests. - Added tcp_timeout test. - Added GPL license. - Support for mixed port specification in REPLY rules. - Added REPLY rule for traceroute for zone.ext. - Delete empty chains, by deleting all references. - Fix when to call user chains. - 'fiaif status' now prints packet counters. FIAIF Version: 1.4.3-1 Sun, 1 Dec 2002 - Fix for MARK rules in dynamic zones. - Added chains for user specified rules. - Fixed zone manpage. - Allow redirect to localhost, by using REDIRECT target. - Allow redirect to an ip in the zone itself (only for non-dynamic, non-global zones). - Removed some superflorous zone checks. FIAIF Version: 1.4.2-1 Thr, 28 Nov 2002 - Allow mixed port specification in INPUT, OUTPUT, FORWARD and MARK rules - Allow used IP aliases by using IPSET_XXX. FIAIF Version: 1.4.1-2 Mon, 25 Nov 2002 - Sync private_networks with IANA. FIAIF Version: 1.4.1-1 Sun, 24 Nov 2002 - Fixed problem with DYNAMIC=1 and SNAT rules. - Deleted some unused chains. - Tighter security for non-dynamic zones. FIAIF Version: 1.4.0-2 Wed, 20 Nov 2002 - Fixed wrong comment in configuration files. FIAIF Version: 1.4.0-1 Wed, 20 Nov 2002 - Removed AUTOCONF - Changed STATIC to DYNAMIC. - Added extra tests for nat and mangle to reduce number of rules. FIAIF Version: 1.3.2-1 Thu, 29 Oct 2002 - Fix HTB traffic shaper. - Fix error when state file is not present. - Added DHCP.txt - Added reporting_bugs.txt - Fix DHCP servers not allowing renewal of leases. - Changed test operators to "[[ ]] and (( ))". FIAIF Version: 1.3.1-1 Thu, 24 Oct 2002 - Fix DHCP server and client. - Updated to makefiles from Steve Orr. - Changed shebang in fiaif-scan to /bin/bash. - Manpage updates from Steve Orr. - Added HTB shaper by Sergiusz Pawlowicz. - Moved the state file to /var/lib/fiaif - Updated chkconfig in init.d script. FIAIF Version: 1.3.0-2 Sun, 20 Oct 2002 - Move VERSION file to /usr/share/fiaif. - Include VERSION file in state validation check. FIAIF Version: 1.3.0-1 Wed, 17 Oct 2002 - Packet from the firewall itself can now be marked. - Fix dublicate limit chains FIAIF Version: 1.2.1-1pre2 Wed, 16 Oct 2002 - Update Makefile to work with Redhat, Debian, Suse and FHS (Douglas J Hunley) - Drop the use of an array to hold zone information (R?mi Denis-Courmont) - Escape pings and minor spelling mistakes in manpages (steveo(at)syslang.net) - Added possibility to mark packets, to be used with routing. FIAIF Version: 1.2.1-1pre1 Thr, 12 Sep 2002 - Remove all filtering from mangle or nat tables - Better chain routes, which allows faster processing. - Allow nonstatic zones when interface is not up yet. FIAIF Version: 1.2.1-1 Wed, 11 Sep 2002 - Fix bugs in fiaif scan spotted by Douglas J Hunley. - Print interface configuration to fiaif.out - Change contents of tarball. - Remove local redirection to the firewall - Update syslog messages and logging. FIAIF Version: 1.2.0-1 Sun, 8 Sep 2002 - Use iptables-save and iptables-restore to speed up loading. - Move global constants to seperate file. - Change mode to 700 on /etc/fiaif. - Add LOG_LEVEL to fiaif.conf. - Make force-reload ignore state file. - Remove statefile upon upgrade. - Add pre-stop and post-stop scripts. - Fixed a bug when applying post scripts twice. - Log start and stop commands to system log. - Update manpages. FIAIF Version: 1.1.7-2 Fri, 6 Sep 2002 - Allow for ports to be any in TOS settings. - add support for icmp in TOS settings. - Updated type_of_services file based on RFC 1060/1349. - TOS now has a seperate chain, to minimize rules. FIAIF Version: 1.1.7-1 Fri, 30 Aug 2002 - Change rp_filter in procsheck to warning, and case on number of global zones. - Silently drop new packets without the SYN bit set. - Fix handling of forward rules when receiving packets from a non-global zone. - Add gracefull handling of autoconfigured zones that are not up yet. FIAIF Version: 1.1.6-1 Thr, 22 Aug 2002 - Use /proc/sys/net/ipv4/ip_local_port_range in SNAT rules. - Fix minor bug in debugging output. - Check that IP, MASK, NET and BCAST variables are set in every zone. - Use --dports when using multiport. - More fixes to DHCP_SERVER thing. - Dont use LIMIT in logging rules if LOG_LIMIT or LOG_BURST is empty. - Allow TOS_FILE value to be the empty string. - Added possibility to specify ICMP type in Reply_with - Fix SNAT when using source address to NAT. FIAIF Version: 1.1.5-1 Sat, 17 Aug 2002 - Apply TOS setting to locally generated packets. - In case of undefined zone, prefix with the configuration file name - When using static static SNAT, SNAT on all ip's. - Added tc-status to see traffic counters. - Changed tc-start and tc-stop to ignore ENABLE_TC in the global configuration file - Updated manpages to include info on tc-start, tc-stop and tc-status. FIAIF Version: 1.1.4-1 Mon, 12 Aug 2002 - Fix AUTOCONF when using IPv6. - Fix NAT when using port specification. - Remove the PROTOCOLS parameter. - Updates to manpages files by Glenn English. - Correct sections and titles of manpages. FIAIF Version: 1.1.3-2 Fri, 2 Aug 2002 - Change to 'all' debian package instead of i386. - Better DHCP support. - Fix module loading - Updates to manpages and default configuration files by Glenn English. - Add a check for unresolved zones. - Check for exsistance of modprobe. FIAIF Version: 1.1.2-1 Mon, 21 Jul 2002 - Rename PUBLIC to GLOBAL in zone configuration files. - Let GLOBAL zones accept packets from NET and NET_EXTRA. - Set default values on integer variables in zone configuration files. - Updates to manpages and default configuration files from glenn english. FIAIF Version: 1.1.1-2 Mon, 22 Jul 2002 - Fix bug in declare, causing some version of bash to complain. - Change test of EXTENDED_MANGLE - Declare arrays using \". FIAIF Version: 1.1.0-3 Thr, 18 Jul 2002 - Make NAT work again FIAIF Version: 1.1.0-2 Thr, 18 Jul 2002 - Moved MULTICAST net to NET_EXTRA in zone.int. - Corrected missing '"' in zone.ext, causing strange errors. - Minor corrections to default chanins for zones. - Fix FORWARD rules FIAIF Version: 1.1.0-0pre3 Wed, 17 Jul 2002 - Made fiaif-scan handle multible zones per interface FIAIF Version: 1.1.0-0pre2 Mon, 15 Jul 2002 - Corrected code for FORWARD rules, to allow multible zones per interface - Corrected multicast net in zone.ext - Updated default configuration files to not include any xxx.xxx ip numbers - Updated manpages FIAIF Version: 1.1.0-0pre1 Mon, 15 Jul 2002 - Add support for multible zones per interface is public==0 - Only traverse RESERVED_NETS and PRIVATE_NETS if public==1 - Let multicast either be a NET_EXTRA or, a seperate zone on a private network. - Code cleanup. - Removed the MULTICAST_NET variable from main configuration file. FIAIF Version: 1.0.3-2 Thr, 11 Jul 2002 - Add support for multiple nets on a zone via NET_EXTRA variable. - SNAT now accepts specific ip/mask parameter to specify which packets to masquerade FIAIF Version: 1.0.3-1 Thr, 11 Jul 2002 - Hosts on a network are allowed to contact any IP of the firewall, but the zone file still applies. - Loop-back handling greatly simplified. - RESERVED_NETWORKS are now globally used. - Sanity checking is now a separate chain. - MAC_DROP parameter is working. - DYNAMIC_IP interfaces was not allowed to send to loop-back. FIAIF Version: 1.0.2-1 Wed, 10 Jul 2002 - RESERVED_NETWORKS can now specify a file. - PRIVATE_NETWORKS added - See RFC1918. - Internal networks may not send to reserved networks. - BIN_PATH parameter added instead of specifying location of iptables and tc explicit. - TOS settings moved to a separate file. - Updated TOS values. - Added TCP packet checks (port scans) FIAIF Version: 1.0.1-1 Sun, 7 Jul 2002 - Added /proc/net to be changed via configuration directives. - 'fiaif stop' now sets all chains to ACCEPT. - Removed Quake3 ports from zone.ext - Updated RESERVED_NETWORKS with list from IANA. (More complete now) - Added possibility of inserting and removing modules upon fiaif start/stop. - Minor code cleanup. FIAIF Version: 1.0.0-2 Mon, 1 Jul 2002 - Fix pre and post scripts. FIAIF Version: 1.0.0-1 Sat, 29 Jun 2002 - Minor spelling corrections - 'fiaif test' now accepts 2. argument. - Better support for multicast. - Added some Sanity checks. - Added DONT_START parameter to disable fiaif. - Added parameter 'DHCP' to enable DHCP queries. - Default configuration files usable on any system. - Corrected bugs when DHCP=1 FIAIF Version: 1.0.0-0rc2 Mon, 24 Jun 2002 - Set TOS values in prerouting, to enable routing based on TOS settings. - Only use INPUT, FORWARD and POSTROUTING mangle chains, if kernel >= 2.4.18 - Allow packets from the NET even if public is set (Allow routing to internet through a local network.) - Fix problems in for loops missing a ';'. Bash 2.05 does not seem to complain about this. - Dont try Traffic shaping at all if it has been disabled in the global configuration. - Updates to redhat package. But it still seems buggy. FIAIF Version: 1.0.0-0rc1 Sat, 22 Jun 2002 - Possible to specify source and destination for INPUT/OUTPUT/FORWARD and LIMIT (Suggestion and initial patch from Nikolay Fetisov). - Better setup of loopback zone. - Minor code cleanup. - Default policy for mangle prerouting and postrouting is now martian. - Close the firewall before applying rules. - Add comment to output during test. - Add configuration parameter to specify destination of test output. FIAIF Version: 0.9.8-1 Thr, 13 Jun 2002 - Make fiaif-scan faster - Print out ICMP type in fiaif-scan - Print out TCP flags in fiaif-scan - Log illegal destination address a martians. FIAIF Version: 0.9.7-8 Sat, 08 Jun 2002 - Fix in zone.dmz in forward rules. - Corrected comment in zone.ext. - removed fiaif.dirs from debian directory. - Manpages for conf files are now in section 5. - Removed Last output line (debugging information) from fiaif-scan. - Checked and corrected bug in the debian package. (found by lintian) - Allow packets from multicast net in all zones. - New TCP packet without syn are now logged through LOG_DROP, and ACK,FIN not displayed. - Cache result from hostname lookup's and service lookup's - Significantly speedup fiaif-scan - Strip '.' from host names in fiaif-scan - Added manpage for fiaif-scan - Scanning syslog is now done by fiaif-scan. FIAIF Version: 0.9.7-1 Fri, 07 Jun 2002 - Added preliminary supports for syslog scanning. use 'cat /var/log/syslog | /usr/share/fiaif/scan_log.sh' - Added ulogd support. - Fixed typo in LIMIT reporting. FIAIF Version: 0.9.6-4 Fri, 07 Jun 2002 - Added functionality to specify a port range in INPUT/OUTPUT/FORWARD and LIMIT. - Fixed type in NAT_TYPE. Thanks to Daniel Poelzleithner. - Fixup removal of empty chains. - Spell check to proc-check. Reorganized src layout. - /proc/sys/net setting is now checked when issuing a test. FIAIF Version: 0.9.5-3 Tue, 04 Jun 2002 - Fix rpm package - Error in installation. (copyright not found) - OUTPUT now check the destination IP number. - INPUT and OUTPUT and FORWARD now accept a ip/mask to specify the source of the packet. Use this to block out specific IP's or allow these. - Move sh files to /usr/share/fiaif, instead of lib. These files are not arch Dependant. FIAIF Version: 0.9.4-5 Mon, 03 Jun 2002 - Less lines in startup - Fixed lang pause in startup. - Give more verbose output, instead of a long pause. - Limit worked in reversed way - corrected - Dont remove chains with 10 rules - prescript and postscript are not prefixed by "/sbin/iptables " FIAIF Version: 0.9.3-2 Sun, 02 Jun 2002 - Only disallow ! syn on input queue, and low specially when dropped. - IP_DROP, MAC_DROP et. al. now works. - Preliminary redhat package. FIAIF Version: 0.9.2-4 Sun, 02 Jun 2002 - Html file removed from distribution. It contains too many relative links to actually be useful. - Added zone.dmz example configuration file. - Added Traffic shaping. - Minor code restructuring. - Renamed globals.sh to iptables.sh FIAIF Version: 0.9.1-7 Sun, 02 Jun 2002 - Split up functions.sh - Add limit support - Drop extra SNAT line. - Fix list of reserved networks. - MULTIBLE_IP removed from example zone.int. - EXTRA_IP functionality added. - Unset _all_ zone variables when loading a new zone. - Manpage cleanup. - Remove unused chains. - Added LOG_LIMIT and LOG_BURST to fiaif.conf - Minor code cleanup and restructuring. FIAIF Version: 0.9.0-2 Fri, 31 May 2002 - Manpages: fiaif.8, fiaif.conf.8 and zone.conf.8 - INOUT/OUTPUT changed to work just as FORWARD using an array. - Changed order of forward rules FIAIF Version: 0.8.7-8 Fri, 31 May 2002 - FORWARD now should work correctly - FORWARD rules in zones are now arrays in order to be able to specify a strict order FIAIF Version: 0.8.6-3 Thu, 30 May 2002 - Fixed Problem with checking for syn but set on output chain. The - Fixed symlink problem - Debian package FIAIF Version: 0.8.5-1 Thu, 30 May 2002 - Remove "zones are not supported. They have been from version 0.7 - FIAIF page now contains links to configuration files. FIAIF Version: 0.8.4-1 Thu, 30 May 2002 - Make installed files not executable by default. - Add fiaif directory to tar-ball. Easier to use. FIAIF Version: 0.8.3-1 Thu, 30 May 2002 - Run levels are now 3,5 for redhat, and rcS.d for debian. Shutdown scripts removed, since there is no need for these. FIAIF Version: 0.8.2-1 Thu, 30 May 2002 - Changed makefile to have both install and install-config. - CONF_PATH not used correctly. - Empty rules in INPUT/OUTPUT did not work. FIAIF Version: 0.8.1-1 Wed, 29 May 2002 - Removed ACK,FIN from logs. Its not a bug in FIAIF. - Minor changes to the page. - Freshmeat announcement. FIAIF Version: 0.8.0-1 Wed, 29 May 2002 - Made a html document, with a quick overview. - Changed MULTIBLE_IP to EXTRA_IP, which states any extra IP's of the interface(zone) - Added BCAST address for zones, and allow packets send to this address. - Made makefile usable. - Made REPLY_XXX parameter work. It can be used for any or all protocols - Removed the lo zone. The loopback device in Linux is too special. The script now makes its own rules. - if Rules for TCP, UDP, and TCP is the same, then only make one rule. This really clears things up. - Move RELATED,ESTABLISHED before NEW. This makes the speed a little bit faster. - Tested, and applied. - Tweaked system to manage loopback interface. - Added MULTIBLE_IP's to zone's. This way we can manage more than one IP per zone. It is very early. Dont depend on it. - Added Changelog File. fiaif-1.23.1/doc/0000750000175000017500000000000012076546226012740 5ustar calvincalvinfiaif-1.23.1/doc/iptables.tex0000640000175000017500000000421511571724545015271 0ustar calvincalvin\begin{slide} Formålet med en brændvæg er: \begin{itemize} \item At beskytte maskiner bag brændvægen. \item At kontrollere hvilke pakker der traverserer igennem brændvægen. \end{itemize} Netfilter er: \begin{itemize} \item Brændvæg implementeret i Linux kernen. \item Den første implementation som ikke bliver total omskrevet fra 2.4 til 2.6. \end{itemize} \end{slide} %============================================================ \begin{slide} Data i IP-pakker: \begin{itemize} \item Afsender \item Modtager \item TOS (Type Of Service) \end{itemize} Ekstra data i TCP/UDP pakker: \begin{itemize} \item Afsender port. \item Modtager port. \end{itemize} Kun TCP: \begin{itemize} \item TCP flags (SYN, ACK, FIN, etc.) \end{itemize} \end{slide} %============================================================ \begin{slide} Netfilter: tilstands-styret brændvæg. Netfilter arbejder med kæder (chains). \begin{itemize} \item PREROUTING, INPUT, FORWARD, OUTPUT og POSTROUTING \item MANGLE, NAT, FILTER. \end{itemize} Netfilter arbejder med fire tilstande: \begin{itemize} \item Ny \item Allerede Set \item Afledt \item Ugyldig. \end{itemize} \end{slide} %============================================================ \begin{slide} For at oprettet regler i netfilter bruges \textit{iptables}. Eksempel: \begin{verbatim} iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 1.2.3.4 \end{verbatim} \end{slide} %============================================================ \begin{slide} FIAIF Formål: \begin{itemize} \item At lette konfigurationen af en brændvæg. \item Let at udvide brændvæg. \item Undgå brug af iptables direkte. \end{itemize} \begin{itemize} \item Definere en netværkstilgang (interface) og netværket bag denne. \item En zone beskytter trafik til zonen. \item Hver zone defineres uafhængigt af andre zoner. \end{itemize} \end{slide} %============================================================ fiaif-1.23.1/doc/upgrade.txt0000640000175000017500000000140111571724545015126 0ustar calvincalvin/* $Id: upgrade.txt,v 1.3 2003/02/28 00:53:14 afu Exp $ */ Instruction on upgrading: Safest: 1) Stop fiaif. 2) Upgrade, using the package of your choice. 3) Update existing configuration files to latest syntax. 4) Test the files by issuing '/etc/init.d/fiaif test' 5) Start fiaif. Secure: 1) Upgrade fiaif. 2) Update existing configuration files to latest syntax. 3) Test the files by issuing '/etc/init.d/fiaif test' 4) issue a '/etc/init.d/fiaif restart'. If FIAIF somehow complains about old or missing state files, then you can delete all file in /var/lib/fiaif. If FIAIF wrongly believes that it has already been restarted, then delete the file '/var/lock/subsys/fiaif' and retry starting FIAIF. More information can be found at: http://www.fiaif.net. fiaif-1.23.1/doc/main.tex0000640000175000017500000000366511571724545014422 0ustar calvincalvin%***************************************************************************** % Contains : Main file for CVS documentation % Requires : abstract.tex overview.tex usage.tex workflow.tex references.tex % Source : $Source: /home/cvsd/var/lib/cvs/fiaif/fiaif/doc/main.tex,v $ % Revision : $Revision: 1.2 $ % Author : $Author: afu $ %***************************************************************************** \documentclass[a4paper]{slides} \pagestyle{headings} %makes headings according to the current chapter. \usepackage[latin1]{inputenc} %danish char-set \usepackage[danish]{babel} %\usepackage{pst-plot,pst-node,pstcol} \usepackage{ifthen,calc} \usepackage{latexsym} \usepackage{makeidx} \usepackage{exscale} %\usepackage[T1]{fontenc} \usepackage[dvips]{graphicx} \usepackage{xspace,array,enumerate,alltt} \usepackage[includemp,marginparwidth=60pt]{geometry} \usepackage{theorem} \usepackage[dvips]{epsfig} \usepackage{amsmath} \usepackage{amsfonts,amssymb} \usepackage[latin1]{inputenc} %\usepackage{t1enc} \usepackage{varioref} \usepackage{pstricks} %\usepackage{subfigure} \usepackage{fancyvrb} \usepackage{fancyhdr} \usepackage{moreverb,float,latexsym} \usepackage{graphicx} % package for the gray levels \usepackage{epsfig} %Only for foils. %\leftheader{Anders Fugmann} %\rightheader{Scheduling algorithems for Linux} %rightfooter{\today} %\makeatletter \title{Netfilter and FIAIF} \author{Anders Fugmann} \date{\today} \usepackage{ifthen} \newboolean{includefrontpage} \setboolean{includefrontpage}{true} \newcommand{\sem}[1]{\ensuremath{[\![ #1 ]\!]}} %\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} \newcommand{\tit}[1]{\textit{#1}} %\renewcommand{\clearemptydoublepage}{} \newenvironment{footsizeenv}{\footnotesize}{} \begin{document} \maketitle \newpage %Indsæt filerne her \input{iptables} \end{document} fiaif-1.23.1/doc/Makefile0000640000175000017500000000211511571724545014401 0ustar calvincalvin#***************************************************************************** # Contains : Makefile for CVS documentation # Requires : none # Source : $Source: /home/cvsd/var/lib/cvs/fiaif/fiaif/doc/Makefile,v $ # Revision : $Revision: 1.1 $ # Author : $Author: afu $ #***************************************************************************** #list all the files that the docuemnt depends on here. TEX_NAMES = iptables FIGURE_NAMES = FIG_FILES = $(addsuffix .fig, $(FIGURE_NAMES)) EPS_FILES = $(addsuffix .eps, $(FIGURE_NAMES)) TEX_FILES = $(addsuffix .tex, $(TEX_NAMES)) FILES = $(TEX_FILES) $(EPS_FILES) MAIN = main .PHONY: all view bib dvi ps all: dvi view: ps xdvi $(MAIN).dvi bib: @bibtex $(MAIN) dvi: $(FILES) @latex $(MAIN).tex @latex $(MAIN).tex ps: dvi @dvips -o $(MAIN).ps $(MAIN).dvi print: dvi @dvips $(MAIN).dvi %.eps: %.fig fig2dev -L eps $< > $@ clean: rm -f $(MAIN).ps rm -f *.dvi rm -f *.aux rm -f *.toc rm -f *.lof rm -f *~ rm -f \#*\# rm -f *.log rm -f $(EPS_FILES) fiaif-1.23.1/doc/fiaif/0000750000175000017500000000000012077210610014000 5ustar calvincalvinfiaif-1.23.1/doc/fiaif/fiaif.aux0000640000175000017500000001407312076552226015616 0ustar calvincalvin\relax \@writefile{toc}{\contentsline {section}{\numberline {1}Preface}{1}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Summary}{1}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Prerequisites}{1}} \@writefile{toc}{\contentsline {section}{\numberline {2}Introduction}{2}} \@writefile{toc}{\contentsline {section}{\numberline {3}Firewalls}{3}} \newlabel{firealls}{{3}{3}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Purpose of a firewall}{3}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Netfilter}{3}} \newlabel{sec:netfilter}{{3.2}{3}} \citation{andreasson} \citation{netfilter} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Setting up a Linux firewall}{4}} \citation{fiaif} \@writefile{toc}{\contentsline {section}{\numberline {4}FIAIF}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Design}{5}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Zones}{5}} \newlabel{1@xvr}{{}{5}} \newlabel{1@vr}{{}{5}} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces A network split into three zones}}{6}} \newlabel{fig:zones}{{1}{6}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Statefull firewalling}{6}} \newlabel{2@xvr}{{}{6}} \newlabel{2@vr}{{}{6}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3}Network address translation}{6}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Implementation}{6}} \@writefile{toc}{\contentsline {section}{\numberline {5}Configuration}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Zone specification}{7}} \@writefile{toc}{\contentsline {paragraph}{Example:}{7}} \@writefile{toc}{\contentsline {section}{\numberline {6}Configuring a zone}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Definitions}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Zone definition}{9}} \@writefile{toc}{\contentsline {paragraph}{NAME}{9}} \@writefile{toc}{\contentsline {paragraph}{DEV}{9}} \@writefile{toc}{\contentsline {paragraph}{DYNAMIC}{10}} \@writefile{toc}{\contentsline {paragraph}{DHCP\@uscore .SERVER}{10}} \@writefile{toc}{\contentsline {paragraph}{GLOBAL}{10}} \@writefile{toc}{\contentsline {paragraph}{IP}{10}} \@writefile{toc}{\contentsline {paragraph}{NET}{10}} \@writefile{toc}{\contentsline {paragraph}{MASK}{10}} \@writefile{toc}{\contentsline {paragraph}{BCAST}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Zone access}{10}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.1}Input rules}{11}} \@writefile{toc}{\contentsline {paragraph}{Example}{11}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.2}Output rules}{11}} \@writefile{toc}{\contentsline {paragraph}{Example}{11}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.3}Forward rules}{11}} \@writefile{toc}{\contentsline {paragraph}{Example}{12}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.4}Reply rules}{12}} \@writefile{toc}{\contentsline {paragraph}{Example}{12}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.5}Limit rules}{12}} \@writefile{toc}{\contentsline {paragraph}{Example}{13}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Network address translation rules}{13}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.1}Redirect}{13}} \@writefile{toc}{\contentsline {paragraph}{Example}{13}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.2}Masquerading/SNAT}{13}} \@writefile{toc}{\contentsline {paragraph}{Example}{14}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.5}Miscellaneous rules}{14}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.1}Packet marking}{14}} \@writefile{toc}{\contentsline {paragraph}{Example}{14}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.2}Traffic monitoring}{14}} \@writefile{toc}{\contentsline {paragraph}{Example}{14}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.3}Denying communication to MAC addresses}{15}} \@writefile{toc}{\contentsline {paragraph}{Example}{15}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.4}Denying communication to IP addresses}{15}} \@writefile{toc}{\contentsline {paragraph}{Example}{15}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.5}Clearing ECN bits from packets}{15}} \@writefile{toc}{\contentsline {paragraph}{Example}{16}} \@writefile{toc}{\contentsline {section}{\numberline {7}Example setup}{16}} \newlabel{3@xvr}{{}{16}} \newlabel{3@vr}{{}{16}} \@writefile{toc}{\contentsline {paragraph}{The default setup of the External zone}{16}} \@writefile{toc}{\contentsline {paragraph}{The default setup of the internal zone}{16}} \@writefile{toc}{\contentsline {paragraph}{The default setup of the demilitarized zone}{16}} \citation{shorewall} \citation{mnf} \@writefile{toc}{\contentsline {section}{\numberline {8}Related work}{17}} \citation{debian} \@writefile{toc}{\contentsline {section}{\numberline {9}Status}{18}} \@writefile{toc}{\contentsline {section}{\numberline {10}Further work}{18}} \bibstyle{plain} \bibdata{main} \bibcite{debian}{1} \bibcite{netfilter}{2} \bibcite{shorewall}{3} \bibcite{andreasson}{4} \bibcite{fiaif}{5} \bibcite{mnf}{6} \@writefile{toc}{\contentsline {section}{\numberline {A}Usage}{20}} \@writefile{toc}{\contentsline {section}{\numberline {B}Configuration files}{20}} \newlabel{app:default}{{B}{20}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.1}fiaif.conf}{20}} \newlabel{app:fiaif.conf}{{B.1}{20}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2}reserved\_networks}{22}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.3}private\_networks}{22}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.4}type\_of\_services}{23}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.5}zone.ext}{23}} \newlabel{app:zone.ext}{{B.5}{23}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.6}zone.int}{25}} \newlabel{app:zone.int}{{B.6}{25}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.7}zone.dmz}{26}} \newlabel{app:zone.dmz}{{B.7}{26}} fiaif-1.23.1/doc/fiaif/fiaif.idx0000640000175000017500000000000012076552225015565 0ustar calvincalvinfiaif-1.23.1/doc/fiaif/iptables.tex0000640000175000017500000001012311571724545016342 0ustar calvincalvin\section{Firewalls}\label{firealls} This section will describe the purpose of a firewall and outline how the Linux firewalling code works. \subsection{Purpose of a firewall} A firewall is usually placed in front of a group of machines and its primary function is to control communication from and to this group of machines. Communication between two machines over the Internet is a stream of packets (datagrams) send in both directions. The firewall examines all packets that is about to be routed through the machine and, based on a set of rules, determines if the packet is allowed to pass through the machine or not. This functionality is often referred as a \textit{packet filter}. The secondary function of a firewall is to modify the packets passing through the firewall. This is called \textit{Network address translation (NAT)}, as the modifications usually applies to either sender or receiver information contained in the packets. NAT can for example be used to allow machines without a public addressable Internet protocol (IP) number, to access the Internet through a firewall, by using the IP-number of the firewall as the sender identification. This is also called ip masquerading, as it disguises the address of the machines behind the firewall. \subsection{Netfilter}\label{sec:netfilter} The firewall implemented in Linux is called \textit{Netfilter}. Netfilter implements both a packet filter and NAT and is a statefull firewall. Statefull firewalls differentiates from non-statefull firewalls by having knowledge of the state of all connections made though the firewall. A non-statefull firewall examines packets individually, without knowledge of previous send packets and has, for example, no information about which machine instantiated the communication. This means that in order for machines behind a firewall to be able to communicate fully with machine on the Internet, almost all packets must be allowed though the firewall in both directions and thus greatly degrading the security imposed by the firewall. As said, a statefull firewall maintains a history of established communication and defines a state for all connections. In Netfilter possible states of a connection are: \begin{description} \item [New:] This state indicates, that the packet is part of a connection that has not been registered (seen) before. \item [Established:] This state indicates that the packet is part of an already established communication. \item [Related:] This state indicates that the packet is related to an already established connection but not part hereof. This is useful for protocols that established new connections, such as passive ftp data streams and ICMP packets. \item [Invalid:] A packet marked invalid means that the packet is somehow malformed. Malformed packets are usually packets that does not confirm to effective RFC's. \end{description} By using these states, it is possible to create a very tight security policy with only a small set of rules. \subsubsection{Setting up a Linux firewall} The most common way to define a firewall, is to have a list of rules to be traversed for each packet hitting the firewall. A firewall rule consists of a set of conditions and an action. If the conditions of a rule is meet, then the action is executed on that packet. Usually the action is either to accept or reject a packet, and is therefore usually called the \textit{target} of a rule. Examples of conditions on a rule is: the source address of a packet, the destination of a packet etc. The list\footnote{In Linux called a \textit{chain}} of rules is traversed until the packet is either accepted or rejected, and processing stops. If no rules applies to the packet, the default policy of the chain determines if the packet is accepted or rejected. In Linux, the list of rules is maintained in the Linux kernel itself, and a userspace program, \textit{iptables}, is used to manage rules. As the placement of rules in the list is vital to the operation of the firewall, it can be a non-trivial job to implement complex rule-sets in Linux. For more information of iptables/Netfilter see \cite{andreasson, netfilter}. fiaif-1.23.1/doc/fiaif/layout.tex0000640000175000017500000000027411571724545016062 0ustar calvincalvin\input{preface} \newpage \input{introduction} \newpage \input{iptables} \newpage \input{firewall} \input{rules} \input{configuration} \newpage \input{related} \newpage \input{conclusion} fiaif-1.23.1/doc/fiaif/conclusion.tex0000640000175000017500000000124711571724545016722 0ustar calvincalvin\section{Status} The firewall setup tool described in this paper is under constant development. It has been developed under the terms of the Gnu public license, and is free of use for everyone. Quality is assured through many users, who report back problems and inconveniences. As of now the firewall is being bundled with the Polish Linux distribution, and is currently being tested for inclusion in Debian\cite{debian}. \section{Further work} Configuring by changing directly in the configuration files using an editor requires the users specific knowledge of rule and configuration syntax. Creating a user interface (graphical or text mode), might eliminate such problems. fiaif-1.23.1/doc/fiaif/configuration.tex0000640000175000017500000000352011571724545017411 0ustar calvincalvin\section{Example setup} When FIAIF is started, it reads \verb|/etc/fiaif/fiaif.conf|. This is the global configuration file. It defines the zones available, and a number of other global settings, such as \textit{type of service} (TOS) settings, references to reserved and private networks. The default (the sample configuration files, see \appref{app:default}) sets up an external zone EXT, which is your Internet connection. Two additional zone configuration files are provided: an internal zone, \textit{INT}, to describe your private network, and a demilitarized zone, \textit{DMZ}, to describe a zone in which servers accessable from the internet are located. In the default configuration neither are used. \paragraph{The default setup of the External zone} \begin{itemize} \item Accepts dns queries, ssh, http, https and icmp-ping. \item Limits ping to 1 per sec, with a start-value of 3. \item Close communication with \textit{TCP-RESET} on authorization requests. \end{itemize} \paragraph{The default setup of the internal zone} \begin{itemize} \item Allows all connections from this zone to the firewall. \item Redirects all http requests to a transparent proxy. \item Adds Masquerading/NAT for all connections going out on the external interface. \item Disallows any new packets from any other zones (already established connections are automatically let though) \end{itemize} \paragraph{The default setup of the demilitarized zone} \begin{itemize} \item Accept www and https requests from the external zone (Internet). \item No communication with the firewall itself is allowed. The idea being that a cracker's gaining access to a machine in the DMZ, does not pose a security risk for any other zones or for the firewall itself. \item Accept only ssh from the internal zone. This way machines in the DMZ can be administered. \end{itemize} fiaif-1.23.1/doc/fiaif/psheader.tex0000640000175000017500000000075711571724545016346 0ustar calvincalvin%***************************************************************************** % Head of main file, to be used thwn makin ps files. % % Source : $RCSfile: psheader.tex,v $ % Date : $Date: 2002/12/01 21:43:02 $ % Version : $Revision: 1.1 $ % Author : $Author: afu $ % Contains : Head of main file %***************************************************************************** \documentclass[a4paper,11pt]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} fiaif-1.23.1/doc/fiaif/introduction.tex0000640000175000017500000000274511571724545017273 0ustar calvincalvin\section{Introduction} Today, ever more machines and people are connected to the Internet and hackers continually tries to invade machines connected to the Internet. As still more people gains access to the Internet, hacking becomes more frequent, and focus on security on servers have become a necessity. Security can be divided into three parts. \begin{description} \item[Application security:] Applications usually enforce some kind of security by restricting users in terms of functionality and access to machines. An example of this is a web-server. A simple web-server only exposes a defined set of files to the Internet, and only a problem in the software would give remote users access to other than the said files. \item [User security:] If a remote user is able to circumvent the security imposed by some program (by exploiting a bug in the software), the user is still restricted to the rights of the user who started the started. As an example, a web-server is usually stated as the users \textit{nobody}, which has very limited rights in terms of reading and executing programs. \item [Network security:] This is the lowest level of security. By controlling communication between remote machines and Internet services, unsafe applications can be protected against untrusted access. \end{description} This paper will concentrate on network security in terms of defining a methodology for describing a firewall, and implementing the methodology under Linux. fiaif-1.23.1/doc/fiaif/fiaif.ps0000640000175000017500000251641512076552226015454 0ustar calvincalvin%!PS-Adobe-2.0 %%Creator: dvips(k) 5.992 Copyright 2012 Radical Eye Software %%Title: fiaif.dvi %%CreationDate: Sat Jan 19 18:15:02 2013 %%Pages: 31 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: SFRM1728 SFRM1200 NimbusMonL-Regu SFBX1440 SFBX1095 %%+ SFRM1095 SFBX1200 SFTI1095 SFRM0800 SFRM0600 SFRM0900 SFTI0900 %%+ CMSY10 CMR10 NimbusMonL-Bold %%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips fiaif.dvi -o fiaif.ps %DVIPSParameters: dpi=600 %DVIPSSource: TeX output 2013.01.19:1815 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S /BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3 def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90 rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{ BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat {BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B /M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M} B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{ 0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: cm-super-t1.enc 0 0 % This file is generated from `T1uni.map' and `glyphlist.txt', `gl-other.txt' % % LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; % LIGKERN quoteleft quoteleft =: quotedblleft ; % LIGKERN quoteright quoteright =: quotedblright ; % LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ; % LIGKERN greater greater =: guillemotright ; % LIGKERN f f =: ff ; f i =: fi ; f l =: fl ; ff i =: ffi ; ff l =: ffl ; % % LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ; % LIGKERN one {} * ; * {} one ; two {} * ; * {} two ; % LIGKERN three {} * ; * {} three ; four {} * ; * {} four ; % LIGKERN five {} * ; * {} five ; six {} * ; * {} six ; % LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ; % LIGKERN nine {} * ; * {} nine ; % /T1Encoding [ % 0x00 /grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron /breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright % 0x10 /quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /afii61664 /perthousandzero % PERTHOUSAND ZERO /dotlessi /dotlessj /ff /fi /fl /ffi /ffl % 0x20 /uni2423 /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /hyphen.alt % HANGING HYPHEN % 0x80 /Abreve /Aogonek /Cacute /Ccaron /Dcaron /Ecaron /Eogonek /Gbreve /Lacute /Lcaron /Lslash /Nacute /Ncaron /Eng /Ohungarumlaut /Racute % 0x90 /Rcaron /Sacute /Scaron /Scedilla /Tcaron /Tcommaaccent /Uhungarumlaut /Uring /Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section % 0xA0 /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute % 0xB0 /rcaron /sacute /scaron /scedilla /tcaron /tcommaaccent /uhungarumlaut /uring /ydieresis /zacute /zcaron /zdotaccent /ij /exclamdown /questiondown /sterling % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /SS % Germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls % or /germandbls.alt ] def %%EndProcSet %%BeginProcSet: 8r.enc 0 0 % File 8r.enc TeX Base 1 Encoding Revision 2.0 2002-10-30 % % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, % W. Schmidt, P. Lehman", % version = "2.0", % date = "27nov06", % filename = "8r.enc", % email = "tex-fonts@@tug.org", % docstring = "This is the encoding vector for Type1 and TrueType % fonts to be used with TeX. This file is part of the % PSNFSS bundle, version 9" % @} % % The idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol, % MacRoman, and some extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % These are /dotlessj /ff /ffi /ffl. % % (4) hyphen appears twice for compatibility with both ASCII and Windows. % % (5) /Euro was assigned to 128, as in Windows ANSI % % (6) Missing characters from MacRoman encoding incorporated as follows: % % PostScript MacRoman TeXBase1 % -------------- -------------- -------------- % /notequal 173 0x16 % /infinity 176 0x17 % /lessequal 178 0x18 % /greaterequal 179 0x19 % /partialdiff 182 0x1A % /summation 183 0x1B % /product 184 0x1C % /pi 185 0x1D % /integral 186 0x81 % /Omega 189 0x8D % /radical 195 0x8E % /approxequal 197 0x8F % /Delta 198 0x9D % /lozenge 215 0x9E % /TeXBase1Encoding [ % 0x00 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron % 0x10 /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle % 0x20 /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 0x80 /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis % 0xA0 /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron % 0xB0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: texps.pro 0 0 %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro 0 0 %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def @MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N} N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N /setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{ pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B /rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet %%BeginFont: NimbusMonL-Regu %!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono L Regular) readonly def /FamilyName (Nimbus Mono L) readonly def /Weight (Regular) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusMonL-Regu def /PaintType 0 def /WMode 0 def /FontBBox {-12 -237 650 811} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec D9D66F633B846A989B9974B0179FC6CC445BC2C03103C68570A7B354A4A280AE 6FBF7F9888E039AB60FCAF852EB4CE3AFEB979D5EA70FDE44A2AE5C8C0166C27 BF9665EEA11C7D2329C1A211DD26BB372BE5822F5EA70D99EB578C7BEFD44CDF 045A363056E5E1CC51525EA6FC061DCEBB337208EFF729802376A2801424F670 0E7E6397B28F15BC10B40012B0A3EAEB2693E8F7F627C4C9C7C6C5BFF105C1E4 1B2B9E8F09253B76040D268B80719E1B3F5A55AB7B89290699B50C1BF1BAEFFE 1F57BE7B5EA025241A248A6D4CFA5067A1DA6EBA4CFC940599BA3F3C934D7248 B8E4AC5816F0D2CE8B3C4193CE39D19FFFDB75254573173CB51CCD83C2F2D06B 2483CF9B07B21EC6F502F028C273887BB06DAE2AFAC10E9FD3C7CF51BCA7B277 B706E425302DC78975AC0E43B87073257A5CD7424B6865FCA89D886E8F95C4F6 D457623DBBC0D16BAFEB4C649F5D72B09B18502EEAB687E915E9B536A361B4F1 44C3CD4CC683B5F05A4ECB4823A5EB5179BB7EEE8B76C21B2491A97808F6318B 585B0BAD98F42FB4A755BCB74CD354F794C8BEA5B90FB9681BD5849D45247E39 930C882490230E1662D39CCA875BFFEAC3E79A78DE6E1298ABE9817AE98675C4 16220AD0D3A36580EE2F2A17AAA1246C416D58A4C52FBB26AAF3B6F75833AF8E 3AA996218DAFA571FBC7CAD90ECE9C883C813D8F168C5E86BBFA0F0A5CB36E35 2DE4CAA0F8D3227F72C5056BFB5BCA6BF9C60E037A0E44670A8D3CBC9A19F379 CA8DB30B711F518A8C7569211AC70C46EED2AF62A37F238BD0BD12D60332E673 C6E784B3EBA3F2E71E9993B97E8A38F85048937E958F1CD8FC6E661048546135 56B810FA1FF611B96495081C04542DF7FEF085DEC619DC8C84CC57683D212813 9D14728AA32723E1D15F2AF8F03422CFAFDB718ACD1FE5E0CF9BB6708FD219F4 FFFE3967E0AD6A928DC19581FF2C5ABD4961F9451172CC1CBC690B43DE2F0099 86D8D33311D6C0573F58CD9A0E0B0C1AD3B59BEF6A132EDC8E2F96EB664D1506 32A3CAAC072C75218AC4F176966A3E6CBF678BFECA2D96EF2D2E5A6DE68CAF3B 918C00E066A03A5781248521DD94E3EF9A9EB80836525DC13209A1520CA788D8 C026548C24AD0969153B486D19E367E19006F0C38943647B4763F67972F71753 07C9B771DFAE2B57AFBCD29F0FDFDAB5977A59F5D4791DD7551277D3475DE767 B43D12FA8C4B70CF264E2AF0FEE27C3B981D0C7C740337D8520B038F4C2EC0C1 AB6DB4C938172443C748C1857428786FC23682444E5EE17335B337D712779C8A CE51DDE1FDD856FAE2C86A1A034470AE846216191026A9BE5C6B9AA0D1E9EE8B 39ACB08ABBB932D5E6A03F957B7C64E89BB59C4ADF0CA9C73DF0C7F451EFC226 CB3BC41B415182F40F510AFEE246506B981C4C25D9FB5C08D065EB272EEEAD7B E0106DB6CF97066AF9A730E2CB0E054CD9313F93B7A8AA8BDBFA82BD9A0A1E60 FC5F7F3EFA1DBEB4DA57087BE7632AC6D2E920AA7A5C51B37937F9DF00DE919D 6BEC3691240B7BE921ADB832C9E94C3F93272630EE12C1D116DE33B3B49CF358 79D018730FD0603CA31EBB1FA9612DD39C767B8F89EFBCD72A65F33BAFD19287 324CFA01A3003871F527868F79C61C3A67955554A849C5F2F57D79D880E13273 F7A423D64D1693B7F9F785231A84D8BF9F43469E79D63CED8408982ED04A3B88 FC4CDBCFBF6064A93844E90332568F6279F1B3737A6232E4783E47BF30DEDCB7 0A90C56BA0595B1F8692E1E8CBC91C4EC0E51C004B3AA0690A419426696F7F54 1EC602AB1A64B51907E84468C576DAC5975200A1896C80460C70667FAE13FA06 FE00B594946EE0CAF6152444F8C67FD0E0807F73301C36B7ED9CAB1A885E0336 9E1620EF526166FA1097E31EDCB1D3134869841B55ED5FB1AF717ABBA276425F 36A33EA315DAED5B570CC8B01BEF3118EE3D318F1995BB2ABAEF03EE07C23E3D 6817263C54EC85DA80EED3D5F47556AC4B2DFF0EEC9E4988DB4957DD1E286DC5 FA0CD6EACDD36EE6487321F9173C40B19EE3FBD78749D2EC0036AB3A61FB3C87 3145E47B38801F1F03872085E7BD7CEBDF0B3CAA3F3B7D46778D968C88684E63 F2DB1B200EFE0EFD7DC7BEFBD55922B6E95E78FA02A83FD6198DF49E5912838A 205B0B85CB135226DA238FE524D48F21C31F8730C5D0D23F518D05EF528B4EB7 4F9C9378F5EECF7A39ED63BBE8217D01F4C70E21F5D3D56556FF4387EF579376 05E7C1085730695ADEFF8925BDDAEB03A205E1854AD436CC4BEED9837C028263 ECCE3DBE0F540E7E4C2761D7DA078E87443D6FE06976BF2C4AE756CA82B54735 DEBC5831AAE6BC04AB6301AE5160035BFAC6C40BA68CD7A6217C17CA5C5FD9DD F41933A3EEECACB3258B2EC7312FD27899F4F580D37706AAF04C8CACBBCE0C71 D5F92AE681D63FECDB12D4456344E4C4F140701924DBB1B91AA37D5748CE906E 623A91AB4AEF31C0A6FC29CCA500FD5E34AF971FA6392886704D2F749380EE1F 2653B00D7E484A88A248FD17FF0E7A075A554F9EF0A0A4270372FCFF69A5BE0D 06021F932030C47C09229F51942A19C387672A4D106E1E18D2BED7CC3F1478D1 BAB23AF03C73F5461492B72AAA98F66B8D3BB8E3536D91569F2B675210E8A891 4179CD90424C326CCA4E78A35FC08B1ABA8EE8B6597C12C98152ABA14FA9FEC5 74DE13659BA57CDA697FC5B9EC6CA8B86F5841687B89382110163A2447BB14C4 4466E5410DD289DFEA30BBEEBF3A9E455497D10160120EF529F1B7F425465EF1 F99507F4B4CFFA70ABAD804B9389EFCFBEF6DA4317FE66AB7F31E0F82C6D7FD1 0916BC9ED6EACB095DFEA5DE562B413686879EF0110E5F18421B728BF0EBD132 58CCA60C4DF1EC62C18750FF5CF11D8C719A7EAC59C2B15CB754567ABE0BAD61 43FCF2838D0303DC77B438B68E880065F4E15977C56807C41997D95F5983869A 4478FEC89CEEC9D25252EBF506F0D503910361B199700B44CFE513612C73E079 F4ABDD8F92A85C100736502358BACF891053F1FFBDE28967CD90B55ACC6ED659 0475D119F6C549F669AACB5204167B48DB4017A241E77AA42A8389134DF5F907 976E1DF378BB5BB15056692AEBEF47D90F2366A89977662DF81F5AEB909DE8C5 040FE6306120653DC6EAEED10F91F6B05C6E8C586E5073FAF13FF8DC97E5436D 22EA8E529B40F6456AC05AE25E669500444B9B43D9A3767C4933AC00E27203F5 7806F14C0154766E47E2C076F5983A40491B738441A612D54FC23DA3CEC40524 0CCD3407070F9C0533D68E49B7B58B7F38B0FBB1D843EB1118F160769ED9844B 47A8A2CC08811AE221432220026A57015ED62CDEB4AD85F262EC11DA1B7B7AEA 052861152024969829518E7CAB4FA59CC5E7F4477CC215A8205214005D2341F8 13BC27B15646DD2FDEA5232BF51075D42CB42D9001EFFBA75F009B807CC97F91 9A990240F179C9609B794471410B2D5639C540CA9A655B9F1BC4847FBB419A71 F4DABCC775798D4E1F7021F95ADF3575C588D95D21E555A37529A86910B8C4B3 0C5B77B7D8472105CF198DF82D4F29998D5AB6B8682DC2477EFB73ABDC635C9A 7C19EEEE799813F4AF8D3E7FAFCC19B3590CDBAB57013A3F755FBB8515429BB6 8570C4555207323431696EB0CFBAC50FE76A8BE39944B655668971BCAF968A19 75E6FFC307F9FA866CF9487D225350F9248D3D83BE3FB2AC723D41D908A5C523 2B89EBBDF916672279BFFF61E504C5F271499C8D6F9BBF0D8560B43A388E4E1D C51A850EB4EAA6C206C943B14745C15AA064BD1A53541DBCCC321B3987701540 7D426664DF3199AEC1CD0F81B1BE8CA8EF23430F28DB530F8241F02563382C80 3846CF12B9D02B01380B9B8B5F842EB3E631E1B81D31CDBDBE10A3CF279F0A34 F86B5ED92E1E2D745E292111F1D5305C77057B13DEB0EBA88D8A24DBB89301A4 3D3275395639DF4F9089405F01FD88837FC2A2E7FE5D79CC37ACA94F9B576046 0C798D8096F63ACCAD409B239F1D951C017BC68794810EBC9C75D95110E004C3 CAC2CD2B8EDA7C1CBD1F000A6F6FF1EC54033EAADD423993706076D62F4C400B D1A033A02E394585C7ACCEEB42520882F546655238E9DF49CF26F6A94321C8CE A61425E434F472AE846FB53ADE17DD1D2F853285E3193BEF31E5C0151E354118 C13F250A647D3B12026FB9AFBD65504E676321FFFA0E5FF76B66D5B7B1794641 9D977FC329005B44CAE96C8ABF777641211EEF569EF46D5F9A7FAE3205ED1914 2136A1277E25969368821403701C0975254E77D8221F23B7C33CF946E4C58FF0 022D08BA44B97EBA5CD988A54F1B0D5A19E447818B28FECA075B04EB7E60C805 CFA9E30C3F60922B9CAF44AB1555D8ED1354DFFC798A643E979E473CDD5F4070 22E11FBBEA955CD0440E8375A9E1F3B0EE0D91A673164C7D34CC6592FF165446 55D7C1DB1689026A551D1A14531D69E4B654FBE7F4F7EA97E2DD73BF6E51F92F 745BD28B9D1F6458447ED3C9F63A1A84ACAB6330A504D1B8A14FC0A6C18A7C65 2D01C62C5E8D03CE10ECCF06B7D8489BF155CA916365081058D58D96ABA252E0 A1B0C88922AE14D395285ADC7C4DC4D3723EED99E3636524714534463F25D7CB 28E1C3E568D0E8F5DD1D4951A68791DA15FF5999A8A0A26A1C469440C75A4BAA C5F7987DF550AAB54D47E20A906B02B3B7A7289481E23CB373FC1E8DA934451F 04D7D3456501B22C6E89537137F823D1DCA639CDDD76BCAA82B995485CE83DD5 CFF51145F0792B732E0275460E174DF9A19F06A42A2F068895999D77FB86A406 E7E3604F7510540272479F9282D9196707774B13C971B1B26479814BC1118F53 2AC974B3EA1A70A9EB27B343BCA34228FDA3CB831715F0A3E2F9C31D5D9B5C49 1CF6BC41F06633E6BABC6815FFC095854437D5C353F52A56C3DA40B73CD36A14 EC9E5F15CA0DE369A0D7118DDB2A62ACCE15D1894C38B237D3530F36259C9BC5 B800DC01CB305BAA73E020D6C0A85D32676DDFC983769F8E25C5C8482776DB41 F2D4DCE4D62E9C4FA5CE11F486767696BCC1FC60F048B8C90A0121973CBFB664 A54B6E7D94C59304876FAEF63129931B0B7DDB99E3AF5C4587C7A088761EB1BA 3672C81FEE2D81D708B1BD1789ECE7F6E1052ED21E50BBC80F6F3266F2A65506 E25F10FCCB762FAD68139DDF39A01F786CCC5DED29E7B95427B4FCA9A58A522F A801CCB7380ED1223B296C0144AE54D2D2B74A78C20119A53F6F79D946F0C504 AA7825681956D3946CC35FD08CAA9A67FEC9E95EF9004B94AB4C1F338D06F5D6 9D420C160F12C32FAE78D763CCCC0BA7EF81F6212DA66A3A4C04E738BB28D3DA 30A107B02D332F4A62FF3F2F1B1808EBA282F40362CEC29A918C37EF2179A99C 023211F38118CADDDA332974FC6F3686718F8B3B2A4F0B81F6A448A2E19386EC B9B56B36C5CEFAF606681319E0753357567F093B30737A93C36A513A78A3DA63 948073F4086B4FB7C98DE9FE8F04DAD394CB6AF4D7003547D36E0DA51E215709 FF69322D42C893A30F372CC0182361A86C0A5F0AF4DF9A88C88D0D7814395F17 114CC2E0A360373E7BCA86CE1C358AB1EF98662970BB1648BD39E1555A248464 FD313DFF913D8D5F9B310ED8C87261FAFD997128BAE49D1A83F153639CFD5F8C 853DE0F450B74017A41C522DC53C107F1FA27E590A875583F89FAD55850B7C45 57F1840A4E61F9D3642B27598A3F353047B4650FE399657648F035433E3BD58D 5352E49CACA9E4BC52BD17F721F87C33656C5D983B1FC7A28DA64A19A1D093F2 AF4E8A7499D5C7DF3F2879D7477AF874FC8B724D77DE78172E682384F743BE6B 1AA26ACD6CB03CF1567C9C2CBD6CD141A9F4D32CEB34D5947C9F84AFE8274D01 156666C7005ED5C0905320578FA56A5190D4E0676A0FB87B18592BDED7B82D18 8B4BFF29757D3D9A1C7A80F2C01F13FCE7EC0FCFC3DDFF1E9C8CEF668572CF93 18CB7E3BB19C1FD74FD12D61324168597C8ABC7D913A816E20E4263412C0CF0B 6142671F0E05FB717B0F0E9799655742F5006ED873ABCAFC4C25A94FB761DB7F B9D4EFBAC4CA6EC50839740D7B524FED377CB240A00D64D4297FA236FB765B79 6FF944D619926729F2C121CF5459C3C4611227D8D979A6B3F5EE6EF9D64C9EFA 9533E6A330FE17113B9B8732A6A36AC96443E4EB5BA1F8BFED55CBD0990045D9 531EC3E28A71B1673FB80871C0D6DD8B603C0A037C77871BCB1E41051F9042F3 2A004F3509A230B2578118918F97C7BB8B62E532972120E1847A314C04B75462 44474F513F8F91E616AB868D0106D037F912A27BF2DD909944245C93323C8145 F36A826992C8E5FFF579E85965F5408100B416B920AEE6561EE96BC106975A61 A8C6A1AC0878EC2EB7C1B7EB3B7E00DFD4EDBF4044F0E247D957956045B16131 1E9DC241E6295881A5A2660D5D253DF6AA998ED7554F1856823C9811B3B5ED20 AD2FE457E763F1E38A6ED36571CBF0AF8D53B79FF544A0C6F98C72AB9F84F3C9 0C341E595B5A7BFE2B471EAC3CE6C0BB9A046AFF04FC42A9B03ED435197A7BA6 7F9C704283837A76FF09AE99CD02DFB0FC278B529C5B6D43B55A3F3ACADBA73E 0084F92B6FBCC5415159C5A2DC2A851524D166C701FF74C798D0EFD52011E7FE 7D52963D8CADD372DBFA13BCB3E17E0CE57CC25022A23E388B7E2CD22F1A0E0B BCC5FF8C62B894E007770954E9957E64833D6C5C71398CE6B5584FA1EE0C767A 8C819D6C97841D05F3E04B93C14482B1220A197516ACD13D77EBC28005291E4D 768B5FB2E13FA674857F694336798F4D72EC63B04204DEE337CA87400840A563 CE4648DB45614A85B60F2F566FF1A89B52F172A5F3EEC3C591F4D73D5B568E7D C5E965DE7747FCFF4EC7D87EB05C34040DECA2FD3AD2161C481419E3431F6BF9 6E5F30A5000D90616E352E4D75961E367B9AF647EB2552FB5CAAC378C975193F DE3BFC16FE21CE22958AB761E47DC3F2D6D1DAEE7C76842BD815D75665525EC2 DBFE798E6A68580FD4C97973A0AF60A9A45DBE10073E3505C3EBA20AC324DEB5 699DD70EB58740DCC4BA984C3010A88692D4F22EFC3F4134D4AB14C3AAC6F899 47D125EBFDF16D1996AD3619EA85D575BE3E15686896BD0CD5578D06C0F9F4CE 48D48A5197F98F35349E3D0D14944A9B0B42BEB9FA9A3DD7E81B98479ABD173B 954BE23ACBC7A3C14544F068343DBEA705BC37937135BB3293284BA012C31E69 0347288EAC8F6969FA394AA96DF97B2EE7205F707023D52C8CA77640715ED418 B7B980BE3A2FF165209606EDB80A7002968C90E6D986BA910BAE37B9710ECD0F 426906B92E51F375B34177397798EF0D72D00011A5179C7B2AB4AA5A1FA0E9D8 609A44A36BB4654E8E3B9B55C1B94FEEF3539B7FB35A1C6FF550F144EF029EBA 1112B5D86F8D003E44BF8E77EC2BC29BE86E8AB08DA84B8F3F44DBB74513AB4A 9B9EECD3C09D3775F784F6D41EB6DC945854759B8C399893C7B86193998C9AF6 B6EBA334E42E05C376CB7C7E6C18DC6ACF5CDC8A222C25D7D7F48A0A94D2B63E A0379645A89606859F8B88CEBF567D26EA28FEFA723732BCA413609014E6BC50 63393409AE44B7356973C2FBABFD299C0C7D80A5BC063CDE722CF1B137123154 35328FED9E7119145958CBCFFF1EFE2AC3FFABD2A94D0D2390D6447C90FD47BF 9E6AFFED4587E6A9B4B1439921C101C230C6684381D351466DE01067ACE116B3 3B820BA74353B091F9F8A854E4C5A61DBF3CCB017E5E35F756077541F0454370 2BEE7C54377780B0FD4E485260FA8F9B7334E7FDA09935A43F44D36B28411178 CD0DEBA56427A450C1BC2EE2BAACC2BC51A81DD2EF1E017D56842BB04E2F7FC7 5DA62F2969F0B9741DC023342EE700B1397E32E2D63C35F7F0E6F45B0BCD1C85 8C7E0919F96124E66268559F1A755B2E1A616B8CCB9D98D2864355E6F5E5F789 C18EB54A63529430B3AB70D087CBA6F4A23318441E3B17426A0139423C7D888E F1DC743699402576CBDF6A058E5BF05EE472104A59134C57CD099D9424B1922E 838522A895399E06B7ADA435DB94B681E0833F64ADD0B8A249D8CA89096BE721 1A65AEA0DBBDA6273922121E92F29A711265A96193DB31A76FDFF04CDF033779 33294AD80920E7BB2C87534A639415030920505D106E0AEBB8A8C5878CE02456 1A4BECC6826F01E8D8086CD3C213D5F33B80C8F58302E73A9556DD0CBD7CEB61 65C394134110ED1E23A0E3D0BBCED74EB5CDA22E80A8CA2FC7005A3D8D5D6E64 F0C3C9377E8541489C28FC405324CEB0A5DA14980B1FE43A4C4C566EDBC7A852 8A1B6074DFB04790905077BB47DAA75C0740C6F8C2FD08E3422BDF2419D6F7A7 35540BC51CD3A4AC1A5BA0B78D9AD4AD9EFDD17050E3DF714109D10340DC9574 7F1CF2D2AE814D50B67AC032C19184A52F4299F4A469D852A3685AD3FC5610A9 58EF011BE0E249341D9490C8C0565CFF9B73D799A0F0E543C5F9B7CB8BFF2D90 1D4DC836B1FFF64F9F52E76A3A76F0F44232B4620BE142FAAD4311DAE0028388 A5F3C11C7367442C2269BB2D6892B0303FB192661D2DD29E79AFDF11B049193B E9B5F16694E09455277F279CC71C8E22CA348C151F8F41E58435168E34BF997F E52C843A0D4B13C28573A8F7BBC6F12C022B4C33567EF3C4E04F7CD8B0F512EF FB7915427F99BCDEE18628EB296A06A3C4AD526DB3C1ADB4732E3342647E26C9 E72DC365DDAF8B48D949E0F69A7AC2B7AF6D4DC3F1C3D7441D5B00EBDF7743E1 A6ECB2A7BA6C68F39447960790336138172BA5E9DCDFDA167C2903F7CFD68C18 3A79C60EA4E3693F4FAFDE680FD4F2821631F62AF90C1944614063F73929BBB8 90C8E84EE8962A4CE35CFC3917CD2C5D9DECEE6F9E9FCD60106BCC6F4F3D05C8 F61EE206F8F07EC091C3A7067AF4A04CF5F83DB8AC7C9FA1BD66228554C3414F E67E5CB086BF19935BE129C2808B489EC1DA2601A75C0B487657032B205040D7 D61325A0A857E37D0EAF6302E779BBED2A5651CE645CFF47E59B7CAFA9266632 46BAFCD57CD91AE3F51F5EF7039DD184011B7B7F6505A11E4649F7B70E37F8F4 9A91616E5D117BBDB90EC6FB453A01323E9653A8BE1404DC59968220977CCF90 89787FF1BD66A511B00545916D06AD21C5E4682F925F01D0B265C7737882D296 EDBB7F76DF9C9448573E54A5EE2A4BFB17A2EEDDA5F17389C2FC6181A6331B0D AB658A96EC37DD0B65F3A88ED59721503058D84E30896886442039F3AB76AD0F E60EF25C5269F2F122B8937127158BEB414D78A09684C0852B8ADA8E0E2C62E6 B225C30A4774EA459D0525B896C5F9163CB3D8DA6E4B6F85A94D6212E8E4F435 E92759DA17CF32388095EFC4954108A4D67D7B36C1483EC602CF18A994B50C1C B20F3A5CAD04A3ED4DED4B075242E5B3B44A7FF9A76607A156CC6AD8CE6C8BDD B68BEA3DA881B7E2FCB1C967F9E6D970F3A63AFF98452892ED6D0DD66310CBBC 224F848C99C1351DCE3F84FD75CB36F23C7BBA955E030489BDB51A8CE1A21F96 0DE90966B9A28289434CE6191CEBD8E77BD4B7FAED0B51859D6F1086274025A7 594EF463119948D4B63E5708CED57C7B300B2FEA765B68E59EAE5D9843404138 8BF05442133BB564F7F7E2715C92062C37F7CBB8EABF2D703BE382DC8BE39FD9 3FE97355DD3548C93D90169332415AF7D34053F4A4EB858FF60030A111F4BAD3 8BECFAAD6877B45A566ED28989DFA9EA42ED1E32F3728066F2DA0BE0EABA331E 07309457C485DBC5500507E58A25C8012C377356DB3A64E2C5414A6DFD12DACC FFC9062980372FA01A9ED15F96C01231D8073151AC5ABD29BA4A165EA376E4F0 DBED0C9C4EFDFD73307D7E1A9EF8758F824A92E28D43606A872183A37CA341C9 11FEA7F5A783DF400A7D3A3F9760FFE0A1856238FE9B6549DA5DE7CB5B3D07A1 16C364CE94158D9E0A162195CF6DFAA856E64BDB00231392BE88421A29705AC4 10029A02479DD383FEE2CBE95660BF2461C5C9AEF09AE8D2EBA56AF5F3E391EA 173B346DD97505EAF544FA8B6DF5F95734D88FBD99F507687FDBE38375434C42 7602EFFFE6EE5F1A494B2CD357B334928D122EC1F1252AE342D8BB2648F01181 8BE8FEC65D98690AC53719DE45DA83A7B18B94085C01A2BDFA5FBA739453BD34 745630AC2A4C793B6AE9463220934651C936D07FC2D29804D2F3134C98978ED5 C003C73BBAD46EB164B010A5F5C34F34E8D613CD85F54A43288B69A9E79092A4 39C18498EF22E41C20439370A2BFC1EC7F32A6A7A68FE07E49AEF32C5D52B15F 9621CA061491AA6C42B7E3BBB398836A4419F1C84DC5D3805E94B110FD88BFF9 AACE0299E84F02516C6920E1DD806BDE291A2BB4189F4617FC799868A773A51F D274161AF5814A575CB6CC25B287C725970B5DD8610B5052F6FB6359E30F9CFF AF87E1237BA3CD4D4BAFAE3C79037ECE00DB09D888CC7C4D7219645EAFD0F304 B3D01FB8515BF6A7B103F850304CA8FBFE0633CA671910D8E3721037DCA25939 40519669C1DA30F5789962F2C31A0663F0F901537ABE3F1757AAFCF2215633FB 7A71090207F71F6622CE5F8E44EC96CA2888B1EA2B401BB867432EC8596CBCD5 78816209D3D06412F93C2C1A78D554F14F60A0CEAFB45A58084939B1D32115F5 6461184D666B84A18C3252B2360DAC1EAB8F903FD44D2A62BEA2CE222AA71E27 3F474C6E98E29594C543339F8566E07A79BAFEADED1A17B04774C54B200CA425 49FAF0A917BFAA6751785967B4923693875FC7F2F96D04B86E1D588B1031167B DA6C842115B2C0B9AE29FEC6453DDA5243FABF7CABD16895723260E6001C76B6 81675F5EC4D321587CCF4C49A020C549FD18E828C04CC9D8E64E3CC13295621E E79CDD37FDB071310D4CB6D88A0B3EF3A3E5EDFA93E6DD7AE5BDDCA59B8A1561 F894385DC7C08528FDCCEFD62C93D0ED656F08650775BE182895ADDA40F8C3BD E4B43501482B51896B048BEE546DCA7F12728575512EC4A5C321BFEA9553D2CD C00635411C8F8802574F7C72914BBE9E892BE5E732B5250E265C8A8833130566 A0923F880BE0869D23B26D88FD6D193D5A4BC6257DD45193CEC9EEA36E8B8DC1 22B143AA050F22F196B2965B7D2831C7B9B20878EE3A7C7BE8358780609AC9DE 1C82FCAB5E8784146D07AC6B56B69B90A10757A5B9968A06BC63C0F4441BFD50 2A6B3098D11820D375EB9335573119A0235DDDD07DA7B09D51F8F5179E58D1F2 5BC54EF5C8A00AD5EF633FD159C855C4CCC695D1000F5B6AD7804F1A592B58D2 DF197F87C989B838A9FBF213E8F0544152B087D6AB83BBF2FCCB7E4804C3B09D 8A384EFF3C977068BEBC0F1DFB2DDF83AF4C98A3E71754119BD19C37305C005C 8EAA822D56DEC15D45B9694CCC9B8C9EF98FB5EB3D7406BE35490DDE6DFD3D83 15AFDF120D51CF3421E35205DFCDD753860B0F6C461AE3AB6743363C25CF44DF C6B0E8939FE78A76B724F2A7FD6C6BF018EDCC8B6C429AC40CEA39632714286A D36078CAAD540898AE472F4911728B598303C8B1ECCA79A797C3A4F27AA9924D 6616FC860CCAA34020B2D1892AF19D50CFF1C8E6F121CE477BC13FB3235F5137 60CED73C8C771345EEFB470C543C59D960BE4E232CCFFED869729A22714A5F0E 7DB43CE31215A0DEACBB95D381908FAA63F7A90AC16BAD16D41CCFCB9F98E764 2A199007DBBAB34668B61D026F025892B1DA5E6206FB714849A27815C6CAEEEA C922B825E57EB8AE40DBB9F77A99701759C1BEA3DE43B426C5E175B059005BF2 911E685D0158AFA94041A69E4805ECCE506F008FE43CD00F569AD790FFC22AF8 31712233AA23BA994FB0C2B8AD995008F4A3B63AD62139733DB76F393B40E6A8 32BE2232CA5604701A10570D63FA6FAE3C75627720146C67EE26A36D27BC4240 CDC4A30790A98F2ED8F648FE2285E31989960E6FF6E7FEB0C0477DA65B79AEAC AF019F736B0BE404FBEE5CDA220987161A2E2BE7F4212FB8E2A9BA738098A244 26D57006CDADE0409B1A248B52378E7ECCE82BB0C4152C6E1E81944C5799AA78 E2FC7A3A7C8DE2428A289A31E3E3D4156C9152A5993DEB02FAA1FBA84BF4FE1A 224F271635B0839C73E74AD8F08C2C5000002DED115B2B6A9B282622FA6C76F0 44D17334950BA37C9166C49F4DE6BED035246FC103EB63B58F32C361DE110F6F 37AFB159DC12154F33B3232CD9E5FACA6F789C65B55FF6F40FE55D00225EAF9E 73262A809EE686C0B833315629060D28B793791C311362F0181A639920EA66D0 5D0C6E53C629EF606553FF05813F40AA4B08E97B5BD3461C65559F012A91B43A DADB2731340CB9B78CEE8C67EB46740831A3AC7B2C5EB5F68377A82E4F84A142 BE187AA5572F4638735B904BD4BC255839707BD8163CFA6B7A768871675D0C20 3D5C48BB2BDE0DFE87FD7F99A211B473C0606C8FD40D228510822C4DA3FB1A29 EC494C18496F29927699EA76569408F6ED842CA72BF1EE38C5FB4B25956D8E33 7B201D182840DF3E5DD5988C57E222A20C90D0DA6FA6EC89007816A201236194 B9D1C0F6FDF6FD995BA2935BB54CA158C0834F671FDBC1CEA23A056F51B0D8E1 B1412623F397C0BEB47D11924AAF00565EC8C333991E3E2DF88374F58C6DAB6D FA3F5C99D7A9B3301CA9B795626FB8660D90FA7BC864F8346CDB804C9A6D59B7 12B2AA3D7D26EDDF21FD6E8A78841C25F3AA64346AC3C6BE02C84D32EEF198A9 1C02F5E57840EBD7706D3AF30DA71D985F03669B546C11F6885D6657E3CFB3C6 B806044E323682A8156E1E364D03B20E1E09F811487EDB36C579733D727024CF 2AE4DC7D181ECEE6BCE030DBC1A424E5D70B18765BBF55F28EB9E71EA6161CE4 DC81C1BF7B7A150F1B00C2570320018B4F794571972FD93DB83A1F3EFFA785C9 6A5DD31E5D9AC391C1496051BE4A9EAB151E6953AA0CB11DF76574B9CB3DA678 4C40D2171BD9AA3BEA8191AB8DEF959806B3517D93720C3B80C84F4714A7B502 51D861E4B31D529FD3E3F5A259B0CC129BC45AABCD2467FEE91036F0C43392EC 70BAF2B73398289AC51227BF5A0163B2676327EC212D4D1A7C001FDCB797283C 4D68370AA66718F35215DC1FB59569E3D0D54D8E09C86CBB2428F0FEF4EECF9E C7C334FDFB784CF7DB7CA35AA364DDE7579E5935917E4334A7EA9A69E2FE7F5F D53193AF04F8447E9EA642D3BB65009E80375F9979B2535B260CD9AF6056A4F1 75DD48A796A43EA25E34BA76F1681A3282F7FC211E145B0F6ADE17A52A09061F 578841058F3FAE9DDA4237FE8C3F7F6647157A8869A662B423B095EB63F7F052 B3A4DBAAC640D47AF86948448DD00039DB41E9C5BE1A7E6BBC1D9D07C041D24E D01904D1B9A2C19D04EF925650F5D3FAC9E12E45F6931C49EC99D5D48F0EC6A4 E93F0E05A1B081B2482372B2C20ED895E24A946B868F9AB139E416481F96D34D 66C2FED66CF844B490B537561865299EC85BD8D2AF4ED82E1BF056123ED81317 24F0C8DF5E8506ADC771EBC6DC5C92D22B24742EC9A22A5B2A839E56AE8D0084 A9C8FBCC63BCFE933DCA6C5750D66D3003483BB552BBFC50B6282CB83EE4CC6F 73E5405131AA65904E44E4C53E38D79475F488283E607BA4EAA7BEC7C29D0142 278D95AAB46FBBCCE17035899FDB03ED55438448FF9D90FE46EC6260A0CF478D 63EA38D0E73F81D6EC894E7B6C7C1C126D25E63E154A5957C949E1954CF324E6 C818F612F8C3F6F8F8CDCC953EAF89235FCD784790B34EC51EC3D6148A1C850B F9C8550C3297DF93CBA6EEDDC19AB1B1D34E9E73D538A9D3EB5F5102F30E9E2B A98F5AE4C65321DD0ADE2D4319315BA79860C1C2C5C6B23F0DEE84EF211BCD25 90A36E4AA57E019BE961C4CE2159B13EC81FFBEBE93263C3BF8ADA61A8B3B4F6 F0E897AA4203F871B2CA7E9EFAFE44BA7943786079FE89357E3671F2D1F18C72 F6BAFF2AD679BFD30458638BE3EDA56444F2792CEB35CB3B5A54F297C18C9F5F 094B2CB95D4C805BD1E8BEFB2E94D6B1E29C8B48E815528729E25E3DEA3DBEE0 069466A1B34BB3A7DB33FF0D1E748F14F517CEFA68443275A6606F32CD1DCE4A B6E7671FFF37485AC5A6576081C7DBF42A33D839AF644E2F064AB47F593BD977 DF416D5E84EF130DDB7F7C36730E3C2C93D3D09CC628786FFF84F09445F84BF0 74C8CC7F8534F6665C7E1A611D10B7D54D7D1E5C6B64AC1245F583D6D7FC90D5 EA0BCF6E4F6C2C534E57E6A66FD4B2CF7A00D2821A1BF85C1A4A2EC8A4342E89 5B831855E0493293F0D826A2B68489A176C169D9703161C139092864014A9D68 966827384ABFBED5DD7D1F7027E661820764907CC31688C203C691F8A5557B0E B69376FBAF24F8B01749B0239D95A24F8B1F757AF2BCBF268EF6EFF2482882F1 15372030C5EDAC79602185BBBB66DA31D6CD94A54CC57393DB37CF5C935526F8 616DD6250E0626CFDCC5E2DCB79073DFD2C20091A9E1BF670DD32C0A3C261043 CDDE7D0F9D97F5B31F26A7D9DCBD41EC166AB8E0C0D23CE3C3DA85FDAC1CCBC2 2E6AFDDE32D88DBF9348FF2B99099A0714219620EECC1FEDD4F4262C83FF11E7 9B1740A4348628C21A3D5F6FA566CD109578D0D7CE8741D862208E0F0044E95D 76D3815939795C826A537FBE9B5F89BABC652B6F2E08C882DFAFB21ED1954934 57631D6783A88026D15411CD48CCA7B81BDF3077C87C5599B8188FE564074D9D C384D14915A11337E738A6C1B43A944A6E705F804D1FB4D0C6572B9FB19CB918 D4B2EB37F0BD5DB44F9B961911BE9B81DA6ADDF7D1915E60A32560F57D6FE33B 20623DC7974AE4848183A99559177D44DA6385996F3929BBE77F363B982298E4 C29345D2F59EBDA721B3F94682DD0B5C05A6FD02C10AAD8177104A407FC15B29 EB1B34F4121CB3FDB2828A217D90DD9D7CE2347A2B1119C8FC5EC15264DECE92 F8EC5D7652A32E08BC9CBF84DD10801C984050E76789B12EDD6E57CB0C84D523 584A50C92F2BAEFA767D01D2A8FE8D086CF818B06C0DED09FD03DD6EC008DF0E AC01DFFF20C33D62D9AF2E0159D085C71C28D513A45AE13CA1B65DA5B4757092 6BDD1FE6184888354F332A6C44BC31DE8A721126B14D475E68549CCEA920DB54 6C8DA552E69DF2B4F2D2CB2533A5CE8D27F91D3B44FA84B4821D21B02F212F6F E6267D777E8A10DB921C47303017179F78A5BA994A3DFE7A4D43A5FD07D728D5 70E9E936BBC50D28B55C8DF77F7EEB653A6A112409E80037D5FAF15DD76027EE C684FD4923F89FAE1F7CCB85FA5C00D52BB50AC32BD60E1B9DF6433DD0C66A4F BAECF259E2D70882720C3FDE4704A660E97F852CFA8324DA31B164822A028C79 AE1C09C0743B08A1A1C7E35D6FEC85A1E0167FC4E02A0698BC4C5C166A7FC973 38797F47B2D514BCD95FAC0B0B6513E91D5F9C3FCC905C1D8B650FBE9A79614C FBA262EB2C414E437239AAC6C218C0E3C44C7EEA04E65A3236D8606E912B47F3 381EF256C0441AB6E3E3908E9F74E1EE01A587D27E2E21348441B8FB7D332DB4 097FEFE4BFD255D42A7F39B7FE156E7866084C76BC7D04D75363D7ED87E6D1FB 92B2FBE5373091FFB71B8B458899A386B9E86A551E65B65C205FC9A2BE10B4E5 9C789F30EC5FFD2345A3D2459F5169F4AE3DDAE899EB47136D12FA62F1F86E25 78DD0D30371C9AC0BBCC5725135A3902EA8A9A0D5E087F28C7058ED16528D28E 505E97DF8A3AB3BC8759F87FE329B236771E9199DF86E44E7B47ECE15B8653AA E9D5FF7293910C08A42190122F4465647FE2F304836A464CB9910A2F9A237F34 66A436D5EB618BB7F2DD48016BA73FE95E69654EC7DF5F7070231DC1D25B070E 50BFEE8F12E0C65CBDF1D45F21430642F2E31995DDB0BB2EEB3676868E91D474 D38165A21603A1FDF5D9B706D278DA5B8A7475AD14E27F6522EB7F6CA9B2441A D4A518B54C56461E6EF64F21D5653B235F4E1A098C828AF5801E7DFEF5A97CDB 7F22E030EAA02884865BFAC5C2C681CFA0543F95703DE95E6035DA02F9E80970 020F18989BAE20CD06D0EF4265AA00881AB7594CC2AA41F3694B124DFEDBD6CE 66B492FB2A1D1CBAE0918AF9A03F721D404A95CFE9AB6FF5AB11E4FFEC619E4C D7B4817709ECD19AA58935152E9674C3676166D281B05D46B32E3585B592305B DED86CA989D82AABEAA197C793711E06EA1259F1DB1BB0F246FCF1A109CC6B8F 33E678C918970BEC353B641A5EBDF917ABF13A4864DA7A75810C2FC3288F74BE 96AC7E9E1B1621270E9E33A8D77D429836C52390D94F1434113460B061E70F45 485F64F94839934FAE02FCE5C0849425AF8ABB9FB65D0A20DA312B5B627A68B9 3597250234170D17A68CB241E249FA02DB0580D86F88B4D9A559AE16A091AC9B AB9B89598D3083DC2411F7C2D3682F255E437DF5EAAD0FC07E9AFAB10A1706ED 3698650EBB2ACA9C5E98BD38B14F7F726BC6954BB31E1685150832F0761112EA 8B675A4FE972F327E03E0A941B15EFE424D797562880357D909E130F34C97D65 3CA5865584AC0763BDA370C85EDBA67730E2470B202CB679F61606871F43D8CF 47805CEF8C112326BA352B39AB601059DEBC26FC96352415AC17641FD810C919 2731E32206F73224C2560F77B1A598F8C220940B002B1E5F81B8F61AF773E5A4 E56AF9E1D5BC8F7D98F447DE5F73DB9D2868055DCFFB32904ADAC4F9248D2F46 9E4912ADB78B0FF3E5D67B390C3211A00224F59C29FD49D4774BBD1B01C25E82 CA5F3C0192F653E3033D8E751CF75809AE7422FC31BDFE11A1D77311AC80E86A F56B6762EDD3E3A0EEE8DFE0B4CBD1A6B2D025325A2DEC8E69A1BEA9733937D2 710CA628F522BE6DE62842FC7A9ECC05623C29DD9D16908B924722FDF347CB86 9269846F68D2B08F22627BA66283FAC1B4C12ADE6FE5649B25028637CF480CBC D1EE35F3A5158E490BD129CBF89B4DBC3027B3CA0DB23B7E686E3B02CAD85A94 115BD6EF3E5578BBD26059B910499170C9DF92639F5313432FCAE4BF14845BE5 F3D5B75FA5945B4EACE653F2748A835CE627D16CEA712882C441F126B534D9FF E7AE37C5BEE0DB6C4C6E8DE5F5B69A72A1D986601C16B81E6EC192037F1A63E0 A35700F76F199EA135EE8A7178C74DFB6514790EBA545F68FC90AAEA7EC83C34 D1FA155C16A31569DDF8079B2377078F61B2F19BC4BA0768E223DE1BC0A34EFF CDFF5A56025DDC8BA5829C1101B02CDA81B8B9FC4A7581D9072332D873026C3B EA51B06277C5103FA33426A4184328C9006B082A60363EEA563FD4B4808698D6 564ACD944AC9455C72F8A9F55ADC88F5A9A8E9CF815E9448F5263D8FD5D3C764 D8D76FCF6EF742D5EE99A1743B01A1CB95BB6865C4B734CBAF644CE8491416B9 DC9EB5A0E194BF4A6FA38997C39246AA09F9C25460092CDCAEAD0E219689C86D 710160DB2C39A42537889848DD8298DEDC5E76DFEC8959B35CCA09B8FB2FC00A 6AF8A895642134E6A2772251C5DF25D66DD114C9809A1E7AB4DD722C58F589F4 51D66C6A009ED64FA7E2CAB439C0A6A3FB358C57ACBB2881C42D481D710C7D5C 252D4A5EDFDD9941A954FA2ECB7D5740CB38283E870A8A1B58652CD8582AAEB9 D2A339221E0D96CD4244E47AB2E2FFB704375F8BD7C86A5EF012462C4DD23467 A41B1432FC357BFB0A74858F1C26D3D84F9334DA993620204A56EB9857B2C1C1 D06B60D7880F07BF4DD47E875093D86048ECB2C0FA89FD6CA1443B11FC9A0751 C9868C20DF62EF818A6F2D970AA271A92C286EE197EB9352AB63998E83E53651 36AC1B067F2CFE2FA46D73BF161DED1886C623893342CCD6F2D4DC5CBD3F1D0E 9D0D05426DFC12A15BDA53E8AA6D4E69EEAAEC651EAB37F92FB9B88EA47B5D80 0561425A6AADB15F44CD5F1576FBF14DEF6AB06ED1E9AE1E097D0102EEC10427 C4FB23AB60EB975D60A443982C5439CA918688BBD557AE5AB9591451A3A162B6 795985FBFEB25A5735D1FD80AD76F77E97DE48F19B0C5D2DC8E7A1E89DDD4464 832A95C45ED4D36C812C6823DDB0CD830A26A2C5926CE69DF52F8BC0B36F2AEE 9052FC5015A8A8EEE98E0965ECCFDE156C6AD625ED4A81ACD78225998C1D9565 AD3FC9ECA06C095CC9571CA342150A613E7816C258081EA69D0A80893FD57986 01513EB002FFF12D708920E0A80705899C533B05B53CEB7FD7ADB4D726A99878 B15309CC52991345F1972B17E78B1B4F9461440A1FF1881C427F44F5880959BA D90C5280BF5ABED54D34909F4EBD221A7E0A6E640B53C367AD3CEBF8C02E3E6D 27F6774FF3E4F402C4A5689AC55D30A9328B6997AC2B65DA51BEBD127AD8DAC5 14326CDCA3B91803095B58E522815BB0EFD5D6AD2F8FF4AD1DEC5F838C435AA9 8DF5248B459609A8D03D915ADBF5B5AD3D9CA0A9F437B16D76A0A6A82F4A5BA4 5E117462A07FA8B5CF5CADBBDAB35A3392E14F90FD03B65CBAC51E85CB0DC612 174EDDCD649B8534A67EDF7BC11E3C535DFD7E996E67B1730C0DA563956B321A 836E777AD1D487B86577D02145E7574C02F0A84644784B8D89E466530A2525F2 6C7AA52D8599159683F2152406ED93168FBFD06385F1DF8EF700025552317DC5 D9C0A720105B27D032116F4B0C787E2A880F8E62F76AD27F961F91C17C38C123 8B372CAAD8B6C21B81B85C98714E2AB171378DD807478818F1A01E67086C2061 A845C0ABDA4A1FE1E7BD36EA012FC6B358DC36B30B0B1BC45F89951EA1009ED3 C118DCA7738146950783858FF685BB1B75FEE64A43E7BDA2F614C91B90C11A6D 651296775262034B96DDBFFA52710DFBF5D594457578501147300305B27303AB 8B019213AD9B6C6021E1AC8037B71C050F97FDAE0C9C60EFDE6AFB6897FDFA0F 42477607466726908D5714B1C3C6DCDBAAE6422EE18813A41DFA6D9078BABBFE 2E4A49E9239CA638F7E0CD22161E1637C600349D0CBF09EE1AF0426619FE5F40 B4C994625B79A43EFF258FA9167C877561EF33212F521DAC47B35C85F86E8A1C 5C7C021FCA643FF3B9128F5F8B3CF521704F429E7EE907C0D1FF539E4056F141 9144062F9BDB94EDB2757F55793C1B37848109EC6C484F70519949721AF55A98 AAC611C950C884F332FB505DB3A3FF6DE5165FF0550D42E66203D2B37BEDE772 C02B2D3C73B8EF35DFD4E86DBA223D1D0B8C778A6BC3E843AFED974670988B23 0D4CA16B1F790E043993772670B4A5EFA410449E7C9621CBE4425316603FAF5C 760EF24DD530246C1458200C78A7629032EF04BD4AAA644B07BA64B407F23C23 9BF24D2951ED1BC219EA5860988510A75ADF03B7A6B0A9D9CD75ADFCE623F9A5 001328E9C224126CA50C1BD2B843DE75D4C1DE10E4BC911A5383DD07AF3491DA 321D99017769583D397B8155756558F425A012627F4496320E0CE2CAC4318DF8 64F7466AFA0748107D8722CF248A321AC708D10FFAB7330B216B92B5E2E30934 EE12CFD7D90557574BB090582B631A216937BB0EEC1F2F4E342A0A596B909D56 933D861A5C9F7BC5BE94861A2D0768F6784139EE99D02D3FE7C0986CAA40A341 6D0FE74B6CE5B299C1BF16C1EF6DFD3583BD979A997165997E3D3CDF53B157AA D42BAD69707D9BD657943C98B6D6C080A500723BD1E8FE988132C2635FC3264E 401B3D8CBDE0EB9D9BB32E94E87AD6CD012FACEB3001862AC5097258F535873C 2D2D1B0469A9F70F911F3ADF45D99B11EA050086AE7D89B9DB1B8BEFDB380DCB D50CE45BE4EE41624F3B66A295022524EAFF694835E211B10C9B5C28A60A789D 14D8C3C5FD194974C79C9D7656E89853ABFBACD346C37EBF0E14F9EBAD314749 9FB8676CC983B1831BB40E6082C701BCB334C71EDD680BAB317DC6939EFB6164 4BF85108E2FB65C05C1C72EFB31E17C249C911D5875DEA5ED01B3C639004F0B2 5215AAB19E61CBCC886E863B1378ED59A580865BED5D3A89051B1121C3DE18D3 A7B71F31C19D751F3FBA44B3AB05E8009CF97345D1E5B0C10554A7B4DFD425C6 445C4FBA9F19F71241AD5A703E583B490E54AD31A4BA0689C64DE836D980EA7A 432E30090939A6372BE8178B85661A311D1AF175428F5074C9863C96457087E0 A0BB3F518161EBE477C2CD2BD6D609923824070E2621B799760964115E1321BC 1B618CBB73F63F2A724C38BC2806048F0C24653F395976FC4969C7DD04B1C2A6 6B54ED5721B2F3C2A67A56E05B8C7F077CFD740C4118CDF7929265D0E3A62394 A44DA73A385F9AF86E0925C8FC5264C087934393EB7EA21A270A5A7787CE8574 3E84F5FC97C3A52F24B27DB9C524324AB537C75970664D7C8361DFB996ED6B23 724F3BD9032923F850A98AC394610469E181EC62B0F66FD584FFF636CFA7248E 03F0339366EA09C7DC58387BB53A9EA0B48841612BBD972887EAF66A0A030E67 412003C52123B5C9320C8345CDD77CC336F13492E27CEB739DB4A8E186568D45 28B041D9CD87C53890DF3EBCFE29D5DB4624DDE7D66A43A1DE23E35780B4400C 1B0E2068C9AD8E074D4D8312EE1837D64A17D7B2785CD604962DFF7C6A79878C 1DD5ECF5551417E03FAB95C532FEA1358BFD35B59CD07F70CE92ACF86640A5DE 781B5C850C7F95EE4BD48C4780C92F0640CE6A8AF35295C160FAE1733C53C707 97B9D0624BFD99DBEE8E9BAE1A7DE384B9709407DEC9751D0AF5229850D46A82 3DE88B2F366B857A85C4A601A382DED308E940A745874EC7FF3EED947951D3B7 38A241BFD2C85FE78B4B64F0BC1DEF083B388E2694F593B123ACBFCBB105A32B BC2D00D487A6A8CD0DED6C93AE1379A7414A59B765508564A6D8EC100145ED60 4AF405BF220F1568C6BE9D6070F418AA51D2958ED89ABCAB2E6C0B85ED969A1E 8A3236F0919FB6A34D455C26F533FD57135040815B38681B96D3920D1FD75BE8 A7050A15C48FB7FDA176E6A0B551B2F0C487AB48A4E847968641DA0F338E602E 3B6877929CE951ED92423ED15FB893474388F3A7DC96A603EAD4058B36CA9A7A 42468D43FFB4B750C6C90BF9C15C5E1CE1F9310BEF7436EC095B07EA13196A55 82AB9FA2B19240FED68211C2806899987B0290E72A6ACE4D4B174ED1261BCF4E 24DB391140ADB658ABEE6A8CA3ACDCF37F9E48105BDC7870082EAA100CC53427 FEAD6905A105040E7D63D9B07370478F8B87B5F123B306A210D1EE3F9C238F50 E924B9EAB2935DA83FB52D11548015E5DBF163179D124AE2B91DE417EE90195B FB0CC4920F98831CC192BBB246D6A976FD6A9FD41793A8303B97AC5BD1010F28 6D96F9A1B6D8889CFD82CBDB3461E83D312496D5810396B657B4B1B84DC52C4D D223C61FDC8163F5F10851B9A6461E4034714F4E3F2064090E409B153124C12F FE84EE245BA300419448DC758BB6CA0B4E38015B315CFED85934115416C33083 245356C3F7B763037C84B22711FE8FB311530DEFB4B6F74A4EE7F9A7ED21E7DC 2F3E5A21A9CBE1D7341786E615912B66D8C803F1A28079429185CB9C74B98ED0 DC3C5E7158D89312F847260FCCD035F32B8477766BF53EF370C7C3D7317F93A3 FB620581F61160FC6529FF611BE536808E2147E56725330CF280E7174A700EB7 7A20CBBEC60CF9C6BAB69A30D76815C98608AAC46C63660E4A578330AA9E7F29 CC1F77906C2B03497661CC0F1913EC1CF1BF2BBE567103A189DD3385B7AE010D F90F7F6AA68BF7A40C28FFB40A3C316B8A7884B9229E49B5D231FE5EDA1D8C80 BDA309B0BB1E10F80DA2A1B69CE7A1E6D5B15D58F2BF81C16A82845577E004FC 8B2B19AA971DBE434F03942C931046FFFFDFDE7F094AE60F7432683838765C31 4AF5F2C8CDE68114C40E03FFBE737B0323795B585368F819DF9D8525849D63BF 736605E92E21C4D88CFB0BA9FDA028D01810E80EEDD6D6E3D2E52B335BDB6F63 15861E3EA61C055C571BCCBAAE46D8A18E58855FBD421C27065CE5A202F2E3B2 BB2B7D257F89A086EDD59F6A5F49BF816CC6530BC03FBB9F12CCE9F15F4F3A87 C279AF64A581D514659BF054F47F5E95517D26E91BAB4E69A51D4917197623E5 34316BD306A28090AB782A7C749DA1D5941E31815783C93084F30B07F28585F6 2918F08AEBF0A1DF23317766B100C21EBB30507132B821F278A217509297B61F 161577C07FA74A8C46872A9C4444E7F5B3C958F228E775E7768E9648891747CD C444D049E9EDA64605E68707C262E57B92D17D426E6FDB7D4BC64CFD55CD752A C9F003BEA19E583A325AC3DE355DAF79418EDBA56B537899A36B459ED3905BCD 9D106A122329BE040C8867415E7D3C667B272B9A587861781AE8908C75860C8E 4CDE7474CCDCC6E3D452E7D83E40FFA80D0015A5572BF4ED80E5BD71651E0C6D 10E3101322372A00D814332A6102FB42D3A977596243B29A5588DF79D2E113FA E657539772EFCFF429581595F2FECBC66BB444C2AA0D0C0B35DADEDC3C423C73 F42B02AC98E8FC2576597583B2D1CAA444D8D7A0AA9F274E5FC0F7B4EB3EC9E8 F80F5FC158F750EEDB3A6C1E77E01DC73A730621075947731C896355407F4AEC 20AE02236160FBB75F90F943EC0740C499B1CC8302077FC1211D73E30258F385 BF494DDBDB93064285D2BFB6297F28B060CEAEF871820E4F7EAAE2FC0B17522D 56A7E3F448DF323CC8799F8B716C22BBB75093EE4CA40049F8E61C389F9DEA29 70CF9B4F3114DCFF1BE4BA04016F79FB335A270D4E1F789393A130DDA04398D5 5F7104C165FD756BD765B98159ABE84601E065840E1F2BC21B4E46DF767FEFB2 DDE26351FA8DE34FE460C81B89F5DD30B72D6B45945B05BF8110BA2ADD4696DB 6EB91825B7F0827FE279ABFC85A852B1700D2C003D2B174DEDF7427BE695A3CF 1A5C165FAF3362D02F185429CDD47FC9BE85BCE7CD88099DCABAF92D39B3CD0B 974A6970A2CA99F4CEEEF87F707771BA1E8177E4A1BBC6DDEFB533317418A8E9 670AD5BB1582A87701A488DEF278D03B9BEC1A493212E1733DC94D8BCDB48E15 9639E619D06011C17DCA76872D72003A87096C790621936F23E6685277C61597 55876624F96824D445F2B3C54A875456B08303FB206D44A41D2161F164F92F73 D1B8C8951E88E2EB0CD684470469798A3DC44A5097D90D82E9AC7348D0DECAAE 1626D3F765AF2050B3B337A4187B213B6C5571EAC6E43AB943AA447BD99D1FF2 186F57C8075E0840B84E26E1441B7FA8438F2209F6BDC9F83366A3F508A87DD8 7DCAE5896E727631FA651883334EE89088D1A7203751AE6302FD8B087A8608FF 604FADDAE9F2688E2C07FE919BACA3F55A9486A2695049C7A6A3262262666688 0F13EEBF7CFEDE046D5A469D86BF529FCC6053D4CB18EDB2540DAE86EA3150E0 51172B87C62EA34A88CF058ED16528D28E501FC7ECEFA92E3B130B13AA517452 1A51887144183EC1D4F617ABE155B130670BD67AE239687365B60D5F8ADC9C2E A79054C39DDBA9610E696B2CB651F8BB68FA2D0A336319D7835D9F7479F64DE9 0E4AC1A2D627BABB5B5A0C779A8AEFE7DF78043B9AA363C5AE58616C347E4D61 EC79EEEFD2D0705CC0D637CD7614E254D2131E4B9A7C9067A17D0B38F1DEB85D 74C77FEA7BF3618400EE27203017FF3A2BE679752B856B9777101C55E5F64C97 341584B0BDE2FD7F4BE912FBCCC3E1E0B071C59A82ED0D1245D14E9D25878F79 FDF28E9CF292409E844905CFA6B350B6909BB5BEBE9D6DB61D23B51BFF604D7E DB6961C9EB5BB17DD5E27D1353028A349A536C26E311D7FAEA8DA05496F7588B 98ABA6889A604B3EEA19BD30EFE418E0B322F55210DB521A6FB800AC153DFF0A 246DC728F5C855093F10080C12CC74EB73C4C5100109E94F82151323B66475A1 746F75C4D46C8E4765D27008BA36082660B49D7E1A859E663B826306C1AC017E A936694BC4F160D8D6CD8F3187F1D4EDC410563203A39DB4CA69610F289D1E00 08C32C0726CEE0C02F220B484F7302CCD404329CFD073AA6094F307096BDA9DD 9F0346AD5872E53B492D32D0FF8C9A72FD1114752DEB311E472D0A8C9FC12087 DA15C8FE6206B07E8D6867FA8A28A083E0007AFEC2BC7123FEDB243B57ABF59E 9118A61EAA601A29595388ED5D1153BE8059CD4F6DD29CFE584CBE4F1CD5112D 2C58455224BAD26FF41482AFC5994D0B4CABAF157F4A38B5CB02EC696CA71531 6B5A23EC9AA88095B076AFC9392BF4A074773ABF0F396ADB24BAACE746727370 03C11A40EE5E09F0E6686C7470FBDDD1FDF39754EB97C8B5C4F0FED49648A4CB 10E5AF21F8323A3F6DC8EF5BC73D59BAB270DDE5D1286565406D9B28EC20B6A3 EAA64C547A03347ADF638A949936EEF02ADF11BA824DA34DF8EF87BD657F98B5 9E6613B2A887D246A2CE0DFB354459C3D5A325B4256B67F2F38E8031DE072E0A 86C530690125FF8FD008BD44029135F6DB3CAA5D198A12D59EC80DCBB4027870 8F9B6ACA4D9ED7E302D55D7805D52FAD167647E7C6513770DA9C92BE495BCF2D F883687234D75E764C63074FB1699607A5354A276BF2754CA511677B723070CB 93B930CB03BA872405B7183D2385560D0EFE6E968830A302AAC86A450CD39CDE 814FA29079E52B85111D3FE3ACCC85549999695CAE6D198A29248673C5738B9C F26462274C975F0CF5FE0048F68982AF9F4DE6F03535764F6FBAA9B3DACE78FD 1990F72AF51D096808BCDB3FF8CD2D6FEDAF395BEA39BBD607B2459DAC16F2B0 1D7F4BE891657B92BC609B1DD5D6F19057BCDC87EDF8C5D084BD0B660AEDCA1F 6F3C710F8EAD105B1217A9D353E197410E4495DE61442FBDDD4BF92FF984169A B2C49AC1DE80AA9DE2DA1EB74C958F1774A8CA95D0D1D69B1253B4D6BD0F3C3C C4D8E77627359C59F330EE3CC138C85963B604C098B3E20EC96DE676E5268037 1D03BFE40463F736580F34C2463DB4FD99B7A644C4B95619C5F12CBCA10AC4FE D160D51A5C90AFD102FD39D0F45C94D9BAE94236F1E25CC1AE228E16BCBB8364 C47397BDF3CE579DC5159D906CC0EFA6DB47AF9C6754CB180E00E7AEAD134097 BE5C0CA80AB3727E59F16427756B2CA2C81EBE2434AC438390D9E95B03705C05 EAEEA768E80C5DB88123106D36B775AD4A23596A27AFB0AA88EFA751FA6ACFCE C43045AB7BDA1DC584BF4B5AA1D1167C691D283B6FBCC613C756F251D80070C5 10D28CE5A7E8F254FA6A6360EE0A97CFBC936504373E9044DF5A3E57AFB5CB6A 023201170A8356D4BA7C726534647724A9C86DCC7F9C24230AC068EE3876F9E3 90EA3E440E52A2130A321BAC0437C0AE6CEFD3413D19AB436DFD6178D434C759 150ED223FCF3F9D2AA7351DA3E841A5BE2CDC0208F69032F04BB157A79A668DC AF6A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: NimbusMonL-Bold %!PS-AdobeFont-1.0: NimbusMonL-Bold 1.05 %%CreationDate: Wed Dec 22 1999 % Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development % (URW)++,Copyright 1999 by (URW)++ Design & Development % See the file COPYING (GNU General Public License) for license conditions. % As a special exception, permission is granted to include this font % program in a Postscript or PDF file that consists of a document that % contains text to be displayed or printed using this font, regardless % of the conditions or license applying to the document itself. 12 dict begin /FontInfo 10 dict dup begin /version (1.05) readonly def /Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def /Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono L Bold) readonly def /FamilyName (Nimbus Mono L) readonly def /Weight (Bold) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /NimbusMonL-Bold def /PaintType 0 def /WMode 0 def /FontBBox {-43 -278 681 871} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec D9D66F633B846A989B9974B0179FC6CC445BC2C03103C68570A7B354A4A280AE 6FBF7F9888E039AB60FCAF852EB4CE3AFEB979D5EA70FDE44A2AE5C8C0166C27 BF9665EEA11C7D2329C1A211DD26BB372BE5822F5EA70D99EB578C7BEFD44CDF 045A363056E5E1CC51525EA6FC061DCEBB337208EFF729802376A2801424F670 0E7E6397B28F15BC10B40012B0A3EAEB2693E8F7F627C4C9C7C6C5BFF105C1E4 1B2B9E8F09253B76040D268B80719E1B3F5A55AB7B892AD5E69ACACC6C1640EB 3067BFC64938F41636DB8831883BDDABC6777DEE17F2E84F1D530BC76F51C621 75EC6B727A82C193D1C0801AC492BBE281B46626BD21F2ADBBFD144793EF754A EA5F1CDA3310E83D78A098160C66D6B0C68D4976898D9DC1A08D01740AC3E7F6 8D3CE0A7E109104248CB86318400BD82EF894EFD9C9456E97055286C144D3EFC D2625110F1AE76241079BEC19939AC962E0BA813359C15B07C74D5E9868E2167 EA1199D21CA8827CDDF1BE8357261BD32E79FEA6BC475577C5F6848345BCE58D F5435281572AE6B33B53607EBEE6F862D4C752AEE43C00CDBFD258C7765B1358 5D6165EE034E5815DE79CC26C4A720607BAFA6049710EE3782BC2CD84FE2473F 1335D20A3B6E9E8355AF36673CDBE63C27D4F0E183FEDAB10031B1EE33B9573A 2E1961B7C6BAA41F7C3EE707FE86071EDE5756A00D7B3BF0A21B7C3CF41093CD 66ECCCCC22F4534912CB900B08E69574B07F246305DCBC238780278AEB8C9E55 3D096A944EC7AA9F697F354AA137DF90A9547EFEC1CBD568CB999979F5AEC6AF A84EDAEE1564D178541CF4631081781608FD38964257CF89B1C8E0120B3F6AF0 793597AD553CEE5CCCD5C4F09CB0B4E998E6E76243191AF7E93833D067833F0E 53670D7E996ED67CFE6699A6E3815932AD272AF4829C2EE08A32AF41D0C67F15 0EEA6E6D9A07919D533CE73BE753625DD658A9A49824058B3D40AAB4C5F586DD 1AA3B98EA250A2A18E0FD974135FB897B2676481C8846980EC5C15A6CF3589A1 3F6DBEAFAFE973B91C98A1451EDD31135B7E7DB16730051EDAFC10D2A9ED25CE E324888E648B46541EBD289AABD77322EA46F92EBEC5FD7A641338DF87904614 0A7321DAE9492A006E84D21EDD2CA9EC4DFAF3F3491D3024502E3DF760580C06 17D54A6CD838E51E38E72E5D6E3ABF1764E9CC6A4C56B69E963C1BF9B8CE006B 701C9523B5B9B145B6C92DD26021738105BCED3E94CECEB2E6E552D1F3AD1951 48EF85AE8B996ED2477421F6A82CA1E71C399BD284E6B82BC7CDFE0189EDCA47 2BDD5A7B8E16D60555CC1665B0458EDC336CB029F5DC16A771552DF211C44612 F4D39B6D5FC5E14BDBEBAB995DF855C084DA21E5EFD3BEC41F18FB8C6D2B457E 60950E1CEE77F24333BEF421A0AE453EC1567B6C78392AA062A7368BDC8F75DF 47CCF6216626AAAFA4DFC47FF9D123C1BD64443EB7D0F6C3883D195661CA3A1B BAEA7BCB4950A9379B1E5038238A03A23B1B4CB13CE190839BC156620615883B 0E589EE3A0E0FAFC9DC93DE177F14A1FCAF6881D65F8CB127FF9339190CD0448 80D04A83157F6C7A104D3408735BB8ABADFD4F58075F2E4A779A8BDC031F0A2F 4E8ECF24A0CA6B4040383C9D965B43485D8916D491301D6F8F9E8864D2E7440A 64DACB0A61324819BD29B657D61E2BA950218A3AAEA347126CCDF3022F452D00 E6C3F486108289E9F1B5E29E5C584D744BFBA60FC22E964CE10AF512C228F4CF C3DB240EF27A5C409A3F6AE1F1D3BE143CEC0C46F4BEFCA788DDD369BC6549D8 D02596DE943C067A52E1E24ABF132E2F1C61F31242729A9EBE877B546996C652 01C272CCEFB6270BE052F658087D5C67D702AEBF0B8E2A87C33D002B9869CBC1 77BD7D99E0ABA1EBF44D787112A01938185F1DEE52D5F739D1CFDD9459D56F71 A698EB8D7F3D54EBA10E0BEEE647974DED573B688C2AAEF49047078B06C8A968 F278BA7BCA00EA900B2429BA77A3F888F990BAD4D1810A9046288D9C33E4071F 3661B2D8DC640B8F2494EC316A5C574393F754972A1A6F8D053F2EB3FA8BF2C5 D6EFE5B2BCDF18517D0869E0916E6B555B31670C7044FACECC830BF9FC5B0245 323B24F840AA363C8C06EC0F4D58005511B0843AAFE4F1EAFDBE9FA317C2D846 55C143C4F74DA06E77B9094808F6F1115CA55B7BE5F2018ACC72A4B70E1621A5 8E2D8B37EB1309FDD725B6FEAACF65D8C83012A5191B4D7908FA753D997501EA 15183EB324BA351FCEFA37A93751BC46076F01E2D91BA27FAF9AB7A6CFD5F930 F3B3F5C994D3214A2D0851F039E95FCB18BA101F93D4D5A6D539C11187DE78BD 21561425B671D3601C7627DC1A93A9046F0061D3564D2044E9B8D2E9BC5560F2 A9F926A5855D4401FB1F62CD6C9CA9EC756072F77720ACE22C9983B434CD778C 286374763ADAD463346259844571401A131E488A004961B9D7754014195463ED FAF7DF63DEBEBF603B631AB2F750DC5479B16B837416E74BB617589E877EF44F 84284B87C4C4246A6BFAFA2F12135BFF313497CE64AF94774175C7FF825827FE 2A6C008801304DCA2BBA8F01DFC0EF00645552C9A12DBE0028DC8EFFDA328259 36EFC9426F07342ECC66E68B983E966FCFB745795C4D2C85780F95B5A683ED8D A83806CBF2B803C94B5A1350006146EFBE1744123AC8C0F4CA8C980DB119518F 89124248F3B93043F3ED792CFCF5AC617DBF2FB8C7A3E1146303DF6A79C301E0 0600AB38A00EEA61310B34A0FF7D6883F450ABD1799F8579A036AA6F4FB60949 07FCF217372686B1FEEAC57C32764D531E3B5CD8D17C3513C14BC3BF884B0077 C9CA4DCA2FB7C7EBBE81A9D14412312CCCD8E06297A576398B0ACAA04C99BF3C E4DB9CE98E2B1DD10F21A0717E5E69694C514BF8D5F4E2BCE859A035DF080030 75C5109F898D7ECDC46559A1B312AD723585048D44006BD7390AB0E3183922C9 853A204FC7DE2392905875FC28D07872F48FED6A87F4CDA130B13E566F44104B A1B29DD36486C75C130C90099A0630123392C599C95C2D501F8A38228AAE8043 FC64B26BF9E44951C3D22F573199F680F53FFF63F26AFD3D27BEC0995E743FAA 61D171FD86415C97E0C22F0D1816C6D921833C95DF6C500D819E8390F2A8FCD9 4D79AA6D37B5EC0F5E9648ED20C23EB154FC0D71D944295CF071AF86BABD7133 1F70B205B025BA19592318613EE93B4BCB7CA05C9B5ED07449D9F724E747426D F6510290BE7C297838CE624E0857AFA55B4E52E035C02B9F746550DF9DA8C6AA 99A45B5DEABA8FBADC014CBC0FB8C671B76529F52DED96F7EAB8AB7C8BA1ABED FD384942C03C32EE249D4550235FD56FB84E126674010EE3696D11291F2E3F06 359FB2DF0ADCD617CE2040752BF94A98902E608264DED8C3241F09E80F1628BF F1109DA71D85A35F40871DD6EDDB2FE7FCB31505C0313797A2C62016519BEF23 B160A29C618F5C19FB751B46C7972BDAE3C044E0BBD0FFCFB0E48F77266B06B7 56BACEB5FCD36A0F153536DAD78AFA2BED5D5C4A91CCC4E24C50984C346A441E 0D4C2689943C2836FB593DA7C108DB15C18BCB8BB846C142D9AA712E3305DE9A 02A8B5684BEF87D9D231C885FC0E8FC3DC0FD24606E68F9F622CEC90F4E09F25 D875B88F403D6A88CDF4E0C8D41C64B9B1DEB72F0E9058EDB8EF222CAC2C775B 6964AEA57F562C969C92D66E1D78562AE2A9B800166E14E49DF641E5329F12B7 A6EAA0358C8502BCBDF10E7427ED7C134AB29DCECEA5328F92AA2E5B0B2D36B7 0B46A1469509A5FE8968FE5781736971FC1E8DA934451F042794A2BE867D0073 27F013BDB90ED2A09250644E264DEA1AC0EA512125DC02C129DC28D382B62F4B 33FBC084BCDA392D101B9013DE10F7D373086CDA1695792B27DF511737295492 414A8646D7AEA86128D6C6694EDA54D20495E9A9B8C7F83640CF8BA901ACE6D4 E3F37AD75C34B8F016330F620A32CABC12C385BF87D2DB985AB9D2D04DB25B1D EA0090B833A47CC84A418D8B59FB37BB3F6B76D5CA30DAA2A9B6996A10D260E7 E5F6EE3D8DF80675BB385D300EAA72C87D985162D53910DE1DA60560F84973A8 47723B615D4661F3C7F23CA7363FFDBF3675ABF732FB41F87A6D9B9D3C3D9990 F966A842ED69CA1EEB0C5068E13167980B27C6E1FE10E8C7049F51BB406FC955 99776889FDC65B123B3BABC2709CDBADBD484E787AEA66368993EB6B1BC6D352 5A0ABEFDE8A19951520413B387258AE60CF6CE44512DFA273908512CFC05C613 ECFD8FFD09525C63116A454C568A6720526F07AAA545FD1CA4175840D5D2BD3E 272043E373EF35BF4133E260320CB39E191970C0F0E81DBEFC7AA97D3CAC875F 3B157CA31D94764FD69135A831510CFBB081D7E78C44DEAEF007F7421EC91B23 3C05CA8359BBDD2767549450C6803B603B312979604965FF72E535607DB32A00 1779973DEAB1CFF05FE0BED476C58E78B6C552479B1E51C74F3BE16F39C0B59D 10758E47568E9B618529F7CD8EA0B8653AFD5AA0B09CF40B13314B799C88E400 E64E17114BC26ECF6BCBF8E6854D2A19023CA8CFEF8F05125F9C02CEECAE7C8D DB5A98A399C67A7C91C3829D53261D0357958DBC39F489B53D38365EF5D68BBA C5D36BC620745B025E73058891B132813436BF310FAAA7C59E5FFF1ACEDFC536 FEEC11761AA1C58AE14B6BDFCF6287C6A021B890A6F2C3D83ED30E2ED1D235E5 AD6637704C683E6C590BF2EF885BE65A9F57662C7D460A6E682AA318A0F0B811 8C265CD6598EB15ACEA0C83134A433334D9ED75A8D8990BEC5160079F35743C0 6B19887EB52456204A3287AB7F83C3DA42175C6E4DF9AD2EFB5C64A4540945AF 93349393FD46A564338A1938B68C63609958A8ACFA23E89AD66951B38D2BF2A7 F25AE31A3F2470C2421233785C05E9DD3ABAD577B0BCD935ACAF0B37C605D33C 697E2F45ABEDA3D2B57BAC1D33869732B8D74739245C033D5F219D3B595EB20F D6BB9C8F254A0E2C74EA2BD190DD3F8C74DBA0172ABDEF2205018B8F59B8C5E3 EA0F55620CA9E8A6AF1BEB028C59AAD56927B1E62B3E601BF9A67FA71C12E56C AE7101B44536951E6310D4BDFAE3F3F6A3A513399CFA328AB7B166C4CD50983B C9112441BB2A5F77E281FF269C4EECE035BB6FFA539CE6F90542E9E515490079 815C2000B856C14AC12D76311B226FCEB33E58A669E704123CC218A3E114BDEA 9D5EC6EE4DBCBE8F6FE5C750A22A085457D328A97C303CE1B45F5A16DE3C1E4B A1EB8855CB3CBF95B91812DFEB7CA54809A9043342FD9AAC09E009A96EF2616F BA33610DA9AFCC964BE97F446E05EFBF70A95930B134C8814ED22A98E76065C1 E5A924A8EF260A5FC2E3684979C6DF9222B6C238DCE7FD51FE6C474F4DCCFF20 AEC625F820C9D2D361E8C82CBB687EA9986211DE163DD638770B5D939BD09C74 32A48E1EEA50FFDE5D53ADB1DDF23DFF7B1937FC003F85027E5BF9C595EFEC75 E4A47E45228D7CBAE692581563B7540BD83B56C1B7F2CEFA2C32DAC46BF91527 3C6832DA38FC4E1A981EFE9DEEB861037513DAACF197A9F912102B0E000E57A9 290B34EBA962EF056B5D654445783F58771200FDC2196BD265AB1552935B5441 366D7220441F3BDAB01CFDB18275738806749222BF3AD659EC74FE5FBC3F327D 467666400041675BF45F760BE5DEC4BFD25E82A4182EB6E92C8DA921921ACF88 199A21FDE723CB6E3FAB920166B3E6BA045843CABA33A99CA81133824FEAB552 0BD35E4C6E1568867BB7D22B9ED1267705347DDF6E07B80289960F57257202DB 60C784F457311BC62D8F6BE4974964AA9D4E1497EC1E901535AFE72D7DAD09D3 AE90546E07606F89074070C20E160D62D9C4CCDE61DE541E9F75BB60EA8F6B90 FB554F1F22F49F749E69FD810F201E3B2C79E9208EC811CCD51B97328307B852 A719FD86EA8B9E8CA6DFFA827DD37624A4D6FD1C8A0FE7DA7CF8BD6695623EB0 8446F12F4A43B8561B640B251388A2129D17E1B58DBC82302CF43921356DC96C 0E07E616F858161F85405BE2C68B1C0C775E38149F5020DD062FE20E98683450 48A1FE170F179F2580AFA9F9687EE9D5DD40A8902F374BD6CA37A1D48281BDF6 93209EB733C0F456414C37A5781687295244A4E86663FED1CE71E39F391C18DA CA0E9C5FC121745DAE4725EE7312BEB408845C034216407B22A304F0A7E2E088 97D14EA190CC4EE88DC77724D141B5A50A3F5E9A4566E2F8793477A954AF30AD 4411A3B5C2A458062AE89A36B9E83AD78F14A5FA4F9D3A8308FACB2DA57DC80F 7E652DC3A862AF33B5D80FD4B365FD446B357FE5A329F97841801FCF0461B712 6AD963FFBB7755DB5F1E506D36DB0AC963DB0482A5293A83A67D4A89B8AF47CC 3FA9491429E6F3137A4D6037ABE096E18B1742591682B8EF036F6E71751358ED 17FF93C052504F2659FD30DF8EBAAE7354B4EB7F506D8E155F248BA32A536C00 BA8B755D56E031E595A1B8276759694309B158CCD2D78FC37AFCFB8025D2DBEE 17991FF93E7C09B55135397A77E86211495850B3DBD091C7D41B7859835D08CF 0AE8B33EED6E4AA0656AE18670DAA3BC88E7A85599FC794A93D02DCE640A4B44 0CF9523D3BF23F1BE0D138EAA87285A10EBF40A99D85F9BC3E575CE433B3D62F 5AFA2C648E9694E35EFBF5EA314AC81C727A1D21C09F796DEF7BF44B6468FD09 13D9A2B417902FC899CA5449CBA0BBE522015196C07B08C81AA953EF9211BB56 10F02E7A6F363B7690D46317F80D8F7463EF190AAF7D093E57DE3C1350D1249C D57DC8908F86070528015813349A3B67644672851881BCB4F6CE43FF53376F80 075285776FB2BF6D3374CF514B5DA9946BC014ABBFB54C7E0676E3E4CBA9BE86 6125EF72E9C58CA1F4EBB939F46ACCC1B2F01612DF8E6B72A5B8C1F72A3001FC D5BAAE8A4A437DF2D70AFCCED406694CD0A9F1C745974FEFD29E63476BDB048F 27E64850AF042F96BFFFD3B3903C60869AB41657EE7C24B660C83D41E7A8B82E AB6FFE9C2919E4A91C05882F2A971A09196EE70772CCF4E8199570C607C80705 AD98651394CCC742D048E391EBB2D5FBCAE22D72759528F1D239185EE1A37965 5DC7A53D88C875A3ECEE8E373788CC991B61ACB6AD7863E30EF2DEECFCD5E0A8 8252B78FA2E8AA6A9433272C23534CF0E8DE3B2E3D41326BC932D2853045D5A2 83D7A2C7CAA60C3A169EF90451E62DCB47D04840C0D5153336F1F79FFFF16F3C 96BCDF33D3C54813C07AB4C7AB3FD6364C7DAB892DB301557FEF343CDF76E88A 6D39E72F39A81230BB89139C80B96EC41AC370204B8504FB88BA15B7DFF3BD74 1E3FF0F4A9CF02091CC7E1EB73071EF8539D43E0685C1474012CCB6E289E8BB4 BE24DEFEE5CEB9A8CCD78C0AA830E7B938465ECC1140D481213BF1E9E3F318B4 96AC77604311EE804B10A9C5FDC801B144AF82BBCCC3E63B027A4C344B427B56 ABD8AE83CD6836A2A624A32128393B9D463DFD28BDA1A81A0D8E75880EF3D779 8AFB3431A9C936B9E10E65F3B8A875957B66B969354B600C1F59DBA1A199AD89 2C193040C8E053C3F1EE0BB0AAAB446819939C813423F3638C6FDF3A9C1A993D AC3946217C12D9286E6CB44E9DCCBEAEDAAEF7F7DF4CCAB29A5B26E9167045CC 6B08D5B20D8896713764599CABD316B5BC7684724C6673502F83EDA7E5D330B2 639789228AB8DC8B253A1FA32C7B2171469DD7F631CE8016112905E5FE16FE50 2A429E4DA27C8D474563B87923D5234F7DE2E108955D2AB88395CB91EEB65998 B7EA0FF1615BD19451272EF2308FAE2D7159FD9A5569FC30B282D795616AC583 2F5D3D063BEC1E5EA9CED25E6483654F99BA86582579C4C79A9F1BE797F1AAEB D17D8AFBD9952817F1F42F4B142265007B7E87BD9D405FE48CFB6DD932401322 4ADE2D93BFADC2676F7251B5F286BFAFFD9A066C4CEA47FF6E68EA4AA86E63E9 50BC07AE4606FE0FFF0096C2A2EBEBCF273E8219CBEBF9223C7DBCD7EAE4A507 1BD71202427EF725949A898941CDDA00365235196D45FF7EE8C9C1100E21964A 492BA6D8EB95CF883EF5FC639326830F27E695002B639045F3452F5AAD8E01EC 52A7B828F8CFD823D8DF252A2D431F14FB7BC06C8415DD870D7D807556D370A8 2B645CB8700EFAEBB3FC3602BF8F133D4C02A0EC628B07B8F9CBED1EB815508D B694ABE9D1BF9704755E80664B5FCE2D14B6A286E2855B613DC74A6EA6F3C485 75C5B5318B4CD48EC01A688FB6A74EEC65F2FB280D6CA28BB0669F269A28E54E C812512EDE85428419DC74E534F28C94FD8F1C4439EFBB9F752A741DE445322C 13631CF72C1E32213D3F419CCF7D5A9376900CD738C30886724FA8717C37F5F4 B8984D9B6B852160C3C9BA0642B51F56F4B51B911023131B7600D536BF43A792 AC86522BAA112B4A0F700337842A97EE4E7F033DFA86417F63F7989A5E5C7EC2 FAF74B873276A06C1D3C7520411546BAAF77BFE44B95A949682B071D4CD8C550 C1283DB2E1B3A8653E49E557350580D110A8145F471FCF983F5FAA30150323B5 1BBF6CCD830C825440DE3901C09C3A66F5EB3C7177F4A0C7CC7460F5147D45CB 424E0E76A30F5E1CE54AE464C451640F1195EC9542E924D406C36A8E66EF1A31 3E31A0C59DAA434AA89A064A9FB9D121614D101A346A2030C6D8D24058AE8080 D46A96B497E8A7FD62F269766F0D3B4EAD799E615ECC62D79757AA6466FF544A 53077B809F71CEC4282072A16ED7AB5292622D118F18DB6587EC8DE6D1580E56 8E8F3534E066F29B21F5F1016BD4E9C5636991670F6E4B1435396C4525113484 269BDA54E3C73850E860AA91839D038ED7CB7CDBC967BC654D778588DFE2FD38 7F74ACA63C713032C3501C39A9BA928B447AB04CD07795522AFC6A4CA1D701AB 9D656901FC47585727C12F16E867496FE96ECA096D1E208538739670F3378669 7F0555E04146DF3A066B5ECE33BA759C385F9926CACE9C2D9F383DF252AF753B 389447B46762B89B17FBBF7A0014BF5A72CE2B6B702A1901A6757CE8512E5A40 93B577F9766B8979CAF83EE4F3C02756672045BFEBD74F1F86047E8A6B79AA67 3F6DF3754972270D3BF0FB03AD37CCA087D4CC0164FCD7BF04E18B12E48E5BCD A049E4364DC590C597E01C02D290F5D5758B6B206FE6B648010F00ABE92A3C51 00EC03DF6535E6D7DA9C64B3B46D9F65630E73F8D17179BC58C10348E69C70DE 536A0CDD99CDB34FAF69A64615726E4D8B8449D3EB83B7E13E39D087A55691C8 2FB45F5ADA40B0A3964BBA83F8988039DDBD65176669AFC4E5352E34FAA985D1 CB47440014F30DA763BCA8A591D41359BAB51B995134537E61E5BB77C56FDFAD BC000D7B1351919FDB0FF71656CE56C23435A1AA124237A9BED8A6B24D988B81 BCF86639E8E72D30E854628DC5B459B4697EF6C7367EC63BAF84D31EB05056B4 E3635089F188AC0C591F66241E746D19A633A3F17059CC9D324D83113528BE81 12A2D0D52046E12FFAEF0D4A9B92CB662B56227C4A48D1DC209C9259BB0A615F 1A6B1216D3614A173BFDD599A271A5D38CF7CDBF27FCC9C7E164F68DB145E4F5 D7B8FE55D10576568262B2289B2B01AACEAC4E8201A9915A112F512A526EBF72 EE2C15E931D5365B2FC26FAF98A4AEB25E172643FA8589D6246FA6079F46F2F7 C41C5433B5ADBC187846A6377C14CF9B228F85F16964B4EB4092B9BA43924E61 AD085C0A6076861D2338EAF3DA1DFFCD79F9E23919F2B529F2 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.0: CMR10 003.002 %%Title: CMR10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMR10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup /UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMR10 def /FontBBox {-40 -250 1009 750 }readonly def /UniqueID 5000793 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR10.) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 50 /two put dup 51 /three put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 91 /bracketleft put dup 93 /bracketright put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8 569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079 24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A 2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944 8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E 3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26 D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24 D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B 03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685 767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A 8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E 94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004 22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7 72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C 8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491 344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A 64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B 07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC 1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8 78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51 CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120 7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782 BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462 4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A 5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622 4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE 0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5 C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904 314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029 EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13 DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084 7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91 1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155 69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5 7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67 CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D 38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3 22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C 0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1 BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D 4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F 3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE 15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9 849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3 FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84 4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76 1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798 84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF 7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122 CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA 4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B 3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394 F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140 DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7 D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886 56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4 8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53 59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED 49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86 87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B 8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60 C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342 D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64 D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1 F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178 0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B 5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448 229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC 17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4 01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616 F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662 3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0 689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20 4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03 DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D 364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F 7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F 26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1 43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD 8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7 C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08 94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5 C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1 B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56 4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5 7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01 204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56 7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6 279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346 CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A 65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78 BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285 6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7 B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3 63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89 4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6 67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A 5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9 C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C 9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51 963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0 D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B 72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358 8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB 3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0 668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152 ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5 69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118 C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754 3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13 407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01 11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF 2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87 4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40 2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF 9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889 CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8 DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973 0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362 5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7 9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2 09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A 2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2 AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420 324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786 486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660 52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5 9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3 4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7 BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14 6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0 B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359 16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6 546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED 6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507 559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354 04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B 7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A 8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02 94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC 41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654 7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5 18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76 9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD E70CD6C3A70E612D90472C3FE345B5EEC8BB0B9B743486E0A3C688F3AB16BC0F 31984C055AC823DF21A5EEBA2B0723A52F65CB925BDA5C182F657BFF483CFC9E 1D0D4D02C511580BA2788C932D6C9CDF821CE5A87CD929283CE90F64203BE13F 70E16F9FECB42418BEBA175470843F85B54768299853577796D136C5C3EB9E38 3F860567CD4729AAF9B80ECC6BFEBE25392DD3720C587796C7932CD4D6AC1263 C46953DAED7A0061A540F22CB81BC3816E6267EAF272ADCD6196E6FDF82F6D92 A3F11C7EA1FEE81E07AD6ED1D2D72D9F57A11CDC27CCFF840792065DE796F5C3 BA6E6CD5AA138B168C23814295B0BCA19AAC35524B5C1B8CFA5229C6CA9C8BB7 B082707B2B06C93037B06DD775397C844678989C902067EC814CCC3E5A5BA3EC EE5920BBAFFF7CBB603DE772DED3D1ABF4E5EDAABB95B187A4643893395C4BB1 75F1BBD94774EB71799DADD1A6BE6D49998860482B626C62849BB0B056B9A633 9D5B4AFAE1B7D87F43426B6437127406DFBCA4B2CB226B7B79D0C98F360AA384 A8CDF19D5E0F6F21CC05DA1CE1392F29895BE53E4212079FB2A579A5038A6C4D C8807DF5F6C137D67B87CB0EB1B57A12A01938185F1DEE52D5F739D1CFDD9459 D56F70F74EE43CD621EC0332FA04C6BE2BB3D65C4B163F6474C4EFE61F9F8E88 832737186037F9E5AB161B8A23395D3A6E168B7BC85A1F6D3F7CDA424750AF82 61DD0D6D0FACC20C8DEDDE1923AAFFB416FB3029ADCFE6F26BBCBCAB0832EF07 3E3505C3EBA20AC324DEB562336583AD867FDE092F721A2EE6D3DE9636A134F6 3E238F4033FE4B56D74AD399FE6C8B585758BFE6AFFB473C9A97C6FFE58460C8 F3EEB5DA8E4B3F9DA87979FA4F2C4F6A7635B85ECFF0EDC53F9BA05CCDC30EE7 35024EC60AB475EAE8B46CA1410D0816204A12944A21069ED4EB4830E59FBBCF FA19B1E38BD1C2DCE2D5EDC292154DADB720531BABB5B624D8D3CEB7C2BFEBDE 0EA978F8FADAC13FEAF57217EC5D2C4770A8B1388B46CCD4C8D2B5A8AEEF6559 03067A93D659C3717828BD648CCDA44DB60FBDB1ED05D82BA5229E9F8D2355BD D4CDC2A6113B52EE646AEC03D8E6C92E6E77728539C29DA1F2D33041FFA0E960 FED469EF4E794EF6D6327F1ED1D68B7B80E19E6AEE1FE8A40081B4B0676C7D75 D2C19E88CF11D2E7FBC549DC3387603AFB76B55C1042126505FBFDA3A475C00B 649A6C2FA176A52C29604D8FB9559C0599CAE7CA46CF48FC3EF31FEE063BF60E C48EA9B1D5A152AAC15051734980ED71CA2EB6E3606CD3FDBB6EFEAED5C16287 F5EAF34410957434E3D15B0899D7284AF8F1FCCD4C369F352A2D1AB2DC654D61 B3CD3760AAE7D6885411FA073320908E23E6C11A20D39617FBEBFCD27897E296 0E90654BFB6FEF2564EC53FD3200E3E2CEA43586D0F26F36D5E1DE014DE7ED85 AB509440C4F793A19108FC8003FC80D50F7278EA5B19359EBAB21B31881461F1 1238EADD3C52B5C678237AA1DE5D9A44BE33FD840C2EABB233014C5E4B546CEC 44E1503B71DD0199817A62DBA8689EEBEFE2E1D49B762299AAC1124940A24F71 36F61FB7E3A4EC0E3BFFB82EC06CB3DC2BBF994BDC2765FA9C844F55CBB262FB 3DC02C369EDD6F43E24019E5B28F64287C9098DFF0B161BECBB894737B8725A7 D942AF24D3B334211B34281612FD785F836B90E0FF07DD6726B974C65470A8E3 617FD5D271E9E629110F0EFFC42DEE42F52C7EC4136FA8D4A568F25E119E9CEA 9963B19A1A6B538EAD3C42498A0752AD6E42B6B5B27349D56D59A87451E6F627 65F766F95B7D3E1C5A6495EF422FD15F49821E73F8FF31ABCE733B940FD8B570 178ABAFDBE17511A1E8BB9D2E02593FC4A10C1FA79DD29D3D5592A33B5296EA7 03BCA32C5529DC5604E49696695B3FE4525644DF0F6D18645AD9153CE2A4757F 6F158F4BECC1DD57844DE6963CEC597BCF59A563B4BE5B7CE168615C794811A6 3BF06D707346A416032A053503FCB0E2D4679447FDCF0B88582CA061B61EC887 5627627FB45D810F6E55939412BF8CD6A500091E3C7B624976B367A0A6CBC6C4 76AE2C49B0DF3ACE9575D261C7B2B3E53ADEC875B68A406E137F4B3DB490ACE2 5B21A879FE63B28FF757C67248895D06AADDE6A9DB3BB1C126555A9BB2421860 1F43BE6D7A0343C4ECFB6BE080971B4D42E296EDE860024849579EBBBC1BFDA0 EB4BF18308B988951F55F9069CD8F5754D8AA80CD8893237B9583768198AF9E8 85D3BA71A357931F9E9021F527F00B0D1B5CB69AABEE6D6D36E7894A67C12058 31AB075688FCDD9E3DB47A96B5E52E26B2D53FDD542F53BA0090883FB6B74366 12D362A9097A8EB0B8521EB5E42903FDA8C7A1BDA5DE651DD30C26E45B5C0CD4 CC0BF5681889950517F33DCAE31740F15C3D8DFED88407A9F40624EEC4017504 F8754E8F713A9BB47F671638DBC9A8BBB0AEC262CEBCB091F10287017B8429C2 3AE0E328D4FDC5C220D92E5C9D7A5F06E16324F7CBFDFD4E4871D3553BDC026F 5C0E4F3DBCFF956396E26D35E51F4CC100951AFCC6CF5E998A88F7880A40A22E 23CB2C3AF8EACD64AC1D89D348047FC0A2F81081123E7B81D0C526EF9DCFC7C0 2139AE5A363894FB3F9B2B0EC6DC2C35AC91CD3031DABB1EDF6BE7748E79E4DE 281028948961B304696DDC7CC83F6ED3D83C3A6A7872F5BA6BB6E82D5D546EC8 F77ED3B2CE446916F8DADB548DD1C02AE2960F785B6B47186557655BF8522944 872A4B47034E37D67FB508CA6367785A4C287936BB558A004FFD5147A7F7C042 76C2FEE0F6A1AF648C045F182499886481A355798BB77772895D111A8AD2EE9C 585B44B41BC1E8505CEEF36B4A17C43D7BBC0AC09D64498C17907ED4AC83734C AE8716794835FCFDCA67140B2F50FD97666B5D89D59746FE1C1FEF9D348DDBB3 FC759EBE09D01CFD003ABA2A934B8891622261FF9183AA9B769319082975B9A2 7E228A9114AA9917E81CB11226193492458BEBC4E75F2F3C35B3967B862BA449 08DFFD5E33E47742F3166BCB347AC22AFAA9E6529C128907E3B7DD160965FEC8 CAEC8F90958F9B27D9E69ADA3B6C2A00352F2CA4A11952076E0CE1007444F9EB B5CB8BD68310DB81BE963D2EDB55E110E7E9B1941DED0F761F53330B7036EC47 87640AF2E71EF7CB1A6BD68A9660A88DA7DA87B35C1EFBCE32FAAC59 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.0: CMSY10 003.002 %%Title: CMSY10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMSY10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup /UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMSY10 def /FontBBox {-29 -960 1116 775 }readonly def /UniqueID 5096651 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSY10.) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /minus put dup 15 /bullet put dup 104 /angbracketleft put dup 105 /angbracketright put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0 7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81 DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91 511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6 1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD 028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86 1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4 3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021 91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2 E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A 11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97 C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857 D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20 B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3 93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F 10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D 7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B 491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6 019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6 915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36 356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0 5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D 9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64 3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1 FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252 720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5 D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726 BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5 7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377 DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56 AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7 A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E 0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743 AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18 CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023 0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD 5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B 5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB 54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809 E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906 4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378 4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4 038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4 B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308 5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837 A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD 2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246 455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03 16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C 16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F 483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352 67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2 3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472 1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770 93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA 051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B 8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4 8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436 6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0 06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7 84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0 D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6 DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB 0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD 8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34 754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406 1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05 CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523 1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F 153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02 905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718 617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2 8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A 98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278 53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B 888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D 052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501 A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F 07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56 B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672 10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2 CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D 3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12 D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F 849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16 648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE 84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA 2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD 2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204 9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0 B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7 135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939 C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782 7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0 4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2 9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171 050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486 3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271 C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8 843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342 CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50 3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175 19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946 FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0 17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6 8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003 F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194 1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E 4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194 2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929 9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593 E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB 8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027 04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5 C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404 ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C 4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909 84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6 C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6 09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777 D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503 56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF 035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333 CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663 B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B 0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9 33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6 4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E 2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5 88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37 17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0 55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50 2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3 406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8 AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B 60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388 C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6 5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50 822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E 94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02 D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA 343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE 894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5 DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327 DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F 8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324 A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270 E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947 DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC 4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653 5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1 02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8 88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70B15A0 657F5ED27D204449A841ED19E01432CFFE928E921321113780D036D34F2797DE D4459CFD15BB117B5C9745EF3CD2B296D91FAD48C80B136D94476967E255F808 AD2B5D522ADEC64176833756510391815A1D4A8DA1D0AEE7CAD36A1D161889F2 3347D5B6BC503300FDDD48F594F391D5FB42C42113C538E707C16EE24A3F375E 7C506E8F49CE50FF9DEF3B4A4C1BEB3848EAA3477349833BA22D2A9012287D8B A8C4CB4307A1188ACC0E6E9338E1559BE5FAFF381BD82A6C71C267409468B3C0 2C1A29F4281D565836EAE57F680490FEA4A952FF64C8CD11C377C294DCD1EC25 CEFB2B6DCE959D0208F85B6E32E9B44FD455F9B134A5306D95EA29F37BB8B86D 9E592159338E1293F449380E13C21AE42E6E371B75D78AA87381B96012E722B1 3E1628DC89D9009FB38D9984AECC3367A8436F03DD58F85DD4971868D7949E02 6CB56141AFFBA6D3A542E3F222158E78F578DE2BF54778D2ED73BC39327DFE8C CB65DFA3764417795ACEB160747229B1A13467CEE339DA1AC22C70F56C702593 9BFA8EC84CC5F57B650581E5A7AB44288B5F8170AFF4BA0F97E295E7FEBDFADF ADDC5ECB8D6CF29DA2B1D8AF089CD17BC000352F0532CE87A6052C9327FB8671 DC9F1B6E37123FD610322844668B8842AAAA625BB7C9AF36D2769A22090CC99B 68BE6DA6DABE95277F4696DA0B94DCFE825BDD398B76AFE00EE2425A61B39469 9CD678379D64EC58AA80951702D0F204F27885A4312210BEB43DA238F0D82B9E 36BD3ECF25CF90DAC3A6BD4589EF0DEA7FB8824C7A0F3CFE6AFD5ADBBA7374BD A4220A5EC09521C7D426404CCDB65E4EB060425E6C97068483D77D25954E3AAA BD6996E9D95EB5297553A836B78ACDC01DFC64A9DB87F5FE4F0AF58B0A45C7E2 DEB411E23457AAFF03CC8F58ACAF95F05423220E67EC348F8B94BF0DB0554F2D A1F77DEF0C1D5AB1FA1839402526A4D95107735B29D62CB5407B938897D34B74 F090228D33F16FD47CE572BB2668D3CE067ABAA04F6188E4723A14A62DC777B4 5F55D92B909E2CEC2B1CEFF00B0859BE86D8F6F358AAA4B0A7C6A698A8DC7FED 1226A7A4F8BAF33AE8885460D08E186DF4747D1E22A271E48F0150D6C2CF0F67 679AEE193F8CEE99F8733D23AAD1FBEB677A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: SFTI0900 %!FontType1-1.0: SFTI0900 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecti0900, tcti0900, lati0900, lbti0900, lcti0900, rxti0900. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Italic) def /FamilyName (Computer Modern) def /ItalicAngle -14.04 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFTI0900 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-100 -321 1455 932}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F267FFC21CA3EFEB150524EBD7FB96FC46ABE1FE 3517C9B7DB008441A805A44281148F3C0BC69CF9E877B6EED791E8BD0593D57B F4F87FA2E6304D90B64B7AD78B864A2B9EE393BCA75C88EEC89DFDDBE69B5E6A 6EC913392AD1489285963B81D2A4B5C7744F2672D08F9326EBE79D9F85F4DB12 C3B590E54E62DA8C2BAF3838408A1894243F7BE59FC5CF9D634FF77463C34FDF 7569BB3347073DAB432C2CDB23E611369F74600E4F6B7DAC83C08EA25A60336E 6467284EBF7A9473457B85178FE0DAED32483B43BE521ADCC434C3F489D31941 0A99B4E71021E275CA487F6552C1D5D48919908158E6C65AAB65DBE998B79EA9 355F35CC3EB94327E4204737CE15E79E0D921A9E52BF4D9C8CA2FA2725147413 CE566DC74DC10766D50B331E73CF4B0AD949F7C1C1C1E808B2B726A5B5949DBE 4026A8BE859D988B6047BF9FE695A29F606A973F6506AFF4CF86ECCC70CCF0FE 58AAF6B7665F15469E8164FB17CEF64BD05D1B33A59AE5F5FBA4979DFE53BF8C F3287E2E67BF161F8FBE9E12998D7873E03C60D92149A3C38813884D5E9A2B64 80F684125795F99102019701287F777183BD87FDD1949F5E63E9B2C2997EB638 A9112133B58BD5C274FF2F16743ACDDD97DE08DA6B4BADDA3B6393C4C81FC425 BB40322DB5D192A2967EC6946489EA8680CF41F12736824870F2A4C5A3974E5E 96D2D9520C4761483BB6061BE850B20664003E0D1366574B04DF74AEE90A78D3 061F5B87BFECA7303B071A56F5D92E0386C8285E75C03EB1B58E4D46811B6463 598D8E50FA879014528DC58787A9DCBA578286B856591504F8E464FC6E82E57E 49B7385EE2E22A73C2580EF426EEE502F372B49A699B6B9ABD173B9545247674 D8853C2E8CF493676DE50254A1B984FBF893B77CF01347412F1277CD2B1A84A0 1C69B3D6007F8981ADA0479DCFF96E810F97D5317B41CFD13552041696E9F306 BF25B2FC0A4EFDC5C30D3A59644C302D4B1F64E0EFF38357C8EE45C93E83A2F8 6BCA507EF983AB01D8D64F564FC007EC71A049E04049B8C28C8190A253170E3F 100A4BE40B2B951CCD2E433F80CDA52DCCE609E4E94C3F932726324BDD9AF5E3 96488CF1F7099B6A2639D2F2ED497FDDD21F38A47990213258C6FDD7721B05FC 1218B3A26323F36019D35075287357626D2DA98ED047B3E52E6FB1E6E8EE3FE3 54B64D87C7DF67F88411492F8E8FD690F7A9C20C8DE516D180105157A3F88AD5 DA3108A291A0A1B0D7A19B6746F63621D89512D1C2A90FF6AB0F4991F64B5312 831BB480D0AB2D7BF0680EA148387E259C301ACB34D07B0846A34930E94979CF DC16F4BB8759AFEF42B5208210E69BBCBFBC1C182978D99464D7F152BD242CC5 B03E2614541891B78E0C50E70FA661252DC9A126E05405DCE841E6F2FEB88BC2 A0282E4037CCE936BB40705A4A81F46A0C5A28D9DF31CA0AF4D10E041FF814B0 BDD64102B58A59D7A62F09FA2808AEFDE0FE43C21C24530AD38FBAC64693620C 756F7A35435C2C2AE0B23482FBDF9A818A89D13CC66D6FB986F4146D0287D2FB 499611EE3DBCA777AC4C2130891DF7D24ED2B44018C9EB0B1AFF3AFE26812BE4 0E86B53FF382042F8031123FDAC9A7A4D05BECD1A258B0E7B3240450139C33AE 368BE204681EF627A2AD795280467D102CD98D08CB83BB3F1E1221C505625BB4 E3BB98F555FE41A893458DC6EBAACA336C378E1C5DC3B29A1E32289F3ED3C004 569B30AA0B6E310854C805DE5D2E6A2F2545B0CD8B50EEF72F28289164587DBA 6DDA6D6D4EEC20824BD4C9C3C8E9DC579A88382610275D0131A3EF0CE593EC8C 41287741B5E64B0E98E04D3AB9A56735CE9C54D9A82D9A43BF16B7DBA0D64874 814683DA17825376C9716FAD6E53F54BAB6D3829BD9E5029B6C03909726B9F31 74BF88E4B7CE8F110BC5414F45164F9ABCA217E5515DBB6667A37C660D097E7D F2FE9DB668E9056D5FAA7A1D3D46EE22BE0725E3C0DF14AB47FBF3F00E44B1C9 080EE75AFE94913335C79AE822AE4FD4556D2EDAE6DC038F50202EF5ECC66C5F D2C667ABD7922E56CD809CB4B2A8C020E908B6A6D8ED8670C6C30CC08F3E82DF BC1BC68973964AB81D03873F2F99362BCCB73A9B97542CDDFAA14A9E54D629A4 48233A62204C13DAC4CC64553050398E8C71EE3AEFB793B2A86C62DF0BA9C29C 80C6A1797019CD90C609820855DAEC77460A589AF94A5018BB43A26050335EE3 B76239128E7869950B22728A985B45D451A1740E3629132D9D72F347F1B35EB9 C623D410939938B4FE9DEFF7657E6351D13B1B0F9703FE05CEDF9A9A8B903750 E67AE65EA617F893514050001743069B6601F291D76497FD980779295CA75750 165C4DA08A49FB435D45726CFD9F6A414486768DA51F760827A10A9ADDA18339 E60749C218E063B395DC808DF8D245A860D59BF6213A632E31094B2137965FD1 A2148730352AF582A0C268DFBDA71C0994A19EADDDD7E10A9FB7871A07AB5B9D B1BF441245C196E89418762D493D55A4C325DCEF4E053C9A36A1E1E5B4F18D81 80F8CEC8D840B436217E4E46BFFDAD1988300EAC3064219D4268FEF903401B6D 1B0C3D748D074C0ADFD77DA81E564B947D7E456001D08AA572CBD02D6783DA3A DA12398C2E26CCD13647A126D502AF7AB508F5A3FA7DC9771465E286439FAB51 DD48344E9DD19EC876CF68DE129DAB52394D2B2CA27C4CDEAC85C5C063A75E14 0ACA9A6328F2E208198BE3BF835FFCACE711A8BE1AE06231CEE08ECF2D5037C3 37BB10FE6EF27770625E4A40AF22090580A4CE7CE922E05D9913BFA700C1022B 64B479968F05C3924C983D71D61E2A383FBB0BD702797B386F24D9499CEB3C95 22F47D6FDD7BF7665D5474985793D8617AC836F35BD6232B0B7BC538FAD877C8 818CEC5F7D18EA999EDAFAC55A6E44BB516A035D0944FFFE300A66ACC4B8267C BC68A3113D17671E157B9228EFAD6A93542B26C28A9D9D736D429E91FE1AA113 5714F97B739EF23FAF2766D7235020D29BB99B3564DABBFB489A5D5A12D79F31 3731E55AD3ED32F461E52B04E00AAB1ADB2DEE1D224BB5AC76835D94E3FE7A9B 689A95BC2D1537C70FAAB3CE8903141AC572A9ADC1D305CD666B0C5D66E40AE2 5E65EC52D44FDCC4EBA62552F92DC3567F66D9CA8C2CA5031ADE35C2E6BBCE3B 73DA616762A38358EF44094D46A0D8ECFFDB92736218FB1B21A18EF7B52D3575 DA03DEDBC4271DD6770B1AB3D1E77AAC44CF3C72C12D253EF14404C0F61C4570 3F9A5FB3EDF22032E7CDDEB5917512CC4E05B2785F324224C5942900263F23EF 1F43BF734B16AB45A7B99B6EE2900C4AAA1677A4EA18CE93A465A8D52755B1E4 B70993AA5DDE077781A9E49595D7EA43723641BCEE7E6ED9264D4F5657D45BE2 E361B4419996E7B389612CFB082C31A07DD108E16AA60CB0F9BDF60A3862F71E B7CDCE9101E9D2276CCACFB36B9EC5EEDC962D92ED0E290470AA64535A61B22E 33575F367C2DD31C0A36823DC364060DB155C164BE87092F70FEB8CC1EFD7489 94A16F6C2EDFECB5F6E45594299C65967C51EABCD91439DDC3F3CD9DD6C6F57D 6D9CAAC5284BC708E86EDE45C3A9B18AB5FAFCA8AB988D1F21256C5B1A1D5D23 945A2563ED5970F7520B2692F52DF89CCC70DC8FCED3E982EDDDEF6F60649905 2925A92942B5CF2987FCE20479ED81767ADBA230CEA0F5B50B890B00F390EAC3 71D536EF4695B6CA573651432886AA19931690915FB719561D54AC913CBE6573 1A4F478A2811CA7986436F2250AE905236E9A76D03A2A205652EA12973FAF44D 37A4245F13E1758587FEE1026815BC62AC7B386C4F337B3140307F2F2A9FFB37 3928A47DB3F7AFB2992E6CB41957431BBA71298A65B349B695304F083AC61795 48EA9BAED5D6F05FF164B01B822780D96A595F1E04E3EF1FE936CFCCA8C3FE24 74E6CCF8DEB17FF0E88C7F528859DE04DA7417CEB6C5741C102B67D10868CF95 7A2F7BEF0F076701D488296CE28432B97C5F79B80DA2BF3DD90336992D6E79EC 1E996F9572E44B0F0FA06D335B1565CCE8AFB0BF8E4F10510DCA320686B9ECF3 CBE5F97EE7FA05CC52E690F1640E1E4BDF9F7250D90FBD295195E4B64A95F4DA 2B17DEDFC6A6C652186D61E42E4B77D4E5124EB1A13FAB9CE36C5BD429BA1A16 C9D75747F810910B7750116063CD32ECC06866252EF51C0322297B2A88B1A435 BB37B7665EA3BD2558215B49AC3C1E9CB84E53FEA589276A74245846A3C7C30A 6584BED26C70760A44543DB5E4CC2C47C553034617EBA7AFDF7F548C92DCC4D4 9B163B6FDEE1C4819E4DA74243A84E633F794B597CEAE564A730A7DEE722918F ED191327AEDE5D6A7CE8BE5F379D4F36BB1C76735F3E928F9326A2D989A86EAC FA14221F9ACFEC52FD5CF7F52BA12BB1C6278477BC1D03FB876D57C4F0B4C145 FC7A03C8A0F37E517AE25C041E338B9C127E4B1E0B5AA0AC4332A2608075037B CCFFD81EFEC9ED8B48DC0CCAD9B4FF755BB116253F728AB67AA3ACC8485525EF B3747F4997D9079C10E2B962DD20FBE110BE6274895A3FF937C6CB18821BB272 1D46570B72CBBF7E0FBE8CCB7364319D546D95E0066529F2381A3981955A38D2 8C32FE268EBEEB07385246B6E9DA84BA6BE4D7AF1225A2B81845872A81CEC34D 9BF2ADBD8D0F0DEEFD2B24F2D10F52D92DABB6B850AB82D47677C28C69BBE333 A7D198D4A7E85831C494156F84B77C8EBFC881A409AB8EEA6A55450CEE728B74 EBDBE7A9501B47EEC5A4833F218E84FD7CB5968A3848CCF8F8244EC5F2F51246 6F8ECDA6041A2C3053D4FCE859643E3838A0B1C0322CCB71BAEE92668FF0C733 FC077660EF787F541D2CFD8BDF8A180D499810014C31481600E7B5CDFDCE2D73 7B6AC1A090A7AAA994763A8DA3B3517ADD9D9B8D2732EDA8600201ACA89E5F13 37EC6C84B1AFD133D3C4D429D0DC27CA3B3B0AF9B64D129211F46911B332940D E68EB5D41C502C9C098C71CBFE3F88205012CD3D2CBD017F57EC117AF693E5EF A8528CD691BB0ED4315A5AD768D438A2C189F82CD23910B38098CFD1568C4B21 07EBCF1F9F8A0B9FEBE110796DA873898332BB64448D3A0B57C6F7B9E1CB18B2 010FC17451787F8EE50675DF3F7359574B2BDED2538C0B51DF8017BA63096272 B30D49824358CB66C7E7EE391F360A90A10C3299FD37734AEDC07CC034F83EEA CD892D6F66BE3CE26BA9A285DE6989BD2AE8EA6BF831DB6A568B0621DDCA88B0 3E179D01C3B303C68563F3F2243C0679345EFD56307165AEDF16E01AE7013FB7 D423E7967506C61DF1ECDE0A308FEB8FE6B8B85F316CB98B5BC6C000DE6EE770 58C6E834DB38430622F9D743F683C16D0A15F793D64CFAC2FE47D6D3A4545C93 AB91FDFF5F22F734DC4BF8E9D019B06C0AED9C312CD8EE5A583B4E98B9DC2F8C 0A3D30A79A6BAE9443A79677022409B7B1AFF6F1F3A0B339DB97072D6A36BECC F3785F8A2DC03A1B36011AD17150D9DDFC74A51427BDD6585160FCC5A9ACC746 314C6D52635D5827D87CD65A23DD9C8B90D521A76E05770BCD506D8CD923F67F 3777161586A6D70361EDE0726E092EBC29A30A2AB3DA276B277D4F213661F2D5 50F6C643672526783F6792300CC8C57A472BAA23F18EEAC5CB33647258C95CB4 3D521F1F55475AFCFDD57E0B9202262CD3A72C5A72BE099875EB2CE6FD722EA5 AD32423C4AEE425EEF76A3EB44F341E2F1274E2F9EA886C043D0CFA62428E8A2 33B3C4BBFE15B913A83809DADFF4912D6EAC7789A24E2E273455E189047C61C4 FD71071D71B1277A5A3A64A06CE285569A38CE4BA1D64BBDD3CC93C34CDBA6BB 2FB40563B84CFD0B368356A0C964E52E882D515F287C3CBB2FDDFDC2A045D3CD E2F42CF8837484894FBC7B2DA51DF5E377BBC162ACEDEF90FF45C1568260E212 CAAB246290EEE284E48291AA2CF1FB169E4ADEB587312D3FADA311B06954C199 FDA9DCF116DDA6F9C55B7E674B9EAC2F991DB044C92E7CCA6E829BEAC72B01CB C11F9DB3CC9C894CFD88CBEAE459C27A9DADF2093C86FEE0819C3F186385EE79 D111426CA19AABE1C1606DE8C272D2A5A7F2F208AA0B7AD88F2DB4AAA2FAB8AA E23F0FC75DE2CFA64D8635BC8BAE81D60B24149461BEAB0653CE7ACACA59B918 FDD229457E0C257F512CCD5E1F43E98218B6785F27C7882DA9D0A699E733AA64 B476A72248D1152AA9B3AB8FFE856445ACA1D2302D3D74150BC790BBA1A4304B 1B63ACECF7C3D909A3F16591AEF26BC5813EA8EDB64D6E24C98D7A6D358BC277 8AB577C5BAA1DA41B9CD089176A2EE201807CB287B9E8A37B8826FC16312FA05 AB226B2FDF7D947650E4DA55CD85E5F2C85F776BA42DACC53562F44EF0FBE4EF D9D12D03A0D490FD7515686DC3079B9F15DE202D6F8BA6AD48DAFA2F2A463AF4 3DFFF5094155E742F598B11522F3693D59A2458EE4862D6C07BC29770CEF1E9A 1248B9A96F3B3FC5440F3DD5A18513E2C9B544530F8736ACE9515013E4AE8E5B 24AFB033C28C40FEF0FB0B0F65947B1B682B91D575030E5339214DDD264FD3CD 7C26F6C84C87D990149AF27F287C29FD4055EF514B554E637F4799F51B86475F 3CC7B09A45B6C583192843A71361A28CDF1B9A795AA5778E4A5AA4DBAEE0F772 26C214AA4910B6D67AE8B863082FDC66486CB43C1472FAFA7D454CF0E9CC71AB 834E7BD5B71AD7BB129FE49875A41C354AD50107820424E115596D4542E14293 680780FD0E86AC17D6629BF0F7B0D33BA8EB7129C1F444CE4E9696BA16793B11 4ABAE25C7DAEA11FC313DD36B00D620E929FE7696EA51A97C57726D34D08660A 050F6357FF3041E5D2321D9F14CAF48D1C43C7B4C40032E5385748A6ACCA0157 B0DF7DE7BA07275F8BD5395DCD566E92D6416FACD2D96B0BE6C143C758C69420 442C43FECEB710FF43C33BE4F13A201A84E23E883820E16131B170F7F1BDCC7E 2D12F65E201E9581896D3C22191A7607BE409347395BFE18FCAE34C2E59C0E85 370EE5AF9449C30EE998A6C31FBB56C6668E1375AFEE41E88F98823476FCD382 3955C3AEC37194CCF380085F19F63F56B8A5C5A2BB775DEFA25F4A8D50BBA217 9A8D9F5BA5444D00AEA32C01F50DD76557378CD7F561861C732328A1F52517DC E8A204A24A2FC36B0243190EFE2BEA4EED04B3999B814D50658FC6F5A70FEC83 2157F92C408123494D46E6776D9F4C62BD5B7098074B5EB99BE87FE10BFA7B4A BCC6DF7838F62A6CAA01A20DC0310FD083667702E4BF06F871DB941811ED3762 EBAFF185F16CFD4621575F712148834A3E0A3FB128F9C1EF4E4E016F2C36103C EC9223C029D5D7D8BF14474D60320FA0F41BC087748BEA738AF00BBFB0E47F50 12D2AE6201D25076D02FD409FABA5247D7A252F63BB7C8922183D3892A8CC337 251B70DC462ED2034880F94B09D4C60B60AB594476A8008A616251A86BFD4705 006E4AF46A8711CA38FAD877C8818CEC5F7D18EA999ED1B937B3BB141904FFB5 9BFA3B1079F7FA00CDFB40526E96273124FC33E497FC0401A9B35EB67D6892DB 1F1FC24B32B0207BF2EDA4CFF488DE6C57A348CA0BDA0FBC55BD70A934ED3B42 7B47DC8F5645248EC59890484E6D11B24859D5CB4DD7B8596F0639ABB0CB6E31 0E3EF88A19C2D4875F588ADAE512F3828DFA0A89C77596F9B90F792B245D1A1E 78890D6AB614FCA9FF17924B6F0B44397A3FC2D90A8746784F5AF4837021895B 02EA275BD2C5F910B52845251C458AD39663BACB883F4C98E8F15204A530C977 7AD0ADA929D0CB0C17E4D0C8675669A84A66320D32A8978E1AC5B1845B95BB82 D70BB7AF55833D5A5DA56EF8A06F9C98D380F11A63AC1C9A2D78A68657BF6ED1 F4BFDB27007903DC1BB18DF18028ECA3EA288E066A74236DE246D1BA054D2895 04F8A1604E2276DA7CB2E5AF20B9030D9B03214FACEC5C7B9EAA7FF340526E96 273124FC33E497FC0401A88BAAA239E6831DE034D2F4BEC784F4132F491C6A71 DEE5663A7DE663753822663BE10608B07D6C5692156BC8845DED082F6CB47188 3A72D02343FC876F9E429AD49BD46603E56A4AB04796C0B05D90A5A823129904 A5C4569A1EB57B28FD6AAACAFB7DD0E30FDFEB9A4DE604AD79492967A8A7ACCC 98A39B4F001E79E93ACB2D392D67E486248EF7364E57AA3CEE39F00379C736D0 7A87F9D1DC5C0F9B779B3D0B218998C7D516C3D8624546CD48B81D2C7BE554AD 7B9F50285AB5E6C6BCF633BC9D6A33D38AFB5B44EC192B59A1D6574E8217A7D2 BBE4184493FC6CD496F98E0C586514E96AB8FE3E73451C9677174F12623A09B3 C5D3AE355DF9C651AA3050C6BD03D02F64811EEFEC9A601506D570ADCFBF26C7 455590FDA7D9F63ECE5EA6C2F86AE0B1B9D76AC28A113EB472EC3A789C6A0F71 CB6F2A2D3428AD814DF36D640991A6B5B279AFA154DB3BBA8E8BC434AF4C91CD BBDF7E3C81DD470B8C5FCBB746750A9C76C5DE814B5859328180086F32282A9E 52EBFCE3616AD9FD1E2DC0BFA86407A133C23204425BD81578D8021C9DD9C420 8BDE9F29D73810612C0982882FBBF74F876028A71D8D5CEED6039F8E5D3AB45A C6C0E4C5387ED59BA65DBE9B3680EF0FC47281BA7C77834777C9E67F6F58FEDB 7E7D77240D8807439F3523074150AD1A292F9D0E9A984A2B48DA2BE265DEF0DC 4086867A2799F1C348E720992FC73BDF4D549ECAF223CEA5C7CF67246B62F561 5EA2905BCD203EBA3B15A5B89E23ABF4B54B3E3CF4B3DA84FA98DAA4AE8D45EF 0063C30691F7EC342BE9A2B01E082AC757322B1835B330914174E893EC09E9AF D6F5F177333586ADB01FDF0F5CC4E14C4B869E9E0BEFD4C463664E5211BFDF55 4A4B2777A6D776291AC5A5C68E3509FF9ED6A3AF675C93440CEDF117E571FB07 50BDAB4E519BE2E0584BEBA566A548F1F5EE7E17B7DFCBA8347351C246C8F579 148DC113671E3CC7F2ABFA020BB0E75E99962B8E8CC568814076F1BBCC6C2652 F8497F2B33F71206EA4CCD54EF4DBDDB3B1EAE1348D1FFDCEB817ACF8C4FA407 DE697D7B64805CDF84FEE60E257E31C3776C4D301405160F9A09F64F0DAD718B 0A1E8483DF729A535E00296230476A74BFEDBB37E08E183CD3F00F7979B14394 9606CA326F65DED12F4BC6817F3CD0930547609A2CF40BCC511B0EE9FBFCDC85 80550ECCB910D55B7A327DF7FC856FB85135901E2121541D767E3E92666F3EED E806A33161A33D521D72B741A76FF8EEB7F1A2565163FA4381471E7EB4BC88FA 83636E3AE03CFCD3FC01214D65A282C7C6E85A08A67F0589778EB1CE8A4B4B22 7379834A9BD01B2C7A38C7600C6F1EDE2A8F397770AB549E8E1ADA7046FC28D4 645BF52AA00CBD7DC221521756CD2DD168E308DDAD1427567D0A0CD8342D63E7 E94D1CE78A70435697908DA88113F2A9135365ACD7E6E3A36215A675565CF5D7 C8D514095FE4487251BFF26C96F29387B45786E2810C78D8CA0856DFD7C5BABC 140FB3EA85B1386693DAA9EFF6C88DB4F3C5FB45C05B128C547495398A180C7D 0D3099371E6AA729F1588ECD61A36F00490AF3970924C53B009E9EA4FDDAA23F 6250311673077594770338A896F9B4F4DD67059180E2190D80E2854107F555F2 6E20628CA7A2019685C8248E7695DF1251E5E0267EEB8D7DC98EBBF55011AD57 1064028D898DFA6D396697DE9CF67C8A86432A74EEB7D7FA8E2371457A43FE9C 2919E4ABF4A72B3BF15A00652A73AC9540C40220BFEE3390B2615D87EB3C2DBE 90C79FE24F182EA6025F680B1B4B47374E9FDCC6AB0DAC1A474F4422ECC5F69C 4B6E1D0B583CE26F23A5BD3F2D4158696DDAB1F46D02E2D3444B8C9104DFABE6 1F4165003FE0BF954414961C26596E952453318252D82BBB50568E0CBAAC98E3 C7F55081E4D5F5DA3AFE7423C35F1040F921CCAF47EA535BEBEEDC09E25B8EE2 E972DF16F6A50F6288F2CF6E93E9E71ADCB86CC4D93D9089D0D3BC15657FCE72 DDBDB349F0E346EE3163EC34C3F7364B237838C339CAF82E19413C41B247F3F1 926BB8B279AFA154DB3BBA8E8BC434AF4C91C6EB5A6A8B33B8253276096DC4F2 739898865E1BBCE3CEB9443F06D7532DA36B3979C65030FFA8956A5761C1EA60 A6C778D18919FACF281363B7DFAD216D26ED6F9FFB58620D01EAE7450F90E497 A3E146C23041CF011AD84F980FE0109EC357546996C65206CAF829A5B0927390 C4FAD4AB7CFEDCEDA260281E26E5C3ACEDE7D3EFEEAAE9DC0882892247E90CA8 3F71BE56EFB6BB37221F748E46EDE9DDF178F2F8DF0DA3FFC26DBAC05DCB1C19 80D5F134F4974AB0989355759D3C2F64C4106A74C958BADB860F1538363F33CC CA6292AD7F979465F5E9A8100E3C3FCF056D0A3FDE5B518FD143DDE55E91EB14 2771AA88C6F74BAA162A67A8127BCDC2288C122403E278DA27B2C434B8A26187 F67615D21AACC595F4D6A30CB399BC8262CFD67CA2880E21B530C3A13D9F59A6 DD573EF894401C655F722DA9E26CC84E721A361BED63ECAD0AAC6F1B527131E7 274EEEAA28E77E8CDDE677E7BAE411F7CB16BCBE5A066EB78C2A6501C887D993 0BDEA39D2A1C3562CDBBBB1EA21871D3F5A2074249BA9ACCEADC8D60295C7DBF 4D1EE1A4F7E280B79C9E74C639A6CF9548159784A8A5A74282463DA66E01A10A 19B080C993BF4B7B24AAD00AD36F3F98D6432D12EA66BAE4085C23730C0412C3 3ACCB984FF9C3880F47FEB8ADC1CACEC77F80E8303D12FEAB7D1BEE367846DA0 837725373AFDD25534FE57C583A3009739863E6362576C1C2FC4FCCD2FAF8CD0 C0D6A02A91D659501A186052BA17FEA216B1037523495184E025633AA478EF7D 37A5A4844A791FB835E2280DAF52CC7FAAC1BDF2BF28E5DC8C40FCBB2BB86ACA 3D96BE9DF5EDC736758BE529816F52BB141ADACC769352B3407AA3240D28AC0E 29CB87F380D7915876ABE3BF2D66FA7EAD71625AFA29921B12D3E111DE3FCD7A AC6231833359B4088B7F7C0C6148497BD9292751DC6F3E2CC8D8EA2B36986960 6022E520BE37193F2BA0265267DFBDA71C0994A19EADDDD7E10A9FB461FF1C2B 2344D2D031E97F899CAA8CCD678B7DD9DF5377A28BED8B83892C68B6248BD206 D73F13DD5324947DDEB019500E8FBB3E22DACBAB9737D011CCE9F0EACE9F97B0 94B9AFC76EC0905AACD87DA10C03486C16478F9669448E4F159603A6AE1E493C 4B60BCCFC2B8B267881053EAAA929A1D4FDEFDF662F04301B0B5B180667FA6D8 2701E2F69DEF9BD9E5F67CAA5658DF85B06DF35C2B0B27FC0CF8CF2D402149BF 7F3E93E768E330FE78BBE5443CD8CDC4277E4505203BA4AEFA3A93F54C7608C1 39ECFD41FA211A5DA24D8CDE080D9F71997BBD9F88E75810632BBD1ED0D17879 39E81B1CD168D60FD35F354C68FEF4CB7167484C27D012CDD65ED48A4D8EB411 B945DDE481486F921C7527B57ED21821F45AB5BE7635F44E88072BB753ADE423 1E598E605A1FE81A805E57638FCDFCD08BE0092D15E2CAD02122D488951299EC 2298C450B1508355BA04FF0151B09DFC98C8A8C9C5F9AAA6971A377FC5C5AE70 093518AD9000E3CE315A4864D1A3D926D5D0CEBC729DD7C64DC5ED77D61AC389 FCEA5C07D2599B04F7641BC2612B71BD789A66AA9FBD54205B9422384914C2D2 FAC5C1EDF87CC0865CB5187331B378752DF085E729BAA3282C78EE28FD1B2F50 DC61EBAD6C6E057691C8833553A532812F9CF856753BC9B1D39A97CB6F6AD8C9 24564CDE41B49074E88CE3A25BF9FE1356B85E15C008FFB050674B58E05684E9 A79FE1FA5F8A43CDC028313A6DBACA9BB6708FD21D3B32FB1460CE922597B235 02CA2E7BEE1751C94F7B4013DE961F7C7EE246723C7D0CD5A9C771FD477D0952 BB0D828BF269ECCFC80EAFD0986E3B0ECC51B056FAB9C164E2DC5FBFD0344A39 8BDCE559D3342D945FD5510B58C8DB20999CB4F217312D6BBBFAA8DA99C9E1AD A3D27650D8FD3137B815A5A12D22D0CCC2A45822B752AFFC111C488188135902 3983CCAB2A4224433A5AA5803061069F7B450B67A984F6CE6F529A894801EACB 55CA4EFB8DD56C84B8E93FE88134ACDB824D33486B5F50A95E167E3C5FD5ABF3 DD6C6C5DE4D90F74168861B75F4E39D600BBEDA6BDF1816FC35BA4A820A017FA 6B9191773085588A72CEACA0F9593850A637565B18E9B34804C604E50B3D261D ED65833D96C91DE1BC6B53C4BD6F5437DF852FED9789AF8B5E22E3942D6AE86C C4878535BCD86D6F193021D3B247E8EEC552365442CFEA7B9A03D1FB35548B10 E37978A7B31AA850846C6B562A1FADFBAFE2DB713F617DB098B946725566D32A 57E5E229DAFA6A47330C6025FE9299D7A74802514B2A92B310ACA0DEC1B76B2C 424F3B137A67D231D7C09F9B74DFEB8285940A1A70EADD984F27AD672FAA0AD6 4A2DBA6F6C5DA59B9DF0C24C94E84AA7A1A71D533B5B064029B4FCADE704A102 A71B0EB3CBDF30787ADABE840BD298702145F1284B85CEBC204F25220060FE23 E1DA9596D98C4D7B9B7ADE9319B2A0F95CD0323FE035136871F1151BE84B3AF4 0166011CAFA01707AEE467159F335B2D0C98151CCC48C7656B3F87A0CE1D4585 91A88B2F51957D70E8932E2A992D4D8CF7E1385139E26B4CB674810FEFAE83CF 025B89C875F6331023FBB93EAE4897DE4AE830FEC7280100B74B281A6B5305F0 2A5A73A2BAC866DB19F409D2E724345A9B30B333F1161168565E045D8E24532F 9B5B95A4D9B7310834A0C6D6DD0A7D4FF8632BDB64D22CAA5E73A63B50D27980 7C53E6376B091E16ABCE86C6EDC0FBF59D25C98CF9E0F884EB1D93F7C2B323E1 DC77108E99FC959B5DF5A8269430E4002F2319D0D5E959FA0B553B3535E17C88 839FA9E0DCDCE6AD1454DFF1C8B4AAE9F22136753A2936D4FABED6401FEB79DC 69A1F73DDBB490673720FD6A84B18D97C290149E8EEAD2457B48A70A57F67A50 FABB98956497674880272A4BBEA34AC676B1520772E5A76EEF3B3435695ECC19 A940FA065E4DE1D77040BD8AEABFBA9B57354447371F9037120976E17A967A73 75E87873F8755B70B4E6C84ED02387A9E7A2B9C45C642F239151A6E0C13ACCCC 8D13F113474D367AA58DB5F5BF37A15E2D19A2ED688710B6F9F83C5FFBC7F751 57BE45C6AFDC7013982D6EB2491A1DEEEA20769DAA8DD669C3630465995BC211 E7FF00DE5A75403B921887EE01FB7186260380BECFEFAA64556FD599C07882F3 38C40A84280D51FE61924E7FBE024354EA3C343147B6D719F24892FCBD38632F 5A01099ED01B2C7A38C7600C6F1EDE2A8F39715CEFED68CDEBD242F9223C2D15 4693DE63F267D1E351307D32FC085A1D1ECD916FCA6210B9E4DF388FE7A5F39F 303D7B74883D818664E41B76E2535EFFE243981CCE9FA807F0A58998BF5AC597 FB3680EC051E875A51B81A1512F336A834C629AC94BB8D4041DD37601E7C4920 D64C02CDBF0B7E35DEF0F728A0CB41BF1FD135A5F43E7792DE58F0DC7F1E490F 98595E29B0E239AC902E2006FEDC2E11367711A7609BB8EEBBD3459DA6CE1464 AF698CD4C3FBB0F5F128E4E336E0DBE15031624A248C26519058625F9BE81992 A6F86634CF7269042A083EDF44B4052B48EA4F7247C1544BBA54D01D2B42B398 0B97257F31C773DE4CFCBC17249F1878A8F6B2B40F5351B26973D2FAE13B1ACE E58FAD2579F35421D00B090A9C6DC9A7FA5FAE2EB6C59EDE1542F75DFC63BB01 5893E25185154195E2A174FEE7E8540E35D7100685D3C879D8B3FDF8F613D002 50CBA8C540B2E3E55C5B9D86235A2FE1817CC70EC57F21B3397716339C45BB9F 516A847395A3D68626261DC0243CC3E8FD348BC23A7C7BE835834EA385AA0F47 B446420B3F219204CA439F6734D5F9AD0026521621F41AA3D7E7FF5010ECE6AB 45071B49CC0E773E8F0F4E1CA153242AF8451166B6932A3817A1BDBE97B4C757 2F22D774804A38102629D9EFFE4BF5483EF1F775150AEB49189809007F18B42F 8448AEB32D18EE14FA03E3C5F6FDA3736BCBD01857FA517F990F0E0662DA183B 416C6F24C1445F3866110D84DB32FB41F87A61CB0715BD680651A9891B8CD040 1AD3156D4F383A3B0D9FEB53FFED2994F529E8FF519030232035CF710DAB7C41 6541C9150BDB7C63AB1CD028D4716C060CF82F494A32C7956C7ECC8F4495577C 4A8F35E8D451109CBC6334D1E384CC01116BDAA2E9ACDE3B34037F7AD8021CDE 783FE897152A0901F7BD964261F986EA6F86FB01158AD5EF92932B86F4C6B4A6 4ABE2EA5CF61A612CF18EC2476A7A7EFF533A5AB1FDA2C912562546B9BA5B14E 85D301D215AD30EBEF83F727F0476C7A9B52E1643116E662CAC5F8B14B952233 D94104173D97A7B9D96FBC174C525BD4AD8A33D72458282DCE9EF74CD4B4BA6D 44FC60C0499DD02633DE6BF6A7C81748D36423465DBA89D4C4E6FE316EA956F9 884A463F78A5D3E5F2353E996B5CF4B43B193A49C5F20DA668A7805B352B9039 F5FB23526A0BC7FC044162D6800615FF257AA9DCB5AA6D524DD56168A34F5850 033CD5F4E1162CEE05EE09C602F04B1B94E66480E493156E9F3EF25BB79D80BE A56267DA9C06B0B7F2910B9DA2AB0B256A7A4A810E6146CE35B1583F1D10AFB3 F19B1A3CF27F94968B97EB941FCF5F18CBD473D3C98E37D6B9CAFB2945DD425E E7D3D516390601E380AE88191D6C3AFCCCF286E20272595EF325AB0A97AAA775 05B030AFDC7FF984C53AA45FEBC7EF8CE98CF1125E76B12A04C170572524FAF4 62DEEBC49B215C910BF8A25DFAA151D3C56E379920A02A6369D6BF67AA5C07D6 5D9C191E64B4D22C52AD102D253C975F493D3A8D13257AC95C81CF4A6670C0D6 49F83B2DCC8A86C510047393FE9366370654CFC362E85BFAF29F14AFEE2DE532 170FE50EC131A087EC117F861940F7F475BE7069215FEF1E440E349A9FA2F0F8 6B1B383C5324EC8FC1BDE180589AAA9C5314FA207FE2F39E4D66F1BE047D0975 16AD9C89FD5F3C0984EF7D68FF207677443A5A4E86791717424634C65AC221F7 B113D3D7D00A2A8D2056A9603D59A245722E71A1CBFC0A799ECF6C1B58D0F866 1C2E866BE1982279F0D41968222B89DEDF2DCB5B9291FF5CCCC6FF05368DD725 D71E0C0AE57B2BD432998AE424179414C0EFAF93F9A9694716B4D777C873724B 9B77BBCAA7285D2656D9A595AD7ECDDAD31D98DFCD042C64BBA859FE9BF9FA03 83D3CBE761044171EDCD4AF0AAC074867B0EDD37E0C96B6F06AEDB48F92765C5 B6E47399AC01791D5B620816796AC3B5A7996A806C005FB289E5FCDE6F4E9192 56087C14607B36BDE32EA8DA799C4A4D7F1B7558CFD30E2F4FBCC15BC3930F78 D756D6943B7A964159E343D34652A311B8209A3BD5092C090BEC0897AA350600 F1C73E1F972A9E362E3FF27B6EF61E57FF63ACFCB36243EBFE9DE6DDE7B173B7 1E26D16A050FFB76FBFCDC01355212143E13D9A9F12E24CCEC781A90F5B68DCE 37CBA02EC69BDC4B4671B0FB9F7ADA1B5120DDAA0D343D79A80CEE4EEFC1802A AFAD889180315C19185D62D988B7755B4CE6C308500013FD9E0124A426714663 30865AA8AC01F3F21926B2E13B338239E5CCAAE4F764D510849E383CCD307A52 3660D4200141C060768348C12B3D95F57D4AD9F4B8A8677D02C5BAA75FBA2F47 7570D8591A699AEE41CAD71EB978728832A6CD60236D9720AF0525C1F00053F4 9CF2455291BA713641D192CF164A85CE85C6DB556F973337016776351B18C308 F831C8E22B3235679DAFEDB26E1CB1488C7297178A26F996BDA805843F45CE45 CF5DBFAE5CA0C236570A6A3ECFCE9682327463FEE9F26BB1F0D67B8E53814EFB 9B7307CB57766B4AD7C44C8B67C565D520383A8F8F371753BE73E9D4A7040DBD 82281A1D7BAA3D50CB44AB71D496A8AFFF60D00BCDA953754A00018F75C299E8 138EAA2367F2671BB0151D41D34E5FD602D87638F08FBBB13586A1C67B523A95 38732E77914EB4B280FDEF4CB5EA994A057160D0C7B0C3F05F1F67CE2764F6A5 C14CD80DE40FDFFEDEB7867AA8DE657B6BB746F7258EA0F28E6402929B670D75 57C8A5BD21DB086096471281AB9CE18AAAC7E6DE2F594559F2D9B44CA4A76E7E 9E1C7DBE08267242A0BA165B8ED8BF7283C7828B8D82CA53FB6F244630C9552C A5EFD8A36246A9B5AD3DEF18A1264BBCF7DEFF9E4384082EA7E4B9D2FE5A0E40 44E58F0A7693A5CD62A8B9B3997620B43CD06DD40383E99D8C7E445A4CDD1399 6DD87C2A7DA012B9627BC709119A61314B97671D3DC893CD29DDA50BBF1B756F 0735CA8592039AC66F022667 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM0900 %!FontType1-1.0: SFRM0900 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm0900, tcrm0900, larm0900, lbrm0900, lcrm0900, rxrm0900. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM0900 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-196 -322 1502 937}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F267FE330B57DF626EBF73D2779A4A6B462AE6E5 19E5878939A488F2FE1094A76925CD24DAD4573AD3CF34E426708CF06E7EBFFC BEF5595408106E2189F418D17AD510ED5B6A528E8902AA3A5F0FF52AE3DEAB07 32F06B63E28BB88229E046F4FF8A356BBDDE82DF2A197F2E26CA00D5594725A1 83A89A36487EAAE1AC312C929CDCE50722FA6C596C261E4D78D6C6ABF77F5CCE 0E410ED74287A0F201140F8D9674A7AC585D3CBC72CCB824F9E1CEBD08AEDB3A A4015CADF471F7ABD9B0F0AF73A8274FD441BC1988A61799856E4770155341D6 516CD0E25BFA59B67AB7E0571DF3F5BA70A82798D4CE6D9F23F52CF97CA370D5 FFD6359959DB68E52196D89FFB84700E1CCF3E2E6A52CCB43303FEB31F296C29 34B019803C53D8D5DCFDE72099BFBA29C176DA3AA9F20106D6AE6D530A490578 AA65868A24DD5024A28C6E372C33EA2F6573A6592AE985F03A99884CCF7CA096 043D8D33EC0550084F5D85656F821D8E06996DB3E47A7C4E20CB4FA8F9A1FDBA 8A8D5E42F16B4FE307D36B86A652C196C9968BB436C9CB66C9CA27658DDBDFD5 28224AA3A9BDE394CE703771433B4BD8B2867327DCED10CD89FDAAA5663DD04C 0F4EDA21B96627D495493471C6F0A2BFEBFC2951896E3A52824E1B82EC39B16B F11A8545D54E1C5AF4BC701B47E1D8D4DF6300A47895BA76637D78046F961C25 CB06BDB10F9F1B77D59C29BBA2D704D5D231CBE64808E61DC1B5A9262BB18403 2AB064A9483F86D1F4747884C53CDF9EE1D97BFD897280AF3C1B82D448A52171 592A38BC679A219E5E10B5F35C1426F0ECE007FDCB722DCA20E7DF6067EBD441 E65721F384CA12B6D41E8CE89D370FBB3520916D3EC987FCBD46714EEBD9E1C8 3616CD3A9C108698F3884E17EAFF3F0BCA37BE98FA38C76C80572D60B917F882 EAA6250715B471F275FF9406B555EF475C1E3DD3FFF69BF0E7C5E70B5A978031 775F87705FF2D23C1A5DFE65C94DEBAABBEEF11736FA63BA313A7F33598B51D8 1420F45BB03781F64843652AB59C12EFDC4D7182F953CD07A63AF3076507F55C A2979BADD3EFACC0A59FBF083086FEC50F74C0B255D23D91F1220CDE28AF0070 0A4657E975B281609ABCA598E852CBB461976F46EF112861D3AE8D0AAA25EBCB 2F369E32C7E50A4654EC211031F68C048CE84E4E5266E58B9BAF192FC98C340A E78D9296F062120371843412E8BD075A352171847E6467D40C45322CC5D2E78F 8EBAFF6D7D0B25542A16979B19E752D1FEBB51709E8D139FD4378BB87DDA95EE 2C3C5A09C7577F2777C30FECCE9225CB0D22FBF974769188C066ED870CEA556E E285667D7FAD1909D38FE518873CE72A28E791DCF05E0F77EA586434EF79D1C6 DB84F0F04D7D461ECBA91F7259461BBCE6885517C3AEEF9A0A9BF1DF3B533ED7 6DA24FEC64AA1A5B3C76F0D7A066890F4DEBA482090FAFC229B8A2353966FDEF 10C35BB479287F2FEF841A22695DF59F17E0F166CD48F80B0D4F19FB16E40066 1AB2D495437176290ED007D84BDC62F67E14D39198105B719F3B28787FE5831E FC1FE1A5127BD552B9E6A497404121446394EA8D207045CB33D4DF36AADAAD61 0D1007C2AC6894F03C895ABD9A827E50A4A73ECDB2BF3FBC775F11A7811F4E23 B6EA46C0854EC912ABBF3C68356C4C4B32EEDECCEF8B8C63299A6B74615EB950 D13A9A9B70A14C98A43035DB8AC83D5FC1C94C39503DB16E32D8095BAAEC0D0C D678F58808C77D206AC06EFB0D2DE04119EF111FC5B27CAEB1C72F1BF752F7C0 2A48526DF20984B44BB4B6754896C30969253C2D66739BD457C975878B84198A 8BE49B310B5232FF2FFC7EE1C0CA78765D14D7D5C8EDED3799041AD84F980FE0 109EC357546996C65207FA38597AC6F906D796CF618681CAA8992555723623D8 95FC952E62CCC5BAD179B62D045277A3E77EA1A5A668E456DA30FD03A6BBAA39 41B1056B6A3EFA631A9B0E661E2BC60C143604AF24AFFC61266998EE8179C7C6 82B4EB6C09A17BF574855143D2AE7D61EE2B7B8779CD0D3E7F8E7B532E6ACF67 1DE0A0DD0FD3856029CB2CDE53406A6662759B65A8135C8E1DC330B6B117F602 C9A6294A8BD979D0E18E1D9A7518AA593ED5268DED3D3D008CA5E393F28EA29E 949C9637F965219C66215E6B26026854C07D282BEA32F31C5943D54C936E5B59 3164DD66232CDC0C21623FF789118A10A2BF9BA68F3793EC00D5EB542AAE22E0 F6D5CB759BFC78C907C1CCAC1710754083B85E2514D50D391A8D3771A68E03B5 E5CC81309BD22D737954DFFE8F3F350FC8ED47A84B487004DD8B33B16B16775F DA4EA70E41832195CAC05BFC80A220108282768F39E9641FBFA514E1BCB816EB 68911F83BC7F43467AEC1688F05E3CAE99AE48F8EDE8ABC0A23A84A0B8030780 2BC0FFB26A9642215864E48F37CFA97B8F0E6DAB8619663C9B526B4F5A01C338 3732909AB8C0EFF6D402F5B04C0F9FE91C112456A1A82CFCE9E04B637C222264 DE7FE218F25718B715869266CEFE37424C0852D9AEDEE6941CEA4C6D963FECC2 A75A5BE456F4FDA49C6CCF4EEE6C80038588E04319A2F1C34063CCB834C09F03 82E9B09FC599792AD660BBB44FB8CD1C47E9A5659E22B8CBD287672BAE2A60CC 8E2D8B1038F974D988AD1890A7738F26801307BC60159FBFF461C14A44260277 13EA65D71A4A5E6C8CF53125743D3604F72D2E4557EC65834BAA1940EDCDB07B 9796DA58756FA0D72F2686B3F6468A51466228CDA775AFFBA5C3DB97B68C6338 1AA4EF5BB7493CAA62381382FF9B11A286040F3DAEFDF7FE4215A9C86B8C168C AC6D44274454E4AA7CA6690A15F793D64CFAC2FE47D6D3A45457AF0AA2AE1644 75AE670FF0BE39AE8EAF2238B17C064536792D031F96A76025CD8F2DC709C654 4CA74327452822CBE543FF80E48EB1B2D5A30D974A7E9B24DE18959F725C9F22 B1D624111AA472AD0ACF968C2DC219F601A0DC437AD453D819AB09E7D22A8961 1C252789433AC37C9A52426E2164C93D8012F1103298212EA6E2FD72E890266C 5F7DC0347F1756CE9C161D1DFED772A7BE1B66A836E6020C8EBFBF39E02C47AA B7D32D01F48C4ADDAD53E859EBDFE76586621EE4AC427DF83E4D5B9650D7C2DC 3F005FA7FB656BE873B8962C3AFC9EC243CDD0D4855147890AB956014A804BCA B7DBCCBEC86E0F2ECA5A8AEE0DDBB535193DB8FEBCC46955DD3E4D5C4323AB79 91059EA4317CA6DE0F66F3DF8E97EF6BE3F1C940CFD62A38E088D3049887F210 E0866983248CBDF0F6FE98A99664195A920FC239F97E12B6E76A26177BB17440 3B9A94299609C0414824CB35B8755151715519336A7D4E95C2B17F4040914C18 7FBFDF71021D94EC9526CA84C27EEC9A5003B438B20514D1B53818B47C55DE18 90CB49908A012FAA533533A8B068EC26AE2DC397F2C0F3E7B5C209964A2B2417 71AD67041B294E45C09C48EF1DDC2BF323925EE3DA2A12B52955FF2E6A73E523 51C7784D68E1DED13B33704C5B96E51BE6945ECB8B3DD50B382998A4D6042910 DA2DF650710FE8C5A846C7C44FDE5D45BF586978AF665A6FB381AA8928962F64 F44664D1AC519E58FB775299BFAE57D76B4780C64CE32D3DAE23A084FC4A54C5 BE3F531DCF1743D5A6CF78D9846B799D9A8A143DA77E7ABE666469AB01326A7F D92ED772AA7F5977208DAF116E7DC11B95954B10C7D3E55F65BF2FD33C050817 ED346C669CA2C7D1D9B54A555611AB5C31B40FE092188CD1E9EE8B39A5D8F57A 3F8259CF20B1959F884245656DE62CB2062C8F0D1725AE126E530CC560BDDB76 86560F522A7970D5369C0F41988BC0623654AFA545563FD288F74192AB98F347 697CC2D24C714E1750F8FD39DD195F15D80A69E2D5574FE761D83A482E959895 287ECF867AD67E4FECFAC0914E1E65B374C48562A5A86A51D398662F553BEDCE 5B6BA16D5D100B1D837E5ECB69B2702748557459EB0ACDA493658B0EC289A0FF 64E651A689822CEC4D92D04D91D99C5928D8B3FEDC85A3A236AA9975A5F2A0DC 6B0969D391FA8209DCF99B248482D2ABE2FA79D170DE44B561BF1E6302CE575D 754852757324E31AB358FE106D73D498DE74043BDE6E9D9AC37D5807CDAFE77A 748B283EFB6DB46A204F0B48F7E7DBBBAE1EC0ED91C92E6511C1A179E2C0A8CE BD1EA1E1462DD58CCAE6A2A78B06763C3E2D5D98E5CD607C8A1DC9EFBA2B76B4 677C7DB5A1BD9DB81BC806F4206253C2DF5F84E121FD7489D506DA25F0B657C2 03BC8FE5F156A7E6D8DCAA36A6F3AD360A8CC37EC42F080CD8E9861E5FEBBBC8 675CE5772FDCCF4EAA58A00EA117E44A300794A6E9D6756E34E7358139899D79 E3ED89CDA89A7F611BB0AF6789B96FE48BF1A81BDE6D899EDB1778BB5C407D31 B78256CB9BF699DAFF6BD089193205D007EBA107D3EBAA998179CE1D7277B56C D3F69660D891E6D1911C63E27E1975775B62027582FB88C242E4E8F90CE8C371 BDAC7BCCF2FEF8C0210A261DAD5C7468E2942E463795C7F6D5B7BF0377BB6768 5CD40050000302382C61D87C901F38A9EB87BC773D2549D6D74DAB538C280A80 40110DF28ECED7F2D86E91B0003D652F5A6D00490AF3970924C53B009E9EA4FD D8CF25D6DB9921D143E481CC79F4ABDD8F903662E0B1C636C40E4F37AD463B9D 81A248209BBC9FC01682CAA91CBEF0C684F4A045E9943B655BDC693980EC5C29 9A4EAE74148EAF0AA076BF784B213539EE6135F0ADF70EAF97404121446394EA 8D207045CB33D6B4AA8FC91C06FFA3D34DC8F021F638EAE7FF982155B5A86E3F 8B4F51ADC3A90F91F7A8FCEFE3296CAB0E1006DFC20A8E023AEDE6B2B14E4612 61549383C68DFEEDD25CE47053EB975B479CEA1E13899A402050DDC67BF7F188 6E5249B2C8F50E6B8D236BD37A8DCF58BD937737ED6FA58D0496515D1B2F8782 21226DF5AE8CAF1E39427B7572E807F976949807B13AF4C860605D588BADEA36 1F5B8080E6C7F427BFB14A0D5004585BA1697D8A98E8EC8657683D0722F8F3F7 2460BA711FA7F6FF3081DC39F81477A8BCF7CA9BA70649F8B24FA472CB9596A1 9A7E800C24CFC0652BB30B2635B0DC4E6FBFCB61D363EF2A6889B6A5936B3052 952C56DBC24538AE7ACCDF54DCCE517C629F3B744B51DCDEA0BE1D5DE857790F 2B98E5E8AD40D6C7269F98D7B0A81E58B64B0AD171F646510C335CA66F66B911 64A2E2A0FD5AB16724B77DDA94055EA0E53E52CFDEE7B2B58E3FB47C5D62B55B 98937CB108CB3BE19DD38D410F8A08F37EE3C1E8020AC7214607A445D9766760 C6971F4255BCFA95FF34647199248E9038544B713EF28400E8E43F0E4BBC0183 8F221DBE2188E2FDC086244B3925AC78595E5DB0DBB928E45ACA61F6B0E24465 24B912D54F9A77851D5DBD8434092F51366B42168841A6700659043B0378739F 2B7CF7EA34B885280CD0728B5E7C12E76973C9A1638E5F4D7616505CB27F5388 5AE2C67A86588D192FE1CD6C7B5F77EB476E29B41AD72BEFA5214D31AE37B75D E2D0CFB8AA39A27C48F95B04A221533C6BD0BE3335376434860928C56224CB5A B241B70626C45A3FABBEE9FA7A8DD69160CD6C7C02F02D3E7B32882D7FCF47AF 0C37908D14E339FA60C75EE510A9D9957C7C2583D83754A06D57CA50D8FE828B 888E2CF8F55BAD66595135270BDA915373B85DC2E04F6BBCDBC423710364726C 9E208B2B391B3CAC4A52D627B5D77060C42B4C79F7C85AB08C7EBA76803BC744 F953010FDA764DC3A82CA17353FBAFA30920E261069897D0139B86D1497736E3 20C13FB470C7B462C654AF5FB352854792C3AFBD5D087F9425CA32D5896A1190 E7A6800365EAF2E39A335CCB98286CB50AEE34371B16971DB1E246059AB1B920 0E56880907B95607CD6EB689F4CBBB3C0F92B9224C232CA7E0C0DECA7B6CA86A 0CC884772E5CFFD1046FB73EAFE3B1CABABB482532E9F0DFAFA02BB6065D0E22 2FA294AA85806BDBC52705BC6443BD74F4F3CE20237C78CACBB5C95BBACBAFA7 A6491D19E0C282DD07C6D4A1CC3D306DB5A76F1741C44E8FADB2EF2903437CE3 FB9561102E5C29C06010BFFB0A05D35843D6B882B2210148D8237FC68CAB8A06 7AF4B2D58D1FBB62E9B7231B03313266AD8A56DA7FB78865B2BFE17953AAC7FD D104C51C1D7C4B9C3AB39FEFDF2C960468113B0CF414B206850B3B8C0280FC67 A306D1625DCD10FE31337AF8F3357EAC2414615E7BF241FEED67CCDD30869539 84C5F9BE4CEA67E59A26118A78F1B9B5994DEBD48FC67D624D0871D43F3AD23C AA6AC4AC771A7D382415B238D27975BD858B4EE58C36E01B5311C057442D211F 854FAB4B4F7A012912D3F202FCFCFF86F100F5F16AE21621F9641D1FA73CDDB0 1EA1C7DED45F128280E2DB6971ACDE05AC83013B6D49888921E4560B5DD67FAF 2312879A9AD921499A87C0AD17D6392572B80F9A10853352964BBED075B78A97 BC30021797C9913A4D7D411C52FA6D8F27728090404DD0198876495C28D22DAC E620003C0CB91921E614CCF9445B4C8063B4BE328DD7CEFAB5F7338B1B05F2E6 29B6BF59F3433F2D3D6443D6DBF4C0C7733A6FEB09CA5E27B13F886D3D05FB72 DC6E795BCBE8FB2580C019563C6909B64C9349133625FD183D494EBD62E21252 5E5435E5A6F0569ADD4C8FBD88B96E6381762482408DC6A87646E0146235CBFD 649F0F46784FAA3A773144EE80F36B650B643B2423BF5A5400170C2DFFAA11B1 49ED60FFD0C08B8C76505F055EBE4552437A93BBA21D3B530E8F70DF336223A8 0FF746F1630431C286C900AED5E8F2E2A650C0C690BC84861BE3814E06D2273E 405F48F339DE67B23AA4C8B47CA7BB59F5958288CE88EE0FA2402F8A7548AB91 D30D7F90B47F525113238F4D376E1B47695113568968803100AF5793F52AEB5D 7011BA3BCCB2EB475A9BE17EB08A5ADA04C9DAB799DC6EA38FD2D095374BC2D7 91D857E43FDE384D43B7967C05D0453B90FEA4A2FBED3FE1BA0754F9E8EEB196 6924F124679CB26A558FA5EAD5E23ACCE673604D21ABBFE9FDDA5D757A13EFA2 0BF5CAD8E573901FA5C25A70C32A4FA6B2264FDACD3B0BD58A46707A086BA03B 088BCB021E29FF39F747279CF0F76258639F4FB3F7422FC91F22165A51CEADC0 25BC2EF2880E068D61F2BCC504BCB44E4B912F2001A18E8C9AB3714C38CB457A 126F3CB38158107AA45C67039F2CAAD7EE002D3D6443D6DBF4C0C7733A6FE9AA A7E841F15ADFC685CB0653B4EF7A987ABB42B0D4AB92C1DF9C855499FA9D3E3C 4DC8D55D8FC586FB0C8CAC688BA09F511068231207FE0AB4DBE72678E2459EF6 283C1B6AC8DC403422420076646C76AE7950F3128A33D9A8219572571AC544C5 EE7644A22FFE3B5BFEC525CDDD45428F425A1943D1F85630E356D99EF4A91184 7B04FBE05796754AE25D7209F2B130058C89FB3950BDA0276AA5D925A2DAE538 76BA43045EAF35E082F358FEF7D464D473CB96B2FEDC321C7614FFF77ADCC220 E8B1D65C8D082D9A9FCC54F4A2F7AD02EE1886623A1EAEC6446C1662447CFF72 6B8D814882ED93D44CE02070C70A29235C8F0CEEED40044A8F508D04F359D289 41A62293A38CE7379012158313A9DDF4B1AC7BE543E18D96DA7D361BF47CE98C 86D4A61BC0EFC8B74A2740106141EEBAB068253A8176C16CE332462328847E72 807361A99967E4CF5742A597BF84FD99940675837396EE98C9109653441E0A66 4D2286CA0F108320D5CC17F782C3E6178FD39A8D5390C9E3E445BE2DB9EF5D34 E7F747AEFABBBFFD4E5DA776AB0EBA3BF88C1BC49F0DDE3E72CEA83B03E27769 ED2EB5696A39784E824148359E71EECE23834C1DDBFD88BD9B268AAAFE6BBE85 E6E15687CF71BFAF27152FA0948AE228143CFEB7394D5B99D465CE0C9E9D312B 1842D19530E3C0D286CD96F7B956B8E46330EACFA60103BDF8726BCB36DA5CDF 6BC092927BCF8458D54F38918AD8C1F48D1C43C7B4C40032E5385748A6ADFAB8 18C7AB2462EF5004F76FC83D45B9D233C6DC4955489F4ECC0B169F12C5C922EE D58F3B6DD39AE321A1F6FAE020CA50ECC4AF00A45B8D9F0C090DD724EA32F31C 59467AE92D9B93291DB208F60E76B289C84A575C082E72920B26577B7D17F637 61305500640E5F8E715B713EC3583170C66EC8B3BF175E4F1E2B7BEE5EF03C80 73A97C4B2BA515035AB0B6FA9ADA4A6E142FB918B0DC5CAA1FDAE2084913296F 4BE9BF838A536741343313D691D2C2028FD778EC7E16BC085A39B21FC90935A2 3754D8F6C429C759D6A376472C1BBBFF636A3D3463AE0588E6C8FAB3AE953E4D 648B1E0957A42FC5EEE503AE51060321ACF9BC45510D149C68D1E08C4A5BCD4F D83075F89BD4711A3D13DE5F71F912D3A7BBDD9206B31D348B9FB2EA8495EC0E EC72064A654C11A79DAF44D6D09DB137814854BC2EF8AEC9A6C932A07C448363 D45D80F3C0EC0F068730BA1EF24E036058014E8D0E43CB80D1C394B94512F316 A0CAFFCA92384393C6FE2BB19CCC3CD528547BDB92455626DA93E30A6B2860BA 5973A19EB312118BFDF8737B65167317E0C0E63049948FBA78BBEE8B37952E2B 1ABA1511176AB680AE19B04A55897742E80DCA67EEDDC44C359737852495F92F BDB99E91FDA6F545CF3CC508509677C2C378C1B0A69949A1E14670B74411473C 4F946FA2C256F380F678A62ADC9A58AE7242F7F7615C6AF98CBE72A3B524CC9E BF65B73F31051792CDE85D8598F0825CD8423521B95D1AE9332FA0D1D41114B0 5B42BB7F3F7DEF8639E8BAC6AD317F78E19A81DDAE75B72B83B702613D56B94E 058D1C1B090AAF00AE370BC2AFDF1C14C93CC3D1C6603D29CFD0DF347C775742 9B3ED5E2767736B7319287500ECCA91AF7655F64D923D872F0FE98A99664195A 920FC239F97E12B40D56CEECCE954971E0F80A500E410A707AB984AEC0FB30AC FF6B035E156903B461EFE6EA7FA3F0CFDF8B23A4659EF0FAA08F3BF0EFADBBA6 3A7CDABB586764C524C2A31487BD9D64F64B77D3EB2CE5F339E8DE7FEDE0D3AD D993E1360E9C0E3FD137DFE3F01D41EC31264415AE3DF7BA9F765D421C915FD7 C557F2D24161F46B58763BFDCC6778936E7FAE109B2EAB534A64CFABA7AF04C8 C69217953EB488742EC2B223FCC809E407779747DB08F40451ABD2B96F9926F0 2B1D5B9EF9B1A900CBC805D8148E6895B88672C441E9F3DEADBFBFF99E4C521B 0A17BA09BA7F98745B6E9A6F6B4FF0087C439B8FBB6BCDD768AE5844558FD1EB 6ADA9F3D3B8DC895395BE823D18ACB7658252830CE4255CFE17DCA48C888B1A7 862AE02DF232C2F7C7B7FF4B1C1A98FF75D66700397740F2460ECD1A3E4A0EB5 D0EB0AB86E72B8F384934BCF95F47662E2FF2F77417386EDFFDAB7E4DEE5DB99 E3C7AB4AA5415FA2D308CFC6BAE97CD9AC0B80B5CC33EF8BACAF7479F67CF954 9B2A8903B0D202AD890E700B9A05B724F82E8F118E5F41EE34BC1BC68E436B39 967B9DDBDB9CB1C4B5989A6A2DF1FBE19E1D0F88485DA32F3F514DF19A62E234 46FC1A8FBBDC699A6A588DBDBC9D5C57F4B14CFE5A8D3190AE74785F79B3AC03 42BC6B0B8D418FD307763A3CE4A6EDEA771A385280795742FDEA815B766D77D4 C07FFAD54FB69D5DDCC2FE96A14461A83CF6EC986B036E3D0379450C9E698CCA C0DE9B1DB2FA31624AE0D5268B987C05C0B9114B3F340503E1D27BF63CE67048 E12CA29E5D1A18AFED9665AFBEE48EC4BA5B76DA116953F1416C4754765282CA CA0E4E4184BF3949B1CC8EA7823B9C5253F8C745FB95DF40BF08021FC5A4897B FCC763CF6E980912D5406B68B436B89C72D15EE58878F0458D522DA2EAADFEAC F0D4DE627469CA129EE6412EE05A459F012FD2008F552502ABDE3AFC958B62CA 38C572A4F5274DE0CBB73B7E768B5F92C846F292D535F3615FBE44D06910BD9D 6B53884FAA386B9E4C7D5B30EDC2EE54B481F0603703295563DDAB4619F6DD76 A9C55F64CEAB104BC27EF25741B833A249404AFCE19F92B9CEC396345E5255CE FF1954A1FF65BA69CC1A90F3F012E6D6E4C5D95853BA4CAB33D5CB24E75EA8BE 8D6F9A9AAC2294A0AB5B34BE9BF6061F003EA800953BD8BDC13DB4D93CB823C5 BC8FE15DCFA7A6688008E0588E79A67B34D2099965A36564178DC03720F37381 10F09D41CCA0471BA80CF1950165EF9C627231B7CFDCC207614085AE1C10EC9F BA16793B114ABAE25C7DAEA11FC315B7A71C381F21A00DFE55603A70AB3E890B 51883BF65E211BAE05109D5FFECDE0C09B6F71985B48A305B91A43FFB3617C5D FAAF9318D55F6654EE9B9C3C85B7AEDB8A083B398CEA6BC220CB31C8A3D7AF17 2D574029002C3EE318A994B50C1924D2DB850952B3789E6685EE8AE41F583F15 5B9E8B8DEABC67CAE0D1413220403E4DCF8D71E18B61BCF05933C0C3F6F96B20 FC68947F0294638D219A351C7C7807A8018F938999317C280BF79FCE3F6461B2 7E1D641E24C9AAB8C85BE7D562D87CE12489E9C5AE329C841AA49B49E6722BF3 95887CE669BE9E9446834D001BFCAB1CFA961EE73F52FB712C6EBB567842BCEE C9329F12B7A6E66A13E96719D178A8DD653534500BD01ED95D35381613D5BC2B 046FC6C8805B0F588790CBB837B899548C30FFEBDEB9B2DA73CE885230E0502F 435F4E7D4EF723CDA26984DEEE28E5204DDD6F895D9FC9D4EEDFE9BFF805FA28 08AEFDE0FE43C21C24530AD388DB707DB617FBCB3CD16C29CF8F8F6BA06CF12F C1E43AD0039A42CF37BBF1C500EA0ED528A6AB8C85A768EFAD3EE9D6A39B957B A51CBB5A15B4A594C23DE665F2DB35ACDAAC29A8E14A2294C74E5BDF87B2E855 1B4416F5DDB4B03B511226B4CBF49BD6526B9B1FF4FC1765940B9F9886D77584 0E61D8420B5FA294899E426D213012DDF7277EE294747E3AF42492F76597DF80 A2360BD5352064DF0FB0122FAE304B84184AF757886F3C5DC9EB4D0000F2D18B 2ED16BC149DE1D1AB9F64CABD2248C5CF72BFC2663957468910130734060D65C 1687E4D49C7720B587063BA9A287159CF7C8E5D8603795121827DAFB4F2C2CD5 AC91E830C45C26803F091EBDF3D13A6918CD4165D8CA3E5FC003D7BFAA8794C9 430939AB3B0C3A15D868369454232985C137205DEC4DEE9F20BDCCB31A8E2F35 169DB688BFB73CCE3A81C12D2733C2907671809CF84D4070C0DB74DB6319970B F23C6B2DE6935F81AE1138FB78A0042C6E39E0975546C8D922DC5219DC8BBD73 164071E36531A06E36F445CBD959E396C85116AF8C1F4F3D569FCCEE79D31A4A F6733B624B06979276AE0982B334B2ABFF27B77308187C1DF14A363737337201 932071393EDE11BD306AEA0AD2235663C579914D39D71C507F0DAC738136337B E4D33819A72244F96439B26FBD6FAA52EBF142E336C97474DF133957E92EE1CD BF8247049919363B318E5E4F7726FABF289D347CB711493DCE5F821F48E6116F A26AB36C497E2C64066026BA343A427B54F6ECD8BD7286D89D5697EE87FA57BA 9B10EE00BAC62CC929AE962133C1BD78029F560D09A79E9C4202B4B613956534 7EADABA64B40BB4E05D1B9CAF659F0A1D4CEBCF4C15739916855ACE75D72BD92 E6CF64F4AF87FF44869494B4028B416097940298F82E598E31423DA1FC053D7A FCA6D3D5D480C86EC64B1A9DBF5865E0133671E9AB0711ED8EB1C2F2A36F4D8C 97F48184A0C788B5D1D2313EF5F3CFA124B95805267B99352E5FAD5D2461FE3C 539C21CD5397DA30E8A40372E4FB93C0A274483720E7EE18910327B44AD71187 BE7FCE4318A9A4D5D67B09DEEBCB086F58E06390DB7E5D842A8CEA5AE1B18385 6A61DB756508157E1A500DB410A98F388FA7C0A9221188D44F51B899623FAE6A FD8D9C70B4A2AC8B74488B340C3A10850D6D3C81B051C4409F54EF3248B65C33 1D398E56602451495A6C659437BFEFE10816C98F6C3B9A4D6E6231C78B3316C8 79BB1C3E6A9CF7937893E401054EDC16A1CF2926C4512B3A1FE9844ADD400641 4120CB0A82FC6D739D3BBC75D3B554D08ED882427096096753A37CF300EFF85E 92B75D15A68E82937865027A5E6C42C9D65756330C24635D6C0389469227839E 099868D2F5E0021FBA407D765AEE96012C0789AE91ECFD67C463442638261697 EBFB062B06CA9935DD142665BFC8F5B7691CD5CCD994D7AAB7E3B5747CE47FA8 460F4F4E9F1EEC26AB94607299EBB86BB578ADC22A93CB9B5CB0C29935DD14A2 EB2F91D5FB85FB6A3E62E0CA83D4B9E2D0B243F18204616B9634C58B3047D27C 137EE40ECC609A8D8A088B27817CEA4C9CF0BC974D4F8E3BD2FDDA17FF4F1D5F 3815E76D4D51056F5CB6A9425098F05734F46AD3A09B6F9EC2E17A046E6D02EB 03417D1A94B7EE7297D3DF65E84A150FE9521024C4E4EE396DC888049499CAFA 753EF610D729B4B96A754815E2259431C05AEB9A0E9DAF81164D8A968B940908 D65F1188462B65115EAF05E37F629F98BAD822A9564C1E23A64B5350CBE4CE6B F87B1092E38FEC08FD4764D82C2AD71AE8E3C9B4639126B3468CE4AB11C078B5 68B24C1E50592A65D05B613AED6D1A553CEC93737A05DEAADC6FC529AD6F4C74 9DFBED39020B1E36510ED4C08D8BC4FB8CF81D3E86FC44EF23401DAAA35491B9 231F2831CACF1377C8B8BBF23C9C66B6D0402E35CDDB85013984D02EA2F1DBCD 5A2FDB5D2EB8E210F1FC347103FE5AD10585DB99D9BD2C60A1A4BCFC487D0CF2 27BA3EE5EB69F69E394727A8395FB38F1221ABCB6364E90F8C66579CE983FDC4 36929075DF11778D9DE70E68F9829BAECF7B0436D4548CFFBE68A3AF890F2F42 4CF33C0351FAC0D79F9DB3B2870E27EC641B24BBD6900FC03EDE7DED8D601800 8BEF5AB6DA89264846E4FE0C6A3D71D0750EA8AED8C20FB1C97642F42A032DCD 5340A573DD4E10AD334B43BADE9309A4A1C4B4AC2B9591F561256C049219FC02 8AFF3D1393FDF4F8916FEDF68C44148B89428D505005345653A95F4A423E9E38 63EEE40E22AB8E05429F3ABD15749A54893931D3FCE4FA7B0EAA0484D302072F 87D21497CA5EF34087A0A87B8EE2DFB49CAD1A5E9DD1FF4B101322D6CE4C59D4 B781ADB62601A3D4ECAB3705DCB92F3B3C31C53342C0C6ABD45187FF8960A735 F763580E59218D7B8DBB8F68D696626B9621F56741446B6678D8EDF4AF1606F7 211728A2A87EFAE29DB8D4E2E4D194EDAAAA5ED3D9080B73F863784AF20847A0 0D2E08FFCA977DB98E6EC9A7373C3A420AB0FDE450685A8AE84704B25E1CFF37 25A60B750B4AB6D771F48978C6593BE39DED371496F4C6D0ADCE78A0FF4BFD47 27AF71034711B983BC6B0C27C45782B71EC4B7570742D7104581B3E78CB32E85 2AD373186BEB45997AA0A042C72093B3930F1A2FEF840B200C8CEEC07E38DD0A 435B694C2B6BD949559F9C015EBD413FAE9881FE3B5117B32C326F78787F5CDD 209FD878F4F7970B76BE54F51BC3E4FDCB26045C68EDF7AB3BD971C725F82D99 5E88FA7CACCA094B59EC16209E80321C3E4DC7175221261629643BE95D946752 413F3387FAB9E2112EDE7ED4FAA488D94488A86D00850B69F0D1798271E811DE 01F6DFC13913D0EF47E86026939BEFE63B1456FBE2EE476517A40DEE954096BD 589A36F1715E9827CD986A4D305F66CDBE0A60E513ECD9BDB91E3925EB946FA3 F746878A05B1389E7F84AE2BDCDDDE46257278469156300DA794EE013B241789 F4BFD3CE966F93ECB9D742014C3C3C72821B00063BDCA7068E8F6CBB6B259A48 E606BE0DFA3355331747473ED6CEA195A861AD98359CCB4EB7BC6FE01F558D7B 15B217FFCA6F899BF35469A9DDF5A29EE6C6BB9A84A692B02896F9123D2C60F9 DF0822798F6A5ED038792C6A364345641200DF7BCEB64B3F4DEAD763BC7AE120 3257E98FB5AD449A81B0392F0FE5A76C320DDC35332783BCB3496743D705B04F 5FDA21D1E18FEC7C919C6829379849A19401260A74300F6C60955127B3FE13B4 8BE3BBD61B3647F7AF99C9C8E1773288AE47B1A35F0E7FF86DFC67FEE6C233DA 72396FB02CA8FEF6473AED5206E94D9D1A8661566DECC9F689C93B740EE94E06 EF849901841C9BD82D0578242B82E20837D90EE0F77297F12D7026341FDC39D8 96411D284071D290F35E9B5A8D72868A46D6738271275F2B06705E64A21BF64C 03E16BC55BE5525AA1F3A3EDC51EC2F93BC507E623F2A8502911CAB49534A03D 7AC32EFCE41F348A844B49D4BCC54FD372031CDDACF5E3573C666E66BF18391B D5CB257DCF8F45AF0BC6D970BAD2F4B79EB7E1E8E5863015E89FD7D5E9EAB2B0 7E6CE922BCFAEE17F24867406EF32671022F52762CE72D7ADDC3D3BC7BC148AF DE03D1D1274C0F32415746055917978C7D32CCCB8E6CA24FA190CD5F09A87444 5C77CB6B66763EDCD492A71B391AA41CF520D76B2880699096B9D8E6DED831F0 5D4C7AD03B374642131A67F71347F42BAC705F18946353575D59461F97934077 F4ADF14F4007BF03F7DBD9D974630945869364D3EE7580CF0028C68910700143 23A5ED11D87473504F122868779EB4AD7EFFDD05D4EEAA865099AC2362EBC736 403D067D95F37D00CF20537FEB050D65A4FED1A48D45A42E15D1996F754ACDF1 19843219461C01EB60CFDDCF4C73B7EB4A4AB71FE42FF9C37B2A8CDE70F75D88 83F59C4C51FCF85D95A91E9074655E5AA2AFDCD8F04364633EDC41FDA082A649 69C25B542E0152F3EAC944D973C6C8886B1FC03F4F786EC7D47B97E2543619AE 27CE511D90C5D5670781D1349A499BA12FE8BC668B84CB77D92ED867A3C279AE 6732D8F91F4149195C4C0FA45C5EB8C4CAB4633AE281B650BE421626157E9EFB C0B2E239F9DE1C532139AD2A2B98203FED7C048FFB29A5B0927390C4FAD4AB7C FEDCEDA3296EE0038556CC2E780C773C8D80983A63F012366827BF92AB47EDFE FF1A3EA9F8F42172074AFBDDC51579E49659140DADD4CDE8CEAAAC8C8822C67C 16CB874B1A3E92E531F816E4FE29B30F62DB48952081AC22A41BB42821665375 E46E84B6504B2A0A92D0955BDBED3A875068A09D144E9B78FA5A7DF60BEAFDDE FA8F9D855F18D1868484E520C3F3EFBA59B67A944608BC659B97166F2C999974 8FB5C24A09EB1EAB1C27390F2C41B4792BF33F015D21763376E90EF7D0D4A260 E505B899AD6022FA89E7604EF214712F0012CD8822EC67FAECABF1887D9CEC6E 1EC232CF089E9BF9E7973DEF0B5FE2414668CB1727A593670F63B2FF6901E146 FA5117A1BED9C86DB14B3B067FD41E3065AA548C78ADA31A4193D0526C198FC5 70C89C3E2095172A1EC0548BE676D7B7E646540DBDD8EE81E448CDE11DCE8C37 78F91E373E5D5C3D552160B12CEBA294E01F2766DFB49E029FB3982086D35B0A D499488A2A0FFB07DE6B06DAC072CB6EC6A7924FCE4E3B9815B8D3B09368F3F3 C54651D65E95B8E2D0E240AA6A0235AACDB2EAC6CE1F3B04DD5B022349F907F6 0079334773198F1220EC691FA2A16FF1D851E7745ADC1CAE1F1CD29617D1737B E52932DDD7D974F59A929CEE826F6408B38701AB47E17888FC2C1C9A3DFA6C31 BFB524C5BEC88D19DF523DEDBD1BC5AAF75949196F032A5AE70742CF961D67BF 901A4603287FD20FBBEB94ED48955C10E0B69DC1F31AED0CB25A0C2B62F17E85 11A3246BE707F2CA1A477DB5970B85A35E9526BD04B9CC577F98F6FC4CCF66B8 7D43223152C571ADC7C2168CB51F7F3B1B475AA26001E438608440D95D1AADBD 7E972B4F71C33C1BC2A8466AB5ED558F4C4AE05DACE3CF882DC272C320A030E7 7FDBC524C89B8DEE60B0975721D1848FA2B059C1C940C06509E89ADAEBB6E06D 3D41AF9AF670BA5FDBF8BB07848C8AF58B7309BD4AB80818F6C1C57335816BB1 30CBA5473EF29F4ECD69FD334A1628AFADE62EE09DC356487B252B5C8D1DB24B 2502B9C5E232CB4CF649C3503F0C3FDE354D1982D6E3F2C80C3C6C6EE5F25226 4407BDCBB3BCC418EA103C3C80C467425621A5FF95672766FF4CE3E22AC9B846 6F45190EFE2BEA4EED04B3999B814D50658B868836092F79420A3BDA2A10214F 0A6CBB7E6651753EA8E504BA7A209D7CAA718910A061AB1A5ED1F61ECF4DB699 227310600DF2B849269EC8566084556C0476BBCAB007A97144B83E456B1005E1 464BA141B91C8379CA35CE04B2CA47EAFA203ACF976DCC8E7CF0E841AB3FF7C2 9A00F8F8EEC8BC66E6F41EB22F5A92F0FEF9A4742DCB0951F9D58B9A38ABEDB0 51C4F8D647A01DD5A721B8215A33C8C4BD07E26EF964BA42AA20765C83EBEC85 2E666FA20A2B949B4100796404B7DA58DB069AE73D8F4082594C8A8102417E1E 0B11E5A9A883165B9432DC7564C18130F2C84EA4714A8CE6E0162331A4E785E8 FC48A03E1137D5A1281CAA541FD61E619434C6DFE03EE1DD3878C3BBE529B35E CEB07147C0882B362EF0098AE31F54AA58AA1C398A107EC3BACD9CA8DD0C05C2 8230F66A5F92F0C74865FE9DC7CB4C804FFB9023111EA5CD4458357735CF7643 E89D5BE420AAC3B0EC3450E766C66210E28F8BAAABED77CEE994A026B5C239A2 35E5896047EA4EA0CC2815FE92D8DAF648E65894E186318A9B579AD0005284B4 EADB943CB326F29C80354C326875396F0499B198DAF7842380841F265668EB5E 8C6740E09773393CE621A4D9DE35A147F3E9CE7320E287428526603777F63B2F 6CFA99F0A7DEC527283E78699EE67CC16BC15E3286B063B5AE98A4AFF552655C 8FDEDD12F21B86FBFF4A5199B53859FFE5E4403D32C12F4F7BAF93C2AE5D9803 2FADC538510E800A163C3C92688F8EC9C7D35991E2FEC3DC70352A2BA5099C8A 01B448159533F0A7764577E39B18D3648CE410343C704AA03DE8B811E081D3B0 B0BBDC564B3611E34E49AC889851CA0782E783528D0CF7F6F0DD72850E817BBF 827DCBDC8C02986D8A8FD081322DEB995A3F3ACADBA993EDAAA64CA5048460E1 2E194490A4C13C090090A3C4DC992341F53BA440784E4F5077411650478E4DDD 4AE91B4C2E939FECD0C3BE2ECF80B81C6F3D46B6E75E681929449B724E760392 3ED4D0944CE5C1072EA4FA26F299693567B7222CCFE9F227B5BB96514DF3E3AF 0318E1855162B16F7CBAAFCFE4BB4850EE6B697013EBE6D84703B645E264AB2F 0E179F916298A90B79BC7372D1C0A7D40F60AF6C6C3DDDB7555A24F5E48CF6C7 AC7B074884574E969D16C7DFC8B36B5101F4BB8CAAFDF066524931EE8B4B643B 809AD88344F661E948DBEB8A0C3F5442986A5E87B7CCAE59EEEF6CDF1519C734 64520B0BB899E892B1AE11BA61943AACBAEFAC5C870799875DCBC3F1CC174436 A9601290ED04237D969D443A78E829487C4FF01C353C67880388624EFCE436F4 FF75D85370139C2EA98E2D3EA58670442088394A5ED827EEF0B2107D86241C4B 3D1DC459C7D77E8CC2C54BFB8F5BC45BA81C3D42317816D275CA451B531635AA CF27870B6AD054991BF91F550C7C583BE34AA679AC67AC7840125D9C77BA76EC 22331C2DE83118D9A89D9F64ABA4B585A674CA2D5F3A51962B566508CC6A0DDA D6D61DAA53033D26AC92D8B7BF0C520CFD7B2E2881A8D9E561393B150E0F6B42 A814360A79148DC1168A01ACA3100B6CE438839413F29F4507177557F7E75218 CE0A873A42666E1555A116AD4E2FF0BD0CA1A4BD9761E764FFA72EFEA6EE30CA 4280F594DF89167AA614FAD2988AB11D2AA1EC9C6062832309BF16B8D17B54D1 4D8D3E9C4983EE5F4755E0AABE2DC95D64DB4E15891A5794F8D4E5B487EDC7D9 E650F953DAEC243FE25DC85F44E84ED069B45CAFC4693AED3484F963D330D412 A44AA23D1D91255828E09E44CBAA3CB16E7F9F6D8862CA52B16E08CEE41A249A EF8ADE9B15385C76ED5B305B583B996C664F7FF5D463EE1C44D3924CBB72D5E4 D9E2AA0F906BEC865A9897362590E3120022F84C48B07BC4D0A58F8A097F64F2 2F41AF61F3D5E2E609DC3678C6226DF652F4F8BE97BFC28D2F541282FF9B11A2 86040F3DAEFDF7FE421A9AE0F8F46BA7864A3E811F47986CC3B29B94F495AE66 2DDA625BB3315A4FCD68E1077A5B09269AA53D388F0FC0DAE3884DD8E1A6B0EC F652A10CE33015A31E9D5BA7BBC230A38A4117E0DC93A95C4D46B4105E3026C2 D7DF2C6AC9A36CB629A7BDABD12521952D97AF81BF616852BF40CE8672A37BD8 F09FBE555FE0A0CB701FAA819DC341467C246DD2D854478CD058DDCA8F6F19DB 4EDEFD3F5EF23143E80DBD419696A0923E22CCCB26388C140E0FB547DA7547F7 C3269627215382E4538217B82C2CBC4F8DA2C6489A09350D032528BC49CCED44 FD03B20F969939DF2E2A49001DA45CF8A86C92D88C73154CE5F191EF18458D29 E3D4839679354CDA6A2FFB0435C6DE67B8A5E1C114B6FC7CDCB546A2779C9E0A 6EDB0E4528B84717C2B04029B8721856474C03AE17956D786382DE8571FD6AFC ADF079CD1B8D9EB331CD0C7DA0B38981A227624ABC9AD4FAA821B48CC84BB847 AD5881E18C2DAEC09606228CF9255B11B2AFC824E2B4184572B40593A1A0EBF1 E1EE24281E4BA70AE4C2FBBA51638B64D8045ADE1890CB49908A012FAA533533 A8B61EF02A8137DA09D67B2C640A3E19DD13485A45AA47E18E2BE09885EC2404 518AA49C0589CF5C5F4A680B3C110FFA2FFF9F864E668D355A40D9A42C8B3575 FE5C3360A0CDCCEEB95D1C8AB679BF7774FD3632E67035529BA018A8540F2A21 850A92EA39B64330B2E4082D0FBD675732001BB7FED3BB8E0AE9CAF5B643B78E 141E236D265F815F8E6A67E75FB98512F623FCEC960B719C2782B9F11BB370C3 23E8B436B4205EF4AF15C342D324F2DDAA6C80418BFAA3AAD8D28FA0A8539B43 90C909C288842B157CAD1E44C4FAE2928013ED3CE631E200296EE741F16B1768 7FE347A0E68AAD5A0A63AA127A4CC965E24A0F32ACAE284A82B7016E83DFB470 55F079A72202B844E94471D7B013476335D7D563256DC925B88E94B846F4B343 BB10D3DBF09A456F1F12AC4A6C56190A170D23BDAE7F7F8F669A1995616F5206 077A4096B01090B96FBFA80D1197D498923EEE9B65CBB80C53479859C17474B3 D0C4B0F0FE41F4B657D5799194846542E2C5DFCA889F03CBE3DC998C94F927EC 7C0EF1DF2859681D7DD8CADAC1FCAB4E414ACABA27E833A471EE1E5CA9CFE98C B28540C286265666F059FA36657B9C4E3A8BE1674B1AB34845B32A364CEA51F6 DEB19E7ECAE93C6229B206E64C3CB61E0524A1DFC7F0C779934FA7BE43821DA9 99C25408BED02EB7D6B01CB47BCDCB2181FE7CC1184D1104219D1C918BB38D10 BA50B3803CE32E51EC4DBB64BF440ABF09CACE9F6DA03CAD70A406F642EC7096 1D0DA185856269A43F6F3AFE603F059B0018DE76295AFDF36D368AB252A90256 D81DD965191EEFC4958328EB87D5D4AD7A723EC103C0AF6C72936D9EBF147F32 A3503922CBD68101B2B75AB5B810F297F4FD1C087564AC9C93AC213C12CA3F06 7D5A2F7A5A783A3B21F319F9D8710463E7015E2AF3C11A75F2114AE58EC31B94 6C41CF80911826F482D912AFAD2CED39189F321A791889A3D80A0A300A21DDCA 88B03E179D01C3B303C685655168A11EE8BBB5B5439E1F59F8EE27AB1BE279DB E7FAD7B3A2DFB83491F0FEF7218689B1EF5BE59E387907BB2230E7A4A7569452 8BBFC87FDB21B10048D8D6AFB7F965ED7D2CB3D8C0D40401820FC5A914353F9B 5427E84960759067AA4FAA6E16283297E4F7ED39D15855917918D731C0127D54 65D204E7FD8E0F11508584BAA0510BE406066F074FCEBCF633BC9D6A33D38AFB 5B44EC192F9387CE30C854EABA04F1B3DB2D3B91A0ADAD91E46628D1DAB24B5C 73992110DAC5224BAC2371C3226F2E9E0D55F9289601D5719436FCA3D8B19A87 F344A481438CA22336FD3E241608CD9E5C59BCA21C205588BDD6DB7DF80E7F72 E6FA901DBA4BB4CC54F9C226BBFF8653B731DE3D7191BC6A014F89D6A1EC6408 CE01CD428F68A5E78792EC3F5406664C5C7AB6BFA6CEC94F94B89E6D7BD80AAD 40674AB560ED0E258DE2ACB8E3A59F5A4324C4E32C3021EF5291662749FDFF8F 3AB57B8EE78251337FED0002DA888DE03824D4D850D8A6CECE4D88B3B62ADDDC A6FBD95BA5778E4A5AA4DBAEE0F77226C214AFBD81FB8197E402AF57D680F1AD 34324CF35A737A04A9DF04054EC926026DA25D51A7F17DA97DBE228B33B86A10 1AA557285C8A911904E3A18A4F1222F898D5F9FD416AD809C41DA6833BFA843F C0151E1B6BFBCF6DCF39AA7C3CD7471B6084069ED351CDCCFC0B28B94A778967 A2C65CEF614812566AA6DA52ABBA26ABEAD60E48895BB508B65425DE75B81047 1A420552CB9A7A8E6EE0DB0ACB0DB843420ADC081057601DAAD9BDC21EF72F77 0274B0A545833BD6986DDF098E41A7D2A0A6E0DDCFFCD07E079ED27C588AC48C 58A8A7CF94CF3CD72AD275BA1E4EC08AF16DFFC47DEC055DC07BFF9E7242C84F A670DEBE90864E4C0896E514FBD81B239C4B11A10AD0A91581D5D762729AF9A6 0F5E60FEC42D95818CD707EB8C4CBB071873CD9D42447977ADDFF44CA2E04CB9 B60E23A3F5F938CFFC2AF1EECF0D4412A561798F2C06DF89A3733039CDD2DE68 AE6F3AED2110227E80001370102E232E96AC8C20892B9F70050E5259A9545F90 0AF6DC976458DE5FBD593EE3D053AEB2A26E6574733B3F9F411EA1C68FE31568 417B92DB563637B03C7FFC2993919231BB239B3FAF35C8197E596D9040F2E3F6 889F6FDF2679F77D52577A094316BAE4BD521743F274C5A9D5DEC79B0A86A04B BB8B94476CF8D048B4CE3FD8FB3CCB19F4119FD2FE91983BE1118C4F6F40A092 EEB197F6937D8E57214EF02076FE7B9246ECE250F8334D73FDBE3A9F4092564E 4175EFE49EA8FFA887DF7EDED6D53B3D0F5C9D86508F3FD473966D86581511B8 253FB7E239589823C640F3EFD9FD077E101DF2052BA64E989072A0BF9FE54213 CB19A223CD817CB6DDFD011D15D42EBE11E25D86DF8D23C34822037D27218ADC 3D0373C7887855B43EA24C5A85016648DD512E366AEC7D217C070A0CAC8CAF2B 778FBD6F8641E2A9EAD9BDB1369CAA73A08AA9754BB77C69B5CE89D5B50EE53A 6A2E166ADEBF2BD756A69A3A75CB9A001787F99BBF5994CB2C898B933F9510AF CC9C0493C24F6609E170D65A9A8F314903D4122CAA868F0370829D0D0E9ECCBA 86D3514AA66945EFE48ED3CB5AEAFC1061D85F159FF5A9EBD0874F341C52106B DB5EAE8BBFEF3B9585420F611F58481B4E07956ABF06E38D6274E3BC4BC3C52A 68DE4D7970DAD5E4535ED5C93D5CBA9C7CEAD19254FDA3EF2D60AF28D4039DA6 1ED04A6BA0175F3B05AB24402E7D4372666F0693EF39F8B534119124355CC144 6B7CAE71B892A8C4DC8AE28CB3109733B129FA30D4B69C656C51CA0CDA661788 E9BB36E4DB73AE18991DA0D2CF3B9B93B6460DEF817DD524833EC807FE298E57 F012FFF551BB67BA635AE8F4D6A1BE18037804CF7642DBB1E33F5BF20E92282A F2FBFF714D2AC072BBB55EB3F09E9E11C41E64E9C550A50AA77FEB0D00750ED0 E82576B5F69253C39718B9649B0FF233859C4993D1F28DABF70BFA30C87C8C16 9E4359D62C5CBA2BC56D8439CC4E2843EF11AAAD5358767BEEBA18652664D27E C6491304CAD09EEC703DE11EFA20881A427A23A8EDA11C1B799BBB820450F85C 1D10A46BD527F2F020D623CA98E958E82505917CB9EB875F6760594AEE2981DA 81C5A5A4D08D5E2032010CE940D5206F5BD4E25061D3ED61CC2FB36EB137366A 9AE62F86B579081A9100DE80281619F5FAAD9236C4862F6597E59A2E9D67098B 9E91993AF34BDA3AC78E8FB1A8F54459108A159452164F7030407F336AB9157E 7F4838A9FDA12CDA024D994E186A4616D82D509B54ABBA95BCA41F6703264474 BFB4C95A4C49BCC462EBF410AA2B6BE35F5ED6693F433E772ED7BA0E466EB256 EB9BCCBD07D0CDD7D31CF4BD9459BCA1F0385CD773C378C094444C3A980CAE56 00FAD7853068AAB3995B74DC6E56A3EB25B11DF48361017C54DF769F0D0AF335 7D0BD20EA85565DFF583AAE3B6D1C00698342AB084FF77787D3BDA3185D4499C 817D8F2DD6B07FFDBF2FFF8C68E657D25C13289B3C185D8742E2E18D3D550947 4B71BD28B54257D9ACD5E3885C06D400A549996BF3E8938C47FC9C68839D3978 C91C8DB077E521A32B4684D6E8E619216403771657F47B572E5D43C21E31653C E0ED9DA95B2C8D1138A378B8D2CBB702B4A7269F014666BD39239A0ADAB7EBE1 82753F26592A42A63461E0BC07527C9C674FE4C4E6FC5408D9DF4E22683E848C 88D5325DE9BD5584DC00DBC97356C0FDA68C3B00537F91EF8D823B89ADF90665 9160852488D6AADCCEA644F0F9311022B05FB2925E57043686D62B6C1F2878C3 16645BC0380B5A41551BDB4F1BD5CBF752BA81DA67603A97C93A32ED2DA3A9C5 B2F9C90742706FEA989BF8FB8860B771D994970727F5C965AA5AA05B9BAFD9CD C8C62FFA7EF9DEA3233EDF625E92886620A4BF4F6CE392E2F77EF72D3D06289B 0F0836BF3F3156B21DFA7BBF52417E8659B1F4EA8BD1CFB4F2DC57A206ECA1B7 78EFB14325C124ABE5AE2AF4E0315432D317925D3C271F63CEC1ED70453AE6A3 2FAE2AAA0444A2E700966FEF80C2D207920679E79E167235CAF5E4BD9DE45FE9 C85C11277CC2B2E3DFC47DAC02B7843A1B08EBF92A3398EC5C53E7B7B0A011D6 16BEFA2309523F50BE115198B09DAF28376B69CF81EBB5ADE3DDF3580DE4182F 6C57FE44F1896204C3029BBA425716898CE5E5362ABE5BA3430616644A41CEB4 18AD5E85F4F850B63F5FB8AC89E60A5B2B7D8420D437BC7CC32B32450489465A D2BF5CB501B6A34AB262C831082DD35280852EABC3520CAD8FBDE64A6E4BECFD 4E2537771575178B8701DAB6D048935511859FF7DE2D26071D5229064F3C60A9 11EED8239771F9147838D98E7948B9BBC6545977EEEBFD61B38C6F3F94E743F7 FAC93E5816746417ED7B2C72783DC9849756DC520447A7D83F8C97094F003ED3 191E2FA29A9F6F1172FFC5D93F0173EB8D65C803356F12A28AFED5CED5CABCFB 02FF3F3000AE2EF6B6BD257AFEA590FB7A1342D150700D3BD1419DDC6B313023 6629581549B82446D24F1125E78EF02C17C23FB467891CD18FE8E592B6E7AAFA AF5BF87010B43EA5F3E97D2212DD9ED8C9349FAB7E72384780D38B7CE69916F7 EA5327AEF877A87C9FB3689B4102BA70B34B624647D02CA0CFE8F63C5D41EA3D AC30857E2FB6A0BE1918C035BE9E9E5F630CBFC1B02B1E7F5F2D184639E84C6D 174AC73D77A385B659971E9E6FCF53BCBF9AF3490107C7527C999A09B497DF3B 8F35A3BDB352515BD48880C7959EE9A4480D51ACEB145F3F5920ED1A058D7CE2 E85349804697C5964BF5FCFD03C2DD438BAD7C89178E3FDF91E71DE433619D0B 760661495709ED688F41F5422378E7F9D5C2F24A90C004F802B4DC98F0DCFACD 90375B5C18D67195BCB0BA6D1B2EF06D732D8A70FAD3EB42DD7A9DB3640A3032 BA2500E959B6F5634019C4A614C1977024B02C145708BC4B6E58A5EFDD4E0F8D D02DCE3B75C3D96FFE8387871B137E6128925BC17056C101B3D0E7A9FB28BDC5 3EFC06059380804C226735FEC96D5596893A91CE9528A2D951B771429E0038EB 0028261428A52E77E659CD539CC608202C863DFDCA12486BF6651DDC3ABC9360 048DCCEB734FDC8695BBD190E102CE7B59CB6B4CD40F25B847553C9E00B9CDA0 9E11788AE792DC87BA3C187DC76A62C952C4AA9B9F59C85FE5B7DC2B44E02E3C 0D74BF81C83D7A92AF58DF54E552873DF8DAC22017D3DE410041ADF1460C9CA9 95E69AC945C1766D2DDAD8BB4B62A7B340EDFFD00DAB0C67CA556A2A79E714D1 99C7E13790491B0D3C59F9F7D9DFD10153FE54CB0A029A1DF1E022E0B31E979D 9E130EDF0E6818125B72CA01999A6C110BEFEA59148658EA52BC0B69E5632E1D 82773532EFE1142018075FE03F1958B0E74C505D11D34ACE2D3EAC0F6041EE42 857F47F25632EF485EF2C27EC2761B2050685CA4F23E77FE5C7335481F9CE0F3 06D4D1175C915F3CCC59DB7C1D921D74C63E5765F72C1FF75D50AA1726382F65 1A66497386CA91A50252717C8B02F5C4B3265F25C933CC618C5907964EA08685 3B192DF98D99B2F182636BCBDD7EE4A2AA96FD28A3AE271CA45252A19230E0A7 E1F93565D4767A268AD81E0B6D323F3772671BA9E04C429FD9824ED033663D15 3D97CBC11FDD41970AB08C9974867AF5F189BBC2CFE5A1922BAF54ED21FD4041 C118A0F3EBF8F579635AB462C95B9D8EAA2D1AD0A8053AFD95FD37F6CD046336 717EC7998B74CFCCC5717ADDB9E45649E8E94132CF8AB1D096512241CB69FA15 1E041C98BFC639E91D3FF534D59971A060B7CDC5206718B3BBB96D63EDEEB98E 8D81CE12958A99A3C747E474CAC5987C1F7114B74844621ECC381EC9D086661C DCFE13E6B136651A33D736E460573EE074ABED20A719C348C233F2AFCBE3F4EF F5E829AD9C2CEB3F060923F570909F0126F0930A1C63CB7B4767EE1F15BA49ED 2F285CA1C2F9ACE56176BE39817D66364EF8B55B989CF3C540A73054794696D2 C4FDD35BE4A593F9A0354F2BCFFF386E611A02E08E2097CB9E14F67975262C6C A25AA8412FE9D39F83F7688BD9DA457FDD386157CC772E69822A40B677E00DDF 7AED9CD4B5DDD84A3C61D9B775B9FE5DCA38E908A0FAD174482BA6BEF9B3387E 6ABA06A22B1A96C12343EADCD914A2D1604A2DED4ECB96B2B7C031EB89CCF223 2FF87212C7C03C65ED61DF718AA84C754E8799105E9521EF79A8D5F83DC27493 FE92503FF3BBA8F455049C5206FFA1A3E5B33F42E9903D44A5FD66A8C6E49A39 09BDF604661F96A6BFAA7AEA9C9806BD0D1B09969D649139C4319CD9DEEC907C 68954A4CF1130F05FE0ECF0F2DF802B247E80BAE8069CF8248C59B9ECE15DE13 2E9F7A7381B3B9948A57598341C728B733ED99DC6F24937614D69A4EDCA88169 2EF39EC11ABB2CF7C5DF30DABF54C5D409D4A69020824C2879FB51019FE0B952 51520D717EB24BBB98A96753A581E61533D71B6FBF009B3CB9A5B5DB0D2732CD 9A490AF59702F87621CB92E8801A8D34A7DBE5A1BC2C625E8632C678A374979B 79E8766950239EFF975EF7357F16D19D85265B6A58C48CA72A2B9D0D87465D8B 13DFC8D81A07C04E4831CD7CC3059FC8E01F229007FB6F91A8CA16FE4F996EF9 722851950D4164BCE73CB5AF16026693F3C902C59ABDE00E082F641D625FC65A 30ECEEF7BE8ACD608A00A5E4522C659A87510127C3FCCE4C363084229774FD68 226F39690C39AC889AADD9212A94B8DD07321D517078D50505736A3F8E5129C3 B5C4EDE1AB99EAC530C4CDFC7BC68D05C7C6146B23325BE515F99810CA917332 D5F9323CCFC730C978CF6044436E022F420846198F3B18A0053D8AD1F14B935D FB495AFB61C6B838E49CB7FD902E2A67E1ADC447B9BC6DAE621D0631784F3B83 B247C32C109E6B7FF488115C2DF1637B1CCB5C676A47A76279C0DC6F9F93C6BD 2A9CC74735C72684A4AD0961866996A36F698C3A4A01FC65CFFE66E35F3F2E91 F63ACF5E1FFAC820B170D3C345005BA1E8259EF832D410DC4973AC14F5CB94A4 8BBAE90D3C175DA33527B8C415093E2AFD7544CFCE5DCE0B94DB59C54678F854 EABEDF30E79B9AC1D9A72667412419FE2AC4006495F544D4E01E214B7C9B14C9 4849423453D4004BA5E2F7A3766E00E5D91FDB9EE03DBE20BA8E66BA97B41A8F C92F85E8894589A06ACF05C530DA84E8A6EF4C1F7E7E1876126623A3E40AC199 D78300CF131B28CF57E29C4844D82F73C41FB4EFF4071D54EEBEA117F3B59407 475C1EF5188137936025A91FEFFCAC4EEF132BA9BCFF084D0A1ADA4C272CEBAE 68C07F00EF79CE8381F30A1F048E9A7D40812B01ABEBC8BA6D96FCBE795323F2 ED8F0BAD86481A3078EA53767957B52B4ABA1D8C42CD27BC56A15C971C3131C0 F976446F8FE9EC7C2690C7037C0F288B77E7532639917BFD5CAA4E9ED12669F5 AF91BC12C2EB9FA9EFA132380381F2F4DDF6510B8919986D1143136E527595B7 F00A6D3B495B66506E067CD7B80378B78C09CAFCC458FD92D0658E4F80352BAC 400BC7B35573DA1A9DDA980F422A63F80CCA349C8CA09D4E8D9FB18788E0E3DA DD7089731586318590EA7AA2113A6F022E93D06BFA669458B0C044B2C1A68658 5C3EC5648A54DC816B31C28D27F17054EA3FDA0DD3A63F16F9F8D02E94D35453 9FC44EDEFC44D52F334B56C57ADDD5192DC387517C604C2C91AEE2D04C39EFC2 806D41D61472DAA150EEB2C19CA7F378CBB558AE0654A54CB1C622F61D5810ED FA32FC0BB40914CFE25F234DFCBDC97913215CF8F2FC118D6A877A21447AC2D3 81ED7503A53C155FBF2E51F738AC7DE81331815CF249A2DA7904B9AD17121911 50A4588F2E19328EEC373BEA982F6CEF5851F6F960330E86347AAEFFB536602C 08424E9F25DC056EC0D93D99BF9D91B5D04C78B734EF3B927BC799C46C36CFCB E7A342661CB68F294E89040308C3A8D805754C3E4AA9370F5A5530D1274316F4 CAFF14BE16CF24880FEF91C54F9C23EF642EF7B2D52906759DB8DFA4F60C5500 AC1FDE8E815BE0788F4288C22B08D58295D06DD85309763F5FE3F4D53866DECA 68C95AB8117DFE69A02E4C5A44ED 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM0600 %!FontType1-1.0: SFRM0600 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm0600, tcrm0600, larm0600, lbrm0600, lcrm0600, rxrm0600. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM0600 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-210 -320 1719 944}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F267FE330B57DF626EBF7C144CBECBB0B8AC425A 08F38901803917D730AA3A77964447A6FDD9D1D5D6CADAB899C866A153F41D19 22B1F8E853431D34A87708FD95EBAAE0636D632C6CE8C8A24746216DEA10FC2D C907A32EA036B850F319450C5EEAE2F44F6816A6D06D366C75DD9E360D9B2A18 87A6A24EA1491639E588EE3DAF1357CEE96FDC53B9C5C4428602EC516A115B16 B137347E3ED03B4937869940192CDEF71C0F2AE65E9C3738407DB9F6064DB42D E38A19BCC21F30DC69ACFC17FB5C81CD536C0E8FA6F05081FB5CD8F85031FA0D 119767F746B580E784CD0928454272AF2B8FB4F5D53F2F011685524517BB6B38 E8B42394EE37942132A010B6CE3CFE2E6CA24D320C12D62B1C9D401A74AFE7E1 D4B2B0968BCD3E63619574B096BD23B59496071FC1536DFE6937146ACDD7CE00 25FCE9918F9F3439D5F9BF4494CC501FBB4894E8C454BF46C615A2407776C621 762E39A14708EFB767E2EBB33C8ADD59B3A589F3220142F98A253A164ABC1AC4 C32C48557C507A9E3021229008ABA8BA85B43B193A537EFE14EE90DE56EDA1A1 CF40CE8C0C510EA30599B1381005621984F2BD4A8B15EC634B26CEFA8B03CF43 612FC97D3C94DBBFAD6F325B3E3C314F0B0AF5DD1BEF045D7E5A054D99EF3E21 91C1D5C91A760D90DE6D62BF425C79A48E381211A57F00B667CDB83B64C9DE6A B51927AC3BC960DF603CAD5C83103FFF8914E3CF5CB04E41E83755C7BDEA9AF6 2DB7397786EF7AE3D016BAC5D3C49F64A88C2F870D014CC67DEE79BC42EF5073 0A103BD52CBC5FA902E2A3E3633113BDC73CC76B8BA33ECC79670C7D91373D11 8D8ECC4AEFBAB4A4960FCE4C04196ECB705D2B910FEEFF1AAEC0367568FD5FFD E7E732DCB7A1F4002F04E2F88B0FA02140AB3E76B9EA470066F36008C11DB4FB B76B295C99C4EE2418D3CB3D3394DD2972008E79D1F3E208CC5337F9C086062E C3722F1805B3E415E942C001F20E9FEA78628C8E84AA5034CA2A8822EDE8FD16 01F4346D8C9109DED708E2ADBBA63A7CDABB586764C524C2A3167A66094DAD9B 9CB52647ED165AF16EF1BD5F5D15667D04A4E55753145228592C42BFBFBBF763 F8C66007D7E72A81DC4A4157AA3CEE39F00379C736D07A87F9D3B03EDFF918FF 0F7AB7C22E5610EE5F4A5938C92C6A29E9037EEE92220832FB00C2BF871AA514 A2E87897ABE6F28E8E7E12723CCF1EB5E22C15F6AED61CD52A7BC02B4DAD3AD1 2EA9CFC3BFA870214856B71230735CA8CDF47287CC3DE786B58AD4750E1B06F8 0BBEE474CEDD5B6DE63476BC1C6A126A6C76BB597D1EAEAA55B461D8EE3FADAD 3C9F2BCC49A0640C3F9F25FF0BF3217EF229757B5A74386DEBBD9429EA9E146E 742FCC8BA675AE7AAC03CC22797B7D71DAE6A6EF1D23B50C2B313B042E15ACDB A483F269691069D8B3595E8B485A16A330E180982ABF6E443CC14A126471D2BF 79EDC5512B75228E70132A916711A88E09218A7C70E4EB6AD127A1224699A2F1 6475999E1D74FA8A73F097DEDB952FD54E0297E58B4F0E0738675FCE0C12CB71 0B3026181F8FB67C9AEF72CBD4C77AEC45656384C054CF8FFA6D183D847D78AF 1EE751033C006F4CB5E04BC3FDCFEBD1D9A5C34BE3FECFBF56C20FB842C1B766 9A227F1F250CEE38F35DF7186EDC65425F4E8B5EF9F9E6AE360F2947B83B63BE 731868D984D303709ED9A7F9F0FC0BE4C5A0BC75C3CC55BBF9B46FE89A24287D 2948E0F9CFCB7E8EA543EEB0EDDE85DD498F637DCED9038CEFD753615D5ABCCE BCB1B4F9695B8E2F53ECCDD150DD4ED9B5EBC8ADE67E5DCF4E440AEF939C69F5 C45FFD14F04A546FCE16AC611A73F944A3E679CFF300287451189EB328E038F9 A91CE40B6143369CBF8E9D67F5B865621CC5FFB1FDF088978B96F24BFE5A9F1C 75028E287466804D6AAF4234D72374D4E8DAE4717F17B86B4C6AB1D96AA5C41F 947B80781FA3EBF21597FEF0DEAFE7F9511E9E965D487A5315073ABC2FC10E02 24BE7F4D9E2B15FEDB0B367B776C524ADBD237835804FF38589342AF7FF2D199 8E5F3C312976040390C9C2623BFEE8E6D97E64778152B9917A20963243FA0A64 273DDFA1C565D4EC246A4DA968A2B5587D3AA7CC6156B8DFF94C273BE280ADD5 B6A7E50643F362EB36B5F8E4888334B4BE23F932D90AD2994C79A1E0C0CB5DF9 8F264F1BD94D7E59E41A41E7A4D00F27C2E1AD8CAA72945C94960E17F1A2452A C7CE2B0B8C70D65C67965489C4705E278AADAB332CD5AD93AA711B5F61C1CB3A CDA15D8607D9E5AF149C40485950C8BFBF4C7E314BC1F344CBEBE5CB89A93A81 3AB558B99F8EF56ED5B74C01767AC5FF37F848981ECC4C92B193AFA56437AE5B 8506129E9AAEA996FA9402734ED86FFE50F7406524570EA7934533DA7E3F6147 7095D537A796741EFB71AD5605E342BD803D0DC48342AA2D163C788429BDB557 669ECC707AF9C9E0F86DD674B1393171CB6C2736952BCB3C63AD128120D3B291 ED19D422F624A59FE2D1AA6B19DB4034A6E26E9097BBF99589554068142EF21F 2841A59693416B6758AD2FC6CADE8195C22B93488FA3691EC1D3BAAEED6C82CA BD6D52BA08F55AF52A7E1ECFDAF8E39BF35DED0B12D4145F5C61B4A1A2249DD3 0750C755DD1269291662B7CBC32511D668F859928989263FE709EB1DBCE18151 4211965E5B56B380917B2C432F0371A642EC3163927CABF282C835FB15E1F1E9 BE321719850266322C59C9E11C90C9CDDA9155C2652E3CE38E471DE74CCF9C5E 829B05C8EAAC6A53FD8B52C0141D8A6B183CAEC7408077B9CAC840264C8A460D 0A2A6DECB325BA32CFCD54C8ACF184707307CD76A60E8F85B832984D9FA1DE35 0AD6C69A793520439F2106BE3B2323379695E7E24A345F755D5941A96F647073 AF9B3960F98A4F749DBBABB2C65EFFF5471C3023DB1AE200E2FBC6B3D0492CA5 A50A0F997B30F6D4898553A4A341F3E0038829603C9F708BB748EF2FABFB9674 4B995EDE3ADE08B95255E29BBA4270ACCF4AEED79BC91278D8E158C2AFEA915D 0F4D02A0E52BDBB1F743B60BCEA6BD83D4A2EC5F78230A78D88BEE8E5AA5E9D3 1094944CC86F8BAC2946C3DD5F5124033FBDB5D8FF066C543000657FB68AAA09 D5E72A69F9739F87171FA2AF5B0D1EB4B6F55180E21B8C07FE486F93E2E26583 8696F8AF55570F51C6F3CEF4245E622D47714FC9FECD68987A27BA114B7AE9CD 3117B29101F5BEEDA14553BCC08E1B92C2E2464A453664DDB770B4451FFC18EE 0AA452F417D276CB909380F2300C64ACCAEB8AA750E91BAFAC83BD44352E372A CD1E8695E2A57AC09E4A9A4F00F81A74AEADA43D105E0B3F0A4AE835A07ED5BC A0C69477CC504C023A84591D8AB4A00607866794E7E2F9A2B89179CA4A42B33A 04338CF4144D61D939425066E8C497C166E1B2A18C094003D174A42C50B6A3D6 7D571FB57B9BE088728150E0A2C217C6F9AE787E8E4B5D6B22B80A23C2D6CF25 CB749E67AD9C7C0835651B65B0149330C96C6B1FDFFD8E22C885D969CD18C61C AC91FF5BB6CED369EAF84DBE1253BEC8685109E211FCA7940FE3F097A3BF25BD 873AED44148AB87CE63A1021B0A1895306C8D08B0A71E0C9039B733D96F95A77 46790D67CC0E59CC28EB6050289B099CBFE4DF60BA3216B767F3F141F9E9D125 795CA2DD5DEDD4BA1067DB4E15891A5794F8D4E5B487EDC7DED583C776BB92C6 60DC8AF8585187CDFC4634F73602BA6119B95B760219E59DD6207CA452062861 7E765E30EC2994BB4BD3513BC3E12A6AC05B250302BE7CC4FD908EF361960047 BE7B46D402DED493C2E162FEB44FD680DE734AA1BEE176360C9D4729BC929A9E 17E96719D178A8DD653534500BD01EDCEB6943BD88A24F09BDB19B1D690E0261 F995E6C5129523FE417DC1414E8ECC5B15EEBA300BFFAF39D5E8DA57C9C85020 5DBA7EC8FDD70F6AB79683319344C43C513C35AE8200ADCC2E577DA417FCF104 B566609E79C54992D4FCF6767219EAC6E10AC5CFD56DB93960EBDFE9ADA57878 16A38973CF4CDD8D254950565A74DB72388463669EF26D6724F1A7DFD7880AB8 29B8B472A70259B3722F0FC2770032C3E7B45ECBAD1E993050B0655EA7FD5D79 C29ADD7544560967020310D8A100D741AB7552E3E595E00168BB085CC5D0AD07 71D60753C5CCFC7EB064FA0A095D7A11E8CB4A9D15DD5F56DF4FFBF19FD0FFC1 DF2B676BEF8AD91EDEBCCCB29902003B36D7CCB0A2565DDE48A32EFEB078DDDF 16A827CD9AAC53A5939076FA1F1B9709BE953074BBE7C3B3F7E242872B2A0EAE 2EF2175BE19973D1C2649B9380D4EFFD55C4155A09CD3CEFDD205A2DBCFDC2DC 657556359978E404787A27D07EB7C0AA632EBD3B5BEBAF0616FD824A2C1941F1 EE7BAB40854C0CB063988AE1E1F452F5918794B3F51A1B105B1C995DC082F34B C83E5DC61628C8C1B52893EC5E3A2EAB2BD07F3F3D64DEFAD5F6F74087A0A87B 8EE2DFB49CAD1A5E9DD53E09A14734CB2AE1F68523081643DC29ED40D601566F F9F4DCB0A306D4D73780FA7E5E46F4074B66BC3EB6D74559E2CDFCCBAFB1AC34 7D04A7EAD48B2C0A60685070D6D5F11D57E723D30751417516F2865FF57A92F6 6170A5D8B75EB877145364C880095911D3BDEDEE9C2DAE7E6D248BBFEF50AAAE 92F8536E8D473A35FE9BC055D128AF38AD368ED7629C46B2CB7D1D12A59C4155 84C1F18A2134F7E062B1E34BADC9C6524D9749810CA4715EF8DF43030A2EFAFD 1DED9D5E42EE185FCA0E5C13342374E6254C16904F73DF47365FBC6DF73EBBFF 6E9927D4775BE834869D3821FA091FEFC02B248B6665B55E75BD1BA2C881A3AD 2C54EC17B8674D22339BE735E306BA11634B947AAF21CBD08A2E32D8E0864FF2 F95B1A8F65FDC80E3F59411F0996B35178A3EA1D91E7B6E99152977605306C25 4BB8E2109851280518BBF10BC5910FC7FC4C657600781926DAD7EDDAD3FCF137 E1171EEF0794735EE0A8F8162C84F23DB1A57DCEA9747733BD3C0DF71184DFFD CE57BF077E6799589EDDB5BE6BABA56EB49C48C95E27C4470E3024A309D0EB59 8A97FDF2515EAEF808054C145953100566039F5070A69A6CB34D2004D0D4F2F9 3797E81EDA707EC4A5E4124E46B412A7C21AB713B6EC280CC352C2F61B59106D 35F59E74D46C341527B31973151CB2D3B2618E6B2A23E7BE10876623088B4B8B 19C78C1A0A48D9720307770C222F0EE3C6C8B96AF7ADAF6F31B526798F6A5ED0 38792C6A3643456412041C433BC43A2D385181E3F22BE45C2D6F19C0F7BD13EF 65571138527C67DCE9D17E290DFD6EEDC063794BF79139CE437135700AE9FEB5 974D2D76267B95011177AA7469F29A8C2B5E4FE8B2789DE5115F6383D5AEA760 58C6F4D52659D651773A61074778EBB7DBBB8A247B6CE16FFA09A3BC00863EA9 C98E6450BBEED01B284C5CC10887350DBBB232324013332B6952B84D332B77AE CBBC3B3519423A338284B93D12ECB884FF5107FA5DADFB97F60008C8EEC8B1FB BFCE77154A6054B050FBC4A6B84956B249AD29281A257658C8ACF184707307CD 76A60E8F85B8396222381E8B9336A59415835D53AC484C577F5FD652111D4EBD F7E0C87841CC9958B0A9F57F041806AEE0B726408567CC9606DDB401B8F6432B 57E55D5001B8E3306F74A3159B3167747CA2DEBD0E86FD9133D41A1C477BFD22 C6637D0221DCE95F0E420DCEA7F1C67BBD8D4A5AF16733054F11F5D48A2FC026 6476E169453EC2CD907011340E49D3434B2F8F117B57FBC0A0970FB43F50BFF8 A76284F272CA3E85CD4C89443A083B4EC77A8AD95CFECBE96B309C6432795536 5286432B7EA1B9783F6080119332DEB307102D23B781B43DF88B7552DC8D3067 8100141FAAFD9FC9B7C3C2BACB269329C468F8709736BE73C4F9CEB30CC26A06 2A695D13553F3D0834189B9C68645F6D94A8D7F3E1C5696C4CBD363437302977 92F442EE498596F8DFF1F24584E62034C4DA961E33C4F153BEE36669BB3C44CA A1BB6D721284DF66C11AC9A449D4E21077B0F736EBEB4F995A09CBAC41FEA3D7 1E0B1760D3C7601193219154A9698C0DDB550C986370360F2593FFBF7A3BC39D 44EB7F6CF89A910B180E6F9B009E3228FA831CEF0158AE8E4FEA94F930201C8A 233A8B019ACF3E18A8BA532BD69AAA71AC185400F5BAD977A23B2376CB845EB4 6EDFCEC750BE37AE380E3D2BE056D20AEC2CBB16686FABF7B8BB808537ECD6F2 2EAE49EE6BC8AE75FE8ED2D7879C8C8004101CCE797EC38FEF05CEA09320E959 CF33FB7371ECA3DAB1845BE0D5B32B1F637A398B71B94EABBC62C976AB157CDE 065F075D57D8FF0560B676F4FF319CD64546E560F15158737C06112F33255B5C B7BC87D5C3EE7287DC756C9E6F25277EF472938F522CCEA4ECA364910DEEC061 B2C0E9DECE172069E61AE3BF43A716200B83DBA7B83146B2914CA758C7503877 0EA4F63B56DA163D11517493E1808A4803C2BA33A438CA1A996D29B4A70F4B0E 6D0EFB1EC2240A77F4DEE558D56E14638683F62FA57B40C833938AE26C48F97C 4AF11777C56F540FF5D2B2B39892D4E91FFC378912D9C12702B485D892C4ED21 BA36D45C023983CCAB2A4224433A5AA580306732F32D92892F8130A9819A5D4A E6108365B0FE92C8986160230147F541942E0742E4B85CAEE82F1D016657B024 0548802256FCDA61357A4A1431FBC61DF13B474825105848748E582AA062856B 46981F758C0B8E4489E68176134C53EFBE70D7B1F73E41AE286B0654BADC8412 98616EB93949028A6B799CEE9BD4A822DC3F087B3E2A2915E0454C2D689609CB F452FE6213C20E30C3F4E30490975AADF23F2C763CB339B5547BD1FB67CFDFAC 4856AD3BCA02FFF6D54DC35284379FD5E8B16748ACD968871088C96916978229 84FAA4DD09B614BA95958559AD18A419D9CD373E9632DDC32A116396E2A7FE57 C028377267E0A9D40A26B9F322C3C0E16509602A18465A10DF3F0A3077768E0D 7738E7A421EFAD6A93542B26C28A9D9D736D429DE5C08AD693E0B58210820BBC F0318D084F4A0B44DD2BAD04D646478F84E4836D27E70F4B3D1B4EDF0DDEC217 336872019CDDD59DBF40989092B9DD99C222A8853E8A1605091AF72CC6D6D0BF 556FB0ADE032280F7F23FBDE7A4174B073B4220244808A443680B9E71DD38B8B 6BA6813BD4501EA004CBA493AF7031ACA99B4D77F27DF349735B6CF705C98AD7 1474C52566828F41DBF602CED896AD1346EA185BFD796E75B942FBA2C6D0F13E 72311DD8DF9777CBE770CAFF612572884D3AB9F3F8A2A75E17611E029C1B5EA8 D80FD42D0090715A76DBF57784BCD075E17A9DA23EA5FF4BFDA67F464A544179 C5B4197B393D9248E23F0F6DABD35EB11730B0439F7B43D32393F1749C4838B9 4D02F5624ADB38FF159460A2C7DDF0A2E208DE89520BC2A603C70C8A72B15CFF 9D1820E68CCA3482A28BD1898015D6B1E5C5F2A4948AB8EB589909CA5DFAEBB6 C3A0F0CD388ED13C20F497103EFD536D8A203EA72119D2484A2B8D8A17C8F281 7BF036E480352A92D61E37FD1A72861376537BA2848F6E1DEC6630927C9ACB3F AA61AEDA271E5BFB498F9288DCC8DD734B8513F42CAE6A1EDD83AC935D120ACC 92D33221D520397D1ECACD8027F005E9149AF3A7FD4FCA041CD83BC8D134C84C CDBF5553F811DD16F3D031D10C0815C456C938FD91A29C5DB7BCD2B9D794CDEF 1A99578EFA09A572F40F14C6B18A0ECB0B815761525177B3F3F7975F624347E7 45919F60436815AFF541B7439C57F3B90C59647CABB5F7A369DB7A316130A640 FF33932A8BEE2BD738E040F0078C747793BF33ED8C96984AC89357D38B9856F8 419D057A413F748E5BCDE1AA1646FA00A2A1ACA0475A655966CC3A9EA7C866F2 2045C6C6577EA6EB47A342EC5FA3939A2F969D2949345DBD2BFA8472A72202B8 44E94471D7B013476335D39CCED88D828387199244C847A68F1A9E8FFE7101BA A4F32284DA303E026431BC892BD886F2285BCB09BBC8A2BE1E24528947E0FFFE 466738C666EE64B1AC50BACD724017044FAD26ADDA935A73E18504C4B300F405 FE58D44AEB2C86C4D9DC15103594EC513CBF2F2358EF4EEF43E33B66EA8C61DC 81040F33BE96C6AD6E4F493287533A5CD92C4D45E852A40D1B334269669101C6 39A25CD432499ACD831B00F9708EB1ECB3581944CDF60C5C6702D2CD20E367A1 3CB1CA23A336173FC1F65CA5AF6D70FCCD46CD6181C4265BA5213F0EE69E5163 C8DA30F989B8F247C6A0B68529A7F35F076EDCD31E8912D75CF4250FD0B65628 9C3557FF905179698213D6CC959D44369C22590457C024B5BE2977D9B494261F AF70814193EB795F7B3D063DC5EFA4C4CA2886B45605D9D03DE88DBCF10EE4D3 01109A209CC79B9A54C70F5370E0F6D3F0921A02B0D1E6068418F41A007E6630 3E8888CB9C0E8DB60C589A53E22583CB48EE8ABC62C64CDC2D54EC614AEAA2AE C600769468C5637E1E141DE2644F058C0111390C19C5733E89AC3DF461AE57D2 09909D7C58A1B8022333DE3F743D030D2483F753272077B72A686387BCCA40DC 033CE8F303257847A99D2C2C69C3A3F1939BA4C4B3251356C6547AC035E885D4 F7599B1C00424540EA079A089B53657D08318B70D386CEF336D908463F9DC9A0 9ED7A9D4BD5E272DE77F6D20B6E6AAD4FB183DCC97477F8C211E8ED58555035A EC3BE79DA8BD45AF96FB8DE5CF10C2CDDE6A14700276649D850B6E22FD2916DC 0A74717A3038F694FB2648B844346FA995F89E2C131533D11B2CD5F5F47314A5 920AD1E78876AF5A84DD01647B9536B6C68006FC8F9CA9609A2718001316F0FD 040378661B1E9E62B48838A442E796E1122E5F10F2F7632484DEECFE48F0636E F97461C9314176F03AD3B6B4FF58527B20D97F32FFF77D947B7ECCFCE2402E3E 6AD4A89003113410B06E9F990B9FCD99447E0C516A22A3969806AC8225FCEACF 7C854308EADB8BA0F53774A492FE177001F6930F992BFC8F72C57446ACC46D7F ABF5F5DF57D97EF5087C172DAB427ED4451592104309CFC7962DE0CDDF3664B9 A39ACC72FF67FFA5F6BFF5B681E745CAE05263C7F687AA538D039561F003A974 91E07D57C671D7605F9D205BDABD55F09CD63505EE77B3ADE7248B211E326554 73C5681798D28C7B1963AD2AC7E143644E936D20D0D9A44241610D53AE6A1A53 C64A45A7046A62A5DDA87BC8D355C9C85601C5DB7FB60F9FC997023C014372A8 26C001E8A48264EAA8E26DACFAD9A265F84D535A8A3EC9DC9EF6F1E1AD8276E4 A5A520E2759D0FFA34F4471C7D6005D9FA435C6432BCEECC0D780948031C9EE5 EA7AE1997A6B34A9D3E2A14B548BC60B2A6AE455B13C72A980F6312093F1A693 C457CB98BD6EB94A70B1F35A79718AF6BC1BEFB267FEC472CDA1E605AB55D980 3B07B51D6C62169A628ECF084DB324B01E550D60F47B93FC6CD4935216385BA6 A4CF3FD8B389526B0192B623BE8EB3E48CADF2C8AF6C9EFD52CAB7B3E4248245 66B2C89DA14B5D1774FEC1F7712C2E268AB4F244C1314E8E2B37664686A6BC79 B8FC762F44B740A679207B3DC19A5BE430DE3B534D1676FAF8121DF0C1C992AC 9CC9F51B2564166D55A9878C8F3509B2C39E830F5F8431EEFFAEED8A86E56638 6C4E5A1C1FEBDF3F1F385260358504330449B1865ACAB1DCD30399263B4AD1CC 0FA3D7DFE2C53672D2BE1EF5B375FC98C21C8B2AF333ECAE621F12179C9E4647 5D97D33027B92C4A9788670EE2465F95B83F8F0CF61F3275C4889E9CC2DECDC4 B5D32AA948AE738F38C8BEC8405A8286CEBFCDD7F4D8AEF1266529BE9E7D8B7D B8AC8F315F3441B03AC1431FC413179BF7B827C7B1F8D9FCC459BC2076915772 5861A1A41605F3C3208762343D6484247FD094ADFFF4CD9460C85EA5E5FB3B97 0FFEF8405E20CD72FE83AB5351D7B776D2A36F1BCA5229132AD306E39C44E534 616B3FD9CC32A1CBDE36FB60F72DE3E1FB3813C1C8334F7FAE86C0F1380AA074 48A621D769F05C8053ACDDA5DF00DF9ED460F84C2B3205F4911DF3C24C45535E B92032E66FBE5C4AC2A078F97542D6C800EC8320B5278DD643900B9DE5B6FD10 3D2DE1F3B1E3CFF9D3A9540ECF1EC68E467174529C5FC31C5327270A05BD1C3D D1B766C581569F76A3E7ADBC7E4CED76E1D4EC4704BD05FF9BB1E463EE135D9D 9C902B17B51AAC0CB74396BD2AD13EAFA579F91F534B15A8343313D86AE2928B B9D5104751F3EBA27244EBB23375946819F8F8E6F082C7DDAE3704EFB0E4E200 BDC0C8F32CAF4ECA0423E5B04534196A0F7EDAA10170E82FD77B4516E2574792 0F228D11482C180E6394B532008D9A0245EC2D9C426F1101E75FCDBD54D86339 19BE74217DE4C1EC9338D223A3DF7E176A18E596251BE474E1CD0421AFDF8EF8 BBEA17C43392856BCBC87B8FF6C47BF25B05C49BD925BF9BFDBDE2CC82C9DCBB 3F0CFEA4ECFE076382F2E96F2F1C94F11476BD78B230FF8AB07B2371AEA86708 FA99651EA4EEB6569733B4D6998F7BD14CA11E9F5F226CAA2FE6388FEABCD903 4F7EFE58A9C1BFCAFD91F881981FF7E1B6A4E8CAE557ED66355723D201102998 D39066D46524EF15561308B3B6694129DB89AA7158495B3075A43E554964545F 979282A54E58F149C2EEB2965E581964DF1186811BB519B9FE8F76F5001E4F0D 4D62F3D99F8E1916F8F80D8197026C204F60712CACF92B266F6B1C389EF0609A 61E59B1AF384D87574DB7A197944E1DE566C84F272CA3E85CD4C89443A083B4E C147C2D24DF2716FF77F30AD5A2B83CF7E29315C1A44D405183737CD197CAF85 19881DC6FEDC28B0BBC0CE198A3DC7471C53D6AC98388888BEBDE6CBE11AD9EF 207A09A1D19EA18FAAFB8B546F7C26AF23496D88825FD85679E3AF3C5046DDFD 43C1D0E4C1A6FD7B0AA788C83F264CD67157D4F9FD0EF0E3B8B57FFA336F406C C91C048711EF040EDE012801E9E43AC623E3D8C713E7BB5FDB2F2EDB81643DEE 3894B23ED81A1B1BE73D1BDC53BE29CD77753162646B1D7AA69FE08693F7C3A0 CE8C480CE2FBB73C1846FF96CC6609E5C72EE1C2C5756808AB326DD8B689D6DF 97B588CF43E8EA56D72B5DB6526E7B4D21E38A0900476B1E2CD8BDA6BCEB6C77 8F3999F3B1C3BEC3FC3503C9F4D36F563F4780DF9F9371206801F0CA5822616E 0723644F66AB1F77AC6E924F033DA93330C41FDCC8DB8C4D2466A7AFF9557054 87B08F99FCE99718682697AA59D8FBB1BB36A193F782D19B7423E732584E8F50 FD61EFD84E2E4BB91C808693E66B33D3D4FC762880B588F3671FACB5DB6255EB 11CF42880ECCB4EA42FB183FCEE44277F23B0D68A83505F65EEBD225D147E713 A9AA6DCA71E657EDD873BF96781212BCE4931F8B27BCE943157606C12D28C1A7 7C92F2C2F55DE686B96B4D4FCA867A3586A992C2FBB1D9A2EA800482A082E1DF 27ABED7158F2F1BDCB9AB9A4078563C1266551D8CD81FD0BBAED207BDDE15669 16A141F41BF0471E32989755B7D83FF4D1F48DE2F4244465DD080CA9C04B4395 5D3835B3BA214C10462874E1565B380CFC3F73CD550B241619ADDB1B2C0D8A33 86EB1FD6131A38581557F61F3299B3628E247CFE793712EB75BC835C53C1F970 3212F9A5C8BB090324A728A44706575506D08B278CBFF582B98B6813E529989F 51B10F0445DCD1E01F1EF110156DCC8B7E774F912847080F423C4F946FA2C256 F380F678A62ADC9A5F748E83FD16FA4A50393296165191DD7EF7C41A19DFC1E9 B002376C0B35D4B0620C77644F56B06D7ACC7A1E9575D8FF6F8B61A8886CDFDB 46767C44FA15BA4CDFFFCBA64197AB20DE81788D8F106CBD33A6D45FBB5E156E 9D75162E7D2AA7619D8927331E648C80D80E521E1C27ACE35F91C0E1BC5DE748 5F658B439B3A711C2DC1500DE37FBE4FDC2E699BF179DA515A38AB6181F492A5 69549AB791F548CD33BEDBC3948CF526AB2A3E0A7894363EE42C1CF5BC659724 D8B9052FB70954D0922E55FE6751257E47D26E7AB1A0DF6EA3E3BE7FE345F753 F1BC6121E3413658C0E2C36C0D34F2DE788DD70A36B6A8BB496A6969ABCF2DE2 04B8BF1FC7D06D3AC8E8EB4099BED81DD41CB40C9A4340489AF17E063FB3A768 C0156DA72848745C4BAA9E8B5455322554043F99B66F7E21D717B806B2672296 E2823BD2EE1629AE7A70CC0169BEBBEF0E945DC7DC15C2099AF0806598A862F8 DAA14F826EF24EFA103231E07E3F25695F9E79C77BEE3EE1F27A10B32CE408C3 27FF0BA67D5E5F87FE84F2010F195C232C7FD5A068F6A42402BA3967B10B0CCD 4E304007ECDAC6694B5C5C1EC6148404D290997B038CF1726B3E3F2B4326FFFB 8F58B89365B84D31D8F36D1A6FC954F67E8941A76FAB975F58752AAC531C3CEF 406FBFC6D05AADDAB3FC976E0DB7F4D8FD546F0A68E6999FE1548722D8471502 E4E237722DBA55B60EFC91C23B8FE6B993CDE3133136F8BB54A3EB863B4C5BD1 695BD593DDB9C8BFCD5E673C361CAAA932C95D2C2FE53790996AABA462D736B6 DBABE82547EDA4208F9A07D24F8E17C5A19790317DAC4604A96808B1094462D3 7A3B63B500466357E4903334E217A510E7C83A5D7857C9D1A4915851952589BE 7219D749402182E7810F4EF1A383E651211C03A1E6D46589F137F3F0DBE4C9F2 C07D4F2144116792DA4D7A815D95644A19B2292357386BFD24B880132C032BCA 772423FC0FFCA7B0944A031AD69CA18600157D955507D0BB8C122B4297282135 4ED4AF84948BD23D6DF16652BB836DB1017E96CC1BA0364985D6E1C9193B76B4 07C8A60296C681F25CBC0F2088E2822CAA0F1C5275ECDA941B7A00ED409479B2 8B94CD7FAB420992037BE1C0BD1E7F808965475EBFA9FFD29E62708CD2D6F3A7 7558495FA9E8B594BC8F039FD534727E6B53A52E7184B141382255228978EC2B 095A47FD4DC55427E61B9B2919D2A9EB39BD6D8F6FEE8F542A42078E4DD71A08 D380F1EFAE206818C7BCC1532ED57C1E3E4A0EB5D0EB0AB86E72B8F384934DA4 18B375F394D0A1EF6BE099AC20DC2E530C9E99603DEB72620AE45F1C046E7B34 2D66A9DF695E6C2ECD03328C7D0F204A3B0D77A3C4DF3B43C4D57AF9180BE93B 8E83005B7FCBD4C77AEC45656384C054CF8FFA6BB679CA48C888B1A7862AE02D F232C2F7C19818287A2E692C941D88C63D583D1AA7FF00A1AA1E08A3F241D8D1 2CE496182B15C461ABC61909D66BDD52A6D7761EFF3FF4065A4DB9789CFDBC87 2D903F0BEE573BDBE15BEB4275E283CD196BB8FF45986D96B7A1E9E8545B7208 71B879C5874C18FB39B1F78734A1595871E3ADD1369E83B1F17EF14615BF1C6C 557011A433917F71FE4ECD6350756EF653DCD4039DB729F3ADAD09EA3A0AA14B 331DD9B461C8298D8FA3A5769147FF4F8908F2FD6CBFE416E7BACC2FAF398975 9A7085B43B7DDDD33BCC9071F4F96C3CA91B660EA39FA4C17F214AA3284D5400 6813B9300CDBE800B60F67191E6BEAF8EDE7CF3686FAA0609C95FF30CEB3DD66 C24C534404F128F8467581A6FB4A16087A0EBC9653FC443177134C0176201CEA 21D859943D73902C2873EA0AC11DCCEDD7EEB35AD055FD95258E6816770C93BA FC0CD2293012310EA8265F72E2824C605A40A2505E9E31AC0B7674D06DB1E237 68A45863BC7A164417242466AA8EF9FB39091ABB2B18D727B4FB3C74C4A46DE3 FE0D6712111287AD00D2E826FDB058833AB8ABD3FB181AA07B54B45D934D095E 0F005FB7464C802BC8A7E5FE9FB9A11CCA202C629955FFEC45FBCDEA39CB068A 1AC0548BE676D7B7E646540DBDD8EE81E94C0A1D22771DDBC55383CE68ECEEAD FE9887439F0259F11E88CF742C2DB2094799542CA4505DA876AEAE25B1A33F64 2F5DE1740BB0CC9F750D3E83208C1680D7EC23752844D35C0F7A8403B2CB2AB4 0AE9F9B35321D5A3D7A2E30D6AB1EECF7EF22863574914D836AB0E62E7BB23FC DD72756F06AD2EB54D261AB5EAC44985F2B8E409E73E461B3F4055586C1E40D0 7AFC78D88875305BAD66C31E84331577C0B59A17EC0CF408C28694B19145CF29 56D98239588E6778F8D57A00C472CB6EC6A7924FCE4E3B9815B8D3B09CAA59B7 9FF3B2407906652934045E4EC5A4280BB4D0EA5778B0D747812CBED8EC485357 AC61AA4FD6DAC0A4DA6CF1EDD53C5AEB7FB6D8FE2218E27EA406D7B574C84112 232C280E51C76C276339139566DE3A93DB28619E8419407826AAE3EBC4181757 961D33C8ED51EBD6D957E70FA5EF377C78487FDCDB539A6046DDDB512666DCD6 594737F94F0F1CA70593BEF1471541002A0798629E5F84D34DA4AE88CE14553B 862CBF5A074098E04A8F84C92FC373B02284F9060C62A52D525F367C2DD31C0A 36823DC364060DB596FDEDAFEF5C81AF3DF3C8C65321DD0AD9236729F742C64F BC98D27C9E5A8414F1DE346DC401F4517B22EF046804C2E77DE574150305DD71 CF004087F913EE0CF4B5284E666BAC7789A24E2E273455E189047C61C3C666FF C839B92507CF6672633D5573BAD829CB928B709B3AAF96C35AA6157DFE18957A AB319B72F2B1D7EB2A680D55E7E28CCFC4F8AA0DB3B168198AD580430A54AAB1 C32B079DD270347FB9CAA6034AFE08768C40BC17F44C6CA1C17D19567AE00FF6 8B3034B2F99BD16EC9F360A9928D2BC5F2734A2A5DF034CFBC59CB68965BD36C 91B34553F617C58851454064500604048EAC8F6969FE7A7F4DBA6E41EC4F6114 F063574D9980BF2093CE7B19B22A877D6A812016384F6541DE51CEBD0C96DA06 996634DE71F20FCD1E2D1CD4204BB567058E78BB69CEF394B28B220522641F10 4F43CE14301A6E98311D9B0CF5778E377F54AAAA6CE6C41E243EDA834D2AD0CF C856B104AB8F2EB0D1D575D7C86F8580466A7538C67B91BE2D2DB38A40408AF5 42DD2CC497F560F13D3B3C307DDB5048F58986451D3D7665C8288336BD21D97A 81FD346B2E8D10F423C761F4B5C25B167E15EF3A9B6D97A192495D55029C1D33 CC9675FE65776199CE7138089EEEF382D5AD4F2AC53A32A1951BCC1CC6D80E28 F9C32E54BA60FA10F2C451F130B1775FF3B7B7D94EFD598C7740A33180B0317B 3E89FE3A8E534F197344DC7F5D3526AEB9951C726032A6B9A316F7E38C633A0D BBD3164EFBF2FAB4C2848DFA0A89C77596F9B90F792B245D1E503BB5F542C08B 8BE51CA65422CA6E434B302CB765851D873107A1BCD4AA98F4A3FEFDDA1B820B 9A237C6D265304C99BF7F56D0C87C5F251ECF957E2D3EACE8A5DDBB1D20D8F30 76DFF27A27D792849CBFE02D3C6349019DA0A94847781D1505F0ED7FBE021D36 AF04931410F4EDF9F08A80A7F1C5C5F7EE2A9E7618A8DCB9AB09B39F2DE66A66 1CAEF8644FF0FA6B6901A2A1F9E59107C890E9FE8A4E4E9AB5B8EC3E111D865B BD9A17F3538440755E2B8EDA9D6A7ED3C9E8221ED89E605B63B27E724FEBE0B3 888DE6A7EB7C4E33486B5F50A95E167E3C5FD5ABF3DFC38D2CE817B1DD2B7CC9 C8DF9A51A71C43168B6F7B8A761686B85CA96DA7689FFA350093E5409D6261EF 5051343DA41EF7DED51593ECFC443320FA066094F341FBA21304C2521964DF11 86811BB519B9FE8F76F502FBDC8580550ECCB910D55B7A327DF7FC80623922C2 AE735247FA120EDE4E530064810D703FDE853DC4F08F34E200D9AAFCBD56F233 D375D66320CC406B1172349C6437216B17A7500EBCE726FA308402826EAF267D 4912EFC851AFB32A449E22E4F80F05C1AF3F1DE8D94FC2A50B71898A2C8A3F55 568C516FE313143A452A60C0500292C8A10A9687653047B73BA735CFCD931126 78869F9C696CFBBA3A1CDB9D1444F6BCFB2984BE7AB8C5F0CF112256778B0EDF 7CE218FC019559CC9EDEA3BB1C6E10FCF22375719E962D5181AAB4330B2460BE 3B28414B71D626BBD21419DAD19997E6EE13E5A12D9F6EE5AA066FC7B26FA046 804A854E12F013072DBC1A9510B3BCB4D69A7648160EEBF1D6FF38B2AE92AB2D 13A001779B67D3C039A064EC49EB8252991A78663B92C2D4B4ED1204D7BB2D45 60851F4EBC981F2CBD2F0A59D3C3AEDBFD744AA64CACF8C3E0C848A8A56F97B6 EB4634F086ED6593632B5ABCF9F440CDD748CD4C742E797248AC36C802A06B3A 53AECDBF2748D9FA82BB238DE355F989A6D59BF3C55D26FDA55470AEAB4F82FF A0929ECA21A09ABD3A2AF3DD7DCC038CB06F0D3C6101011FF98F9DD26ADBFA97 A44844F2C3D038C8E66CD26F9208AD3B4DD406F83538A16586A8D7CC2C6506E2 815C787C37A4430BB10B928EF40F0DD40E215B8BBD40BB5F966E0C9F35EC6EFB 3BC325FA20CEA73FE5893AA3DEE5A4105D2A404AFDD6947B83E96466D1E0999B 1F85974F00EEA17CF4A93E4A437CFE3E242D32E730CECE906E4CB48E2ACAF849 2FED98F6F3E32A50D7195150FC8811C81EB91E7AA056392610918E369E60DFFD 97E0DB8413F300F32A623C70A5209A27C3CD940A121CF88D2C59FF69B34D18EF C77D02650A55FFB9EC3D2D61A5E37FDACA92DE31F37432FCA554E66AD90692B4 9F7A7718EA43523B54EEC002A9F9E2E321C96BA5300CA668FAEC1E8903AB7CF1 862E8A82C06C9E514F31F8EF7115E67207A8E469C274EB90E1EE48D80B409812 1942C400E928AA70B09D91F40DD67977331228E210803294D5C8430A1DF8081F 0688C05778EA6E4D9CBFE47FB2F68DA4E5F777B710E508ABD47534C76C908AEF EC6935789BFFDB8444B5A2DC463F2046491A78602DD867563247DB5B52667224 C5C327AA555F0BB0E0DF3AA1D13CEFA0B5B480F7160101E0F3862D6188AB6A2F 6AB0990778DB5A2AFE661A4BD099F614686ABBE6D30D90247E2FDC407FF8B4CD 1C9F5B3DE2ACE95AC6D212D85553FCA037D9E08599D369576040E0E10D39633C 0A637816CF2453E2FA20409EA9B70EC43DD11F506061535199A8147612F8FE12 D52CB7ED0C7B9914C16545494650D4F94ECCFA76BFF74D37A4245F13E1758587 FEE10268121CB7FE0E2ECBDB83A4BEF03D4E3242D9A3DD5DBD9E3128227784D6 BE9A703A21EE08B76A92B11D36526A253B4A8488E28072CD01D131258E7AAEF4 4C4C671A9D0B93E9AC0B5453B662111A7AF6F422F2E07B6974D5A754AD3D0D9D 238D486C55A00798C6F1874595E9EEE027E4FF7F9E729F60656D2F7B1C05E879 BDDBB71C03FAC8700CC663CD9C83D475C03CAA62D7AC009673F0A396FE690B9F D534727E6B53A52E7184B141382256D82D0CC099948E18DBE4729B2C0C88320C 5D2D14884FF032A43817CA2E536208334A24C674EAA9530F278255665E4093F9 8C7A059DF851565A2907CCE380331BA4ABC5107D29F97A8E3A1F35B330914174 E893EC0D27A42603E0306AB7BD30403153553EBCBD4E59416CFBC6226F3CC542 547DFFAFA5F711AD0949F71BF683A2C5C30320B1B6AF51F633511D4A1879436E 166811918E892631BF318F242BC959B11423C1DDCC09941308CDF07FD73BED3E D3ABBE9F264DF5FC0C8CA60843E656DC646663F306F90413190343FFCC55BC13 E4D466B67B5FF354B99536DD3C2EFE2F6D1B7942425AF95652CF8B3D78CC622B AFAB6B810C22FCDC5659BCB61EA8724A8C713FDD58F2FC9A557C38DF30977CD2 B6530C9C08A046AAC6500E45D0EBB8D20671E1A3D16D332E5A70F6A0B678076B 430239A0CDC504FB390C48DA6BCEF2C09E12DAAEBC938D5C3572A6F958C306FD B23602B3AE39431B1788F533E534F18485B0DDB143305633080047B98BB92985 6F457DD15DFB79B81577CCBC216BF9718A5AED5F1BF8A01FD12E05BF8FCF3069 59BA70CDB2554ABE017F87EE73E6FBBCD9BE84D91DA3BD4CC0FC45DD9EB99A8C A4B91BE2263FED8A16781F740DA51F07A0D34F90590B9C68F20BF153525B73A3 8C72E0AAE163EA4F91076CB19BBE00CAEFC9FA5F5E94B9DA4232E01C25AB42B9 CDF51D0362BE5F6E17066AB07F5A0C56F40AD8EBFE52A293460051DA59D4B1BB 031FF8AB4960254F1ABD3099FE129A5C58B972E926BF2415201745C36FD67DCE F916EF77E6448E040D68CD6D383B9D93FE4B3286B43A188CFEA5FDEE7BEA9D73 FB400211925EDA41B6BB8CEFBF4DBC586BB070314AAE05EC2FCE3A8ED9C99307 E7D2EDDDC0DCD0AA6741E8250C2FE2518DD210DB1B6137DB8B49B1CEDBBE923A D5A4DD5976426EE630AF1A5256F5F263055CF70CB228FD880D9C456DD73025AA 57268128664A8F12710B1E11073B216801A385AAA7AE837C9097152624EFB033 A07C37A12F60E741D6C2FE00DE5CFB6BB9A5A38F838B9931BEC0C5C256CD13C4 5EF003C1492E94840A2977D8B90D5924DE4A912E046D4A94BE5257D9DEE2449B F6EAD0CA93A75E6888534EED218B8738AAC9F6D979D7B4B0045B92A32531A792 80D7D6E9BA3BD3B736A12C82A64066B62572B09B591DE58DDF8D0F137FD09BD2 E724C6A9E484C01F444B3CD05F1762444C50A5F52360A328545303C71BF48EEB 999FC84BFEEE89F19DE217C48F1895326FAF275044E3C5F78E6D99ECF7F38A31 AA151879B5DF493C3E9353AAA14C871A230401234B34D0841835D1265B5A6E1E A42F31F29C281A493A13C2BF44F28E9A6EBCC448FDC45A9CBE77556754B903CA C37F3C938D605AAC0305E38ED948BEA12041F7030D2A06C44FD76F0EA148387E 259C301ACB34D07B0846A6DFE40CE7CB472209120CEBE66BE894C844A6D98B96 637637ED3C9FC7518B524263D7CC3C56358CE9774497239957A620C0DC38EFBD 4F4D9C52A82210A67852EE26C4E3AC6C0F393A29BB255409FBC5CF2933686423 F5C50C51FCECAC29DDCBC3E2C5DE3F6596B360A0A47F3F4B2AD9E919FF11DFF4 B18045D6459068201D4C73B95770166AF294ED71CF52A8403B77E65EBA89F4DA 6A42148F1D77D98A803D62AF18D2E33FD44EDBF12A0334AD6745873A329DA18C C489561CB513FFAF8F71E057D54A2BB4B90FF31EE154F9415CCDB8A1132B80B0 1101048E09D046377A21CA893F765420673D699A3094B11208BB35C88E76022D D8F668EC3C15AE5A5237B2126F91E438587B455B31B6646E5BB8602E03E91742 16ED19FFC2F392B4358750D705975E17C334FB2EA9C6735456D9B8E9A43F00AA C65DA9F407ED0CBEB305D7B65A3907B945CBF7D2334902D560F6952915FAF892 5212F62ED39020CAC60659AFD60D61D62D2B09E3FEF2F9169A332EB3ED496722 710C8D1ABDBFCD1F9F97D49365AC02A902A6588C7DF2F63E3482A8B880F108DD 3C9952FBB5CD94275609A25F3359DDFA94249D5B0C92AFD21E3F6AC41673634F C8094D97DA533EDD5B0C217924B512DB2B759E5028BA5DC6D3D9F787ED173D34 E88BAE9D78076BA1E85D93573463ED1BD64B87F6E698AF1B6A7314234F09A84E 63C19EA10A3584D17F18159929170678DEF6B3AD0349099C9FC2CC61A9863BBF EE0C0004CFF05E723B5699D95F2F026E3BBF8A457229E55C413FFA3442C28000 8522311F59A551A1B9DC7EDFE788F768 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM0800 %!FontType1-1.0: SFRM0800 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm0800, tcrm0800, larm0800, lbrm0800, lcrm0800, rxrm0800. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM0800 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-203 -320 1554 938}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F33528B839DFD4B92DF0482493852D12053A7904 BF6E144B948894BA0E437691D4618A0FFB62E3630B93DD190EBC8F306BB78955 34955AD847F95B1923B90644A4707B718BCB527F8D5F617EC559C70A91900E72 9A9D881D02E289B0B0725B43F5FE653ECE8C5F062BD2C10F4B9B0ED3938F84D7 FD5D3725C3F438E46A270FD43270689A5F30B1FD8CD61E7CB544F07FE57D719E 17CB8A7A146AC514A35380CC6D93840A2DCFBE40307F2FFD8AFC0E54D066DAFC 025AD2A93593551D363563A2208329634F6BD80400775EA44ED4F59B0F767946 25D1A692A6C9197B50C369ADC30DACF14BB7FBF9EFA9AC4894FE3E0A6B3245B0 7E7353569A285310D32E52C36FE2A2827319227E0B024A615243399486706FF6 9E76827C1ED6ED10CA2C9E369D5A507991070CB699F666AFA47FB9EE3D968112 38D5F4624378D9B34F8B00E280EA3F61E4CB33EDCC35F0433A4EF6D267C08A0C 5D5A95A531D8A0E1DB1394DA5F72EF2ACE4CFDF20871C679418FB1B481CC5EAC C1733601DE79FE5D9B793234D4DE58546A5068CACB9EB1D82644358DAE105ED7 BAAF89A47AF526E481D3E105141FC7EB61A5E5602412613D25A39EFCD8AC6ECB 1ED92210690BA38F6A1E1D49AF1B6C8D7904633F0CA55E1E951E9BEED4339DE1 5C97307776C6238E3C3749F55276DE11CF0066D30E5F8915995764F5EE3D78D0 7037758462E5E6F85C563B2BE74D6D8A6E0491B2A9F26BBEF3F96D39060C2A61 E9350D240836B7376C26BF40AA072B2E89D58FF493676DE5025F40C2DF37883F C2E3BC8BB3661F84D983F46CA4B943065360C6DC21CFF3A92C1D530742DD65AC 434B986BC3AF6FAE63E055027DCC30F1FDAF9EAC2D7E489A87C7714B9C397642 2F892A03FF4FB9457E509171B3BF88DBA615FB553C09D35709F6EFCB4550B320 DBB04D0D4D6B9B7B639C3898F28EC867F26E20A96C7733FB1472D0478DB4E1DD FFF33D6653E2D48F13D138B0C561D30ED89B97E69F7F0D23869A23ACC2282069 8B6F8AE193866A4B97B8501498A3B71EF249A6839801D1D20340CAEED674A576 799CECF0A14443D3AE6CBD9CAF24F98DBE2DB538B32C2EB4F6C2D246E4B8A634 25C38167FC882405478067EDD25BC7AE81A009125C2D38636473599DDA19E563 DFF7E1A28E20B5FBFA68BCFC2E2D054FFF0CA0A15A98A7537918990C0C382C81 62BC06B1ED4CB173BC117C02276954E1DAE6F9F7162A578C646D56B55CB7892A A742707BA69AFDEF126E88D7038C60AA1474B902277949353772F9C28441B66D B838CA9B45A8BD40135E8B0C46E96A977D3A4B3268007655C2E77981545C6272 66848A2FD3A0B3B1CEB04A1426AD9F9ED84A38CBF1F35A50E151D46CED8FEF18 C1C86F721EC884C1A1F6 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFTI1095 %!FontType1-1.0: SFTI1095 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecti1095, tcti1095, lati1095, lbti1095, lcti1095, rxti1095. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Italic) def /FamilyName (Computer Modern) def /ItalicAngle -14.04 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFTI1095 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-94 -320 1401 937}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F3352947BD440B27EFF35014E69B2D4A1E3E6C11 B5BEF15F1C9B9166BED773C0A7F7CC50982C77DC7E78F250433EEEAF42CDF094 ECF6E1ECF893F6FEE69AA0F85D5DF1E7EADED78FFC156E291628F8CC7804F06B 62D3BA889336AC6ADBE1B7D60480CC1B296F9BCA97DE33DCB279D6F0BA3D9A77 A23E61EA065CB50088BC96CADB967FA8D5036C8555CF1BC24BE9B5A5ADB87A0C 376E0A947BA6CE72C317012D37F8E705B41B5691F1AF74AAE195FB30F963A98E AC0DD6DF90B9446767E26BFAB29C5137B9577FCF00D8436102AE83B626EEB40B 237373200ED0F4E65426EEACA520A1ABE781A97D898FCF322DB4DCF6BD2703F7 6527C76B8CE52F64CE259A3E658B4C11AC2E62A7850FFC2397A96AB26D8425AB 400B67D191412DC8B3ED0D44E4B64435CA93AEC6BEE702B9D3B0F59B7B62E6A1 534CE9687AFC4DCC819CC6A624392455155D18510B8DE55E94B7481F52029839 8EDD33F49AD664A57F6C46CCC8AB92CE365A0F10AD75A110791CCE87579E8BA8 401BBFC529DCF7AA05F6081653F573F5A5C64D1888F358456064948CBF73369D 4410E744F4F16C634FE8C6E0C1E02F218B069277935A3EB227108B9B7FA9D78D 563C5890384F13A6E29A14234B37B223148F9C270579849E707C6A729AB49070 0D991DEDB7A769EA9B02F440D64A25EEDF2342C277AE9E7E66EDE71D4CA126DF 4BD38C44EE239919A5DF587462DF97B45972D8D981D110DE4E1358425A811DDF D03632F0819CEF1B325F613578955C8A3A28CF57B38D1DCA16082699BE1A1491 7C2C318FFD11A69CAEAD0CD3693C86207E6060AEEC351BC6C870981D0DFA6819 ED41DADE2E3D6291BC87DFB0DEEEB843F8D3E96C15B98FA6EA498BF279BC65EB 98894D571A2AB2045E7F7FFA7D1658FA1239DD4CF7DF052007F9104EFAE715E5 66FE3D6630BFE7DCD512A9C02B3C173C54052F8F37EA53E0871C78CC36ED716A 24495C02D9B671BABD2D904A2CD5828C96F5C47BA0C27A8EE453949E56C4BF43 C235D31358CDED55D67BEF1BB7691BDF1AE4BADFF86F3C6DEDD70776EF951164 55966D369D3CD0616C05DD45A588009976490B46BE6D4E61B04A84403C11FFF5 2ACE1EE65A70A2B90ADD3F94643AADCB21A84A41F9CD73303667DCC5529F121A C66E9883B47F4843DDF2A243911D7A06B3722A5F0BF8A55F341E8AAA70749C52 0DA2FDDA059CF9A23BAC11B46EAF491CE04DFA281E619ECC0CD90A2545C44D1E BCF15C2EC058EF5A20705436FE0658EE9CA27A8A34DE3616B96E5B22855682E3 9690B59FDD00CC61B7402EF3A3946904477A22C0939E4BACD1011614AFB2405A FFE33AA356ED1C7B679B8F446A33B060B7E57DACD43DC6705C5F70C84ABCDF3F 07E2D625EF505186DA8B2A0BA7745CACEF9C4263266F2140E3C7247B96E53FED 60C90212DA4BD39D37F446F7949A69061CAE94BBABFE744A10EAFD350C36581C 845241710BAEF45F075D926BE357AD910B422623465FF30149E31B81233E5473 E7FA6FBA5B79E5E7977438CE49DF3913DEB54B4C54CF98C46549F30B5A629071 62B395AD1B66B4D7F8ED88249ED4E2CA22AC03C3EF78D0D952C1204D23A4632F C3A74FA6F8A47A16D3416A817FF9A8F6527DD6BCC739D792D24EAC8FD83165A9 70206C185462E762298DC8053BFC8DB8941E040CEDC91EB83A25202D522579A9 764FFEE70E66D0BF717F234430A8772203F3CE77DB474A68FC6CDFC9042320F0 B5E22C1400E2329EC6DA179601DF1348D48E48DF3B471C1C17D912AD32B27A85 FDEBC0D692B4E728F890513FF01E9A968E3863DE0EA426C0212301588726973B DA75735A6302619B4FC7178CDD5EB3A60FAB4F71B40865069141B17E53A894DC D832CC95F1F3A36B569371FB7D1652A62D116F125A75F5D52116B1623D560BE6 DF82C2E912824F62A268FC21B2FE8FF49E753054995AAEA9EF3A1AA6F1D083A3 6F2D86CD5A82087F4E69B7BCAFCC13B34B86F065D1ED6695301727F7B048DB78 90533FDF95DA1C4F219EFD5D0C2FF4BBDB2F7C431A0CAA2470DE9AA4D5207D5E D6AFAD02A5ABA8D0FF2FA9ECE2EBC4AD5B083D1E12265668EB5E8C6740E09773 393CE6226A9F4B1EA565651419E8FCDE2F9A9ED60D9B3B292C15EA97F576A9E0 3C2096BE9650C177FF59177C6B64B177C97BD15E0B818E1014EC40BCEF621BA2 F39AF2E916E8A78816431DB48B9874E79B54C8D687D4775A064259788D78796D D33BF106B3CAB8D2D1E70200BDEA476F02E285DD1884835C1CB5E3BB4BB0A4C8 1748D3674C7D763626A7494944DBC6BD6B8F8DD554AD213B0E40B5CFE6E24B08 9A976F9B77FD59CAE2BC8798BDCF693663C3C16264F1EFCE9A8C95E447FD0209 38E02C1F85CF8ED9E65D60FD9BEFD2D0497A8FF0715894DD521275D865E491CD A9412F9367A992F2ECDBD150F926A72A8A74DF42A9950AD04C6DBDF2A47F6D47 3F9756C8573BABFD012A0B89374380B9DBDE9978EE8D4A86BC86FEAD2DCCB60C 2A7F52D9847D26CB5813810C7368CD1E40099E4A395FAC9FC45D6555E14F557A B2015EA5C5299D41AC6F1EC27F396692FE56F3186F103AF5A3DFB8861ED69DC7 1DEC287D173EE0E4027169EE4AC1F2C37FB93DC050837B89D74F7872C976386C 4254AA7E59E35004D88ED74DC91DA2DBEAC10CAE29653DE98E34B94F82E51624 5ABFF52974ED556CABD8737E303923E6D95F1D2BDDB76EED55775FC965F9C9AE 0CBAA0EB694F4301211E60507280605EDB24BE2ECCC74DE4830ED08047B935BF 6B0EB953086D10EC7EA6A576D1F082D7E51AEC0E3BA50FF07C93BABF33A5F0F2 0D12B2CE7077B4F22C6C9D82C82A22C9AE9847DC93F0101BE278E65D9AE12C53 BB347FB1F2D9E561675FDEBA8CB89756E1B5CB74017298F7C66140E10C8D9673 FE2FDA1778BB5C407D31B78256CB9BF699D266004B8E5B3414606385395FD762 57F31B7A016ED439FE987D39F4E68DB6BD275FDDF1E423A158CCAA96429D4882 427476F389A0A9472E2DEE448DA6C2BFE5BFC9883C93AD7F4AC9D34DCF5C41C7 74F819D84C20C73ABE08A2533DDCFAF4319BAA5E6FB9695EF404AFA787F13F13 0AED1F852D771E946E895E837A96E75454BA7E74C7B1D1051BF3C3E59FEC69C3 B04FDD3457063B224448C6C7072BFE1C087BC87EF35421D00B090A9C6DC9A7FA 5FAE2A78A4E9E075BB316D8D1AAE16BB13E0349192BC0EC04AE863A04DFBF625 A80BF2A0472528A0948AE228143CFEB7394D5B99D467AB004EAF8C886D9A975A 3B368F5DDEC4C6A120EC7A701A487D34F239736C4C76625279FD543F89FDC8ED 5FF3C52548DEDD80FF8C8833A660729F9E2E1A1F760498C875EAE5015C37C09C BA9CECF116D943155B532764C4FDCE2D737B6AC1A090A7AAA994763A84603F7A 37FA0375CBBEE5266B223C04E638383A3D91648E4D0C0D203C995E7B4F95E090 23C1AADF55A34FFCDBFD4B4BC918338B2B63E8D7B6DE07F564ED7F99EC32C1B8 A285049B8C2E0701514C0E4FA3C5F0785EB7267D4B3D077C73A4F6FFB7C48B8E FBF6FF1691640BBE5DA16B92FA3C3BA89475C1619C08872E72AFBD603222BE25 A756399879A1C1CE2BF499DA82EBC588A756A598A9B44965E2956B23FE914F02 167E4F1573A088D1C9EFC5E743436D5C05B71D10D4E2AB7A86D77C667ED142E5 F9427F4EDCCEF66DEC62946ABC0A1CF0C982422CC609EC23953D5B8A11231F02 9CF9A23BAC11B46EAF491CE04DFA281A34DCE2BB69AFC4462EE2565A4724494C F97D026557181E4418834E13CBA49C02D211DD3DC7A4838AF53C4C76D96008A6 B5304106311A6183F0B37FD4FC2862BE4DC8D91400080A4C3B0563E00EC25ED5 4D611FE58D4970AD50DE928EBF3C0C4F712744FCC0911BD1F3BD0D223039D025 918AB0BDCA908DF7B7EC58FADEB73175256749F478B3BFC3C8067861485D4E89 A274AC41BD4E2565416910289200BEBFAA37F2552846C180B05D821A60C8F105 5A0440900B4DA80FF9FDC224A0FDFF8F3C9C2B8249950B15FCD3B32162A41F26 F71090D8C6C6768D94B92AA184A94E7EC68FB84120A6C1A3DAF154B9EF9E428F 956A28DF7999152AEB185692AD26AA71F3513680486422982B9303E74B4345F6 DA631D7C600E181A86C465945D3670D967A08A9C8B9C43500E620F5E00779C4B 8C3E34B413B86E960F24121885AA8426EEDF2D8A778073CD72CC911DFC194F02 49BDFB1944279C1DB665EF387C9FD4AACCC343705FC9CC20664C917CD10AD127 5DCD28A933A933830B40E96FA75F393D488B762CBE91DB3E354B976C12949206 D21A6CF19A1369353A06F2BBCAC72ABC98082C301592EB484256B2B6951D2AFB D4B87368C80D07868A79D1D37888B890196ACDEC4C8FA0ED12599427A5DF6230 66F1A7EEE25E22EF8064F9C82C455E05D84EE86B23FBD4D1D562CDE36A507BE1 F718B08A8AAD8C236C2F7F98047478936D23183060DDF114C53CEC665B02236D E58034363F4C5F55D108462D0CC3933A9BD18FC460B0219636CD17BA382FB2F5 B6043354EECFE3E081078AA132B0E1ACBF20AE2FB03E6E74162FFE244E145AC8 D65486384A4A115BA52DA22F3FE79AFD8ADD64A0A7AA4255FBD8DABBA5960A60 F714A6EECC6AF06F01A42D82FCF9F2A714388A9A15B7F77AC9AB7BF9404BEDFC 78ED012E1D8F21295848A6D298C2EEFAFEF50A2437CA6E517BAEE7DC25EE5CBC CD1366941BE42D72C12125667601D9C5FD0C0DCA99CA436114846D1037AEE30F A98DEADE97C35AF0A64687AD715E2504FA846CCB1904421DA3242DF9092C9B00 C022B7D8189A490BE962A195E9F1C85969C4032BC4458A1AE15403700E509008 8D3BF8B307C78475535D0156B2F9F55B305A97A89C5E268507D5983ECE3F43B5 C47B71F352CCEF19291CCD8C51484E8B25376C09579BCBFA96D929E3E3E5272C 5B5862BFA5479F76F17D96485BA5112F2BA029D8207A56C3A54103E2B0A0117C 81B0FC67BF6C717AF8D58D6DFFC02FBF25A2F6EA9B9459E794BD210836846128 28DED34C6735B4C060AFC2ED4AB50F64B8B669A9B2AC0CB38E3BF8452135DB27 499843E5BB78DE170CADA98C51D4BEB61D07BD6DD4E11826EC6D1BF0D3D7F690 20B679BAB0D0F82FF8319B7F7815877DE9B4D3E5C3A2945ED92EEEF725718A69 D921F23DE639920B687F34D08491910D982F6C0B92D56A23566E4A683EE91073 61C63083CC9EB2A9D74C936E5B593164DD66232CDC0C216543D8F85E8CBE85DB 16F4691EDD31135B7CF6D81C10D44E84EED223DDD67E0A154F2835BC3616A2AA 41F071A2D9F5A5B281ECA6EFF6F0C15A4520D4C8D7902CEB4D2B531967CEDE6F 5290AF2F2FA37C1FAE100FA5AC978A164C9CBC61A7A93AE950443808017A2E7C F27CA40E258A1FDE70C0ED8D059CD5313B8168AB06374EEE9E3DD36E957231FB F3BCE2FB95B483564E9034AE2CA622E0E2147E335BC27B1E397E68BBB128519E 4CCF299EA890BB1935C4C3431DA2410F8CED6F5934F8B57E4D6E997493DD1F3D 2EE51F9B8BAEDA4F979488DC6218E918453ADF92C37E5CD578109290476E12D9 3D56CAB5E48F210292FA072996E1CACAE3C922AA636F3E4C60BA33FBE8E09DAA 7C4059535C34BA975395CDD17EFE2D72064C2222F31790506FD6AAEA7D2AF8E1 A183017D05D2463C9E347CA6B964022D8E742A8F04026A4E4AE68F2E26647762 FDE96167B29234A540CC0B8072EEB4A93E64C357AD5B6ECA38B6FA33E7DB743E 03E99D426F6A4E26D498EF8B3A9D887CC260ED0E596CD2FF09E7A787826AB008 6A6092998E8BB20CB396FFF8038910C5EB00D364B668DF5F6E1B445F9C0A123D 136CE742795ECB59AFCCC0E24285A33BC2ADE735B911BADFAE94C5789D864D85 AAED9BAB98CFF3BF75C7AA2B1D2F52DC31C19D899C72504F122868779EB4AD7E FFDD05D4E9A7780719B5E4002B19904882579AABC91DFA8DF9186B707766D4C9 F8064271899315A367102648DE3CEB5FF58CB0F7EC02D7F8694083835D61D1EF D65111D743CA174076A3272BD239A614A1916ACD13ED7AE479D15092A7B83EC3 39A0A1DDABCE3FBE72992636728FE2F2FF3205E93A7E76590ABC46649C8B02FE 4102028F597E89AEAB3ED00E799528BDA46150284E4E709F6900589DDDD4BF80 1B95E2FC47F8F8DBC9937241C4221FE406ED5C5C3860D5D401720E788035873E 321DC69817A611C490CA4A7628C2257AA084E1A240803CF44B0A08F5D46A50C1 26D921446201D85654CECBEC9D0D0BA7489FFA7D71DB1914E82398052A0945C4 0B1E231C846099ED8EBA3C7818D866268C0F30867369E253651E0F0E0B82FCBF F8745D10026C890F86A05F36E65059D0219F7E1037D75A4134D9073F69D7311C B9B31849B483757E6C2BCD3841C3CD86A53ED3FE12A187496A2E38AFFF4153BE 459520387B1CDDB1DF8E5E875CEA1AC330871CE93272FD549E4EB13AAD25FA80 A8C2EA4B1BF9E57F37B1C0752C7C21C5B4B0EE24E61250C5737A68181433F795 AD62B913E904C32606A118378485DB5757A1811C0009DB48537708D9DCA34B07 6DC3F7DD19C4A4E9AB704403B7C69C7DD0D2CA91B0E7F904FA0091BCA416541E 1DE429251F2CF3392E8B8AEF512496A508254E0C96029A229ED4FC26425F557D BD96C7B1F0A60ECA75981E943CD725E84A8BB7EF455C242812451BA9E1F38570 B877DBE987BD3B65DE56078D2ED5D29D41F07D1C079E556C487F1A269B06CE06 4E3E466D24ABFBCD255583782E158DFED6EC6AE71529C0BDDA15B018A05A7CEC FD9B5EB79DA025A5F6E0D1F721D03A6C3FC12F51E16D5FF70F0BF582E3E7F9E7 E384CC0194748847CA70254A5F3C5A0ABB6A2FFAEEF5E9627932DE94CCAF8A53 3DF71BCCB1269CC8781D7D772AE2DDA00F43ABE375546AFAF1A73CCFF0D5200C CD61E33431009C4FFFADEA53A8FA3A70D216743D5E41F8052D959FD26ECC6F8D 27D1B62EF4BCFB0B61640F83C24A5B50198124D7AE0C602130457CCC741E4882 C0D6619BB90A22EE900DAEBE74890FA15800B3126828A6E73B21EF680C01C662 21DD63C225DDD2287CC70F6FEFFC0C5F6701BB42B5C975EAECAE276B63BB154B 34A61F84F0C33DB73262CE40C25D7E3AB8608432E20E45DC7D1DF3FA28B1C6B5 096FD8ED3B3E4AC0D8EB673E22288F48AF56C393470525FDB76FE51C6A106B90 26CCB2ECC8F60B2207EC06B6FA774B61B7E033C13A0EFA703D8F38668E5B029D A47528071B93125453AAE9FAC75299D653DAD14A823D59DB1DCFC797F444DD1F 07E9D91134BC9D822E521AEE801993C5D2C6ECA90BD63C20BEB44FB8CD1C47E9 A5659E22B8CBD28D1FA918CC6A008C105135DC111D389D94D773A49334C72339 C9E4567B59128D6CCA8535FFD6E45137C2DC704204F89D0C92DE659D90F28E60 EE84D058B5B3685902D2E798F8F295AC2E7A3E03D9975F6660D9AB5E2A330FF8 D4AE2F8B97FF186A9440C75A4BAD68912C0097DD7A352CDBB5BE3810C38A4BAF 050E1A678D047F05B560169CB5C33DDA814E5FF30149E31B81233E5473E7FA6F BA55B3DA462B7F01DAD238663AEF3ABB18694571B73638FB7CADF6C418A79E0D 131D24EB04DBF89BA074255DFEFE459946C4221FE2A0E600BB4523668FAF2A46 5267C2E85C2D858C83FC34FB511F609C62B933EB55F9ABCAA0914FF8C156F23F 50C9AEEB43F80487780F917BEB0792FF1BCB37B635013A1833C09F6AE886EBE5 0FF8030C56DB55B7304525F44039EC6C77923C16E69883362F82ADEC0CB24B39 3FF4CEDF697C67C54DC08C8BC61485159F387A2350AF4F5216FAD0457B961DFE 3A63BF4F27A4B583E48F8F66420B6393DBBC44F3375A9093550881FEFF375E5B E552000881576971CB9E40267EE1B706ECA1643925A919CDBEE9E91C51725CCA 705A2A0F842621CA38297540CA0CBA130ADB8BDB60F5B7127CC969CCF4609576 ED38CF0111FFC0DA6938FB84649373E799CDBD5F2F48CC3E94827F3429B992E9 432B3DB333A63347BE1228D80966AD6FC18B95C72C14E9C2873E85B86BC6E334 CD7B98F4020D71C1703AE8B3E58969412E1E8139942D88618073D8C11BF8DE45 8242459F40DCE9109E69D1B3A6E72844B1E58B23D5D3616C23DBB54A9093295C CC2EB7AC3D9426011E43C03ABE5CAF809C69C2354AE1462B55AE77A8EA49D840 7CA5E198144AB73654D5C8ADD82C44B6EE67818B6292874A2179E9EB13A8BF26 163E0BE25C529BB5AFE313BED8B664590BB6A4D0230CB37C15A709E55380BD9D 21D9AE8C10E2876D2A52602220EFCC7C12871A27BCB2A25AC196E484C84C18A8 2C574C8B6AC6EF9052D8F4DC24F4EEA1329BD0B6784B1D204DBA84ED6C9FEB3C E0F5A910A0CE339CB2A61097BA2C48BD2A1B95375E9C2920BE88F84B9CEBA0DD E45DAFD813BC5D248569054F47E3D78F50B2CA819B87BA672966F72FDA22348A EA61D81C8E45BB676757B4CAD36A5FF40577BDDC8593915FEEE82D8C08A075D7 E4FCFD0CAA2463CAAE580F0113328B8228345C82D625BDC5E567499D3EECD9C2 887139CCB944455A8759EC47AF929BA4716C51E9F36B0B74B4ECF02B79BF1076 B1C64D9B1BC284C23C144B8E106C733EFF497217331188379C939D9BEEDED023 6C7F6CD43E5ABD8CC4C56639C03684755F9CD862DFC8E474129305488AB1CF63 05530397A8B1B1F8D464866DD9F4F7983C38410EE4C38271928A05192F90FB2E A6BF3097CE8FB0532722BE93A5DD581A366899972854F54A50CF406D5AD8AAFD 99AAAEBBE7AEBFDC07348D5C04F3C3D62F90C72D17694BE4DECFF963985A92A2 78BCC9B59126BDA5E25BDD795A3B485C4E8BA1B65DE9E2CCB35F92C8E0EE172A 83360F2D3626F5404F461AE32BF4355F860128995EB7CFB933A061C0E7E6891C E84EC63BB4735636FA8A832BF45FCEC50BF3D67D349FBD703CEA0B1D3091B37F 4FB223E2BA5BB0E57C061714AB2E735BA99883C04E8D702007937C55D52FECD1 75FD8C849B57A75801EF639E30FF7C7533976302E94A0BFD7ABAFE5A7606B719 6E8E42CA1097D44DCE78FD29960BBA61FEEA7BAE3F80E5FE662EC1F5C5C77501 E7BD16292BCA40170989EE94FCB35E3C0BCD397408B5CC344D7BD121A104D906 B2E724505DF922C8A8E5A787DE997CE19D3603154E73C92CCE3BAAEE1D7C7FBF B9FE6AD7B604A7EE85F3A49416670915B9EEBD5E3B6CB72066E69622F5FE701E 68DA4F3982BD6C4CFC6289BFC5702BDB5DA5484396B6213E70FD9DEF29D2F624 5F8E60C074C6C0D95B46028F5ABADFA27852B34404BF8A0201BEDC9DEC00B48A 98BC361710C6CF862887F3C528A798E6BEC3675B3C8AD0A8107254810854E60D 081EC283B3B5D13A5E991AD0FE856B61207CBB4C8EBD50E66BF94BF09EC6BF59 0F85CE86A6BFD43B4D084C960168C784C0C44F637FB2875040061417CF9424BA 317E094D78893FAFA4E6ACBF73F693B7DA1E32C806C11B4924382B0C84B72B29 61EB1E995CA9F010311718791DB7B31DB6D3A31EBED8B0CF35A5BD5807444395 130D8C83F83BE094DC8881F0A0AA6F483C4A0ADB7B15D91E2A8B46A20A3765AB 48E09037329C7CBDCCADDC131BD45BCA0824B2A8F2688CA7568940CDA15BAC9F 356822F8A4BF754BB685AC4427B344E03E3EACCB0242DBDC62FB56BE8D2CB8CA F6B572C02D82FE320B257B42C77A518D89880E8877D4566ADE097A417C604CC5 A5F1143EFD9892D9E34F3F452E740A145C4FDF3A5AC5660C41E869FF3B2A422D B2A5A3436228D1DAB2B9A916B1F4573770BA2ED52AC2E36460D1C56B301380A6 AE2E686C8B0DC75E8B350D8BED24000E20DA767DA584CCB1CC9D10E15DD073D3 ACFBC0EB54EC3A09FCC7B2BD6D840E3D18C7DA62A089244B353062263D74CDB1 9DC8AB9AB2DC2F5B671EE6D43E4EA350712632CF20C0B73A3C9B5FBCF2440EA6 726DB7E793C4841D28C03427F21D18ED86F882A2ADBC63104BB155847BE7B632 A3C0D17E0C6CD0121A519E35C7BC62A7604E0C38F4E761FC7F1A46571355868A 9B010C36D1C8E3D582A3A793D6965CE1854E36A83CB092607B30F8A01C5BBFD5 2385E21CAC1DA7735C1F44C5DA757941960A13E886A3459E58C36D52E686B59E 1AEF9F795585D5FBC9E8A17FFA5B8286684A77D5C9660010EA6613C24B94E5ED 901906380049DCC4561A17075F85976F9E987F4CF1633B6AC984577C60BA1561 83BC188CFE7E392162ED08B429D50DD54B6E64C46C2B6192E27DDBA08533EA92 2D0027DACE7FCEB28F129535655C5E9E97172263A501EB733D4F8EA2E408C716 213F9F08DFC3418EC6E9267D35CAD1A95F53A62245D5B98D0870BFF3FCE9D36E 9770BADAF2CBF6B6FFAD475A0355A996D1F09DA1C4BEFFE29C1B3C370E48F65D 83D313C40D0582D80DE601EB443AC79F0B03D9DF0498B9157D134272375D607C 07E83169D4F88028D6E4F5E146BB4F21E5DE809984881E5149897398250FCF19 752E840080E3B3FC156CBA1D29EBCD13C0D5B8DB87B06C71940E2924C03F0B06 55D40A8E253A9C6CC536EB8C56A1E913CC7032892FB4AFEEDB9891A58D25502C 35A000BC86351B1B497A5239CBCD949FA5578FBCB494B1A26121744435A46CA3 606E89BAEDCD9E573A2B023352069F46994A6A70BF7494F7EA1EE89B9EF4A402 47A910B249A2BA2744E04DBC4FFF499F27BCF702FFC204F6D911B9FCA599D118 55393B502E78A5A203CD62AFE11206243547D9D0AC3AA10F21540284160AC781 804806854A696731FE4BC4673F4E3F9F76989E8C5E5DE65692E7841C88354C17 174E3596DB87FF23E4E73AD17C60343A0D6983DF61299C7A745282CACA0E4E41 84BF3949B1CC8EA783EC307D53E1ECC02D9B27CE56376867A7D1D80788E6B5F2 2D897F59B0C6F18FECC00995E91F3629F3D799C667E72BA1E3134B196F2B7FDB FFCDCD204C6A557A983C753D311CE7FECC0913DEC0148705DE1663066331A968 18E92EFC5EBEA9C27006073134ECE2AB319DF76873A6F616F06DCD6FD5D40D1D C9440291832B3EC508055AE9629E2F0E60C408FE2FAE05E2A6776C8D3AFC3382 026487A8CFEA90346E19ED7128EDCE3031B2A9F66684E0D805AD03CFEDBAF0E0 33DFD698D84D593F79E60F7005D634328D15C878372D0CC04CD039FB34D9EACA 56E7E1B0F54D389227E263311346F61D290E01C2CADC72AA9CD863EB0E257811 4C12F1BA77AE83C4663EBAA63BFDD371C91972C741F526E3A88A59BAD924E1B1 215AB24A06C058C5092B332275BF50B965513FE075521A8C020A940DA1442ED9 6DEFF66FD58F90DBC75FB4D7E28A01362FB7C870290CE6CF526580D84313AA80 9C8DD92412E6D1F3D178017820F0795176027BB3D5AC01795D57E4FB4CE99A39 C06F9A8ED56A7342067C47D32240D83769690590695009B0C56965A533E6707B 4903FCAE8A0DC7EC92B75E90777354D1479A79B3AB76DF147143802AAC8B4ABB B04BC96F2EAD2555AC737B5E934519D1FF13FC553D5BBB0C9016E84FD89D639C A2A26D5F46662C882CA12DCA6340E228D99D12CC633317E401F02347B5CE65D9 9A38C4418DC04BCBEFA23ABCF35A5EAD7636185A5DC746A44F3583DAA406FACE 8EE0BE989F253C9C00D517CA3442F5D911C6DD2E488A3F223BC15DE865953293 0B68251E58E5238D15F89CBE0552B1E7F828145DC333A77FFBB715116E806675 414213A80258EE674510EF3743A71347DEFB84DD5E917B1AC595954FC51FEE0E 89D54CBD642A74904602DDC56B1B7CA307A2FD1D1076FB2C42C86CEA1DBD6823 94E6BAE3C8F55321E3626CA59318C0145E19A083E8438D25279487E210875AF8 BCE131C5E66E1A4AB41267440AA78A41E4B8F1D700310D7ECDE6F146722A5A00 6C333DFD0AB154B5A9EF3841C00B2EAE7BF294228BB11DF98861BD19D0F091D7 2980787CCBFA6CD415EA0F8A7195870F17B34E09C286618FC7945B95C47AA927 7A669A201DA41C11DCF0640F63672BFBD4D51BFC92F398E53666621D7887E6D2 4D8553E18D5C5D184A293471D855CF4C6F0EFD2A1E172B686E972ABCCE702923 866187508F31B47F46D97132FEF854908E81BF0ED2FC7A7C0FEFD2323010241E 808B10A3A41650C7A87BF1B8E938DA0B44B96396F92CAB0A4930567A877BDA08 F809808D9043A1D7989CE7823D3D22BC790C928EA1A3F74F81086E5EE2764620 5EAA0491DDFD508D5F3D15DAA5C0E94FEE49A1715EF8DF43030A2EFAFD1DED9D 5E47D79717BF5E2FE05AB9BC333964D3ED3CF62891C9153EE2B300E8C944848E A6901ADF9E91810AC4566110B0B3677FB4BD0946A5FB12C1B27364FD2321D8A6 FEBC1391A919B35855897D2B532E906D7FADF57D33E989C411596BC05AAB1C6E F139708E0F4F7830AA1A527FEC24F662221378426488C60CE54AA0F22560A56B A1D8874F38BA2148B76F5A26AA9429CCD6F4BDEC028715272A329D97C7886FDB 00A623B4CED910690C4BBD78D982FE60F05B827AD4622A3F7BD3D2F836828944 F43D6C4C53DD1A9F536CF6FC0B663D17033A861F4DA0B436A0B7710B99297FFE 380F05883702774D582C7FBBAF0BD71E105C2ABC45AD46D59DD1E9A0556A316E 33A5A55B6E3999324EBD8D12BF6194A28C806E56E5800B2B623E0488BECDD26D BB0B39291AC7F4D4C2D2E506C84E896E1FA498AD3BDEDF2C6AC9A36CB629A7BD ABD1252196DC6F38A8549C85933C2536E705A62A18A58C84A8CC3136B1943468 C6CC89CBAD30C8258F67132BA3AAFC641B980A2FEC7C78C035D8C123374B0BDA D6F427C6A79A2DB1FA6F71FC7D44D42C6EAB31789982D566148C6B034C5647B2 CA6129023704D721A6C5437F9A58F7C14D9538CB0F04E833D591665FF195B8C0 A77CDCF8AE3F62D3C7238F99225023D125D77501D616F8F86FD5E647C80EA66C DC7BC396F01D63060CAE9DDA4237FB72705DFEF474340E9299E06A863D331501 534322F257990FE8AFD74901D8038DCB2852A8F55799C5DAA723F0C7BCD44A60 F2BA9BF77B4B3E6804CC798ACD831354F7C4A714E8506E9B93D99B3C45D305C6 3C25AD86A8354652DD390A384EAD190CB950D0E91B4F38238C3B225CAFC0484B CA6BFC0A34A280E800C3E68E280067FD5B133594EC513B8761718112387FC95D F70F7101EB114A7051795A1BB20A82B1B1165D5607A3535688FAB043DA268467 5FBAED97C539FDB597E009DEEB4F85BE37AC869A6CFC87E1FCA5CD94EA435169 CB6BD356B6362B727DBD281D5C0D8B5B31C515E1E22B56ACBFD61E9676857D0C 60C624ED97099E3BAFD58A54622F00212D56D62EEF6079504A5809102BA715F1 182C6500516394EEF99FE3E37097799D30BBD8711743C2E1A67857D39B489E54 425B74652F4C3D861FD1207D06346EC0D1CDD167AFD944F5A7863B037190DF25 4B1A27F76C8C082BBACF47714565D427CCD0DA497601FE18DA2EED9BD5C5B5A1 3F659089458FDEBAD33DD79161E9010A7F20E4430D57C98B1AD9CD659EBA2CF1 ABA5A5C7792D8870998F93998941A9BBDA0063BC975934FAFAA7AAFF92842917 DD5EBDF6055A56F8EDD3EFFFE07FBFCD132B5B4179A3B6287839D554E4A609EA 9624687347F790ACBDD58CDE0096048F0406983E4AFB8FE87CB5FD755B73A6CD B4660D53291246268801A7242CF434D3702640892078A28B9AB23AE66B1F8B4E B443921A2AF79A91B832331073236A8579FFAACC389BCE7F47DDF7A259E0754D 1595A4D8A47D0C7443BFF50001545C4F390D5E6B27831370A5C8593A2B7DBB10 40A360805FFEA5484217A6F398E8414211B97632D3F480A7C9E7ECC8B3B01B9B 88C659BB9E3AF8146236A2D143101407EE0A93E84ADDFC377F86B0E3DA2B9CB4 D5FCA212B2D3C38B2A6501C887D9930BDEA39D2A1C3563F8FB42D8EFA464089F 9630E2EC94D8F61930C3E1FD1ABF827FE884D9BECD91AB1E9FDF227A1985E2D8 DA364605014271364B93E338AFFE0D6CF73D9F2AE89CDF27B0F24C2B1163B50C 23D25D87FF1DDA05B8B2A0D6FC8D60F70250E19FFC8F6D6C005EACE2A5C1757C 414F5A26AB318AD9BA89121B878B14EDE5B3ED19252541F4A2DF04DBF511A28C A0AC8284AB5AA8609B0BB440C0CAEDC68A6350EB3067677BEBFDDE9913BBF4EC FCD021FFECB23D23F12093EF21DAC4222BAAE32274076538200DDDF125E9DF1C 22D1E6448EC6BA5A651B01EACCF0442490FAE83FAC5A3A1D87296C2FF427BEE1 78983EAD8215C3D7903A16C05ABEF9B26ECBE985067ECC0B9E98F3F5DBD91400 1CDE7A6F50AD963AD3A309FC8C5B8AEF8EDCF6CFF798BDB3DF28C428F5A3B4EC 2F3767461C3744A1FCF92D99103D98021731C541FF71FF5FB18E66BC5F2F0A47 65ADEE5543F1571FF48BB7348B3919CB53E90D9F455C59552906D8A3B4DDD83F 138FD8B9B60041F594E5D193846DDD670054CC043974F7F51C1B692431A4BC5E E8659532930B68251E58E5238D15F94906D36537FC8315D18192EDCCA27AFB47 321D6ECDF5F8A07070FA058CA1902F491C8DFBD0D3B3053E312C6B7BFBFD3954 7950A9B67B5DA1A5FFD49F86D7386E2068818D9F5DB2D405F95A71BBCE369CC6 6B827E1860586849AE18177D27092F47C4F5C8A89B7B7EC593E78765DAB328BF 0C2AB7113EBF74112DF47A3DDC3EECD4CEB4F08790D16356E8B5803ABBECF27C 0AAD52F75E9E3A674B7458C95CB43D521F1F55475AFCFDD5790756087EA04ABA 776B70E1A12387BA7E492F9CEE827D7BF03D9838835B1A04314223467421A441 928177663BDF60082659FFD03715E5C96658BC13C2D8CBD8B1EBAFB0ED4E75EE BE0C41A7F8DB7379101AC49658B1378E254B8737035394FB352B7356EA857E10 2E14293F12C99646DB524CE83A0DD71D8B80EB3F3FCD499456FBEC3198CA758E CE4FD425A1053DEEA2134FDA0443A5976A1130F27C76EAFA146B03A33BE2E8A8 8736761AAB27CA9570A634A2901B3488BA0ECC25F05D222572834FC0090106B7 97B00D04AEA66A7075490FA8F7B2F3F797D883FC8746F2791660B38AF16D19ED 2717AB03262A018ACDBE7DD6D130248E8235BA1EEC1B49E10226EBD055199872 86DCCAB9C90FF2F0B3CC49E3E8F0671D80ADFE316D582C7A94DE30353660FDE9 600E3C0F40F8EDDC97C6D81F9D5B2919A21BA918292F40A315CA76C33EA3094B 2E89C89A02EE03ADDFD883DC4F03E38C55F1C6CE31AEFE7C8215D7503417B46D E4DF92802CA4394B8E28E70E9C8B6737241847DB1B8DD9C0A5BE19FA101B88EF 3EE64C923A178CFA54AA1F499EDC15F2332A655F3C70514D6C6F8D229ED4FC26 4258F9605D1A2FDABBD4BA684AE45CED4309938BDF2B4EB1AE2D1DA7246F68C3 06ABE140B72122631D967DD0B8B58E8E24D022400C15B61E026B7ACD56248EC5 C01123EFAC545C9FBF7E8CA24D856793833B89F87E115E9888521F80D9383376 FDB73E1ACDAFB8372F7C991F28B404DFB8D1E6518F5985886A78CC3082E9A460 512DCFEA19ED2A9D2D3666D8A1352BA4A931725098C8238E7DC2D10C0C6ADCA2 E413F79262468286D95693BDD4FA69849FDD7D9099ECB7D0DA9C906400C1AF11 DDDB9D7D64F02C9558319D356A7D9614596BC05AAB1C6EF139708E0F4F783157 FCFB84D1D8F6179D7D89F958A84085FF0E85DF50873F9245EBA9AA26AFA20246 D6FF4557DFBC3467DD5C8E1A2E0BA23C6B271833C5E7EF1D6C03E4141D9CCFC4 89CCB2B979BF18AC181025AF9377005A6B6FCFB9CB3F3A6B9C07A11141C89208 91D0F79B17F9D22443105DDD8A058D9B17368F9CF2EC3072BBF278F7C9B55785 FFA7D5D8E4CAD5FF45866165E2FDF8E5BCBD0AF297CDEE3A1E8192C1E2C4AE27 116353C094F77404598D5A70DF178A67A0BEA8293F44EFDFEA91C2F97FA4F3AD C54AA2078B632B8B4797A810FD09E698BB127E4D543A7B128893D0DAE7FDD70F B77AB42C2E71871E9AAA881125287A23495184E025633AA478EF7D37A5A66334 0EFD29685C6FA1BFD78EBCEE63C42178AEE169E3F8FF9EDF754572251698C73E DFE04E4F1343BD815921E958F4A959459B7D63758CB4BCC6C08230A2987C451B BA3D0CD9F3C798609482147DB6F8688CBB543835EF360D38BA6C62D94E5D11FB 099A06DB315E61599E93DFD7C12716E8C9F9526136093125A73710FEE11B6B3B 23CD2AD46277451218E0012036BB6A189441774BC20AAA62ABA4088783D6314F 7F165D62AC570F0A566E9D79D26E799F1D26CDA56B940E6519357D3260FF6478 BF0B9746BF9282B91F5D4946B7279AA4BCAC0CC4BBE2016A73BA0C0AA093670F 63B2FF6901E146FA5117A1BD20044F880DC7DB74031080B33945A536775251C5 CA6DACCC9DA70A34163D2268734CBE4B6B1070F9FB747A6A7C5D52CB8732BED2 3818F6605C07CE8CB61FE5032432E7B1CC9B0DBC39EAF31BE95293AEB70F4589 03B17D2863CBCCD8747C234E801BEDEB1BABFADF8B92A7A54E325E9CAEFE4F8D 74710EE6D9E9D8CD6AE1DE2167353761C3CC242584A9F301592B486C3F4BDF38 383587CB165A40B7576AD0A13D519BCF10D38F7CE7F062560C3A264DE126FB64 49DFB3A6A4F460C1047252845CE7BDA706F122CD157327F80514C5A14E3C0BA2 5435E1E46DBAF38F08B89527CB16C4E7E87F942354AB4521EAB587ACFABA3B61 F7E812297D0C6D50720D67B89CC601F34DF1C5462DFEA5984EAF9D2D20808C9C 1529EF1FB0CE892C8B139B17C131887B110CC04BB65B787F0CDF6B37AE479686 4A399D527D135E52C9CF6A6877852FF4D9E20A6C0DEB6044EB34A0034038946F BED0766B0C73701B00850E5ABA2C969658E025F9A899DA2CBC9326F407245E06 C7BAF20583748D61C22C92234963DA6A0785D384FB0B8C5E4C3B13B5A0A44911 F452C33C0F8ACF5ADA42FCBA0ED693C25C465471D870082A1AB36F1E2D646CF6 A73B7F1B157A5A9AD2865FE30E93BB2F0D0E59212C682C4817F9933B7B5DE581 A88A7A218BFBCC8CE91657E46AE4CC04B1493D6BBC92804710EDCB03969D22D2 5C9B9F53F8489BDE53DB22F120631D25F507FD936721F6896D964DFDAE9741C2 283091AD196340D32CF19141A82EB0A4C3F910C3387BE15D70E4A43CB46AEE4E 185C873186862E2B848A6F7FF06E13038CB926A526B862382FAC954222B4F520 1D2FC6D49FA474324CC034D5947C9F855932917A6ADAF849940F70238F69A4CE 6E1EDA63FBFCF9C2C08D9A1E33FB4633FEB2D95FA5C54BBC2A6AB9AA5443E667 0B249186CF0E412F3EF72A59F1FF0441EF2F23E583F1B1DCBDAED2D84F778E1D 0F909C5A817D82BED3ED7AF5D06C23A7B1C0E16F3CACCE0DFD38256813209641 6D97216425EE0A72C794A5395823D12AAE6657E094DB56B9999A6A2887D547AA 113A772388B120C0FCBFD6B318C2B02094A90E24E4C47AEE2820D7DD5D6D35D7 F1E573ABFBE779723FDD3E73C719B6A4CFF0819A84545B85F11DB678EC47F62A 90114E68ACC86F56DE0C04E64D14B29EF5325A49C4D76A600914C44CE565802A E4B573657EAF38B565E52A1ECD75BD867755649C0011539930F4B0118E50A9DE 8A42E9FC475C5185D7B002DB51B991870EAF009DD16C817C0BD591F2C27230D2 9667268236BAF9EBDF85E3F4C0518A7E1C6FE7F8F5A58BCF40E25FDDB886CC3E DBF9CDE1C37F1BE9EB5EF8B280D751708592EDA8C287AFE6006E81CE76535C1D BAE78B35812FFA973B37503D8B32931366E3F026AA817C062D190EA2BD9C5C8B C0F818A3D4AE53C90E41D1B8CEDEB52746E2CAFFE9D75627B46D69FD4033E3D9 3750ACE1111FA45A02AB3649CC6F3861F1FAFB109260E0FE5C1E47E3DCA18163 96CC5B0D2B9FF03C4DEC1476C4016601D6DB3C5CAF0D474143F93D6E879CD6BA 09C5CB3FE06390D32D8B1042DE5A9B64A5D925A2DAE53876BA43045EAF35E4CC E09BD9E5F67CAA5658DF85B06DF35C299BC83033763D93EF23CAC1C44ACA65EF DD06C99E0E782986C2914C57EE9AF55A2EB8FA5C4ADFD19E24E33905EC5F0911 FFE7A817BDA10DC69F520D7DF35DE48432BBAB91BD3A8FF54964F7EB47A75CB1 A52B91FB39C812B5F8C9F89BA1AACD47D5706D9F0A6EA2C49EA129FB2BA282BF 891B07CAA6214C409EAEA30F9014B1624A30DB41A857C051E25799A467900DD0 74534F2E040D458B5A127819C3EE361DAE300709027446B04818DA9A3F8E78F0 8B706A4D430ADB1F79860308740C623ECCC856F4F99B3B808F50AA332BA346A8 1D0E8DCCC2FC0175AA093A73EF9AF6F52708AB81C65FFB4CABFB71018B1EF147 6CEEC425BB6FEC2597D681EB4AC7F8FDD10A9DFF915DC46FAFDC4F42B78D2354 49D774E76F7E1A90B97C9C64F2DAB4203224B5A047352FB0B06585EFC4A878B8 0D7152C16C5691903C9E414CB171BD224EA8B3C94D5CF2816DFB0214A4CA3022 7E5F97C7A464F7E11235B0C754C83EAEFC12D6088D2B1ACEFE71042A0DD1879E B77540A176C89EB22D0689198F5E3A1EBAFEE4BDC1B32083CBF6702057D971DC 24C2F805F7A0245CDE881A062A50E8327D383AF450648A58EB94293D34965F87 5C8304DEA4F3432E34EA354BFD17D79E7BE2E966BAABABEF97AA723960BC078C F8572241F61F5148791C6FB30AE7B833FDD1ED2C6E9FF856E05B2BE7B896B33A D542DC6377CAB59BB9B42A96A3CF285CDB2C0096D8DDAAF861B19BB8356D008B 85C0D0A46D3924281FD6FA6241D9B4A2850EE8FADFC8BDD322ACCC6325C46ABF 1BE831E6E1155A44827022B8CF1F69EF2AEF19214109960257AD3AEFB4FF11A0 A9B677C366646682BE38879C175062032E133A03DB0F1911BD73683FB607498B 0EF5D6FAA5A61893A7E246DFDC900ABC2FAEB0B8D1C2699BCB4399A0ABC7B6E3 84E4253396F0E34A64447E0C6148497BD9292751DC6F3E2CC8DB770AF36EFC28 E1B3A46318DB4A058B98C93752B14987313FA25A5E44B5B6105D87675B868DF8 D245A860D59BF6213A632E31094F0B93A241EDD719DA62853EF535C720900181 439F0259F11E88CF742C2DB209479BCDD2F4822CF05153D3E5A4A71219C38596 1993DF33DB976A55583FDDE9B18DFC863DA8879BB5867002E14A2DA4C24B5910 F261239DAB95AAF7B997CF5BB6FD87E637298B9D9B394F4E28ACF7B03E2A8BA5 EA2291529C3AF8146236A2D143101407EE0A93E8487C6072FA96995130D80A8A F5EC9E2780604A110E15A8514105514962358A707613C33C9F41F68358989E2F 9B20B3E47EEF53A672632C8DDBB2E6B432F8F51FF93DA9079A240E178FB4F310 622E7EEBF1CC459CB3B05B195FCA0E5C13342374E6254C16904F75B1BB7A615A F599DBAEA605CBF2016245617751DCC7EEE6C213C157C1596BC92BDCAFF144FE D3A6F47397210C899E84A773A3D8DBE2D6008DD9DEBC54EFD5548C48E8086AB4 DDE0365BF71544E5015CE32762530F09B44A2241DB17459FDCF177057130D3F2 F682048E3C422AD6A6011E641B73BD918ABC9261595C254B6106B4822DF999B5 12A8007C114D185DEB4D44248116C879D09B84723AE918873CE72A28E791DCF0 5E0F77EA5D50CD7C9557D08D1AE3267A662FC62B6F40998A4C0AF672BAD63D84 C9DF997D62692AF3B6CAE6DDF0FF99F6D873B1D7FB781E8A0EEE19E4FDB6E792 FC24088F50EC728911278517A6D4A237AE3AB9F551BA702DBBFDDBEA4A5F4204 CD43E67668DB02447082FC2D5E3897B27DB1E22F987588EF1671A0A9D4A93CF2 5E223D801BB6FCF496BD5E1116294FA32B4B69BE872F92B591DE93CAFECA0E6F 682B8E28F6B25297844C1A663BBF1BE9139C2A883F9169ACB97BB0F9A0AAE6AD 349CE511DCA3517E8687B2AB183A52F33302EC9D2FB78CC2A3C859EFB045FE29 9484C5DB72ACCD1DBB20192400C26EF0ECDD28CF12E5C83214F75082654AFAF4 CCC70AAE60E0AB66DD9BB1B4F7346FB746D0EA5D749976FD548D2F87DEB75476 8BCDA1771DC729E24AF3E9C97A96699E16C206FC306E63D922793CBD1420C18A 1222617B120CB7F2A774F2AE6BFAF25A5EFABA2AB2A420AA55B6FE22066B2ADD AD678A17D2342C13A684A487E122C071132A2744E10EFA7FA8708DFC146B9E6B 1E412B8E702C1B405B496D0A8ECB95CDD3BE1D9923C1A11D046FFC2E87A9CDB9 44455A8759EC47AF929BA4716C552BCEEE4943DC71A99594087A0AF3051EEFA7 64F1BE0A18373B881B8C86B6202987523BE960F805E3831805C40A0C5CD4D9A5 852DCD928AEF040293E5CACE1B21F8F364F53899B04B0C4F45030EEABACE2999 5D5C6CC28CCB80FE7D9907174BE7ABDE9701D65577AE9D8223670DE1BD5258F2 A2086B78676ACF80D7A7DF0453FB324D770F7112D351A28C8C9E9A4731CC56BA 7A94ADBA67428414AA20C2FCA9D28A6742AF910205C9B620885616349EC7A6B7 2D81C1624D48749B7D2DD1E398F015DCA2A94B5A8BCBD4A5C0975008CE1AAC19 91DF0505EFFFBD41365DFB0D9E871808A15585D416229D574E743547C45777C9 2C1BB2008E75C0005785BD21705594973F631B31E71B6A7F4A29BFEE5982B37F E6C179FB03F805C4E0A5E3E02711047F8C04BFB87AE8E67A74DE94C10E7EE856 F678CDC300845F2B98CB7B73C045FC2F3F0ABCA75BFF0331A60E6CFCBDE1A0C7 885666F8153870EF5C05CA994B7954644B183F1841A4D7D3D0A19E5F06EE8D5B CB224844AFF9AA7F789DB2B05537011E96FE96C05DA89463202310C07BBDDA09 B7BDD68E477BAF861C6734E04023EFDFEFBC6A6A9FFAEBB5C4DC13B838725DFD F0C13913B46CE7E02ACEF3773CAB14723D5092244E49336B0C7009C393346184 170931F569313F40A5FC47B9F74D70D84C9DCD74F03B7C76D6CE65FB34AF4C9A 71F8F3D002AEAE157175B9240A6E17F355E30C0710BD682DEF41E608C31C68A7 AE9D79D9B646BE09DAD66B0DAD5C6CA4DE4EF1A25AA7F81F9407287810BBB9DF 2DC211C0E35FC4BAE891B75FC22F4C691F9E8A336C42F7B7EE8F9CC95FD487A3 9A7EC07EB5F9855F66C0F3238A7075DCDAFC549E1692890ACEA06A36CF246428 4F56FE4DBBE0C73FF50E3235D3BD10956F99F64710EE63658651C5705B14B611 D783D4BA20263CEC2B29DA7693BF364C3D18F8585365C6E65A6DAFC7E0EEFDE3 864E5A0C9760959EF8D3F7592821C779722555D3235288DD4BD7F33CCDBBD497 19080CDB4F9135493D4481463ACDE9E5F075F7F921A9BCAC252E0F4AFA0E1BE8 34F7BB14B8CA8490828A95123B87DAC7272B77E3632D4039F15DDB69E9B05477 97F2B4B202F5055A6A9AFD1536DC26A54D4C58D6AD7665B83C5965CD3BE30570 E6B252F055CFE1578317E7E32F196F53155F389219C8D6CB60D6806C78D3737C 42B28588FB5B0B3CA9713B0690C0630A952CF06D0FFC6138CFF4C692215981B6 4619BED151131E1FA003F01303BCEA71F75A04DC4AEAFF6ABE19A3BBCF5E4DDD 2DED389F86D5FAE60EC412240A40A7CB4C9BE61140BD5041251370A37D0F0C7E 7035C3486D00A5847693E14B94978647FF5863AFDDFC846DCA4FE510CBA51D8E F493E28B79B72E13B5F8B0FBE02762A656C9209488AB4142E3C7F5F7CC8A7D84 8E5EB8E014D8E1C84554B4B603A29401739B3459C05A79E5E7977438CE49DF39 13DEB54B476F897066608B3540972516E89EF389AAA70BD9CA96DEB465CC260A 12D46C2DBA5CBF04FCA6B088C97FF713C6DF5182E14D08D2BDC99E0FAC6D5339 4EAC35534343E38272192B2D28CB0FD78979602EE49524B86A2776B8BD225A31 534547486CE8E24E1526ECC7B74768EEC13ABCC7246A8534353B20E2372B0CC1 CDDBEFB58C017E21EEF1861886660A9600606CEBD60FC9920B77A2AA58E155C4 CD62906508816366E7313E5C886A08AC50AC90B982B1C6FD67F83B1100ACFB2A 3B314EBE2ADF2D9B79B93E84F2100092BEE05C0AB196B1076F360A6F1E63A25E AD38AA17CF0D46F86DEB29877C718D28AA6D21358B5FB10E65339C65265584EA 986747B2EA2CE4E08575CB62567EDC3E7872206B37157B39682412D152C980FC A042E188EB1222B64512AFF4C02B740DAE78B9D00EA806BC0853134D0420A61F 6AA0C1F7D36D1F093C8F383FC9128F0A138DEC23A633E51596B5FEA0D1B18824 391DE76B31E059A7CA75DE319B7C1868259BB148485673855366C2D7498CE1FA BF91A699F032F85BF389FC1B7A017829471FADE688FB8EE952EEA9988B97C741 2C192E05362C779ADB894DFE80E39C93726E9A60C5C9DBE2861716026B5F514E 8DD16994FB860925BE577C1DBF42EE3495E6BC48A2761ADE42B1B657C0F12C20 77A9179EFA692284C16770557A68F0EEB9DC054313320DA5143683F4F56D5C41 0630247ED449E89D434BB1F12F8051C4BC5511B3159006A437B6F5DEFD3C7E7F BEE52AD6BAF6BBDB66342BCD0E9BD9000FF23382BB11C28B9E9BAB4CFD143A74 827B199FD071EDAF086E74D33E8E726ECB9FE90A90550DB3B15779F6249574CA 3CADF103DAC3E3714D9F0B36B84B2C3CB70C0ED29B4BD7FF35FA06758979B5BD 23EF03853AB1657ABAD0FAFD5FE60F0B23FBF19DBB3F8D37C19E1C99A439F5A6 F934778E48B2EDC1B145E23DB294F884611EEDED8B7A331F84DE922D60AE8122 1DBE2188E2FDC086244B3925AC718C797D0760DDA666A65CA0D6EE1B33BBFBAD 3C25A73710FEE11B6B3B23CD2AD462792660C402AA700BBA73573CA84D8FF924 6863948AFE15463FB71C01B2C65AC5DDBDF0EFBBBFA8DBC7EA37F495833AE0B8 06555E0307D1FFF19487C415691126CBA8DCB4BBF2352C92D7F7EE53FCB7EF7B E9B926EED6E8D50D7F90B47F525113238F4D376E1B4D0E95B109A67D0C278745 55F5FCF839B2E6075F10F2AABC7146D902036410BD76E44F07AF10E4C2083DD8 9C4E18396ED7711A99FF6A035BAB154B8F3C28E19BAEFB623FA8E9E1A8554A6C 3A41B2866C97F7E10700080F625D18F8A4B9CF0330C5E6A0EECBC13AA21F23F0 1F93008D171F58E2406D3AA08F7DC8A6D3E4EEB355C10F588799D49C306F5AF4 980ACD233D8056EFD67343990A15CD2F949EFB25F516EF79D2369E33AD52795F 697E41978B1AD434B2AFD25F16DBAF19BA0512E6828F7DFA35463FD52C41D778 B615CF9753753D44CA1453E7FF6B27E5C562A4BD5AFAFD62883ECCBABAB7C0AB 88D400A8E9B2DC6D1C61880F37D556455F2EE048279DB1FBAE8B114A64B7FE2F 3F45C30570A348B427C21DBABFA8417E825B1ACB2EBBF0158688C239CB79BAF0 F0DF5B6E2C376C473BA913179C362994184A6350C2DF2870AD5C4571898921E3 E68B8C3505B4839559990546DA2D3CB1E792810FC48DFF74875D8FC9B2D5AE92 BA4267E1400A25A680F3356765B7CEA2F00301B43FA5A083BDC1A5191ADE3072 35D91846FECC89BFE80B6B407F8F720C8780542A78C7156878591C85D37B4F12 D911861AA567EA6E74744C42B434EAE1EBD172AE0546947ADF148D4D8FA65D54 DA9B0D114D60746A73D2AD9C75C5D91DDA57138E4E432013030605F7BED34BF3 7754475F8E71E00A7ECF6A0F8F0EF6FCA9A6998A48EE5690626E6664E8BD4D45 8D882F528596A8585B22388E7E36A68E238038CC147D12EE3844AD368A839C89 8783B98945A1F1AF18CF0E495E1F1AD81FC14C6A8323B06A8096D62CBDB81D98 072C8685F3F57B1434F699BE05070F67D839C7BA77F888E53B926503A73A581A 994C4AB63B4B920E187FFBEF77F63AAE99B5BA3460F3B99FE53DDE4A419E3497 B58E38DEDD9F37AAEE8A0237B0D238CB493BD913CCAE0AE61005416A027BA099 55425A12541169153BD833307E37510767CBD00B3AF0901C093A0100C2DB33B2 55678E22F4EE561EDB53866B14A0B8007C7B8809B3CEBF9A8EEC08B27014A84F 592C43076F40B0267920A5B2252367EFD9F77E5428320F71DBCFF8143E0BEA69 CE67770E05C038FD91A29C5DB7BCD2B9D794CDEF116C855FB15B2852D3BFA57E 417F1D87BCFF3BFE515C77D78490CE6B997D699E5EB8214DE68EDA3E3D9FD637 C98BA46A6161F9A5B07996BCCC94C832D4086161D6DEF2B381927C1E478A90EE 9BD64629C74BA977CBF15DDFF21B27ADB44F226652A6B4A09ABA0B5637078A69 8B892C5344872B64EC307C86608A87E9B942220673DBA5DC229E9D65979EAC36 B3C2738EE521A993F0661E8255B6702A0FA0261898725424EE291F442805686B 7E2AE45D2C9863D25FA6C32DD4739F3F8A484E36952448DD1926CF3E4C6725EE D629B0E0A7DBC1269991295B712A9A9258BF075B3B7251BAAE60F6B81B2E85AD 8752BE3E059D18123EF6D0BE18B91FAF0FAE5BC99BF56EE78517A008880E7E3B 05B3E0B86AE3819F7E943BA2505E9E31AC073C2DE27E4016A408D1D743D9A1DB D506BA04E93CB536548BC2C18FC86F6B6338DD62F7973B37503D8B32931366E3 F026AA8173C9DA146728D18F9E8BDEA2E1B1D3F803139CEEF435F081AAC1A0BE F2B686CEC5856A891940E461C4859F414BCDC5FB11EEEDD55260AB1F8846C3FF D231702E9F7BE3D106C1FDE846DB184486889FF4F837C6799F8F50F4C88FECAA 2ABE750E915A6CA0873B226CC704556AD2695644AC890E05A8E6A0F624075953 AA427F2F88AFD887B22532E89BB76BF6846262DA78392A594EF0BDCC8B782467 806675414213A80258EE674510EF3AED4B6427D5FEFDF5B03EDF10384251417D 00A06E2B7D05493DDB9D184247E6C405FAA9A937DC5376219237ED0C25774277 7F6A9707080F89CF435B82D192A5AEE7B0ABC5E6DBF6A5EDA01D2AC4BBDD06BB 7E603032EFEB35E28411FB05AB8E4A071D85D21F3E20D64418F03F2D9F061942 29D2F9F2FC83C44E174DCF9FA7D4E1BA3C030E18F7DDFEC05112CA37225FC2F5 08A88CE2BD10913614850824A44842A5F815B8059EEF3A2AEFC1A320C5B59443 388EDB91F8A569CFE3CAA458BD9A827E50A4A73ECDB2BF3FBC77529286EE6EFF 8BA532984D372DAB56438F1042C96DFFD6F9BA04AF989E121A7503129F3A225A 2B5115534C7142050781178780DE4D09C68142CFAB9D75C4F6D6A73FB4C07FA2 195EEE8717086684BC2D4F757FD2D92A247CBF4CABBC706A929EBC90C0E77E0E F2B89C59022949EAAF4E98C3FF5EBFBDB92901B7721A8D68D0253B665A112B9D E60C230D2005071379D9CCD989C5C72B6B090AE7C8FB5B2E8B4EA35401C4BA75 FE9EC168A8B9A604C09EBC603E3AED6E33EE942AB484E2D10129E5C06469D73E 708BCCCC03EA01E87D172DAB427ED4451592104309CFC79CD7BE586E4820CEE6 F2C77BDBDF65731F135A50C4EC61C94EA59D05CC9DB849CB9EBA6719CBB3A05B 4A21F082BC9EB59D1EF239EE42808CD934F08F85CD4CA75D32FE86330701B6A0 04DEAB37B26010BB2EC1D139265A392F73E562B6B669750F5DD71BD6F614AC04 B3DF74ADA30C2FA98F494A4E80FF1ED1136D04FF6E85C65C85AF0CCD8D5B8243 2B8EFECCF5F8F3B70574EEE16E4FCD64B9089088A6517288A870B9935FBA7CFC 2159A264CCCD930853325C99023E03CEFBEEC502A0EE6B85F2EFABF38B29E335 BAED5FFF3B882E52A7363BEBE9D39B3343F5FD6812B4CDAB3BD78147524D5F22 8B0A955302C171E7A0D628C26F57A223F45693BBFB1A82D98DD284CD09D80569 FAAE3D9A8ABD7295F452F998D6EC08E1CA7265AB91AA9A09552C199D0B2191AB 75056859206FB59C264E9CDFB2CC8E3880ECEA22BF43938B806958D3CC6C0FA1 B72540746426543291AE4D20A92F06C6868A13118D999D41E547585243A37E9C 40B98C3640EC4E42E4D3CF24F552F5DC6B9FBF62FB1135B3EDCA7EE4BCB73DEA CE6DD9D60E8E244F54C0E7124467940A83B56BFCEFB91B78A79978FA67A5DD54 5A2B7E5637AABA9A04184607DDC9C6BDD3EE5F789543543A2EDDEA27A9997781 B711D5A47E086DE17C292AC2992420B6F65FE79B09C8145BFA143C438C31DCA9 696FBA94625D1673093CFD71FF2DA588399B10AA8409D8CF4DF4BED62AE20551 845A3706D05D8290C969F2FFE8E5FD37C1FCC3B184E4743D5F0C3C6ABB3B6076 EF2450FDBF741863A5FEB1BE5AA682D6E0481F93B4AC018DAA9E22DDACB088A2 3C204106F5E5BE85533BE7D472D33371FB09B90F3DF094D84935F882B124BC08 535999AF9E945ABFF26CDEA98112C2C8B5CC5FD35C023983CCAB2A4224433A5A A5803064AC63E3DABF2FE7D0FB1B730E36FEB80F752C3E2A0EDDCF65254BBD87 B538A8BDC93D400D01A51C3997B11996F2C7E54C9DD2720E8BB7FF7DD8B3B759 506FAD5CC3C2E5BE9B976FCAFE9D64B2BBA2850B92284B30DA6D6215BE2990B6 552B97C7C741D1D24B4CDC6D666CD1F491EA812A64CD3B2D9D83FD505DF3B4B1 27533D55EB91091CB575ECBB38CBDCF48A1E09270CCF28B0A7BC894B5D381CF1 75BF4A02A4E61C5EB9A012B53410DF5DC1FBBB35B6AE08F729AD787497219B01 3BB8D7A64B4CC91386C4AFB3FADD1ED132230D6C539D9956444E02C7B1C73F21 B869BBDE0B47D8F23A620060C06C3262178434AB4846CF5DF3CB61841AF5E460 F80182383E96FCA19BFDC5AE5D479AF0E6E8FECA63C04718B577718330EE8875 B34AB84455987FF386E830B8265E3149197EF81E8C7750401039CBB0BCC0D1B9 351FC2667B316186A5508E5455322554043F99B66F7E21D717BD76EF06919C12 4985C9FCE40F291325A17D6A96D5F93DC0307942FC86EE2AB3E0260FFE709EAA 24C1481BC5B0A81CE5EF8EABE0C39BB2DD3BDDE5BF214DDC13398479EB9D6BC5 3306956B263116A6DBBEB0C9784A4348C7A8ADB8FDFCA225262626FC0C0B1C48 063B0E4937FAC9BB1B13CBB7C0C43C67FFD737177B7CF39CAABBC6F1FB7EE541 1C8E41C38A43EEAC604DAC83330FB9FDFC3D1161E656372AF4CE5A66C0B503CB EC1DA09C5FFF0B69D2E8BA2A1A2779813414218766016C978D1B4AF59FF5CD16 E1A3FDE0CD71A7D5D51EB5688187B3AA4BBBE183252571C28BAB6E2C9A8EE14A 0D55A9D448ABE7C5F60D6A771C9F2E33F486AC03EDE9CDC0EDF0796A6B38AC27 1B06CE52FF958AB8B6CBE8D77BC70743C30BF59EDA5E6206FB714E64DE44E88D 53A6EA12289A220F4A84B86BA71C205EB6CD0BD9FAF21F130EE896ADE39A386D 7DF9686A8CDB1A37816CE4E108DFE5E1E97F2A0CC04CD039FB34D9EACA56E7E1 B0F045A16BB81DEEF4550DAD42EC1A1023D0FA0BE6F09EFAA6A1C76238C4D819 2B7963829017D43C0E815C49AB169B710AFE620F8C4CFFC09260D64BB5FEC2D9 EC64C05522B117EB0E7F805349DD2BB541D686147B390A099993B56E111CDB91 7477BA0144114835F96605E973913F3D806CCA3E469083C0E1093CDCE5922729 8E390099E5178DB32E7385F50CF4641D3A1C15148FF6B2868653BA55BF55B674 6E856EDF09C0B1869CA7CA2D7D2E3895BA33E5B0AD0224A22CE80D21B464A35C A409709FA7CC2A625952A64CB8388354DDBFC43759F70E3721742F8EDADF2C6A C9A36CB629A7BDABD1252193B023A59A82249ECD16D4FBC99E17F19D536A8038 38C507E623F2A8502911CAB49534A0392405304F96A715FA799C6324F2B26AF0 F8CE6E94357F333F1891915EBA24B1A968EB32F6BE065CC70024A354D9F3571B 3889F9FF0A041A90D1AF5C2F38338CC6FECE6C9777557C8937D2E26262559C84 B7F52F467224324C88F9474455D44F284DE0BDA706F122CD157327FFEBF7602E 0E005C6E33B12EC9AF54218EBF25010BD7F3785A070EF91780431A0419D9579D C600237EA2BCDE7EEAA13517AC23802A8039FB548B3C49590DD6AF7B1B9CB25F 5F8AA0DEF79FBC899D997CCDE74826BB97485FEE2F1460A65DA2C4CB43DA2F3B D3868D6373B736D4CC0FA988BC621561E6A33B1C2FB8B5DCFC2D27E7D4CFFE70 20D539D6AB25713AABEDFB95AEA7CC3CD4D84CC312A582D14C02D98DD85B1808 029A725F7F84531D1CF4C444BDFEEB6B961689FC481EA4EB7E70A45490A6B6D9 CDBF555F9AEAC425179A192AD689DE65EB838006EC828B11927DD65A95164B9B B83253A236A14F0C541CCB641118036C34E481DEFE4AFA59DCD4AA11917A87E4 9B679CA3E2DF6C892A3E3C0E5350D219ADA4B1EC501B8FEE8D04803EBAB6A549 D4E21077B0F736EBEB4F995A09C803538CD0B64A8492B511E5EC3B449FCBD7D2 3C40BBEECC0D780948031C9EE5EA7AE19978F1EB40413A34E7D58E9333AB11E2 8C333FDE665BAAF7DAEF175975472DFFC1B4F9F918923D07F24D870B98547EF6 F2A579C2C77291AC20C50908DB38FD4FB56FE607B8ECA12177C4BB66C835B875 5151715519336A7D4E95C2B17F4601510C2A01C4A90CC6834BEB87413965FB06 C97A401C7BAB19CE3F5D0FBA343D16CC7A51B494F3C19D852135C14D6605D8BD B4DD2CC0204D2DB890F9E6CDF4741537610B95B5C610BA17B7744F9720ACA0F9 00D11DA855B9C8677928601320D89619CBB7D41ED97931487CF323E66A56562D AF22DC9F9756AB4CF8D23885E7AADD5025E5DBF15404468FF6A49FC46B381BB7 9E42CF5856A0F03971610465271616BED93B115346CDEF66B458A7E9FD538C4A 8022B26BE18F257A4BF09E9ECC356F4041915A03D84D8CCA6B5D4ACC0D938DCC C03323FD974B0F4B7AC11B4B9058FC3163A362DD4E26E7D213A753C64952433E D2A0024A084936535872B2E463EE135D9D9C902B17B51AAC0CB25A1EBB364766 B000D732D9949A1E96F4F6F4A89FA7277F6B3D38EC462577DBDDFE4BD690591C BD45E19649ACDA951138882D4CCFE9D7DAEF9CE4346165D44E0115AE152142BA E76A44983E12E93E9BFF27EF0108342D68B5C88DA5F44C75111084019DE1FAD2 64E2B59878BC4A9FA8743E051A5CD3E1C80121D077C8403A25CD7585B2B67572 E3127923E0843CB33249FC93E6B864033110DD1572CE251998CD0CFD3898B7EF 59606354AD4A6B726C02176DF5BA5DA1EF149DABDD8DFC9DBB510DE3C875DDDE C1027DE4A3CF248DC5653C772D06D80F724F1C75A89B48F5D366082E77405CB3 8C7A634DA8A79BD9416D67F68ECAB1355C50F246011C10784F8FA3C520F21B5B C53AE4F72E75AE37DDA9190EB013333099355890F54D19ECD6F228E23F44EDCA D0114140E52B7E153C354CF3F6F6E341EA13F26AFBCB532920513461CCA12DCB 6DA72E76E4737CB5C3A0A742E615E86688E3B3070949E863ED09359D65D5351D 5AA1AED481BC6D399BFA142DA106271029E3285A327CF5125D3EC439A3400DBA ECBF2840EC631FDE0605DD71CF004087F913EE0CF4B5284A15AB6C34D130D4AB 33F64C30C5A95D86E6627A1196246B459352F82236D34C0000F2F317A9658BE8 FC48A03E1137D5A1281CAA541FD11409BFE305FA4168089D21CE11B7812E89A9 18A566DD520C7543D649BA7F7B68A693ADD6CB4ACC381B51BE410E31A5A44A6A 325B986DE3753D367F8795669F0B4E446EAFE3CB12F1E2EA00D0337278541B3A F3782F0D7F681BF743F7836C7F47BA59E6A82696B5D82B42234300E39A68D070 4585B969251F67BEBCD43245237E93481921A3554216864DF6BBDA5BA849CB81 C6E975C041BF0693AC245558DE258FEE89197C31D5EE5C828A8A52B0512DA066 D6DEC50F2F7706E27F6A78BBC90E667E746FCA59791875982394B5FD381BE238 08DCBB9F3140E4AABD939752FA8F2B67A4FF4E6111CEE2E9AECCD7DCFEDB875B 77C4453BEED34F871C1D6D782FEBEC19FCC9C87A5B3268000E98D0AA76B28CAD B076C7768EB11C681D4497E178FBD7DC19885DB8A86CC7A26FE7913E39C859BC 00B9A6C6440EC491C6878F3BF653103DCAF9D319D43DCB60AC795AA4A8D54971 21887FC68A0E948984C20C3A8BDC58B12CEF858CDA9261A2B5B279AFA154DB3B BA8E8BC434AF4C93ADDF0B5B0DCA43DB0B429BBED98E9B33E1A28C78BDBD23DB 383FF3A155AC5E6F068CF2075CADBFBE4A276AD9AFABEA8FA43A98760A5038EB EBB1C76DFF049DE637713649519A90499AD860E4BEA0FE28119CC0F6D54DC352 84340FC2D1FB876816B3CFF0B18903071B02457E235B4B64AE5018E6A92E60B8 57FAE5842613BE64D0797FA23EABFC4F05C77766588D2EDA4B95B0D536EFB45A 896382432C323444E86F0019D52DC3A9875CFF29BE45258635438A2E1A0E536A DCB35E8E468A9B52B305A782C1C134EC4E2E536C1D9B015F99921C4FE8793706 314C9ACF758E1502F1FCAD8A979DD6BBF35029B5130283C987203EC7DC9E9BF9 3A81442550316180EA56521EE637163A61EA6F1A625EC24892F39A678FA87489 A04291A6ECAE6D58BF68AC2E8EE8EE07BC7DC9865492A4315EE40526EA03A349 F5C6446E37A0A57685BC7671AA169E23D6544A7B74E0C4E5B918EEA16315CCF7 64279D89362FAE061CE1A9AA74B60328FF9963546555D6FA83A6F6F390CFD2CB A8672AE67D8B2FEF6FAE9DB1EBFFC78654924E1935A77568FC914CF89012D173 9F8F1B251F7B47B131C8F4D1F191EBF9F18CBE633980F0B80CE546487D44BD2F F636CEFCCAAB10058079E4373825590D1B2F37A5DF73294B2D6E8F702D2672DF F6476DC5E85CE5B15ED448127C5081A72DAF5A091DFC125EF6E21ECB883429A2 C7690473547A5080C8A8A6796D1DC5BFB57B9B71B8BC3890F3C2AC0CE4168645 53E55871A4D7D167DF5473341A69F601C1F435DF55672D3DAE70EA8C0B98D622 4E7566C706CE349DC76A7E8C69AA01146A180D039FB0982BAF18D9650087A52A 32E88CA0713C658B98AD231C9C02859B20719D5895653CD5AB545DD6F252DE3F 1B2C842049634E00A55BB12047BC698AB5FB3437E3653C178C42590180D7AB4A 43C6BC1046C30CBD8BC6C14A2EEB6EE52682B401FA1322776908BB60700D997F 0FA5FECAC36DDEBD885D69F742172D4037A24F4317772D93AE71F8141C674AE5 E221FAB59C3E669D58586EB586719F53922A696066640A26839E37DABEAF5161 09A03531CD1AD4ED29076EAAEC80E2B153E0BDCF6452FB26FCF45B1ED192DA11 76649C737210F59E8A5B51C468ACBA31FB51C00F25FFA37735DEBF1BC659B0D6 C648CA390D6E420AF460CEB804EFDA27F705597D9B07056F22F7F651B046BC48 D0AFFAF359E9C7D595D9670EE9F389D49161E9C431E7A466677DE06B7071ACF7 9D206193B124DA1EA7644FE16FDF1C1970C02B7451D6436735107E3133449351 2987E575A26F642A4CCC8FC7838D36C99F6054576C8AE84F7A2FB52590F8926E 7C90AE958D1FBC09DB32AD05EAA08AE3CFACB5054E9C516865674CEF3221F873 AF5276602CC23179D239DA62C394EFF51F77ECB8337B073EE49E8300E0EFC7CD A83B519C775A064ED23CCED8B77B4710B27C33CA03EC29E594DF5CBF08469A0C 8647DB4208BF4606F318CFA02A5325C1ED9789ACB8C033324F14F7A1FD5D9FB8 64926EC2E843851BBC1CB613A48C8E7D470B69BC046F2F330276BF68B1D1E413 5139A4499B81AA72E0684CEB1FF93BB9B456190A63B12FF1FFCFE49D0F7FDCF9 831E5B44727426AF5B698210F0FDE2892BE2C9D057B360040754758593ECFE91 490EBCAC04885B22AF8C14D51817D14AE3EC3BF21EBA3F042E8FCAB9C24583DB 4E714CD3C4C58F7A47FC8222E59F7FEB960D1C9FE9E6C21E5E2ABCCBCD3486F3 6CBAD3C52CAC3CABE9A43C818116BB2CEEBC2C72FC02941F8D844E777495D3B9 2101B9D942BBB0DC16D2E2BC9CAC377A21242B8A524BB268CCACF161D8A0ABD2 8D483ADEFEB6B65B47103DA31E166B1AF09791377493C134CDB3B8A585C42E49 CD69DE1413C0AE70AFD74A91CB4D22F0D8EBD98298DBC45FF8053764EA8B23A7 7FB2342CDFF5E93F18435E1BB4E0DD787A4FE58293B8417AB571B2B93D1D6A5B DA1757A94710E8567B88CA8F487693AB116C97ED1EA8C4144638595B559DF962 4A97B45CC81A546A050EDE122E956888EB8DEEA96DB5026D4F87A357660B86BC 67495DABCD31B4E657FFE310B6C1E3565B262333C8A937BFE7E2D1E650F80C5F E57D3FAA3DBC63339ADAE25EDC7CF4AC1551411CB4D4F57EE7BE0EDD7BB991D3 F7F6B59CBF92B63FAA4C169E925BFC24B91C22F91AB9C72E3788C8F5C9B893AA 458454821F9558E1B0740E4563DD3C1FC96A6D24BD85F4D4D9EC0D2D6A692EF0 3DF60348C51E8E630A97A9770D1E4780D86177C3FA90C6638A8BBCC99C2D1D75 21BBD55F5AC368F1B6AAA69A37F5975DB4981BE13782B1CC582299720FE3173D A27DB1487161C77BC090F613C053683A3FCA0C1B23CEF3685E60735A8465E124 E8EB868F4F085CD3A6CFC94BAFDF59C86B811936C57C0F97FF1E37906FCC6534 020DAFE66E8CDE102C6AC38F172D90A9CF32D68BB13D6F13A532ABD4D9E222AC A5B8512AF967E0B2C0FB5CF51A21EC99C7642987EFEFB40400CD5AFDF4CC5984 7DBC9627FB35C5CF7B26C6D3C32C8E2E653232D1B02E0DA4239D144393117EAD 227BA7151CF37FCFA2E2505D73962D1014AD98CAC2FECC70879CE131C5A7A7B0 0399207664A147C212CDFBC69757157D4CE333B6CBFB487579C8D25E7BEECD86 AADA27F5142E5268ABC28C260A6EF32AD21D6E68B1BD0AE17DADA607D3234F40 1A48D506CBCD0E2D4EC00A5224636053DDCA865B88D60D3A6C329C317253620B DE6DB04030D9D318F0B102C36E736E14414DD22FE3FA6F3AA200B19F4FA6765D 1A3392B5D7B8CC758F0AF911BAB906A8F5F8B1905366B362AE1729D19164D9C1 98FA6914D5675CC6EDEAF22736602279A83799106B930F6A77EA09737485D78D E971814F640CFEA8DC657EF6E962E18BD437F0967FC7E2508A6DD75BD32F4322 7B8F435EB23B004DFBB8C94389DFDB5D0080F5732A892E5E5E4EAE58F0D345A4 B1A24885D1C64218D5BEE23B388F6B3E9B16BC6E8C0BA97E61BD5103DAF745A9 2EA9CE8BDCEA2EE8FDB1B232BC640F4AFB38945033FA9EF8953C399D207EBA3D E330B4D50E906E9755EF02408FD245841AE333BBAF9D1AA650AD0299CC275FE7 16A2E951F143C298483CB89E7C86DD9A9029ACEA62BA4FDA86572F742D92D558 FA6F8A32E28765EFF2E48A43E26DB8D092D6716AAB8EAB719B3E7E23054FCC69 36E81082E6E7C9FB4E764363D832D98524D22CCAA1A1D64F5D0112F086BF9419 1106791ACFD5F8EB3DEA54C1F7C19A1E405AB68894C3D7003013F5429921DFF5 7C1D31A5C2BAA767FFFA64C58991BFAE46AC9722F2CD51B51509EBBD8FD5F083 8BB09F3E16F521ECF7D1850445A2BFB78F3BCC2F4F587824C4467E11F7F6AE0E E70E04393849AD7274DFC290EBFC3CE610FF41B0ACD06DF99DE97C8CCBA4790B 179F36976EDF9BF8ACEED3D5CF56083175BDA1FA71CFD31F25581C67CD00591E 80501B1EE61D604ACBB0F725B322F99D814181FFA3FEB4A9DBC35C031647CA68 95EA19F35B6C3B7D89743E4311E227976E08EF0176F4AB69C4667119EAF697BD 398C7FA4DECFEEC8076A38047DA73F7E7BB4FFD2B2A41D138EF5711737EA3B3F 88E914E9B100050243680B4071A4C37C9939572CBA372027C9E43B8B8F22F0E7 D0BD6FEDA3372CE82472287EFD87953231AAF06D9FF87CAB967362115C60857C 140AE45B2AB4E2BFB216E1303A1521707A2E596CF556B78C1E1B878BF893879A 9C61FFAED953F6886DEA7529711489F10B965AD5E74EBC38952147AAA3F33384 B2F26162F96D7B679015BD081AEE36C550E9DC645CB5AD18AD7E2655E70F2E1D 8D61532A35295BCDFF7DD7AE6416D709A733A2AD338C9F9460B0717C9A4B0FF6 0D987ECFD5BDE03AB6693C2F603B302BE39B9B1BF87F0ABF27FFA66253635E1E 10E30DD7724FDA4C45C9EDBE93C4D395475BBF5DF46D744A6865DB254912B3D6 56064F4F5E825E26FF37C698E20CA90AC311FD5997E19E7DB163EB10B6741889 B8F8A210E46717550125F2DDB8DF193EFA26D90E3ACA8B194F37262034F7B135 672DFAFCED91F96768E8910D52286E2C017EC83309B1C3A633FAD310291EFD3F 3C4D9786C3D9B6EE2D5EED368F46194C5DCB838D555EB87490B1DC313725EFD9 392326169E3822AE6DDC3F7ED82EE56E7B40C22DC7C48BE141355EF85B93A8A8 8AA5E78AC8EBA991C2CB48337C05D6C92D28ABB927C5D76DC94D5B622A43128E 79957537D92500780C4DD38E62F15357E140B31D702A9BEFD4354CAECC3A0ED5 DB8942C57DDBE9C0677B7C062E97BDC409B98EC48A1F41D73D156F4C2970432F 7321CF0DEED4EE4445AD3890062318D11DE5BDF93C575FE6B5721C0D0B106490 734B004D92A3551C5CB5A183F57F2DE7F08DB13C66D00F69C8CADD2969B4C095 2B34CC662E2E5CBCB36C6F1839459D73235D222261196C7627641EF015792A8E 9B32B106EA75DFFF4CA9A00DE122F9B39630260EC0928EAF9FC2D01624B2B976 7378CE852174D30EA86CF6F06FC67336B233AC6424DD1D99550CDA01667F492D 20BEC4CAE46508FCE38B8983959B1C2739558D9961377643FC353EC70C7377D9 A0E211219F7678C978C823498C31C8EF2E401D7BD07F6027D97A1BC89C9F5FDE BF57EBF2F058036E488FD900B3652AD6F993BC8D333EB2794506E6A4449097A8 0F1C9ABB859EE698E80F4E740B700F569D6190E679B5328EEC0D9FA72A63BF67 D9285007C41BDE42D22AA7F3CA8D19DF52E2C552CDDC1FDF949D9BDAB9F2AECD 8BC13AA4B53584DF03FA318CCB483A55D0DED7B57B9F13820636DE5AD21D7F46 AF4290D7AB833A2FBA2B1AB2E391EA4036F10B01D374605C149E6E35D7CCFD3C 89729C59EBA083E148BFB5F4547AB0E35D48B93D5AA2DB45A1C795760C5BC083 D3EA1D82AFE18A691BDB7075B0A9FD5B8A8117CCA8EB7DE898E1532A259C9153 EC7B20A7A175B2B2B33ED5462D8324A8594228A8E393943B996DDD7DB8BEC6F0 8CB596BB4E1EBC2DB9BDDF211C041724DA60857C974855D7C01990E48B4D3A6A 1E59398353BBD66800CEC209716253E9265F3BF1B05BDB18900D39F9219F873F 20C4B9F55D759983E341469E72E0045EEDF6CA26FF4EA70CCCDFDC78AEBABD02 D1C479BF4DA6B045DFD28AF64BE5022A45E024F7D11A6C0E70FC3CD5A82542FB 6FF24CCEA07B31DDEA9BBB14B6F776073C6C6E296929BC73A3B21E1F8DFEA4C2 1B42F571667CC66ED4BC1E88FC953AFF8801D25FFEF1A66FEC5E593A8826213E 7DA7EB25E6A06423F2A98C7E69B5B9914807C4AFCD73BB9DDB81D7CCD302C3C3 920C01123B41CB6E19B445655097297E1FE8DBBF8D8319516CB648AA68777EAD BE5F70542ADB353E17DB8ACC049ACD650EB4489C26DCD7251919D4773B9D6E72 A83FBD0CFC16A4FCE2EA81331C5A45F60B325C026D2577B6EF9C750DD28B7EB9 76F6722D496F8EDB6144D04A8145F05FFD1C5C58830685134A7BD9449A03B9CE D2638960851D8731FB3EA3C363A912A058EA5D79BD715285E3FEE13871FB9560 FD225ADD041827515F23D769C71836B034CC6C4B64E8BE11F571E6D0EF242F51 E38CBF52A258872087C143A75A5D87662827A58D419A0052F81677C2C35690C2 45D51C425609B48028441849E3D50A721C539E553966FC018C42B904A56DCBA3 DDF32169D10E109109D830D2FD324562A15AE5827A46E97CC0D5D31789670C4F B13DA17AE654D27E5248C7B213520DFB5569788745ACB54626DF2C7E8F03751B C97545708EDB569F6A1D5D2D33A098545746DE426C47D8CC5A2015646F690D03 FC579C0483F7151424DEF01D6E66A358C5C2DA821844F99339E3B548C1FF5EB7 ADE6FA27C186B3C71C096B5454FB4C2B4FB14C43F3C2B8B4E9FDF8C6A85EFCCB BD98AA81F96A3DE12633C554C19863A8FB9DD1DE10EF22D2BD0DB94C7EC00D3C 7CA783794D438975F0E954DBC5371D23ABC4102BB00AEC05056D42A7B709F7FF 9FF02229F7495440B40CDF4BC324648159B5B26D7B98CDA0B7DB78E920F93030 B5B1B150908FC54616E80401E668C7F511E227ACD574520832938CD822AC81EE 6067CEF66B63E9BAD75B2E513935723CE675FDECA36F2454871D432EBDA36DD8 6D32C71EC5D39EF82BE80BB9ED7CEF70E2199837C80ACDD11FF14F6388DC6054 93D8BCBB2130BB062C0BC33FCC99957DDB4B0A6AA18624C2DAB9800E8E4FAF22 5B725B42456962AC10D2E5A0DA02D0A5FCBA82E1ED49BE64B6804019FBFE45C2 B13BFCE8480B2C69C3AA9F2DA4EAE0CDCD25A63B2A8B5F1FEDCB6C2D02AF4013 F00AD3F096A47DC3767918C846B34B255F95BA59BF2DDE6CC95C503F41DBB8B5 0D96686E2688DA70A988AB64C88AEA3455EA5409EC66553B7E351B88948E9EF6 3CA10AA2319B45AE768D8EE1C13AAF6B212035235740701F8FE1D713EAD4FC8F 6515F9CB411F76138EBC8D5A4C5E7D946F41BA0FAA48B549607872C134198BEE 2115083219CB537AB67CF53B99793D14D75ED6C8EA44EBE39BE4FD0037799FD6 E266AFA4E0FE4A08B92F0E30D3608140C0CCB3A9D6E5C70C9E11C139C0050080 E7FD2A8240EC627834B17451559272D83657892F93B206970B98215D5F02FA73 3213F217A526FFE3C0E35BBB1626FAE3CA1BC6542AAC11F4415C87A4A33C36CC 4B00E7EDA22F8DE73E6B9019D198B4BC903F2C4EFFA2B97E10660DB57DC8AF7B 92A913D45EDC976608274A18A3A1ED0F221C21901DBEA2793260AF503E8F3E53 651C257F6D37F2BD1AACE56ACE1DE48EDA09A0A2C2D1D56ECCD2521285F506C3 30E599084176A211B502D71FB1826F586DAA056761744B3AE5837D353F715E29 DF93A284EAF5FB8E4D3D9EF99B6AB55EEB83B8B8A6D1AEB1B816033C27DD5222 4789EE33B189ABC1AC29AE11EBF5917E4F9AF9DFD48BC003CE30B1F4BC5F04D0 51AA0D3E7A00DE8EEABB9FA584B8368120BD6AD8AE20CE5648CE4391893E7FCD 7D77E27AB36BED4B1C6A308781217CED82E14D00829596A84DC7702FB7D43D5D E946AE9AB42E07D3AB600932B40C2B031247006C06E46CFF68EDF82F8C6BF398 8674F1E16355BD6E879769926653152595809052A85D916BAC0FF1F5D4CFF50A 0FF9A97D9647B8A8E23F0F2498E4AC0F9D92E39632184C0C3D28182ADDEEFE08 9978D3506D7234BF81E1F65F5FB43719A1FE3DE71198888F81E34791AF36C797 34B83969BB8C607818F79A1982B0E8752D4EA1F7E8F136EB812B34D021BBF456 9DB56B04FCCAC74408EDF637135A69BAF3CE6181236228599DE395F4C9AF8D2F 12867740D2618EC72E88CC951E79E58ADEF5BBB1B75F9001E9BEF90035FF1810 EFE39A0A3ABE9287695618BB6C91DD0D035F8BAA5A9FA6A6DB7C17B2962D7287 0FB0E1C35D61692563CEBB2DC57D6EF40AC08B4924F3A3B2AB208C0A7526AA42 14CCEBD74960E08DA6AFD6B57B5049217196A87034A5CA18E2C0554D8E1B5022 FD6F4E9113ED8C18C65B5BB4C0566BFEAC3309DE3B91187AD0A917BB86714FFA 641F660D4E683F574CF46AAA43E3FE62799CF942E40D074FBB9CF879431D31DB 99B9356CDB21AB4ADFA5FBFAAE9CFB48671C3130D65939A02B3D80A4F838D2A8 0285D6A746FE732064177A653311D41A9052249063B2EBE7F980C70493B4CFAF 26EDEE2ACDAC42E3C36A807B41155FB0A1EE8F1C5DB1094DC521E4AA05FB5F3F F8537A9DB5161EC2C1E32AF0E8E776D849FCAB205DF2A29FEB0B060AE2652FCC 2249389D846D5AEA8BEF99E6EE335021C9267553B043FF77A2731B43036A1C04 B1D061BFD0EF2A14DF5E138888DB4EF0FC2AE3BDB91D7EDF6BDD633CA242F8B1 DB1A363400C4D8FFC0D9D20515372F5DD9ADF0E59237DFFFB9DEF5D4AA20690C 9CE80F59D2CB6D0EE28D873F257883D8491520BA7578EAC4A1CD834A76CD7CC5 617DC4FB997E37A29A3CFC1CA95CC1E1D81AC0DDF94EBFC4A757E330C750D9A8 9ADA7E7C377385B3CDA49FA84C2DD6AE016F1C0F4E6709CBF51D60701A431CDB 01A2D85EFED4BF59E62F18EEC7F182E8468467ABDDDCF3C3B8AA11A70FBDB545 CFB76F9E39F050675463D20138479B26B21FD28FCA31FD22B4753D64084EA260 D31BC09CD522A61A67C5EA7B94C28F82974EA2F56F7203B9152383DF8665B52E 6549CB2391CF5A64D6A614334C08CA6A27EE6DF2EA4D513598A0C12C00DED433 F186CD5CD7A7AD3C25A3E813189547D904ED5CA27946CC5D51A12B421F661EA7 B7A7E38B8C8740E83B7471DD8E05E2550D54DC77B8390B70E2AAF5CA51EA594C 31860CCF24F1376C43A2553C74AC1FA259D73B3E660140E29AEB5E7E856D9758 1B7D0ABE82DC0E565D72236802133AEFAB9002272231C9B70C54918FEFC950F7 9A4A8C99AE1C1EC73AC78D508C4284988B1D0EDD841974F322176C355633C62F 1F82E0034CA267210B8C831C9355F09A2CB4B1DE383622FCE271CAC64F121458 CF452C709FAF05FCC2008DD197A6674A5252D04CA54E76BBB8E0ABFFC8A6CDE3 B2C031CFEF8BBFDCF33FB03C2C1D805D1C295B17B2D471E45E87674C64F7FCA7 B71D7CACFF7301D57C4ABA9F5A42DA25C366D1A9CAC66CF512342EF8773FFF2B 50D5ED2933E23310FBABD98DB3E32C91BF608417743FB85844E9426B207A80A0 25673E9EE648C235742ED6A135B526864F51CDDDD126E94C47E7FE135E6BDB5A 14C2A30A3B5F967030514DA7EA5F95E1636EE1EFA34B0647DD43E2E5B97308D7 CEB688338FED06A70872F222D4B751DDCBB2E289F392294A20E3A89B3D2CBD75 75DB2EB3DC0F27CF8A24012CBA1457AD7CF3F2999267550752247A1D49A190E1 84FDAC6A57FB77847BE48E83303E89D44E9218B7C3B4E0FA227E9D59403726DA 3EF4C064E497EC8D37B9553ED0313F15618B997DA232A30D8A96ED46A52C938D 68C9ED430788B1F61CE308694E16CCAE26D474E928E965F82469918156399B7B A100D2E6520297372E2E3E82469D935FDF631D7692E151547ACB1CAF5DE35908 36501B606AB8B60D3D25883528E02CB7AE5219685604D46FF85B9E0BFEBE26F9 661FCD18141FAAFEADF1FAC60F50358AB5456738D57973059A06741AACADD66C 337DAE6D6F1345E4364FD1867BDB719A2F56E941D4005BBFC3C8AEA7A784ED2D 29E866C63CFB3422CBC3C6D0B0DAF7A01C94C79516274122B19846214BC16C36 FAB96201DC1C2BD1E8735A4B9619D7A280D8D816770F574580C581062BE86297 72E66E0F48E8DC31EE4E9C207EA66DFD42AEDDAD0AA35F0AA1DAAAA240D5E3AE F5DE4FAFAF681CDE6D0C114545BC228B37B484284B93D44E0C2E223EEDB68A2B 64F24EE462BA0DB4A41143A3B58C8F6788C4F2616F95CE09EF414677FA4BAE49 82EF9837F7D8CC4B47CBBDA8DE7F08D91C815D18194B289B508618BAC711FE96 3A327BF1BBBB0F260F03AAB29D48244E2106C519B46DE1EFC99D6848F430601C B821FAD8228131BF21D18B5FB728CCE1645755EE80063B297D805FA309E306CE 9AE2F1F1F6D6D13293D182B5E86B39F6FC371D760A09C5E795A034FEE03819D6 9E09591685680835AB2B02D3972F560735D4EDA87BCC98FCE5617F239F505E94 38449CF8D4CDF6C4C228EFCE24910223CAAEB7072CC696F27C70C53064179B13 D333363EE6EBAD18B4073BB255D7F228FD83D1F14E0AF27EBC47B87B9F8389E6 514BFF986ABCC07B9BC6B6050987F6D380A19A2E151EDD2AEC603660947BF3BF 7AA317B1A2E3D11833E749E59A7B7344BCC551195C625A7D338A547951F862F0 91CFCC6E97648EF2C39108A52C402E5A1ED6C857EA7D6DBAD9464C48F3270C1F A8D784341341CAFA9E72855EBA78546B5BD82759D999F4CFCE6080D60572B3CB 40E3FF50847D257D1AEA663B12699191ECC981A79BC124B344A7892E4B2852AE 1B077463DD733383E0624518611066F2EEC8377F29D92EAF60383E1C9CF922FF 2A4A94F0FF9931375C0D10BC499662C11BDE39A8AB9D14E39383044C70ABDDC0 79B476757DB99C8AC2866D99A165D03D63C175982CD0900446D4C99A0C909230 E72BDDEC94E23287D970A96B4A0BE8BF86005345B86F08EFB77FFF0C4869E9CC F1223248ED2C74BEAA01C5D77E3F54FC9BD185E202071687AB7DF237A34FF8EC 68F9EFB4799331A029C517BABA0CFA45B727F642C46733358970D5EDC6492A06 EB979FA38838F51C478DBC7C0CF3481D97C5C0E082D89EAA40B608F1CDFA408B 66AB5091F4A612AEC96945A33BB553EFDCE61708FAA4FE8593EFEABC38E4F1D7 20915F3858989E518F77A3A1FCC3EA01DD9C8412CB53130462CD5B86EABBBC67 F9C6591513BE3BC15D2427CBB3E7595BBB005E80E171D7AFD13C1612FD5A891C 150010A995427E031CF407290A527A69195D84171FE7EECA712E9851D9D85340 E9A7935A1FEB45BA622809EA9FE9FDA1CDA6E5E7651388D63CE2806D6710197C 0D2A6881200B708C197C7C45662F0891CCAD9A9AF5728ACBE2F5CB2469D928E2 B864F5F4C472232E9A8AD4DF0192425F3A57D2B9686C2B77F524EC313D590D48 14931EDCAF8735C1CB4B08E26A4AA1269B29D9F907140AFB898E3EAA675E3677 98CED3784D60B29B877732B081E484D9CBE19215C6714493B6C6CB79CB7EE6EB 3AF4EC681CB838062A438AE657C1B040CB036A8B77CD7AFD48B9487844920B21 D0400E504BAE67C4F2D72ACA42BF67ACF3F6228E213F8DDAECB9E607826D281C 3A43C200A4251C8E4D25DA001275B08BBB15474DB53384698F6A099612B7CCA7 E79705E7B354D339722D7FB197BE433899B914F229B26D96F314B0F9B4B9C844 FFD41DEFDBCD67DB395D124803411416A654B983FCBA3A9541EBFE687A7CE35B B215B29E7E03C256C51E363C65F60AEE18F6691E215010FC2532B730EBAC4C94 B1220C26D4924EEB22D09EF8F1BE08F16168889B3EE83069AE7CB835D4E82FEE BA6E3DF1CD872FC541EBF247410995E00FDE25304BC6C29AD402676B5C61E937 8AF8F6024D586E64E4E7CF28D252411706AD43867B95BE27781D107C5B970745 5FEB1E6757DA527FB5B52A00D90DF62BD1642D7F691DC1CF42EB937120918356 A93E90D237B57496BE6BD18CF1651CB12D65291A51EAE80A1CA6139C69F686A2 76A55B8136ED85D6654F41DEED31034390744DBAE86FE14CD874EF02CB94E9F6 F4022E9C0B82DC174B2F2568E77830852030C14CF5BA8E590F5D11BC8EA907A8 55F07BCE4D9CD4D0CC25B617DD3EF8810E837654A301F8697B0A476511D5329C 4DD9C072B518133E0E7EB7DC81966B793A9D4181C8CAF9994BDDE91581ABE054 002E38CE63BB13BFDC4191FB6765FA7FEAE77EFB722B82DAC934E39E1A28F5E6 56034B0531E32C17D7E9BE3612C8A7CC49DDFBF3511E64031179F6392A62D556 E0749689B78667EA75B34DF78C5335C1B2C4B13565A0A482ED35F82647DD5F1A 6540DCF61FA297F98AC05CF2D5E299A75C32E913F8D6C63EA5B3A757D4CEBA4E 1B9C6F550DDCF295EB32B74AE003C68475259034128707C6D990CCBD7EF23D66 28E61B0540103585AA0106EB3E64913462F57B5ADD51DCED87EF8B2E6A74D2CF 0970D32697BB8883B6C6F6AF94D82B74DD6BE9BE0A8B104063AEA566F50D3196 C91710C3786D29C0762AA2EBF7F00F981FAA9D2C1CF5B7F59CB9AF238F2C9431 D2FE4A48C8C209732CB9753BD7E5D3C4AAC4B3BB758C772E129C74BA81427867 8F823CE32E5110311966C24A67CD90C4015D5AD2E9999F6ECBB7BA0204E1106C 5B8768742E65EFAC790F7A16DF74C96E87DF4CF0B171AA898D38C0C39D7B4336 3A315F1D096757C0E15D50D36AD4B312BFE5056D073FC022B7C36D839713F2EA 2806B2C017F2CF69CE4A7244BEFB2C0787B821A3A2D7E7CA458A1745C931EE2B DAD2F17B26CD6A8EEBF00A88CC5BE942410C7395D3778A6A8F52ADEA8C3E9C49 8379632D536D8CCBF6A12F42AE5B3B7EA0ACAC4CCCF3D1348FA30EDD2A53474F CC9427C78157F97BD333C4655B32CB2043D3D0E7F92AD0542B743DEDBA902595 64CF73E78D64013414D21F92092CA47A6E9543E226CCDD2FB67D0328305213DD 955E313405ED85A2EB68CA2FF8C6963DE9CD59DFC1AC682D06FD05E2FAF4B25A 1695E47A55CF5E3747DBFA7476D434EC8A23641CC0E434C2AAE34EAE170A15C7 A19FEB124FE5D9D24C512F17B94B4F4D42724CBF3C746F19EB24C366ECFF2764 7013450A2E91B8720A424645885ED964939F3CE0A2143C75BD10CBFCD403C88A C82AC2E001A1D9188D6E5AFC3B453C8D75449EF851369F623D27AEF1B9F99DE3 F4D5A7D5DBCCD56BC624EAFA91DD9D19DFDE1BBE7177EE3EBD2DA15BD4B85A15 323DD9F3A0A9A4F0D3C73DF6C047DAF644B78182EE00D51EF5C5E7353462FC18 BD446D12E8A9C4B1446237A13954AE6B3F23682D946195346788607456B76CBC F7CF13BBBE6DB05979F2CEB290AE99547583E130D9D433531E4E11CD6D4B48E1 5CE1DBCCB9DF190D47A7F5AB4BA9BDA78A458F6CD2ABB22807137BED8C664DAB EE879ED9E24837D0E1B596A3EE362A37260380D1FFDF96608A99BC8E027B954C 356CA63301B1B981B96176447FB937838D2E0984F0ED55F8D387A6E45C066096 8D23EDB418F3985FA3287942F3841CBC00B3569EECE5606FA8FD2019DCE745EB BACD73BDF3FEBA9618C5D170C1F58D54F7D30F1DD7A71D33475465528400CAA1 D1A7E050C66B40D65C45FA0524ED512DACDDE3D8EAD854B1B4B1D3666A040295 06401A2FBF82EB232FD18515F020266EE95130B14DA34FC6DE2510D550BEAA8D 230F1BB9EE86B4FFDE21975D3E1CCC57871B8A8110E9676AF8D44DB91FD39DCC ED4301D378CB6417F466BEE605D2D7D66B81F682F7468C330639D5B91C7E4D6D 1E81E08BF0ED92A44C26C28FF9939F5373D86E6E1BE8AA433CC9EEDB94F537CB B26A60EA0F873CB7B5B38AEF3D6BEA66C817E67F4B652EA6DC493FE69820C9FA 75D3E60E6D5CF8FFCAD85BB2B3E7BAEBE2877452AE47030CAE5AC65F84E8A0A2 60D7C0D7CB80FBA3B5464D614DCB04BCB817C32449E60674C3A54CF8F9AFD024 90ED455A8EA2DD2E4DD35EC7C01D1D8857172361FF3F3A46C9409CFCAEC1C8D0 DE6FD246D2320141C4961FC5D64BFFF4ABC7CF97F27A0D3089A81EDACAC9DBC1 F4A8157A36575DE859E9C3274F8658BEF887AF9EF795F4C6039E31873AD9DC32 30F9E338269627FA1E3D9F6662D9056579EDE95EBA9B27A571E162D32D48F2EE B8B1F99858A93DDD4928A789A4DF4268BCE1F8017D854E70842214D7C7B740EF B787D665D06B499B2F0A777D032C1A8AEDAF03CEB581C1328666F750D141B766 96CACCFB331FCBB722E71A0EA37F7689F65356AFE3879AC7510C7BF0EA632F0E 0F71D006D921A82FEF822F0A0E07D01B8529151DA289EC0AB6444AF7CBFC84EB 71C096785B53885AA8EBE2052E0525FD2420E674A952361E6BA940A8821C8ACE 51D8AEB18783FC749372CA85A705994C427CF036BFEF2C99A00311227FF673FB 99AAAFF2F74BDFDAEE267CC842C7E89D2933D8724322B45AD1774F5CB555A936 7C6D16A5BFD2BE9E3D664109D50C3F580279875AF8315E751686139F85A2A633 5486BB09ACF82BE451C36A83D9C8ECEFD7BC51AC408EC56DF7A559F014362306 1E748132F57B51A0FC83B5635A36698CDC572D0E84CC557BB23F9DB5E5C2F30B 7C4ADC4776094F459656EB4323EED194913FB6EACE18AD42CB0884C73A4E4C20 C25DF3019500D1B024297F020498F24F70FB8C71866014D4D8B24ADD4FC71A2E 55EA665EEB5ABCBE50B9B2C9FA6D873BA9F94181415CBF458E2D57222D2C6CED 2A2EA53D1F0F247B8232B6197FBF9863F5A56A452959991E732E7AEEBE1545D4 43FC466876DDDBC727B5B750F4FDD00123CCF7ED3772A3DF81F5B32D540D8773 0C4397C2CC91702A921F65EEEB09D07BF1EA78F3FE1832558E81E6126C5D8C0F 830DA4B720D19CABCD3A971FB99E574E6AA9F48D08113695439EEDB768814581 DC37D8F614C11699C2C2A6CDBA47876BC457ADDD42E5842FEEC4CE55EDE65D69 B15219D98EDC59CDC9A748D90A96330AD58F2E497C354A055B7F9E768F76B9C4 A8AC5D17CC6ED2AF7430C862368310DA8800CB48D139EDB94712FE10718869E0 4B354FCEA663D10351CA64FD61B48897BE79A4430FA62EDCEFDF5680341A28F9 E967CEAA070E92AF65F20D782B7014ED6EC9FF4E0CF79B736A45051AE2B4F9C4 72901A1CFEAF6DDFF0DA526D0690D153510AB6B264F60B18B3452F0ECDE81303 39BF1099FECD24F134BFB9A3CFBFE18E2A28CCFA3CED0BA7343195D79CA0AAD0 DF429779F5646BC5A2FB31E62E6B54FA518CD36CF07B9AC0A14AB4348ED8CE63 822B2A4CB9670F20160A6B2DEDA9610BDCB65EB8B7B8F788566C9F5396A2A27A C24A1971C20D2B61384AB4754A0B6923638FCE77494189020A00D4E0C4B74D1C 411C7E67A953A18562D3FBD8945B92350F3514CF49E654F66426DF47ED97952B 31C99DF9FB9CD002D508E7B67B0E08932D7C0B6F156A19CBDEC4301AFB842EB2 A7D2AAA4D1C950CA002EF46FF4C562B18C641ECB0A3B2BEEE18F71B802E61D9B 14442F7C8DACA0356F47A8E506CBFFCE8D73BBC299922AF3F61DB7023D5E46E5 A3979A744CB2FE7E62A82011F81F1A20AB9E3E40043352F90F452C8776923A7D D7C17681515E5D5FF5367C53E76A0FC10FD90A3CCBBFCFC77C7182F8BE09D24D DFD4074D16FBF72C7CDDA001AEA0E0E85493D4A42CEE06E7965550254EAE0320 4F889C3A258D4B6D95B767975862983FA380009608F3CEF60FFF7DDD70261857 4CD79986B45A5F410381B82E73CE336034DF790EB65105F26267C602733A40A3 633DC83DB60DE8233D04B020D72BB8328789B88C0660F7B05D9D50D12EE44FE6 1F0867C229671BEB4630628BEB8E92834FDDA2996FDBADAC796CFE4E50BFF3F2 DA788C181668ACE87578F820AB676A87B39B1C02C02C6B490C9130AA1C73D66E 8C8ACE03566C993BEA9480EB02CC7E6BA190F26044D7439C168840177BC4413C D07BBE4B2B1EEB29CCD5E2ECE2061494B066D72CBBC61200F915454A832D33BF 79A90E300BB6B6F87905DA6CF02B57B71AD4B1C074EF12980582E4E4C0B71778 0C8700BAC33CB2A5B3CF672333F1A21F8C5854F93DD69BEAC95C0FC70580C00D B3998302AAD2D2C31C294B90EF9DE2738B365ED41E32C7D2C6A074A40B731DB4 4CB4197A35C780A1D264324DFAADE5C8429D79CE294C2EF299B97C27C942986C AFAFD1E620F4BE1BDC2EF1FA6335CDFA0E82B56C9CE9ADA0F3C530E037D1FABB 04B51A2357064A32E43B7FFDC1746E29BEC477B4BCBAC812B2EA2DCCCAD6C668 C52FCC64CE4028DB2728CEA1B9FA9956948ADFD03C635FC113512195FAEA380C 0F1F399022C99DD3E39951B9DEED5A9614E1FA04FF05CA14A9F46E95DB4FEAF9 531A63973FAF46C3468E03E598441A608C5DC55822EBAF0CEEF9C4924FC71BB0 6E309B1B2DBFA4C49A621E5DE8E410E62B 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFBX1200 %!FontType1-1.0: SFBX1200 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecbx1200, tcbx1200, labx1200, lbbx1200, lcbx1200, rxbx1200. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Bold Extended) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Bold) def end readonly def /FontName /SFBX1200 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-223 -316 1694 925}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E4875AA0E2F461BA16EADB32842B6D00C76F8A3359BAB9 9CCDA63EAB4501FF88DF4CE0D9DC9F071B528726352196D1D889EDDDF3B8AD19 A05A98215C1A2AF1E98BA6D25E3EE92459564B169EE8915C4C3A77E21AD623DE 4B78A134EC9973C88752BA636665292269AE953747C9605B9769A15E719E8036 4E368E46C8FCE60112D1F5FABB556AD834401D6250529F3A1BBAA7679464B857 F4746C58E043D98AAFFB21E0368B3110A911F98D0C1B16A668D8B3CE65260AA7 E9A3FA32A95349AF8AADB1AE65C05D8C83A10ABB656256C77C42E4E4E7DE2DCD F47BD54EABD080A844C8E3D14CC76E40490EAA3E94371067AE92388A8875BCDE 93EFD646F6FEAE17E4C52BEE62060D2107B620D9A948B3B3D8D3E06E63A714AE B5932E76384D2E2B15A5A7827EA3A3C15EE807555607FFAA1AE58C5A95B6956F A16D46AE1028B81C056BAEE21114AE2C87B3419663837BB87F79416D58E30833 1FF10EF0D5B2112E088F63D9E747D792CFF5B74F2F95DBF5C54245C517F937BA 90AFD6EAEBBEB6707C6C751315331053A0BEE3678476A7BCDA1F939D98923679 067F136F7824411A8D5148998105E3E823D55A18FAA99F4AC12EF14C4BCA4736 E465782FE9E81CE4F3BE271CE14CAC803470BF4D71CAA1DCB8F66E98C454EC3E 87EA1A0591FE3E17ABB7966756814704B71BECE2BFAC375ADF5FA01E47A50599 153D7ECA922399BCCBA829F968AEA1FED8736770EEF2A57C4DBEA8B6AAA7D199 C5ED748B1E66537C09C6E74557C374075B6AC5FAB13DCE13ABD5A5329568C41E 6212F9DFA1923FA3C5F286F172BB33A5A288E1BEC5AD2B494AC912B6E1810583 74DA24E163B47A7A3BFF48BE11C88F59AA46C65BD88B93A5AE30FA18D8F6A5A0 FD2C18FEAF1789725CFECED7CF1C303C79DCCFB7464618FF70369AEA783AE82B 07CD64F4C202A4A34D50173C7943F254E06ACBEB75E343C61835C075ABBB15A3 322AB1C6EA139168F5ED5537ECBF73F4A2B27B0E3D466810564606FE190EFE3C 35EF5D79776E1B6C45332FECC83C597F809C50C18809CE52159577EAC0196247 6F26910172967E3C046C1F5388F1CA3BFAF0A16121292F47CFDA5A247541C827 4A69364F0642B613B761C5E02DF232C2F7C5D27D550C7ED55E9C83BA44F492E7 77B1B2D3DA51302B6E63F1AFC54EDE0549603C0727A6A2D5CBFB3ABF8FB04C9D EE818B18C985F7CF4640B2C785545D50E2E1BB5DE4ED35EF0FC69C09FA3DBD3E 34E2DB9A16BC518A830AC48CE592C87CED6667D2D409BF5B9F0AC6085CD88AA8 542E9A95EBE2914CD7598D47E8EEC552365442CFEA7D0CCF72AD751DDC5C8FFE 3774342D7889B8353D94C752CC52FEFC1238F36B24B6BB7B5DA1A5FFD49F86D7 386E2068818A09815B4534271525E3678CC52F9267B4747A09594A6454C24400 333D7AF33C888C42A3EE8768B697E6F8521F35DD3F42B831C09273E87C2DC5E6 BA25574158AF4108C813BA6BFD1CAA87D93E2DE09720A6606E89BAEDCD9E573A 2B023352069F4CA328457F8DDE1B9A4E296F17D9EB27D18B97E50E04A5B9DB36 4BC3C8794BD9AC20C1F9CBE45876DDBC0DDDECA8A5213DA2B20F4C03FBBBE1C4 B0B00C0CD028FB402463F7D6050CE676F06EE0CD9715C17B0C93BF55328375A4 258726D24033BBB99B06AD03B1CB79DC3DE6C212FBDB21B3D8C0D40401820FC5 A914353F9B574CA2CEBA115413B1E55C7C05D2FCB11902D12D4F9C352C158ED4 87E2021E75F777EED00509528AB80CB9741B98CC31553A5965DAB246145D684D F5CB469E7590E8F457F69F39F9492D497B78B7EED0FBD07AF69FF89DE6816D09 DB9FF97666EBDCCDC34300C6A85732A62B2EF5319D0983FF582D21C9BA5F3569 5E2DCA80F98F0635F065319B8C67E7C69BE659A82664178510F3B7F295D1EADD AE00977401B162DF61D8B578FB41038FC1F8663F7AD70050E53E94BA3D5A8C4F E889B13FB2B9F573504CE5E68A6B433FE0BDA33FCCCADB90FB8867810AAF4715 E339375D60A52B35BF360B756FAB3094EDC855B8A6E7ED963F35C9AD1CDD5B5C 57E4EDEBCE7831E2738E444B9F0D0716928756FC9BE401428B1B79DCA8BE152A DDB3A778888CE3EF1EB196BA3B116E3BD08C10F4DC9824AA996680AC3324AD27 BB940F9EC37C399F54896A4F2FBF1E967456AF84581B22B6BA92129B71295D0F 02753A2401D05669BE839B7728FFDF0D51B2F874A2E692CF209BD8B60144E7F1 BCF951C4868A41FF31E0205B591711112E7A4517FE0E66A5DD545A2B7E5637AA BA9A041846007ACB051E320AE3C1D8CABC65EC82F51FC1F750D62AA041C1F724 2082F65438EDB14FFE0A8FD56B98581FE0F47E8AEA89BE6E5D046D230FE0F68E FB25FBFCA9839C8D5D677701882F91D1E51BCDE1D62E5CDBBB7205AA2A41A3CE 4A3F375E7C5381FC48ABCCFD1219341750DBAA4E7CF6C9B2587127654A325616 A4EF021B951E5D2B97C7C741D1D24B4CDC6D666CD1F23554FCCFE888875F4E3B 9A8F984CA1410C27BA5DCA8E6B86BB4ABEB9644731BBCB0423A3666BE5F5029D C6FC0878C367E3926710447319F971FE1312FDBD0E69CF124A199DC1E40ABD96 A801761FD57FB10553327B08DEC34AC1A2F3FDF20CF64E7B25E759651995BE07 0A1FBF490CC2E0006362003FFC561F3F3C91C1AC68C4AA614FF276B14DAAB44F D3C9AA412D19E7FACBF5FA6F6EE86919E2F5527D6470B488D0E10971B966F30B CCE77DEABEE0980886ADFECDBFE5B1D606E8E43DDE1E6173B4744E15182125D8 B1F39474686F16F1FC347103FE5AD10585DB99D9BD20996BB38321DF2E1D3CEE 260535835CA5688BE1F2F92341A948A8F8DD351882D1A0273105F11543F8133C 32AA1444A5BCB2B710487F931A5DCC2D0757B047D810781B184DFA3F457C7E26 89DF33968A02E181AC9679B557795DF834956C7787A79BF61AA44228318AB1A0 3EEF383781211901B3610E93FB7771756E08D144D08A0BF8D4AE2F8B97FF186A 9440C75A4BA68D6636BE8B11BEDE3D3D4009CDF5B02FB5B7F309F65E975C66F7 10613A860B1BF0E517CE32D19CB928BB457D5BFDA26056D27A96A36D90C6FC51 7EA536BC895C2AB4670BBFDE5A850CB4A138CD5AED48121E43CF288B47CF93BD 0040BBCEB10CF05203F491CDC9B18BCB322491729B34256F265A2B5115534C71 42050781178780D636D215F7E490E510CF860E45C6C33D9184ECD1CB25682D2B C5865B762597372D77AE11D759906021FE90412F75F269B6B1980E99FD904707 A0AA0A5480D5469F07521A66064356B32593C2A9DD645198858503F7B6522F28 73F8514286904F52B21BE73A179629D97352B591DE93CAFECCE5D65E15BD6F72 99699C4F379F634CC44BC1693ED3D485899E599AE1711EAC252F6869C2241149 91DB61CD6B9851361DC744F665321F1BE2C47654CAB7DF439D9E1A25E6FE1530 79E5D9F26E12F8B387AD8459786211462B52ED03FCC0B2FA49ACC99C08776E1C 31C99B7D625A01C65C9A3FF0196E9F176B9FEC013516E4AD91799B6A9385829C D085830E7542FA021776CFB75A80A16EF9689F4A9DD1F2C09E3A49797EC537E2 6EB0750C65041A5D2E349CB4264523AABF9FA1997EF34BAC1B0C138B253B0548 60006E9795C2426725941A5060342CD11BD4BEB5DC79DFD554E4686CA77F4756 7A9AA1CD0E58E90A7F92FD1D0799655022E2D14BDE28BD46D02F878A9A25C53F B2C73E29A912F43FE4E810586CDFEF3BA63BEC6582059C00DDD0E3966C8CDA3F D999D4E170B78093F6586B74CF297873C16191B5966BA0D5ABC4AA3A75632221 6825EAC502424F7EAB83B052F9E6DEC2012FDE39B56600839DB5076494A2BE18 60BE053D6302C8E8A25320223FD2DBD94E1620DE8430115FEE34C3A4EF007A05 470F36724F382CD938C8D3F127A14CE01541C5971E763528ADD3CA5E7FC82E20 F388D31825D18ABE504041666F09C8F83ABE33C48FEE2179DF6FB59C264E9CDF B2CC8D0A22351192E2B3A5E4218B0B89C65A9884FD79C3A4D0E7F45181695BB1 0DC043CC9F2F2871B3604ABEA3970BCBFC6A61A485CFA7BBBA8EFD1F8CF34144 B09F4BD9445BC44A443B66E2FC9C94D5828B9A2A19558DFFE37D8BAB60F40819 48E7FACB550AD749F57D764D869DF6EDFA24BA3F8E2B3489A004493F9F98CB9F B33C6E30C092741BA7F80BA97A9ED4B5921A5C4B2B0B8786052C5E882698376F 9F3762D6CE21EE6AA1A98C24392639AA8A5DB795504962F8E02A818F8F3A59EB 95637073FC26EF3349C67E25F2C9C47C9A7AD7357352EFCF56AAB007CD23C7FE 19F990437978DE17270715E6DAC8C7C7F716723D5092244E49336B0C7009C393 3DA6FBCDA4766E5922B0A0A5A63DFEBB88CCFC9E4E593E15CA50E062CB329E8B 023894B9EADA0A2BBB48A07BFFD97BFEFA0FBA554312C97BAA4B8FAEB024C42F FBAE30E8C0AD4E0C511CD1C9B88442FBDD83503D108C1B4C8803BCAE80EC5943 4C7F4C0B854F7DD165A6973175447BB30B2436F6232750BBFB4DBCDDEA4F18F5 BDEB1FA522F3617561FEC7CE209C3C3CA3B078ADB2F5168DB2F652969D519DD9 36B2C6047782B4548BCFE807A1F7DAEF175975472DFFC1B4F9F9189239C70E41 2F3EF72A59F1FF0441EF2F23E27C7F9541C30C84430CA1BF74A91445818F52F1 B6F7C61A19AF5F46FE2E11BFFA2ECF96608F1C83B9A24918730C0FC374255348 582B5981B64619BED151131E1FA003F01AE35059F68C25740F232E444BFE08C9 D3183373BBF182734505818CD484D14BFED98B5D61AC7608BB90246A76F3B72F 5895A6BBEEACFB97F60008C8EEC8B1FBBFCE771549B7C87687012BC32C93A581 900487A2273B16543C8150617EAD85A52811063A18DE1DDA1EDB2DEE1D224BB5 AC76835D94E3FE7A9C1A4F6BA103142F7EBCEF2B5445B1A539F37340A0376DC9 95592D007CB15ED7A62D97164D16D8E04E5B27C1A70C3320926A16735D639194 E3FDF857E2206DFCDE0AE9FB86847A3405A668FF968B539014942319CEB69F2A C85B506D7677E95D4842B17E1E882BF1B8CB4A086A650AE3C637AB0F48DCD542 D8F76531BC9E93052D692A88622F59290D16CD52F115E3FA20328EA719BDC4C6 1AE70D7834545294455AE610339A30E9D1DFFE3198CB4DE8AC3CC9FCB3772DFF 8130652558034293B2FC8B9FADB88E84025FA6921A10A84CA2D3298FC4FA89C7 6833DEC9FF1B9449A45F359F845163951883E3B184D344DDB28A38936BAF3536 7849ED049CDF2EBAD16656223A55C9E24F36B6A2B5D3DBA6D10E70EC7D957DD1 1789AE917E61CDB10F40D5D0A964E3CA746F7B19FFA3EF4A1695FDF55750F35C 875DA81AF659291A239C1E01C1C54F7FE078095C319BFB87E2E004C5C20438D8 97A538D89D82DC95A1D511491939A9F47B5F2D18469D4ECEE23E1680B0037F6F D2AA662E20F4C6AFC1072A1A22806BABA793640971F5CDCC254962C6CBB4895B 2AEB007F73A55F7A99286DD127CEA81A0F8CE2EE275A371776FB79877E9A77A1 671D3E3D9D4FDBC9B58CA131CC354517C3D95CE763FAE0900E12C339FCEBDCBE 9300AA282A2EF6C9CD8EC53EE4A426E2818E9B48A02155ABB970889798B92A37 0CB1DBC3E3A4707631D6A47FD43AF28CC1198A84ECECE0905588ED740BB8937D 8773AD94B834074F4EF2996A399A791B766165201CF8E3386863CB3DCEE81AD1 E41967416E1FE8C348E1AB687ECA58A3DFC699F91A8FB37E1281E36D11B5F8C9 F89BA1AACD47D5706D9F0A6A523122C4E5140FBE6F534C893D523EB780560E64 C819A7DCB61420610DBA35BE10A71D241736D55A53F94F734BBCBE96D74CD18B 50D025D8595656ACDAFA94C60B1DC71E5446AD563DFD4CD5C128AF2DC718E266 91A8CB3CD9C85C793F28CC845E0B9CBB39B0166328315266C0F5724566F3E762 FFDD4792F38344E4DAD253F6FDD85DA7B7AC84DB9707F72A41B88EA4E678EB46 8ADAF74767FB03181AD38B4DDCF3080E2DE58623B2B826EB1603F269EF8CE221 5249880BF61BA0CF4EC2850125FF3B85286A86539211F1088FAA1349A347F1B1 37375C37C6298315127BCD5387FA69F268C69F282C0403FA6A564C2D86BCB101 F09BCA1BD769969D54CCAE2C44A96F647073AF9B3960F98A4F749DB087DB932B 0FBF2E21EB9666CA339E375F308538A8451EF489EED7D3FEAD0F1364600994EE F60A8505E00CD209F6F365763EC4B50C579A65795A2C560781C92EE14B5FE749 AE64A6666D6F8514A8F42F8253421DEDEEBADD280027034258E151FD6D9A2D6E 64C3ED9BAA1996F7A50176A706D60CA1EB8A4235A8ED0C5C2E15E84E5794B28C 88DD46AD9C4399A3B1F14B1C82179F5137F6825D34473107205BAA3E15F3150F E4C2AE4B9E985D02557B2EBFE0DB80E7351CA240C9AB7C5AB0F7D0F251748A26 9FB9BAC734FF40956EA6F70CFBAF96C839AC458F135173B7A8A8D0130F27F494 FA4EF1F3ED532F10127F20FF3C150EF82E3FE619FB7EE65395F82D7D8F147693 10D38B8C0B82852C0E40A45E806BBA327AE1F46F91CDAB63282BC437C6589784 EB3FFD52113A07B4F1DD4E042B673F4006F37E3698DD216819E3C86A6D4BC77A A9CAEFD6021E95672E290117C783D9E81FBA6978D5CF2A318BE5650B4C76C3A8 CD4E50982A8B488C1C6641CAD95A2B7A44BFA54A0C2058CB0A24ECCCF40FCB0D 3A837FA49C68D2F5E0021FBA407D765AEE96012AA0D3284EC0F13149CB8969F5 E84699D184A27FE98AF8910F5573E4E5D40D9B1A32366E272328ACF70A793778 D647070FC79D85C59B170DEECA10CF4C06C6553AAD6E4BC6079179BE910C9462 45DEB1F10DD24AB488D5BAC3188A8B640E6C52B9EC4D1154426F706B17465B75 290307AE73E6ECE778CE28FBCEC2BB6A9CEA78DC92873DCC986EE325F9F09354 6B3770F16E220FD46131B9284B3E6020B4AEF2400A7411F1D9BF7699B1927E1E BE6A3276478B73F19426BC53D97B40BDB9C863156EC1637E7DF13EA687834689 DC47C98C32E48D570FE2E12260364701ED8234B9E1E5A858242AC7138493DB18 023E18ED0ACF86F801F15B35887A2340E21AE7CCC647E7888556A5C31F69E935 55250A4579736AA817CE3DAB393984BFEE7C64ED558D16D2EF84B7221BF97149 8AC6B29DFE3FE833E726B8EC951A51E13DDC00DC459B697FC541D2FD68C16252 824E10F5F3AB39EF8DAB748BFED0734B8337921F147E34C38DFBD4B9F642C69A 5017F1099B7DEC38F4B7AE444ACDFCC96EB0815A8D68969D018429B31CD5ECBC 2189FEA08056D280F09997BA048516FFCD6CACB3D5A1D59F87076955C6A62D14 293F12C99646DB524CE83A0DD71A650D4F57C71D65F0AC4EBF2F99A472956A03 156F8809020EF67782E520354999BE9326FC6D40B26F1F09A31CC2BB74C92AC1 A0BDE44FA94B4134A70F4B3482E8CF028D9F976E90C6A369B773AB2E1F62D1F9 A090432991BFAC975D0AAADC2FA9ECE0C669C03867B0BE4F643EE587CAC33FC9 B0AC672EB0F1DBD30806980497115BF7D1094C5617868C8276CB6C4BF970EF1A 8A50279607C8C6343845987F024EBE1308A01D054321E6F59FB84F4C5AC640F5 59306794B7BE0A5F20B3026ADD240904A49D06B04E7B77F70EC44C8500DE770D 89174DE274188FB0A04FD51F52FD2F6DA950B68EF6AF1DD0DC39B8E388870C13 7226EB16D3762E4F749A571A3431FCA257D265EE6165FD59E8F50CB46041A5C7 8E7D717FE4664A10C6B426EF147ADC12299F208AC7B3FA572F23D804C49181CA 97A3C61909D66BDD52A6D7761EFF3FF40158EFF60B069857DEA5B309DC42832C 04D728E3ADEAB4B87DAA57D9E0C64AB48219EE6F3205BB96D6E7F5A88F2C3F14 B42E6CE76A2EE5AF02348C047F0832E0E10A43011DB397608FAF943F41B7B6C7 F29214E8FCF17AA8D2372CDC3559DA8FD0DF67A10B68E3D164820FF3278CE9EC 0FA1EB238A2554A770A031CBC2A756A01A7EF594C4322E4F5988D301566FF9F4 DCB0A306D4D73780FA7CFBE5635FDD92A066A79064D0B13EEC603C4DEA250566 1FBD1274FF7D5C7E8DD9DB763C77C8D291C80031EE6CCB9DEF18F9A1736B5B39 3E959B19968EF90F27A2F9AD203EF67189A0100AF38CE7D1730771332BF01172 35702C31FC2D25B6CFBEE80B1EB0FAC272C538FAD877C8818CEC5F7D18EA999E D082221BF44D9AB6942B81BDBA976FCE8988B5CAF8F8273DA66A62220D500914 B57387B802E9818A579D618FFFCFC4E6EFA07A888D05FF75CB1A6916EAD6F4BB 34D2423CC7DB3A925532DD128396B3663FFD8E249635D4311224E97ADC44D1F5 5AEBFB76777454D427744B591283858C1BC2B0915758B7D2A196500DCA2753FE E8B3A81982815A5CB16A053495F7330ACE19F67E9196072E4EE2E5F3F0D68E3C 8BD8CCFDD23B312FA1B580CB3BC380F9522BBC48F16E339F0417C55B71C4B9F6 D1DEDE09BC4911B6AA97485D153FF97E5F7726F9AC277C71E5E111FA7659434F B3497AA4F009B8CB7A33CCBC4381D383D3F1C35E44AD50898CB0B2DD07B39B43 8578EB7722F2C9B8D8C6DE818C9CC47F6262D1D733A0276159502CF644E1EEDE E1059C325D81EA9A3F878B38AE2B5BD9DF4382D96DD6D6E4EB7F20BB244A4DCD C1F5290CE15A92875916C206FC306E671A457155A724D00985487BFAB9991F19 BFB00AD08AE91B3DA1E5BB9C082039FFE2F6287C153C87C51FB0B26755DE5115 610081CA4A3DC88377E3C47AC8734181777CAB9BF9C20DE216B33374589C0743 FE3205BFB6711F1026A613D0D2F8A31FCC96EB9349B949E873F08E0F2FA31956 EF2C5A52204C7CB63BC616BA3D40463B74064D2F2DCD1DEDCD3C5C8AA1381F0D 4BCF321B86D262AC80738AB6CDEA6226D0B3E729DCE5D211CB05EB43C89247FA 157F6FF900476C35618D1948E7B794F04A9A9B7857982E986E495B8C7B0DCA15 EC6F5268A03204A5D5FB610982FE7E46031E9683C215186A928EF12BAA22B495 165E2F4630E3BE8B2565A93B25C6893DD2538395C0E2E2EAB9CE383B7C599FDC F54C6B5DD4F26BE7E5D75EB726F41C97815A9ACED8A507B684F50DC8A2CBBEBD CC9EE9ECA84C8FFFCC88DB3CA3215E9589501258C31C5159E068C96E35F4BA28 952EFD702AE621EB7B3A41FEA633AE6C255C3F5C26F97753FDDB6CF5D7D9CDD4 EC5A431B95B15D0A11538274C0D8C990211592D6ECB798361C556183403D5449 3E29CDBE7BEAA938B9B1158E5DFC8CA968EA5D22124C491DD1959395C58AB32F 79BD9CAAA657A12DBFBA1A1503E5D98B79C41ABBB97B96B71C4A255DB698DB9E 6748C0246D33F464F05E48EC9C5EAD915176F4017406B3A3AE255057A4BD485F B1F927146B8003D2EEF475A4AB7F4A0D79321BB9495D20AF3D45202A647E7E60 D516A55E18FA5386EF83D0746AE9E814C7E9B4F9990F1EBF3E266C7E71C5F200 C4EA3D625D735132BC55089A05E250F979C3A4D0E7F45181695BB10DC043CE7C 27D2039547E193AFCD45AD360A543C79C8584D7296CD19EBEC0DD982D4594813 366BD4DE622AAE00CFE404BC6687B7E22B383568C40073AEEA66480E48BA463D C071419FCEE9921F2A8A6A64281CC10EC4FE555D453467BB4A8BD75F399C62B2 CD942E7070260866EC91C4B9326C993E4FD1504C60DFC13AD54B6CA0F5DDDDE0 7EB16D78473323BBE6FC1AA09EA7D3C5E553AB897E1D4B399276B6D8FE2218E2 7EA406D7B574C8411487C2E6933E1B3484956CB80E38FE4E0DC2EE4188BB0C9B 27AD6233483D99432A7BDF64D8EE7CC9CB019253FFE877D59F653E23B38B5C79 5B17B16CDD307A3D27492EFE2421C2517545ED5CF75EC6106C4A149C4C3AE927 F9B762704A11A21827026F5376EE320D1DC064A3C4B04662E7ECD18878E2E442 BC9461950F9DE73C67B049BFAEA15468100D83513DB6A923CEEE5233417559E1 32DD38152AD630F185A3A8560E0A3B15C570AD37D974AC8B12D71190A0A32E85 4275497E30AC3F2D05C451564B82DC3F1062E543EF66B98F9F45C2ED769B7836 8C078579FF2AA1B7C85B6AED675963C7D765356072389F7BBC26102990E065D8 BDE6B26B32AF11B5A2734B53BAE6049021BB09FD2CC88C3537CEB2B12338ADB3 18FEC4A480E0DA825FF25FEDEF8FC4C3E122716ACA153D9EC6B5E7C71C69E821 015301C608646847DBC26827F2DF099CCD799C26650A5D416859314C2DAFFB4E 1FDE5B9CF8BDEC88A1571690BF85FAC59AA1FA8FE95129C32483AAA62365246D D5FC829DFDDA7452FF6111E9A70E604689DA20770C1058302FDCDA9E151D2794 A314A6F3FE8692668AD3937F62F88C61D311CC1CADE80C8F4D33931BD1EBCC99 455232455B37E8C827064F2A28601D0A430E3DF13755DC3FE9ADB10E43CF9681 B3BE14A40445359AE31AE795C6BD00CA3DA85D543970D8FEC4EF92A4B81B8609 B0604B27C67293E78A4B3D1807CAF0EC079ED6349CCB9C2B710498752E1B12BF BFA8DBC7EA37F495833AE0B8065555C1CA858A047BB2ACDA27D3E0C38C892660 23041440BC6E4073CACD4F098D7141897233957229A5327DDAF0EC7A019705E0 5B87F072BEAB110308CA2600DC5FFA768623C003B3A0314797BF55C77F4A5C06 6BB857D8D9B680412B9305F1F7016981B1883CF770E95E8AF620C12F157AF42F DB1E32A14E215382C6DC9861D58B77BDDF3319C72AF1DF8B33A3DF2DD7922A80 782F711119B49C0C5C0C9D4BFE52845A80DD9963026EE5669AD8B71D28D07DBA 048E65ACEFD3BFEC468CDED769E53AD1B5645F4D2BA693379DE10B9145B62513 CF9E1059BA3B89BA549730FBEB28F4346B25047497982E11C4FAAB972E9ADB64 6C5C08BB9C8438B785C904F2C74C81CACCD455A6604FB505DD5DCEB30F3E9F9F B5BB83FBD4E7B60DC1EC198579CE16F04C717548AA6F3D9B178EDCECF9E5FF11 960143C1C3922AB95ADD734EB957DA2367D7E9AACA5547EBA2564942BB5CADF4 088CA01E373BFBBCC096D61BD7D1AC9E270A8F189F894A6E1140FBC3800C3ABC 0EC9AE3BD558D7026DB6D1E2CF5F084CE637915A6111FB743ED36DC32D2E5A6D E68CBFC7118211D5BD540EB1C86A5C17CCAC5382C5B61578D0463EC34E04962C 501FD7F8C37690A876DE9B192B57FD692652886BADBB4757A9387ADD82BC1A50 C0959E57AA85F558E62F648E01E14A7AE8A1FE39542C9CE6A369C7C664CFBEFB 5381872F693579FAA86858CE1B906F678C78056BFCDAB3C43651EABABBC30576 4A9B4643587E8F5ED4F4B32AF2DAF2F622870F01048F55CC3673EEF227B94BF9 416964EDFA827389D260CF058844C6F14D2A2A58188F64D1958D36E1701A671F 71802D66FA7EAD71625AFA29921B1072753E04311775DE97A802E45496D7CC3F B9034C42FFACE6F501B9158CBABDB644A5D4A7C53C15C4145C4F68D392DF1D68 41D7E8A520CCBDCC387BE1304D3B4D3A16CB25BB9EF1768967EF8295F44F79BF B78621C0CE5D83EA886A3E3EA999EFD5190040C5B1EB19B01D57A872F7A7DB39 CF7A961FC50A1AEA084FD0A038A9E7FDDB0FEE9EDBE9205C3B59D764011D8F56 206C3D8F0A4692C2085317A27601EAE18278C893D1678E3FE39354100653D292 C2256EDE4576CBBD0119514D98A465561B0389B64B2C49D680F8AC65FE25D9C8 3A343502BB456D6BB91CC8E31084024D0BEAAED5C9848C14AA70B8FA76773BA3 C375800C08DB38FD4FB56FE607B8ECA12177C12D36CD313DD27D79AA1B89FA40 0DB65786B5D27B03A5AB134C3F01FA095BAD166CB63ED95449CF2CD2F277D1A7 6BDD781F814885DE998F9AEBE37DE5068418F41A007E61CA04B79C0B254C9577 CC78EAF50FBA1228E035A43AE8CE08EF151FA9F299C80FDAF32A5B59448FB8C0 8189B1A0EC57664218198C2F0C7166F11062985E2AFBCB6A6B13781319C368D7 58D62626129A81E7ECBAC9BCD49A53C175B7E9136C01E55B3A090E53E8095C68 4470B7E4404F088F2B37B3D6B877E6C3427F516B8A9729BCFF47D5FF7EA0CE2D D4B470B5FCA6AFA4B308B00F079E154441A2FB98F9E616049433F98104E39C91 A67AF230C09354A99608ABBEC8F6ABDCB402C3DBCE2261883E19EAD47F38A85B 06C56087D914642226FE916DEA4ACCADF5182E7DB98B131F138BE2AB5D934247 F2DEB9060372E41DBC547E65A35D257D03CB03226F493E64722AF965ABFC659D D03B43F0240E07CCFA61BB4E4F8E5594FA9C4229B103558181E62815138428ED 9A72908D50607C2CEDE8A8642F55E907D237AEAD345A8E4CAF617AF5A8B7F1F9 27B1669E80C8E9394B769AC53093BB324A2C2C99591FAD263EE6E44E62A550E6 3DEBC52CEDAE2413F873E1B50BC41A730E8795B5A0DC0DE58CE50A71645EEAC3 483531E3DF9E5697AEA90247173EF28A442BD8B84473B4B01A8481D71578651F FE6A23FC8529F418B71E09CD503B0B124CB24761D37AD7EE811CE8CCE75E31A3 79E70A7EDD762D066732FF3C3B14DA7EDD843703C4206C04B7C52F253CA1559C A4C3C32D4B37D081EAC8AC5D9CD10844C88A2E2CA020D92D27A6D375B04987BD F57CB889915B31FAAD0D9482CF180A830D08C4509D1FD950257F5A4FBCDC2180 25986406968BBBB1C2BE8F9981B2C52A76C46BAC1F7A2F40F03384B33BC05A3C 72E07AB7827025E9211523C2F918602DD663569E71F75CA42E74BA4BB06A252F CF5F1AC00349F2B585ADA0247AF4D8A6BA18F7EF8291EB5739AFE2E5AAA52D71 F95737D480EFDE8750F835436638B2A861EC7A0FC3EF07890478691A39CB1107 BBE15E009F86C2F2DBA7F2D34C0000F2F312A7829A58801B88E85661B6483148 6A698EF5C9ED292853DF376176AD76F2D670FBD17C0E2BBB48A088EA987A4FDE 2CF42E2429AD5EB190E832214A3172F61C21E99A838C83266B54A5615C4F6E63 203DC8D40FA5368CD46BCD6B9E508E674166AE5A8DFB65C0BC71CE0CBEDC1AE8 489107ACAC4E54C5265C7FB36F3086EC723944D8D464C94C6EB71D5311987CE1 2AC4C76C9E82956EEAF969526A04C103831C4F0CF756724239EA5AE88B7C73FA F13FF8DBE979B784F5409F48FF02492BDB5552535D9A73D8B63882894CB6E03B 5CE7FFDE739E4E2E3414DF06BAC7BB3E8BB6645971E0380CAAEAAC390FC3E563 8C3C69B24E0ADEB2B5DC3E2023E8130E124F90A7665895AA9D4480C4A2673BE8 A87383770ACBBC32D384134F66AA9EE009B340F669190010DE80F9A0ADCF84A5 DF8A279886190E7979A6250E299E7276DE23F1773AA1CCCE03D0EF6385AF5C27 052879F4B3EE50804EE513B04ECB704187A64812F3396D31EB815D261D2DD0BD D876AFEAC110E9D77FABE0BAF01F29D80ECE764C59C2EFFD97F4CC177309F156 91BFE521DE1DA426945A1E56563410AEEDE786AA380F9EEF9D557D07173E4C2C AA863FB1217806B03A4DB95150E4DBD6F4A61C6840DD45D01D56694108743870 374F8AA60D4800B8B0BCA6DE3EFD9A6EC61B81BE9E0624EB9C96EAEC410E2B35 90FFA2F50E4B860EDF1C82D8B83CCA1D58821241CD4C9902722344D94B67CEA1 26ED773821CFEA3DC9DE6541527A9B52F8ED233FC88242C23254E36869006EDD FF51F5992727686581F274337D31D04CEB52B02DCA88DBF9B5D4D23087FC2960 B45AEF792F7CCB4CBF0AF96000E6FA1F1AD338CC17E17E0CA6F629BE3174F64A 01FB6BEDDF2E6FF27F49564475401FDBDBDEFDBDFB42EEFF2C755CFF783714DD 8BA2559F5FC2111AC51724AEE9BB951F2BC1C91DC0CF5E0508AAB6B593B02409 C3537A1E38519F5EF4AAD6612EB3874AFF6D014ACFF90D3CE1019A204B98827D 978E1D60085B5F200688334556AA3505D2E9AB21C2BCFEA68EEA5A678A5289CD 2F2FD0FE19A31DE382A0CF17E0FD80229DE45031624A248C26519058625F9BE8 1996F7B28280E79CCD804B61DFAA3503BFA50FFFC3D54D966E0D4453A4ED35A5 39DC0B3CD4220EE2D23C091FF858C02023FE6F0D65B0B7F0508B26BD4B075B8A 212CC7282AC4F9551BC395F57F63AE49E45DC671B522307F9467C1CF82077AC9 C414466099CCEA0BE77FA0376DC995592D007CB15ED7A629571463B79159BE99 419C569A573A79CCD72C721B16C8F2CC0EBD60C788119A375D4B645E4C19DFF6 C2AE8698A561F1E0847C93F3BD3473557A68F01C0C99CA2CAC35CEE3733FB522 EC61099BD30C5656748D8DE39ABBDEF9044295CCEABD003E6E4EDD8804F0180E 0680BBA2F58FF6B9BB8844C404A5C4555D34DA1E28C32DBF60C14CA596EFE217 5CEF13A0249D80C01E1D8DFE852B945B10D69C0557A0939B5898ABF14DAFE4CA 472D2804BA7C57AAEE8D789BC7A19BAB5C24EBF6A1017EF1CD624C0B89FE857A 8AD5CECC9D826102DD2E3E7EEE3555E0B60F46E590BEDA3812586D58C8FBAD95 21E6781272F0BBCEB1CAA7D0302362C7F57B854F2A2923CD8199317C280BF79F CE3F6461B27E1D65CF416BF435E7274DFCC80D58B99A15CD449BE9A0DA2CB13C 28BE7CA2569D3D3DC4E0ED320A8324998B80FC8AFBFBDB7BA6E908764C68E294 F0CB38DB2EC294CA4BE214D44CA4285C1A42479754F7AF1CFC91F03AB06F697A 0F99A9869B85B8EA5AF614080C564A874CA163298CEDA8225248B4CDD5F28A35 9572A1CEC2CE2E79403B3EC3157374BEB34CF018BD12A0004BDFF0AC98FB5260 D011B17482C53D58F76AD53A43E30046E870123CFB122924855642A67A99FCCA 94BDE31A8BFF2BB0B8784ACA54C15ED621A612F23E2CB0750288F0C66140E10C 8D9673FE225CF2EB285FDD3B481E31B5B5628254B5FE6E6A0AE7190E88EC8EC3 FA9F4B68CE7A5739E902B4638B8574377B3775D92F981A7E6C83DF51FBC45BE4 3685B0144AFDC37E47EAFB243FFEEEF59E6818E5507A855F9185EF6865FFB642 D1A36361B8B056E3AA2B46D186A8CC3136B1943468C6CC89CBAD30C9D5708D7E 28629474C9BB3966DDCCBD1F5CF0A1BF7795EE5AD68C63CFA8C1DD510CAAB3D9 BF8D0E29997C508774069A906E35B96DDAFD92B868DE43BAE6A0FEB3FF04F3FE FD503C8744E590353519E43498CB49A2A1FA9586501261E93D2B513D0547FD77 5357208D2E21D4251364A3D5D27E83C2F379BCCD28AFB1A9262BB104040B84C1 3AA3B5311F6B34034A1CC0EE165451A95DEE465AE57E35C73FF8FDB977A6A9BB 2D9C19FB99AE421D48CF34402D1316B4DACB92D44DA5D126AB123A22892B5214 6CC322DD3AAE8D185D1283DBD47B132EE384DDB3FF67F4C959FC39DCB0023E98 BCA1954246490A01F5646AA0C89A4DD039AE68F9C29A73D7DCF770B4F59BEFC4 2568276E2F73CFE77C698546F39D04CA9AAC012C06718F3D9F12641FB17512B0 C12D985F4E5F9091D0103D0728863EE627566854C6F8A68F80EA54B605DA2E67 A75DA273DCCD842275C8FBB6003E41629991A283E72839A9806A70E8ED74EE7E 52E63887ADC6F896412C336C6131859F5978BED9BDB5CE6E28DDA3FB22FECB68 94E20B677F108FC78BFBD54BBDD8E09F25D875B565864EF4E9CF895B9BE09A07 D56892AAA0CCE21791291CE6E75258D9AA9A634B5BDC26D492300CC4933DBFC8 7ABEAF2BFDC1947D35BC2FC10E0224BE7F4D9E2B15FEDB0B39FFA5894A2A2BC1 8F4F56CDE3255CA12E1DDF03CD54FF56C7DBDC163F1C9E8D4652476FB818B121 EA39688B5B5DFFD6711A6639780876288C473432926137956FB033A3B05F5F59 59E806B7DDCED2CC26324BACBABFBD07A97144B83E456B1005E1464BA14261E4 30ACA2996277290C864C18AEA81E998950407463C1BEC4185C3ADB1255CB2549 9DD877E230629F4316856A14231A27583759A2249A5426308DE15F970CD6FEFC F89FF5324E0AF56E304C6B88F50EF6E20BACC9307977763AEAF23FA22F506291 B18D21195CDBA6B6BA3CF72C62B408B3EDEBB7657D393621EBB23C5751891305 F196BF168366E87D809BF4DE72838B65F59C6B52980A9FADD47415CCC791B8B7 754DED7769F5DD20DEC172C9E9DF98B901B7DF9912C7815441C0E1BEA5E17788 F8D3C4CD4D1A67BCB8C34D48AA449CC9203C4D2880A9BEA2BD64EE8C5C500534 5653A95F4A423E9E3863EEE4074B42166DC9ECC9D22BB79FFDAC29EB7AAE192E EC859AF540E34A0FA4E165327B62FA56F8751C6E62ADBEC51AEE0A77206E860B 3CA0CB8E62087080ACCEAA3F10C3D703A9C86B7A0BCAA20FCFD437A4B0BA0578 274EC683E6C3DFE282EDDED33740E5C0993654FD6747881F4C37922D76361881 623AB01B289D953CEA54573EBB343EE42C1C051BB280E5D47B5BF129EB6C4EF9 3BBE609F4337E3233D7FBD7D9F4E8C9253B2CFF666AA3886188B95EED1C28F34 89845FF656BE3BA92FD73A47037D60052789FC3B99F69E0358AE2639DEF99CFA 7009791DE7281EE051BB0EF1ED9D902278B5B70A7068E89AC78003378836348B 7E3C7598710A3C2E1B6467C20B545CAC8489C1502F6D956834F4B151BA6C7438 B2B59CD5C0757E2CC2E6644D29B0F81C156D033458E66BB9612B6343DC72827D 99F5CFB964FE8F955A20C12EA450366A280069A052A6E8A23E7EC92301A6BC6E 11EACC400754A034F3994914D767D8C166B958243026FBD8CD07ACE2A8ED1870 02145D154A42CECD18191C5FF134705F5007EECBFA831748CE96942F648EABC0 5B52CAD6BFE5D5CB275C27066E93074DC13256D5E4408BFF46024BC4667DE954 26CA578A54091127DDF7455DFCF3D7B63EF4C450CD7C21D4AC06E00A8334F76D 80C2EB6E9755B119740D90378F179E9D87579B039EC5BDF911148249C29A31C8 8DF29E8728C4B8CB9AF195AD11220DDF76D018AB81E562F958A7AB6D73A6E0F8 C2D20E1BECB069D536CEE29E17F723E06F5E3F01B5329C3AB98C813C3F7B8F00 018CD755B1E7F828B4DCF9AFC458CF956233FAE71A1D4963A94F5332BCD98741 4BEECF87ECB6F19EB1FE0028071AA4FCE67408A5766CF40AEF156CDCB3A74BDD 048C0D2D9F64EA7690934F7250D4B92D56AD3BB9896D6043C337BC5DE66AA31B C51C1DC763257EA8F2A357FABFB0633010DAC0E90941D4C12426EE7D72CACD2D 6DB8C76703D0A64E8A41C316F87A3AB303B4C7642B934E24BA67FD22A64F00B4 087956654E35570A24E3BCB903033470CD8795F7A51A2CE64AD648F02CAFDF41 466D18C0417854D16973A5080C4E0F1D02F5156FEC0CA42F57ACA3D6E177024C E2B57BA107A74CDC4C2E57F8B39489DF163E758076B960E253E9F3519AF76D86 E20E06EFF2AC533AB93DC53F9501223C35F33D1179AF94639A068155287733DA F888BCECEA0B4993AAE579F16C074BB0952DB9046E0D11F0878D4DA6C7AE3608 6C750408CF2BFB2A2334155E042BBA1B05D6D899C9EC55D05285ADB8736CFF17 1A93E97C7E40BA14DAD79428A761322472BF1057494CC444E6490651F46C5601 A8DB0AB87F38DFF8D911E9B69A7ECF9CD46CD271EA0385F1CCE881F98166CDD7 800D832DB29839EAAB318F9C5BFF34A06F5177108E83C415FD428B5FF67A9DFD D95A9C08D9A016AC0D0EA644803767A400519E2E10D326BB6DE5845A10F14DF1 7C40BEAE253CD6F8304153286CEB26E51802768B9A8AF429B2C74C03A43875BF 0F1F6DC89CA5C74CE1E75D3C3A609CE9571CE228C34CF87041079284FDB9BE91 B9000CB3463D558E59D0CC8AFFADC24BB27D1F6D8A05CB56BC57D5DBB784BD6B 1D0C8917625C1FD1ED0633E97681D0F6F05537F8CFF46F33F279213DFDDD10BD DDB9887D24833577E389B733AF0E54A2DD280DB416A4800BE625D9A3D7ED8517 C3C279AE40F3549BCB8BFE5EAE3EFC3717D6BEF054AE1A121A04D3CEAAACEF82 93F951F22DF937C3AE981F5CE1F9F26B6DB2CB25CA12C952F39C4306E628EC95 7535C9D1BF26FAEE85995573C930AF7763DC201415A735395297F0AFC1223604 95549E8F0BE2561CB58E571C7DE0F6D36D34CCBB6AA5233F14F3E38534ECBE8F 73A2FAA0DA63A3564F2986C2973F2356B344AF136F7005B0F6C4B23E9F6163C4 519AB07994F23905A06DCCC2E92864204DB49A9E8FD1AAE56761107495DD4703 B03426C6D6782B3D4F59FDDF24D21FE5784160CDB2991846AE65BB1598683549 9158CF6A38587E6082A750F2126A267A5811A8A65F361FDC00B960158EE9921E A85FDAB24AD09C206E4681FD6FE59C722C7A60EABFAE0453B6C71221496C72F9 24613F9529A41947D2070F6D7B1903FBA9C97964E3F6284FF6EDA9ADF4160B66 DE12ACD47BE4F8876FDD13010C0D0985FDEF6F323EBF8B6C246D500413638214 FEBEB9657C2AAAB9D1ECFD7FC496477F745C7AFA6E8F8C5F392A53623B093A5C 1B50A5F05121362F1E8B0D6C3914FE2A9AC016E4BB5AEEB052C4C824E64D27D8 852EFE4D7AF6517EA3CCFA2E5CB6793B381A7F6AD52FB2DAE9455A681D020948 813C2AE020C0F0A15B0D3800E891FE96DD6F1A776F7DD4A95811ED4938B5F8BB 943CFBAD94A9A61C93DDA7A5A88D30E40E7BD86590ED75E1C75EA18FE0066A20 77E7632FC693150240B99A023C4A3D0B69F8217D544C546F6BEA77AC92E4A965 DD7AB5F6CC82445BBE9E4C4DC758288EBCBD3FF37354CC82AA61B732E945F03E 4390EBC80E10CEC361546D8DEC348B02420B825B3520B04978DC5BFDEA6918F7 1ADFD5D6479DBEB1E6F66C9504BB50BE930F1AD3A91657258B54EA2011E874FF 2A5EE661910A6CF882E9CF9CEF6E600CD285971BCC4650121420FC765D65EDBA DAC1CE17249B1C73E2BC4CCB1B609289A43636364B0D785B04FA314CEF207C98 90E6AE1B84C34E0FDC4B0128D5228C9989717D2DA26ACCFFC87959AA4624F8F1 B546D53F0855B31413AE75A6942D24B2C63B86D326719C96B94F45674CD8155D 8154095EACAAC6FCDA3173BABF3163DE4A044D971E7394E30C47A2410D643DAB B044C931520F03C7AB8DB4496DD3AA92C43E6E19253F4B0EEC5C3D303289E7A1 6F5B32D020D1B8173F63D2E112B69DAC20FF36A0F67C58F83F83706474B85D5D 707B3615220208AE9E70D56C9531ED27F23D6561DA9E003EEDAB330AB59957CF D94F1CA51959374AB32D2A5AF4AA9BFEA5D990DDC38D4C358519F4714B70AF13 683F1E653FB287630EA16E0923A0040F1895AD7C473954EC69D1153DFBD07DF7 583E2F3401925790D22E31F76945D014AA3E50CC3A56E7052EB76028014A7238 43F01C56D9F4E8A61FA6923BA74EA4ACB7402485D5B5CF6103C042C07FA48E9E AEBD4C2F08C712272CA6576BADC0A9BB5266A84E9C0934D0B701F4AB5035CCB1 791508664E34C9FE21DF3A75EBD0377B32986734EFCF2847E2F35E460A5D3EF9 9C8DCB11C0A99EEF61B86754BBDE9C16E941FD7F26DA852064F0C664E1F3756C EB845749A08A9D705B8C7DB7B989EB21DDD46DEB4549D684AB5F953F047FA0D8 D4AEC52269BDB498C02113F02BC0811D3A8C00916FF6A46E421D4F4C42BF400D 9A2A588776D928D779AE5F235EF4746C53C4700ED44940CFA9415A96534A5555 9C3F86372A4671A2B2DE52EEA762902C93AA683EA01826EB13713A7C11665F43 BE17916FFD49E163C8577B1EF133D1E203DA1188B1D66396207437E19E650292 3A461901B66D05281D623953108912BEEF2036E771E734BADA7831DED60B78FE 8C455E0B9CCDE7238F08CC52942D13A7F0BA59230E12A114AD83546E52767B98 BB86CE81445C79F41E279222085069BDA2AA8C9B86E7F8846FB49DD8B7E97EAC 51101514866DF756A812F6C7B2ADC3A45A1F9B86FA34CA6CDA2ADD39385303E3 E476A7A84B87DF12B4A8421BDD9A9C43A495DF459CEC61F1D981A1749FCB9118 EAFEDCF05108EB00BAE7E819FA38D733485FDCF803C0F2A834A9D0317D68E74A F3796B84F5E1122D729B111083AB8BEBA045B3231310E2B7E8A90FE2CDFFBA79 45CBB75610A37BA695A92FC2B8C54A3DDC0169E9D2776E011A5E5011D4605A3C 8D20B9427185A6767185D0D169616089F4909E8FFCBDFE46B24E14EAB86FE20B AF32F9CCE0D955C5090826DA8AA0CF85AC96059EBC59001B592701C091091982 E4D5D659539C22EB619A1B46267B846E1154EC3D6C406EA82F1F33154FB0BC46 73E617B452A5D5374BB111103B81C2CA9F0367FFB2B2283F5502233806A70005 0F115134E6D5DFB35CC782304622972E7D5B2AC47D62781411199A03E4F133A9 192427F43E387BDA03A155BC9FC2E5C0F882110C620EDDB306D84E2CC0A0EB19 C7904C818327BED7D93223E3ABFE30772C256DF6CDEF95E0C0B33227AA7B204D D427866AB11625F825AB8FFA7D51D4442564AF5899E002CD5FA940C9C3661DE2 1A6B7BA7C52635486C890F88725CEA287F662604F5215D3E3CE809D9F8DB3D17 45E77DA26AC67B281D32D19384EA47FF0617D3EE9559F7820E22C770D81B6751 70E38B8B1F3361CE5130281D989E1020AAF2D3D8AC55C484A62B94F04E32FE2F 047E5574A4EFCAF0E92067797A968EDF4A45A7C52F1433187AC4A60BAD5BDDD9 D2F0232FCF379D3C17619D59E58271A10586203C16481AA368E76ECB936CAF93 48EF41C6C87FCEE4EA75B3DDFA7A9AC76113A9C3A2EE86D68DF0D76AB07F3450 BFA31B058FD1069D049A6374F5F3B9E015B09023D7A8AA474469FF0AC2B8A5B4 D7967A74BB44AA864BE6C80F571D3F7A546FFDF0740343ECC2C7C170AB9C61C7 7F129AC9639A046D5D8707D280B56E23C285C6D941072AB472917236FDD1757C 08846E2E00777CE3F706E02236BB446537A67E8B5165201D918DFD300FFB1E98 DE83B9F281C53276E5548E2F8227DBB5738699B7BE3F95F516BFBFFFE951607A 9F52468867325E4E2CC5C6A1B85C38281733CB5DC100669A042ACEF13A80D1A4 9946BF8EEC0DB9F7DDA0FCD436CFE2ADC5DBE9490DABA04869F8EC56A8827148 384B83E0A5AE9446253924D6F2C55A3F1425F465AEE0715981F24E1D3A544925 8507FF7CB9A598CF5E1BFED1FDBC55EE5A008CEB4D7DB2B0A26237958EFD8628 22BD418F4CF3E48AB9208F747334BA961289A0DAA8F065F004C656798B8643F7 A7ECDB39174202512538A3BD51477E0C3ACC796CD719974778C4067E47BF345E 3EF47654CED8EF8E5B0A06204976E971D5D128BBF0C4AB883DF645459532B8D3 BEE0E4068FDA8E2F6FF69BCCB8C86620A5D75AEE086F025682A4CBEFB68F1D00 492970DEA442374DF6034B6E14A7D9CB1D3A673CAFF3A28FCD9CB7559A4064C7 B47B6F90B0FEDC66D636803E38943FCE49AD32F9E4C13B897D7A5486CCCC2EA8 00A0C8EB768B254FCD192D4CCC21CD56245A8F2E7112220E2F89D84B08F95A56 E76DB485DB74804C09A160F55576B571311943328A9A75B1475277386CEEDE50 B86F2406C237FEBED27B655296FA069ED6167C98C57A0AEE371C3C1D974D3F30 407B7AFEF5F4B704E0EF0DC94E89056E7116C62B86A8EC502310E005CEFC4027 5B44833C42B3C628CB6E98A30F47660A5C1921D00717A6429488D207EDBD713A CC955CAA5D7336AB2D1CCD5580501DD0D8C122D042641D41E5FB7F933FE8F515 42B01FCFB456F7D0DFEC0C0374D936F22B9BE010C24784194C7E816E51BBC0D4 C2424ECE28113B7BB5CB5D9B37BAE6923510657FDA024BCCA6B14EAA73A8406E 64B0C5CB504C43D5295B5149D9324D63536AAA8ECA3F1A581BCB617CFA03247B 3E462CA5AC673D872A3CDC23B4105F3B5B135914047ADC5B8DFE8887E81D01F2 9AFE307138CE973F82799D58A01E7BA2487EB6B4903167EA92466E5BF5F94B4B CF59FA0316AA49A06A9D86DAD1ABB3EC2229FA685D786502CDA58541ED0EE698 A25FDF795CF05E03027B0DD02FD59F2DF3293FF527E958D0CE0514ACA3C2E5B7 E0A003A5378018C565B9B37677C36AE92318815306DE91E034F64F18B88B7802 F808A0D5F3A3D2D7AFD06BB7EF108B247C4CBAE808E6F06D3702A94DBE8BF7A8 984738D27D11DF5C79002D658D0F3AAC073BE61454262EAE494343E63B70820C D6F3981CF8E17DC3538B3E8DE7DB8957828DE6B176A100286F8D0BE1CC98FE8F A2E59152CBDEDCDACD6D47D6BF1CC71D6E650C8EDC63D102F62583A91EF4AF94 5285A148997738B3DCDC9CDB019D8CA859F6A28B0EFFAFD248434E064FD4BD80 DDA1C57A37F4FC474D8F82CABF64B17718C18E211CFE28F0F59DD574694A5C77 2D23E323DE0C4E8F3C9D9AE25064A2B8823EFCBCC0C0583220400A605BE52A4B 9C7FABC9D351D55C4957D51D217A2D2928F014052B383B853452A02E86F11FEB 7753281989654E330119C30DF6694812689ED6A8460E89BFCE3D77F3AA6312BC A0C13EB4A8CD22A1CC5FFF67F78946CAFE76F8B73D28B73DE83ABC6EF9C48E8D 75D55733B70077BA280D27195BEB84DE5A892AF379849EA0CE32DB828DE93FCA CA2FD4BA4A54059A9652074B023D8C44404FC6EFD7B096FE89F8405CA73AB4BD FEA2D6776223FD6AF48FEA67C14260B9B7A7CB756DF8249ABD178AAE363355E1 63FA06105639CE1C9006C6845C8BFB9B7982C25237381C95574C68B41C76ADF1 6C7E5D0CA6828B48675C37A85CF0F3653DCF9BC0444B0F9488F17E17D00BCD8A 7637AA566BE0F9B2209F4CCF8766050379C7D9FFC6E1B8583B1E9BDFB99EB2B9 DF9B801638B244AB3A655B9A15E5D9174003E7196A5BA4FBD8E1A6587171A339 693C1E5CC7AA302A4C78DC8FCC948E00E6D35E3396CFE227DC0A149AFDCD161A CB4D1049D990FD7F45233EABD33DF48B66F6DCA0A21B0BE4F66504F15DA4E2EC B41D197881DF5043BFFE03BC68ADA556C3094ECA07417EFABA19E20B69415F09 7F0E99E79E0913477BDF7D989BC7D578FBB08362E3E661E03ECE85EFF669A282 E2018F975EF638C4464EADEA81A0ADA6B12E5810BB1A7A065B78A6CB3048FC69 51BEF362DDFC34EFC7D97D4F1E19D8349BE63D70D862472C9C281DB4039A55CF 4189F018B2AB7439A6756D3BE135E19930AB3927519983B10E0370CFAB484518 4802072D2D691F1029F4A6AA959BA4A17C223BF95C4B336BFA9670FF9AF7E5A1 CA6B9D0D5E355A1133A2771A3525A770A491D7122CC7F909D92F06DA680D5992 C92B5F8B325A17C087C52CAB71F2EA936C167DE081AF01891B2A6A8B05375B3D D4C1A6FD51A39ABF0FC02CA8554C562626E05E22855B96BA46568968FAE85AB2 B0F67D18A92B37D8BA6D7AA38111D81838F8438C2E04A6079347486963F7AAF9 8164B1EBE4DC9D705FB1F53BAAB9D485F8DF4D52057C3D16677378F44330AEF1 E0BA96446088918705104BEF070190EF7FFC07636630DA0D90E35CADE0B2C243 F54806EE87FFC50B6938FE8DF9C94340A47E9E17234EB66C61BCDE8F086FC7C6 C04DD6DB0A0649D50623278FAC14B6221B64D32BCE6C1645F8E1EE6C9D6AE900 2F04B0F5C9F79B418EF77EB604CA87A447DB635C57EB7169AA61DA07E6F18609 22912069178DD005E8A3CC03990EFF8BF4A7E7F8AC5786E92FC5A08F44F40EF5 EEDD963CD83E7CFE2DCC893348AC941DFB69845DB932D5271B1BF86EE249DF4E 5186AECC48406C27C74ACBBC364B825B42A3ACC24754CA2AA227650167002283 DD6B1289A4342ED0FD4A585E51823782D7C6517DE52F2FCF53766810539EFCA3 E2F9619145CD0665C90BB1210D1E3B32934B54ACDC5E13981E186B057B282EC6 6DD3B7B6A157B5288F197F2A8557C4A56AB5A5BAC62A76BF00F48CB8A7633CE6 8C9D1C540B9A7339D43E46F969B489DE40D117AD1D63FE5C81891367DB939949 706C63353B9188318A299155D50B0195744CD4A164CEFF7C8B62B311A42AB17D 6F009076B3F23E109E6C963944BAB289A64000E77A769189F2821C8E0BBCFFE2 9FDB4EAF62DAF2E94DB8615CB4DCE2402074D7CECD8E16E8AD818238550C54C0 BBBC2B99F159CFDB8C2370EF8D74206906608088A574A17D6D6D1CAA44146A55 82447E63C5971362C25F61A1EE58D9294C14E3A4964C260C84AE9E601C534F5D BB2177EF28D6873D4CAABF47086357DEF18EE33F066557397DFB0D44E41B4B12 6DEF5E1BE50DBA2A8D2E0876D23255C04DB0AE4AA00263DAEA914EFCA3D6E7C6 005FCF57247F7B7F888559090F18700C182528DCB7068B668CD55DC7A48743E1 448ABF57C09DB73C037F533AB5B595C2A3EF1464D3988F2EE777308B49553ED6 C429E3BA7A8F0BB2BC47CFD77E03173A5BB327A4A4BEBB10A733EF3DFC376DFA C9375DD8ECADAF7F4C00792D444CA3D6A5B68BEE9CE124765C615B6C830500AF 589E4ED5862BDF23F4E784A8A3DA425EF97AB88C6B28AA5B62FF9191EBE7206F 8DBC4CFA9418F4D420DAA36380B310758416B577FBB8E35D8E3752AFED1F4602 0A26D432D1043BF6783F4345E6D27D32A48EA4698C892F4C3D944127E46B1A99 39F53E4F637938BD6FCB95C9E7244F7CF56E335530FA6A25E75AE0A9ACA43E24 9DA5988E56C717626291BA9F0CD4B5A54AEEAD808D3FF23541B623583B4F8E0E B78C43622EDB48DAE20B82AD2D582942EE6199FEF361641E8528AC71512701AF 6FEF43C946445D6E367FB51F0F5FE9C8F89C5A846CF2E5D401B57FD632BD4852 84F6796E3AEAF25D4CDC7DE0B0E502E32C0F0D8102461B6879F54E0EDB8ECA61 D360AA8902CA3A62C0C75B6295AE763FDC0AA3139CC41EF27265071020FCD487 0FD52E9D28040DA585124E701D806AFA959CF2687DA8044FD968825D79768A03 336F4C6D9B708FD160786E57FAA524946D1803A722EDE7E7DC9E3DEBB132605E A7F54977B5A7379DBFD3130F6923396EFFAC8ABDD5E4D7121641E8A4E3F9452A B0BCFB7A5F74A6B411E785D73060679B6B023A744F2A5BFD1127190FC1937429 38780D411397B537C3F15477C1400C6337FD43ED4150EC037BD8226A5520C6FA 8D576CB48044F1B2FA0B07A78B356D5772F2C6EC5D494C8A2DA3C6D7E65D0790 6D78DC6ED1209797C2E89FC536476C9BA81767ED736212A1CE7A7CF6662DF086 998CBF3125FD4E68F3E54D48020EF0E874F978744637E412C1E765687BF87310 025EB7620FED1F521E19B7779C7657A4A72ECAFDC3A12F511108CFF9341B95D1 15BF4B63E91CB7AC25D302A3C844121A71F69D7D348A9D446809FFAA17B93E18 C929F6B45C84B926F8999DA907A6C716902AB71141D47F800B93808DDFBE27E1 6009C968ADCDAB57BCE91C139621E1AC24A138B761073CA6E351F827B4AA9BFD 6FE6245EF28CFC47A376D846EE9D1F6C97DDB127C53F5641575F73F719383D74 6D35EB3DD2393AE1B7DB53957E88E77A7FA49441A76FF6719E2211E2AA4D2A8D E84807DCFB6F58C48B421D3ABC6EC77C0BB5AB47A74F130F0E6B99DDE9927299 5643D5D22CE9F655941DD99365313FAF7788D3048EC944F1F7E7FCF703AA327F E6315B752FA5F695706C6C3ECD489460ACB6377AE326E7C27C32C0A9F4980727 9D52DCBF5F0FC25092414683571F97CA0CAFB23E6DC62BF22203BE1FDF8AFF5E AFD94A4216E5D72427C3C20CA9560901862C849747FF80CDC37500355C0E9DB5 E4315B6D41475CC63848A83E39E4AEDD86A9C578465A21D7D58111BEF319E5FC FE30C48189DC3464401D2924E5156CDFDD3EEF556C7CB7C249465CFEE4003253 753D5381A88D244B0190A106E3EDB518207E1EA19A520809A503BB9C6EC543FC 309A8B27C8650A098145B11BF82151CE0806CC79600DB0C2889F3AB9FF4A69C9 A2474CE7B642993A588E63615003003AEFBFAD5D3C961FCD250FA60C0F35A18E F4D367636F8474690197DD2415CAF6EC85711E8D44E3814D336F0D528F4246DF 0D7DBB0495C42163727C9F6A4DD8106CEAF6927B8B5EFE21E18D4C3D95363720 1FD81B583B490EF46327403C02D71C8D376356F7B8839B273FD74C1CCBEEF6C0 50DA61ECE50DBE8D9BAF599FEEAEEADA72A0F7DD4BA598FD94E272B0A793219B CD1931A08A4E5D4D76F8252E2F59F6C3C4A91A76499560D5D60F8BA8586FC0E7 E558BE54C520FB6245C2C14161EAD1D6AB4F33935B0ED71A794B0594242B3C8D FF87E5AE4C7F50EBDF78359EAA8C724F8652871EFAE7B236FA404D7381BBD0EC F1362A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM1095 %!FontType1-1.0: SFRM1095 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm1095, tcrm1095, larm1095, lbrm1095, lcrm1095, rxrm1095. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM1095 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-188 -320 1445 942}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F33528B839DFD4B92DF0482493852D12053A7904 BF6E144B9488970F220C299E80886366662C1276120E72472BF84082B9EEC729 F7007ECDC5A850C88810EA679DABE81714004E65D938DA9ABDF29C949A52EF02 EDA8451563235D51286E9133FFC7A27067DF0332ED614AC2D4FAB88EC84E6CB9 FAB41C933E84B88097BA8742BC30A81416D1CAA3545F08E2554B28362B99B79E FC42281922B94604AABAF5F7A9B8E2D9A4358F38F2382EF9544B859D098DF243 034CC475CEDEBF0EDD0A60C907127BB32F7D85A62A44E90B4056D9B4B2FF3A49 786032C6B25794E2C0003C7852C6B0688351FBFC43300FB0B72880BB7B58BB61 3D1064E7D4DDB128A9B38EF7510B7E5F82BDE39489E2D1DF08816781B13836E4 89390F84577F31776FE43A5F94F817A4AA4A698AA4AE84B178FCB65F1B5A5CE1 334417595F6E40849041565BAA497F6E4B8F4305D849128C9A26A98B909EABE9 8F2659189ED27C588ADC7C744712B4D9AD0C5DD25D1233E979DE7F53C5F1C47C E9DF254086E5EC70EBC6B7E080060BA72F15E6BB75C75011B15B7ABB6BF761DD 428FF1BD688938C75BEABA7DEE2AF49364D2E198FDC7F8FA2313BBE598ED3703 7ECAAA4670BE3A85C693ACA829A5936778BCDCDB38A5981D4CAC8994E2B2F086 26D8793AC1393D49A8F2FE391F0EF8899A7720697B908266F619EAB1AE084905 36AD29AC3992BD3D77682CA8EEC0A297C9D4F167F3D6FE94EE31C80742E74DB2 0331C9E1C649D036DA3B081DEEF6D171EFCA22A3A0D668EE3121032D3A55BDD0 2AEB87D439107FB3778AB0EC59689768D3EC943D49A8EADC779F610C3087689C 19E649571778AF3905B73C16EAED4E185C873186862E2B848A6F7FF06FD50FB9 A3250B8A6B0782FF750829F55C0655D4D6FC707E24F5CE10B99E14ACD4566001 6B380CE26B9807513FDD928653CBC3FF333C089C557483220716BECF3B38AA5D 0433AFF5A5CF19043C6EC4A49FAAAB10ECDA541E143ACCD729EE49779466D11D A94FAB52C297569731F5BF3AD2FB94AFFB60B4E1CCB4595B2318D48BCFA55780 E205ED971C0B1BEC306E18139ADBC5AEDC2AF74042342682277EB1B742E28AD9 B0FB51CD6B4FE3335061CE19C71F2DB1522B4416AA366749D499C12682855A9F 9578800DACC9F47162A8E34FEF7DE05B2BDE24EA45C5521A5C45F278AAF56607 E60872B457F2CEDFD642D6219188350856B1F6E45AB8FE20E1807771A2C8C78E E350D342AEA003CAE47966EE4B6A33DC92C67D9A78529F835ED70B702152DC52 D908138FFEC4801C85C09FDED112B93EF7E68F06BDCC9711D7D6033B728F9136 95F1A2F4DAF08E7CEBCC6FDC810CB54204E22C49F0317379E6B45FAF5ED8A878 735E97A895F9E3481F20137FAA0B7567E02484E7635EBF14C12720025A582564 C9931DB46E01BDC256801F25694819EA9FDB956CACD1C1D18C1B6137CF5B6869 90B9D2D6E80D8D0C3C799CA40AC41C3C5F811C274F42A9F8CC178C0EF4F2964C F5715B61599E93DFD7C12716E8C9F9526133FFB284ED0F0B6DC0ED0C743C70EA 2AE33E791BFB54C61ACC54F273399DD819E013A3D943F55A6424FD038BFD50A4 21B796CB75AFCF6E99EDA8946B78E05E891195361D05DD7726AC8204E2C98C9F 658F1C765E754609D7266EE4E6568B22D805B0186E12B9BB75AFFBEEB315F719 5F1E1FFFB8B1FE4CEBE7C9F250F58B07189B323083B4A20D995CC1D43CC2A8CB 1B958DA526DB2AE050183B69F77A375F56488A9621814FE131604F34AC303669 653C6823FBD4D1517A9A36ACE7B2E2E2213C0C65EED4B73DA07FBD5774AAFB20 AC43C596E74B0F52B7C9720E9ED02B5C5C087AE4BE33F428F3231E4491254E60 B1A29B3D1612CCAE572B540B3D0A89652067A4EAC0BBB5432B32EED6A0425C6C FD94B09A7A018A70BC3E35C62F5FA085F3158D7F16A563705D4D9324C5DCA1C1 0321DDCA88B03E179D01C3B303C6856735D904397FA5BA912510AC23802A803D 37EA5AB43AD5580EAE6F3FD0145DD75587C6ECAE796448BE5F0F0CE29AD1F7AC 75BA998117B9086A9D333D0ABD28289B40162534E82750938543066F7E02555C B05210953D6F2D725214730B3AB6349BE5D19D19471AF79EC319718D7CF681E4 0CD1DB3082EF431ED9C5F63ADF55F4C8A7A7827720E30CA9B8F7D1A0A924060A 0D47AED3DEC92D0BB80AE4457D52E3FB1EA13798F2968534BD1420C1205E39E0 BDC5A72B77FC1B21223919B8F9CC6DA169D1A82B924DFBC85A7553E1ECC0A913 28AA9983695545D9056D98F884C5701EB670B46CD7200BA014041491934DABC5 C78CAE6B73476F123B3201C887915CC5EB99AC223ED5F7E7086802ED5CF0320A A4EFB0E0E24C73234D17EB238BDB291EE126BE1B3B3DDF50DB540EE350FEB664 EC48DA42DC9A03102BB867AEA67F08288DEC08D1E49D2DF3AA901217BEFF0F70 BFEAAF3DD20E4145DC751788DFB9EE0411D25018A13A0EDEBD4C62C19E602D5D 5E7D0D0B625A3B1DB4CF994FFA731579E62A8BC5C213F2FC4146521EDF5CFADB 42D373B734D879D654E796192F554EF484F9359079EA871C7348B10C568A9614 E7705663A86C71CD5984EB34FF385AC2B99EC0A0649025A5A1D2152FB367649F 4A3BBC329BBAABAFF288240D55D109ADB818FB6F24BF8640EF573C930B71AAEC 79DCC3E0768D2DEA2F88EB40D5771AE5B8DE566393DAE1FDC15AB12D40A8EE78 384AEA69D88372E74A8C3085D6402C4D5759E2B167BB03952C823C0DED9C312C D8EE5A583B4E98B9DC2F8C0F265C634765716DC06A04E3DCB3086CB84AC01B91 2C8F4F551E5A649B1A4C795905B30ED67F597EF4F02839CBAD948585FD65C8CC 17A2884DAD18E0EB09FFF006E7EBF4CE82ED6318CD3342AFA8C2997AA96D8399 D29D37137311D23479A3581D47752FE7FE13167E2181C9DC6678342172764C52 592909478B62A06012B241EBCFC2B9E6AA26C6AC580EE5745FE8EF4D556670EC 81A5E16C84B5354DAF3705CE174581AAA81AE1E1F727C30B163834BE704EC8BC E9CC075148C96C95080D2AA11374718AD1FD1859110612CAC388A0C945E19436 021ADD090710A388E84018449B29BECA1E66C9860CB5CC2DD64BDF0D32D2E454 40BDCEE405A0138FB4F7E2F3E4E67A82CE6C2C4B87C4B93B734C1CACEFEC0DDE 35C1C2D5B7F7EBE4C9A81AC93B375A7F598004D9967BB5A52F96956A256EC000 852A744AADC8BA2C0BDB76755AA577985784E49CFF9FC281422BD2BCB5EA01A5 94702C88D1CC26E18DCFEE5AF93ECA42D72A3A924A1E48B1C98C55EC77417DF9 8C1B17BA34D671B3633647BCF58653B64BD4B7D5F0A7DB9BA90AC5A738B3C2F0 33A3341193633F8B912B16E71E0EB6012D780BA01DBA71BB6EFC702151162426 9FE29DCF99B4A01CF609427317C3AEEF9A0A91886CAA8BD93175830886F8A162 7750F1CDBA0E9DADB8E291B92500369EB8A2848A06A31C55E4A5BD8F2683FA76 A07E9ECF4FE40720E75F07D5A401275DAFF14ED5A8DA7D988170BBF285D1F914 2CDFF81CE677D750AEECEB635AE0A3C17C821AFFD4047BC3147B930753F58D0B 45463F053E19A16E5A1B111901E0FFE0824D892C5AAC0ECA286C2A47ABDE6C3B AAD47E59BD785ED53DEF1DCD2FC6830AABA6921E161C6C6D4FC06E57BCE9DDE3 7BE464A4EF35A29066189C6177D8F83B8AD26EA7774D18F6E6459CB75F29189D 574A898F9E3736BEB458BB64308A71F1125BD3ADC8B4AF8C53C94F51BCFC6CEE 7E93863D41C8D27B234163E6680F89CAA725228CF17157F00A5E9FCBFDE41190 370564A9DF02C9F5B7BB957A768D98A12DBFE13786ACCC62AFE64E6468563CB4 974E31F83CA27E5D796A23BE19479C45ACCE665D840B3BD946646F58084A7C57 066FF7EB345034D6FBCAF77A08AE9F906A256553E88BB39DDBBAFD1D89F33FF7 E2075A90611E08C8C0F14D16B9F3937540132267169C29A3AB65B87A27AB2AD4 C3467F5EE2EF1C7ACC0D84D67D21BAB7AD3B0F93D17FB5B1A5626C08922A3F7F 504B1884117440B6CF54FC5917AE62E0EC1D4BA23F1241D44EE76F2A196A805A 6C1F3F5CD350BA2F5A7FC99CCB59A1BFD4874141BCA87F42341205145EEAAC5C EF9F1715AF7BE2D1367F3F6AC431ADC1B9A9D8893BCED3B0453ED7271911961A F8BD528227823F7E4CB67C523ED1A548780DB321604C566EDBC7A851C445DF61 13965E6F9D31B811384DE04D47FE84BF6B507C3958D993724C09CEEB5DCDF4E8 F89E1D515884B2DAD7A9AB502137328E1458AB12449733447AB20DDF04276C43 B5128218FEAECC7E76CAE8D7D3E89AF94A5018BB4451B2C1C0733B0D929E9A74 125599564D174B29167051C477EA7C5D4872F6B02B8A87D443E5514A69BFE3BF 07DC22660A7FD1584692E7C72D4E33551911721BDC5FA5472E93AF022BDCF275 C7A5AA9DE3B1D2770A51B9E660FCC123EAEB131B17067B364E0F744C85391C54 CE812BC0B26DA4724BC1E122D39BE3A88F65099D56A89C884C5D19951B7CD7D1 39B25F3BAE3FA9E40C8865645C62D5E38DFF46784F4C7337A1D2AA8496C5E327 A8061ABA7C868BE71E233B74E35560D214ECD6B3FE13B500EC8577A7E164B1EF E9C95EE5800B2B623E0488BECDD26DBB0B3CBE29B4635D290D50E21439971F93 0B77F2F59E82D2B617FEBC47D6956C4466AC70FD45B6BE75ADDF5C2B2620A81B 934D49E891CF1571EFA3AFEE32B14061DBE3F1957E571F9A33E0498DA1FC22C7 47D28249F531B146D3D081BD22322681395650C8C00A83A10DAAB8ED7E385C23 002AE3395C7FBD81A8DA5FA18B7D60B318C2BBD7688BADAA48DFBC17E9D7D0BD A3A32E78634D198C8E527709BD29032876E4604AC3E1274BAB378BCBDA94196D 7ED0FE772CE0E89EE224E611A85863D9936E13A7EDB4152CB6EDD22331D47111 582334C170CA7E61C44A7E2E7BA735385AC496BF7D45FF8566D21C81292D7ECA 4D83134F5602F5AC43300F30BF572FF87B05D415F7E490E510CF860E45C6C33D 9184E942EDB99B0CE8CD99A7AEEFC1B0C4158385BB4F4D8E05807ACB6D112338 E603449AA2DF16BE6B51FD3216FEB841C929EE3F253E0E3E1A85521F5FB6A75A 27F869FEF5A4838AEE39F2B4EF4785557C39BDE183D551F199375ED6648FC5F2 BA5957AC24F9BA8F205DD91051BCA6DC20624930DB77A6020C8D74F868DA2E1E 7D41DA632A1DCD5B03C5D1BFA746AE8F304FB738AB89E1F0A6092C917DD67FEE 29D6495AFEE0E148B83A1FD1E86AB9E2EADAED78CA6F50D48B92A7A54E325E9C AEFE4F8D747109FD5C8E2D24AEB1F11C0CE49E096B415A1054D636DB9DEA67A4 085B44C8689D5B67DF0B219EC6FFF847F6448FF7E097AD3FBD94548DF88C98A2 F240B3FB7F200A68082FF128C8155EF29F5E817F704342146F9744E89BF19327 E11F4488D13D4217AD82C65D7B8B2A2E021A9C4702E3DD3984F1896B5F90D897 0ECBBAA02E25442FC4DB96C15B184EC66770A710FB751A1A63B396DA5B697860 CC589B589423FE8E386C646710BCF518C27928ACBA25469832351BAC9DF7903F 684121B5B7F309F65E975C66F710613A860B1364386F6E252435A2F4A39F7853 95668136F3B8D6574E8217A7D2BBE4184493FC6CD6760A03566E94AB7A712874 2591731C8053D8D53D9762DEF2A03ACF420029234B166477DE3CB8708911BFFA D1295B258BAA0A31E232345BC224E9931C0772B86C8253596A949CA31A9E6260 93C72EB9CC2F5DA0FE36B8946446F7A98223792137526E7233E93ADC43690C79 0C0FB5FA652C6CB6D67EA8433FC129C759D6A376472C1BBBFF636A3D36D6B9FB CA80C92AE33FB6488AC7971810F2EFEDEB4099BED81DD41CB40C9A4340489FEA 94FAD4ACE7A841372669782346BEA55400DB4FC27BA16562A7202BEF1FB6302D 4DE3CA74EFE6664848B7645A17A41124595DBFB97377BE3E711EA1B227A44B50 17A05E0EB99FEA77EA361133CB024E32D290F9BA25EF4CC00552AE181174469E 2EDB0BC2818B7935AE49BB242B553D6971972FD93DB83BC0AB3BD78147524D5F 228B0A955302C1784A10FE9DED61B9C3B82FC671AF4B2C80ADB939F79D3EB87A 0AEDCB65F8D40C7435CE83B3474F086F382F10C950B3DF19AD8C9968F5ABE124 A2C413B04766693591F60A40DD965824B7FDEA8F45079AC8DF24B4F3EEF5E8F6 543C5A2DD98D5B02223D1466A34A6F6E3DE0473584728294101C4762D9ECD647 6CEEB7CB51000C3686E41F05B4B31110AB89359C4B7F90284DF89C04819363F8 4059BFD0344A398BDCE559D3342D945FD3F9B4B9C9114D834B26726E057588B3 DBCD74E502EB68D9B3F326028B67DA69B10DAAFF64B9A279C94711D7350422FA C82C374D5DBBECFAC1221EDE650494F8A03F05F01B38E055EBE07789D41AFA21 8637E12865F8104650BF1C719FE1388647CE1F78712961D9C708E1DAA30785F8 BE8E3840473DFBA2A19A7EF7FAB24E49D34625C2311705AC32F88D7BFF80AED1 AF453585D9CD9D7AC9709646E4C6FB34FB9EDA381111DCFCC7391B12E4BEA6E5 EAB5D39F87BA1A514F6FD6A9166F99BA46C719578BC48E9065AA87E8B8E9AB29 B653110BB70DE3CB1ABD4E08E64BAEB094F54685C3BACB9978173C987AC6934A 2DB150FAE0513820EE49509A8ED6790F5EA94D923AC1233D38398462824BEF16 44A3EB5817056D23C2B05CFF40BCABB8EE5944AC1BABC1D3BAA6C858567E7474 557DE10FA23CF79C87C6157A650B49370F2CDA21E28BA9F71BD2C5B15B89EFC6 E5F571A54745512B9B84A6479C6819C90D6918118720DD1BD5ECBC2189FEA080 56D280F09997BA017166BB3E8D68171733D227522E90E14068FE3B38534C95E9 8D90CF65FB8120D2C32AFFA2F57678A40F3D435732124A22AFD9AA816C7F47BA 59E6A82696B5D82B422340F5A77CB25C3298DBAEF34A797DE1EA0229CA4046D3 2E5949C704C84D10F6D46D625F503A67D96AF82BEF4DD1F86726A6D4518F3605 E38EB71D2D572C4A9DEC866883E78C990AFEE4497B96A7B858653DC9242D937A 273CBAAAA332EEFD654E792BC98F10E2556E1EE3234052F3014F9B6E2732EBC8 1F6DBDAB827ACEA8FB1F1B54AC5F434DFBD7B605DAD6E80D8D0C3C799CA40AC4 1C3C5F806A638F1C83B9A24918730C0FC37425534BED3F0FD6A90469F981B372 8A590966A1F611F826C21E9E0C08E1890406AECDD9AEA0F73452A949CAE5B3DA 967462257D5F9A76322C566CC561016B6BD2DB08E8471A5D00FB66DD39CFAEBE 34AB819B7850F858A12C4428563A4BC5A1E52B8D3E938C8C15B972D6FE826B63 6922E4F6848A23864E553A205F8E4B121EE8C2178D118E6F1ABC0F7842B87A69 EDC3C3A9108BE9A86888F7241059ADC4D52CBE9DA0CA518BB883B4550C5B67E3 269F501AE93DF5E9728585FC7A80EB4EDAA39722149628091413DE000A12E26A 6D0FD35C0ECD9248C49BB01B31283E66502C56FAB3FEFE2564703CC45EBB55B8 C00778EFD3506BA03FF5F4EB75E671AD1D4058AF8B4DFC3D63003EE063DD10F2 4A57A8797C6C38B0BFD28142BFD50CA5E2DB14A9C2E7B14A690EFD95A6A75360 36A002B983934B709CE9EA23D6CD70137F2EF8F72D3E88131B63BE8F9347E3CA 95F65812531988959E0429271503277A49AFF42E6755C4BFE970C75BB3803CE3 2E51EC4DBB64BF440ABF0C5C2753F11F93B566794C06DF25F29002B6A558A572 9E750E1918613656A3CC07A5C2060C49F2B585ADA0247AF4D8A6BA18F7E9E926 176DD9DAC0305D1C3E16CF4C910845676FA14CF35A06A1FE895C7ACCD96ABB6D 37325D3EA85FE76FF807267C096C415EA2299DEE80F870F114FF4010102B4387 AB3B6B7B262B63A73183E5AF591336898EFCD10F1140EB95D9E03CD928B671BF FBC96D2400B391497E984BF7D10FB5CE9ABF60849850CA7AFF81B25B8C300C30 1CA08BC250CC6096DC83D1DBEC62F3B1DCFC01BDDB01692C15C1E3439F2A209E F1DCBA59F8537C8B08B27F4ABA4B327844F4A7A2F82A8A628A2BFE41B3DBBE73 BCD48DAD764801349372AB41FF9FDD5492169783C40850B49E6AE3DE0D2641D8 CAB22E00B1CC120A64C8290846D2B64A7AD558EEC532FCD0C2F61A64890B8421 2036D3FB977E066A4E5C2954470769E6A242F7AAC82109F71914392567A82DBE C4ECA9B04283E70748DF3EA93C1AA74EEADCA792018061602E7FCFA28F83EF3C 410F3C21B869BBDE0B47D8F23A620060C06F556E8115241CE1D49065F0C989B5 7712EAD47D28935B978C93DC53D4DA1FCD9013BD469E76ACBD965F4A93D6C4C2 1C1E6F27E6F6E6D7AC0C3B7001667B6EB6636113491515EF42C5963A22432C31 A5EA1F66EADC375578D728C10B343E99B8A0EBF1B460D76981D11778C8BECAB6 7C4ED2AACF65D8C836CE8F60F70250E19FFC8F6D6C005EACE2A2B1B9F4DF2EFC 2FAA08098C752DFDCA4C0F418A7E2ED3D62A391C66628010F5D4D89AD803D5BB 84F8021AD2F25A5876F649E4B5BE3578C271F0350005FB02E3D0E3C1A31AEF97 FD06B78432E2414950D6FBB41FF7BAB39B497014E3273D687CFD56E213BEB567 A02FA42386CCF555A4AC642DDB69B0316C9D0878368B77E1783CB25518C5AB78 25A0BBB153BD23C83FE188E64EC7ACB0196673DA65A2DB1E2B045F0F5011D46D 01E050A579EFC54590D3C969B13C634E811A45DE2ED82F0A8ADB7F5E116DD1FB 0641EEAD8941105FFF6226EAFF417E42B5D9F39C0C4E3428D772CAED72650F89 E7E0B1538C5D0664BE5C79B5A41C0A3D62CE990E62666F6491AA00CC766B4F41 4BB07026D33B1E67AF483F69FA11269542DDB5E0850489ADD09148F56989AAFF 4F13998EAA0228634129D2ADA8CFAAAD0D1FC5818F220B2C713BA3B61308B346 DD2A49E953FE6C20E7DF6067EBD2F4CDED513867B5EAE023186F9F0FE9DF95AE DC32EC824E03F97243E97EBA78A4B34D78341095365042AD40FAAD9A144106B4 45E0B7A5C9F9B9E36C5B1F99101E1C975A89C51235D82687A87E336CBBB25691 DEE76792ECF843EF3D67703D38F1C1190AF61B7648984A6F608C3468D93D3823 9C1FB71614AEBC129C2B3EF13C02D08567D890C29570011EEA2C1BEE87B1B787 568C99860C48F5DB6F12AC17CD4241E7068524199B057DA84A14CBB3A05B4A21 F082BC9EB59D1EF23332737195ECAD77DA5757F4802781AD3E5504039A71E921 2979323B5717D99E1679B713423EA2C29429B292F8856E74D38961AE020308DD 6F87910BD9440EEE7D67DC835DB0095622E8BC078461D58F1AF1544E5A4D7219 BC15746C93C0BCD52F34F7043B31D7588025FE88D70EE7FDB0441024A31EE582 FBF2F16C79FA975BCF9EA5107839390623D40174AD00CE4B17DA644D873E9AFD 34DC6F4E03B12872ABC6898D1FF2506033065114CB0110CE0EA79FB925083D46 A59ACBF161D23CEDF0D75FF6B8AD07ACC60C6E686C5EA28F76FD3574AAE0696F C136465C5C6F80CE8772064FF7F3CF134D75D196832A206997DB768727A15A40 EDB32B88639153CE90CFF0CC0B3099443CCF46CB4DC451F9C47D045C393797B3 36899FF5075B4D37B7845BBF82AD16E86C742DC9DF53FFD4BAB64120FC90F290 EB3C4A958F96F10B53AAAE65D4ACCEAA68AAFC75D4B2CFBD0FB4DE330F831BA3 6335636803B4D1393A89FBB6EE8AD9A1187F2F737BDDF50E6867A00156D51DEF 14D750D98A232155513A79100212026E3F271B44C6B1D3CD21FD455A2377D603 04CABD9D3C1F5277EF229436B670CEE8B24F32FA71E6D0AE41AA38B5B3F33A5A 3091326CB870145267D6CFFC391E51CA09EDCA5ED3CDED0869495B92E61ED7DF 47148041D25A7835DD6FED89388E7CCB0C17D6B04C83FB8EF288D06E818DFB8B B0E0798A8BA38411ECCB0F5EBDE7FB57478D52F3798246A06F9C88B0A1A45643 04168A60094B8DD6181DD539CB00DD4F60988C29BC96128F689842FE797BA50B 04CCC3240D4C9EE4341045978D34A9AF4B357E059A6DF3934C9728722C04F19A 395B5AF5934BE6E2D0D45246935E2DFDC56E782C3338E680D589AA23E546C4F5 75601FC39452E6F2E278070B1FA8D793B1DE31369EF57509F8585365C6155B49 0C010C187111F152F02F597C8D4B0D41154D1B04586053568E477AA9933C0C00 0969CAA50BDF572C18A3E70E0F76847A99C790827B340D12EFB167A5E4B2C78A C8C48F7238152E4BC893E47AA009F8E2F7482604F556EE56195045A340AC87C5 8E3504D16DBC674E53856A45F16B65FA7D2C68B29971E6C539F80D8B8B81BEE7 24B1923FB8AD5D886B7FF910FA50D399E043BEA3022DBB679E32E8B6C7858EC0 BBAE6122C67D5B184CBFBD4D9F8D2F19AC18C5BFB03128E6961B63F20CF1AA69 C051F98C9BE96BE1F6C80D3CFAF1C1B38D864386B8A96F494FCF8D02FF016722 CF39A5CB6150F704609B5A3D6D2918ECD822AD777B7F3973C0D9AD4D5132E07D 916186A47557F717C97F4A3D6AD84F84BBC9FD664E30E26944221ED25930A0C7 C921F2EA0444ACDA52139EA2CCB1ABAF71A35D31BF3650F2640205DE9C3DFA59 2B81F8CDEB695285BD33F9B00FD3874C98BB95D07FB2D8075C6702D2CD20E367 A13CB1CA23A3361DD6629C46B2CB7D1D12A59C415584C1F36232020621C739A2 2479630ADF57D97EF505E96C9E6A3AECD886A7A550EFC78B5057C614E044E936 CE0269AC33D2FC5D972E10449566CEFE37424C0852D9AEDEE6941CE1033A7D5D 5F98909B5AAAC51CF5FDA380B3B8EB475F43BF1D9A4FBC4599CC66DD9E141B26 51B6B0398A87585CCE4E01E49934512373033E41C71484767D47560F3B3905C6 2F9201CDE26BC1D459E7FBA0B06B3F26F9BA8F319EAC27AA25982F10592D5283 541635DD41064F94F17A4A1CDC8A14AC86DDA0E432670B842013D437180256EC 2B520F0C00FD39B3B395BD277992A0960D438F23514AA330D36A0AEBCFA35E18 8428B104B116FD6F6A900ED0A44CEF60ADA5A18E98E9790EE187BA2C543649CA 55A50BDF572C18A4AF9EE24C1F8C3544E0C4724D95B3F43EC527F8E206B1444D 605A33C1EF29D69BD30D1E2615E7B8783FAD43305A046435F30D1ED768AFA901 628CC5654A8072E1250A76084C2927123D998310E8B2653446BE332D4FEC1026 5921D6CFA7F8C641FE9EE621CAF26567CF7EE1DC4DE736760F5CF3B47F7BA6BA 832E5023A96FA9262A5061388B92A6EEB5CF42CD0E5D8CBAFAD5B8A89B0BE1A6 F12A820CFF61165D2CB140D249765296D3086AC05E12B77DB6B54C920160633B 59C2DE28B27F4D73B66A519CB9D43F8166197D0A53FF212B6607CC676DDB4ADD B047F5283AE59D224EC4B5EF5179A1A08140D3216487A2205EE65DD2585CB5BA 09DBECFE5A994CF2C4F51B2564166D55A9878C8F3509B2C446694183E49FBA4E 0450B7BF4D267B014A254BBD37687BFD8DA0AF74097CDB6E280AACADF0EE9BBA E2C2034613631837410E4BEB55157A0115144EB51E359A8DC08CAA7B041A8763 E8664E847B6504E63D8248044B1CA32D7266A33A0B2C721F8EDA5099B4C69F3B 7F60D6868BD38CB2889D23EC2BB5EC981B2937368D65BB441FE03FE3684393D1 8FB474821303E35BA0ECAA9D264092B31CFC1089EBFA9FD538E32D6946950407 5CF31D25EE513D909502C340616C830EB0EBBF6F7BA7EE6FD5B970EB343E60B4 B3E9F12D435E169939E39270C3A6F3AC5F27DFE5E363837F12FF9490BEDDCC8D D2FD802777857C5B07B48DE067F47A868D46D5D8F49295E95FCFBFD2C6957561 9E61E7627CF8FDCFC0DD2265160BEB350F6DD666EBB63D04376A3C4B2CC45643 1F23A662A672AB1CD3AEF872961D50F182C5DD1BE041AEF9893EA76C85995FB0 E88F7D2FB25520B129C5612B04ADA368E75CCC7DEBF0E43DCD82EE7FC3ADF5F7 D940CE9023E5769F42B371DA95FD16A2F2399E862A25F89B4B472B2B148B6741 CBE548847AC429EB87FC233F134A629261939B03860C87B57C2B99547E91CE19 23F08C26C440F79D9EF30A2DF9B81FC38658D46BECFF55CB36AB2374CAF3D159 E9776BAE09E9DE09E112E044E936CE0269AC33D2FC5D972E1715C56AB14C5291 EA7962AACECD4A1243D31998CE98C5499E73A1BC2B1BB5652A867C671F226B94 9F1718F781D8908FEC9886FFB76469BABBF01ECE942567F8B7E599354A82487B 23622379DE103464A4A0586058D303EE03C3FCE66F0EC101A7897A6BE0E0EDB8 DBE5778801E2BE72089EDFC20A8E023AE8FD3B6DEDD8D53C3793D2CFFAF95482 C6E94D505F4704502EC7B4D406CBE8A09BAE1D0B21EC6F90EB7670151C47B53E 61B2012E0BC9592745AFED9080FA9D1EE4836311C773E3480074B6697683406F DB1D32C0D8AB4B0EBA762AF4DB447AD54A7FA482197C8BF2934AA97CEBFCFAEC 0A7568FCDE5E063BB9A5D0314C74BC4355E57553069F04FCF213FD9FB2DF7C1E 52F523C2D6CF20C4AE3B6824DC956BEBEF4BD42CE5148E2B7AAD1C88586FFF0B E70E97CFA8E3FF58B223BC4454D650D1250A2F93F19E620A1DB78F38C77D3214 1589EF0E54A15DF3AEF515D394CC08A437126B33DCBB2F1D20918FBECA520AF1 970A9251B9E29AD5312114C7EE4A3800E0ACBB86C1C23EA2D153646AC49478B4 3206F11EFA0152ED7195DEE9EDE1848921F5CF2FC5BB00EF4C3AA5D733BA3ACE ECA5F4B1FC8DA0FDEFD09B9A6A9836CB30DA7CC86EDA8D75A982B8C958779281 46DB5FBE444EB84F20B11A143840EC16F1647EB51CBCF92E3F519A36DF860312 500272C4EB1AF8A53A5C788BB01016875C2FC229294178DE58D98192144970EB C5B25A613677D06DB1E23768A45863BC7A16441725E83163B19E3EBF9134B7D2 09C77254D06C7686FF5CF691083D60CC2360669F73F90BC5827D6493B7C6AD9F F6046780C3763D9A87FF8D12D6B591F1A55F00F892C7678949FA5CE6118DCACA 7CF7289CA3034370710E8C708D7E603C8525143FF8FC2F19A73AEE44CFA90280 C74C2FCC15F46C94312787AB7B264BC99379C9ACA92AD5F5F6A0880B82FA6199 385D84D1A53A98C95121D31DED5FA28F10A55F99FC6F65A71B56E2CB8C26A47E 974BF431E4A2707C52E55E9B0B688113EDEE007C357491BFBA0CAB50551AC485 3E19CF0F08B147C1A0861430BE51BF42004EC94208266681A4F37C75D26D39E3 6824DC470AE00C0DD5AFC45D88054B8C2BFE41B3DBBE73BCD48DAD7648013493 740E2DA5FF22189B85782EE6195EF6ED3B6D34EC8611CFB0CDCE45DA4A1BAF95 E88BC3CDEF0D387F8B25D3F2D15D046795247494411BB37223AB5D69D451987C 04FA59C9BA9DEFCDB1314D6F30CFBCC0EC4B91C16CAE9E3C6E754A1332D46D15 8BCC380735F02C51072341DA33F15A5D79B165C2C163CD69CC6A2BCCCA9ED6E1 7F265E13307B78378EB6267893637369C7729F5A4CBAD8D78B02381F740F9D6D 3D9110DEC6F174FD8B2D54C896636E7A138E2FF1ED78235A57F0F5982A97C854 79FC17CF4C543A2EDDEA27A99C8AE89FC74055ED1602D8588AF1EA813B2B24BE 88BF68071DCAC8B8DF983FCE91203EE7083BB76D79D041D39891DFD8C0EC2F40 32C85B0197DD2F6109643A183DDFFFC288A94D6B132927CEE875633306029B1D 452C7419EAFECB964693884A2FB3B7F0FF5CFDD04FFAE44BF772BBAFC4DA837D EB39CC7B6E377D5CDE04EC2501452D8F1B9C56504DFF64C80E9AC19292B608C9 A6C12109CA1E425EC9853CE6A95CFED9018F85E7BA1AA0A013F507596777B661 3A512BFAA9977309CA8A2CE55F96E7867482FD3210BC46A8C597708D1283F29C DCA7D47C36454A870CC95021DF41F22C0FDEFB52A6A181E1010CFF41E45F6077 2007AE29653DE98E34B94F82E516245ABD1F76EED00509528AB80CB9741B98CC 31540BCD67EC90E3FF7D5F751CE82A78D0E0A98402DB4D127ED2B9171470D249 7612D386CC1076F5D4DDBDE65E84C51724F312EAE87EFB021D7411C3EDB94244 B0CA3175A510A034C971FB1E0D4BA0042A777AD11B3563288E865C38D840A16D 980867837CF7FBAE1921692F3CB62A89F00CA36D0B37F7BA240104063443EF9D 7B2909DB0590413C9DDC4D17A84D96B20368D4C7311EA243019B2DEEE516B237 CEF6FD990C7374FCC0988DEF889AB0F7160AF74351F758C0F6FEA6D19FE46FAC 777C4358DB743E9A75F962E779D7AC14BDA0F24AF0580B2621E7DFBD1F17FB82 2777E76C2D28B291777CB9A35A359216EEB97E53B18A4A54B5204ADFB24162D0 AFB32A39F98E053EBD8F16D34F9258F71CDA9E79AAA3616D37DD1D3E67683623 5CA0861E90E5322D91B67377CB18A1FD52A241D97019E10B7AC447AFA89CB9E5 EDDDB65D877F3EC613B6485B96819DBB7219C4CA79F7562699702552B634DA4A 9A860C3B91E00F6AAA9B5747427C7FBFC35B6FA607853B2490EF19AEA0AA826D 1C3FAFF112EC20BB38E2907A7194918D7B6647869A64E63E5F95A53270FD8E62 1120116AB4C81C1932894FC04A9FAD1C6531AFFBE13ADCF5A1BA1B77FA426CF2 624C0B89FE857A8AD5CECC9D8C711397B996D56ADA615D58C58CADC57A2D12D3 6D54CAFCD3C122A998A8B3D6433B348C4757B0F18128E4F748903150D0924092 B4E89EA543279072A7DBC384F1C0EF263A410A0A5D8E3FC2CDE3CB2CADB6C795 49DE6989DB8CA2E6505611869FAB0C30EC5CF467E1DE67088130A07C1DA3EB45 2F96D298775630AFD1B061CAA70AF94B47510962E91E990ED4F36B671EFA020D 27DC30DE493BC6C2F4204F25B395EB787B17C4355A1CE8C82B1E3557000281C4 0EC1BFEB6B123D1786082F7E85AE417A3D0FF02FF54C1B8C51E001003B1E8D1E 0E6288876C2DD4E79D06818F911E727EFE61ED7C48B0F9D65F506E56484CFC0B E8AA27284A5C2AAA6CCBE07F262BD5FDB7F7E772DA03589D4D8065E4FCC07345 9899667210BF60478E29A0269A333CA204E5D80A4047710E50341119EE678814 708C723054BFF8C9AE5A3853BC1D488E5BEABB9327D8B0187CC87BFB523A527B 7E8FC4235C7ED87783117684CBA345CB72B086A48638BFB42CB8071B25802F85 5AC6E2BA30C4CDF9A3ABBC214C731B85863463B66AA62A116184C6C5B704B274 E5BB838B87AADF18B1E2FC18730FD060386E2B3FBD0728D91F32B139A2A6701E BB357C08117EF462F35A88D83AD991623645C99649B71BA43F980020F083A04A 68B73340A5E7BC031B3C6B4DABDCE116723618BBD0D679EF696FAA926FD98A1B 8DFF2E6B0DB9C981D8929CC4D58B29EF3FA42BFDDE098D6E927A6CFF7D23E6B1 CBE20D4FDFA801C9EFA26F95873A476F7881D6333B07B035520A5DDB3FF06C9E 8032E4C92DE119E28BE4CD95BDC388BF86BC6F4FF083DF0A883D5D0AD266AFE6 C90328641435BE99DED5563CFAC92EC37D4C41EA1754A222802E54162EED9745 2AECBC8F94FE6942AF06A3B25F02D3C221540B31BAFC4A4496995A94BC75FDDD 19474F20574D7C037F8329639C6F159BBBE9A7EEA3E9E1F6BD250B5874842F68 C92DA119BD780F9188C537702C98C69800F9797A4F931BFB16E400661AB2D495 437176290ED6314D0643C65F71421C405D78C1E2A438F3B2DFD4941066FB6E13 782C5C0004C86A18B502D82C2BAD0B5F96E7867482FD35BB6E5D119C3065E464 1667E3892DE4666CF5F95ED74C4AFCFC05F53B4C44B5C246392D9310AC486AD9 4A9B7A7F52C1EF0BAB16DD89DA3C74A705CA1F65E78BEEB18F30771382D22C35 1FF01E562DAF56640E5A6845F1BED0EEA915C8E476DA4B7C3AD1059F59C5DACD 729608CE8AAF3A48C728305206269C920CF3D64F952CF68A50A756DB58C1DB8F 222EFDDF2C4B915D4EEBE9B5B73BC206B42402DD001691BA63C29C3A6175F580 B43EDCDF27B191A6D35CF856DCBF06B9A654CAFCE39B301A78FCE233A82D9998 181FEDA48B197B121CFA00032C1C4606D12AF442BD75757F4A197CA5415D1C28 3291A5277FDE08343F8598A45AD45509FC38B0D2567DB2F14A00DF57CFBB012A 4BB5176371FBD2274998431706DEA70C000FC01C0A2C05D20137D6B30779C4E3 1695A336BA62C2CA631321596201F40E68AFE2F77E6B63398ABEF390E8467F8A 8FE31DC0D45D362AF29BD95DC99650FEFBBFEF27CF578407C44D217B65A23512 D71E9EDE844188747106C69F6F0D6557921404D59C70839111EA5DFD95DAF1BB 02BEE66645270FFC2D203883276FFF3953D0939FB976D49643990B0FD808D09F 8031199030B4A8DA999047EDD7D4E25ECA50FE1EA79888F79044900A813194DD 1E59DA20A8EBA24D07BB94EE08EB48243F736DD7727625AC4B7DA3738F2680E3 E84A33C3174590D5B0C8F59F74E4D3210FCA39C1683C10221651BEC8BB98D970 6B96D936B7A7CB7CC584AC196F341FA3A5208DDA4C60AD2CF91E2443F0B1AA4B E2D3B69FBA352112F9143D273939DD77097384F1D7A3DF8759F3AE025F314BDC 5623F03E90513D07930F5457D0C01F04692076ECE78C254B8737035394FB352B 7356EA857D6849F017BA8CC06CE2B1D1330D163CF0F0CE82832B010A4F79DAD8 D22F960F9C8C5818D7ADD993E1360E9C0E3FD137DFE3F0185CA904614DA48B1D 8E40D824DD8B76A512D078AE2FA500D1387AAD73E7C0220D844E38A106173152 053367122FF047097E042AF6D418F2A59498FBDB71B1CB3F6FFF8EB6A4B80EC4 074A2DA43ACC97D99BFAEFDDE6DC664B31652A8E228796299F7BBC7ECEFF328B EA62DCB01FBDAB0736A8B1F9F6B7477EAAF0EC161CD2C4EC1561CD4EBC1CC4BA 246269B6FF273321E813E7E86FDD3101BDDE477F1089F1F12EB4BA5BF6E400F8 E6B1CEA1FF547FE80F02ACA3AB937D8C06F65F6E3B5D3F29D356DC2169FD0927 6AEBE37600FE4B4FA2D0E0E964C21D8865A20F2216428F6D57C4F0B4C145FC7A 03C8A0F37E56668321226DF5AE8CAF1E39427B7572E8002E6B9B3FE408F50DC3 EA2B2E704173D210980D114D60746A73D2AD9C75C5D91DDA58C37082B2C59C0A D644451244ED68415B0BA8418B1646E70C119652606D4FB43109357A1C23F48E 6C18F24F8469091160DFD4AE7B43EEC3DF360EEB4FD6D51A4B3291F2185ED8B9 498269FE4FCB852588C5298471B97BF0313D2405BC4A7C2D53B6DB3825AB1B13 3D7BD6BDAA8BAC3FF70DFD0B03969BA51F8CC3096C0FB2EBDC0ECCFDB82AC436 EE5EF45D9745A5B7501D1E708F72AEC944F37C466F03FA96A3C9C4C55FC66752 FAA109A708BD7DD73AB6F7E6F165A1157C7D1FE0AC6A66A56CB8E6C841EE9711 F5F0538FF8F37B8810E2D7051C4AA45D2F0BFC9BCBF443EB665F8EE674E07637 F0BA8054761902DA6EE925B3141F5D9F5BC97840EBD7706AA506C680C178D66F 24690263BCE010820AD0E2B707906E9B21CE33926ED6DABA6014187C8BF2934A A97CEBFCFAEC0A7568FCDCFAFC36D0605470D53C03755B4E3A2CB97056D441B7 9666A5BE883137B9BBE02BB81DB50FA39FAB8F656C700AFD46F3601349EF7BCA 244F442411E096D44CA34B00B0F3D7F324B135463BB7D398954D5DF055CFE159 7A2291C6A20594D080499A4022C1D3BEB3AA57AFA4C4C22FAFF18600AE339091 42C52820F442BD75757F4A197CA5415D1C2831EFFE61BDD3E513AA01CE0943FE 5EECAA1A322058D6823DC628CBA7E7AD17ABD8F8863BEE09D0BA15EF2147B5F6 CDCE2CA7DDEB4ECE97D03C016DAF6405C9F6D17EDD30DCA5647DD5B8D2A2CB03 332545FEAC295D1378243A8B019ACF3E18A8BA532BD69AAA75EC04C11ECB017C 724DE96BE736EE4ED2A05327FA346BDAFFE0FFB7EA5BCA52B690F32C3D38B6EE 610FD76759AC582905C13E64F186F6B2D41ABEDD9EF275835E8856E8DFA662D3 8917CAF5511820BCB2E11A6248C073948010E8C06AA564E6A6EE8E3C008C73EF AB9FD862702190EEFC4A2AC6D18498799AEBA0DDE45DAFD813BC5D248569054F 42FDE48AEE29B3BA431C40AFE03E14C9CDDFCF5EB39E92DFA740A4A13149C62D DAA700860622641F104F43CE14301A6E98311D98FC4E9A9BFC33F4366C494E56 1534BD337670DAC8119014149A54F4FC6144D250E355EC0CA9C24261DA7A42EC C9337359272C8E71BB392A3BACDCBB2F74E04A36147CB948C7BAF9F6EFF91D05 E547FE2944354AE3289695B4B85CE075FA11C29AC905057A9D48617928601320 D89619CBB7D41ED979314FC5EB6E07B6A326B4A665E0EE1FB1F677356CFB9320 6C9011D552ABAC54FE402799EF217ACCCFCAD28D18DA6369EA5C4EECC58FC964 2DE6935F81AE1138FB78A0042C6E3B474AAF7C39771687A4BC7BB2FB2F403BEF 0F4E803F9E6774BAF1240F85747282757A45DE4749B2DDDC4745442FB7EB6E6C BFFA227351AA00C9010D6719D3F0F2903EFF7D2D1DD750D98A232155513A7910 0212026BA719D51A1A293F59097005B997BE419479C34401757B2C537F5F727E 6A590CB4B75F15BE883C519B669C8B55461A569E7CA5D7F57099D33BB1398E8A 53FFE7F6E79CA21ABD610F5F1B9ABFAAB5ED231DA4F98FE7FA75593990D402F2 CC074A2DA4C9F50FECD5B7243F2F67C8303F88931E1ACE7B0BDD9C038315FEBF A978A6810A61EB6993DB6F81CD1BBC4A234FDFFE499FF1F8627303F73673031B 4DBDE4D8C863BA7E7CCA02BDCF20465A9A6074314CB5B5554D65C1DE31E4E520 360DCB5829CB45EB3ECD13CA15FE9A0D6AB575A0172DB724600C738ACE31FCEF AEC3C7E98C614BF0BCF9866C369A2766069705A255B6EA942E2E9BF901ABD504 381580672C4364A7F412D22B7EC34D9A948F82C10B882C9480936298FED62117 99886BC9916C1784C1C6AF01AEB09E681B73FF253816D558EA698ED6F5D452B4 F8386AB01A63148D2509E181A76C3A5E617E8418B80F1FA8EDFCA23FAAA0DDCB 7BEB5D5BC5FF01DCAA00EF7FC202D53F2BCB7689293B60E92CEF06DE91E01A81 127A23EFB3747FE9E1829946B2D773960BA2286A9C39EC6824B79081E235D371 60CEBFE811C783288F1442FCCAEA13A647A859304A94AEB98724D1F7A20D224A 5D18C0685C4C239A13D63FBDC3A43CF4C21CA4EE0737E3CF123E9EC3F718549A BC0CCCE926DA7C58CF0B1C062891E41B764F5A2C2DB9C1DBA454715F40D6FE9A 1972B05D95D181651ED7CAA11E497FC1561D95CBC773DF672290850F8C9C96E5 B86FDB5905C062B4B1C5AD1018E8D0497B01326458BB04A3D328B3035B50403C D133DB8BAEBD6FA61040FEA8D056FDDF043D9CBB85D27B546F6CA95901A3B9F7 44922C96B03981E84C6CFF7F7E08CCE193B2CB7E17870237844B37DA72C89267 0AE62ED53D8BB32D2068A410C687B10E9F33D64E2AA39420ED13161D2DBFCB6C 3064862D6306E829BDD01755D994D33B6D3D00B4037275DC45336899173664CC EEE58CCE0F00922DAE775C937D2304F159A55AAB1A1FF32B97592CD4EAC13AD0 FB41621DA59274E66E1242CD5CBC5939D385C61B834C590F8E4173277F326C9A 6A78ECE76B6D37F773645217862935FC23EA8D373C18D4CFA870C5E2B504C332 E87C00B567A5BB7F623FDD979B7502AFACA3012E8C665E623FFEEFDB4EED80E8 DC002FF9EBA1720A099039218FCCEE7430FAAD05336F29D2A9AF605F1B0C28BF 73D531853919A075D456790E9E287F90C9F219B2CC09292088F3BB4B6E6ABD05 01A8B73839CB6B53C90378DAE00A8F794FAF779FC5ADFE7F662A2C25642AFC31 CFD2D9CB5862459F8E3F1EE6FD45E62CDE80C098C88C2F75FC04786551BD4DE2 039D23E695AEFDD18B97194220701DA896AB6746DA05FF6867326348B39EA93D A1CBC6559ED8485D9CACB0AC243356B0576C77BD92853F6214379E023F546D55 40EC8CF04587144B81AC5D948508E511C1B1B22494E032328AA5680B6EE48708 7C718F0CB4E2D36A93BA8811855A710E154FF959717DB2BC619A5564113DD542 A906101CF33BB3AD6C0439B4AC01E02F8B6026FA2720EBCAF9AB29C119533828 8F68673163E893E933223C01A54685DE42555463C9E5CA41199E16D8DEB6A74B 3C93029B307110D29A101F67C6D0C00AF28B69F1775264FC3D6D1F580985EFA0 705CD8E5A8969E9A7EE73F7A97AF452BD10F9832D36BDDA1EDC36F614783BBD4 5A09A4192FDEAEFB769E6FCB7F651CFDB5421836E720F06CA6C4BAB4A8EFED58 06E4685A9E0B402A42887014297336EE48E915BEB59F2E6BEC10D5025B873442 A9C3B235698B4E46D5BAEFA6671468FA3DFF7E85E9D0DB80F1D2DC35B97DD0E7 FA560EA43BE3E195EF6A8A52EC9E1928416D6766884A4C324946B651FA3B4EF8 3C91929A58B0EFDEB650A2FCFE048D4D82DBE85CCA8F46AC213AA762AC8996BC 4F7EA664F49C5E5D31B92FA7521C51CC15B70BBA5A941960BDBE73A0C45E8D9E 41F0C3C7C00970D6C3CE1818587EBB540F89599454E478935BDFD2126D597660 A4FB7C877195546CB009E2579F859D06487C00E737D935D018D12315B3296A69 4265FD8BDA445E2C9D1BA9AC85DAF6344BC9322AF4AF319DDD7BF8066EED67E4 FFC45B46889CC72D8BE6731BF0BA66CD92BCB24CD11EDDF94487412448D69EA6 30258E12FE8241B9562C9375738239B09A7C74370E8D33286E47718A3D1B4BEA 4C6BD64CCFEE82AA6C0254D8A2150555989874F7CEF71D04FB375CFB0BDD4067 831B627462C96FF632E965A1198310F31FABC0F20E109FAA5E2FBAD2FD24B4DE BAFEAFFFB33A669A31C4484694FE13F96DB064E5365FAB8B7C3167E3A8EB5089 E0FDF551CE837E17D0CA1945A0EE91F97DAED71E308FFF7A43D80E126EADF2F5 CF758A791720F81CC1C9EA5671194543D25442A9E074F735218322038503317E 55E14766FF50AE52EA499416F8DA827912675BDFB24CEDAFCD2959488CBC61C6 6EE26354A1D942D518336C129B81F979492BB29B0FE42D9C483695B50132D05F 7ABCB49847C80FEF92724AEA421CD00A8E60904F5C8BA4C5A609BC9CB6E00DFB 016244822AF14436BBFE1E076A642E1E259610C5F7F78B1E7793C5B4EF26D344 8C81760A70A16CC54E04C93DAD59DBB10A3D5BC20F193696E93F9CB8AA3BA932 67DF48628F7F734C336B1433B71316C49ACA988BFCAAE50561FEC2C5481A6506 D626F17688C476D5690E524D3B4555EE5FE7E97D6454A6E0EA946E09E21D3E05 C9FDC148DBAAA3F9C0C55534007552EF23FC0F179E37AF4B9A005723FA4B747E 49FCBA527AD26BC0965A9290CD951AEA7984BB4D615FCCB6D7233A7DF0071A33 5367BF9F9A3903FF30A54693122D2B1744A87D1397CA62F920208A1B6DC46C89 24DDBA7834E43EC571DE47FAE893B498C0BDE39316A254317D08F08DF679377A 6BEB4DB71521D54D9F5441793D6CEF21A1543869D482E93D562616523D16BA6C C4D93D25B87D8E12ABDFFAA666E974A31C120F544CDA6B3520DAE98156D19436 86279F627558452F27DBF7B902AF0C6CB4B25F09C20652F8EDEFC1AB04456C74 9236E72ADAB673224C9310E078C21E085D8ED83C8C940CAAE2A5C7AF7E30698B 7746F016B10DBB0CC0FDBF58E2B138EDB997EF2CA228E7458B84AD7C0517C9AA 044F034DACD4C74E89BD6E13DB3FFD76C9FC5DB803BF5D764AB8B7BADAEF09EC 058831294973E54BA29F40E6D1560840E03FEEFB67616C2F62BB5F5518CF30ED 6B24234B19EB4D6715FD89DE99EE0184CBE8B067E1ED6F8A477AF9B472EB29DA 6C14943B5FBAB5EDB845A8BAC501417860DD0AC4A937495E8E21EA3439024973 27BCBCAEA48F1D0828BA7AAF4E3BB4B537EE111DFDD64A01F7A944EA2CA80C45 62E00ABF67D6EC1B5FF48265A49A6BED8BC3119CD5924563E4AFBDFD5EA39ED9 1DD70C14D0B004CB18D8114498C930EFAE25F1B8C5A03DA6E452AA8096856DEE EEC6585C9F8655B362DF7ACFF81B0C173F829C94540BD5AB91E52EFBC80D2EB4 D2AC1C5E07171D095F557A28B04EE9F6256665AEAC431D0360046C2495BDD0E5 0A2EE3D59FB8417AB289D4F4B59817B18888C2EC17108513E31657926EB2EFD6 CB0B3693349467F622DAEB696DA8B59E1B99193F3BB9633DD49AF654D25D6591 0F030591CBE269438F085F1E9EBDD0E1098ECA0E16DB46D3C2CE4CB7EE129F7E C241FE83ED18465A9094D1AEF5B78DB4239F87723642EAC9B2DBEEB656EB2F26 7A92F846B34F75198212E2A8EC78C70B247ED277A8B62039D0FA908F7BF2EF8F 1A313A00EC33A422CA91871D50E2EF946935C376790D2D0FF4CDD2C80D70DB80 630A481E55CA6B25C5AE3A38FEF4F78A716FB2E653D493C042E328B3D4698C72 80DFB36F055FED41C0EF2451CEB3BA71755B1996ECEF96CEAB9867F472F090CE 661112D8841158B88024CBF1D800DF14134F10F147E0B0A784FFE6C736BCBE7C 95135F140B0711C30CDF2FE92A9FBB8F075DDDF1D9A6E37247A240A298403846 85C1077E0917AB8E7CBB828D33415872E6781A9E1F64D1F5DBCE606795E35E79 CA93D6B0475F92EB358C2574DB7D587E577A149BE7F6AA48C3A54C3AAB7C5D00 AC8B23892F4CE78148EA87F19F94ED89704F29E657C77754D4B053C2279246F0 72960A73C5252CC2F55F272A94700D10F23C6CEF5211657566E31268F1CB6435 A67DC3235CBFCEBFD81E3F45AFBC92357F5F32B2E11334F0A0C6C60FED83280E 92EC546C02652223307E7305F1D22A0F4D05CEE1A48E0DE422ABC39A2E76DB40 35936B5DB6960E22E6C7E4A4EDCD33D61408643A4A935A19C66B30A95AF23962 A893861904FE94D55375C83DDFBC81D8259567B33D2F366E2B1459BF8194C8E0 2DFEB15A4B1B8E62789C68C65E4E7251CF0F310F5F9156270D1D95C8B2A034EE 3FC43E1AE990A602F26A761B9592C57010E5FBEF44C0F04C89885926DFD9B7A2 4986D2FADECC0F62DB4B012BA7CCDC0FB98A3C3B8F078FF5DDAF2E863C62FB0C 797EF8ADC0BD7593D3F7AA2C91425965BC22CC523F765440816AA13D01051FC8 2D14DD3C48739EC465E342C23759E45F4FEBB4B38050CF460198D1C46F9BD382 491C71CBE18FC355EF698ECBCF2FC57B5499D7389568291C2623FCB30E84C761 735FA1CC976264743F44A51B44A053519D841E05A054153195963FD1DF021964 2C08B97505F6E33A23C17EFCB499A8C9A9C9510F308B458C3FF87889B2AAC6D3 3A695C46818B684CF4BED62A2B47837744C9AA6374E53057F9C008072BE14D61 34245C2BA1D7521CF6949CBD8475CF2510F62CACB3905225BC8A49F418E1A0DF 6F3EDE0A58A5C81B039E6C0DEEB81EB20C9DD9203F8D0DA17F63A59B44960274 86FC361F05917BB4E7E0112091E8FCF1481509EACF24951FF49D6AF9174BD287 6151FDFFCE854A789E13E17DCFFDCBF5C5F69F4F33DC95A7B79FA7A98C2763F0 DF0E53FA048819C1B4F89751C69F0156F1F5485BB8620B2CF800C8099AAFDA12 E89D6BF3802CC7E86CBE86386FAF3F8F878563647AE5C8E5667A7AD028BB0846 4EB7D26DB80BE7E3FF8708FBE5A7BD54F7057722CE48C00DB769DFB60B53318E D126E53805AB0AB779E29A6431604CD4F460BB200701843667D54F413BFE0848 338708F4DF5E032494E6EC7BCB33E0C8863FF6ABDF03B6FE85A926A33F9F52E8 4F41E9CC49974F0A2ACA2751E8EE9AA0292782642836575C4CFA2DF76E44B63E EEBFDA560E252D354C1126DE246FF1935A85F1828503CAF58F342E62189C73B9 CD189873378FD2FC08E3586C088F7E56FC636843D3604CE05FA0ED003C58195D 04F9763B005720368A7E60E2B812DA27FF9203D8525D8E6348B1E764C177190D 15787903D19D607CF04B291FCDDF248F5095AAE3FF3DDF0886530009FA0C969D AB6A82AC70672B32746F2317FFAF294F9C352CDF3028EB7A1D2442EF48E8ACF9 6386AB4E850552D2196222437D0176F496AD7B8DA2BD2C10A9FAC9B766E06C8B 4D37E02C1A19A1DA42A0FF209E8230029062126D06D0A86AEC4B777DB2334DA6 1D3D5F8F458A42D6E00E8A375FBCD6DDE6BC7F96F73078B0A60AE7BA4F8343EA 75C216B4E3E8E9FA9891EB87B18395A4AF11AB7BDAA3628C9B0AA300B3845B26 D3C00EED67A218D46EA1579FB6F4252A00BB1CDEA2AA458C75EF526194E195EA 7D22238E80FF1145E994799B6B09E578340854ACCDB73EE44DFD89FECD714B68 A9E2BF089C81C15AFC61A3EAD1822D89A7C79C2849993314879CD86B447449DA 42DF52ED813D6A8F06B186A92C83E1DE757FD3C426FE605CF701B31E0C42E69D 9BA018CE2B2CE1CC90D541C12CEBB5A3FCBAD861657411619329631DA3868AA2 F5064A0BD8C53C7DE1095765CCF31E14A659600650932E54BE81718429BBC88C 9383E1D2094916D1DDB89707B0AE12193CB6207DD996A1F3ADC54A1C019DF330 844D62CE56C1B7D47BDAD1D79F73BEF6E3FE85909E2DDDFE7B7601DDD3B373EF 9F4749E090ADA5F70E76D6C8B7FAE076C951ED11D5186816871F437CB17A2633 30152C6AB96C0BDD3B93C31BC7EE42A921277D66B89FB9E6CEDAC29A297848EF A563BFCDE3952279CA658289230BD3FD8BCAF47CEAEABE0F8D30625607E5D941 F58007F45FE66151258369930A329A23D98DD7C2CFD2CA1658F4437E4D37A424 5760F7F14237AFCC1E7A196CE404B421FEDFC086DCDEB440DEF233A33B686AFA 298827735B5FF1BF29A54FFE0D12DEE80A0DE96EABE4110EDE6CDB19317F0D3E 29F0E729530A3B24390EF1190EA774920F9DA738901C45159884EA11A7B571B3 03723BAD9C05D96899B487EA0C8F159F3467FCEE161869FEBB4A388DEFAD2213 0D9F10B16A58AF3EC3AE260C47763919174688333A117200677BDBC5F8BCAF76 702DEF5012B47835A09FC2DFD15C7D409EE03A0D223D2C08F150A0409D7F342D AA753E3AEC062776C406BB2C2028A3D5A9AF9DBC596FAF7D184A7AB3E02EFE49 2C8512545B53F932F9BE7F887CC70F8FA98DB759AABC2613019FD497B1C56E94 9087434F10494DB7F3175853BF07B99F796FAF2B3DB02BF501D2DFCA4B641939 26807EF4BC29B2954F15C76E241282141DEBB64173D17C29BEE88594083BB4F5 78E837FEF512B176040A597ECD941AFFA10FE68DF849CB3716AEFACF254E9496 3680E1B93FBCCCF47D1F13CBDBB46B900FA3E99F4D756A304B1647B80E61E8CB 564060686D59A0B10FFD58690D8213E1C8F12A2A780602D706008CBDCB8F236D 6E60C1626A3EDCA6D1D3CC2A6151CEF2B2A143E3BA140076B288378660AD1926 8FC6253898B0B536BD929E530B647885B31C77871C552E48E8AED95D47F02A38 FD24239BCBF1CE140D4895F56C1B1D3E08052C82FF723A7C8064A894BC7FB843 B392C78714F0FAE07493BE46034714BAA466842D93F1900019EA80A58FE34DAC 4422912BDD9A6DD9CC296CA934B7C4B2C074445B62B8A20010D2D5D1D6076FE7 7A39A9146D4C24C219B3B153C645DE761AEC9BCA9FD697C9EFBC09EFEA7A00BF 027F4F574CDCE68D29FA972298486D1C117355C09AC44E49E43AC2C770B01736 EBED2D5500DD915AC6B6391809634C843F3708218597635DE7E71A75F812E3E7 D1CA3DA18541D61FF75CDE935554292CB8F8124B87D907B94F9C5A15BCD8F4D1 8C04E55AAFE32B01BDE193036E076C21072C9FCC821E56FA17041057EE35E2A9 66B26AE6EE2AFA64FA3156F46A7507FD87A7F2E081CBB499A14F9A6E349E8382 7D1B25EBB9170C1356A7428F4A1B31F389D527DF41902C7EE94C4FEFDD096A21 2DC199FABB06AED79DDE98A9FD2186BAA9111F55A205717688870EAD8048CD66 824BE522E6C5538EEB1DCEE51F11C9654E861157A38EA032C7542F0C9E2BE8ED EF8BD6AA2C42B18DD6294FF78411C8A8C0F884890C8CBA91E4B7539FEBA15157 3535372FCCE893134C5D6780C580F3DA16727C50F85030F28B636F4203F041F5 95EE6111CDEC7F04539F5838F40EBAF80EE8C9E3ECDBE8E704CD435609312E2C 60112BAF6C9410C02AC1620A2CE86515DEF25A404D95275A1E3ADD267C43A951 5049BC9CEE11CC9287E5FFA3E66AF56D3EC9C8681B2937E23DA62004AC89BC5F 336F3D267503CCD4D55C9648E046C4DF3C9DEE56BDBCD8DD0FAF06E5020B8A2D 3678A7C08F39FFA155B666336066942657D736EAAA9CAED24C658EE9AA2442CD F410678835848E1DEDBAEA5B141067C5663319AAA8AAA5047EEFA300BC475316 70A8102A2B218889023C0961C6AA3BC4650DECA0B10DE19DC1BBE2F1323252C1 70854B332AF59DC2FEB13E324447E6A1E8B3430E4C6D17299B1AB70FD682E11B 3A6E35F6B06924DC56241999CB62D60838AB641B70FF738BD966319EBD12B31D 1E5D60A4ABDB7525062BCCDA713C21A0F99E1DAE8DF684690B4AE0771EE5FB89 5DE076BF9C0DD3576407BDB1ED9F8D626B2863DC9132EC439F9FE44FC144E49A 4157300B5C696FF3AD4BEE0D9897E92BBC73CC0501BA1D372CC87645F0E7E58D 12388DE25F204FE00066DB46845097AAB921CB9EE660CB8A46318AC540D5E45C 11D3B417E7C37DF43206E84F632D16715F89DC59D105A35D06C8D1B50167840F 1C5A659D7A5258BD7455846EEF9325F0D4A22CA89629ABD43803B380E6BABE8B B2A4E56693129F5B734F95478B736CAC26A6402FEE5F2D3193E776EF39C53FF2 BD8DFD3C897AB40E3D89391AD0FE732E5501E3827F5BCD5D5D573E342B44A60E 377D86042B842A843A7CEF9FF32322D4B2195AE47EDED41E4F9B21C9308EED19 14B2E324BEAC0FB770BD927632DC56D1EB225012D3A358696C8F00B2B81CA788 EB7813DD84EDF164F328B47226F9F5CF0B6B8A86F2C67E007540949C963376C5 196F0CDEA9581564C9F82779AEF101275BF940DFEEB47C66F225F9C02092ECC0 E315A8BB7D0E414EC087CDF1318E79B28F60D794BB9FB451E0ADBD7E505A15C0 D2C4EAF47FBE9735A7EB85C388A6F4021FAA4C49B3490F1440B704BB52F59EB9 957D8945591842AD2A5DD1737413F091C02CEFFFCD929A84909C3A27C2BDD066 6450080311E313A07654551ECE14F8F4F83720C68FAB00CBC80520CABF406EAD A6D4303071C858B7F377F5ECA5BAEB8F8936362E84B62D61944D6D4237819699 7DE3664C326C6F81D9B7A92454F0B130EE46A4CD7F014A2738AD5EB1A0BDB875 5C6AEF081E3D97836B5C243022E03C7F7190C4AC3B912ABA87C32F73A8F58994 ED8AEC6EB254809655C307C3DE08B6AA330214E1479C56318BB943D95442C08C 41FC8585C818D23F4C9DEB81F45C755831CB0EEB54FFE7BE7C77B42796CD71EC 24300A50B309EAD2AA0BED7088BD0F11675AC1E12BC5E4DAAEA0194CEA0CAE79 A5F57E42CC0EB31DD704D534AD684675F77890196B695FE66B183E3B77EBA3E7 EB766ED531FE6F21C798D531567E54320CA3F220C8B2C5EDA4758C3FC3536B99 A53E14399E23DFD9CD7AA211F42ECE4EA1024F86223907CE651BF8F1DA2922C1 BD2A60BA5062A2159714D0368EE915AD06092D17FCEA884E6D4F163790523AF4 0FF53E3E4CC49F1D2E7EBA74A78948CC427CD6E40F1AAEB5FF4B1E25DE9A491E D394D0D041BEC4733020E1396E29E40CF82F1A9B7E91BC79AC55A61029DF8683 683A4C3407D76FFB0739874C6A5127F2F74DD1D688304A6F6A64BEFBF045C068 4F994C45199AB4C23D0884AD1811B2BB851F795DFC2D9B7C54A1F94261E6268E 9120F8087F4F798E332ECE23DCAFA8AFE54459057B72BAC59C0AD6E20DB43BBD FAB0A4FC45E52517A98F3A3671FF52CAF67F1AF1DE9F450DBE0934FDB60D9CC0 4371A7C5C473D76B550694620EB5EB78414083209438A729D227368EBE20E059 C36BA6381641894B5C94634ECAE829D667D26995F4C2D48A53424B2859786741 950EA31EEFE61D53D262AEA10F2C4222D0B306BC69B299E112F897BD1D4C9CB6 2A74755C65AD16618566E2F4EE80406F218887BE3B81C253EBF4AAD7D86F8CEA 7CA2EBD41EDBB3602DF5641EB45416BD6D2E31D6E770213B78212AF9FFC3D6D9 6802EC9C126966E31C15399CD06082615DD8C8805CD574CD06D9AFC64B19CB7A FD9CDF53226C488AF9508BADF636DE1BF3F2B784C1EFC08633AB9A2CF7928F9A CB4E5CFDB36BBB3A6D6887D45FE27BC011451C79C75111FFD6960D8E407DDAA3 9E47E8FFFD88D448189D35AC14DCC52B6BB78A357307BB623D670BE991D8CE96 FBF7919F51990929F9B2906709F1FBA7FE02BAC9D59E085A7CB4BBEA459346FE 1A8F8820CEF6B4429364AB0C977338B7ED6FADB38FEADC80E5A9D8BFED2D6790 7BCE23484758F27A70114A52123694349370FDE9CFC558C3F21EA70693BD51A4 CA7EE713034FD5DEB883CF08CDC06808904B41CAC4F03174FCB8C3C6847465E7 DC2A94E8FA2C2D7D2B73915A3E2E446648C660EA7500C8B9F2BB48347215E9AE BEB8EF7D05AF89DFC8114D439DCCCF08972B8C313BBD0F689E08E2F9E5BAA0CA DF50DDCF220751D4552A56086B99A624526DE652D528D92FBD2F553C5AC939C7 DF841228D09EFAA39A4D016BD56EE5B66DF1F1659ADA33D4D163D3ED1A3FECDB D9BA43B0C055513F688AF46315DDE7647D286E9ED2BE48F834F28D41EEC4A792 059D7975C9BFD97EDF8BA7E1ABF6020B388554E44E817C12133488AD49C7354E 9B5A981BC49232FED94293DDB6D0F250EDC3EC8CE198CCB7532438B07DD1FB74 A20455215007B0E1BEBB758BDB2FE3901284390D44CDD0D3995DB84F5E5E4F2C 9E02F204191A857693BB43E53F865E0C23C3FFC1272D7416562B1C7B67A3C13C 6EF200581CA8E9C1E859F88C4079E401CDF54352795C3A28843F30B7D0368D8D 9F14F84BF967C874986DA314C9B3905C7B8F92DA0223F525C4F0E6907DBCA350 3647DDBB460BEDDA8DA59466137B9FD87FC625B71DECE19AC3E0086D5C9DEF3B 6F3CA4E3F95164FC5DE9F6DF6E4A014B603060BAC2AAC05B203FC0D0118BD9CB 05303ED1922F63330B62E623F338697008FE367929B96B394C6AE5A0FE14AEA2 2E864FEED20C03C179364C741BE327A789C0CFBC7A5C1234D9082DF21362FDB9 0EAF69615A373CA4C5724AA94182F0CA8400A332F20BEB3F4301EDF57649A859 F76024C30EE78325935279A14D9D370C3BEBD8C794C2285A6FEC4E995BB4823F F87F60ABBCD77A3981FC2A0EDE5293745B1FFE2FA17238BE930F8461D0709D3F 3EE572A24FCFFAAF094A130760B16C9D7AA529748C8B1AD0F4EC9CF34587B8E2 25A139F10C7373A68D6C652F24F55CCAF41522462AB2CE8E6037B2F89EC428CA CD6CB386D884C5738C57EA8A2A4D3885686C6AABC614697E9AE8D0B787A8376F 11489F47A7E467F3CF41BA328EAC88C2E6E046B5D72B9ECB8565068D363A1A6B 92C9B92B9DC3273E62220AE9C392E6222588C3DC9D79C3CF9A4FC0D031F9C679 F901C0F9ECE7200529BA896C1F25BCD1D473CAA08860D451A4277ACBA508801A 9C167D19EBE3032EDAF1A3FA4ECB98D915D19FC67ED2C474004C1847E13213F0 27EE9951C245E53EDBC094C5E1C5241D3C1F3AF4AA526FF3598B29ECC194BF04 352FA3AF20C9DABC0A4149C8ECD44D81D225D1FE29B64810A29BC3B9B9921BB4 F44EC685235B0B85F3ABFB1BDB61933E93DC043D890A89E7E664FB8775D19E44 DE621FCEC69091F3F45646E4452ABB11137FB183204B6B992002FD365A4BCDA6 DFBE7E0DDAC7290744E7C96D3DCAC09FF3A7AB11DB453C282F7A0A42886BF882 8CB46883BD660FB2E4F41DB13E394DB2213C84C6B08C99851D4823F5709AD25C 732FD8A04D7EF7EC123C9251A9894E9FE82BD5DF712D62375F9E61CAAEC96140 1CA2DB7E5923BB9FBBEFF973AE3049EA50B238E739FC57FA0DE873544AC557A1 C2957F02C910CB4586A67C5281C4C0A6AEE269381C1C0BD20401E29D3AF07EF9 BF04C12C07EB07A7C7823E62184FF838618226A6BFF95E503DCB0F6892D94EC3 40BDD98AC6D896D8FC566D4B0B6EC7AF5A22A6B59777CA90558B47B701203152 200FB5418F855963C7FB02F3760935E53CA9DE044EAA3416E63C3FAC123EEC64 9D91E71B83F794008F8F66650E7800447D89E1042F0E1ADF8805AD6E6BE1CA77 900A26A6DB83A1C68B0B101D7905C428CE855C6828CA99757E07738C79394ED5 E292D99ADC238AE51939CBC42EF90D140EBEEFCB77D67574BD2D91404F79A517 61E791EE060A6786632392EF7CA3C3ADC154AE657DE0D5BB8D69E276A90F4F10 8DB5FA5CB1C3C5DA75BE40BB09E262824DBD5309F40593ECF45B07F360E008B0 BD46C65A934B590653815B6896D82156864DA1E0EF745C7C611E206D0A6C38B0 13A35551319D6CB027D0652504CA42253D948E4B79772EAB937CB1FDBE4C3457 723094D2CA407F969187FD11F1CCF6878B2BFA5B6EB1D6BCF16E6D0A1F6E8325 E27EDBF2352CDE85D89C009AE9CC6156C7E36ED78CCEF89404917D4776256117 8E6C00F05BB209C6B5EA322B0393904F200A9015C786F7EB6A456BF20D54CCBD 1552E76DCBA54374888E0AC4D65F5B387CFB9E8C1DF139D83667866939F70AA3 39E008E7C91A3F10E786F7E339ABDA1A7E6E961CD7B4DD26EADC65546955D785 217F45A329D197225433BCB8A5BFC7C29A8BE392459EDB395C1D82E62B4F7A17 F080121A6E1E92F7AC1C6E0EB49368EBD23B6F2382CB5D8F72BA58EE88B3FC40 29E2C6F6EBE8B6D062E28072C0A85C811E14056EA50A0C8F2A39A9F349085CCB 8830E51D462AB7FCC045232E27EF9A629D36F8FEA313C66928E01CF2EE5C6C2C 313C5BF6E815E3492AC57FFC4EDE2DC9840B8E74C07F367CDA026ED439FE35EF F5C3B992C9DCB08A1D81BEEBE158AF04B279CAD0D3A814948AB59FF365FCC6F8 DB1DD5227716DCEF985CF95C2928D8C98AEF4EFBC8405F30D0B5BE678EE75D43 EFF1133E4D93077B8990B5D15BD7677EAE501D56C9CF115F6B07E1FA6E57CCC3 B09AFA2DBB65663F1E7ABCD83A264334D9D4ACED2AA1C114E37D1C701AA9A8D5 B0990B00B3638C2B59DA6E1E9A6C29486348A8B1BE520C0706963D845742E7E8 5605C20F09FF51C505146360939CC6A24BB35DA85DECE62A11C6961060F7D88C C25D2A7CE10F7BC1D4A751E49EDA4DDDEBB12EB9BAF3109050B6EBE7FD403211 76FD5E60BAF02419412B64B0290B638C4BBECF13B971A4A5E51407D1B56F5969 365E14F3D8D8E106608134D3FAECB6E4A9827920F8C6B6A6AAFBEC294C061AC7 2E4E6494BDECA597AC628AC4E3AFF713DDB817F5AD7E8F7B7EA077A6677C72C0 A53EEAC64E34C64411BD2B20F8CB53B5D8845363DC3DDB9C60D4273A99B4F011 E603A3CA4CF6657B9364BF26238F0B666E7BD4CC662D5E5FEE962A7774ACE6BC CC28BA6C0B063FC0A444DBC0445636BC8BB85B08F82BD61397B291364D85DDD5 3C3383289F91B48A2609838256F8FD599CF77690719C6420E1224F9DE9FC7143 447969F3A403DA3C4C2FF3D852DAD09B887EF3CDBB47BAEAE607D009D7E53B44 0DA695C8A789F477751B731A206696BFECA9D3C2CD473548BA38567C952C3854 9F7A703D1A0ED56F03EA0B0AB2004D35AE18C134662AEDEA0C0120F368A93DB7 537D0148E8D5DC7884848181FCF1AB9223621E5B71F7ACF4917A6D140ED9EF5F 5543E8323D3079855AB0AB3528ABA3AE1101D0A69674780861AA3513ABB6FBD1 98787FABEE7C8677D0795E9BE021F76730E262036E7241A1A740190BECB10E93 15881E718E67184C3ACFED41E2AF4C473DD98B7339F81BD5A8DDF084E7B3DD09 C93AF741175D26F69664D2E0925D51B497187A1869AA0F365C8586A2806389B6 FE5FA29D5ADD6EFD8DE337CDE3315623B7D3495143E17EA1AE9D4E96359013CE D313CE2EE65775DE576460C11742FC50703812D800DC831810D4FB192891FFAB 192918A7C78CFA9562CB16C5B308D7F6865F87CF9368A7AA99658CAFF096407A C28ED4D5BD06BC2FD39A337ABD25E6756D39F3DAE1CE9948CAACA8BE0BB1366A AAD367ABACBEDEAAB372B8AFEA5897253D0327819914133A22423D93EF1024F7 8088199B6E7E1E9372745DB273E139B40CC3082B5A50CC19BB25F172E0CC1539 C883841477C0192D5AA7DBB071D8B0AF157E668F6C9DA4637906FF5649D6C18B 5116641814E6C24BF428657BFECADE03AE6C3299DE27B25FF3E6E324EB00FE5E 0CF5F8C507A167E8FEE6A50603622B4301B77CF0427D863857EB573DE1ACFAAC 18DDEE95FAE8970535261236E73732409B0726631E0573ECF79E88F6C21BB8DC 0F5DE381371A45641F8076324C485E0B413BCBD264148D5B215D4D6E54837BDB 4F3B280158657D11E388C8957EBC503E9AEB7FD93A4B632CE695493C12C7C2DD E6817FED9F8423D80D88FC3A421D5A852F6806E3D47F2C1134C0B725A6B66F81 DE4048DD38779DBCC030F72192927014767FF9FB620258C4BE9CF51941F123B5 C2BF9FF51C6760F231B71224C991E0375A557E42F83AB80968647F06CCCE010A F8AFC1BB1D95579CC715A984287CB0DB98F3D3A7F781F41149CB3F6A10CE641B BFC0BF14CE258C1B0A96AE7915E32094B47C3F8B349194725CECE9C5ABF25432 75A409511A83FBAD7FC50A0AFF9197F7D5D4AEDF8A2B3687BFAFFC40224C94A9 1457D02BD2503A6E5A16E214ABA46E594C8073F7BC399F2C8CDBDC9D025BB9B7 10900A785E0E52FFC9CAE8816EC664A9117CACADB092BBA6F169ED2296DE6AE9 49F3728DF5267235B9BA2D6A26105283F9EB6B02977D3E38D6FEAD32081E9EF9 C0C2B4BD38AE4A9674E6A5B3AF2BA3B6593DB2B986077E3CC87336C9E9D39203 D8FB55FDEF2C30FCB0BB1FF13D225CD9780F36D2F73BE30DD5FD857222C73D0A F811EEF35666394685121770A1319CBA4241972FEDBC73452E494A3BE5674C49 068212EC0195324D7768183C073F3E07AF8760B4E63D76500F173D98F3F50D16 2FA081996C36293948787ACAF5004792A09AAABB8EBCFC6C5DB29BD41B70949A 8603262A48748CA65F0445E253EB4F9E86344D695BEDCD424F9E69091C30DA09 D4D7F4E5DCC7EA4E91E60F192BB2E06CCDD3566CE659C96500275C77D062ECFC 6827BCFBC18514B95C773405FDD325A61366C8C79729696BD66B03D9243D0E77 D537CDC8361E5FF7F7A0DFAD4602993CB9EF1436A05477BCAB005134FE9ED6CF C4680FEBD6BA48E34CC5D67F9AD9862D668F1D1168D76FDE4FAF1715289A270A 8ADF7C463F865CE57EFE7BEB4F42D8F91D02CD8E16BF63DCC5164037FC521BF7 14974317E6F11E8F393CCF7C8C2BBC0FAEFC453C495187C3EF04014951FEEC40 41C54045FC120A5AD2F8F05212B6C3BA4A9B9CA94549A94E421EBF87EB005FA4 4F2739BD8105CD53FC041E22678CB7E5AED1CB2FFB77D6375FEDB276685BCBBB 825D292964299C9C587BE4A38F35D69272783D7DBCE43F72CB69A034E309488C CC0C4617034805C490372B84F5ADA77B522B63F13F9BDE0F2014AA4C12DC2A77 47537F85BEFC1BFBA4E821CDF0543BD78238D2728F0B3439593C9DBABFFC831F ABD8E12A9DCD10652C999D1753B9F29649B32327E4FF56C002D5C38157F15B68 C627F61FD9751FEE4E3626F15B34DAB59158491CA435FFDB0CBECB4F6743B936 EE4D0170754FE211897F676F4CA8DFAE983588D63F3A85C88FCB74407E359DC6 A0FB3DB51204AB0E322059DE1F5332AD99E4F4D2C54834FBC2968B7E03280AEB 23C2087ACE96C668EAC577216E37D8B1E3A9E1188CCD5210684AB8737C4EE859 AE4402633254F1DD0E1D2718CDC90AD60DB121FC09D09FC15DCF7EA4E778818A D9F87243690564F3A821C3A868E6AE821E6A0CA0DC884CD5526644B5D8EC6965 B7E470BF6B2A56C5610DC7A19322B9E499C935E704EDFC2D1C28BBEAE2D03F25 DB952B454F9638007596F1D4D6C9D436E5F6269901715376BE41E33DE9FB80E0 F8DED4AE50E82E68289C0316D88899D3B7C9A44A1271E89262454191790F5F34 463D405B56EC853A56591C77BE3CAB259698FF3CFC7E0FB49366D9822F62E53F 57B032818AFBC05DF050FEACA31972DD94280F15A259C37BF3F6B3EF9505EEF0 09D18614CFE6352A8907961CE59BD17A6F09E75FC6DF31682F8CA5669BAC90D1 7F208D77A0E4BBCF3B31C4B56EC7A2204C35D25D85F5EC61367E24814B260633 46FBA35A2F1C9DCC244833BAD72EBFE48B6EAB46D82F1E29993607E95D4BF0CB D3D4B9C2C34B3FA0AD38C2AB3097556515CEBE19E23DD4032727F2F7471CD5CA E8AA74221740BF2824FCF05CB7CE24A1D123B7FFC7E33A1B0998E7F21045C582 EC39B112ABE8FC498F3A86C9C313EF6A560770D02E7C6C9138A3E9069620653C 7FA5FAB2EEC762D3E19D83AD2C21B93C195B870AD8A4720BAE26F29B942FA697 DA67F425F90BEDE26536F7E854E8B86767045A9E1FD86472E7B4577CAC00D664 1B115AE984F12C8AEB975A8E5C8B1B7F614B432324CA02B7FCA157AD5EE0A0F9 D25406C8F33D066D30BA02F2AC5F1A0F40343DD15381A14C206D7F5B980C0BB9 8FF8B544351689CE6F735D5981C5C3FE7E93E773615EEA6BDF7BEDCAEB0B0C7F DC3D0009094910BBB8EAC87172299E921EB4FA5C3BFF26E786622F702326939B DF8B8F08CDB15094E6689671FFA5153B5514E916B39126660ECAA25296DD1198 FD48683A26A2630861AADBF28DE6A475CDB68733C510FE0BE4706F4239791D66 E1CD6D04DCE498D618AEC94250A17D5BEC08881998FF64231905D75451468995 F464403E17411BF1998F29A7016E49E4CCF46C01074400A946423673C2F88C77 4201920C41AC987AEA0D9B72891534D8A117B1D7E7B776C9593AB0177D918A6B 03DDF41A7AB24844A1F9277924BBFA5D860A493F8C38F279DFB3E3B3FB460860 FFE7C9709AF74164E4B3AEB21BD42049CD4C07A834128AA140B0DF8D402F72B1 A22AD439E4F96BFFB93CD9676B8AEB1EE3E24375789C038AA896B3BC743D6BB2 97C5BF050D6DCD167E42CC61BDEF0A14F6CD9E8DDF53E0CDA6248AF8A411BA9E 75EB3A3D9510C216632A1B9D401AC52588A3C6A4BA6461877912E10CC8C74182 FD057B5EAE2BED72A05FC47EC23FDC47DA431D030F3D89B2872B4EA0BEE8BAF0 11A7EECBF98CBC7A3D3FAAE31CE0DAA01203078F8CBCC79F1F00ABDEA0BB88C9 4FEB0CAE440F9D7435ACC0591EF7F1AF763EE58B64F45AC5EADF4BB4951E92BF E523C8A4D53841044CE94DBDF55098BAAE702B41C002B7934740D8D4D833C7DB 72057CC57BC14C5ABB7036400C0A184C95746603DFD855088E32F7EC93BB5A2C FFB76A0C9B24F5FBB9E5845B192CB16B0D0EE1466F00D5890D906FB81A495046 4C5040312ED4D1142B451496337ACC73C32C86752ECCEC0E8A3B699142E185E9 17950FD6F734FC8B4E7D72210A6F35BA9E00DCBF891B0BB591C05B14FD2D2F35 AAD0361F29E72CCA61C28F6C40489BC1D707FBD34CE1522A08BB4A1367B3E1AC 0D8216A9384C79A818AC2D4CEBD3B33FE5AA3DE75872F57DDD43A83063B667ED 025DBB2C81EED32D47E2220A53FB9EAC7538E5430E628EC0B94F8334D48C79F4 651FBFB9B090D894F5E9DC6E37B534851E6E2332651A4391A155716C677CD1B6 E43FBF1974309554D1648D613DAA1C50713C5E24C22F0DA5D386334D35250F9D 1BE4BEF6F7B32D1FBD8D57B03461EA77EC31FAE2494B2520DC61D7F31348AAA5 81302BD8BD9C925035843CB64350F5E255A4D8FE21D546E4F12C55C6A11680CC D88D16A35DC8ADA5137087C61C4009C22869268CF3AC3CF5596ED8514F1897D9 EDDF5108F9357DFD0F46C37860A05B8721393BC28A1ED5FD1BFA2486803E98E2 63C5DB0CE18075A82CF4A51572B1190E2AC4D20E4B7716D24F5ABED35FB72BE2 01D94130CDCA768F2365B8E7CC2880D27B8DA67F367AD6E45F8A0787FABD4149 7762B6F9491096E6B9F88DED2A4750AC94072E2829E582242A17BFE414EEE107 6AF35D6BC371D18A3D6059E5EC4018BE9203BDBBC0AF103062BFAC3D39D4B91F 11EF4C3BD38E534B86F35D190574BB99C9147957DB68AD4ADBFA44DCAD24FA41 349FB5ABDAAD23E27895D4B7CBE66D5B653210A2887B6FFB9CE202783A49CF41 E15CC1D795C329F859A5282D7DC4F5E5781CC100D4797EBBBCEF4D8E19B9C562 95C401BFA1274369658B4A457F749754A40164DAD48A26C0A95CA23E0FC1EDBA 827B75168B7C3C2F3CB58C9EA98BAE8FD903582A61F596E976774E7117E49910 33A43C4ACF1C7AC319AA7AB4AF4AF0E44905D282B07FEB6EBF3521483823BC65 6E03837175BD36BDBD0836FB204D6AAC2EE2F0CBA1289E7BC12D3B7E1EE7243F DCF9515848E841C08B0A71EF482EBFB280128D04DDA08D8427247B85241DCAB0 F9232FC21550682E27E0ED75D1F0D810116CFD3236927AF8AA1B0C33A0A1FCB1 49C971C867DDD5686BB29E3B276545CCEBB3D0CFC8E4F3518DC8E63A598A0104 4D9E4B47D28CCD0448A2C1CFA4EC4A23AF49DDB748ADA8E7A7F763B98495DD35 6F64AB61E60EF4FA53C97EB6696C6F4C524A80986932380327635CB4D8C3B96F A71E90C8010CC41EA25D6BDE9640834C0042622953407CDFB86606FF783EBD3F 5775E7BB8AA26EA2CC1E9BD904B9E00559B474E52DE1F6F9922F1C7F6C220E83 E441242CBB8FF917EA19FC1F8FC9EFCFAD271587BE46648692D82C7F0DA7D068 0AEF1E77E7F2B90D49452B59EDBF72191BA7C9FBBC3855049E3FC58FEBF215A3 1BA76A012DFF95BB9F8A4C772A0B9F1EBFB48D10E3FC2B42AC8F99A049B6A787 AEFCD9E7FA5D974D1590CA757D1F7E6B437A3529F278D31338985901B39C6087 D7CDC4CED206BDD903CD72610AC7EB19903E817E84AF4F9A31DC155D7B33BB2E 8FE92F57E401CC6F78D6AEF32C3222CE817B25E360D38979AB28391A143F9F6F B95CC9E1AB64131EDB0B60BF743E9950595AA34578A10B865C154C902A09528A 6DB9D118055C98C23ADE295AB96E3E3F4E536CC80CA688DF1A4F7FD1AB764295 36C224A3EBFF64F8552FEFF8E8A59D3EE2648B29B46605E8318D16CE8FF6616D C86FBE851942732E56E5B1C96768E689103622D84FDB771155B588C7928DD541 66957111F5A1928D585B0602FD525B49FC0C92C7467A4EF6B4E154D816D44993 B7345720A7EFCEB6CA6350EB5801F59569573EEC7D8501822DBBDEE4AD7ABFD3 4FFB60C74D8F84F6ACE08BB001C64249233FC4E97773F440150C9669C27CF642 67DE8D201B95F60E5632089B3943234746CDBF683CD1F4D992882B41917C9FD2 84F10A3CA0017258FFF83BD0017DE91EABDFF781189A8117B908BE44A41BB777 E26F90A1BC73A33713BDBCBC35CD774427E4424C3F38139EC3108AD83942398F 3CA883AF7DFECE62F29E3016D5BA003FD753A9B54CBC7D90628D4A06201FD7AB 5379BB2CF7C5DD53DE59EE6F2D2FBDDBB34FD774AC8065F9577449921CA8DEB5 0893824B89BCE682A1BBEA0DF544073D31BF092FE8631BDB92F9D0E26C412777 E4B4EE1B14D796ABE384CF93484EF8CEC9A633FC2D0D4FE4EC8AE751859B7F25 51675318BB03F01C33D9E48FCE28703FA86CB56D73AECB4924470D0449FE03F3 4311BF263BF48FB43C95EFFE5CB26E115A9C6EF252A1ADB82EB35AB43F8A20F2 459823F778C245CD1E297CBE55187F9EF3C11F3D1DC1237DEB51D338025753FB 282BAED4EA222960295174BB3C35BA53FFD02722B7D11EDBDAB38F7EF6FB41F9 88F7065D8A03D39540BC651CF9C5CCC38D571E5953EDE2AB024AAC422825B960 AFE91281ECB0E34C26E8AC141436882CCED4FBE8C360E283989F8A69B085AA35 4CC1CDAAC2E838856DB6526E888BDD67D768194DABDA4DEB715946C9C2114329 997B7F355E38DA1355F4F42690E39FE10A0CC7A4DF143F6FA34F68904D04274F CD15BBB449FA623D906A56C049BE83534867011692BE6BE1FAB22F64266EEDD8 D45EB4F83417DAD795FD655EA2AEF53550FBD156F9F6C7C1C0D6DF820883DF20 9EFCAC85E319D9B0970ECF8B8B1FDC5F81B9DBD2B420DF2F581ACF0A98FF616E 98F51E42239E1D6D1597E36360DFC074D92D218221F37BB4C3802FCE763D09DD A54009D6F166B39C46398CF9611B12D27AE9C8CD0EF47FEE99DFF08EB2D288B1 6A5CB236F8DEF13D5749CE504B3DF68FB1981A83D98AC0F345C36FDDAD9CDC95 976505773FB798D1FC397070B020F1CB2570CF89023755087CE61E6210E93DE1 2B3285A748C9CB1418DB43E541BF984E787E4FC3739F63D1FA54230C848168DB 6DBC036CCEC8F1A1152D53145A3D750C69EF724A1103F12E49E2F433931F4103 774A4CFBAADAAC96BBC03E6C24CEF81C7BF3C3EEBE3D1759DD7078C00101697A 88D473072840B75D3162EF526CC099A39692A5DB20CFB3DBFAE22744FDF39E33 7C9FDAE5D161915047DE3C4143CE4C2E2E435F3394BC9F67220DC69AEA57E1B5 B8D495C8B7785795E97D43C072A91F22437775AF2153500D21B942119F253F7B D586F423E711E6074BEF210C70884B1AB8C5E3CE56F00F954100B6EF8A2A0C12 CCCC0822700D1492C4B91A02BB4391DE8F4F2EB43FC52F841A138DBB90099B66 3AD9AB2F10A85A4B7B99DE5D216914225734A7FA61CFB105F3C076F04C47703D DC7C2A534D992DCE0912C2B0075DCE93C210953764C98022F586EC66B0997E5E 7BEAC9CE137D10944C810E51D6702B1D5BA1AB6E98DC58345D15DF093147DE95 8A6A335033F463B8F22D3CC5972BD9268903B1EA1A38EC9B5CEA9DD9EBF32286 DEC7326D4750E372C117BD963B0B7395B7B5943E95D5C599B1BFD354DBBF8941 C04C822586B911F2DED81759A53466A7E62409B0B8FF667E516F4D8ABAE3F7DB D2E2A1BAFDA7B1D6D54C582EA05EED320050737CA6A8B260669032FCFAF7777E 2A80CD8F23C59716039630BFCA77AD81F1F5F7ECCC679E0FCFDF7C0C7941786F 0E2E214CC711DA985AD53BDD7CF58DBF5FE71829ED5F955288D1086A03ECB842 025BD438AE409054F7A0452D685C9EEE22211C436743D4554511414EC414CE8B 659D5BC792763C6EDB05649D29B1B628D6F97818735AF6B2F0AEE04D09D0858A 3FD9CDF4CA0A84C7C99AEEE7D11B538D32343AEA026D18728BA17460AAE02AF4 FB9E22F4F4168DF02D39DE5824F0283D3F9ECD7427783897810924575C8340D0 2B4136058A7D746B3C297809A39E4DBA449EBB69D4981075B50402446FAAEBB2 DC55E732 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFBX1095 %!FontType1-1.0: SFBX1095 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecbx1095, tcbx1095, labx1095, lbbx1095, lcbx1095, rxbx1095. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Bold Extended) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Bold) def end readonly def /FontName /SFBX1095 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-227 -316 1723 930}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E4875AA0E2F461BA16EADB32842B6D00C76F8A3359BAB9 9CCDA63EAB4501FF88DF4CE0D9DC9F071B528726352196D1D889EC0F0512EAF1 A6ED201F5B8FD2B90DA9585F5B2004EC8159EB426405D76A85AA0ED1D29596CE FFD55DB52BF5C0325EB43E789D2128DE66E59F9A7C84CFF09969406DA529C87E 3410723FAC317F161388C55FBDC43B850230989AD991ADA95B1CDDC4D978E722 8BEB4E338C3EC48106B4274FD9FFC7CF03EF238D8160A515EA93C009A8F2D3B0 1CB8041F5EB86F1D975BF4EDDED8B7D2C81B665124CB1562B71114FA44449C6C 4DDCBBD36BC95B0E569A5A6EA9219B151426165BFEAA914437CA89EF4B0F5911 AC054509BA0102D462A183A29DFC304DF74A289A052531CF1C505EB94CAF245C 33DEF613E4F1B785DEC94402A2C46B2DD4FAE5DD176985E45A03D85E442D7D77 A7586ECE67CC2360820AC46A8CA0DE0852F2F3F7ABC9D4FDE78321A4B63ED2B0 AE51F2F1CBFAEB6FE8142B4877BBE69FE6D4FEFAB7E5A8A4B22803992910064A F998A0573C898D6EFC101CAE6E1FBEB97001A62893B76CDA3996BB92B7C2B8D8 F5C16CD2FBB4F8D9DDF27E66377E9BBA95CDFFFE02D05938F97D05AB348A74B9 1D39CA72320F8788593D99FE7CBBC69BE81D60CF58A584C366D2F5874A3CA93E 3D630E60D2D74E3CB14ABB6B38E8B409E1CAB8B8EB945BCF617A9FAD8D2C7410 219B73D6051C9AD48CA2ADE315A993BAF273005F4B13EC256471F1192BD4B8B4 B5B7698986E65AAC52D7FA913898B2DDB4BC6C2CC7F4521DCE96F7305994DC4E 8818A4619072461F746DEA0851A25A15B3FA2CE10B0DCDFCE81E848CC7B7B7D4 B4C3067243399657F7FD8227DE29E7E37CDC22DE9BB7BE6685FF502BB8325BC3 5F72EB2853B877FA40778E94543BCE349D3F6487B5374F2A0C1636DACD309FA2 0055557EA8DF883C90AB6B102B3ADAD3B23608F476A14E974DEF38A40616E2C9 413EF03D1B681495947416A78AEE38970CF110156DCC782BB609B464B790EC93 92F66CEF6C26A97692343EA6FEBC1391A91CC30424E57CDDA3D7A2035B13F8F3 6E818E4DD949200F9CC2DAC5D867E5D1DA4FE45BA45EDB6BC0509571EB2F465B E4EB59F3F56C6243B84BEE7156AA61FF86610BFE936952F5940181E21A29549C 7D748A38D39DE762650D35ACC35FFEFFB2ACCEDD68D067068FA870057EAF5693 ABE477D98879A2DC34209372C2F87AB4B76D7E03B03B9EFB35ECDD21C3DCA4E7 A39AB615F9507181590E126CED7225C94F55752CF013A08999DD504ADCFEF250 A1AEE073345844803F9E6774BAF1240F85747282757E981EA97AD1C68EF86B3E 728A64E1981C658099BD3466C25ACF8800501A3B3232AA055A290E9F234767CD 62AF33323B01FF00C621509B9F1AEC8F6AC22DD822E25449E88AF0774C1F63FC 325E404404B3CAADA00ACAA36B5FDC3D9ECEE2F49FEDAB490902D796340FCF9D B6CDE7CEF529A5187F7C3699464592574758249035E23B339EF9578FBA89B6C8 1ABFB5DDD866020027618E020AC137250A1D330CC174639E8419407826AAE3EB C4181757961B53B2D2CE4AEE652143FF85799661E8A2E4EFB162A0A172BA9ABC 971AFDB87661521E4C49CCB1D6CE47635601EF69F81D15CD377D310BC0674F5D 113689C1751DC635B8755151715519336A7D4E95C2B3D2B89D9CBBBEE36DB5BD F8E7E443981FAE71C8CB262A2C3E559E62B8A87DFD9C47E64BDB5963484697FA DF708D60DA76DDD8273EF555D70DA3CA329F6CC3FF5EBABD500FDE36BDFBE594 73A077190EFC3E05159E4C7EBC6E4A2B8D1D6FE49724DB54F70604FC21FF4EEC 44E35F294BFA233079AD5654B39D5DE77B5F7ABCBA19D3959214C260B05D426E B29A6A415AE04149B082DC068BCD3B6B0B1244D999ABE2D9E2CB94C90D217AF7 78A53161CB13831B9461F55B4A9D3F708B3EE785597D3951E877E5F31ACDBD05 C06D1C6C48971DE322FFA3082A2207ADADE56F84C54826A420CD81F314FF3336 407E38BAF13F7CD6CD321ABB4199242954145125FB0B69CC9A4B559380227745 7CD318EE0DD17F69E8D3F2203FEC8577A7E164B1EFED05EC3194131B54F4FA7F D45DD080DB5550DE4D10E255EEC184E05F7C019BC126E509B4D1CEA44582BA62 09467B358FB1F79D274DE6E099EEA9FAD94926CCC30DB10F6E6F0B69FBCAD186 82119E8EEFA1A0FC2054A81A3D2458929C909068355DFFD0AC6C2C049CEC4129 D3D220FA46BF168A93B97224DE4E1219FC46578A4C1CFB18D2EB1E9C270AA730 4A9A97B193CF52A33FF44BDF6284C1280A05B1E1B04FE37D26E6B707E0C7CCDD 269B733E2B9D02F42EF2E1B47DD90C4D77FC313003AF5B1E5153E734BB79BE22 159C875358C2415CCF3571D82BE24CD6ADA6EDA7FA1176680ACB091B3354E2D1 86FDCA728CDB1698A8D207F119CBD537F142B3ED2DBD71BA97E5EF826C2CABEA D72FBDFBD3AE0EBB4A38AC618AA3268B951B54E7D732299F4D7615D094C1A3D7 41907D5CFF5A3305F7D9E1AEE86374248314A08944B5D300D2CE49F5DCB6C591 E015E616811EC62679EDF0F9A17E47BD8261F39FE8E5B4F18D8180F8CEC8D840 B43621700A00F6CB233E29161110020767B5AAB809F4186ED33AD656664632B6 E41849E1E11305795931B9F172372AC98EAF239BA25E31BED5F2103319968B96 989AD1829F2078FBCDB637E52AC2AB45A419D2CEC828B95872DE4BD0C173B863 1DEFB986941924B199061D047FD5EA78FB55C05F443F315A3D2A0549DA1A31FD C7D428F2396DEA1A6B86C77004D11907E40ECD369819DA53D2CD39AF252F3B51 F7EB1C729B38782C31CB9CE74DA1DFF45E42A388AAA27D75E803D5A6B451C5D6 D0CCC13ECDA13D76EE34C4CC3139946B712CD58FCB39FEF732A780403A84174C AB0A56186794F19463F871DB941811E708ED2A8737DE05AEDD02447D5B57BBA0 30E30104C5AB16B32D0DFD60357F9A78F9940A43CA5E628F379CCA88C9492B6F A673DDEF254EA29E10EDE9BD4468E48B42322217B06684674777856A3CF6475B E7C99ECD5BF8A453D98B8FB3E0B4A356D8FB61E2F17209F414A4C17C1E499699 4DD6785D1F551DC19C8D3F87E3E78F0051FE14DE44D955A0591C88EFEE3513C9 1FC358689804AE0CF4A6DE8A88D9A900920541310F1B4C5DC949A3534F6E2EBE 6699F6D0E35B93CB13D1D3E85B6AD1AB102891710620FF98C140F4B8D15873E2 D677816326E44E9B181A2EB0A338CCD852EC3EDDAD9C85D93DC6D03236D7528F A651DDC59E45943F50E91212674A53B3ADE728E4FAFAB696834279DC6DF3796C 0CEFD83F4B9E59332FE29A0514182B9302C5DA1E35C4997506966CCF665A3B7B 8EE10DB72F5514F9DEE6E3D14201333FB23B5E04155B4D5554FC574655CA1F61 96F9F5BCB54E1429142CD2A2E64634E5EDD14AF630D1D11EB3BEF318B4B3B25C 242758858B2A9EEAB8DCA1CF36EF5A70607D97B2051729B4A8995562753EDBC0 3B591BA554EF5D79B7C4A6D501441A9B85C866CD37238B0C88F6754B88FB3A0D 4B3DC904C327E1974A69092481508A7EAB36A1E8B4B2086415D534D06A15E0E8 AE43B432884EF98CFB738B090364D10C950CA8E66546343EE8FD0C09C313F891 CC47DEE4F12506BF9AD9C6FB6B97270E30E9590B86A05F36E65059D0219F7E10 37D75994656F4A1F8EFC7B14626C77D191F62DD4ACE0AEC4B6F9DF21A3AB3201 A0271DA66EF5DC66241BE5F59A1F791E1D5319361C73E9F268D8E800649664A9 2576D75485DC48C4C7BEAAA053BA8D3FAD28C3104E28F1BC96C7A88BBFD5F134 F4974AB0989355759833E548BBF3F923348BE39DADB8E291B92D9C8C25FFFCFC 3E6DF11B19877F54B6215D3DFCEDAFEF5C81AF3DF3C8C65321DD0ADD7FC6348E 8C766796672D45540E911E023992CB35E946996586C79196F03715FC56E9B92B ED55A69F772B2CBCFCA7D66352341072AD8DF1DC47C464CAE16A2936DCABA136 3FE919E00192ED717537F7027DB398272533335CC7D531258FC77EA9A5A66E5C 53F987AB1F661391E66D4409C7210BF0CCD3EBD94BA96BA8A714A1C3627FF6A8 188534F1FF4A3535AA673AE15F560DDFF08EA7AC108D6A33F8E5FAC431AA012B 9194054F8C05E3BFD98892B2FDE7EF47AA724470B9BBA94D77DFD198DBAE9190 FA53F3E9D5D12E3978162FCA90A865B41F87DC44FDCB15FC3375B4B1012EA7F7 A3D878A66E3D04FE29E63018B6A4B33C567542F05816979CD2644B275DC4BCAB 79BE48A25474D4D9F485043C246CAADB03E84F7E4DFA8FF64555A202BB5A0413 96BE40CB6C2ACF1EBD61D401C9640BF198B3322BC2415170B2A738B9C40CE0E4 6D69A9E54E469AFAA5827025E9219E203716C600C3BE1B431D366E672098CB4E 4E3E374D818DCDDD6A291A30306FEC495BCE04690664A1FA91CC00329A9FD26E CC6F8D27D1B62EF4BCFB0B622C9A0E9B78FF583B35C8F097D8DCDA6E12B6EE82 53CD5E455D3A1E6F2A8A3B1ED1EBDAAA442198783BA82A9E82CB0863CA1DE9F9 11B3A4D779D7D5E0CDC6DBCD6AF8B9D91B2F88B781E6B9E61F9C67869C387C1F 24EE5D80ECFC0D0D2158B5093720189C73F7176905567F1C8F69A4772B854BA0 F1EB2B15F32EA324DC1A9F062F319454F8071246FA2FAB89767D16C43C466B69 8F5E7A7C7F3EF075B78CA3347898197A9A796A9A6996BA480FFB4B0A08F5D46A 50C126DAD50387CE6D524A8E171FAB3A449E4ADE2B73716DDADCE118775515EF 5AF7BF31F66AE5A3DFC9705DD8F660F1880F19FE0EEEAE793A0080BF66B36AD6 C9F9229FCBF7E305EE8BA3B4450D2E18FF31B9CE2A7DAAA94E8D769AAD1F75E4 D5B176E7439BC970F973831F1A344F8510A193DF375342B8752BB89CC8563686 0127740DE9CF1A3FB1F64F5E78D045976E82BD959C7D748A38D39DE59D93537E A6D478AAA3083BC5D2B3D7F5B16C601DBDF0F8DB7CD6599AF701C5C94C8B1650 FBB59A8AD273BCE14B7944754112CD02E8A1CFE84912214E37679616040FA84B 2E79436528CA5552029916E43CACEBED0F83B1E34CE5C1072EA4FD4B5BDE1AC7 EDFC3332205876C183F33472C14AC4DB40369F75EA8DFBA93BDECC857FE96AC6 5BEF4F685C48CF33F042DCB7834424FF72A5D71C3C19E8D1CC31014776B3EDCE EC360F6F5C58D9F0D4290877519219B0A4306532C37EE4D850A7BA07CA7FF0EC 284A8344F8F9AC480826C8948995F6F36A32A7DC6B705C9E57DFC14760B60253 5D1A8456C650247168FBF2A1E338BEE383BCB287A65469D2F49FAF91264E308B 71B7D3DB781A7CD97F81EBEBEC38244E3684285DDA851C2D35BDB10077153248 7C04FFFC8F5B1D20743105836E406BACB9C5B5CFB2EA123BB51537F33001338E 2BCDF640C6B568A3D7DD889CEBA91BD638BC0C253E6A1F34FE840E78086C40F2 BF47482E0F76D65C252B14A6AF87B8E9E5F409C82CC70A2B10D3095B45D701B5 43ADCCF7DF6BC0509571EB2F465BE4EB59F3F56C60FE3E6DD1AD0C46FF03E26C 8C9F8C6B7B9A130FDC5CC3CB53564F6C9A4F501AF32FD960FD2347F6F3B37915 909F2B67CA60F696D167B9DE03B13594BF6157F97DE2DE66ED932DEFC71CBF8B 1C5E8F3E8692ED1BAD2FF75143DEF447A654E6B4D2A60B5321A0C49F9BE51545 3CD9EAA72DE774592CC400645E2839BC0CA280C45F9861902FD93DB8352BE711 DA7B17E5A874BF14E532D888A79221FBFE65D8E117FB75434FD3280C1877D247 39F0697807C7933E921AFC4028F5784EDA2C0D4BD4377D9DE1827B388FE9F865 6AD9BDE9CCFCE1A3065C314C27FF32A5D03480674777856A3CF6475BE7C99ECD 5BF1D4DF36A752519A84536513B922F1FC0A070872E560E8D3C2D546487330DF 959CEB4F9DDEB3B7E6F84F650C5C2D856A65B9674FF626574D897DABAAF18961 49F59CF0EAA49A63BB2AD202CD7FC7697389C795931778A3210FA2ABB6A93EA2 30341F8034395A1BAA839CAF55E46F84B2E3960DAB18D604CF923C401341DB73 9D36D71CB4A96EA7AFF04E1FBA90D65E9A64F8E9E6A328BF57F4FE733FB49495 CA187EB106FC39A77BA465979F0AB488B284E37710A9A1AB429277B77BFD8FEB 5D6C1CCBFEE4EAC0A5DE4ACCF88DD53E9ABF8344F7EEE785C75ED7C8166673BC 59D7FCE7266ED5CE95844D83D12EB45C327ED805BB4AB09068FB3EF383F82F86 C9B62AB52F13667D5251A0CBAC7559D8CEC6C9A80CF6B58BBC64642C60426DE4 581143A8DC6C6CA349BC0691AAAFF54581052B6519CB1AC9E1561406DCD0990E DDEE2C8FE822ABEB863B4C5BD1695BD593DDB9C8BFCBFAC5A6024574B5062C76 AEDFD200384EC579CED49EF48ECDAEE8966483F21D51527C9EC88306FA46FEF4 59314B406AD33743D297144251691E4207D5936E75D5EE119A6618EF1071D740 37073029CB2787201656148B2FE999206643B869260246FD78C82B8C2502A331 6EB665BE1BB7E0A048A1AEA30E5631C78FED8E7F3E0281793AE4F0B95422D245 978A5E4F311F587F6C3F6731BA0480DBADBD8A56C64308F22937B34154B0E15D B97B4884E36A477334067545B6EFE8BA2C4919B13A0517E174A23DEA7EBACA3D 7DB67EC11B50363E452DD40BC1316BC6EEB5C7818A251C3BF6B996A3E0D9B01F 141F460049B12130D480C76F82AF2F157AF42FDB1FE8DB16BD673D3A714DEA4F 93E8614966D33ADBDA76880BF6DB5AD71040ABA21FC0FC3B59B45AA7518C66DC 86B4DF6D6112200346F58E0DD96C07FC17719A4BB074C6094C6C1E593939DC88 9BF462703F6251F58BB34B07D97451B4EA7019EC8E4EB69B4ADCA72FD465CE0C C7DB8121F5EDA252F0C02D7ABA876AF66DED2E34292EF5DC1A32DA0DBC861E9C FD1E630BD121BDE69FECBA2DFBD983C99DE5C7D013B9848F8BFA46C14DB12A20 5B38C43C1A0FBF8B68A0C760BAF73EDDE51BBE68FA322945DA83BA18E4F57281 9C164481E9CA61063E88CB31CF959B811157EDE8F3DEADBFBFF99E4C521B0A17 BA09BB2A81E0C6FE41B83C3D76B8CE2A20F23C89E3F887D35A26878CD1EE150D 92CBFA4454E360E0E20CFB779E822E278087B358D2BFF4284AEAC147833716AE 1A64082503DA2ED9FB16B6F30E5D230C31A9EC532EAF53CC6755F9831C22A9C6 FBAD4A5D20F92353483A02AB49D8B8A94F8D1D590C14DA2F7B688E1A4317EDEC 8B6A2A70537EA4AF071B050813DFEB658FCC5384DDAC234B3A29D8ECD41DC058 3A510C4873472D8E00965DEFC630FCF7CA831A87E00B4D60B2CE8882889DDA62 42413DE6FB8889601F21C9D354EDF04AC2A24BF0F4543166DFDCC921B6F04435 B366924FBD9AA7D142DCE5977D820E70C8D088AF8BBB11A67E3F57ABE586BF27 CA464FCFCB2C1F1C271ECA338D4EB649B1116178E0DC4527B534BB69243BCBE2 F0B5980FA478598C670C6554C3C509E363007FB2128F6EA2A8639C9456E55B50 3CFA6F892AF36D73B54FB7E9CFE74A2967FAECFA026BF7063D274B86D375BD92 A49CD85CAAC7B014F7D4A3060349E12440734E5BE96300BC0DE1E1499502E5FD 0A9026FA43973C6C91963F0AECCE9225CB0D22FBF974769188C066EF70C651F3 5FCF210876171868C5ED5B3804C77BBDDA09B7BDD68E477BAF861C673ED5AA19 29EEAD75E317B6574DCD113B464C2F9FBF61C4ABEF37252C1E44BA2E6D072A77 9485C23B30F6BBC6A4DA134FDE8B54123653340A41D3DCE4433D0887A13336F7 41FBE5AF21ECB1F931B95F0AEC70B39B8881EB52098965C08EDA5FC70762DA6A B4EB282C2E8184A18CC89B995734EF7BA8071980741260D73729A04309D9A35D E57048EE04670C17F0214200C4FC341F1C7EFE2D50B491BD6366C33449E1F217 8BCE3A8297DDD87C6E72FD4FC425CCB189CC2B8CBB3FD1E4F4522AA1F4C18907 AF48AE247D5EB409E8BC5315A80C35620B9D92F33A612C3ACC7CEE15E74CCF9C 5E829B05C8EAAC6A53FD80B6D0E143E54CD37ED906F5D54EA413DE4F2D3D9178 326369ACC789BC4867D723EBAFB4E0A64F1BC87E4E958D1903B48F6451BA2034 82F6E2A80F4802283DF85DC40CDD2EAC7290AF3895E438123F9F58C2890599A3 C1437541E0A68F61F56B91025F353124DB201F7EDCAE821294A55AD95B6D4B76 D2E51D9621884027096F65191C20F76D668D0B41EED6B006E2B69CB36D75B910 96A56BD742E6F485E49CBCD02CB558A61523D23195AC23BB80E9A75ED042DDC9 408C44554E71A1001A82FE62AE06FF96C0AEA7FE970E54FA8C8EA2444C3C6BAF 3CB7E5E014BEC6D76EA42E6AFEA142BB08A41ACBEEC17D5A5F570D7708660384 E0094BEB539470C7635B9F2F2BD14323C751080105AB62872DAFA447460BAB18 6682651393AC05C15DE2FD02CC7C7162A328A79AD0D6A9D442D6F6CE73FA3255 A93AA34EE1222DB38552091831D86D41E4C5F8560ECEF1EA18AC2F079A5A8BCF 14DA3728CA0B3FABDFD3366CBFCD5813F6DF3143AEAB60E0DEF2099A9ACECBC5 42FA85BEEFFE9CBBF87CF91CB3542A09B6991F69EB7A717E6BE00D0632E1C42B 5BE2945B6AAA8EF9FB39091ABB2B18D727B4FB3B4B66E0E2FF0C344F0803CC93 03F8F6B667E52C8E3418E15D1F34ED1261A36005E19129AF3E78C0317D33197D 106319DEB18F9EBA3DEA5AB43AD5580EAE6F3FD0145DD75270B207D4770BBECF 012E4F5BE88FDA3523BC23CD9BCB7BBDC577DD7245E5D0CD32FA9F713EB6EABD 864672C75231E979FE162806342C92D7F7EE53FCB7EF7BE9B926EEDD45987503 A96FCAEF6177245B97DF00EEC52EE06EB48408AF0DEAB658543B3403BE47028A 0A769953F81EFD2AC9FE16FE502A403EEA9AFAA6FD8316FD7C3669E792093D19 E171CFC0DDBA75EDA0B30A35076A749640791E4B93BC6265F469E3A118ED153C F2CD7661065DE0F67F0AAB8BEAA05471D5CB6A70166944BD279F68BA2D903BF0 1B9F81665C6073086AB006C5491F3C9C9235A7D55662EE7EE4627F41E21B6B86 F75FE172D9B08F9F8E089DBDE2133F3540E1232B7450224E0BA03DA3B0979DDC F25BB1D8DBDA6BB0B450DE4A57B781D231E9C9823DA285C3C547B98FADB4F68C 4946C44C44AA1958EC65AA2E653E3661F2D550F6C643672526783EB91055AC74 94AF31A313572C99A5F45D09F9926416B5E4B5848BD7FE5D3F3E547AB2D1F5E5 164D0BB064C7AFC151C4A9A1C138AFC198604B29286261F305D2C995E01EA14F ABDF695E6C2ECD03328C7D0F204A3B0B9B5956158252862B3272C55D7F665952 CFEA1812BD6A4EC1DA2ED68FC894A1527C89DD826743BBF8ADC0EB930637076A 214FF3EC1EA39384062FDF26A4B467CF3BC505F1229D1D4C4AD169E5F4812937 D461EF019CABFAA0D2B46E9C4588738DF7BF13E2B804EC9BAB75056859206FB5 9C264E9CDFB2CE68A94065C5B2EDBB90F13348E22B013F32A5FB81DFDE2C7698 421EAEC6585E084B85BCB5594D7ADAA386CAC423654335981212D67695F53846 41388D5A8FED3CAA1D77C99D5347AE5C098DBE87B454FF6E93F270C44590E464 A4FCB1BA37E4A11BC3DE5341C6E067E956F94D402305023CD7770583AE6D647A 501A92319232969C9060E2B71D713B6177D08B9EA98BAE47EB36250456C487E4 70DE74E3B29F14C5EC15B34A05EC13D279AE98F3BD0656F584CECE76A1715191 3D7B8568C68601287BA8DF67B346CA026F44D69B3FECAC37C7E050E8DFB0D5F1 B638172F1C66621D2BC0FE8B98BB53352DBA807E1D9FEBBDE84BF5F535410F82 355C2A572579C06D2C86A7BEE83C0E3BAE6FA313F76E5C09962DDCE7EF7DBEB1 B3154358212CB5E4DD65F1A0B45065C702C23EA20A3068D841DC2FAF4A8BF806 84D3F5BB34389E8677FD31BBDBA25B73A8B3D716AB89F3A05B1B2C9436572EDB 5EEACBE60AC88518D2E33F854259EBC424334598A39EAEF8DDFBC7E90A55128A 774184F2471881D19E1C29E1A3418E7DB6A7B8C58C33EEDDE833059E839707F9 4A6FEF3616C3EDF4BB80DF7CEF71ACE203013D3FC6B2EC5F07219F9110AE5BCA 2092ED9AFAF476B100EF0997855F6102028B01C2188E33BA1D4933D7CD58F2DD B6A86B94FC92CC55C02D2CA7D3A64EAD2E627D49B5816740C229B18A9BF270BC A1DC271573A6D9DE35A147F3E9CE7320E287428526653D10B607DE317A5618DD 8D30D2E088EA3DB52DAA3525BB44E8581105F623CC2170D515E113D42212D38A 605042E9D1C3D61DB3693A695C86791260E7506A57B72A77E33DE399C00CA98D 9F0AE1873CB950DED8E8F228D9BDB0915ABA92E7CD2F9AF2636D9E95025D15AB C597708D96BBA7E06C768C73F29572FFAACC389BCE7F47DDF7A259E0754BB10E 677D13707EBAF5E0CFC0A21FC667169B75564156FF555E34A77094130C7A4AFE D74F8FBE554350ACFDF33BBA18287D2414BCE2C9B598FCF2EB41E885B6D6504F B3A80F8828FE798C7F00AE1911146E3FAEDDB8D16DDD8486916979A7294B96B8 9912BCD149E2635D5877F272C28FC98B80B7E29E13DC0E2234901FA2DAF0D345 5CBDD171190B57890185FCE7E09A0B9F18F01A8F3E17F824114475E1BFAEB152 4B2BBEF7E8CBC0AA33FD8171541089CF31EA626B47EE5C6C440EAFCD1E69F824 581A91E2E30EC3FE52FD35427CFFBF2FE2DEF7C335163D7C748C4461B6737902 8F3543C4308635E3BCAEF766421E12BAB103BF99421DCA2A1FF4A14E4E2FF572 D9D59252F7066211746E1814DAF2D93E069292655AEDDA5469F8B3ACB722B41F 779B88D7C8E40BE6C4C35DAEA5041C672436F202109BECA97D655A16C0C26855 C795921D4C4AD169E5F4812937D461EF019CA188AB91EE2A045EE302F17DF302 B8DD007A2EBFFAED608FA62FDC9AC0B279D81894134EB50F56EF46402BFBA4BD B61EE45F2A6B8BB2989FBFA8758E494BB5B7F436B4578B06BB57DA92A25ED21C 6455AB5A822664E124BF5E815184A99FF881557200C80A78E007B9001A9E0E8D 7BD2E5FBA8B7F9D8DC6F2441D9711CC81D31B423A24296CEC91A7B77074EB7EE 129FCD06E8977851FF7A7CCBA13CF496950A84D1008A586429159B5E34BB89CF ED711F100F87344E2CC52948250D58603111EC64159EFF24DDEDD6D7DF36567A 11161C1392E7DAE55528267D5EBE3E8C1C6ECBBED6EE09D1D65F2C2BE666AA63 D06CBCD572B0A6A0228112011F5CDE11CE3481CAA8346020CCB2FDFB0B90FF0A E61F0108374AA0E58EB48492EBCB2949498A35B7A54B5EC0AC9E788A8C87311A 129D4EB0B75D684776A115BC58F14953AB46244856ABAB6D8020D58143DC7EB6 354CCBEAA562F7FF497654C63C3E9CF35F78C05B62DC055597D7BAF4C28472B3 5E75CEDC67F92DD7118204995477A27ECF26DC78A89DCEB9536CBB07D72FA0B1 5E75587747E27FBFAB63EE71371B528396DCD6F25F79DB414EF33E4DEF623040 5F4B4C7E2E37BC569396194A5B84D2515DFE2A487A75646D4AD48D6DB4E79934 957DD7DB8FBEBAB47D638DEDB577109500A343D563AF32FB564D93E623023531 4EB4474E27AE9DA486678B60C24B7832151D6F5BBFCE6D555D7C12AB3E3D1F7E 61757DA084EB933191AE9A655F25DBBEDCF2CFDB957E2304F1054566E859C89A 760972011908A1F9EEA53741C1EE658DC69C4AFC46F5B40C9E84CFE10ACB0876 DE5A98F735D56E38AD44EDD52299B3C4AD1DA5DD739FA0490894C7C6C045C42E BFBF182F0D752BE8E8D61ED6DAC34342591548E9CF01B2763A1F4830337DDA78 CF77653E23B38B5C7E44A4B4EA633113BD40158DF344A85AA03516CC1B20F4E8 926E5B1EB631DEB68B5D87AD1BB373BCF31B7117EDC696D7A2198085FD4BBA56 5ACC08F03133CF9ADD6AB74B4A1ED120384D0CB06766E094152B9043D3603CE6 36BFE8977B50D9EEC70EC7CCB3B0E5AC55ACC5EB54A166A09EFF08414EE09114 3D7DD36F34BD68FCF68DF5BEC6A0A706A7D576C65377B12B319499E41D93413B 74C76F1B557C32D3ABE3E767F2F3D5B062FFBB2FA51BAD382AED99523C81C084 E63A7C5FE33B2FA51F866D49085455510A09A9177B444DDAF89C84C9A546CA5F 71F912D3A7BC8A62BE8CDA1845E218E76611C0CD3321730CEABBC29C261AB684 901C5C5A43ED712D696670A710FB751A1A63B396DA5B697865377DC2622573D4 57E19E42A648A6E95485596DA5DA9B6FBAD028F92D0A7C89305D2933B475FF84 12F670BF8A614812EB1E27A87B75EFCF1206AA29EAC385C9DEE25CBB8D7C9550 7F3BBC3DE54BAB02DEB1E9D7709D685764896CD6B7196C3D04DF25A018A68468 873CFB0A8845ADB02479586AD4366A7367A353D6D316246ABA2CFFC6423C5CF3 57B044791D418FCA1F44EC185D3369D34FB23E800FF1F4D01F9F6CD2DE97A27F 4C1A25E85D517C34AE54BBA0A2C5621D6315BF0743F0D005CD4DE87AE4D3EE71 781A85E660C97C92E2A3F36EB44D1459ACBAA50F7480D6EB542AAE22E0F6D5CB 759BFC78C907C3A4B80C21D9F224F79B136344171C48CF73EB165936400C5D25 554FBDE7BE9A167605EE17B5F8C9F89BA1AACD47D5706D9F0A6CC901AE2A6883 FB82BB954BDDB7FF0678F775A5A3102F6760237C1BA7CDDAE5E1B2CCD9D8CD77 EB6DE0154777DC8C1356CE7692CEA3EE6B85F2EFABF38B29E335BAED5FF2B1CA 7D5F9773ED0FA5857C773EE176953D6A4D7435D7D06BDCFBC55F756808F49781 299A42D2FC04A672EB5D7B0B7F3A707986B796B7E4208194E6EC103AB3126296 6A10B34A6812F68ED3EABCBEFFF494E59E191862367F9018D447A9F592D1ABA3 56F58CA8ED3F5BB9D562A05B63B409DF20C182AE98C09CC88237D841BD503315 297CC4B6A30747D13D75BE2A6D2BBF02FD26822374CB3DEA6F33EC63A2C669C8 F3C7A2470E1805B357807D520BDF07E1C4AE7503F028F710B8CA3506417357F8 C3C532B19BD1740C0CEDC0AAE2EB919AF22FCFA06B10E735F5D8A6F7825E16B4 9F9BE6CB9B0E8A17AEC868521C0D91F337B9C89E5776278138D024757E2EAA6F 6561D2C90FCE05CAE805457E4DF768ADA1315B19DB43A396158D1BD33819A722 44F964357BACAC7E45DF14F44D1AB2A79192EC0F39C5B4AC7858B02D1AC329A2 A3A485C7871875ACDD4FB21863EB01B8BCCF6F2793AD64EABC3F2D975F4ACE10 3FD0538805984188BE850FA4E58C2F22031E5D3CDE7E1676AD6911057AF08AC7 A91D57D8FA8C8E0B281DD810A9DE10BB7D7AD75EB71A4BBF6C66F819B2140687 F6F186034A31ECDD6CF5B82435AA9BEB3E5CAC9CBF941185B62F94568A8C6FAC D0AE095B4121E2F49359244D0E4C58DF797DA5B326B8805D26F236C7905D286B 3015F04F6FF3B376E0349ED95F66B6666694353A70D02EA84EB93CA85E894406 A4F78C3B8DA29FF0ED7EA02E8D9D06EADD9170F63D67C48956B3121B1D8202AE 3123C0505AD347514666FBDED922D68614EF875D09FC7E47BAA4BAC36A066787 B4AA4E1E9928A7809D249DE4DF24BCBCC95E85894F82A48F76AFA0DA33C0AC62 AC54735AC331B47B338D8927F2AACB7E04FED3E0DAD615763D7F7E1F6C99EBCB 38B495127AF92F2F19B4D1D2313EF5F3CFA124B95805267B9805E2539369B34E 490E12497664B563B825312CC4445DF31F296D60D64FE134A830790AB1C1C5B0 CF4BCAA5A821CFFD4DCAD23923F274FFD2356EBF7641727AFF8DF1AFC8B6F121 2F37CC19216D19952753EC8F6BEF33735EDF34B23943F58B741F645F4ACF71BD 7BBA284E1B565D301478486F588B745C5E53EEC0D0FCA727506D00955879E521 982BDED734FB045F1711A24CB976EDFDCB74B77DD0A8CDD7778DA191A018A854 0F2A21850A92EA39B643322CC81AC52516191F8214ECBA8665186489FFF3C9EB 1B75E7689C16112ACB0A383AF3B27949E194F29351CEFE78899CE46B90098E23 E8D18B85A7B5AAD82FE5688E208069A1AFFF538965BABF4E4179CEDF10543415 CFCFE2A4D4BCA014B621186F2C10D7B1067A14F7F13172F81947747CBC7E6ED2 745CE151127B66B21694690B1B927BB3113DF4B08564A5AEDF7F6CDD74B2164F 26856CE5DA66996F947FD29B61F821FCCBF685456D30B36EDBA6D9D739932864 E1C468B8F9B27A85FDEBC0D74342A0FAD1657DCA594B3D66A5D1AA40BE75B38C BED0CC6FB31B196EB6B1D41DE505CB7D0CC414318B378E60587A9CAACAE024BC 469CA109931B3C6762A7733699ACE05C9EC0288EF4860899E5178DB32E7385F5 0CF4641D3A18DEFFA7AC8FD41420C4CFAE093323981CE5BF2196E15D7C3D7819 59DAB1F20D320C605B34DF469BEA6168445964C7A4EE7A3FD71FE4901287899E 2C27421A060BBA2543BF6F9F76AA4668EE62FCA6F439D937ED8FCCC6827C0B8E 2742E42C132FA6E083BDDB99772BD9A357478F197D3CA6FC5D153718CB418528 755E16971F47939A5BD1A840BCA58D35DBACB959306463702FA6B55D5EABF703 568D0764B27AC0810DC05C5535DBAB411B66012165782CFC4A772D8B75FFC376 5E7F59357089B790453BEDBEC122C94BC2C1B93A7B294F78DFCD99F0963103A3 81C468BA58DC1823727B8F7B47B0C0972CE574E2B56968F8B5C725DC1A60D3F0 F9F5D62659543A50B6DEA8DD562AEC76F2B24BEDAADE97891304BA855C28BF62 3945AC4C46D4581FCF29A0E940113D22152BCC547DF1D24770B66BFA2B5AC0C2 ADE487EB36C2C362852C3A45B6E9D60809C5B0CEE62FFE02B6E5138693A4D700 1A49DBEC9658F0CD8781765EAA61A3BA932EA29857BC97943E00FB719EC2BFD0 0F84423D8BD8819D9110FA301EC3C1E935772C96D7A8140EF3910A825E1E05AD DB80A225B38F2724E92B59FFC977DBF5C007D632AD6D08D83A99E8EC34DE6DC1 E471AFD57FD3D8B6EB379DA6E19694FC2325AD6DC1446B3C8BA53229492316AF 5A089B4DE83B8ED0C7DA8CE2EBB993847B43C2B011CD1BF2721388133610BB7E 5D61B76D49AB5B6305892A6E3A09023808E0050489C48D346919C3C54CBF3C34 2D0A4837BC2635B39D0DD9B1E85677D5534BC1A55177B0AAA5A2BDA3FEE66312 C9953836A3C7B5EE526375E2BC0FC555A7BA87D7802D5F91681D9AC47B51E903 47D47B0A58A334DEDA952ABEA0AB200F708CBB45AB5F76444C690C6F0889CBFB 8E3AC178D193B7A3852B4C12DBDE08508B5E228675D05122B438A5A503552944 04E033B3C92A6B23D99F45BBD34C23E5E656437E161053F7F50773D43081A103 2D7BD972EA6D791BB4AC0D19B6FCC87F352EF5C4E54EC9C48B3D9724C1362290 D0A09BAD0CE5FA3FEB02AC3AE5C8A7BA42B38D96036FC69A01C1463ADEB68CFE F886283A4A881620A633205D04A802E2E4DB8195C186E376F4029CBACE3AF24D AC10AA76C03C179312D4FE74C69835A319104D52026F064598347DEAA7F60CFF 85EB4C280851DCC72887DD58D3D39B4020A256C1BD6E8755016D1DD3AF79E621 DD382967352D7C3E056E8449D591595159BF5FA6EF0583030E1E235EEDA6098D 413C9D96DB07AE7449DCCE32CA58059432164A26B50F8BE63BAB361370A210E2 4EDFAF3A8D8EC8E54A36ACF93D4DC77AA5FC61C0F2A1DD706D4A57D935B30300 F09A2A4CEB75A4216B2E8F109274EFC020C38F1840457B886317A379FBD133FF 1F8CFFC028C94FBE999F80B856223D3B4516F47F60EE316E2F0AE3362A333B5F 6AAD7D40E8D7ED5A1C5B0053A1CC9AB1CAFA17CB809A6D182F86363100DE7512 77C99C0851E2635DB3A6B28090121F8DECEAF46FDE441A88E1DE85DA0082F4F8 BF94E627A75B8986CD355EBB8F56561C7EE37E386242DE1B24F8D9C99BE766EA 17C3E758CE06F0E5521881031985EBFB44FD60F7DE71187D6BA358EA6EED1311 586E16221DA38AC7A7CF38660996D4173862A4864061AA5E3A3A5EB63BECE709 1A55915C4DB363DBCC926595A1AA18BF04C375EA3CBCEA710401C352C44CDE1F C15112897D16E302E4A602987610F7CA0A8F1E998F68817F1277C99C0851E263 5DB3A6B28090121EDB378510A3404399954E790DA67887A81C53E17B063DED46 82B97E5C7DA98CCE893E14CEE3E1E522BAB63FC19A7C4447E7EEBB05952B5B1E 3268A58C27BFCF1D5B4E0A3ECAC84A00033A28BA80137E48616690B880BC4A96 F7B81008E747ACF26571E3B2C27361FA10A5019D58CF2D87A0348C46BFE1C1A3 BA5F53199AAA5E159A83E20C16FC34FFFAFFF7DF9472C5987811DFF2F57C7048 0B754194D3FDB1BB53B8636630F31E9065133A99F04332493FC9C0E35BCF0939 7887039DB4CE91519019FBE42041499245514FB482ECEC149E6BCF67649B3C31 70D352F8827EE84058608D92739BB4042A3DE0F489AA0F486AA83E08EDFE8536 F56EC4A9D82032167E6F84CA552BB9537871848036186FDCB7EB5FF854E57F65 1F8E52D37FC0854FD549F000803C800DB987F27C62F8EF386E1FCF71D6F2ACCA 99724FC2E5C22FDA68D32B23054ED82831B261A7237E6BB9EEC5396E24EC046C 54F5766FE35B2A7ECB16D6275651DBF276226D0D98B9CBE609960BFAE094BFC4 913996A74B73CC9BC195E8AFFE85D62E9DEB15D749F5BA02DA37749E06043DF1 1B41D70E77B32B4863BA56B29EF23FF8A9CDF7451C83FE7EE2E1196568FA2B0A 8914BA3CB40E84BBBB031FEB2B0A564017F6F27FDEF9C929E6B1A19608A8EBFE 2F44AA69BD7AC4189A6041483DB0FE7014EC15AF5224034C9692F00CEB40DC2A CDD0BD5DD67263FE3B84A7F66000AEA0E6DB13ABA68E09F3E26AA78EE8291E60 DC73CCF738D6A1E895B337B6698005DD3217C87EA8018906F68376D1A2DBDC19 8C07B86D8A082794A9A7F1A496099F1F58E44F4754A5E462A9C4B9597A180289 53E3FA2545677841215A2B5115534C7142050781178780D2F49C71446B581332 A84C3D18CE04D238831558C1708D6208BD434BCE32995ECDC83A240A9CF76B11 6F0162BF431ACACED6CCF7BD29C03B9C38F5A5E7ACA8AC73D997C480828B7087 05EF0F033B6B8123F40DE32DB9EFE28F3907ED91A2D2CC54613AF62054AE135E FED762812F049EA44CD7DC6F714653562B15B0C1DB492BFC59E34C6DE75E0381 B8D65B17F679FC6535DD2FE1F9908BA097A3E3A242F7AAC82109F71914392567 A8297D2B653CA329F8E2BDADE3846BA6D01561727EFA330239328466F37A30E5 A3DC178A67A039530495FFDA67D4D4975FEC367EA3B7A971E3269EA530FACFEA 5020E3A9BD56CE3E0DEF486D636FC6CCA44E9243AF6AE40CB0FC976E0D33DF2E 02A59806BB1596B724CBC734D80223E94708DE2BA7F59A940406BEB2767AEB39 247CD6E3F4CE4A3F375E7C5388B3F59D283686D160F649B9F5E34C07F5CEAFB8 9ABFE7E8AF1747A945A65A70FB1F8E449F52131E4AA97827FD389F59D347E415 2A962ED39303AEF1A93CF6D512422F3C7A38CDC86BAE5385477AECE5DA3EF391 1D24CCB008CA1FD50BB9E6761E38C9C06E133407613AF58800443F32CB27E11F F7507BE4D608D72543F7692E2DB713F08D1289F13C55437517194C29B9313AAB 0489072A533009B501249A21C1D49A882687966D005B6FFF950A4911CF4FE9B3 F72A42F3FC336D78D23E54FF96C260CF352DBA9399C3D533A1F381C5C6F8D48F 2D1C7D0802A3CEB90CA329858F8493E5CB7EAFF88E6E70A3542EC04E6803AF25 82F5515AF0085680352F68B25FCC18C661BA15B33C111B489F01011CDF5446B0 CE9745A69E7717619C5090B391755F8F6DCCF1D50321133B58F1B64150035428 9D5792E5AB1E01BB9382A2C7DC3B83D5F8C717BAEC8607E5142DEBA280A3C9F2 05596612650C6DA2A887331F1C0C875FA6F0D8AD446677FB3C03FAD8D4209ED4 9D597B7226E35BFF8F7AAD9907EB51A69877F80AD61FD7E67AED65B97932560E DB9A91D88795EE88DFEEE9AE671DB83A2520A9D4CE39A18A88220B7C0B958D27 64C1079941113CBEC6593BE39DED348ACF604DE2AC5FE4DCB70880B4789F5DDE BAFC1FAC7514BAA4E67860B3F12F90CFAA907DAB25B8098670B822E6B2279294 4A1FF46F71178001F5CC1E53E7A3AACB58E44EEB35407EEF7003927D0A807CF3 5553673DB742EE093C2635C73D7FB6BA7B26A2E0E13CDF89A214977528C06E96 4D4832D18F1E228A25A1B08E5745AB779A6F611EFE845F1FD709940E0DF0364F AFC018C7D0DF626497C3032C28D3CC3A9DFB4194DD4AB3A85E3F65842E4D3640 9033A99D2724FF4E2459AD061835C6618E1F8E80EB28FC471CAFB49081BD360A A9CF68685FE7988389765539EF8BC7275CC177D9E638B980A7C3576FFAABE6D0 58F997EA78E1356D5BD93BED420807821630562EC68AE64555F51A843A7820B7 13FC59B8D1A4009DAAA7D85A7BC79A6EE287FF976C891D9A6E492CE5FE74B333 E29FA51B57FDA155A6455ACAD836E528DE25628F013F0AAC04D94C04B735EC75 92B3F2CB4496C89FF7891ABB0F75E657E228E63493F9273928A36FC6EDD10D31 0FDD2C6BE581ECAA985C03D7D0BD14670D97FEC721752D7D7900C0F9319FA751 C0F07B6843D1D1916D53D9F63ECE5EA6C7E6E45506F04A4F88A6ACC1D9CE6FF1 10FB4F96706F5DFFED81A6B2F10CFE04F29923EEF2FEB88BC2A0282E4037CCE9 36BB457FA7EE6B85F2EFABF38B29E335BAED5FF0DFD3C437901FECDFE367A13C B1CA23A3338CA5DD131F038104DA17EF456E2E0FAC9AA083186420ABE61F4165 003FE0BF95441176B3E55D70C0E1AA3057F954E575018D987DE5CAAE7447071F B87E6B14F7CF503D83E941DEE43FF956B998615FF8E547CFEDD9E3C3B588B271 DA22CA76830635420557A85206F4176ABCDC6460711871D83495B194E567CC6B 7CEB074443DA69CD4B58AF33AC7D9B8AFA0B208A66D8CA892386FC69EBE98033 C20A2AF2C009B78C5A5609D3B54437C90047AD7793AE2D08BB276C9C5A5548C8 E22E9A5B741A8CFA6D843AAAEF012940FCF6BAF2C5B9288FA3AB0D106A4AE3E0 284337B732C010E042B26C218BCB42366A781D86A0C48E752406DCC83B2AC336 43804E789DDA71965A5F84ECF74C8115FFA28B23FA77F42FE7272EE5DC58DBF9 D63E77D32D89219A702152BEF6320516B77062FF81CB388A15F87F49A981D1D5 28C49879F5E499649DD7C2181139C8F771BE90DC55515FFEFDF1E30EA9F9EACD DE73D0E053DE0A0782BEF6721D2F7A144AA696669DC25D825F5E9B7B21BEE48E 781A89A41A51549B1F5E5AF1AE9BA1F5F2D17E524C96C5CBF2A8053108EEA891 B04F9971EA057EF95BE3B02988BDF034739DC8FA9DE9F6CD6C817D32A1564F1E C6F4F7EA1E995CA9F010311718791DB7B31DB34CD11211E97B26A891D892570B E3380388D352FBA4DC256194ECF721D1697918B3C8E8B926B6E2E61D58B5CA96 B3D1D4F44B25ED5D8B485A16A330E180982ABF6E443CC4DC893077A1F86BB8DA 46D7CC202CC8046ED509B3AF32E8D6ED83CB80975E2059FE4A36213039695C54 61E74F86BAD5DEF2C0EC65542539CB573167B82B1A9CCC6587F9A317198DC46E C3D9ED8095460E19F9B46BBD3D4FDAFDD958D4EFCBE859D283503D108B582D17 6B554D602E293239EC675BF3F3109EADC2887BE3709968A8EEA769D94B8CB2E7 812201ACCE79BB4FC4FF6D98547FECAAD93B9C2448D878FA41518DBFB8817CEB B4A131FB4627BAC95868EF73522A4ED633EDECED2144163949E491485E824259 C3CB35B4775408A80955F862FD10B8A35421F44014BF348985C7046E7158112D B019D83869EFEE3124B02DD4DB7E52ECE93FB324F992DE0B521B6B39EB9AABC5 9F65679079F8C99E42FFFA74569146AEE692CAA1E777E6162E9727C408FC2783 863F77390B9345DEDF892516E50698C63E37A6DDC0CA2A373E44D127B9621C6C 4EDC6C0CD08819F9722CFE06DA234F020D0EEE6AC5E5FA4688C9FFF5EEA0D757 E74FE2E41F3E95473E1E6DD51D160D38BE9716130A6549B5140DF2C793E55F2B 423B99B07C8DDB7BB49053064DB080412B93829018945E21DB85C30742AA2833 74CAF932D46D885D46542406D0C9148391A5E9FA955B1DBBFB2A882A38B251EE A6F6FCEF0FA787F9B6E6F84EB5E5D9291B47DAE0981396048A5AD1F663FB2874 BF790A793CD34AF57FCBAB81534BA9B8FE4107CD5938E5F2D9FCA5F76DAE16BB 13E0349748B60221B3C4BBFE1549E70D49F929EDC1212C6F8DE23C616BF6EC19 E573C33C791B0516560D45E58EC31B946C41CF80911826F482D917A6709E67E9 974FBBD35DAE87BB22E4757BCF8A7204078742E146CA8985E1FE9D30C5721D6E 8CC7B29EC618CA2986F81259FE8B6BDFDDCBECD3A1E9FA7C81EFB6EBBD8BA371 201DCD4820D5272BEAC7FF68FBD0418D2C30889C632D5C15592D9AF30A4F7554 0ED006C11E2F537E8016BA4C0A51266455570A54BD22E4EA8E353AC31DCD70EC 04A8DF37D37563172F88CAC25B1C3ACBD8019D7B259E97F17B7BBD2635387137 F29D0451C91B961AED9382E1314AF8EFEA168F36C60A4768107221A07ECEA56F 82191756BB8A520F48696E70C71A239A8DC53D4AEA7E5DAA0FFA281A27AC3BC9 3E416F0CFD15F77EF0EF8F73D9CAEA8BD4F3EBF9899A24853823DF9F7C4D5F0A 9D510257CE8699920AAE9DF609FDB9616380C5F3C12511D6685278408D2BF5AA C7108F03AF18A0E06301E09E169101BDAF8F9347E3CA11DE15F82F7651F9400C 089D5ACE59F9353AD6A9709E746067516077D451B920B627C6F78DA5E15CED46 96AA3E108B2070FAF722A5208AAE2CA01B3F973E0E00E413FFA611DC8147CBD7 9254353F36F4E4E634732DB14F2538861E40915252EA75E0C5FC0D7594847B36 4A3F36FEC0709D6C3DE964AEFF42B446DDE5223BC8D138D9E07E76E4A7A69B50 0258AF10F2FA61EA1F01DCB6E1744B501200A6A00B19EED864F1B74378C5581E 3BF78536EEDB214B643A36A441DC4A7077CD4112DCBF12CB9A0DADBA75015D80 A56C619306C9DB8EED4E05E21ABCA7EE502E7B1E048155F6FCF4A0B0A4EF9500 6E2DA6D8A3CADDF665E17F299DFF59BE6C9DEE21F794AD7E6E82B013C1A2691F DD88F8044B7DC70574C59C343C8B0D08D9F25813BA13FBA181BD7C8C42A5FF90 59D3EA7EC54B216475C3226F2E6D1A030457EE277C54D45E5ACEAF360D72647A 7E768CCC61D33A72E996F9E8E57F588E21A6E62E03B23AAED4D695A276ED5AA7 BAEE77B8BCC9C385E66162755D196B775C4AB57045BFEE7CB17B98B3BD659797 B79D0F07F7E928B2979B186D84B705117185F2DCCB45E5155BB8AA34608347CD DB20718EAA7978E1DF233C100307218B1558184CF236FF2ECBAB3D16AD2DBC26 AF021BB8C6DF6289D2F6C6F08FF74BE681F1069A9EB514E0D7148B3C4B91E4FE 65C42B5F3851494036359788CF5FD8E800B60F9402A13923967DD98BB600E20F 54EBF8624B62927337D97DC4971A485BBAE32201F2800BA0389356DB8169DCAF 377E4F771B383D6AA1764FBF802F46662FA55862DD7AC9AF6759936FBF742130 575189ECFAB3F35A602094394AC66C799D5DCCBB1238B6737628E56DA15FAFC2 31432555B5CC5E18C237E43BCE99A1C4C1F2F5268E697E7AEB9C77529C29F7DD C21F4C467F7FB83486FAB7E75099FBC5349B72A3240D285E731B1E8BB2D481BC 0AF3CD383C5893A10FE0F4664D752D546979BDAD3575305F93C96A6B7DB7CEBD 6F60C26935AA8F1F8D9C3FC0CAFF1AE188FDAA0F4D186803F47AF424571193B0 9937A35A69003E660593A41947904C44810607BAFB18BF454CFAFEBBAD098CF0 3EE1D5FCD52FA5B93A4BD1B662918412C35EC3D4E2F0230D12F539B537CF70E4 3C32E5FFE3C5B6A3B737F37E2DCFA2329B784516592E36D0A04CDA9D1C24AF51 972709F3D504BC54D97E246AEF1FF703B4FC8F5B40A37C911B616DEE4C22336D 66BBD81C7D0EF2FA36EDF8594C08FD5C08DA7387519B3439EF45983A3E0404C8 61C1658178E1C3DC0FE83EC18C1D73F6DE10AC193A4AFD107E49D628AF8BF48D 96B2B8EDD899E447AB390772C8D454F055DD14BC162A0F1F53CEFDE714796C6B A45631317AFD3CF905AA624F58F0758420612493F24BB37A88E49E079B2F8AC3 5FB8C52D1EB9DDF2F081DC07E7A1373DBDD807D103AF31FBB105AAB55A98721D 1550A313D2528B9BD02D0CDC31E115820559128D90BCF99A65E4B977CBBB2C6F B460063E42F78D7F3717952000562A4443AA485D6A574F41A6650A0450E7DB80 351B54AE0BA15035218B9A2B0BFB7047C4E02B729D3A3B7C2A1771809FB0EBF5 9B3B0D75F7809F3C77727ED665CE0CC7DB8121F5EDA252F0C02D7FA805EAFAC1 7091424B4B79299C1B7FC3C95FEE963F35C9AD1CDD5B5C57E4EDEBCE7A98360A 9EC25F73C685D91EF9338F9912E47FB11ED746706DBF75FF339487A7C4B3FF7B 285BD5BDFBF4DB948FE0B9C26B9FF9D0D6EE9C3535A8907D0EA7792359727536 9711D023688D886CBE48838678251241B46DBB357A49C7A7A5791B0E13A0A8D2 2AF6542F838FCF5C6519C9AE59F25CF9C116B9C5E59CDAEA35F9B7A7F749D18D 595F8937699A00C66221DD63C225DDD2287CC70F6FEAF8CDA6A0E9FE11DE3287 2F228F6823D5B8831B44A3EC5EFFCA93EF1BFF1C0B7B16732B98EE83B1BE8F82 75FE9ACF7B52E0863F69122657EAA3604E8DD05E04346C083172E408CBB95316 4D0D78C30A0CE1F30EF239CE5F5BC9DC0B32CB0845A37AF5419F724349DB4DA1 6EEEDBF8E1CCF55535482488ACE6AA3F52F6933C887A86BEBC65D22AAD82BA06 46F87A99FB7D777544666E8F68FC22ACF909493697D4ECAF5EB38166418E34E1 E540B3E4D262264F500DAC6CD2AC1138A8214E9F17E25B54DA4B027F9895AF00 4AA7D07DC68D87C9152C0E46EE893BBE0815AB8980B52AFEE2AB8B5BF1CC56B7 33595F7A9DC5C166ADCF202A9B628074FBFDC94FE4F5722743E0242C822E51A4 50C23D8819C439ABB8FE5B592248DB0BACBD4322A8E3EAB8EAD46FE7EA3189FD 04401EE935A242F3117BEA075EC13433D82BB9F6E394003C96C3C084F337DB37 80B8DEF079F8AEC452E9DA468B5307FFEBE145D96F8182479992A3367E850F9D 94E1E280B08F124A6142E44186F82C0A23B4C764E59D9F6E3FC67BDE029490C3 1153EF22024C29FE0F7D2F5DAACAE3173C865CA3163DE1E5C47111A558E7FA84 646C13395D6E27B211CCC182F477837E0829DDDCF3B1751FF75E8D83DAE9C543 6C392137548DAE76BE81B5BEE30ADB2D54A26F1750A23794769AB35870C3DF29 F96004362D6B0DC6268BB587F7605CB4338A6294FDFF0A4DF052B00E46132F67 B36BF29DB4D418C8D726B4C6A9FCF2E420A4E8C8C33D8120EE92457DB3935546 C8D922DC5219DC8BBD7316407DB67260A92B2505B9577572CFE7238BDE677E3C 7920ACF2F7DB5B5884D394ABA1B3F62F934D7F3DE5AE713CC37BD962770F37DE 942E9B95C82B7CCC2EBA81F8AA33822F002C9D10028205E243B831DAE09E92D6 21511857EABCD8B2968092A2D54DB5A4D13F2A4B5B2224F10FD8E081ABEB05FD 27CD6D2CF18781D522128043D34A694FC67C6D401356273038E8C97BF2FA2159 9D6FE457350105DB6344810758B10B2EA8C68918DBDBCEF204F806C8179C9944 D6290B809C36455EA119ED5FA28F10A55F99FC6F65A71B56EE9A4E72FFD31EBB 90DF8B929E806E915065A23BCFB64ADBC7489B47263A213680FA3ADE3C38E67E 08C4FB450D0B3191166ED0910BA5CB7A27189824DF510F5722B50C7887452776 2D6240CDED5DF14F9F0DA069B5552C7A144AA696669DC25D825F5E9B7B21B0BD EB5E2B4EC9EF1BEB07CB3803C83FC4BE066699ED8EBA3C7818D866268C0F3086 7905F86B0644C3D2E6229C0933CF4A100B06515346B48D95B56A049C11FF103A 055F5A1F27F114C1FC8D05647561C1D5C7DDBBA921D0D8234E1BC69AD30D3A03 7DB040BCEAABABDD4220A61CD00F1BB5284434C917A1B30B8B59FA560DA5EFDB 22578A7F9D6951A605E95372559B2F971E9DD853251462BFF5B1EE7E9E9B6E5D A79D1B91FCCC1431D431AC9FD71E78608F3BA2A5A1D2152FB369CCE473518029 1E72DE255479D8E1AA7A50B19306B31D348B9FB2EA8495EC0EEC720D2828434C EF9105A1282D5C9AE201C72F1517BCF3E5D1863B6C651B99165C8DDEF2548DD1 CE52A34D04D3A5C78F6CC832791E32AB6BAFDA475B518230A0CF54F0BA788AC8 8CBC6FB6FB60E18DDA9D18F1FE61E660580FA98BBC61E2FF7C32EC2A0D8E8B67 E275B25F3C52C4F27C1ABA91511835465DB7C5FE70ACDE05AC83013B6D498889 21E456016F54286A0FD0ABE4038E28C1DAF88B9DED9E534B6D9BED63F0A8928C 0C06829558BDCA1C19AD3A13FA281591873D92BA5A04EDF1FEF0DF307B0947E7 F4C640816B2D839E8A497210DE3C85F6EFE29A062C84602997BE87156F5F2684 2B30704FB6D8D882C09E1DA029E716AEA2E16FFA5A475B876CCE4BD1AC3F24A9 A714149B780CBFD3AF672D5F0FC8FB2683102821B9517794A198A70F1E86165B A3F60F28DA7DE21F452216956651A350E0D16B6EBB2B01340F32F4578998C6D0 94D922CD70E5E0F55242EBD34EB3481685A91F679498D29B9D13670F86A034F5 C82C63FFCBF21A70F773C58BF7EE56670751EAF063F2C3CB39A4DF6A5E899853 2D70A9CA1B45CEC2174D0E6422111BB81D4C8B5073BCA3F26F6AC358043CE6B7 CDE475BB6C7F6FACC7705FA00F385367B5A9B8E0C478BB37601D79EB01562BC6 7BDB6C8E2204BEA7BDDEEF6F2D2FBD4E421297D36AB8A7D5A158141E91D31B27 2746A957036BF27C114559DDF063382245754FB9E2D79AC4B8D59EE3AE961EB6 77219306B7449F059AE815812A64C0E1E1DAA031DEC31BC63DF9EEC5ED59A685 8E19DE76F6F7CD966237C791BD82944CA35A6EA5D140DA6854D31056B9BDC795 801169570DF3D7D09EDD6A02320C9B9BFE1A72861376537BA2848F6E1DEC663A 85EE0E8B59A6A52B3C5BEC13B783E6A87E682798376F9F3762D6CE21EE6AA1A9 8C2D76871E77B36491295345188CDF8229A2A00C5E70DFCA7AF281296564B5AB 27BBC9ECD4A24CBBF0ACFA532714623BC0B755824639254C82CE8EC422308206 E8311C4337234ED03A67218CF24DEC9C75381FAF2AC6514832DB56C999937CEC 419D331D717C541444CC9A0255D652B35B7A469AEAEBB485972A80D1C6CFF61F 7871290D0276CDB3B1D41A72366CE29B7370615DF1E1691251E0FBCF1174730F D83A69378FB5974FF7B2472AEFC0F672A5CD28AED5F17B7329A0638379D6A306 16FD824A2C1941F1EE7BAB408544F71DB373BCF31B7117EDC696D7A219808809 BEFF3918E6F23C7D57F379E9BE619F5AD5D99E0489180EA5E8298B6E3B85EB91 471AF83760AFC1F06E051B096BFE41FBDA1C5A8BA288182FFCEC02FACFDB277B 8BB6BD57C057F70FE653702ADFF4541B4326BD6A3FC69F9A2AD4A77C8554D245 75C2E872BCF9F1BD11B8439CE89BF79F3D8949B97B109ED78E7731183FAAA37E 13B1B3B900A384B1DCE1E3403FAFF41294971E32E3308C0DC66CF6525A1C6B2B F91F08FF470A62E383D8A51F9DCAC1831DEE40BBCE64AF94774DDFA5083CAD66 0AF79E4D36B4A04E5063BF14450254EAF189EC8F446EBDEB19CBF07CB3978F94 9C6FB9F5D313FA57353EB568D33FBB7F49B6D4D0CD90B75D3BC68B8C846B0C92 F3EFCDB14737D23D4332AB08B88BD5801921BDA638B481EB66BB00B7EFE75E97 5A6ED1B0560078BAF7E37B176D5AC1450DEE923ADB4EA8D2897B62AB2782F4D0 CE73F455ABBBA7ADDD256FB23C51A1F6515964420BCF74E52DB18DC8FCB26B3F 82991461FE013C93A640B2B66B2A47EE3D3FD7ABCAE6FAAAA0590547BC2BB8B5 9E1A5C2FA63B707A108E45F3267CDD117FA8090EE56338E0CD8B9CA3558B105D D2EE7616669DD6B252FA0AC2D19D29B9830AE890EBC1CC733E5C11005DE4BA36 00067C76724B62BB0C106333B242128B907F82CA9CA946E84E839BFCA8AF32DC F83DC2BD087B37FEF579DD998D23B8215A33C8C4BD07E26EF964BA42A53A0184 21051AAF1A5A44E6DD90525F504D9A60592C55DC1AAE337DAE898315CEE464BB B439F61C37CCCC3B1E68C28821E5B1E366735DFCBD5282270500C7C6818380E3 3D03A09443484AC18A3E2DBF09CA2BA555EFF020D48B4E59D982BF9E06969E6B C5E6DE18BDA345AF8DEE96B23DF5383063C18A403CB09501E27B223E97BABCEC 48E4ACC1536B618CBDE18106AF545301BAED4B5C074DA439F9DAA06B2DEE25D2 EA1844466C7AED0D40835196B4CE6A0E0E05468E12CA2458FEC72FA42B27CCB1 8895F084CB8BD753CB34BC2131562A7F1F31B33FF18099602C69ED3F37597B2A 8076795A99800C7B103AF60A487F2C9A1A7FBEB3B6C103F633F3FC800C90019F 4912B1489612D2E9E418AE4440AA63136A636E650898E42E18D338D884E0C657 A806F322C4F1ABC8CE1843BBCC7A5AF0D15C70AD7451BCCF5412FD1554FB810D AC5153B7E31805DAD043CBAB10FF23E23376F9E0CD71A7D5D51EB5688187B3AA 4BB36B85BC386C3D3F04C6789DD382CEC2720622B237A0DD59A63D81DE41F7C2 4249DA67782CE68883E1DE18E3262F9391A0ED0E7400718514A029D06C85ECAD 39B33097E6C1E76B755BBB0A229F605A464C530BEEF471B11638BFE7B326CF51 7B7EE20B6F985FE60572C02F78E8620719882584F9C6621330332C29DA39715F 58779952458B0305F5D4AF4615C6093D25A41A96447D451BF00485FABFA601A1 AC1544BE674E4BC16829BDA5E25BDD795A3B485C4E8BA1B657347115D51485D3 59FBE02A5640E18838437621296C46A77DFF2F5143F4E234A7D4703E9AF61AB3 A7FC0101A1CCADA63C81354C02E8AE7ED6AAFE45A38B395913C4322586F7BF64 29D084BFC22311BEACB16D8C7A6CFE8105D8DADBBFE699083B3D4CE6A9A6E77A 2A6FDC01B6B522C06F89811D77DA7AA76F4288E1080E63274357078302676BA9 7F4EA79FD2442E8398F269C59F7502AFACEA3867F4D87D315E62A0B46256D13D 21A0F3E62A5D41DE35C023DF0F4DE86700396C920D5EA37CC5FDA0794B98E76E 206BF128DE21AD533F4E1501C20A20E48E353D75E24C00F253F8C2BC1E3DD260 610E528737ADB36C352CA2AABD738C7D95CDE703B0036F2E6A897C1129BF2470 FDAC09CB451DE8F0E059C1495A12C6C192DBFBC67203033A5DDC1CD624A354DC 6B8CB29A17412C64D23CAE1C034FE260C04BD55D5C85EF0C20F607FFD295FB43 88A9CC9088DC94FEAC479BEA6168FD20FC7EE5337A5BF3BF0CEEEBB3CC1351A3 F606C4C31545942E1BD404AFC1D92A0D4254583288AC3C68F7B43D7C4897BEA4 D44CA8A4D4E9EBB451975BAB5B8E768020F161461D7370AFAE113E0B64F82E9F 9385F0A79D29184E65B6F49FA0B70997EF91E15A48B7252C848FAA98D8BB3C5F 8386F92FF523C9CF7B85DDFBDDB2596E3FC84DE557E19C41D094074BBE497F62 EA0924469072CEC9D1839E64A767530C82598C1328DD4509AAA4713A15EBD039 C1738FEBA0A00BFFAC1D4EEACB41D4C62173030FA1E24B58395DB5F1982BE344 4999482E25458217023D041D9F3E7AAF7520DF4E7AC368C74CDF092E53117836 57E210D21A64E8D7A0379EBA0A772AFC9351A26EE5FD47D8AEF8408EB3E8DBF5 2007ECDC6F13FC5D8B93EFD84D2C7F33230E224C730C61DD02B4CC94E07BD577 AA19D09E296FF1924AF5819BBA02523543EA14C3E9EA2B1EFE0BA7440C10F20F EA9C89CDE3F206F8B3EEEE26E682D005F6A1F185D322B9E39CA36405E350FFFB 49B8E747ECCEEDAD8A72B877AF1A20DA99F17B9780A487083D6211FB743E6A24 C600B9CF66D9092A4AD457AF9868F447FEA31CDA064FD7D09900E9E60D3BFD26 B190F8D58E7AB5C1EADD66E9F57BA4B234A495D2D14D574141B6C517B7FD3554 2002AC613C785218258A0314130F6B3EA220D15774F5E14AE7ECF2CE0C6BA6D3 0FD76851772ED474CAD626AF61D88956CDCA2B3D29B5EFA3816480BCF432AFA9 15630DE31CC671753446E131975DC60956414EF481BA9DB708388D61293418B1 8F8286658F70D6AC275DDF739C1C52773EDD39B46F860CE84B2AA20AF611C1A4 EA41DC5D01FDB9E31D9E215018446486E115EE03C62801255582A6318F3918FE C82DA90A9939594A89EEC57A3D96998C2A1CD2A0EA15AE2AF612B0F96E6D2D97 B4C9F9514E2AE78296F5809105B4E7580F6A8896EDB619B45C8C046486714DBC 029FBD1C007D00C748A4AA92D9F4AFA75B1A329E0813E335D67A0BB08365377C 694BE6AB9546F30A791AE67463F15DF4801131684B27EF1D10C9D9547665DB28 A7661778BC47F86F12ED88BD9CCB404C0025F1CACAFA0427C76B8F6BF9578401 5F26D86BACE2C34A2531BB9739F8441D0588BA8C4A3253DCF3D1B31D1A2ABB18 5D2396864E4C0857A64A522688398CF34DD9A1AF5C000FBC78C0F6005194A40C 16D0F7E4FEB7550947A56A46EB6D73F9A0400335FFBC479063BC8CA7418C63E6 B1D10190278470629C8E6B4DF82518ABF310B0631641A08DE7E9F1276EABA249 E4DB6ACDD934425B1D787384F8AAD42A320715536757B6D8F4033C1245DCD815 46E035AD5B21391BD90447D594FC4FFC1386656E219233B3C26499747B856D77 9322DE2831823724C02FAF4EF34C94BBFB2B39E71B1DB0D91E521B589961BE14 212770C320C282D9C2BD68D06D0AD21BEA96605F44F001850AA6354C7931E8E1 D3CE294D4C7F8988EF22F32F621899FFCE71C8222CD59798F153D4F68D364F6F A7DF1B81CC305BBDBF179A47BF5E142AC23779EE80E447DFF7C46401C1F8FEF5 8D330CE0FC95EFD5574FB854E6C3A29F68947160DDC932B3DBE55B541BC1424A FFF444CC044490395C5E59EFEF1521E2AB61F25A86BEF37BFD955672446B16FF F6CEC871CD0BA8B773B3D54C797FF02B1CCDCA484DED6CEB54CEDEDE204E4B29 99A2BB9B50987BBA27335746513F34D53EA1A26CD36F127DC7C0B35C11650B7D 9960ADB212F1E50B0591C309161DF554C3BD187185FAF22CD1385F69B213972B A0FF606F6F34A3207E2B2C3077831C4E078F58DF964180976770332029A57581 9BDAAA790B09C3C1B0CE2F952B923E4A7F8D328B142045C348DD5D0394A680A0 8CC05C0432C4AF69FC129A8052E5181637069BB0A8180740B7FCF0141B7D52DD B10F6D2E011FAC484B64D61633D38EC8CDDA93F24AD3E655FA135C84816E3913 602F615FBBEA1292653049733CA50F89CE16B71F8BA10932B2CE7D9C5656835C 9A9F556ED928BAAC31E773F42B1C88BF2519B2C158B82BC7434E5F2E35467926 55776282D568BACB1DA00E86623D759D4DE7DFA4AA03AADCAA5538191ACAAFEF 372FD86CB83A3F67724A2557F5454B3304349E32ED5112AFFD784521C12318AB 9CCEA70C430448418B62C6DC0946E17D0478883F0F1ACF0D186FBE7D6EAFC5DC 594EBD914A741D67FD19EE399DAF77A879A9D01413420979CCBC5023C4D5E4F2 9319104D4BB548093AA6685BE604413E27357009C96D2FA743FD8B7270374BED 5A825CFD07C0C91C8D0FBD42A501E86EDEA755D787CE9A1D79FD004897273C40 B232FC14726C5C82E3A154624C969F4AA6F9A6905ED48A74ED07C3CA141D0125 3D3081C48A2D7B1EA81B3960A98AD68A133DE46360C24A2A176F366B207820D0 389C5D93E6A8481C5BD51134EA1A38893A283D72749F2AADA196A0E057B7A756 28D221ABB585E1ED65031FB2499009100887EC7420043C4540620988668EEC37 2DFD0A3859481676D5B6512CB9040C8310448D6BC86274FC19C0D3FC1D778BCB F77140B176FF99807D637351CE318A248D419B40EF953622C32AF0BDA33FD516 518FA615CFDF4E44E8A7B1136D45A31D588FD3AFAE9F14B32D85C37F67A72C3A 9857C8DED85270E593DABC45ADC8694FDD9A763D8536897D08295918E80A0100 07BEFFD891721BE86D52CFE9701D26FA3E188A4A52B26EC56E377773BE91E982 7D87E7A798E106696D9EC00C10ADDC2F45DCF777E6DD77EACB0E236F86132EEC C4F195A496E930FA71BC58C4FEE398ED5D75B3C756C8DF33C8B1EED98C1F3D34 E300A98A9FD29CDED57E0802D3A5CFD9CAAF8F331A434C2B38D95E8FF7787C8F 62461AEF96A3F1FFF18CC1038AB03346C3434ADB9E0C988220B6FA09734945B8 B10DF27CB8A77CBDDBC84D5128481A3761386F37042AF46041467474C8D59EA3 F45C0D3271C63DA16208C17C0D654343D80FFA432530BF5266ECE55C0E768A5D FE401D49A03215134C6A91DC65256BE74CAB084F2BB4129F3AFF3F0A44ADB1BA 3A2DF25F8498ACBAE01C06FA509C64BF24D716BD47C1E0FE30672C4BD747DB16 139A4F8F487E4EF624D33B5E43DC1FB8D9CF268B5A2260A36883A52234307E77 57AD5194923600D5631CE466FD08BB7BCE9543B51438EB6B04AB1F6A18C73D5C 68C14211C3167A7ECED5E01BDB0FF01CC9C3D5E40A8C07E85B355BE9E55BD28A 0C583A045D166AD2C610C290B5162262CCF15CB5C6F02449CBE7BE7C3049D977 53FE5876A1A781D73A5E441B9090AFE8AB38B765C8ED0C2D47866D0E6DB558DF 8E945DEEBAEEEFA81445F2B3CBC42E7A51EE886873DD22CA903350F6CD14923D A9C3972B09097BBE3DF19CEF3897FD089463E9F7F123AF7A7F4A1F06D3C9B9C4 8F3F94141C13E77215F6D671ACF3709B4CA65F0537BACBB195487DFDBB0ADE5A 8089E2A6CA318113C04867BFB08C8461A47A2BF8BE8DCF2F5F1C21A1F5F6CD4A EEB07EB60EE253C9BEE5D8A53D561A1A89E63C55C47457C7E197E0089CFCDD00 C8A4262A05B18672F673D0333FEA2D977E986107F8B4298BBF060D3D645FBD77 E78A3E202C938FC8AEEFA7A8F3D10077517364FCAA30DF1EBE3BFF29D567CEDA 1BC37641ABA341A88B678D4ABB750DFFED7FDB51DF08B97A02B2CD797D9DCCEB E7E1793162CB28009CBAD1AEC2327EB5E6208CC432E285E498B3A88E75FA9039 5E23F40CFC43F06753FCCC614A0728487FA2540ADBEAA41DC7CCBDB720CA568A 7FD85EC987034A7F408BEEB4DC3EAA265D4CC015A13EE754F6DA5A7E8DBF0DB0 22A7A7999E06C5AF3C1987D585C5E7CAB07CBF5AE9779869852D0FB62CF15759 23324BD0366B94ECE9BB7E2F659F1ED05322251AEBA023246B52D5A2E2B2B163 5D6C22ECDA9F71E3622274E6975BF55AC6A9D56E75C29A376670D4670B56FC77 AF8C98DEA9AF341C9B0C245FAA5E5AA05DF2819A46941A20106B1C853F30F44D 7FB5FD17BB391D072177DF12E1E48018F66C7F954E240D9C8A15FF9AF2BB84AB 3F3AC0489021AF6193F03CEA369429FE5B2FAB162C50C1636EB32478898FA879 F7680A55FF4463DC2084ED19F5CA894E61422C4CBFF04379DEB05F23E93B114B 9FF74A98E6B8206ED5C2A0159EBC42659973D78B8FB8A16A34823ADB2BAF4239 D99D2314753DE9D305C2DE5685E3E8F7177E423A46DD5FF76C64559F1EC1835B FCE5956D9933532C7BADBB7CF4CD55FA589AD888547036D6E92F6D7F7B81DED1 152317E8B1F2EB393762D23224DD755190FF296E8F9DB4BCE9A2CF0858D7EA3F DDDCF9C57ED1A0C85E3FAFCB55F369A507D0D2DF2553E3DC8FE2B4343FACEAD8 FE7F9E3B78E6C04FE88A5B04A4391CB47CBA4B21350548CE0DD244BD9C4E9E58 4A9A6A065D42573ED673AFE7EE05DEA9709451A3FD0AEFFDB51CEADE8B5CD695 49CA044B73F29CCD0957964BBC0D2316E7235DE8B0A6CA0F1E765183E512F45C 1920AFF5C1FB9C045B1E63F2B5CC7BFFE8721D228468A59E6179E1AB37001871 A0D6732062253981729274F8D83959D21587C85B3E1AB786015BA721032BC3D6 EE0E52BD01DD19C8200B72CD253A4D24CD7E8CF2BB80A9DB0B30B397AD56E947 707DAB7371EE1B2E96D2F960FF896E7844808F10FE100FE4818012A3B2D88448 0D6966CD3C28132F66E7CA042654477A08877EC54ECF496F5C39AC871E7179C6 9028A69CE59B3DED098DBC0A73E5A87ED5DBD33758152F38F29A8B0A727AE45A 12DD471C96A28002364D64B0A398EB0DE7078568C3E7B213EC14FE582AA26F68 D09A9F401A3B31CA55D9E4C2D782B1DF195BBC7D917F81CB103A0EE96F1675E9 DF0F5DC9C1E2E9BCB38CFECC53FEE8D194635E1E136DCDA7B01C851D7945F421 3FD9E36BC82117C896800ED6AD0BCCD5AD2B4DFA57B49F3EC59DBD2C06E09F9B 322037CD12AAA0409482719BD7CD2DDE89FA473EC1DFA2B97470CBC539F4C864 8CF1EAEE5B68B3B70EBBB1F3E7DA89ED30F160126028DB8128B9D91BA9D2625A ED5DD0F695A925F4EDE5CC049192EE549275F14E8E942BE08E7C21E018649DB1 D93B7D79A34A6EC8AD183C9DA1049A8A769713CF7B5E080BD438F91E1BB10DB2 9B12844EE724C2DC0CC1222C30B9E6985282AD26DD1952B5DEAB94600A3DE290 0AE99D25508367B61A91B11ADCF03446ABCC45C0D9B4F6E03D2EEC7B13A7D725 A964F23FF9AEE8227479393962345DC5D6B99F512334E928DC66D7AEA98941AF BA90E3422538E5E6F13F07C82AFC45B269A484C066FE3DD694F301A7B2B8CA17 F5489CBACF8D373F8DDA0D26FAD45CCE342F9E6EEC6A77E199B3B62A6AEAE092 7F73AD0B75C572CFD0E461A1E8DCE6E6EE5B3EC66DCA7DF526A1B76FEAA5D140 4E1B2F8C848283871928BE0B21D86F23F26E186FA5891AA700B1527D4808948C C7252E412D17C213CC58C889959D2A76A84FA49B9D5B9B964275BE67483494FF E50F230689687793384B3FB8DD49B75B0E21C0B5B195933337B261E73B4669B5 0AF3D5999759A503B9A1416608A95FE9984605BE3EE05233EDCC057148CF0916 F9CBA585712A88774D70CA3806470E62436D84AB87CB8860720079167E8D6CF0 5C8053472D1E8BF08CEA25AC1ED848D4C64B3DB69F42A213663AE281807157A0 7F1CE43C7A40517C56F33E6D80029CDD8B2C676510BFC71FE46D1DF17CE70627 405B90728664FE2377A9D13C2A864C3E89B4F191B4F5F821EB71F2F20D07D62F 368753BBCB53344F2F4EAEC0459E58294CF5D5F6D245BA1A70517F63498BF9BE B112F2A0E284CC953A2D77D1EECCC6EF00642B753083509C4FEFBA6BE54F763A 9AB3BCAAFDA9F9AE8AF5BAC78391170D2766C1359CF5AEDA72D176E5101A051A 1BE6E1DB450E383DCA87C0A0333D9FBFE9063950193D9DB979E7CA60E20A87BC 0B4E19471D55A570290A5172F97F55B4515DA0066B66EFAF6B6C417543FFAFB7 6A8999AEB9604937502CDB332200AE82B55828B150E08AF42102191A75E7B5FF 455D2DD21AE063DC682AE8C7C23B593EB71DD9EA968203A8A7B00649F0387518 E4FFA0A4DE062275B2CBE0943001454627C9AEA9CF82BCD1547E04675307374B C896957AD9B15EDED7F2B5FFC38074331878B5F1C16D20C27A067BB6E202F20A D85178CB204F5484416C6110E8692BFA46F8EBC1FE8419732E881DEDF6BAA764 3B800AC4278DF5142C53A3906914F21E62041C83A078EFC7689ECBE0715E922C D08634D46CCB7BB976F79E87620D709B1377302B7772DF2FBBAC8B3E90270F54 0BE54BD4BD3B9010E2FD7F686C8293CF5CCB616CA52B809C10AEA7DE3499CFF1 EF4DD9EDA56B78EC79ADDECB05056CA9B630535F13B4E2F8AFAD2A9FE031D7FD 01AA2D5961B83F963174144A34D096E7A1D54EEC39A54FEB5E10E234A644411F 3C35224022CC19B3C7A75D56A828EB99F3157FD41936D3A544A8E4FC3E84BFF6 BA2E8E72F0C85ADE9F8C4CD2E76D1F18900BE3FAF9333A227317B7811F0246F7 0193A582100CA91928B6A9642363D5011F4610767B86A67D6EC5A704373A48E8 33DF0DF58CC0B766278082A8123E3C5722E777100BC30B1B2017DDE81DD7C4EB BD3E6BB0078CE0033A398F89FB1C73BBEAF76B4BCBE482226FE383B741DDD62B 8F893D582DBBCC8EFB352F53F05F57A1F7F516D6CA605504D7B3A50946007D03 339F16C96387660DF58B4C234F1257747064384E85BC940898FA0C10EBEC0676 644237C34AD9C1FE8CF1008B7ED4940ABD42AFA36352D32ABBBBE612D4D9FCA1 BE75A03D453AF6BAF1E33451780F01CD8CCF07B264E7D06BF2ECC217F38F5D9B 49434E41B50735559AC3C185056962FC3D1C73B5D4457CF1BA8B12C22E5AD0E8 11535C193BB2A6699BE0F9664826A64F7E9515D7ADC147443FFA85E9266DA24F 02375DF9FF8D05F26150FD98460E3AF0C71FA54E185C7AA2220AE9C8F8CB4B59 0B39F3A641FB219AD6C42BB7AA9F12FB3150B3F77AF2361BD3FF667C51F798AD 5C3FA8665C563125C7C443CD5CD881ACA065238CF77A380ECD1927C1DA3FFDE9 F19D3D7A9EFD2D72C6A7DC276F292E9BC72AA9ED1B6024169615298E2BF2A7B5 2FC928C6E2F540B06EA2978A405234D03EE9B21F7D481DD1035B97199368E863 F66AA3C79D9C39FE6FAACD6DB7E2C75FF759C8BA8BF63C2391194DDBD7406B44 5652E522BA8DD6E1F4123040A9388A973305A1255A3F4DF78F908F4920E439AF 20EAD2E208FB1A5603B52AC6B49128B779978772DA8CA2A67848BE1411206CD6 5BB27EC8A1588C5D98EB6F4CD5E17EB154910364BF023F55CFDC1B40A0853ADB EFA0B80959E36B28DB8AD74A7308CE64D05197975F98445B0358910EC23B6B18 DB5B4648E224600F89983E7633B224DC87E762FDC02D59BE3FFCFE4222BDE29C C71B6FB67BA8B8E133FB3A8B7A2071757C81B41EE3AA0BC455B896CEAA2B8F06 A707DD03010B7064C4F89361FA9EEE140578F4FE31BAA5670FA7122F44C35045 CC6277424F0F1A95FAE812626FA49CF383DBCB7F3AF5D9B554EBF21083FAD63D 1BB135C525A81628B0B5CB7E676E9924D3D4FB8A84DDE03AA50ADA055CEBADAA E09302DDCCD70F36C2B3240EFD73A49E7B2071E28090FFDA020ECD67570C3424 20D8E3F5E8DB49A5AE36E0CB4F098C9F926465AE9DCC755A356D491113D0EEF4 A8E43087046200AB7B8AEF2823AD257AC21A8E7DB6132E9E4CD948DA3FE4F7AC 738B81E7490703D6987AD2C9E9EF7CD7A3F441753B6FAC55008178D37944F15F 461823B464A0A518741EF7B6E3ED700390DDDE1E48EB043D5593F18FC0433001 481CDA5CEFB4777E6F57728A36FBE79D8143BAF7C0B625F94B52103FCAEEBBA0 50088A5C25DAB80AB7C54232EA9CB7F2784C721CED28742A87D0DF35C87BBA6B 55C02BD4266F9B042E842A7D3114A30708ED508E7EDAF898DDE69383CF0D59CE 333DDF0CE8C46E9F154457C527BDFDCC44BEEE3E96EDB54E22F59ECCF8D07852 70BF60F5518F8D2410311969ECAF05F219E7737B29E2C05A947DDF25EEC49072 163092782D4F288FFB8BE033254C4B07914623DE9D923A20EFB7EB4A836BD1B3 8442397FA63133452B6FF8420B0A8BA842720991B8EB2D12D85A6095B4F0BB47 F76573826573F626DAE9D618064E260FEB579422432A3E0DE66DC6664F8890E8 A0C796C4F137FC7BB40E86BE2EA1C92BB9F406A665C80C576255CF3B6B1C9834 7E07E14182694290C647B7E7BDB09969E2D3AD86D02F30F9695CB3A27F28B4C5 381EFD9D6F31A669F7A1848C5FA35EAF559BBB97A773A234A5CFBB84E7318D5F 650326941F17DF93DFC850E84C7E8BB9351730B0B11974B65C94E548977EE80C 965CDF511F416EB792752AD559BCF02A848B450F96CB283A272690940C511886 53B9F281E5645FD79C88ABDD114659B92A7CA71A52616F18A086A31A70DFFBF8 A603D7951CAC7C2E219B8947E5F3FB4FFE2AB3DA6439B923C7B1DE7214856F61 A76F24EE24ECC0090149B046517D1DF7D33AAE860CC289B6DB70B23F65923E82 62B38C2EF08F5B1C90F9A25DD4DA24F51F97654F396A53AC62F170A4E20400F2 915A1958DFCACB8CE0A6EBD46CB2B3C98443759C7BD640311D6D8EBA41BB5EFD 83863665962B1335E6F0D085EC4C0A5BDBC2B501EED4B6B51FAD75955F981B98 66404E71021C873E190765021C23D4A9F68B69DCB5E721A3E06995E730F346E3 43A0A7FD889C24C50E31C029D332A3251806CCB019834555F0B9131A940D70FA D8EE7FD0E9D4D7FD7D122970AECAF7BF3984835A3327875C0A1EFFFC05A03446 60D9F10B143ED3A0DA71F0237805CD7E4E6BA0069229B5DD865E2751C4CA2BCD EB760ADC732AA65BEB3BD1DDCA0F571A9435493D4425136B9AFABFF40EA52729 8BF4D9546B315884CBE8BC828FAB5F134A76E6D3EAA43103D7B8F7EC33651177 A408B1D780A73CE10217200A162CA102E41742C37BFDB37AAC9ECF6E70920571 3CE59742B3B709EB34E1EEE1132CB8AAF71DB8AC46B5B0EB1C39246A38434812 01EC7997641D21F3B897101F486502361CB23C3F5BA90F1C99A8326231606015 0F34712FAC7D6CD1BEF3BCB965AC96AC45A0346E6CD4797145420F14AD68C71F B9BD1A9456C7CD64C203C2CB425936FF00A4C4579F6EC98FA485C4B6830C7C5E 7C0694AAC2C149629B38EF0D206FDEF89C90014A97273A301D4865CF4681A17F C4005495A9D88454D98734D1DD866A49A924D8F308D19A8A74FDE0ED791C5E6E 7951B6CEB8284F779AFDE3B6EBB113FBE118C060D570CE6BE25E86398AB975EA 064AC6DFAF40E87E59B2A40CF2033550A0A9F98A9C7072C9C2F09358AEFF42B4 C32E2933A51326DDBB1E140348CED9D259AF687B75E5FF330896A929E5166572 82A9A5201F7167F4EBC0ED94E37D141F81078E06162FA8CD6B01B4DCC456F2F2 69426AB227B655D1F792D0B21489B6BC74FEA41E4D51B3A434EF8B567F84CEB5 6B301824CA9B3F58E3C873A0FF267399CA0ECB5E579CC8D0A87AACE13C6608F0 3299153AA7932B0A5112B3907A7BD7F2AEE9212E0D2E14F712CB4AC419B05E1E 9FF36CA58FAEFE1042F3C70C036343F71C98BACEE5025FE90E31C9FC008E5E8F 48EB7237B217C7B72CA802240F271853A21C815E2B32479F51821F9B13240CB9 CC89CE087A3B7035FF279DADC0A994E98788AB3381AD4FCC44612EF270E09C58 781C45097BBD5BAB3F469FF1DB5B14C09C543080EC018176291C5B6A01D0B2E4 658F7FDE18B7F60A44BD6095B56CE2E505F263624230F766B7C4A76371EA9683 E2995E291F1834036347FD9E846D4D3417DDCC437ED6737C428CBB5782E1B9A4 CE1B0644B977512D24FED8DEE385579774272F805981EDB5CFD8B83F81404522 4E8F4E3A727130005C72BD616AB78621DC13BC88A56063E51CFE4FCAC84902EF 99DA9099427873D1788DABD31F265653DEF6E9D2345ED8B97EC3DA0B288F564B B78E015ED141D5CB89005CBBFC4B6C3E4463FB1B5D7DFF7FFA3470C18B9589B1 48FEAACF6BDA885B8B95C65F195060D9A9099CB5319AAC754DA15C8995BE1703 3F5CCCABF238F6EED47B81C7A13A0F46C48192F95F43B64A13EDB6DBC38ED240 2B738446BE2C82D24C1F20212D7D4C35E40620540025A2F2AAB3AEB04E19B3DA E9FDC843A38521CF1BD7806CAD6C9BE7DB5615877E767251B9476D52CF738949 0B35875A2C649DC553172F59BEBABCE395D3AD45471E3EC2ADF869257B8C3ED5 E65CB619F24621149450CD1121DA173661C71C5CA9A9C58D01E55A6204756973 2387BDA6FE23F9D9190608F6D9643EE19EA5ECB4F5BF8C1FF3646201C1A21394 8BA1C6575E71D6D52B28DF4115A80FD9C6DF772555EF47D949A19589AB98C9C3 FCA3A75F7A55BBE290570A10CEF8B75EF50455480C460F58FD3A9D5AF77D934B 8AD2D7459F7ADB8AD557C72426F9A1910DA6896B5EFFF02106C17C1DB05643C5 70B00B02576E583C5429E12C44D76EC7F8956541FB89043728211047C0E859D7 5E0C665D5F186AF7BCD2C792764EA374D033FBD9816EF7613B82046E3145C123 58DF75FE67F50F7D3E5453E4F15B79B8BF6E22BD8417D596B0957AA8C874C039 851AF0D4298B99662A0C359757F5B7CFD8F7558EF79D5387E25A81610BC2B35E 672DEB855171E25EF06B1C2DBC1993E732BC2EE8F0D4EC424BA661BB20894BB8 5E2DB3E8D3A7D55BDC7EFA4CCAF72CEE8FBB56BA846952D2B866AD03ACCA0783 43B8A69A4055AAACBEF8B3EF72B190B38BD12B90D7E42A3D810FB43CD192FE79 B0204928A37291EF98F3B811ED89A528476FA491FD31FE97C53E906A83B1D87D CE6005C34F0CA32B28525DAE84A40D6051260C6378E5B9BC9A51D28361DC8A64 A3E3E3DB67569B7D9A67AB4A80F926398CB563A61310D66E6BFFE868B6924556 1501918F9D71CE2B2E285C9B1E81559E9B8FE30E6FD77C62C7C5129B2612847A 71A08645CD1767CAD68F83A54790FC3F31114B6BA1A6505FE64393123CD84139 65BC6B94F1DEE8B4F0574764325E937B9C74115578833C5158A93EC806700A3D C1573C7840B655A2699FE2B5C3CE468CC057167B2B3DCC63D718023B1A6C4A68 F34293C3FAB27B352791B7FEF132A38CC12BE37E652FBF6F6B018289FD34757F 0B0E47DABB8505C8EC6047FE599A66F2DB475B2E136CC125CBAB3583E138C397 9B1B5C7AA5A3C5BDAF3E336090F307594FC729650BA398CC15B47D63B13299FA DB12B803DCD99DBE017208359C6376B56C1328434A8B7DA7AB9C4BBD5F91349E FBCD14A321C2BCFEA6C8A3BA0BD91031D23593910FEA1202BB50B6450F122BC1 367B5D08D2A48F4781B73E4D39D4ADACC130CB8B15A68B19CAF698256821E95C 0F73766B82D5D8F8FA27CA3218449F5557EC4E2F296AEF9EAC01FC448E502FE5 D2CAEAEAA961B9D265E1D8BFF6AA48055B0B2F24E64A33C5B7E5B059DD58CCB9 1CADB6185A291E6F4909AAE31B6584AD5FD7D95D9B28139892B0261DD35E7580 5D834F27B0C8C749320821529527E598E1919647EA88785D2CF80FFD8DE5DD99 417850F3D020DC9ED35802344797F7EB864017018D92C3E076DD28735B5EC4A9 581E62308F77237B054A5B19C3F37B96BEA74550CBED4657F304EE74BFE4FFAA 3DB410CA951167A7837DE7847EDFD14E13334A43942762A6B743781CEEBD3247 FFB56376B22D7BA50F7E93E6DE32EB5F2380C8ED01C75CFD4A3162300B2338D3 0A912132E2732D0FA6E907798C6CB6EAE6288E771EC17F7FB9868B952A303298 ACA73BC087DD4CBF0F6B036058584C3AB270AC4E29A4A537EC3864C294B94512 430F8EC4BBF8C37CA1A3FADA9F94A9AF22103E6A4722B3B8826913ECEE90EE18 24898BC76B3B7FD39C3DEAD73E4A5C04955757244ABE1F8E14710BBEEEB916BF D6B07D219F3144778DBFEA1A72418089D1AFC61F1C66CFF15EA66B2FE77B3019 EF6AC0D5FF2DD3E4C5B9905523D9B588D6B74A4BAAD3F2908604F9BECC272A11 5CD867D7BAEE7FFF183F4D5602C410B90C20674E691551C63510D0C81A94557E 59CC28F50D72181B9BF3E9463355C25768B63D21E632DECE169324942AC7A10A C34E8F5C5C5308945376F7F0DD27F1519D11BFFC783A5B686D4B9BF0D212BD9B 7919E07B6E4D9E5C65CE6CAAC2636DCE74E285671C18F066A3F9B0A011CA3EA3 EE913D009F1145205640E38314071F740CD4A761181DF70D3FF4A5A0E304375A CEA94E872AFB355EF6B7C7C5133EFA46D1D3080C6B72AE995CB91AA2D23D1270 784D7170FFC5B3E7DF99228F464C85EC4588D67624F48B3A38CD2BE7582C0A15 9FB9381028C22EF3C553ECD3200AFC2873131E83D6C8CDDABC7F436CE7115354 92CD18784589B3B1DB853EE94DE1AF0461B9461F397B143E4E05297DF48127DD F3ED3A17FECBAFA051714900AF9DB8BF9FAE3814A8245BE9C4B44EBD36922E92 028674EAB3185CB7D6E9BB9849DEAA1A9F83B44079A59DB6C396EE085239575B AA041A1E5CF10AA5AFB3F0356F0DA9F6C7BD0274309F611E388D0D12A9AF85AC A08E46639A43FD51A0D8DEBA527DF739BD2E06B27B42BA79A4BAA1D77D0CB5AE EA9F3D917911FD0A611BD4AF5B230D0367330D0478996D81E8DA09881EF06F53 7FA0D46CCA77B2624551B25699FE18930E342FDF9DCCF8A0F07D8D35AFB5B68E 4C13728A66CEC1D45031CD2DF7DD9AC30584DD5BEC512399AB6A94931E2B9B72 531CCD6D6B9E82A5780E48042A94B57EC3ADCBFD49F10BEDC69D991BEDECED25 022EC818DEB9E74E5E5BA440EAFB7ACD1BC7C01605FF2803C5B385811DD8B1A3 BE005250728E9F69E96618CC27F7EAF59B019952425B020CC49EDD5CA09E3543 F6641E09C8B14266A666C30A98E4151ED0649FFB5BF5DAA620894CBB62730EFF B19A37F2EE43A2718F52565E4D970C5738E5BE402F790B17CEDF093B006B3497 9F8B0A49EDD01608027FA99E43E8DB9F3FA51BD84D860F6D2EC27FC9C6A6497E C5B4B5FB0D6EBE88F74620A13BD054CB5B1EB4D15EE5C94C1F0F8FB8DE1A57E0 1F063FDE994D3C60776C95769D01B999484509E166A1C5837043E4329CE2E670 5B54FF6BE86864A1A85BCCE4F58B432424D659BB91BD1DF74864CA725BB64CDC 56DA2930EDE601A4AF00F2DEC9EF31C46D40597AAFA7A24668443E37FF045EEA E7210F0CCD03CEF2FAE3237BDA3C640EDAC7CF0507B468A67916D8C3901DDBB8 C147148C71096E34FFD6FF2689AB8B6D7C7B9E9936D30511B701FB9A30188149 6EFECD944707CDC9D318C75FBC17A8EB337920F042AE1B0146DD793354EF3EE4 C48CD0166EBB56752954BA727609F788FB1681541A73B7DFCF96E1B06B7EF89E B56E4B4F2095DF983909609663D8E3AAF13123F3560F8C58C4CD8C4FC150C3BE 8D552904FB5330BFD2517E732C5995A701E74D1DD689631D32CDFE50E4036460 8A3A69B8023AA6A82726E61B1FD87D956B27F8450F7A3F38284A98C2F4C4080F AA085F20AF76B987A44D647CD0CE22030A1C2BC066E817B1CBAB8AD7E33F06D3 1853C1D8AE458900BEDE99F9A73CA6E646CD05D3969EEC424DA6BF6DE2596C72 B829A6CA132C67041FD3BD9054DEAF7F594CE6F4112CEB09D733F4BFFE3ED0A4 03C2B8594AF3AE3CFBD64856D6A5EBC9BBE73F36E1D4E90E05F831D2D03BDD2C 4D051564675D14A98B80BEE9B2218D3C1381F47E6BC9691344D9B22062923040 DEA39592E41AB628CB361D3A4D32487D1DC002BE00CBCACADC8027228F077D82 C73C76370F84D2B75695903ED40E52C44DEEB0D5690A97FDCF9931C7FA203836 EE4D21BABB657479DD047D48100FC21198F4FB337563272C9EC7791ECB2817A1 69CD21CB0E5FF1A3DDCE3E7CF73DEA03CC2B298AF55965460B6E09CC4E3631E1 F8348A9771134B602D8A2BA67D65A77F2A8BA7D68D5721DEA8B2CAD5CA66E9E7 3A013CF0749663D048A9E4BD55D6F834CEB12B7029560D37BBCF5AD530A1B978 CBB95A57132293DFC65A2209DF5C0BE7142DF10F6D27FF0AD334FD5AD0F4D2A0 EA7D5A98771547AC7A13E958026312495AD41CA980F08ED4098CEBA1EE04629C 8F327B3A68153A1C4B6450F479CF3493E368ADCA6CEBC49E41EE7F7B7053B4D9 EDD3B4A0F70786C05EBEBFBFCF67271DA5E7E9EDA1B031F532C28B36AFED72C3 C4B8589B9C3421CB472CEF2E0D75E95FFE4011129DB121FD680883327F2656B0 49703A6C9AD5E356DB8F293E8ACCEF60399B4979991EEEDC98C131C11D0D0AA8 904D995D096CB22DF54D8042C8E105A2C27427FEBCD9989C2F2B4268005C7981 49652788F821D960F1CBA9F6702E83C8A43C6D47A13A5C59951482EC72E6F39D 4D3F7D4EA9D6DD6CDF0BD062822B3D78FCDE47D6F9BE09C00029157B1A68BFB6 92DB339D4F5FD1C7DC8F2EAB78F1668F8D5553981A6C544D0366D74BF24ECB0D 363C0356DBE83494EA66C38EDBCEDACDC2F77C00A13099245909ABAD2613208A 197D7CE44C85EB9965FFD37C7E2874F759DE118AFA7D7288FAC0C14C8751D38B EBBD986C8742A9838D59731A4B5465B6DED862387624BF415C111E33C3784414 4DFE874487F4D0CBB7B946FBE8B10FFB2CC2E2957A6F6C4F6F0A9D3F0E3DE7D6 0B126ED870C9F8DAC5843351CC524FCD0B002C2DCB80CA864B6624ECA310C681 35359396227A7C1B7642F3428C4A77191AB13E55B69D276B1F9E8E980829777F D689F4290C36FE55FA0104199A28B8B9DE2869F4935CD02D4FB53D3210D5DE4A 2674D01C40F8523334117C1A48BC2386514C61F2546F39290C4F7EC4375ADE92 A162C8CB3987D892FCB94143DE636CD4B012E69CF3EF68BEE302B4B7AFC883B8 E76F3E6E03BCC4E4A5635220AD785D6BFCCFCCB8F61E4910B2CA208696AE476C 06C875505A34E5EB392092DDF3F539160E65B0AF7387CF4FB0F91FE720E2 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFBX1440 %!FontType1-1.0: SFBX1440 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecbx1440, tcbx1440, labx1440, lbbx1440, lcbx1440, rxbx1440. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Bold Extended) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Bold) def end readonly def /FontName /SFBX1440 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-218 -316 1652 915}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E4875AA0E2F461BA16EADB32842B6D00C76EFC613FE56C 378A7118B0589B3EE5425457AE310AFB3829876138A59F58D965843B709A0F4F D1AD54875BBADFC803A755669491D9E98262991B9634084E8E2BE46EF805B219 D18DE35ADE9A8DBAB7AB761864BFB6A27E5B421C32CEE4569624D9308A32B426 FCFA5CEB883444393CD7A58F9CD522BA73E17492DDABB7E00B2F6BE47F585EB7 FDDBFF33F1B5E5465287717D1580105BF3929C09EC621CEE9606EC49D7051A00 11935EE728A2FD47BFCCF00C93EE54910F77C1CB8622B9CA129D466746BFE1B0 594A9F0C785F6CA67161EA1480AD4EC6781B9CAE9536F5D3AC6D447F16821F77 AE2705279CF3DF4E1E9AED81A0CBEFBD61808E2D59AD970264A5B66D1F399DA2 55BA0AAC8EF1A1E16FD8240D577F5E00E0040EEBCC193F074FEC48DF30882551 E23D64EF84283F9640AC5F60EB1F26CDB79078AB0C0D97D1D6297D092380D4B6 6A2099F06A513A78A3C3B82A6DBD985A0DCED7150B19FA42991A3D408FF95978 15D309AACEA8C5C0AE812F50330CCBF47B4759C550D49173127DECF05D783DB0 978A366ABD3CA7D9BBB6652459A5E19F9630CE75C2BC7BDFBFE0EA3D8098CBB1 98CBE02F196C0A0C5E976DECE72778358CF8D0A79A8B5629A6322716CBFBDEE4 934E8782E716185235712845BBD03896BB5C45F3ABFC920F7595F7E64231EC76 6FD974A9546D7D4EF18E899A4ED4599128805F5F221014E3FCFA9DED61B94339 41A5D49FDE9003CCB87F12C13E9071E75E133F9A94746DB7CB534D1AEC95D57B 12D2EEE881D8E9EF87B4DD2118087A03CF79E3F4CB04601265FAB3AFF04E83D0 E9927B7F75BC0482995C51E6BBBE93985558AEAC697BCFFDBE3B657299835C47 63A6985CB387387BDD3C19684AD85D74AEF3F5ECE47A4507A5A161C32929867F ECEA06E73290E29A0CEE1EBF17AA9F7497975BCC04E2255DBDC15B5BCA10DB82 A08487FC064D626BA54D3765365BA75142600308DEACE428BB73B70041FD50BA 9A0DE43CFEE8737FC0EADF3FAA525042F972FAE51A0B0538FECB246C8276C5A7 698AFB038EE8315657C2FF0E631D16D7B35AB356E98C4852402731B1E7A79621 ACE90F9F56A47C16373E04F3E875B734CA0E705F28A9792E72655F4CF13266AF E8AE202EEC55E2278AB3E9CA87CCBC6CFB22842FE6408B5E53198522C434869A 0C67906B55C3B35F5D15667D04A4E55753145228592C4C8FD307763A3CE4A6ED EA771A3852812CC5D190E130D25BEB3868DC84FE0F3EE94BE87BA9AA105823B0 85E179913487290CC04CD039FB34D9EACA56E7E1B0F3D3C76B8D7AAFD08B7CFA CAB3BCD6697C7F11E8CB4A9D15DD5F56DF4FFBF19FD303AF03B42134373CF8A4 0C3D75B079C508D2D5E9B7BFA63949C6C3F6ACDB5B55C268CA4EF2AFE35798B9 08F5087CBF8C7E7EC0E9DB507F1DC32DA7C5CB636C5D632E91864909E4EC1201 4E33B72BD8EF887FBB5314868323AA71613301D6A4D5D54C632C968C9361BE5E 42DC9C42A738E9CE377C2C5263F85D216DF3697FF039F759090FBA65CE6E9AD0 8A7F035020F72E625FDEF6C38ACD3B1982F655B10A762A9164587DBA6DDA6D6D 4EEC20824BD3150416FFCABA5DBEAAA5533F3FD5742AC798604B29286261F305 D2C995E01EA145A96B1B1CD6C9CA6EF42DEEA17246576BF1EFCE9A8C95E447FD 020938E02C1D26003FC51B9B845C1AC0711A55C6C0DDCE98CB4DE8AC3CC9FCB3 772DFF81306027235D2CEF17B3B44F4DE5338B95073834D79F74EBB11CD2A431 FE3103AF0DA9FB3F148B3C4F2213690D7E1DB47B800B006887577A6E2C553DB4 457D94ADE420B852FF8A1F9E63D05D28B1B49638CD589B8E089DBDE2133F3540 E1232B745025D25FA16F1AFE32A44BADCEC8190320BFB07B8D314CBB30EAB183 C398377A8B3FD8E0864FF2F95B1A8F65FDC80E3F59455005CF89589C564BE309 ED55FB41D84F04AD9F17160941A797086750E57C8B3C1C9228E4FDC6BAC8A3A2 CBD21CD3A62A29B60894D0D1994BC19ACED21DA7797BED307D53E1ECC02D9B27 CE56376867A124EFDC7811C168273F8F2C5A5134CB028DE375C405756E5C5613 1BBED1C34422C8A85C4123C11544005BD8C4203897CC9B65D2F728DCE0876AC2 0486F7D845B1EDCB542ABD1410D8C03AFB3029ADCFE2BD056E837A08DDA7B66A C8339FB858FA84C30D28D89D98EEF722FC9EE46958A53C622123907B4E9050E5 13A9FAFE2DA4119B317AE028A280BCDDB45D9AA70DD9CC8E7DB77CF7193C93E8 23696380552B2277B7C69443C8922F2845643E74FD3632E67034A7B72C0CDDFD AEFAB79879360490EC0AA4A4BD7DDC21C2B74E64288CB8E60588DBB192A0014E 80BF9F9FEB27C2D8530825E68883E1DE18E3262F9391A0ED0E7A3D2EE713CE38 4BBC5B154BCF99217F8DE851FA4D9EFECE5E28DEFF5011A06D5A3439C338E6A4 7CBA39AE6DA19468F8185B21CA2629FDC600FFF5C9580B3E2E7557716A683727 15EAD7D8545C11F061463F09726B9F3174BF88E4B7CE8F110BC72462F08C7498 98EF2B51D9DC1B256127EDAAD6DCE266E94137FCDD88882DCDF4301D931C997F 589170D82A0ACB73580BA4030715A6133C7929BF0F08F586A8513058BD937737 ED6FA58D0496515D1B264C93CF0C156F51920356A5E33226D8E748A96DE01F45 E3776809003E6D283D4C511D52B96C2466FE194D253C3234BF45D2EBFECAB2F1 BF8D6EB6EEEA1134788B1083AB91E1376AEC28F7A626F8A214762B64C0E1E1DA A031DEC31BC63DF9EEC5E2A3BE34C39A4DA2050F4CCC3C7439CCCD8AD58F4C24 DDAD2334BDF9A390CB2E1C51D2184989802EA2981180D66B2A4EBD6E2FFE0F56 4ADEBC3013D533E5D9D6EB14058281335ACFA705F1CAF203698184EB0F6F28FF 3893BC62D9B6CBDF3078FA1141201BA46E311A4A793048107586B13CD2BBC825 84B6F8FAC2F904F1AAB9129E639189365E4CBE015BF312EAE4271B27689C9969 A78E9D5A39141AAF786D5195F016DF008ACDF9D23CF6D17699B54ACB77531FC6 0DF9E5E30AC4FB02F9A8A04CA7FB021A67C49BD73551EE33D8347F92508F6E04 02BD9828BDE367D12F9A5DC0A06F7528FDDC6102FECAE58D2A7162FFB88A41A7 72BCECC4A90327065C0F6F58CD177CA56D015F934406642BE1ADDD26DD780AE1 0B38BADBEBD0CB6355470557459D7AD4E8D86E3CC62600301076763F94D3C156 C2755A08FA58A8917CA80C31C45E2CDA98B0E7F904534CBC8C49FC0FCBC50CA1 46A626C909CA37AC9AF549C06ADBF2F8994A6BA4E313A646C97BC507260CAC9F 0847B2723B1FD08C1AE0C3A90864CA6025F0C790B2615D87EB3C2DBE90C79FE2 4F1A8368C2301E3DE6320E4F7F571EA1D80C45283A7F60D6868BD38CB2889D23 EC2BB5E90E23AA96AD55D81795CDA8C21B738351E226C44A4426027713EA65D7 1A4A5E6C8CFC9FC38F8F2EED99D23A99B7C4EF5821393B4AE1FDAACE60D5A600 9CC1644BCDB9A47C5F695F6BFC7B1A41B641BB1A506B03CA1FFD3F22C2AE7352 47FA120EDE4E5300648677894724D13A676C071F4EF3E84242BE39FD6EAFD991 B8C6FDF9FE1DDB1815D29E4A3A22DD7685FEC66BC5A81CF894930AA638706E2E ACA33026379BBF46A618D8F66D65BEFCD869F009155E87FE3AF852E839CD5ACE 6E2A0119B5772316A2FCAF0BC5CEFAC0C07BBCEB51E7B22833F54B876DD8797D 2B8A8CC58EBAAF03B07C9F5B68D68B27DA27EE97737C7D1AA33264DC83402B8F 9F05B00ACF13A6D639BBD9DEB0B3B90C04471362FE0B422890A6E424B703A3B0 5D871D43A27E2121D4D20CDDC1E160FD5C97D2CF680A107BB21E02B7FA0D331B 5D0662B4FE3DB0EBB35496A4B55F95151805F2EFFA0034DB8C9D30DA6008CFCA FCE32B7C0B2501E3ECEAF367E1DE67088130A07C1DA3EB452F929BD8F3C79860 9482147DB6F8688CBB543F9AB18CADC24B14EE5388592BD478B2CDA73CC652DF BF9497E34EE79C367DA074BDBD56B5B411CBAEB961956C9A98A22BAE29AE3805 2D10B536DF4AB5AD5A3C8BB4F51DFB1EC27932CE46A69D77B99233479FC9E095 ABF00763CFB145C0DB6E51FB9A5ECCECE43AF3D0044C4AC6EB75616404C07814 F63E7E6A6DC3079B9F15DE202D6F8BA6AD48D934EBD8860E78086CC4991C09E9 38354A0C68937970064E752B9E5C612529C9B9A1CB54A3BE19E1A0CB2353495C 0945D09871001400B2B75AB5B810F297F4FD1C087564AA39AB966589C1EF1603 0B59A64029BBB643503C8FF4152158F9EEAC59113402DEDAE8E9405DBE46B78C DD8C1F27E280953FB8FC62D84EE9FB383C131BE8F85C95571926E0240EA4F930 DDB4CD897B15813F788E17320F4556B2A41CB83147D06B580C3A67A90ABB7014 FC16FBCB4AA18617D0FFB24E731CD17E5BC41DBB8BC8D65ACFA569DF0709204F 0BA39D73D43E91115F3BE196C9252A0441B9E9E66869724B82B61DBDC1C6F261 121C66525184921BBA169218976FF8B593547E5BA9CEB548E54EA57F452E3896 BCA6B355016E9772CF003361E12F2569A42DF985415F2ABEC93519F85D5CCC07 C07B6D3059CD72BE529B96547A2A8BC0F291309CBDB2032C787F32D062500248 D94FB243BC6C65BAD30515FB0058AFC3CCF8B7FB7FA71528AB20FD66E30EBA19 D3263E56A8E4CA3919DD362E1A631F6C028D065B8B0570F27483514EA2316F9B E8F1E7842E0406D0770CA937FF7D516D8F22C8F7AB21C9BFDD5FB6A3EB9A8A4C CAF794F922361EA7984902A63E039B6FA09CC7A7204076F9FF18B37A143FC607 09344274B026E8C2A0F1A167444F3636F7220B1B569D60627641CADA9751CA57 27BC41F581DFFC5021E4FBA621CF27AFD953C2E8EA728F26CDDEC6449AEB7269 86BEFEF72D91D30C2F804215434B2DB8C99A27587045571BA21A4D8821202836 DFE33E7C783A1C04A444FA4AED1FB046CB95FEF4DC3F5D4E9DDC3FCFB189C9B5 512F2CC36C7A40CBBB96C89A3D0A0426C5357F7F712BE98EEB5362A67A12D1C1 2B5A5548C8E22E9DEEA79A210FC8D93F0BB178B36E5C41F9626085C94C8455D1 11E0F5AA4EAF9537010B07EDA49733A27ED7E573BC74AB93B42D625F937127BF 301D1F805FBBC2B0A3D09383E086FE312E548758C771FA68B1555C02ACB743A5 9384F0204E19F1B558FB4ECA83FA4572B3CA19A49432C4DC5E6744D3D19D5185 ACA7EAB87C34A0A211DAAB7DD2027469CED155D216CD428EA2B13CA3BC741690 938016E74A9725CF1209168E68C0A6B5EFE740F644E197522E88C941526C7811 B7A83BC03851EC33B6D56F5BD022F4EF4B5B2B0A5F7DCAF841ACC7CE18093417 1169D8669C5D711A3D47015561B50A9784447B363872C805A78A4C11B426EE80 4942A07BA3090708B98B1EFD70414E57D4042F81CDC0EFFAE7F99936ED273E2C 7B4349D3C803D2E7C6B298B32B59826BC6E458F0D8A43E34700DB1229CF0F762 58639F4FB3F7422FC91F216AB382AC951464418C326B5E42682E9F4A84EA8286 98BED9792557A26E6E104A080B90090F78CEAAC2E92F4608AC9063FF90376492 3197C303F5FA2B258BBE0B7EE204C0691338EF29C178C0A82E1EF5332C61623C 1E82C61DC4327D30B4B88CF4DA3AAB2CBCCE9E91164223C03AEF5A18D4380E4B BC02B83B5BB9D562A05B63B409DF20C182AE9EFD4BEF8D1F22FAD6A28B3F0E4E F0228A3B51158F2D234A96C10FB17EA26549517E0D292F8188D0A4B2BC7841D3 548078A1D224F3681D8D2D8B467BBC003D420B4B56C7F6C6BE63344998E91AC9 C177168F047E593115148840254EDDDF4833B5B48F8A92F37B0298BCCDCB31D0 8249027D050C909E9252D1E91FF703B4FC8F5B40A37C911B616DEB3ECF4B7194 86F719117362E24C324335A5411ECC7BA802E945602657190A61F29068B3C9B2 F410C55C0A720BE26B2EEAA9BD18EA4347CC7C797466062E4DC6C940133F9797 F172A70EB2D7A48EE9F803E3C9F6D68B2E5F651735173D22A9645EDE0693356B 564F0AB60F558AF4C9729EC1672902C0442B28D2E2BA32941BCBF0B7EDE7186C FC7CBA3E7E6432C4420B870792BCE5BDF0FBE0A0B46F7ECD10D8390E91A587DC 9F82B6BE089C60867D844A052AF3F25690A5D28CC037546AF5C6C8E0F6A60CC8 F8CABD064949F62EEA444BEB2FCF16D4AE84E928FDC8155030869E1529250622 6BF88DD99F3323786E4FB400B9A1A37ED8019B294E97386886EF0D79338C083C 728998BD1AC0D43F1AA653A9991C24AF51972709F3D504BC54D97E21C230B911 BADFAE94C5789D864D85AAED9BA870FEE08C99FDF1EB77AEDEFEDAB18C6B9196 DC520D599788A86F9096A0F39C297BC06D7A73FEA9D1AE580701ECA6AE8458D2 CC5B7900EEA5E61D3970A8E069121F3566A8FD1B9ED0F05B39EED9A4B69F4881 D91B2C7FCA29258CF7AD697B1A54AEBEBDB8C753212CCCC9BA822F8DED437AC9 B7A2D6B602F5B3E136BCEE7A1B5A6C364F15AB4729215EEE75B087251284B145 3E2FD2F2C26C79ACD0E11ABD054DF78F7233BD99132535224C724F0D03DFE321 AA77AD96270F0C23D72E0E172C8AC420BD0DA240FDB4B1999A47A5588EED8FF8 843DFDCC251B505F9F5A80DA6F99F601D495FF18182FBEDA5E0998C4B620D656 61CD3809C10413AF0BA074FBAFDD10AA94330D7F6BDDC249097FB80FF907EF86 41A755898C004F831ECBA1C6E90825E410C04A558C6857AE5CBCB441E9B74F7C 0D54BD95F313C1F14C320D8BDAF66CD91BEEFFFDD234A21FD81C60A2DFD883DC 48BA1CCD8368BCDE5BA120DA482DB94A661CE600FFA01D586FFFC05DD36F778D 8BACE7F5AEF4A9AA5192144E65B0F10EB696F21930ECE3CA6A025B0EC8953AD6 C2F443F2718C33E729700AEF861D6B8ABE14EE86623A1DFCD1CFC7725D52551B AF3D2187685FC2B48923A83CE875FF3489FADDFFBC47882A5DAD552CE5B02A88 D47844071CA1862050C55961581CDBD5E2D5B3AC065B4DE49CD5087B6F2DB3CB 010C0898282051FB5E06385B5819398DBD3FDD45B5F5A18A5544EC30B6691EE0 F0B1FF208368AACA89B74F5234FEC5732771684619EC8E2D95998E840EF13CB1 A29D7438C4A02CEA00006DA31157A08C51553B806DF4EB45A4B062E1DD1B3231 33D69CCE7756E5E5DEA26470B231194E9F050D47731B05B17E627B68C4C1C9FB EDD240AA3947D7578B0FC696723E8C52F30580DE8B7CD982EF32EAC93508D544 A070C12CD77701B9A16DAD8F1C576296E39B5243489935816F201E58AB078CFC 02DFA5BB3138561A4E71920B4A195DCD10E13CA8990DCED9AF70CEAA633D7B4E D7B8ABB45C025943692D4DFB1E628A4499946ACD4A643BCD5B18DF45C28F916C 8750E0A4F7B79B49C0F2ED4395E4304274B0261417F5EBC99E1C5D1A0BC88F0D 4AA0D42BE364B046992248D93379FD38424F2F4D9B3EB2B8262D6F40201D501D A9BE93A5DD581A3710687D040FA435EF6AE78766657EBADF1BA748BD6F245DB7 52972F028E73F2316B8FEADC5C22F767E211AE9F92D5C55490AF3CF392611266 EBF2A4004A089BAECC35E02CD0C14BCAA3C3619B45795C4D2C82DC30F78DCDCA 0C179B7644517394AEC07F7494ECE1A7B6587B86897AF068D2B7D258F9672959 DF6540680DDB6FBE126FE61C3BAD677BCCDE708FC1DA5F510806328186199C3B BAAB24862F05BA793DB31D5E979F33CC01A06CB1368F56B10F6FCE73C4B7BE0B F44BC40A21CAB57C5EF59318F155CF537A9EA529B41BBE006A4EBC447DB71213 10F54E5EAA28202676EC35E129DCF3221EAA22BC8C71256BC602488CBF10A628 89512238ACDD24422887A74EB43265417493DDE1B88BC2A0282E4037CCE936BB 412832296193C700E02D24F6990A4E2CAD5215A9A3E2B926AA680E2F12B76852 6D0450FDEABC51DB2FF3338D732167761F12FF22794BEB8FD23F075861CCDCE7 37EB44FB2FBA950F23EA0C2159F02112467F92E881D8E9EF87B25943ABD6F2D4 8C4CC32FE4D3394F74C6FB102D68B5F13CEEE6B9E23A0A45A3D1891A1421CE0C 69502E216DAC7BFF3127D068314C1885206AC8BA6EEFD1C458B9F2751C67BA83 F760ECD830186C1DEE5D73C1C5BECB4644AC8A2A53B9ECB870DCD89031AE30BF 39EB6C73010E0A15B7D1235C3D5D345E4D29E60029D09E5059B8A6F45B31B89C 3C2C23378E7B9776EAEF8C6493DB301DD90A9915459CE1EDDD606AF864C7E6E4 1FF27FCB489A5669762BCEB8AB14C848C1F48FE08C5DFED4386AED68381DF68F E78C17ABA0D11060874059C8008FBE2B96828E595490DFE577AC4997516287F4 ACBB5922C725B9FD9BCCEEE9C5B58B6AEE2B56D12D33F599194A044ECEAAAB76 099FE5A54C778DA40488A92FD1CB2588F59BF0193A648A1665E1D6872B1FD84C 811B6463598D8E0C675D596C6FD3C83DCA37218175C6011F0ACC4D1B5B2FA351 A8BCC7A50880B7038E8679EAF42B6D05A070D178A1CA1FE7C27C18409596D179 901C0CAC10B249A2BA2744E04DBC4FFF499F27B52F846625715FD9F7C696B164 0F39199395D7959395C58AB32F79BD9CAAA657A12DBAB006FD7BF71A1826D5F9 8FEA3576D093BBE85B47388FE076EA8C17833876B152EE9EF247F1B35EB9C623 D410939938B4FE99943461C701C5B46D7C9E9F941C8E907BE44E9545E4C37F49 DD648CEFC050E13EA4209EAA97260D94D1B75BDC15CD8487475C87CF3088089F CA24633F614A9E2D828849F98CF9A16F66CA459C56A3D8AE5525EC33FF55A0ED B029EDC161EB20D1D6F380FB2D615104CD4EA79511FAE694F28F7445F8607C93 AA7388CF2CBBF4E2D47C0B2589283F5AE6AEF416A375B4FDED008392B5DD0B06 8D6EBDD4858592C23F4EE13244F8E8FCD31C55093EC814CA49A3065A79629D39 0EF786681122BDD675C0E67D55C4FBBA8C76364CF29EB8CEDE663827A5F25BA9 6256A53561869C084C5B8517BF362F5EF1E095D43077D47D7C7B621041F008A9 D74A2CCCE77BADAA0DB9F4C15739916855ACE75D72BD92E6C89F2D268B3546F0 557469F319EAB1AE084AC059FC80159929B6E30B5C9F39BF447536211C7F3583 C928AC511AC78C55193AD8B1736EAD500AF828107004F29B0A4EDAA170171A3D 203C134B8B706E15EBA812C50D0933E7273B009DC8440D9435B786CF4611FC13 C058EF5A20705436FE0658EE9CA27A885C33EBB268537B20A7B4A2639E7A6265 526CFBFDBEB920B8AC2A6A33619EB7C4B5C4CB761AB31A8646DEB04A257A002C 326BD7314E3B36D05AFCB884D550997B965BD283ADD44D7DB4B9841278AFA69E 2405AF82571442FC861301F4357083C64A1E28D0177929B6C7CABD3826A149F5 6953BE837CFF6806F3BFDE9B94904F30603DF495B087FF9E3B2C5B218CA7FAC9 0CF528FABDE0C3204EA4AD13E84E11690039F8B89617A1CF9B98D6C762131E1D FBA0130900405E649EB90036D6E803D24BDD833D9A2B22D9F3F7695CE74A1FBC BA022550C45D68F66EF1B00BA453343FA6844ADA6E929F1B78B8331726CBF508 2F51E7321382A32851B7E47C20CA3FDB13EDE5F3BE6A28BBBA24338B8723DF80 E5B89A772C8480DB9C5DEC8E64AD4BE97BD8F0A189C24257B2AE311E3E3B09FD BDAFC2139829A8FB16584CCF1A947B3C623C1E0BCD2B0407563E6B141DA4E10D 7CCBDE013B3CCC73B23098C202C4978B0B4768F9F1415819300DAE35E437FB26 9366E8BD66FF768377BF8633E53898AF2FA890E3DA4F77856A3C7139F1DCF636 E88E955172302DDC81B41ED6F6CA71B402F789C8C62E9A088511DB8144D8D85B 8C3CCB73D298FFB1E47111775343192C5C571D4EE45BF11F1C73F1D27B1C6FE3 A2BB41D1C03F7CAFFCA4F64C76529E02A585AA57E38AFBB5932BA3DAE979BCF7 629C76464EA039A19FE0567340C40D9AC30E4999910AFC67FC6D190D51CD3204 010339CD7657417FE127C21587B2BFDA15586DAB0F3D90947C94C9D4473D5591 A7086D56E701531C981D0597E43B23CB83A2DBCAB4916A201EB1A40B89E87549 4366AB5358837BB245A455D7002E38EFAD8921925E28CB8EE7E862E8A2B2EECC E03CB4842D827CAD3CBC248CAF6A049D12A209ECAE36F52AB3DA276A7EEEEA67 0EF0964F1EC86444A4466D0AFFB8791D59846EF15B4632B6E41849E53FC40A84 280D51FE61924E7FBE024354EC9D409A6C7069C0FA5BE2CD4E02D80CDF925264 33240B0B1DCC43A1538FAE45D1B02FABF57D81FC3743A898C666D89289FA3EDE 8997A3FAE720AA240146113BDE623F786CFF0706373CBF3A088C74C194CB2CA4 7D3F8EA1FC212A17276ED54C2626626738EAE496FABC30628C5507F1D0E4C35C BE91CCCB7EC1DF527313FCA67A64299304FEFEDBCF82D4441924D50A39C564F2 C4C91D130D4AC98986C54B7C3CB5E6E37FB3DAE116DFA181E014DD1136203F29 F976D26E2ECBFA9CCEBBD7947B768E4A9E2ACD4BA1BD85E62E06BBC34E1885BA 441BC089FED23AD61B2D6CB66CD6BF4C74ED4AE77739818C77C9BAA099E65F64 A379F635012CDF509B2CF760AB25808E9CA4328E33B5261BEA38923F1CF13B14 B69236D8A79DD4A8E0C35DD478F66CA400301BD2C4692E599E8BBA3F8B0D3C91 FC4B4A481F0B6482355FBD7179E7038CAC1EF93C280ED71BCEE0234229DB7C8B FD0309F63FC3832E4C5557A3F88AD5DA3108A291A0A1B0D7A0D9933AD9C9A067 59B5C9B2065BF365311727A9BFA41F87EE42C6E63791F60C618B356C53516023 043CAC25A630DC6BE62BC7B79D7F0A4AF9942732B3312A2E70F4703BFBA9EEEC BD57D99D9858A9E044FF36163C8671E3BA1B6827108319B1D48D24D6FE389988 AC62A7F35277DB7CAEA62F6390BC183D6860EE0D8F09CFCB180ACD68E18C8694 A1CE08D2D5E9B7BFA63949C6C3F6ACDB5B541F09F33B315507BC8642F48A03A6 79E33FE1C07DF1C789330F4986E648F9DC82107AB39071F56567A1C7B18D6372 5ED7106CB266304C696CF5AEDA24F2DCBA940E1C3BA229BC2E9EFC37F08E99ED 48352198C1DABE8F95EE84B41CAD74608C8D79CB30F3FDE18166357D0343CF24 7D4F642B626C62849EC073B09A207337C5B85D849033E2AF4BFAB88937EC451C 8D855A29B4CC5CC50FBFAEF60D46EAE0650DA4E413A915CDDFA9A1CD913612C0 FA582790B32F9E50F554BDD274114B520BB02CE52B464780FAA79948BE079A91 D02F451BB71F63D8021C5DC8EB0AF422E9551CB8DEE052D6D47A478EA7A12C28 90F8CC8043EFF1E391FA17FF0CDAB83615DB54D1C7D9C7422552AD23625E9F0C 7268CEF3416A09DD968F949C6FB9F5D313FA57353EB568DEDDA1715D157BB3F1 73342CB7F3702852E3F4F24E56495FE3999E9D14E2DE51FD87F0193022CEEA22 775D9303FF223D8DCD14FE87817994B9AC2AA60286244B3925AC7D595F5BCB87 FF41B8EF4A3D033CE816849F3177E6E77F057585833553A532812F9BCAE4F8C3 81D2A44A5A55510232BB7FD60BFA348B6C6F5EDB87B5FAD548E3AEE8B60612EA 1310768FC3E362C5F6D78F7F3A3C51E284DCD78B53CA0BF076AD971B63A4877D 396F849B19310C1AB95C1E01F539C74CE73B2BE62154E3661B0247E7619B8C69 F19908510DAB08B7BCA905B9DA50C4BDB1AD952A70175418CD2E78FEFB0ABCB0 06353643D7FB8ECDC8970598E6AB0E385830AFA54C4F86CC36DFD25696FB3564 D06A68B3DDDAC0160AE93D10723F398BB50251D861E12D65D72405CBCDD84837 AE6D76AECC9740A7A0D4A1EADD233ACBC08C6FA848AF4E13BE8D1A08617A2ED7 DCB0FD61B6D57BCA69C7C9CDC48F87AADF184DB8651ABBB338987E995E848595 E0027D58C187468D09E8B3FC86E9738D251CE8ACCED62D592D3DA9B650F7005A 34CA900C7DF666D3E2E6F9F0128D8EB9415B815089F5ED726D4256DF9BBF61B7 4965FE75BAC7FC7A6812DBE91E60A0559CFBF0634F027DCB0F552D820983423F 8080E6D0AD337E916B76592A8D637448FC3B9EB4D1B824434FC3DAFA42416583 F8E09EE530BA1D9FE09883E39712D0277B325CC6540ECD955FEB3D89021D6015 11A488D250DC6A85C3EF4C86B8CBC7DFF25F79FCA9451EA11D2BE04F348FB6DD 459C43D130CE5C0AA447F0566396FB4B7782BE7BD8453797950326CD14EB99C9 CB7934B5B613D477175054175A89C04ADA9BE53A8BF085066FF702CB06C70AA1 D090E0116B67FC7CF67104B26FBB91F3F315AC5C3D5332434667F08CDA339924 36786B9178DB6574B7A97C7C4F3F033FCD11ED33898E6917152FCBD33C115121 4C2B052CAB8EF8971E19B356ED8F889C31AD6DBC9EA4A4A6EFE9B7D6928BE419 41A3FCB512FC84BEEADCA2AE4F1A1BCEB919F48A527A50AC92F0A46BA0B3B19A F6A20E796E7336B933189BD36F933469A9AF83BDA04D56AC157B7ABFF225C67A 8C73C1EDF03B5F16C7159B37239267EC4D452741C515C88CCA35C6F8E12D2932 6FF6207C16CC104B3474FE56CA3B771FBB0FE770BBD77432A6D797182113FA75 D986E6267088DC760225ED905D98A99BA98A4BFE80B45093472AFB5EE9C9F02B 6A719E675A8A36EDE8F6DC195E944C66427CD4F6F6CFE3429CD0059A9FA98737 6BBB9D5DDCB246145D9A1D669FCBD966FFB84E03035437F3ED75324BDC9839B9 35B1F1F03284CE6F2E298B6B357AC2EBB3121717B1B2B710487F931A5DCC2D07 57B047D81CDB756B23C795FA12E4B03CA0DE37EF1317B1421932183603526800 FC8E127CCC379510D200CFC267A26D8F2653937ECEA0A18981B1F9EF97591EAB 67707E6C6C598BBB6F2AE1F1877374DE94C1F2EE49AED3967122AE7137E19AB7 F8DAC3A8D3966C9832860BD2463AEB6CD33B324B76A66C330DF8E47BC52478C3 A5346D153EB20409F295F67DC12C830B842729FDB9E2873DC545967F311C9FA0 DF99E14BCF76530FD861E3A8381E4C7BC260E0EF1E6FE19A87B4DE8A43A53183 FD79C41B41DC7284E273BF14AA2F33B09F363E89E47BAAF00EE934737F41CD6C 5D5D36D95CC122C73846D4CC5828F71FD761E20DF2161B08F39756E710899846 364CD8ECFC1AD064C5B36E0777972356B682134436B0DEFB5D87909D8BEF8DF8 459F1AFCF2836A36AB59F7F6268B040BAECA8B33865EE699FC0B3F630089B486 9461E45455D0ECE4C5AD914FBEFFF1410AE9D1F228951E056FC7E17729A55289 7A74624F1978245ADC0EC00A2AB120CAB5897C5A9D8417A0B5EDAAF002F66EAD 3C52BE11536F24E19FABCDAA463274E871F8791F33B5B59C18D63A2585D626DC 1F0627C4F44BC75AA0D66DBD9047CA00DC0437E09693D068E49024DA3E3E0521 C9D3A425E77C10BEE0E5EBB904C13D024523E714151D4C394EAC35534343E382 7EE25C845C393CCFB2B652AED1EC42F237D04C9513E2893E1788C1D1DB450759 1F850355C2D765356072389F7BBC26102990E062BC1338BB2B732A1B2FC4B1F9 42D87F704E1355DDF063382245754FB9E2D79AC4B8D9D9E268A56B0158B0EF87 38F65C347E47E9C5A6C9F4D3AB40950DE8F214DB1ABF8B795E163411E452D336 C70F5FEF0809580742A01652CE1F54261D72A456DBD9A6BD665497842F4EAE1D D83D97BBA099512BDA161577A78FAB7C1F64920BE37418F9ED22231C74BEBD52 9CFA779D661A01F891E2EC776EAF67E0E44452438863D588B306950873DF8AB1 AEBEE06F0A0A36E584A86BF1BD10D7ED34732DB14F2538861E40915252EA75E2 A3A6EC128DBA3D5427137E8EFF765ECEF95154A44BA1C8623B9B70847F780627 08C79EBAF3E49D426E35FA4CDDA6FE3EAEDC5AE91409CD02A66A36E0EE064E3D 180A2E9117E08EDBBF2455AC2E09DAACD30A86AA9565D90812F329580C8536FD 4B0288F8BAF6A30BD14A3B8923239EEF15B3B97852470355C66E0F2ECA5A8AEE 0DDBB535193DB8FA64AD97F3C06A8FF7B6AE3FF4E0C9A5C6D5D9FC469607B0B9 68F11E7A21EC8AB1545725457DD9818B17FA62A315E423290FF878C8A850C76A 52F92BB4BBECC58D564A2A4E3EE5C3C32B02C62C906E10075EA14B3058CAE06D 2C416BE7CE56B996FB84316586EAE09841F97C6899E866C57E64287B2BE4DAC9 9D6CDCA14DBBE4A677BE0AF1B361E2AA58980C12F15270D171189099BA03C2C9 4A939F0557A0939B5898ABF14DAFE4CA472D2BA51C89710D3A8CF93BBE4E16D4 177B3DAA697AA4048EBB0EAB7B5DC8670EB6567CBDE5018CF2E5C49524482B09 84EA7993E58AAED6F36DEE2A2DCF1F6B62F97B1EA412F525E9985F09DE8EC180 522A90FBB1D6436715F4E115463FB71C01B2C65AC5DDBDFD60266EC57EF3D0C6 66BDCBA12A38A89BDC4CC4998865C10FA7325BF329193741C11A83828562B66B 27B6EF761AA5923D3E6DA00D11B0C3B23708AFBB897F101BB80A110C293A8790 7363FD2082E7363B612DBBC52D731CF38464FEEB562DCC8A4949A7BD6749236E DEB175E2A08152E6661195C76A6AD3B96FD6676C0AE998C529E3C214868978AE 61B32492DC9FF93B4B709A9A1F8A67E107A311F50A8669FCCACC7455AFC8C031 5E0D5509D331396ECBCA8CC575E9C2459EEA57B83322C4E5140FBE6F534C893D 523EB7873808DE2677A9A461FCA7D8EA099DEB2374AF53F953DAEC243FE25DC8 5F44E84ED06A69B139F8E136797BFDE24078C8D01D6B2082A8718A8C70516CDF ABD02B5CDD2591567BB42A7623E77D6B5C58DBDDFA806CCCDBE9B3034A0BD56E C8C8B9C334CA6EA3F43CA6F65F1BAFAAE6AB8DD58516F54291575E3D70D993F2 EF232795AEF0D6A65B67F36D6280B400AB57A1D9CB0ADD4B0E5EA82665DB7ED1 14B76216DCBC8FD96AEB8309583145B6F959CD0F21D4C95804432E91C7ADB3A5 B3869A22ACEB907E0B92673AF469F082A5AD053D7DE63DA346CC260C1AD3B59B E8915DB690D8D57EE7018A3670FD551FDA591139CF049A6D3E3AD1BB36DB4233 C557628DA0F9F3B4A0DFC6CBF1C53BE0B858CEE5F6927BF70890C6612BF7608D D8EA2571CA7AD147F8A95C9DC17D2740848C3B02C04A77498E1644BEA3A5DBAD FC5B327128E40B7BE445DBA6AA91E47431E4874F529E4AF2FC051BFCC4831A04 8ACA4E3E340A55A5EE148994E2A18BC898F958A847A2378C2E4E38216649FC20 5280EF22E6BC9E50D69CC1C4DFE20D723F0B14C0627D7D708F42C2A2C317BB8D 5E39E0F335A0CD2CB6423DF71438C34D2604E4824D6EC2C87FD59BF4A2992CAF 6C7314E0DE18B061FBDFF9AEFEF7B85EEE239D5A6797D7EE6443E04D616815B0 552B1788019A7CF6F4DB1D80F66A13E86C1C9E409C4B5B57B1A5E6E94DA23335 9CE7DC17F2D86D581289EF8FC0A3D0A82B2000B81F1D684CE0D230F220CBC734 D80223EA72B8359F3CE7EAB4AA67D1C2C00DC64D41791E781181FBC1D5C0E493 3AE39EC90E0EF39DF5F10250E19F0E7A2AD33FB1EFE8DBC1326B0ED13886795A C67D6778642B394A9EC03747B878831A18A998EA942B239F297DA30B34BBC1F1 6C5D5064A6882BEE82ACA462F7D2E0499502E76A357A30E508E828E42C876854 82C8634BCD0A5E04E551ACEE65E7CB44D964C8DC0D7061BB5933F00DD74EB0CC 65A854F5497E0682023755D774FCD1B7ABA6D1251515CE98028E74BD731323A8 36EAB564BE76551DFA3B9BDC3F27E3A488B613058AB48EFABD01119DA5EDBD2A A07DE07D2F621F06A21CC61F2951812B810FC32EE511207AA73F54130956C1FA 349AC397C991664FB30A43ECC482042321128A2850B277BF373A0B05CD220E48 38C1431A90B2F7627A78DC750783E18A0C12F308B4D7AF3EE38625740C3D7C4B AB0226A6018AEE83C2E70CA49B79796C8728C1F6299629099952B3AD0FE92871 374D3BDAAB00F07FA14A96BF7477CA8004B5B357839B2E32F4A157D0B1186618 F74973F9172F02EB535278B18C17A2F2B808B6CA3457549219177D6A3B630296 48BCF941B9003448E2CA14FF02873677075511F53056FA9162001095A9919EBA EE56E7C60840A87A43B5BF197EE0C552BE08EA513A6958FE2326FDFBC1DD9866 3367D4467918DF5E5ACAFED89154E79D34BEA2C91FF8267F2A1A6141E66BCD8C 546293A7B8F67785D8B7C97677CAA521F2FA825F5A12FBE8AB0A12BF34C296D4 E090665434F6CBEAECDBE80B51C45E9E6995255120CF3941BF3862430281BBAF AEBF6460552B154363833BF00AF9D98AAE0F910F9B8F7C55A14FA8CB13D52115 9756A548B1A0C5343D5B1B985240D5BF0962A3441FC76E22FE429A591302876B 135B3971335E7878293E7791497A86BCEB30680EFF6C95ABAE40087C41634067 3AB3D562D9A94882DE83BD635C031ED8245D43100765B6C386837EE5FBDF1992 8A1CC02FD0DB2F849EFA52833396A7A5F37D50F05712202EE1DC4C7A8F8F6398 C79EA893CF60D9756C8E98C78EE2BF0A3B5A45754554F262235DEBC63B27CE43 8A82FC43B62EF0B63DF1E0F985CC0E9182D1D47AA3278677813C90F0026A9F66 ED3CE6A58EAD247DD1444E90CC9D1831458A31D39EA3873AC06EA0DF87A486CE CBC9338EB365EF31160F058B9EC07CB4ADCEEABEFC8F10033844F1CBE97B18C6 EA9D0401C542CA4A691F73099523E7605B6DD81C388BE51FE61C3071BC90A86C 2CC213142EBED5E0C726C342D7E5BC514387B4C12410EA3E161C317F319D1D08 54FAFA702F3A5C74F1B22595A0332ADE635E4052D7DC808DCAB80421EF5978FE 6467BAA3DC912FFD49BA308EB1FAE49499062A024F4A0FE9BAF74DC1A9F25B4C A7E90E77EE4A9B756E7A24D1C4FA1F452F11E39992D195177C66B519DAE968CE A5E096A7C03FB09855E4420CA95C73C2079A1EDE30709EBDF1E5716E3A5FA881 D26CF9266572E427371A73596820A5088E8F14EB4A84D8A1DD1F7F05BC6AB3FA 0794CEF659ACDAC0AD374F46C94F2F9E6D98C792270C241D0430E68F2A0F071A AFE95A28655F2CA667FB59110482B5FB6F1313F4A513DECCA4CB3DA0738C8283 64A99805FFAB684479CA09C01A43CD0EA97273F41715BB94FF42A438ED454F62 E5F06CDC632BFD76E84FE9AE923319CCCDF9F432251378E22022B48E4D71ED32 E0735A9FC244D190848D0ED8E1DD903FC580934172358BEFED457CB69E5C3AF9 EC5712157DCE3126D5FE2EF259B4591F1C18F41FBFD6617808CF45B883E64680 6B347C1FB4E176001C49ECEFEB691E78FA2A59172444B387DB7D9D67A5DF9D7D 7591E91B294D98EA345492E60D881D6258B23C9AF03F922BFE05492724722DAE 30FCFF7D4AE6D1D464F29D6F300EED52146A6F6B7B603BF84C3F03DCBBB6127A 41536CB136A3014D2614A9CF997B2DDD79D61B3DC77674D7937300EFDB00989F A7B1147183C57B1CCE8C08C042634E5DE205D4664A838ECD2AA88C571F6855CF 4792D6BDE38D62B6919315458E951139A4911132A6A664CFD75B59637DB92A08 5A6B2E22EDF9D8072F01C1DD939BDA33E97C6227AD5902429C749792DABCD84C 7A46DC5FBA0B90358FB65B187DECD9D79FB10BD790DCF8382B030F6386918C9A 21FA7B9E81934AF9AA9F69104372AEB6357278F3309E71B97A17E930C165725B C78ABD6A44D9A9FF9E9A37322C6CA2A55361E77AEA275915ECA53769E26CC271 8900C81D29233880CD15B20080BD70DA744E4C8B34E9DBC06D0AB1A24838C82D 94563EF86C0233890993E6CD18641E40F6765F9CD1C23CCC608F3085422BB6D4 2F1470544CE7EEFDD7279BE52570CAD325D82E75319AB15C9D9586296E65B56F ACCC2207991B66C8A0C2AC32CDC9E1BBEEBAA76CB7495D2C192CA29AE22EE160 6BCD2ED419EC7CF0FACC7082752808A7FAFDD1F449C772FD3CEEB697472EC075 E6D3607296BD1827134D207695BEDD46343D20942A9CAC91B2A971FA38E132DF 0EA0EBE35804378E205216F3C4015196E48DDFE54421D27521AE90124687408C 6A36E50617D1488ECF9017C838258C0C6AD8CC76283E2A49ABE126067965F39C D4541F9CA337EDD3ED45ECE99EB7A37A9FF92466CEC47A793E3EEF974FC7F677 E02991087F4E69B71875C3D4256221F6F61BBDAED70FDC01348E7A1F78D5EFEA 82F4F51B386162B3557D639C20A23C6064AB5275432B904AAA9B467281C44A6F 15B87989C6BFA63EA2883A612E5C630A2076618A2C2F87B470B5C106D1636221 AD730992171A84F9158B7EDF54D1433BA75E9B20450D37F13CA43270FADE7693 195FBB96B4F448040D1A60B7A959B126C33F1EACA7F373943ACD3D10C17147F6 27A5F8932C34F60926BF687DF0A305FC145DFBEB624E5643AAF27BE415E3DBA7 5DEF5F489F7E7FF65C6F00A208156362BC4399208F20164552AE872DD1A80B25 E8230AD99096FB59ADE12C24254A684DD584AA075C84C45E34B7164F76281221 A129708FAEEF6D31954500998549D886D731193AF1228573FD6E99B28E8EBC9E 1CB9B6A8BEEF97E4F4696A6A026C50044206E6B9D9A8CCEB85BFC8B09B49142B 230A0DA7BF85834FC0554DBF71451EEDEDFF67E99B95B28B82D05B0C58C001EA 03A85A0EC279AA6771EA4AE4E804E4B2D45C31ED5F8A7241346C48611F4A85B1 817640A0EFA891A4E0161706B8EC1F31F8D07895A2CC4FF05A96D875017C3240 84C536C7F280F817E8C1A16BDDAA267F436F72A2E37E4D6D51AEC8342E9C8438 673FD65F07F609A65F9D52E0F281CC3EACBA3808C1F7CE64D88FFF86C905FD7A 3539EA8D411E2C66998340AF67834DB9E38989690AB2E88391356E6466267BFD 41765603AA206D61B2A25527E14E8E30692328DF29138A9BC85534C068E11E56 7495E4F0183D753899A3B182853571D4837541EC26384CDCC1C8C7CBF659CC8B 347B11932E649A2B4E8E0545EC539C03B8AEDB22A8B1D072EABA9397701CDB18 9F0F5748CC2741417F698BA43E1D8BD02126D7F4633B55F7A226A93370A9ACDA 2F5C99B65F89F17AA3B66D30736114FBA9D61BCC293D77DF79679E59CAB623FA 21C24E3681D34B41771255B5BF1A2BA6E8587E460F463573DC2D9BF21E5D3D59 87B193749841773F8EC02FADE9B3D8D936FE3C17427DF1FEF196E79AA9EEE0C0 6EC235AE5F4E523C611B5A23D950246B8759AF00D57EE9963136D7CF90C9AC16 D81EFD76E06BDB233C9694F79E9BCA4B9EAA293D40BF924820E1280C0368D6FE 9B15950A00B3E4CA5D312B7735D9A63517F1681118FE6358AE2B4B743FFC06CD 1A32C4B68AB37133941F851EE53BAEE147593C4868F8FDD3C5718CF51F71C116 2B2A6E2F0BAC1859142BFE664FF2DF43241589B9D32D4E1B04D28893365D4382 53499D5940C5E1940E177194A6AF87F566B90BD7B60C5B5DAD1355A2657F7303 6940D6DE683B0F802067AD4223F0D439D27F7608E46E03F88C427BAFEAE375FF 2D81903D44759CEE950D7D88993F1A462C58E47091122D9A47E776C3C368AFF5 DE878095F6C730FE7A91323106F9FC834056D6A30F98AF2A038F78EAE90E1968 797D137F97D1D9A7BDCACC137BA511DC81470231506353A3D9825256370FF339 5BA7D0C2EB80792C71F369F1058E924DDDABFC6CD4522928F1D1BD86FE841B30 B942DDE9BB4078D4BA5F201A9B23365129E768EEC4E8590AEE9CC0956AEE9855 F1848D1487290E34F2B72F31D31C08522EFA96CA864389CC5E92EBD366C6CF99 CBF0057AD518F2E0633F207E8B397067B04CF995476DD0D5CC021C5838E63429 75DCE7A564ACF0E4CEB33F758FD1ACAC901DAB8A5DAC55327B1BE1F47B4EFDFB C9D1B5AE94A7CD3935D2CCDFCCE42F332935F1B651354B2DA4C4546B55D3D1E5 C531A71044A0E0F697ABB811C66C3BB13D256F9627E45595B2E7EC8D1B5C3FF3 2CD2248A0790DEC6CF1DE73E04E29D27B75925BBEA4D852A4977EF3942A418CA 6F7CB0C3A6C1657A18E07C9FC7A34CAA27A7B345A6D7346F9D09EB1443F85E81 98E9FEBD6EB8E377563679C4C74BA8303C4877931FC9D5A2F5E0B723473D1276 210A2257C309C5A4DAECDFE09E3BDA015C9658698D43F6FB928AAC9902097578 58EFC9D988C39C28A7F634ECAA7697A169BDA06E09C309F511BC51BCE54E042A 69B30C87FE88ED4CF4F072AAE4AB7C10ACC55DAB7D3BAE87A7726F68D26A4706 73481B0C558F5B0EE56BF97D8E181D6046EDD586F6CBB627B61E1A64D2C60B62 3ABD052BA05644280EFA8A6C5660A86FD44465B17E1CC5B2E22899E2F0562FAE 180D8C26920462F1AB63236D783CC2A73F52A124281859557BA67E9258243B74 18D776B2C8BA20C98A555F7DEF1384611F0B8A12E5B6942546097F57C7CC8198 5B2D366978CE91E2D6BC5B67BDC04419042CEA71EB68D3AC983BF0CC19F12D22 EBA053AF14C060EBDC71D441DA71C3748CA98DBDBC7D1B6CCAAAE1E080E09F07 3A6F38899A1F143C21B437357B39ACD0512AF21939C2604B99D63B529B66F07F 62F585AF20B84ABD8E3E0B4492E51C39B3FA9376E2F869DF24D787310CD903E8 B0EC3A9421237EB575CF8DC3744D4AC12E7BE2A300B5ED73D7A9C383229EB135 24EE47C4134FFA64D2445DF0673D1EE6A6A2E252174F2D9139F027411220699D 2ECA771CB24A2521F85FAB265AF030F92667ED34737C3D2D42CC9DD97F954B84 308547728CE26A51A266490F652FC511DFCE9F4E746B3439F949F03C5A39FF25 FD154CB77E07C2A1693A68D0227FB2F4B022ACF86397DA14A4FFA7DD1B9383FD 2C4EE4259A3F146FF153E46025A02C54AED6E2CE6F215C2E41E5F43700DDCA22 98F003E22086C91D216C3D9C3634DE26AE9DCAF9747CDD4E787DE42005F6BA4B 22B21496D50B94E32E88A735672185F7929B1BABB17B7C9D3E7F2AE0003D0BB5 316B71E3CE289EDE215E2BA2F28FD690138BBFE826810BCBBD0A9CF166D1A19B FB539ED2F4170E62FD3AD18FE14F026EFCDF0D98B95B6492DC1E397E8E788843 9E7145D5FF7F8E88E4E9D1AC5767BDB753AF21782ADA6474CE4AD98570149C8E 5EA2E59F39B838FFDA83080022C9C7AA1A9414582028B142493A101D41774223 22F9B7FBB059563290E8A23FBFA78C40A68976C90ED12DE1168A2F3BFE09252B FFBB5E89B25AE6E31DF5BC357A54B56566497B8C679046022DF69054DED356FC 778A7389BC2283F599111F018BF489D439343989DDDD7EAD421E6ADB6D1BC467 C995AC41AC6946CE016638398DE4DA6F71480B6F957E3B1B4B6C902757E66B82 B3E2E7C7D549F815F143713FC8D99744F8585E48870DCF1CBC9FF9BFC69AFCC7 B727DF5B83993FB10F432DAE8F6EED864B81C73039699B88DFA7545188281856 B534589A2A19352DD19FCF3577CC6FA8F77B78E7B4FE96C438CAAE9967093753 5E137FFD2F63EC5376FE53B7FE9E59D905767E481F14205670CB597E7046A2B6 5FAD219088B0DF85A1D24DBAE6D8C1EC0D51C3704F02AE2E2424851C835B1700 325E882D6AA8ED08C287D47BDBA01B0170E7ACF56181516D493623E494D544A5 3ABAA24334185FE4F672712A53E6E67E597259367A8685F16476A431A67E7DAC EBAF1610846157B4BB331E84C0548902BE0E55A2D464529CEC7EEB54E62312C1 8A63FBC1BB080E14DDFD32960F55246CDE6170B26686A0A7ED187E051AF504F4 17BEB0E33621AD4A355CCDDF4E71D5A0DCC951F1C58EB81ADBC2C432D3F48A04 3F07A9449E9E8EB4284D0733E822E69028CD9A05128DFEBAC912DFFEBA4B1594 AA17E2F4CD3955283D36513A9A328EC59A9D5521EAB895EE6F95DC98490241CD 85422388C1B663BE2C570F3F76F3ED663810B90DAF8A97FAABD2610BA3C8AA1E CE32F934E43DCCA45C50AFE8B97BD0E63A3A6D7BEE9166DB344C7BFC8986A3B6 8469AB263B59E848B745684C67BBD6B31211F9E6035EB8AF7B0FE3AF52727F71 80177A77ADBAC46C5F1F972B595BE7A484A0865FED265DE90930A94E5520518A C5E63D0947ADE1D84C4EF2BE5C56CD723C7D2701A8F0CFC45790B73214051D4F 234ED4AB23B6C5C77B25CE702DD1B6455C36727FF9FEFE1EAD28A16C82270ADD 3F03A81D5C74A7C94C873E3B4EB217272E38FE32025679808BAC730391AAFFF7 57E3304189F57ACB9422B0C89FA34CBCB8BF6FF79677B3393C7FDC306A27B5DB 7C112EBFE8977B503320885691790753B1AB0DD803D220551685B0D0D3023572 CB5A142B6A609F841BE12DE6C62909DEDFFC203E9DB943D47B15A68B632542D1 6A67F9557C495A72165C4B77A741FA236169FC4A1DE23B260E4FFA8F7B2519CC 7FFFB3E236FF20F804294B7CA65754FBCF6EA825D2E94345F5EC19E62ACB0151 1BAA4021D1D065FF67261E4D696F2711F91EB375FCF7E92B0EED2A445F9885FF EF9984414B4C4150357B84BD9052C83479B6F8505F7D06C9F75FA26590977B4B 5404930BC0ED4DFED392717B41DA5CF237B5BBEF113DA59EE567A1BEBB2FF78C 9155AB8FF313B0B4FC090A6571BBCE4C1398C3D7CDAE3ADCA622684986D98811 319D4B01B6EA8C0A28BEABFDA90643B1FE1D06A2FCB52FBE1F4362D9C9CD1039 2CCEC53954F38AFC7A34B1CD880E638D285E02942A27C96DE06FBFF2B25D8486 9ADDBCDB61C1EF7E1F9E3E243BF84AF1DDFEA876D3A66E3908DDA0C7A103308F 4F3DD68AC7221B42B66509BDC0FBA163930D73FBC214C65B8D9DF3C0A6FD3C17 AE179BCB17EF3669172F340B5A80F2BB65A7FF9E823569632CADEA659ECFE152 381B2C5F432F48B168E3B7472A65DE2E6FCB31AAAEC317D6C476FBBAE39DF826 A830F0D1881D70455B9C182E182397F31ABFBC8629E9AFD8B0E5BC5DBF322BD5 A154C61D4DB878AAC60F27CE269B0E110301421694657E040CCEC4D908F80C5D BB601CC69983BE87CA1E0AFDE30BD666DA2ED46E8AA8433C1F0B86A98CAA76F3 AD363C705F3561C947336CA71CD0BC807FD5BA116D16195F5E23F7EE0FB49158 8D00E6E6D094DCEF81FB857FB804B4D3DAD74A42223AAEEF9BA4005480502680 0D88BA36375A86E83190110996AA3184BF2A471320A048C7A45643E8AB71172D 934EBAE0470F79A2E8D3AA79CC401E3361525F63D36DEC254B2915E594CAD2D9 5CD03243F79688D7884A6B97BECC311E0C729F32D7807CE9ABF8668BEA815B27 2FE55D47B514E42DC15C7C85765CA4B1947D7A21714676B8569AA45457A884FC 611B4138C3498D84C2CA639662DF52633C99903434E7464F96A5C4E394E140FB EBFF5AA9FDC91E2F537E32B00214F980CCAA952276A50881F7406F7C2B13884B 882BE5CCFEA23EEC4D8597BFF1CF5796DC2B819157B78BB5E82620A9E34FA01E 8EB262EACDEBB802741C5B0EC03706BB78434BBFBC21DF59D82976BA1322CF64 CC478B46C1B7AF67306E3008C1822F0D056D6C074344EAAB2AB0EA630B32C444 BE460ACD3C8A2A20DF5D2F1B054046BDB8F16F146470BD3BCD7E774D8B451676 99CC7B0DB925FC0EE99E4175CA96A718ED6FFA0D301820E0C1B42A36A4F3A3A6 6E75726436CB16C4E7E8EB1244F2436469A3BEABC35DA0394E054503EE6383FF 7DEADBDE91AD338BDD61526FA43922F0DD9AF35D9A69BA2330CC2D48497B3530 5BA6D2B123EFF1CA387EFE89D2ABA9E5DC16ED536EF6F0EC5C7AEA9036AD0892 F96AA3961D923D737249E6A3F620725CE47562CBA7C785D3B87A21CFAAB40053 6AB8239D438E5E3E76323D80683352E7DD1C3EE875EC58D4AF0102A414C85458 E807D05FE0BCAAAA33E0548C53F81CA76AB295DDCDC902F223C84A001CCC9F39 432401E297518855EF5296D9FE4895AA59E208451DD30AD57ECE1B4CA7333323 51C39615312DFEB5152C3E0CD38E3D99AD0B53714F735E10C6AF256E1C73C280 1A7CD5B7BE720919BE1A5F5908589D99368A196B737609731EB321241AE4C129 DA6FCE453A08CFB36AAECDEAED0BA9DF088F8F370D44AD84C466DC038D80B244 32E79ED605B0512602C1F01D4FE09086A792125A9A7E491102043C6FCD1A970A 73ED77B2B9FC3A239FFFE598B0859D83192222B6250FB600E28B50942FAD5293 AF41AE1B5E8755AB8A1FFE429E6A42284439A254FDBD26BA50377040B4CD09B7 3C76058558A881B57B9E8EAC247461903A40622F10DFEF70ADA8626BCECCD3D5 BABECAF3982D651DF6030E7B7BA2C13E0BF3B637F33B002588CF925997235B4E 433DA6668669672D5B06D2DF4201204B1C8C3A2A7BFE52B8AB69F2538F61F3FD 9C82AE289CA3516E667C68CBF190D556DFEBB1AF96BAB80D45596222579D31D0 B5130519006256D3C08123EDCEEA4A76C4736B200538F4BD8B3F5B506CF8876C 849E56669E71B487BD30B661D7C15528875CEEAAB60B329B11D0AD494B60A849 9CC5EF2E4117C3963A33B0517B6AAF9ED11898C76CA4E313A6EDAEED9C273D9A 80B67B1B51B47B1760B0DFA20D8AFB98B7AA07688C14E31AB2817FB88CCF8015 4E10CA9BA87D1EE20C5B80DA32EFC25D70697406E4C777C1FCF37A305AB83B93 5EA06EF85B7D0790CB78750B602C4759B08B3E87C5FF860350C95EDE1096EE51 3D07381EBE6D382AB0D9912050338FD75E03D17D9F56BE839563F05B77F40887 CED7885143474FE0608AA8B7F6B1345A28B5109D43ECD799DFC0B03DA6F7E217 6859A66997468206EC1081EEC22E8EB9F0B26CF4927C5E8AC0F2BFEA2BE4EB3D C89425BC8D525C3A2FD4ACC61F4AB1247CCAD43860AA107858D83049E4D45956 C6AF1DA3B8D8812A03E5E29E07D7AE19CD2D19FEEA7F8D0546E5A62B3293594B DF12E77E8200B395E34C7FF5791BA19C2C2F1658F801D5F70C3402B35A646E3C 5724409A4F5AA2C7784A152E46550539E5C19F4DABA04644D777AD4ED006F35B 3B5A8D7B5C9914B6E94B25B572D302D69F529D4348FA713A402AC95616C528D0 C1A099B991EBBD46BC75D59A06B4DFD349C54F9AA536EB0BB246C45565D74AA2 82B93A50207E5AAAC09DA2971C60DE36C4EBA077A6667959083E2BB29E6F7014 BC721872F29C07D100972EB8988BBB69DC19BCF2BA1D00C60F975345282882E6 166722A0D8A38664FB84A34394CEF039C58E5DFFF2522B3363E18479DC025F63 8629A278DCCEF49F802562D4D53284DFC0B6CD8C6FF9806D41E1D648D9D99D3F 6C2D2F8AC2A7571C50E41D5A5CC46B8206761E5EE0A18A4F129FEFF8D7471813 92B5C0158FD8E7D26E679E8AF53859C537F63497B955C4BB47A4DFE30EC2A0D3 0BCADECAE110474FDD4E824E8D88DEAFEE435F439923D4AE72D65EDCC6C60FDF D7906E1E76D9AFD9736DD4C8218E404817124917FA0CB22C31E8A5DE4366CCBF 29002718F8D602D2129B586F6B2A59BCF3AA8C3E7A1FB29CD0CB55ACDC6182E9 D2F6ACC7752B793FD1F8D8AD1D86C2AE87FD96F24D5F93AB48FCF7D1CAAE872F 6586FB0AF6CD3EE96CA0978DCC8874CFD6E3B9BF76A03F18AEDE9ED9EC349C6E 25970D89634AE8E9BA71C5D6087F10FA80D9C88751229B3E7B0D644F312B4B20 DC5BB9F0F8A2AD84130BDBA27EBC21AF7D32C2F1A01CCF67CF4815B9FE70A0D7 BC3F6EDB439EFBB7DB9B31 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM1200 %!FontType1-1.0: SFRM1200 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm1200, tcrm1200, larm1200, lbrm1200, lcrm1200, rxrm1200. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM1200 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-185 -320 1420 942}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E48759F33528B839DFD4B92DF049F26DBA77FA20B6513D 285BE588908C3BAD6A1BF20F213E587F1372774EF31D66B237AD60712D60BCFA 83574CC5F88A6B4676356ABC2DCCBA498F4272476923789659CA8836F2FDA94D 38271FA2CA8B77D7099705602FEB41085F6674B7AA0DC588C9ABCCBD9115601F CDFBCD7A8E3CFC8B1E718E576254F5F05FAB25DC253CB561EC3604749243AED5 76898EC99BDB1760B0CA75CEAE3FE6FFF1700F64F585BE9267ACBD5F155F3122 732792E17022F23B1F46FEFB0696E5C2B78DE0479F09B6512035B9C488042B62 98525003ACCAB6C8F36BBDDBF6E82F5CFCCB418706BBEC1D4E42086E70847405 3ADD1383ADD34574F2C6C64907B0561F107A259A649BB525F0B74CC3B1F42412 C4F81A7ACDC6A3F37DE7FC06DEF21B9821DD39D75432AE3881E431569A012092 38FCECF1BE90B0B199DC4D56EE18658B2818B69FB6836486BA302CE7F6EB18CD 7AC5AC6648097F65C8AB851E9BD1696B9703230711F68FD82E1DF92936A4B1A2 CCE51645573EB0E762D68A417AB6C0A2EC8756FC9BFE5972DFC4C794E948A970 918BBB1BD7B31F9B1B323EB2AF8D41A153CB1B1511F43560825DB6ECE30C16E4 902BFD1EFF59F06984F36F284553AB3F2C7901B37ECE058F5E477EC9C629847E 1C7A3628DB7C47C099A0DF53F05ABEF94A760232985AEDEEB7AA05C95273179F 8A1AEA30BE626653D22F7725C28498D776493AF6DEBC59D44A2F6F26E5DA1A77 7B9EB9D897130FB3F6017F80AF21E4FDB73CD96834152BA948E1EC4765B253A6 565F51A1ED2AC8374CF4DB767E7F3FAF13F0A1198110F554CB6735D3C2DABCF4 0C0A431D263F22D091D0F560ABF5968868126430A293C6E8A6A87593E580B110 E15A84AE30E4846980EC5C1FB6D4037D7E1DE8CF57B6A60DD4DDF422075F85BB 0B1411164E99A03A3591915372454A70C8CC75EEE08AF87D35032DFBFD61A4E9 F968D1F514A69D62B30B89F47FCD45A41B423664A7862A1246B6D7C5E2B352E3 D5428D2B6677D38729C5752DF835EAA366A11F6C7564C80EB1E0A3EE9990ED0F 520EB2AC073E63DD9C935504D14BAB14A4305B3D64638B6D952333CFB7CC93CA D84B6DE80B35AC82623BE64BB6C1DF9165E00D29054A5911CEBE09A2054EB39A 7894F49184B672F4AA1143A2633647BCF502A77F12506C02F1A78AE9061F1497 CABDF651CF5ECC83877724A90D67D660CD4C54EFB79F9A6C1DC8EBDB66E8D709 D4C0A81E7C7EDB6CF1E266B753AF6BD100261A6CDA280902D3F0D15EF4042F54 5586901E870F2A99727E9B64147EC20330C3E54FE01AEA9875DFAEC86A0B6F39 D89E035185C3A6B25CBE093FA5C7BDCF99E5C68A9EBBABB3D61A6AB4F30B4D7F 94F4B4DD1AAB6C22FC9A18BF46B81CB362B87BB87E9552402C35490285FB83C5 EA4825225DCC23DF406DC5CE8E67FFB64DAFA43E89D6C65BA6C0F41AA44EECFB DB8B9ACF11B6ADE903B6EB177A00E2B22593F7EDADA3A7DD72A3BE1D488E5BEA BB9327D8B0187CC87BFD35F4591D3F63B87490338692E1E8CBC869CA13C68761 6276CF2A654946B67B1885F915E2D53E923D1A7B9D373539E8AD0C47731B05B1 7E627B68C4C1C9FBEDD4234643720D3A7EE90502081339CDBD455004D38302E0 FA91517F04289EEB213EA283590D0EEA039CA3BA5694C0DB35F68EDDE43F0CC9 DE58D2EFEF8E3D81853BFAA0BFB73296E70ABAEB606ADCCEFE9AC3EC7736215C B144B249E1FCF4A66590502254335D9505C9A962FF3A7D45FF770DB07AB439DA BBF81F0F47330560107A6101A5C76F54C285DDAD4E7817C6B93392DF83CF924E 00DCD4DD8BEF1136AFB87E24A20883FF87DD69789556A974B8807C5F8030CA58 5301124D8A96D5B23FFD181D66140874153114B81A52D69164014ABE126D1E47 6752720C0CEDC0AAE2EAE314CF25CA05C3D569CE8871B49AAF2F371CE632A913 4E4735863644E0B7B8CCDD82F1709F81DBA6440AD57B94A928E1F15D948C7EA4 105A252E3AFCEB539773BDCC8FE919D55E1351579EC5C3EBD311A8EE9A9373EF 934E4C61DED60F0FB051231ACAE4E12B03013D7B9BFE305B9AA54B0AEC8BDADA C3FBFD3A4ABFA43D98F2991894B0E1EA7FCEA4843CB86FC4DABEE41F24ADD548 82C163617B77D65D423C565647491E885469725CF356762F01753FE97CA9643D 7EEE4365D5C807298D61C1250921C4F14BDBF39D08F3896967A5C9BF25113779 7C1909EAD87BF0D60C43F1AE79FFB1A23620EF2C324D5E6F6D00CBB22BE70E0B AF849544750046F6031B872CEA4F6843BC35E05C73313978F2D74A52F2D52095 25947CFBD1D90A82EEFAF5750631A17DB096B594B6C033ADC43EB9328B5366C0 A8B7DAA7048C0028AFD0E17D3A435C530ADF039B402213DF9BB13372632469D8 568F819DF9554C1930B7B3C6FAC84650AD5454E5C0DBDF10DAF451A8D99640A3 00550839FB6356827BBB65B73F31051792CDE85D8598F0825CDC92D8957797F6 0CA60789EF683AD4C7D307304177D48E8515FD26575A917C9E7333337E070509 2783D66F0F50B55270EC8C75BBE78CB32E0133765517039417C35C57DE3B0D45 97863BDB6F0216EC699AB82DA5AE17C56E64998CBEA5DA56916984CAD87625ED 98355974A608CB758F2FB28EE42A76F11607C84F944D3FE51263A8DBA84E93A7 BF7BB6DF9EA825E6DD1B38F09E0010533BC14E56C291413C50141070B380466E 377DE82A00329C607B7DB839267F83EC08B4819411F01130BCD93B9C2448D878 FA41518DBFB8817CEBBB0FA2A3BD96611746DD6C801A694FAFF1A7BE8D4C6D02 A196CAC9BFFE850F28C2C13EC101F217D4EDA1413004DC220A1A4EC497DABAB4 388653B248A9D14D7FBEB1868535F630C5D06BB3BA30A4C09EB0B23BA7FF85C6 1C430B5CB8A0A48CF9E9D19AA91E47F1A46F19035AF1BB31F76574B9CB351C0E E1D6FF7E34703E95A6D0AF6965369BCA0E4C3E813D1A1E6C8A5814C436B25C7A DCFDDC4A585780D02177F2F088D5CE5EE555F94FBC07BE33A006F8F578B49B1A E4A166BE43F3E699F5D79B42ACAD360DFA6D40A7ABB4E1E4BCCF6F5DEB3C8C4F CAE3587778BE3CF49987BC2F766156316B82B6551715151CD2115C9E741C3E03 AB9EB66995D7ECBB8E8FDD8D52B52408E3E8BC939D61D7F2EB36CD271CCD7C9D C1888569264165867C03431A4A5A55D9AB034EDF79DB1832B5F542C08B8BE51C A65422CA6E434CFF9B0F5454DDE7574B557D8DD1E541D7205849B088B5D0D483 6B95A4589F54603BE7A12370489A70F5CCA069DAA3CDF009DBD64B90AD4ADAE7 28A404E7AE95469839226EDFA014A5D35BCEB6715743F0AEDEFB064DA56E72FB 176C960F9B884EC295EB95236B82D486FE17DD515FE0CB61A4A575AEB7D668C2 BE7DD6D130248E8235BA1EEC1B49E55E980856DE00A4EB68B4B991D8822847C7 DA009888662A8DC6829F4B896323A364BADA8E64E317C3E75870AC2F2BA029D8 207A52F1128D8EB9415B815089F5ED726D4253B36E35C97B1654A105DD84A54D D0385F33E709F7F9A87B9193D2DD4FA34A791B1325515B30B017A969BB2A6982 D6ED7B67767D16D057820B73BB56B43D6A10E971961454C16601011FE0596F27 B9D68AA19429CB2D5DFA4F65B0C2DB7DF71D27F478244D0B32FA27175C9E8C91 1E20C556CC833788BABB313BFF08B0CAA834BE6582C3F81AADEF9B6629191651 D49DE799BEEBB5C0AB14FB9BBB316592590125DA1421E0E3CC223988AB668C0A 51CBDB7BF3876A3459C6D27DC1FFFC27172C43FDE9BC06A85BDC3879A70FAA73 3D5C2E6D07B7877B352D5C29DDEFAFC5893F58272C7CD5BE6FC40C79C78061B8 3E035C72FDDCF725F793E1D5B4975437F75671912326B58EA4C31879C9B8D830 8F037F64763D99BF7F0D31648934CABF4429B55AE8AB24AD37DDD4794B950170 5B9C8ABD0E1D2DB419027F2582E72BA3A572DD143AB5D89A251135DA1DC435EB EA07CA1CF7CA45E59420B3C8CE993BECD9A30AE49FED4D2F0FCA2CFBE73C4A53 C193A3E1729921C790177A14DE852104365A9A8CA7A1A94773BC1AA35E47519A 61F9A2F505E28030059F04637AFEC703C8161A06348DE9AC13E922561CBA0992 D001121176E2EBDB1C64D975906ED508CA6536BFEC998452E49EC8F17F0895E2 B54F9DCD81D2F792244BD6ADAB3C186FE52EA9E30FA98DEADE97C35AF0A64687 AD715C4FEDB99B0CE8CD99A7AEEFC1B0C415838486388ACE2E9A59BB724F6439 6D279484B8839F0FF8CCE45B16DB1AE70C94832B1FFAE39C67AFC5ED94692DF1 2A7CC63B5B75FF270FD36ECFB7111BEAC0A5DE4ACCF88DD9748E577481D22E7E BDD3C4E1B2455344351FCFDAAA6FC993115D73984DEA53961B7AC20754E7168A 791E952BC6768FF004A8E700E87440A3E6197D5DFE27452051462AD17614FFCF 55BA91FBED2B28C6D74015EDBFEDC546944661F590AEF14FA9D6617B72692469 F9739F87171FA2AF5B0D1EB4B6F557BF0E928D5DB66C4EBB60C080AED9633D22 A2A34072F945BFC994A215943256C1E1E95738CBB18115723D370DBB23D5F6D0 48A13998968032E4C9DEC8C0BED602BF78B4358FBEBFBCDBB0C5D02BB673B9D4 9874E3A45D9E3AA50CA8F8DEAE303DDA7B54BE6F79017ABC5A6BDF5E42A06F81 801BC733D8311427E030B0C06E669B098D551E75C9A394F7B537C8057B1DB87F FCFBA03FB3E43C5D5290609DB55252B0DEEB81DFD270EE469D3EBCE156D8D254 1264E5B2B6C25A3BEC78A11D478BF53F4450824CE858F76C4FCE760986750D42 A296DBCC071D5B917C508E280D7F516B47B2C5D22D2CAD38CE90C439D07A1F73 F75BD74E03CA7BC423D376E2C216513264BA2D16130E059A2440412E3624EBB3 2B9EFE7F6091BF3A9084447B363872C6AEB8D7F9AACF2CC66F3244B7C3DB3496 24FB33A51D0BC75ABD78A8EF3243D6377BDCA2F7DAA182B819D2F33D3A5912F1 2D071204FD3C54002FDD1DE1AB5EDDC5A75360397A7F8C60E8C0204CA1015352 C9CF801630231031F68C048CE84E4E5266E58B9BAC8565D1E0999B1F85974F00 EEA17CF4A9394C3E796FC5664490597DA5F2CAC7C0013B115C9B5B4D6E00A301 AD88E2A1732B362659C421B173B56E58FE69C725B9FD9BCCEC05D2312309DC33 D82AA93E393144D56BE2892FA21DE4F0B995863DA2E5BA9CE7675F951A3CA985 B7213FB2CDA7BBAD5C077185D4EE067036710186E6E073A5E4D9C69291B96700 4B8E5B3414606385395FD76257FBA4948FC2E7933316B55FAFAB1D5780045573 723AFAD713AD906B31EBEEA862D9DF30CCB2C0BB6CC55A89C2529A4F261AD82C 4EA9F795AFE7D4C10A5C30B74F5F89D7546A96B667545DAE84A4B76A65DD7F4C 2FC1BEBCB3DBA3DC7A94213A35415EE8DE6DCE431FA4ECE32CB9D34ED335B4AB AA446EC08B5AD1FDC5C07A9ED6C46282927088B156A8D5DF48731A202E0CAB8A 069A9EB514E0D229976446052A40AEDEE2FAD548E3AEE8B05003C75E2828CDDD 3107095FD062D11B7E947D1FBED7AFD8C334877EB91D5A5F4C58095A6845F1BE D0EEA915C8E476DA4B7C3D619A2D7818A95D058ABC884EE745F760368A7EDB12 9F90967824D6E3644E21203562D08629BDC7B8B45A1FBF6D005EA0771D91DDFE 212EA15C483A752A41A2DAACCF781842FE52BD242CC5B03E2614541891B78E0D 1E20FC0CF8CF2D402149BF7F3E93E768E590555288FDCF314508E4A8B82DEDFE 4DC57BD554F948F0DC2E13D4718D04ED9527242A2F4F8095BC13EA9339B6DC8E 984DBD7912BCBE4EE3AAD564336517B2A4366A5EB4327AB2EBE51C4C3822F1F5 1030783F8CBDC778DE14D5021FF1F7A2B6AFEC021C3EDBE03C5C9745FBB56FED 18C2B93FC88100692D07F8A55F341E8AAA70749C520DA2FDD9533EEBB718DE9E F5D5CC5934E588FF88BFC98B9668C33A0D9172DF3B1B12AF2E75298E17622B92 EFD5217D9E70546DEE5401E1B3EE9E0838CB2FC2E4E84B3AF40166011BE3D791 A9F7C18F43734A8E29FA7B50C20FC05524DC3A28258536CEB1AA06ADBE7FA611 E7297031157184E1F24B85304F54925C2205770C222F0EE3C6C8B96AF7ADAF6F 32695219691CB67089C9406EB30331EEE94C087E1BE86A570C97468D29E28C7A 75E36E793D9DFE60338A73083C4108D9470B9A69795A01DE77FED88A06C1587D 1F82D049A7D848C7B861325A9758F70935D55B1F77C8A152098B5DD721AF8DD3 08208F6EFF8D5789AFFCF0AD1F55CF223F3E6E4EDD8804F7FC655C3F77FA97E8 37F763D0E07C68A908975581116873B9AE578A26918A0DC8FB6CAC049DD3A478 447C0AEC3223C1459E3780735BFED6E10DB82416A1188665435FEC6023C39DE4 462E2354EF812D4BC62C59AE5E6C18EF78EAF84CD221BD31F681219626C8FF79 BB4088A41BADA4B5D72F904B8BD5F9F7402C43FECEB710FF43C33BE4F13A201A 86433D4D158BE14FCCFDE6084B9F14026E44E9542CE695ADFB7CAA107669EEA5 C46E36B81046EC41C4D5B5325C879B537E40FD34E46F95EDC4010AC0B6B1D7F3 3D5B4AB1630754D0922E55FE6751257E47D26E7AB75A249837BC42208225B16B 24514A96DCFD19994BFD574CE59ED5C3EE2A71EA684C53D47CFC7A8BEEBBC4E4 E67C38AAC6952E40444E42E0A4D77752EC4CD7C8EC5AA896207E978267F5676D 66D00D38D83D859C06ACEF6F51936BFBBEFAF4D872586D85A70DDD065CA4E843 4D73AC36C62ACB4B0848DA6D47E9870B34072F209C3C163328392B5F3CA87F8C D1D25F1690495EEE448BBFC520C45583D95D7F5ECBDCA5B4A21151905BB6D081 D0A83CDCAC9444C3AA95279731512C980D425552789AC3D6639E6559E7F9B0AF 8AD0A745EAC426B659FDE76FF925F924FC95B37B979BFE8FA2E5348257AFCF78 B5AD02E9E700905E767530464F17C7E38B333C7CDC791A5C6BE598A448C9272E A02E66EB1DF372630D0BA6BFFD948AB9AFBD19A49653CE4FA35888F63501225E 412E687FD5B99F71E3974A7C56EAB8F3284CBF2E1158F052A1348CF7D0CBDE60 A5DF70C05FA759994B7454C627F02BD6A72DD939D4C162357C5CAC49CA4DF719 7A5F8DB894642096B3D28B5999A9F0E7831D53CCFA3B54A2E80DE0DAA6443D4A 0F9925FEC05D81E64BE6623CC256E5E2D3A198E2C7F476CB49DBA0FFB2CB59F2 30726317DDBC543DBBACDD038E74E93F2241D8F088B8FAF6DB1EAFDC2EC726D5 60ADC9F5077B030FAA0652A206A7ABC4392BEFA5F26E06A035C8DB2668A67156 09CE09469FE5C6B980077948C219C4B704FFCF778ACCFAB7A0DE5D250A129B0F 29434DB669490EDDDE2E3D623B2280ADF218975755731BED2026715EFDA9FE33 E691EEBC3E6B27AEE824337646B0E515B7FD87333B8F00E7096E96F178333917 2EAB1591DE9DF8FF16E0E200BDC0C8F32CAF4ECA0423E5B04350BDD29DF243E2 5F63B28C45AE5775EFA2DCAEA8C780CA25CEF919FDA2BFD79F8F3E888FAA00FE 5A593078FD62B097B3F39503947D26FD8571CF8A62057B35810768798906AD0F 5A48462F4B18714570E828171F78DB2D7B70F75B85D5012A0BDE436726C96B66 9A11AD4C15FCADDD62D5D141FCA21793790414412B7A3814D0016DE9C5BE1A7E 6BB5B96FBBEB709848FF02492BDB5552535B3C73EC6EC05EA00FCDD2BAD14E54 1FDA2D3D6E261788909CB092079AD5F94F4D4613FB16CD377D310BC0674F5D11 3689C1751C16BA421DE11077FDB2A13843ED5564F7248502E1DBD900A74CBE10 4E972C5181D183C1F08F99D9EC251B2953B8C045927A179F4A9496CC5153167B A36C34DA3D841B0C34664150BCA3EFEBEEBCBB9E556B6F07D622376F4CF8A6FC 021D07C3277F59A41F129ADD44FD481D40C8DA930AFBC1AAE14543E7205A5C29 196C4A60EB046B6B11F3538E808DE7A4C90749E7D33F88C39096D27D3D6FBF4A C01B912C8F4F551E5A649B1A4C795D5AB288D1D4DAC3900DEB535A10B6E3F947 C00FED2A954C28941F7D629E27D5F96365F7F100C9274257C3ACE8614D29B082 C90A26F02208A2CFF19D4E3890D6563EB1AD01C8AB5181C84823B6BF33A12D2B E7E7A3129D025EBE4552437A93BBA21D3B530E8F71897C5C6FBA4DB374D2F9FD 8E1198602B07A031FF02FA971C2272E790C2ECAB70AE3ABD074AD2AAB9AAF8D8 3D3F8B03A7FA9C083087085567817FEBCE728F89F9BD1A4071C1C296F872BB33 A525F89DB8C34F99BEDD52B5C348199C474FAE6FE1A6F82933AE40D459943AF9 C00D21B397608E32615CE5CB01E71AAFBEA5F5208F539AFDF9361520D2E2DB6E D325CCD0C50FAF01BC264C611E8BDEAFF31DABE7A95D1A400EEC0071C59FC338 6F3D412185E38553655DB2C39CA75F056A3E1B2AA3D5A9AF0B2F8C7243988989 4BA8D7D1377BB5BCC8DB8FD1FA6DB83CBE3CDC260D9DFD1581F0E58182B13D93 E844236732E08A0B48B6CD8B7EC141D5F9A21559C9315E1C66A902060476B523 E587A4AB67D1862736C441BCF3FA2075E07F3021023121F38470D1543FD4D047 0FBB9D78AC9D2DC9C96F99A9427F7D05B7287FEB743C8E2514D661752D577EBF 0995C81EF24FFE6819D6C329C990F8555DDDC72F9E3653A4BBC53C56E01F4934 770959F67188EDAB8F6003D7116D054019A69006FD7FD182CF9605E083924CD5 61BFD0EFD69F85056DF0ED39116F0B5E0B44B2C47220AC3EEE6C723521748A50 2D1E6DBC2DC6122EA41E2EA012B331A2751A3CC68D7B963FCC9660E35EE076A0 61EB8285DA119A27336F61A3568F3C513F37DD1628E0701F6F7E565461A14DFA 106319DEB18F9F61E2444948248A778CCE717F62CD73B36848C85380D01A88D8 95C9F2C1A5836E94D7347DA871E535AA75E6ED86EFEAF68046A618D8F66D671D 01D12E05BF8FCF306959BA70CDB2554EF188D0B950B6B2D6CFC86493E1CDFD27 922701EEB94D65752431F54A7B7F6F52E57FCCB2B100ADD37C1E46A2349B62E2 878E626F6593DBBC44F3375A9093550881FEFF36A34E8BE6B00707F362A83D12 8B7FEF549E27EA2424EFC6CF0C3B8B1ED7AC1BC02486C65BE3B036E4DE1A2B09 D5D9F03F1466776D563282F141E2469E42F73ACA779E62C20F57D70366200255 DBC524C89B8DEBD1E5C6A2157AAFB961328B8BDAB8023467C7E0B3D844C4E316 8DA877C1E3EADE70E8D555CAFF2BF2B2039CA50A868AE11FFB66A02791DBAADA 26A7159562865AAA83B884E377490CB2ECF9F16E3C80DC2BD05663D4B95B9783 79FB6E8E052F80E973E271248E59BB5AB88635C3E1B89948BE9F32E937B4785F 27C7882DA9D0A699E733AA64B5269DCE98C5499E73A1BC2B1BB5652A867BB056 06F20B3FB9E4A5F51446F45871E08C7F5813594257BBEB02FBB3744FBE8041D6 C9820138032946EDD761F5EFEF43C493380B2DA782D59C627972AA618682D0AE 03DC8EBD743E52D94EC0088091C6263682315CF9116258A92CF3D9A289700C0C 42BB0FFBDE4366ADE47658CF277DA14BBDEF36BCEF73DF297B6149DE4831634E FCFC58DEC16412B6E25AB9C247FDA0800455244AE2C6457CEAE425B6F416A191 DDBA8D9CFA81E057F009AFB2ABA08A3FCC35588C2AEE3157EFD632E7F6550079 954C481C3697EA12F2664AE6C371FFC22BAA0AFEBD61E874EB2B8B1DDBE979BC F7629C76464EA039A19FE0567291BAFB715762BAE8419FB4C114A198A95BAD30 BF39EB6C73010E0A15B7D1235C3D5AAE2F44EA2E587DA7445BAEB865E3AA8CDE B9405C3561BDE601BF64480CC5A7AA7973EB5F1F03E9929200773D7037ACCC6F 1333F0D36C0F03483314B5B66B13B85A02C106735EC062F6CE66D6049B003BA1 94BA29C9EA03843BB4FDBD5BC3581F6F3BBD0B7AB93FA00F62F7A579FA9B5E68 04196135964CA08B2D4F08E7A677D4435D0F75419EB2EB6846AE0761DDA83F67 621BF39C1521E1644040D939A89C378A75AA868F2D0A9F9FB9D6B04E19EBFAB9 38931313205B214BB42B6DD39C20CE46C985484F139C46B6BCA884454B296374 296176E0402019CCC731797ED712DB06411FB9EB545F3B6C224C908F7EC73377 91DA2C03ED472A0B15A517033EA6384CF28896B00B1B8A14C7FB34A965E93DDE F574F03B3BD363E01F2460165E08F8E3DBE5B57B4024BD27661386CCE2C3DF10 34B62CBEDBDF02402E7640BFC18CAB71CC05043CD29074D82A4473B21E02B7FA 0D331B5D0662B4FE3DB24CB0BB0764D0534078E23432E6FE0E4BC2C4DC81E7F3 6AF08177B809D61F490325421D6D71940421FA781D91997FD805BB4AB09068FB 3EF383F82F86CB154BAE00AF1B5FB4AB5A8720A47BA58EAF089A024784E7A12D B3429AE002F3B71C295FA143C7CD8801E02D97E30B996B1649EB426A2DE6935F 81AE1138FB78A0042C6E3EE58A0D0A49580822DAA2148CDCD13B00FBC7385277 821E7C20DAA4E3FBAC0CA1E1FD36EAE068AFCB0390B1CDF163579EE3AA4B7C43 DD8FF6AEC6A3CE18C6B3C79BAAEFD422797162F1BDD5D152FB9C4DBAD95818B5 AA1ADC06BC1E7868BE5BC495AA4625A4E5712A20F4DC4A920A431CE78542AE65 A908BC1E50491F896E03ABDD5712825C0D642085FBD3044BD33022463309F701 02C8091BABBB594FFF71C16BC71DF174DBE7654F377E46A8C140E7085A248C48 DD46D9E3EFF1B1A652F815906BAF60486820AD219033AEAAB217E93B3BCE5386 DF2AC0316645AA6F3F93FC8F00B52C0BF8E15EF7FB0206DFC64DB674810FEFAE 83CF025B89C875F63311D0DDDE631E094A1B65C13AFB6272363D2FE2954FB96A 9EB1C389DC2B3E665CF3F6F27BE34967FF0172A3567974821297445DE8F44651 BB3A54856FB7B1339E01F176D11CE0F2FE66E5F012AD590C7498E5BAC83D64D9 B9E74E5E94A7533E359DE5E3A57120A73221F6C261FB223E55574BC6C5F414E4 C9051FA56409BBAA568A2085E551551EEC898EFDBCAF8DD4277072846F1570C6 718FD28CE0790AA49CD2816D43E6148CD37457BCA5E3BFF86982C1839B88E149 4C235E074644755CAFD7F71429B72416469B6FE016B5289F3C429FDF271C136B 8BBA284CBEB7DBD0BF22360D42CF0A10D10FC811442051EC7A95C33558D753ED D69CA18600157CE4B2AEEE3B98D4688C3ADDBCB09C44CB164E017B676CBDEDFF 6A3CC5728E9D8CCF2FEF4703FEE70191F178D7E770013DDA26E8CF7D69624DBA 48E952D2B1E759C362864C9871374F96A715FA799C6324F2B26AF0F8CBC0C393 48FBDF8DAEB6555918C71679658009E7DA0F684EC2362326BDDAE0294BC44F4B 0938D79336D47A4C62566C08D7004D0B15498805F37335669160CADB900DC43E 641A215D8D59108DD41805F007949849C1E83917A9D6DDC7E9DBF643C5BB0563 2CFAE4AFD1932ADBEF6C767667251BE71BE45DA12C5BF62115F5B63CCDB8DE23 78DDEBB65445FBC793E55F2B423B99B07C8DDB7BB493FA9F1D1CFA93D523F080 F503E7B54769B6691438EA39F0F6C1B8196F7A2F11AADC46DAA59E2CFE327979 7AD9DBA5D43602141892A6F86634CF7269042A083EDF44B4052A99A042EA13BF 2C5D30ED0D4183D73D7948A849F59E3D1A0EA3A059F6075A69EAD7D4420630F3 7517879D3909306F969288B1CFBB16B0723C63BE265DFD1A3C384BBCDAA5CBE0 ECBE0E8E0F4DEBA482090FAFC229BF02730EB6059D18BE0369B0A13ED2AE02B2 C1D3FE51529673200686F0383670A99D2BCD7096D3E3B8783FADB0526936A6D9 FB8A4DF8BAF2ADE5764CC16FEA1B452CAF54B06E4405746CA7E0A2610B56D0C3 593F258DC5B92ABF6CF64EFF4AFBB066294F317783B259546BE35E7CC10AAD93 6A53E6D90DD7EBE85AF7087BA48C11E776810E8B9392B6FB7C800BDC90F7603C 59A1B984FBF893B77CF01347412F127A6DB7CD1B2EF1232FA3151EBBFA361593 C298224F6024698D82747D904C44810607B9CA3448790D4025E339F8A7ACA13B CDBD10CB87420F47C2504459B337869CF99D01F255BB518403134F42A259F0DB BA440916251AEA52D44FDCC4EBA62552F92DC3567F634B90AA1996F7A50176A7 06D60CA1EB8A4495059ECABB76BDB5B1C6029FE6A9BCF8230C554CF99A5FD751 70B0205DCDCA4E8512067D88145E1FFCFE24EBEE1D2C3A11820FA8CEC9D9F830 63639C1971FB232FCBE3C23E7DFE4E5C435BBBA755FD6E807CF8648B6498942A DA8A22C5505B8BE855ABFA3AD0455DA68357745F675B625DB0C0E0EEB02A4B7A CF909A20045A27C28AEE8B8FBB54F5F294E6BDE9FA15474AC675E8EE1F8ACD96 E8B60835C443840C9227DF1B8DFB66FA81B0E460FD42B78EA146CCD4F08C6EAF 99541C92C31F3D7253A22EEAB6B562DC60CEFCC95543D9703874AB7FD924D57E 0BE99050F1C9DCE93061A34A70C274C3CD492EE4D97619991867C2096839DCF0 A3C65FBBA6B7D04FD4E80E24D069E6BC0989114E28A4E4EFEB0A63815B9021C9 F6F39C6FABA7F3DFE1ECB6FDF91F3D745C058A451D7BCB8B75CC9405566D7D18 5B57BEBE114AA2E311754547EA061E304318C3099AD4E5AC2018D17EF0641E2C 793CCEC2FB1DD91E3BD5243D4AE62330D472B77AA4A57684B3CD23F57896BC9D 667ABD0148DDAF1A67EE9AEE712C79CA9F6931A3F8B9B245FA6724E959D8F8CA 9129D1456B37551FD0DE95A0F1C4E9BC11A9B96583D4762A07F32946E0F30FCD 4D985EBCA3ABC46E1FC83033F764ED045DEB0426598042B95AC5245A0270CD53 E72377D6A9642A0FBCE6CAC4B79AA021CEA623CA006CE4DC8DA41FB1D1E643C8 DEED28D66E4DAC1DE3A933730160CAA7B970C36787CD2CA3F34F72531A3339CE 5E1ACC4E17A964CEE606A7EDA19FF235A1B1D92C9048EBA3547F6E85CF93CF39 37BE25DE46DA396791B9645F9C025870648DFBD5035EA3B088AB09E63E543A52 5AFA0B07C773E6A0511F1B9DE1079F45AE936BF7DA3B1F8128ACF24AA8C84402 91832B3EC508055AE9629E2F0F2F3C0D814B450994D2C9FBB70C6D88E6AFA6C7 19C3AF60D4A8EDC509992BB7411301E4E1963927A6EC463FA6308D89E0EA5897 7004A767EC6DDB51FE5500BCFA6F85B55E41CAF28BB726E128B677EB2AA2AA74 6F7BC4234DC1B8230076BFA61CCAF0DCF98467B3C54227E1FDE3579A7CCC8C29 61656CB7D4FF0391583FCB27E118396D9AB910758666420B9F89015FD6C7B112 4D1FE984E239B3528C2F168E15C31C290C06B2E5DE35E4D2ABEF07EF4EE80825 FB222DD2AF73B3FCBF3CE766C9C996E3EDFAE56994302F1A26FD2E3016477CD6 FCC2FC6AE4E3486A9BA6E7B6FEBD1C534EF5A9618BAD5238F83BF6621C9E636F E7883C6A15EC3C5DFA04E99C8C4C5078F430DE87AEE7B6BA0AC017F3042516F9 B8B2D24208FA13CEE995678B3177E75E3667DBF0FFC8FD87A4B788FA906169A7 24AB2879B2FF9496CF4D764249873AC97299EC9F29CA9C6B1E344207E4CAE008 A6253F0790FE80E497E33832A1BDA40AB515A3408B6F202B5F71AD4A6C12BFCE 1F17CD873BC22AE471FD4C9AA0D82A629F4C6C28204CCFE86124B28DCB3D675A 75081A7B73F59172244956BE3C8B09572FC9EA95EA470787EF1119424E2A6A71 518CE12252AE4498AB36676611870BD6B61D7DFF0313F1DD880594333A1E501B 07CC930B94D1A0F4D813C4FBE9AF458B675B753123C21755F45F65B7116D7A3B E985CA9BDC563EE5D7C5D69184DD7F262B2F3C6555D8721681C697CBC80C30D0 5D90F9793DF3CBD39BAAEAB3EE3835DB000A2578D2F80095663C85288DA0BC5A 67557A83E253D0AD935854BDD0D96885E3F3C106EE99D04B91368F056FC51621 B4BA224FF31B576B05B26F170A6042533B6326DA12318EA1354D15C907A7B3B5 74F800640DE24F75356850BF9BC69103DA366A28457B6AA03D00DA78C4B5DE3A 8D778F1348C55E636AC31A1349B47D20E1B0B54A555C105071BA868776058EB5 A9585E85665331BF03B40F7D9B0D02F1577338A54109E9A915699F0841570B93 428F4BE1120A99E2AAD447837594C4206852B93148AB8F1B5D4EA62AD5C91423 649B5621BBCDCE0EAB6C24285B53E66E282770AA8EF1D9C6D08D798346EC7709 AF04CF1E043E855749DDBDC9AB5D5DBF090180CCC8825C44F418AFA8134196EC 4AD16F49F8CA6C54372C9E42F76AC4D9F3DAF6FD5DF148162877D2F59209071A BA096582FDA402B7C28E7ECA6ACE88ADD95B6F29C09CEE9B160C2129B87AA421 48B83F2F058CFCC5F6F232FD6947268EF107614D67A9211D13132BBC9E3F735F 7C51740EBDABE3C6CEE3B5F70CD475F2FE6A57164767795DEFE45A946414BD0F D74EFE0129F0C48114F6F7BD6F729162B3BDF9181AF90E67A335BBD178ECA9A5 D914FB7C3A57AF2025911EF6695A1DE8BAFF2C3EFE9BCBFFB02B9E323AEE0555 FAE66B730563251220B0C5261919D4F5C661BB101D73C4C15AB6723120440572 2A423BEB29B6B49F0E17D24A11B79BD620803DBD3F50E43518FD540C97F9AD04 1211359405AD37022380B6A75922F7693BBA7B997BB55202C405BF24FDFFB5F2 7E806ED6B7B560F76DF9B168149439AC29767753A21DFE9C8021D0944C4C44CC C0B47FF36CD075326D10818812FF4168F65143A6A3F101DA8B110683735BAE7F 0A365E515DB2DB809A1F22F5790A791686A24089EC53C25194F6F64284DF4E0F 6275458A1BEFAC9784289A8A31698518ABEA5198679ECF7DA75F3B31D8941C07 2EA8FD889F2F36144F71CF56115709AE63342703B0869B8DA17C10C292369296 11A38ECE4782DAB1FF5BC9818068C8539EAB2302FA5734A261809B9D63316A43 AFCEAEA40F9A5B0D8EBF3633B7C88DA6A611DE48D282D80034573BE1FBBBF058 FD286EE7E1120BFC04489510FA6885E38C030A678E8A3CE1A3A96E56BC5DEB91 8695DF37CC1B872C95D1BE59B9E1AE324CE947E73294C688154BB5E5704DE61F E2D3E9387014D6C4024D4E5193231930EBBCD6803FC3818D18BC190EF7111F8C 1E0C9B8C513499730E9718F7BE7F9D5B9379C2899D45B88A1F21ACA4FE175CA1 B1AB688538214638F2BED7FAB66C1C256800185FD36707A27CF83AD6915DEFDF C93CBC08481066E1AFC589E26B61638784DBF3E3767564E7E51A40E7FD2550B3 CDDDF2795E6806C382940689C95599AB6B0CC6CC7BB4F67C499A7F306C81B407 FC6F181CBD4E299ABCC56DBD46CC679128442DD7CF1F8F607303736C9D6C6159 D76924DA05FD3A3E8E8DC632F6A4C5A422AF0D6A64C82C1A4A728268E50A6EB3 6D557E3FE76FF86B63D4A8BA36F0CE16053F7D519E3C68A1B468FCB1A7BF4BB5 B8333B4C1DFE609077A1A2ED7F60A21DB87E25A81A7902E51EA5993A5CC16B66 9A5FF6B0903B95B1AC41A77AAF12F9FD4F0F9B083906B17AE68658634C7675F5 82E1F600B04E8662543B5F53502251ABB6DEB7DE58980C43CA61B1A84BF9694A FAB32A057C4F3ED819418A21B822877CE97D5EC5603DE540A717AA3FA3AE35A1 0445077B412BF1AA548E624FC904CC2A1AF18EE6194E753609B3241BC1E5BF17 68DE1FE8CD4F5FE6E4733CB4C18522796F6CF3114E63A7952DAD9E1129A66C21 D3C37869CE94D75E503E58FE585836592FBA9E3BD241DE5D2666B04EAA7CAF89 24F51615F514672158070A121552F694372DF33A770A7D107C8C5743554FD2A8 75D34AF844F9CE5275CC877CACD56F2BD59C4C32544B6A91BB326173EB8CF2BD D584DAB7D2122CA0B4063A6F804D0252D8D15709F0A82B9F6035D88861D7B46A D57EDBDAEF4EB8ED49C9F7E07A79601BAA5AECB06689ED3EF67B434D2E0AB453 A4DCBA4BD3656A55A2355D7300CBA53FDF6CC370CB8D0C20869B0C846BBB7607 3700256F98AA30F4A58727E3556A3C6DE6F698CE6D06AFF5118B219479B875F9 5A50120990A57FDB526DA901A07B081447FB9B795E0829E304B5B55E010FA02E 1884735FA1FE159B048846748FEA02408BC844979E7DCDD158AD3030D66B5572 786746F7375DB6F7D9E6F7E06E427479FFE6F19CC1AC3256E82225F2A56DA833 78FF3001A0DDAC11FAA4F3626C8F46E5CEB0D0BD61CF867358FAB5C07A914C13 BCA1156A6DED6F115DFAB7694069BAE584EBFDD39E0AC6085C7B6480AD29CBB1 8BC822A61E13B6BB91FE6F4E573E0A5D88FC789F2E4F493D0661EAF2C8BAFE1E BEEEBB79DFECF9E9D9DE317CB0F3822C97AAD97D6A359458C063E8FAB0D736B2 D6126804B2EC907F085670109ADC5A560B23209BFEB0C8A523222368CE7DA2CF 2195FDA51E5C68251C3BA06AF28EDF92142D7E118EF419AB4EE4CDF7A426CD68 B0C74AB075407879445F81F686C6B3468F58C2563200EC2ACE3BE5AEBF45047B 2D910020D638C778315397FA3FD128063888D29B3C1147E12B21F0438F0B61AA 74A39F4C19B77E475875BD757C41858B6221C872898D59EAC2524B14DEC2AA9B 6BC8CB865185031A352169154F8DEFEBC786557BF0BBAACBAAAA09DEF7B6D431 8EA5E2E2583C2A3D606EFF1A6B61A7C6FC35DECE8BF1C7111CAAC4D14D814D05 D2A259BBFDEDA23DB4324B7BFF2E448A229D51426027182DE784BA355CA76C16 DD84E89787C6F73A0B07D0AA6CBBDCD3960DD91CE4A6B7C6A192F4FB8EFF6CD9 AF308FAA3098817C6732ED6CF1FB141FA181A07C11606E7827A41788456D4A58 13E4BE2FFF83FE7C109134E2E87F32F7700E58E795FCFF46CB0204729A43C99B 278B199F445E3A0385452BC920F7F2F4455BB8A85031BDED2753EB48B9578A48 9EB4E6CDA71F06C56566D329F8D0C171C1DEB2688160E230882B3DAB3D27898A 5331CE4D437A60EB69A6DFED2718F1654B91D12D86F11E5CB9CEFE80469ED10C 56D09422BB6A2D2246F400190D189B782D95F08E263DAC1E77A955F3D6BAADB3 3E9455AE99F82107BB7D53B7A38C54E61CCFAE5CC5868B4D1A166E817143AE4F 6973B39CBB023ADD1C0485BB9E5967F9CA4404D3B759416D2A351B02F6D5BBBB AF67315177A230D77C11CC66AAAA33327DBCC58DFE0550CFD1D009BC02570E55 A06B9A90C0F3BBF2F0887B3A39C5B64B5C57B4D33057424308497BCB7BB2A5DC AD9FFD630AE3E50FD9A4DD191DE90B048D40CBF9BDBBA7329862AF4799F78C00 5C410E377999BBCB303BB5FDDFBF3D3B83C53016D546A7D5E8AC3D5C8141C645 02E3B4160A226597258F21B8A1FEF876988BB4380ED455F4C052484684E7D589 082DB2DE1B332C905B5D19EE154662D1C9A990AF4956179C8298DE0C512469D7 527CED1E5CD3F25169E1BB691FC3239A3E8AF46700CF327D65ED738684A6ABDC C7FA7C55E99964D089A88A6126A74CE5BB982063C2D1400E72A69C5919DC86C9 677B5265D24A6C125333C95669AFFB77960FDDB34B09962A511AFC83F6C6C534 AD20408BA685E0F1702B90CE4F3C3197E92FC7F55B36E5A578879C9CA5D99054 ABCD4DB6FE020AD64594D84017A50FDEB87FE597B46C54882156F976AFA7120B 66D9278E9EAA53312C2AEF5854C9A907F5202C44FC42AD4D89A5C175DA219123 586271C2EFE868AC78A928655B1998BEA24117740965CE2A8DD3B4DBA7EAF05D 2B48F43550DA305DCAEAF51701368687A3CE3EB1F85B208A6404C2BAF3122C0F AC53CB78EF1E9F405037339C1531696232F4A49DEB487100BBC60CD73421ADD5 DFDF53D6869E314E95930604EA22A54F476A9B94DB3DFFEE9F2D28E4D9E90F74 D46FA81247C52DA77822C5E6B260F7AEB3E3A7EA93C3AF037292BBE323185B96 6BFD7763810C1E250D0316BFB3D7ECA35B267F11 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: SFRM1728 %!FontType1-1.0: SFRM1728 0.3 %%CreationDate: Wed Sep 12 2001 % Copyright (c) 2001 Vladimir Volovich . % See the file COPYING (GNU General Public License) for license conditions. % Converted from METAFONT EC/TC and LH fonts: % ecrm1728, tcrm1728, larm1728, lbrm1728, lcrm1728, rxrm1728. 11 dict begin /FontInfo 6 dict dup begin /version (0.3) def /FullName (Computer Modern Roman) def /FamilyName (Computer Modern) def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def end readonly def /FontName /SFRM1728 def /Encoding StandardEncoding def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox{-174 -318 1347 949}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C EF25195F68A2A98170E4875AA4DC69A02016AD2E6C71441AF87012AB28D4F0F6 05A1B80B954FBE39F81BCEE3BB01BA5C5E565B5AA6FC97C7B6B67E84357BA44C 2937AA743FB277BB74912DA3E25E67CB130405792F93CE2E46116C19329DE8BA EE04B792CB05588004C5CE06F43DA6B4B7A32927F2C6F890A67FF20BB1365D06 3253F39A8AE19D733468E9F5471E11AC6CCD6414D32B064FC8EBD4AF9566E2A6 EEDC38EC94CBA2D168CF68A2446460BEE734A3DBA42E9E603A42A39D56C31B65 CB46AFB15FB6173722CBB1A11340FD4D60C9C1E5FE87804590AFD4CFC5BE2708 DDBCEADB09C259533E430B4969688B9ECFF89E492D13C71C38F5CA9ADD1FF1EA 5616C0A52C7FC2599A22FA881C576B2EEBC0E178815E97DB82FC6C2CEEB0019C 4294AB22B62F31451ED2310FF7D31077065FA4DA0C578E84DC5B45EBE5910053 4705EA0BCD13654FDD9853F9B32E4256CE9281C2A01C858D43FCD28C34BAD1DD A9438AC1802E3A2F18A13FE940B948290D3423E7E8BB8914B605290D931A5921 2BC316BA868C0A90877010683689700681E32A9F65839CD7E737EAB2B87C9A48 BC2DCD592E530EAD50C8F49FBDDB3E4720A71674E5FC179BC0D407B00919537E 67FB521FF5A4B32317C44EDC5EEB3159FB0E6EDC040841978A5D3210CCB067E4 75A43DF2B7106A8423E4C5FF6A84003A1D43A64470CBB0EB30581D79F4196C09 382CD6C7E56453FF7A15528E8FB8CF560DF8222DB031074F387ACAEB81723EA9 AE3B3FDAA62EC2D497594D7682AED7EB8914D13B035470557B23B9D51CE0F2FE 66E5F04E399E3BBB19432E9D4FA81CD44C3F88E53723A073BBFF8C194008B810 18E1A1443CB8897EBB1FC1C2767E08A433AC8E0C96E39FD5FAD68FA2141144B5 BF0DFB5F106C29C7C87BD0773BA10EDD037D5C3FE2BC9CD49F9011885EBB0E1E 7754947BCB7DDF52D82F648B40950852899C78629DCE327B5682AAABA7CC4B68 59E4D8679F04375B9CFAB4EDD543214B6D978C379E33FFEBB1B84E3E7280D326 32B2B0B608259CC88561A7DBDF5213879B86395E7896365ABF47F9C9B71DE7C3 707E282482836514F597118E8183417B87851F2B959DC637E01941EAD880A7C3 B5E28AE879EEEBB609E8C8ECA9B04283E70748DF3EA93C1AA74D3DEF72F7588F CA4F8DD487B705F6FF3834309F2E9FA31C38F01FA6BB929B7D2781551583B6A1 DC39C40FD37EBAAEA6EE5FB118C32B78C8313C3AA4402F7733CC02D720494DC2 37BA8F8ADF789662C3CEE0B98F23D84EFF89DFD6D26F89E6170053D11D63C94D 490D91D481711BB870204FD10989CBFB8EC97D715D8547404A01A6FAEFBB8F08 3604DB0FE8CCAE9DCA6ACDEB1A0510505B5B72BF158E72300A2D5A286B4314E3 F9041E681F461DD52B566D8725FFA0C0D33C519DEB202AF53BADCDBDEF0CAC86 9DCED6FE52AEBA66664944DB07F0908B6DC9CD42010D766FC97F981EA97AD1C6 8EF86B3E728A64E1981D2B563A4BC5A1E52B8D3E938C8C15B9738530D9AA6905 7626DA202C6A35909BA4D6D0DC2E32184A5AE3B770DBE028D8EC0255CB22BBFB B9B3B92231886B7B339CD71513DF01252A2942C6C454C2EC2E3888284189DF52 B92843A95501EC63C67ABDBD23DB383FF3A155AC5E6F068CF202540346029806 1C181F0B9FB0B28D20F7B3A1D1B0A4D75934F8443E9AE3BA17751823F256B5BA 949B5ED945005796D6E904B18BBAFE72CDB6C6535DF22D8F98CEEDB862CBCD59 C0AEECA6EA498BF279BED4B0B9DF6643B869260246FD78C82B8A4FFEA3D71E0B 1760D3C7601193219152C598CD84B25907DD03E509284A4D43B5C29929D49BAE 65EFAED723ADD7E587154E6EF330D96DA22BB0E345D1A49845748CA89A6A4A79 537FD06EE7C6E6AB56944EACCAAAB09A79B157D0C27FE57345CFD2048A6CD4E8 1BF43B111309D247613EA30773EECE5FEEC5400C687E2003D7497D9F41AFDDDE BFB922A82BF8FE45235AE3EE24E262B087FB0031D90BB7149E3B0BA06A7A6CE2 4B00960111A1630CEF896BB4F30B4D7F94F4B4DD1AAB6C22FC9CFC8D140EF9AF 38DC6618C5B2CE27AEFA8F4088A4DF07E63147981FA08A40882ADB4C7F3D3884 972AF0BCADBEF2B2376706FF75CB1A6916EAD6F4BB34D2423CC2D1D499353FC7 02CA7AC736023891A0D173103CA77A11F6744B7561C355BCD58C0E0685ABB3E2 B00586F0EF584652EDF517008BEF5AB6DA89264846E4FE0C6A3E38A487146537 53D6DF14A59159D28EEC745176027BB3D5AC01795D57E4FB4CEB7114F85A2E16 11C514D0A1C73129BA869092A6F0F2DBD54846573CFB43CFEB5CD2AA760AE03F 987EF83A4E2E92CBD92C868E05A2C861DF6685E87C4E740A606C0EBD7AD10896 56E68F15095E006F462B7912C578C6FB7E0B6CC20680E1FC18969EAC3C8C5CEA CC02B1CD8B8233387B6766F68659A329119D416A0B120AFAD7B273FAF6EE9502 15BE50DC846374B50FFB53814F6387F3A24C8636763C6540955B61F8D9EA9F08 9E727C5ED76A531AF23B6B216126E43B23D164A25E0C75197132C98F88B9950C 05422C157F83C246136C1BC0548BE676D7B7E646540DBDD8EE8C88C308EBBB06 185358DAB68F3B1F7AA10EF5A0A7EC59B5C0A4B7914C05A6870FCFFE978BBAA3 E1DB302ED11A53852783FAA3CC1C0778BBB284356F466A9D7602A46EFCC51193 16040F4DD9481E594E6D99A4BD87993E3CEA298634FAFF278FF3124373C9EA0C F12EB7D4F962028B00DC0087A766A60F63978BE757E7F6E7EA3789FB48CC5E29 C2A86767D287474EE0D955CED31605129E49B07547960C5E3F3392948BBDF952 EF06E6238C39AA94709B2C50EE6E015FDE2809D752B9B10AD45D42553EF9B6AD 5B58A01838E01E05E62078DC1DFD763C1FCE48AE61ED50AE8C966323C4F2D0DF 15C1AE394645332905A37F0816B9EBB8200F2AB7DE3219B0857151C7BF6E309A EF2CA999760B44A57D7DAA49C0B038B5B0C93EC5C4FD0A764B34ED26BDA0FF0B B4A1CDF1DD1BC638424093D1B68FBC0D53C386A53E3314FD87D9354F9E38FBE1 ABAD591050BF6E2E01071E5B712F2C19A1C1AD46AA4BBD9A1DDB12244F335AEF 967585E6A22648D8CEFB6B7F2439AFC82735A1CF4D1CE19E46C61A0AF6912DAC A4147BB87D81B3CA5B558C2CC6C6664240CA03F9B165840BBEF2BCF74FB1E376 074F3862EC97081D32FF147266263D69115F7A1A40CB6D7E2AEC445AFD7EA203 DA91633CB3A6EFE7559390B7143D09AD29A2048DC36AAF162BB34333C807DDC7 F0A46109EC3147ACCB854A74DEB5C64631867140D506DFF506CD428F68A5E787 92EC3F52A561F2CB074E2ACA6E2A9781E48DB8F5F6E33BC1F65CA5AF6D70FCCD 46CD6181C424FD35CE5C12D5BC78C7BBD8E100749B38E1AE7AAA5549F5A4264B D84D7FBEB186853D071CB13A0517E174A23DEA7EBACA3D7DB5B09153C0F42344 614C1A6BB29E51AAAF8EE72454B9673FB763DACE83E44F3CAC5970BDEB35E58A 03B7691ABE8B9F9E1AFDCEC14D8A9FDD5E5E11FCB4A83206037F69846660A7C1 7E37F9B5700A4E4BB6081364D2B047F43219ABE19A98E9BAEE0D3D8A12D63738 82212036D3FB977E066A4E5C29544704D47B2E73E6460AFBE8EDCDFADDFAF3D5 91AF14BDA0F24AF0580B2621E7DFBD1F17FFDE9E9D3FE324A15B6CA922EA3648 C55D7A096A806BB2154E6B118DF33908E6BED58904C302BDCF20465A9A607431 4CB5B5554AC22EF8EFBDF7ADB03535949CE4D14F9ADDB25223B3A9245CB38C02 170EEA1D0323EFCC42EB67CBBC53C00FC07240CE0811225962C09988D82C7220 70327FE0080C2F6E3D40F48AE47A46D51E819463796B070A2B3216BB17B5EF47 2B22A7667AD3285CECAB79D20D4EABD0FF7A7D07B9A5BED35DEE30BF2A99C522 B478EF262FF6CD97469AF1C172022BCEF77B064611D742E6D31A30036E559F00 B8473EB8F462201102A4870FE04CEB27C112FF1DC94992D35FA7EF605075EE16 2E55BDCC3CC8377275360C438FF0E862A7E7E06EB6FBB6E07BD329E9B9CF1C87 BB9B11F7A1CC4339E97EA1684275778A369CE0CC6816689D6B716D3250044452 650AC9F15FC5C1F362D5153CAF9DC64B16D6EE1A03E424ACEFF250A86AD18CC5 C1BAF659D06552E0BE7615C82FC3000FED17EA056D12D3791E487ECCD3585CE0 CD283391C768E5DC98237BC16C2ADC5117F025EE75EF233DF4809EED796DB49E 4192E8771E3EB16DD6DB8CA12C47BA44A22773D7627ED7538635EA29ECBC8F94 FE6942AF06A3B25F02D3C225AE07332308F8DEC57362F997A4FF1AD2C9939657 CF9DFF38300063F60AB26FC8966A2E47E19436021ADD090710A388E840184DDB 24631BF2BB54874F6206780CCDF8104864DDEA80084865FE3A4054EC2EB7C1B7 E2FCA9089EC3F6C4E115B5BD5895070514EDEC2BFE426A768678819B070C50CA B47B1D5674D502C4E3EE351374F429AA22E21D16D1E2B179B085A88D9A6FA071 51200A2521A21299FDADF3C21F161FAA1E28EC28D50FAF4DD8721A21AF05613B 8E50F75CC7893C842EC8B0E9551CB7A461A3B5746CCE8AE6A7002F677597F65A 53C3C1D9896EFEB11A51C539A9D5870507907507ED492B8DC2B8723E8DA142F3 D6F5144C7D2DD24979B3BC0EA8F9F233B921509D3B2C09E451C0BED27A9EB35A A7E4635E2D6D439D3B8A2E27BEDC347953F4A1EDAF432F766B7C6A9B3D96F664 F3221A83A203F432A6F170A5FD7DC04B04AB47E17888FC2C1C9A3DFA6C31BFB1 D3832124F21362FD196FC91B921FB8BF6565945B8A2F065EEDD89F309FDBEE7B 1B2AE74607BF50BAF9417FB6DD0521AE6964C58654371F0D4BFD284560DD928B 97F03B90F853C8AB3AA18648F59055C0255C80F2E99AC2A0938753571EA4ECFA 81043CED8B0D7E5718DB05FC20E3C8C69E20DC470F0940133C1DAE3A117EC4A6 2DD9DB8278A0A91107E4AB62AEE36712F85072C69C8D841079565818DD8A1AD4 41D014DCD8AF161D0E0DEBAB086C3C781BEAC1865DD0E6305207F6DEA4F89683 9267A923EF2E7ADD1C24093E29816745F282F7CA2D3A11102B9C6513612E737B 621041F008A9D74A2CCCE77BADA8990F97AF58479E225A85580DBDAE3AE4A54C B6D8AF11C11BDAA5C395E558AAC41DEDBE0EB5158617BEDA29995A9D33FD660B 146C570C396F9C39E4FE33352421E79A5C0C51AA53A58D39D20C3855DC34CEA6 04CDFC2270985793D8617AC836F35BD6232B0B7346EE2D6AFEF7405B80CEE656 EAA8868DB2A98B4A590221B7B421583544B2968689F684DF1542E0A4C0637E8B 01B6B1E19224F494FC59D70362931D8195472A36DE2F8BFEDEBBB4FC85855069 3F4C709D34D5963E226AB14BF267E20387D2BF2F7022B38CB7DDF4911D4E81FA 79D1A719B2DFDC18ED31980433771A8A899D8366122FA7C4D6C1C0082A07F5A5 A1C15373CA3D91A2CDF3424644937A99015287DD4746C530F01112306DDEB3FF 49C7BCEA1A0C120A1C8B44C75D9E7C488F39EB6D342EA9E3EDD2C9C644CC5BF3 E678DA860DC117D6A8454EA11DF4A3856ABB244F632945A228982E7FE722341B D44E62AFAA1E08A3F241D8D12CE496182B15C3B4DD2A872A7A397020ADD720CF 96E4D87F65E0FE8551354605820D48BA0B2EEE00A687BFD29A3AB7A5461A7751 9449E79298C755064C5410E81DE9D9628412B1724431E8B05E21C922B5371BCD 6FDCD23A25B994039C3FA129C8AEBB58D6DCBBFA745CAF433D31E6A64F1BC87E 4E958D1903B48F6451BA26E845A4A22A1C39A83A3B13DE7AD5B63E995D6BF8A4 60A6997847DE1349C8E1D29B7C16F8ED45B88C207D9F5400276E7502D9FDA552 4617569FE5C5935C16918F0AB2DD6258C0159E8C5E67E8BB86CE6B4C714A1265 50EF3248B65C331D398E56602451495CC5780EB9FEC05CF95EDD202E744CC3B6 5B5ECB28BB9025796FA97B63F4B43B193A4E3776994EEABB0773F24A6BC3614F 7E4C87ECFE0607132B66A80659D1E8011A2C6F1BD1651A58FC9C6AE89500FB15 491E2407EA735D0C37EBABA41F0EA252119950277E7F146F9A96BFB38A5A0D2C 82D2E717A506A7B26B04B4621098DFA5B2252367EFD9F7751743CA1877F3817B 234FC4FE47BBCF8D4438B16D66AFC53FE0319821DC0E2944A9C1A71281555294 F65A8E3C686A3F8D65AE537418375E3A06B17C59B85FBF883DD295DAD6B582DF 9004064B733884BC081F33CB054016F8EA8D0235C76342A9A713A005746742E9 2D98C932CD97D28D5FCAD3F3FE409A81B94B8E02E2B1BC7F74D2930C1F354F50 4132FE27F5F3A495ED77B286B4A72A199F16F2C2499BEBE2613232E4866B0F82 F15CF45D6B2AFE0DB6A4576B6E6BA2387436925B054289236AD44F2DD1B2673F 20AFE5D3D0853F5DE4BA3600067C76724B62BB0C1B1BA9C612471BC33EB5563C A921B50D54CAAED2940B52246B7ACCF2B3144FDD8728B99A04120DF1AA7A65AD 4B5FA847723B6156E50B8C0470CD3AD16D161C219811618138A23A4F67E65BE2 599EDCD10D0407325DFCDEF6E063F1BC54D7AA390721D24F8878A9A3639F4DE3 A411C6D859441AD69F4B470C9F0371C93773C87138FA231A72D8C331867AFA4B 1E51A20F41119742F4E3281AFF630FBBE0A31F812A245A84C7A836A58B084C99 5885B92A69DC0DF9D4D4A2E9F96F4F828D352041DC8E6923A275A78BF3A39487 DB91F5F605C6288085A0C17E7A955C5840E4BB14D4521266339AE1FC4FF99C29 C798D25EEEC46B8EED083BED57BFD8E466394884258F3435AB4B8E5311310420 8DE3B01B62A795F619ED92B6419B999306921828C1D2FB051CA44CA48BABA007 8A0AC1B8AEF5E2669F36EDF49B15DE30D2F632825936EFCE4AF7FE992B3B2B1C 8753E86C5FC40BB41445E2C13DD2FEACE5C946797E396157CD84AF99AAB8EF4B 20D43BCBACC4ECF89E1C4DE518A362B4EF8EB840A595773493EDA922DAEED244 FAF529699C152D7E11E78CF5E711F60F2C7C27B9E8DC5DD83EA858CDC794FFAB DE0A293F6C4CA8C097227E90541B16821A5E05511207FD6E7F5C5D8987D32CB0 FD0AD5E8C0B36974FEB521654CBA4A65F7B3856AF7EE94818841417E9DC74C96 208899F05A644B2CABE1DEA4E1672E3FE980F05C0411FE9C8810A3167BE8579F B95337410D91CE79224DDCC6C93CFF2DEABA293EEF5C09D0515F26D772C5164C 1FB86D4090A6DD00A42AC9B1F7B0097970341C90E60DB1ABA3E00FAA24ADD08A FB863B94D4315312337B0C332FB91C70591A71A951CC34EED044AF85AA0F47B4 46420B3F219204CA43989ADE045B1D3C1A653D9AEB2B491FF8476745FD4B1D9B 837FEA7764C5F02623E0997836891F20F15FC88947F2259C9AC2FCCC886D2880 AA5FEAD234BE9AC28611EE83825C8D8098D27394AF7F5F27FB6EF7A00B678740 2DE27CFBF067ADEF88D148CEF6189F15C8D66C6CF00D11366B11F0BD623C5837 42EB91BEB2C71851C9B20DF35015FA19A653DFED06A079CB0E9C28EAB7220005 CBEDC0AD7F3716143E4250D4B9BE14AB037971D5575A3D1151199B86640EEA8B 49F80BC01FEA11855F3ECAFDC1ED9915A591AA3CD97D683FD51468208072BD86 1CA3EA8185BCFAA3C383E9BBDE2CBFC03164F724A5D21C55B11AF383AEDF5B51 FAFF0174012508F26D37EA82524C575AFDABB364DFB521FD15326A481A4C4CAC 1BFF487C6B6710BCF518C1B92B759ED714FF0C1544F7DBBB387CAE540B935828 9A17B198F129369735C2229ACA8F1BB85D1DEF007C608681967A2EA7DC46B1EA C18DC6F5CFF32CFDC12E56C67571D9A15B7778BE3CF49987BC2F766156316B80 D9542BC80D89C422C502FA0840A71D8CA73863BE8E118FD8C7865BC1099BD4ED 00A6334AAD29B3C4BC8FB60B74E990A77EBB8793372FA2A63C0333315F81E1BD A0E7CEAE2CEE71B77B93FEB9E308B154FFEB5044A45A0EFC904130DA68286FBA 449AE8F9B2794795B71BB8375FADB988E6FE08AD0BD8A0D024A54D25EF0CA4C2 9FD895A6B5D5A019C1B1DBBEAD0F46F1CE20D0966D23A12CD1CCB65AAAD69ECB EE3E25D19CE536023111E0DF78184C2938C14207DA54B4851506DF25F29002B7 504CF0E54324D5D2058FE7F95C56B282E85229DAE553C7B6C74A0982626BE02C D5C660C3B53E75B02B5F67F509EA0CE2D23C09BA1ED860FBD6BC52EFAA1F499E 8E83D4F7728833F5064EA574B328F0651D926C0EA39FA4C17F214AA3284D5400 68151BF94C790BC50D72CF7BA9BB7E1E8B28BAA582F46003469556E50E0C584F 1FFABFAAA9F849C4C3DB48823C8A88AA70289F6626E92FA2EF066CA11AF63E72 0FE1F28D6565F714BF4433E65495A55A2B575B385F0385442471718C19D83B1C 66AD54FD6CE1454E58A4C4C1F2F5268E697E7AEB9C77529C2DC90CAFD11AB063 3C816C3FEA2F97D671F5ED72DD9CDC7257A831D99BED9E43439B6EDEED78D08B D98C51CF7FEC1816313959F23B5ECF664B9F2E4AF3D5C3BB741AE73DD2EB759A AF572C4998A01B280870B95BAE598E0D29234DA977490C11993FE138E5AEC75F B9B5919D280441616F71087835962612D105FC2DF8CFF940A406E019370CA85F 553B69E8BCA71C873A6B4FE36B3DB7ABA88F67E4E1F375CAF841ACC7CE180934 171169D8669E32FCF9B181FBFACA9D65A016EF312027D60E138C4D4902A26A32 E05F133710232F68C0542589B1A2A0150D825E4C847F33E8911793BAFA3E21B2 54DB13A59CB3139284ABFA0301EEA316F0447E330C92BBFA9867B16501F36F2F 2B195E8509090CE2D75BFFA4A78684B6BFC5E2D6D9762A876980EC5C1484C634 2183A2F86BCA507EF983AB01D8D4ED91C4797601B3B3D420CCEEB0FA4D0BB9F4 5377CC210177165FD10B74D28AA4C907E8E0411EE5DAD2062B3E50CE7B5DCCEE 3E81A6EE96D7A6CF2991F1E189425AC6A92B06B4CC8F5CF15078B158BB10A69F E60AD007D3441BA85588B0F934C832987A61FC0FC2B4323F1B37CD274F93E7B1 5CFD2FD66605ECF797F89FAD0CCCE020634658F1BCAAAE461299F1787ECC2F3B F58BE6A5293EBC91AD6D6E276CA5D2DF36485379A0716AED49B5A9840B9B9CC2 987BBC73557BD09FD61749040F8C180C6D51ED5B06D03E967999287C226C972E 5A91189A53498FA3DA42D5058E935827C0F89C97586C37F06CE425245C53C1BC 6E30E64FC294A5B1C1C5BB7A3F8FCD1D7277B56CD3F69660D891E6D1911EC79F 0247D1AAC06586BF8E3B26115CFA8DE7DCA792018061602E7FCFA28F83EF3C40 5CB09FEFB4B949CAA426E90BFA7ED45DC36453E01F4934770959F67188EDAB8F 6003D173946640C4CCFBAA342A28C7CBB47B49B40EB8F4FE841574B0D9BC0041 9C8FCB29A8720C6483864D8BA7F038555572D81B74F21C8E6E0996D41790907B 1BD807C450CF11405940D3EF692858BF02274124FAB71233AB195930E3882769 F3B7DF6369ABDDBE92294B7318A5169A1A3C9F5E73461E18D9BFA2A0FF25F892 89D62D7C911D06B86C90F18F6712F79255530CFC97724E745DA73D2FA72763CC D191D2D45162E76448D1CD1E98578506F81EBCE8D1F420CBBAA33C6B6C5DDD96 5ED8CA671A40349C0C30C13D92E2DFC374017298F7C66140E10C8D9673FE2433 DDBBCE8234B59A6A1CDF1557A70C4540B5968B09AD811011C695D95688A154C0 853D9AA95F38D9C2694CC88CCCCAD7FE46DBA987273745D4338686E17B61CCDA 6E28C3131A3D203C134B8B706E15EBA812C50D09373D7DFD3AB067F46A64153E 392FB6E031935070C181790E1C4D9FB14B1A16D4D3E2627C2BC49F8717AB23A1 051BE31C3427B413661027CA9647EE2EB55AEE658C50AB2C8E36EF732B69E3A5 1D690ED747B160885530FABDFC734C4FE9AB1BD41BFD7640789BEB2BB83C77F5 4D9F01DD870836863119C10A3EF67D955C3F6695DC266B84B610225A54DDA432 703037321B332CA9C483A41C44E3AD53A7C4C3A9C35B4F1944B856AD10C23E36 0D623DE874E432CA685A08ECB175BA66825A9B507D65A681EE24C0373A7CAC1C B2EB411CAE31F437881D084930052FCEED3159DBEEF0D4617855140B3DB6E751 F50FC2601BB46B30E7F81D2E542A22718D4EEC96671290F82F21D00C97947882 9E0C4DD82C096498899CC5E8073A19DD82C80647C8B169CC9813E25B9D2D27A1 C04D2B8F47B2B717DA64649D14C608BCB0B4FFB4CF7056FEF21BCF2022653A7C 65590AD386645653CB9176ACBD965F4A93D6C4C21C1E6F27E7A46599ED8EBA3C 7818D866268C0F308672B54731C2C915D433969BACB7D3FD49E1D4263C0977A9 60F5B134B33C511CEB1DBE4C8D26BF2C07355D78E4D5B50C996F1A54AB5F5EFD F8238CF01555A01B277FC53686C4B34FD02BCBF9146D4B3364F6B34D06B117C8 DABDB44D673D7DC1F9A0446C51F462BFC47F9CFFE21ECA53806157DA378B4444 C427FF9401E35CDC6016D116DD87E534985043D8D91B995579ED102371E9C0DE 569490D5795253FC29ADD3292B955915E160B6EF797B630BD4305A4BB961A535 B55642660732D60CED0B372AF195EED1ADAA9536982259990B69B37B30E5E7D8 17AB38790E872C89DAEB4E04B744597C49AB980E868D345AA7D5F9083FD897A0 5D27FAF12A603AA2DA0E5A087AE4BE33F428F3231E4491254E60B6BE62081CBA B8102DA38315C299D106B1E76A73D213A0FD4C65D149051CF351563E3B2905A3 7F0816B9EBB8200F2AB7DE32144F5D6E5B804EFD2A8EBE557A32CE4179F7C46F 7B9DDACF000059386907E4489A142251731408CDEFEAB338D9366BC723D2FDCB 6C55A62F35F46C1C8ED4CBD07E423FFD947C75BF5E66411593D10A76D9B292A3 A34192D3F00F017DA6AD3F224005ADFB2660471BB00392953F72E2D84D5EBBA9 26C02FF32FDF4BC76836A17868E80F0EE827C6BD9C6AB16226B9F5AC350FBD9C 0621C0961ECF35A152BCB2ADE8FAB08EE670A2AB8C1F7313630A1CE2823C58BC 4A6EFA5FF6E4EC9A756FDA7987E8EA9CD88BECCF78802C00C4CDA7088C938252 CC2FF9AC8671AC3EAAC964F4B6F6DD920B8CB923DC8A212229055F7C874BBA0A B6EB6BDD5DD15B941500074C253BC19691D09738B48610367D4C914932D9A2F6 6CBFC66D4180C25FC386B6955B4B94F5A348896387C1A1A622BE0A0A9FC2A13D 24EB36F5A2F8E577D9936D4DD2560FB5A4C94E0EFA2A56D506A04093D2988F7F FD4EBA771234165CB664AE29BB777F0C55300A634E2E0780069CBEB28820E94E 5E53A378877AD8AA1628DB3E09C2831BB9EB5007986CA77E73BDB8E072050EF7 481B68C5601EBFD23B320F1AF93A78936EFC59E9C64F001BE94F51D71CB1F85E 55FE8D165CF7AC06F3EC155AFAA67E3FE690A4167E6593C795C3095A077B552E B271CCEFF589B5C0E62E30E48DC5EDAD8BE5B0C7D671112C4FD98A0E920C4A76 42EB92ADBBCF085AFD648BC216BCCA0BA140CD6838DC44379E87B61DFF2443C0 45F7585D535C8C31A82566D26620EA35505CA64C5C16DBC142078067A8E71B6C 8D8C17923881F52C362AD2C902AE40885E5A65AFECA6F396FB1F5C4A6846693B 3844106B20D25BC87BA2E837A9AAF4E1479A58CBB0474093A90BC8856CF57489 D8B7A6887DF5B865A1B20E6BCB72E06546A014FB11A3C8CCEECA973D7DE018F2 6AEB85482A24841BD09271AFE81E635A20BBC1A009F78D9BF89D0523B29FD5E4 E48FA61D2BE5B7DD6B628840DCAC889AFA04EF9133672935EF99EC35A7B92542 0C1EBF1EC81E7902886A4B252F46502A4ABE0D0C511E96A1A3698AA445E6EE5D 30B72DE2312DA6461DFD647E7941A9963ADFA85DC39E495120B6795290AB98AF 7008D9A96A1A7C6D784CEEB918ED7E247B56B492C52357B21E4FCEBC54E69130 67361BAFA7FD08DB67FFBB421AA7C07283278233E1A448B2546E7018CC9905E0 588D4608A9BE2DD2C61B08324ADA6AD324934C4B20049DCC942DBD1F5D13BCD6 440D8F9137F8FBF036F762F23841E912C9D80FBB7FC3146AC4C001C5D4254A37 FE960A4D08A43AE4FF92B758B5C728C5F7FC93FA2914E407C892D715979E1104 84FB8CD3A10B0C94598DB876DEB24455CAAE54F6AF66D48161140A289989845D 61DE048B92169E0CC350BA85CDABF9807D78AF1E5D78E9B516C79B25504DAAC7 EEC2A963FAE836FF1CDA5CA01C91A556B4F6D5D94AA5E92D90FAF4A23B1FC6BC FBFC7D05A5B298B49F4766B56955ECC173E400D72CA921CC8780E482AD14D60C B79B995773CB56560F317A6E840A60B7DFC8412BA47EA2AFF2CDF810EE165925 51E0DB38E0080C81A05BDBEC2B278D0A90049C821CFAD9CCAC38357C25C74A27 D4FAA13511EC641539E1074D62D73B4CD6231E2D83E122E8ACD92DE558B56614 D15E17109EFC182D7E94C84240BB5A3508CA02AE1FFABBC676989B15A8A4B98B 7E08AC50756DC0A1266A36250654EF7F8382DA6FE263F3A1F4E7745331999C33 E5826CD270455E77B16A8E261F4304EB87A65CFE9CD11184D40A8565078391E0 A38F86BC9450A7BBC6C6085F699D344A18FC654DF2A4ABD62D980C06779BFBA9 292B6210AF17DEE9209975F284A78793A62D12D4D42A9E64C06BFE5523A3A780 D8D72C23323633E1C593C11BBCC34CC49E7E73A83B92D71542D68748116D2564 8EFC144C59E2786CA0135E33D8C3C448228AAED69AF70BFC0F29253587C40C67 C572A902B40C7332E5E6C6AD143BFD7C00226BA8EF88B994DE2623C389E272AB 6ECB0DB5875917A364928C12D3DBC5B8F9FAD279CA79223359B63B399F6682D8 A52B0535AA625C029E2383AA371AF1B47D42AC10DC3549D858174FB901C8B9FA 2D20BF71B516C899BB4148B1134F754348FD98F405A1BE107731AA5E127F6FE5 82FB6BECFB190B52A973E6CAB943134206F6BBA74D0634322688E2DE0A18891B D6C1E40A153D1A6DF7C90732CCBE47F8DB191BFD05E2FAEC7452930E3C8D6972 0D782AA928BD2414F2AC09AD9BB91A79DEC8F9C41901603861ABA8BD0CE12EFA 7528FFC2ECDAF2BEFBD2D73ED4A808F67EB5553E1F2913601D8697DB373A4115 C1F80A41F9DF419435F9A921C1B98DA46AA29BFA6B998C6ABDE8B60F003A509A 7DC7EB447BBF3400FB631B0645D11A6681093B251A445C71D59EC712DB5EFBF3 C25AFE41F87B50D0EFB1EDB6C2ED133CEA76782EEDB0F4F8E9CA5518CA9843CA 399F0CCE49DEC8EF49ED792A70FEADF889FB42EB854B093EEE5FB951EBDF6FCC 4110C629DE43929DE6057483CF04F08B664B216765C868F71FF9B38BC878B63C EE2E8A7F42254769DDB922643C4C65AABA876B8EA9B6CFE5FF30AFA340F90761 CDEDB2789644CECC5EFA6BDD9F96385AB138882EC3D6EDA173240B990B6D4E8B 95269B622D6D0DC9A0A9652C890FA9DDC8248B8693B0B84F0FBDB7D33CBCF0DE F99D540FEB8CB572359CDBEA1D17F00CBDDCC43144C78F99A9B9CA21C6EAA979 EAFA75A2A3A66E951DFE0969D11FB16BD1F607D5875A7FBD6C7B7DBBA087F3B6 A390DD189C2230E53FC3239A29C37B356CB6D3C28BAAC463023C92B2C8FDEF52 8C20F48B7AC966FD682B3817629E5D900506345287F79F7C8A585CFB13B96906 B031AA9E89005326D911D3A751C674353FFF9ECFB6EDB1427310385C92D33B30 58291D9C929C5DDF0353DB7509CF9B03216B1A407D1560B66151ACA8ED2DAC7D 3568E495001EF0D01F50C9B52011BF09F4ACEEB9B8E0249C949E8976F67FA249 3EADA552E906B39F85FD720DF51C63A188A543DFF94D4C534EC2B1A1CCDD78F1 7A9DED8ECD4B268C2B711B0430459FC1B4541D657971FAEB8621E18309361C1F EDCAABB3B2E31BDECB9FCCE7AA234B983F30F5634B6806891BD160FD4409D7B0 6E976AD4F9171278A6F9B4599FE392823A9EB492ABF078402D810A16F758713E 4AEFAEF59453356AF7F95937278B5A418C338B49F8EA3912A7F9EA1F36877CE2 776D7CE12E9CF21460AA506575872D623B248A71DD5C7ACD410E4E69043C24B0 81DD44A4535C1A31B1AB1F9C1209AE56571821EEADFC316F9EA1E0ADB45CA11F F8DA6AE15ADC3D4B78BD2ECD15BC03BAD5AE475E937AA882251FC197445709CE 33CBAFE83EDD26ED7564004E97A4E71A98E9E4000FDC6218962442F507D217F0 45020366E4E3D662487F7CC55B13A9136CE9BC6EF57D97AE6DD4AAD4B960FC1F 9BB6D4198D14055E219CEC2D9B4E4AF9343B5770C581E46EF9BA0C15E8B06BCA A05713E0085BE8A9B5463A3529FB1DDA0335612249AED2153CD44F533A7C1781 0A7C68CF4F62CD96DAFCE9DC4C0D12F6D37B5879998FC2EF3FF8E0A78916BBA3 6CC7BBEBE3D15765EB0F22025EF292623EC93152FA599A7682794388C78E6B98 8573C4621C43EB4A33102B9F207F562D5C97A7ECAE185E1C5227B619989DA184 E4429E009440EE00A480A303A41C911DA432E57567DEE95AB5189AD9BC0299AA 9079CAB2F5A1D2C3379D0FD06A284EBAFA0A87FE71586C68810F332A7FC8854E C912A4A0B9D9C01C8782D237C2C0FF9146ED97099BD9AC63BEAA36B49587DA1D 5E30212338485A964377E62A91A32F48A6D15AC564AB1DED690F2EDB937DC6 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39158280 55380996 1000 600 600 (fiaif.dvi) @start /Fa 131[30 1[30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 1[30 1[30 1[30 30 30 30 30 30 30 30 30 30 1[30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 1[30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 1[30 30 30 30 2[30 30 30 34[{ TeXBase1Encoding ReEncodeFont }82 49.8132 /NimbusMonL-Regu rf /Fb 138[55 55 55 55 1[55 55 55 1[55 2[55 2[55 55 55 55 1[55 51[55 45[{ TeXBase1Encoding ReEncodeFont }15 90.9091 /NimbusMonL-Bold rf /Fc 162[25 1[25 34[45 45 45 45 1[45 45 50[{}8 90.9091 /CMR10 rf /Fd 150[35 35 88[45 14[71{}4 90.9091 /CMSY10 rf /Fe 133[55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 1[55 55 1[55 55 55 55 1[55 1[55 1[55 55 55 55 55 55 55 55 55 55 55 55 1[55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 2[55 55 55 1[55 1[55 55 55 55 55 55 55 55 55 55 55 55 55 4[55 4[55 34[{ TeXBase1Encoding ReEncodeFont }71 90.9091 /NimbusMonL-Regu rf /Ff 145[43 4[24 39 4[35 1[39 97[{ T1Encoding ReEncodeFont }5 74.7198 /SFTI0900 rf /Fg 134[41 41 55 41 43 30 30 30 1[43 38 43 64 21 2[21 43 38 23 34 43 34 43 38 16[52 3[48 2[28 28[21 44[{ T1Encoding ReEncodeFont }26 74.7198 /SFRM0900 rf /Fh 205[30 30 49[{ T1Encoding ReEncodeFont }2 49.8132 /SFRM0600 rf /Fi 205[35 35 49[{ T1Encoding ReEncodeFont }2 66.4176 /SFRM0800 rf /Fj 133[37 44 41 60 41 48 30 37 38 1[46 46 51 74 23 41 1[28 46 41 28 41 46 41 41 46 1[69 4[55 2[90 2[65 51 66 1[61 1[67 81 3[35 2[59 61 68 65 63 67 19[32 28 2[37 37 11[51 10[32 32 16[{ T1Encoding ReEncodeFont }47 90.9091 /SFTI1095 rf /Fk 133[50 59 59 81 59 62 44 44 46 59 62 56 62 93 31 59 1[31 1[56 34 51 62 50 1[54 1[87 4[68 6[62 2[77 1[88 106 3[42 4[86 1[80 10[56 56 56 56 56 56 56 2[31 17[62 28[{ T1Encoding ReEncodeFont }41 99.6264 /SFBX1200 rf /Fl 131[25 1[40 48 48 65 48 50 35 36 35 48 50 45 50 75 25 48 28 25 50 45 28 40 50 40 50 45 1[70 1[25 1[25 55 68 68 93 68 68 65 50 67 70 61 70 68 83 56 70 46 33 68 71 59 61 69 65 64 68 2[70 70 70 1[25 45 45 45 45 45 45 45 45 45 45 45 25 30 25 70 1[35 35 25 2[45 5[75 50 50 53 27[{ T1Encoding ReEncodeFont }83 90.9091 /SFRM1095 rf /Fm 133[46 55 55 75 55 58 40 41 43 55 58 52 58 87 29 55 1[29 58 52 32 47 58 46 58 50 1[81 4[63 78 2[78 80 72 58 78 1[71 78 81 98 62 81 1[39 81 82 65 68 80 75 74 78 6[29 52 52 52 52 52 52 52 52 52 52 52 29 15[87 1[58 28[{ T1Encoding ReEncodeFont }63 90.9091 /SFBX1095 rf /Fn 133[58 1[69 95 1[73 51 52 53 1[73 66 73 110 37 69 1[37 73 66 40 60 73 58 1[66 11[101 1[73 98 1[90 6[48 2[83 86 1[95 93 99 7[66 66 66 66 66 66 66 66 66 66 19[73 28[{ T1Encoding ReEncodeFont }42 119.552 /SFBX1440 rf /Fo 138[60 60 60 60 3[60 60 5[60 60 60 60 2[60 32[60 17[60 46[{ TeXBase1Encoding ReEncodeFont }13 99.6264 /NimbusMonL-Regu rf /Fp 138[54 38 38 38 2[49 54 81 3[27 1[49 1[43 54 2[49 10[73 5[66 9[64 4[73 12[49 2[49 49 1[27 46[{ T1Encoding ReEncodeFont }20 99.6264 /SFRM1200 rf /Fq 135[71 97 1[75 2[52 3[75 1[37 2[37 1[67 1[60 75 2[67 20[84 2[49 2[88 4[101 65[{ T1Encoding ReEncodeFont }15 143.462 /SFRM1728 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: a4 /setpagedevice where { pop << /PageSize [595 842] >> setpagedevice } { /a4 where { pop a4 } if } ifelse %%EndPaperSize end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 1017 911 a Fq(Lin)l(ux)46 b(Firew)l(alling)i(and) d(FIAIF)1382 1163 y Fp(Anders)33 b(P)m(eter)h(F)-8 b(ugmann)1338 1279 y Fo(anders@fugmann.net)1602 1482 y Fp(V)g(ersion)34 b(1.0.4)p eop end %%Page: 1 2 TeXDict begin 1 1 bop 382 548 a Fn(Con)l(ten)l(ts)382 751 y Fm(1)83 b(Preface)2466 b(1)517 864 y Fl(1.1)93 b(Summary)78 b(.)46 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(1)517 977 y(1.2)93 b(Prerequisites)e(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)143 b(1)382 1180 y Fm(2)83 b(In)m(tro)s(duction)2229 b(2)382 1384 y(3)83 b(Firew)m(alls)2397 b(3)517 1497 y Fl(3.1)93 b(Purp)s(ose)31 b(of)f(a)g(\034rew)m(all)68 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)143 b(3)517 1609 y(3.2)93 b(Net\034lter)57 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(3)725 1722 y(3.2.1)105 b(Setting)31 b(up)g(a)f(Lin)m(ux)h(\034rew)m (all)c(.)46 b(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)143 b(4)382 1926 y Fm(4)83 b(FIAIF)2516 b(5)517 2039 y Fl(4.1)93 b(Design)50 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)143 b(5)725 2152 y(4.1.1)105 b(Zones)81 b(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(5)725 2264 y(4.1.2)105 b(Statefull)31 b(\034rew)m(alling)k(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(6)725 2377 y(4.1.3)105 b(Net)m(w)m(ork)31 b(address)g(translation)44 b(.)i(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(6)517 2490 y(4.2)93 b(Implemen)m(tation)48 b(.)d(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)143 b(6)382 2694 y Fm(5)83 b(Con\034guration)2177 b(7)517 2806 y Fl(5.1)93 b(Zone)31 b(sp)s(eci\034cation)i(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(7)382 3010 y Fm(6)83 b(Con\034guring)33 b(a)i(zone)1946 b(7)517 3123 y Fl(6.1)93 b(De\034nitions)31 b(.)46 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(7)517 3236 y(6.2)93 b(Zone)31 b(de\034nition)77 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(9)517 3349 y(6.3)93 b(Zone)31 b(access)69 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(10)725 3461 y(6.3.1)105 b(Input)30 b(rules)85 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)98 b(11)725 3574 y(6.3.2)105 b(Output)31 b(rules)82 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(11)725 3687 y(6.3.3)105 b(F)-8 b(orw)m(ard)32 b(rules)48 b(.)e(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(11)725 3800 y(6.3.4)105 b(Reply)30 b(rules)73 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)98 b(12)725 3913 y(6.3.5)105 b(Limit)31 b(rules)86 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(12)517 4026 y(6.4)93 b(Net)m(w)m(ork)32 b(address)e(translation)i(rules)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(13)725 4139 y(6.4.1)105 b(Redirect)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)98 b(13)725 4252 y(6.4.2)105 b(Masquerading/SNA)-8 b(T)32 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)98 b(13)517 4365 y(6.5)93 b(Miscellaneous)31 b(rules)52 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(14)725 4478 y(6.5.1)105 b(P)m(ac)m(k)m(et)32 b(marking)45 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(14)725 4591 y(6.5.2)105 b(T)-8 b(ra\036c)31 b(monitoring)88 b(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)98 b(14)725 4703 y(6.5.3)105 b(Den)m(ying)31 b(comm)m(unication)i(to)e(MA)m(C)f(addresses)82 b(.)46 b(.)f(.)h(.)g(.)f(.)98 b(15)725 4816 y(6.5.4)105 b(Den)m(ying)31 b(comm)m(unication)i(to)e(IP)f(addresses)60 b(.)46 b(.)f(.)h(.)f(.)h(.) g(.)f(.)98 b(15)725 4929 y(6.5.5)105 b(Clearing)31 b(ECN)g(bits)f(from) h(pac)m(k)m(ets)g(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) 98 b(15)382 5133 y Fm(7)83 b(Example)35 b(setup)2077 b(16)382 5336 y(8)83 b(Related)36 b(w)m(ork)2143 b(17)1864 5652 y Fl(i)p eop end %%Page: 2 3 TeXDict begin 2 2 bop 382 548 a Fm(9)83 b(Status)2463 b(18)382 751 y(10)31 b(F)-9 b(urther)35 b(w)m(ork)2148 b(18)382 955 y(A)57 b(Usage)2480 b(20)382 1158 y(B)61 b(Con\034guration)34 b(\034les)1916 b(20)517 1271 y Fl(B.1)74 b(\034aif.conf)49 b(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(20)517 1384 y(B.2)74 b(reserv)m(ed_net)m(w)m(orks)c(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)98 b(22)517 1497 y(B.3)74 b(priv)-5 b(ate_net)m(w)m(orks)47 b(.)f(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(22)517 1609 y(B.4)74 b(t)m(yp)s(e_of_services)52 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(23)517 1722 y(B.5)74 b(zone.ext)62 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(23)517 1835 y(B.6)74 b(zone.in)m(t)k(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)98 b(25)517 1948 y(B.7)74 b(zone.dmz)91 b(.)46 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(26)1851 5652 y(ii)p eop end %%Page: 1 4 TeXDict begin 1 3 bop 382 548 a Fn(1)131 b(Preface)382 754 y Fk(1.1)112 b(Summary)382 926 y Fl(In)32 b(this)h(pap)s(er)g(a)g (general)h(o)m(v)m(erview)g(of)f(\034rew)m(alling)i(is)d(presen)m(ted,) j(and)e(some)g(basic)382 1039 y(terms)d(used)g(in)g(the)h(Lin)m(ux)g (\034rew)m(all)g(implemen)m(tation)i(is)d(giv)m(en.)41 b(Based)30 b(on)g(require-)382 1152 y(men)m(ts)45 b(of)e(a)h(\034rew)m (all,)49 b(a)44 b(design)g(is)g(presen)m(ted)h(whic)m(h)g(will)g(ease)f (the)g(setup)g(of)f(a)382 1265 y(\034rew)m(all.)e(The)27 b(resulting)h(implemen)m(tation)h(is)e(brie\035y)g(describ)s(ed)g(and)g (con\034guration)382 1377 y(is)j(explaind)h(in)f(detail.)382 1621 y Fk(1.2)112 b(Prerequisites)382 1792 y Fl(In)30 b(this)h(pap)s(er,)g(it)f(is)g(assumed)h(that)g(the)g(reader)h(is)e (familiar)h(with)g(net)m(w)m(ork)h(theory)-8 b(,)382 1905 y(routing)30 b(and)g(net)m(w)m(ork)h(tra\036c.)41 b(Basic)29 b(Lin)m(ux)i(kno)m(wledge)g(is)d(preferable)j(in)e(order)h (to)382 2018 y(setup)g(the)h(soft)m(w)m(are)h(describ)s(ed)f(in)f(this) g(pap)s(er,)h(though)g(not)g(a)f(requiremen)m(t.)1854 5652 y(1)p eop end %%Page: 2 5 TeXDict begin 2 4 bop 382 548 a Fn(2)131 b(In)l(tro)t(duction)382 751 y Fl(T)-8 b(o)s(da)m(y)g(,)43 b(ev)m(er)c(more)h(mac)m(hines)g(and) g(p)s(eople)f(are)h(connected)g(to)f(the)h(In)m(ternet)g(and)382 864 y(hac)m(k)m(ers)35 b(con)m(tin)m(ually)i(tries)e(to)f(in)m(v)-5 b(ade)35 b(mac)m(hines)h(connected)g(to)f(the)f(In)m(ternet.)54 b(As)382 977 y(still)21 b(more)h(p)s(eople)f(gains)h(access)e(to)i(the) f(In)m(ternet,)j(hac)m(king)f(b)s(ecomes)e(more)h(frequen)m(t,)382 1090 y(and)36 b(fo)s(cus)f(on)g(securit)m(y)i(on)e(serv)m(ers)h(ha)m(v) m(e)h(b)s(ecome)f(a)f(necessit)m(y)-8 b(.)57 b(Securit)m(y)37 b(can)f(b)s(e)382 1202 y(divided)31 b(in)m(to)g(three)g(parts.)382 1415 y Fm(Application)k(securit)m(y:)45 b Fl(Applications)33 b(usually)g(enforce)g(some)g(kind)g(of)f(securit)m(y)609 1528 y(b)m(y)k(restricting)g(users)f(in)g(terms)g(of)g(functionalit)m (y)i(and)f(access)f(to)g(mac)m(hines.)609 1641 y(An)c(example)h(of)f (this)h(is)f(a)g(w)m(eb-serv)m(er.)45 b(A)31 b(simple)h(w)m(eb-serv)m (er)h(only)e(exp)s(oses)609 1754 y(a)25 b(de\034ned)h(set)f(of)f (\034les)h(to)g(the)g(In)m(ternet,)j(and)d(only)g(a)g(problem)h(in)f (the)g(soft)m(w)m(are)609 1867 y(w)m(ould)32 b(giv)m(e)f(remote)g (users)f(access)g(to)h(other)g(than)g(the)f(said)h(\034les.)382 2054 y Fm(User)j(securit)m(y:)46 b Fl(If)27 b(a)i(remote)h(user)e(is)h (able)g(to)g(circum)m(v)m(en)m(t)i(the)e(securit)m(y)g(imp)s(osed)609 2167 y(b)m(y)42 b(some)f(program)h(\(b)m(y)g(exploiting)g(a)f(bug)h(in) f(the)h(soft)m(w)m(are\),)j(the)d(user)f(is)609 2280 y(still)30 b(restricted)g(to)f(the)h(righ)m(ts)g(of)f(the)h(user)f(who) h(started)g(the)g(started.)41 b(As)28 b(an)609 2393 y(example,)i(a)f(w) m(eb-serv)m(er)i(is)e(usually)g(stated)g(as)g(the)g(users)g Fj(nob)-5 b(o)g(dy)p Fl(,)30 b(whic)m(h)h(has)609 2506 y(v)m(ery)g(limited)g(righ)m(ts)g(in)g(terms)f(of)g(reading)i(and)e (executing)i(programs.)382 2694 y Fm(Net)m(w)m(ork)j(securit)m(y:)45 b Fl(This)26 b(is)e(the)i(lo)m(w)m(est)g(lev)m(el)g(of)e(securit)m(y)-8 b(.)40 b(By)25 b(con)m(trolling)i(com-)609 2806 y(m)m(unication)i(b)s (et)m(w)m(een)f(remote)f(mac)m(hines)h(and)f(In)m(ternet)h(services,)f (unsafe)f(ap-)609 2919 y(plications)32 b(can)e(b)s(e)g(protected)i (against)f(un)m(trusted)h(access.)523 3132 y(This)38 b(pap)s(er)f(will)h(concen)m(trate)i(on)e(net)m(w)m(ork)h(securit)m(y)f (in)g(terms)g(of)f(de\034ning)h(a)382 3245 y(metho)s(dology)h(for)g (describing)g(a)g(\034rew)m(all,)j(and)d(implemen)m(ting)j(the)c(metho) s(dology)382 3358 y(under)31 b(Lin)m(ux.)1854 5652 y(2)p eop end %%Page: 3 6 TeXDict begin 3 5 bop 382 548 a Fn(3)131 b(Firew)l(alls)382 751 y Fl(This)24 b(section)i(will)f(describ)s(e)f(the)h(purp)s(ose)g (of)f(a)g(\034rew)m(all)j(and)e(outline)g(ho)m(w)h(the)e(Lin)m(ux)382 864 y(\034rew)m(alling)32 b(co)s(de)f(w)m(orks.)382 1107 y Fk(3.1)112 b(Purp)s(ose)38 b(of)f(a)h(\034rew)m(all)382 1279 y Fl(A)32 b(\034rew)m(all)h(is)f(usually)g(placed)i(in)e(fron)m(t) h(of)f(a)g(group)h(of)f(mac)m(hines)h(and)g(its)f(primary)382 1392 y(function)38 b(is)f(to)h(con)m(trol)h(comm)m(unication)i(from)c (and)h(to)g(this)f(group)i(of)e(mac)m(hines.)382 1505 y(Comm)m(unication)29 b(b)s(et)m(w)m(een)e(t)m(w)m(o)h(mac)m(hines)f(o) m(v)m(er)g(the)f(In)m(ternet)h(is)f(a)g(stream)g(of)g(pac)m(k-)382 1618 y(ets)35 b(\(datagrams\))h(send)g(in)f(b)s(oth)g(directions.)56 b(The)36 b(\034rew)m(all)g(examines)g(all)f(pac)m(k)m(ets)382 1730 y(that)28 b(is)g(ab)s(out)g(to)g(b)s(e)f(routed)i(through)g(the)g (mac)m(hine)g(and,)g(based)f(on)g(a)g(set)g(of)f(rules,)382 1843 y(determines)h(if)e(the)h(pac)m(k)m(et)h(is)f(allo)m(w)m(ed)h(to)f (pass)g(through)g(the)g(mac)m(hine)i(or)e(not.)39 b(This)382 1956 y(functionalit)m(y)32 b(is)e(often)g(referred)h(as)f(a)h Fj(p)-5 b(acket)34 b(\034lter)p Fl(.)523 2069 y(The)42 b(secondary)h(function)g(of)e(a)h(\034rew)m(all)i(is)d(to)i(mo)s(dify)e (the)h(pac)m(k)m(ets)h(passing)382 2182 y(through)36 b(the)g(\034rew)m(all.)57 b(This)36 b(is)f(called)h Fj(Network)i(addr) -5 b(ess)38 b(tr)-5 b(anslation)36 b(\(NA)-7 b(T\))p Fl(,)35 b(as)382 2295 y(the)44 b(mo)s(di\034cations)g(usually)f (applies)h(to)g(either)g(sender)f(or)h(receiv)m(er)g(information)382 2408 y(con)m(tained)36 b(in)e(the)g(pac)m(k)m(ets.)52 b(NA)-8 b(T)34 b(can)g(for)g(example)h(b)s(e)e(used)h(to)g(allo)m(w)h (mac)m(hines)382 2521 y(without)j(a)f(public)h(addressable)g(In)m (ternet)h(proto)s(col)f(\(IP\))f(n)m(um)m(b)s(er,)k(to)c(access)g(the) 382 2634 y(In)m(ternet)j(through)g(a)f(\034rew)m(all,)k(b)m(y)c(using)h (the)f(IP-n)m(um)m(b)s(er)i(of)d(the)i(\034rew)m(all)g(as)f(the)382 2747 y(sender)29 b(iden)m(ti\034cation.)43 b(This)29 b(is)f(also)h(called)h(ip)f(masquerading,)i(as)d(it)h(disguises)g(the) 382 2860 y(address)h(of)g(the)h(mac)m(hines)h(b)s(ehind)f(the)f (\034rew)m(all.)382 3103 y Fk(3.2)112 b(Net\034lter)382 3275 y Fl(The)31 b(\034rew)m(all)h(implemen)m(ted)g(in)f(Lin)m(ux)g(is) f(called)h Fj(Net\034lter)p Fl(.)523 3387 y(Net\034lter)46 b(implemen)m(ts)g(b)s(oth)f(a)g(pac)m(k)m(et)h(\034lter)g(and)f(NA)-8 b(T)45 b(and)g(is)f(a)h(statefull)382 3500 y(\034rew)m(all.)e (Statefull)31 b(\034rew)m(alls)h(di\033eren)m(tiates)h(from)d (non-statefull)i(\034rew)m(alls)g(b)m(y)f(ha)m(v-)382 3613 y(ing)37 b(kno)m(wledge)h(of)e(the)g(state)h(of)f(all)h (connections)g(made)g(though)h(the)f(\034rew)m(all.)60 b(A)382 3726 y(non-statefull)42 b(\034rew)m(all)h(examines)f(pac)m(k)m (ets)g(individually)-8 b(,)46 b(without)c(kno)m(wledge)h(of)382 3839 y(previous)f(send)g(pac)m(k)m(ets)h(and)f(has,)j(for)d(example,)k (no)c(information)h(ab)s(out)f(whic)m(h)382 3952 y(mac)m(hine)32 b(instan)m(tiated)h(the)e(comm)m(unication.)44 b(This)31 b(means)g(that)g(in)g(order)h(for)e(ma-)382 4065 y(c)m(hines)38 b(b)s(ehind)g(a)g(\034rew)m(all)h(to)e(b)s(e)g(able)h(to)g(comm)m (unicate)i(fully)d(with)h(mac)m(hine)h(on)382 4178 y(the)30 b(In)m(ternet,)h(almost)f(all)g(pac)m(k)m(ets)h(m)m(ust)f(b)s(e)f(allo) m(w)m(ed)j(though)e(the)g(\034rew)m(all)i(in)d(b)s(oth)382 4291 y(directions)i(and)g(th)m(us)g(greatly)g(degrading)h(the)e (securit)m(y)h(imp)s(osed)g(b)m(y)f(the)h(\034rew)m(all.)523 4404 y(As)g(said,)h(a)g(statefull)g(\034rew)m(all)h(main)m(tains)g(a)f (history)g(of)f(established)i(comm)m(uni-)382 4517 y(cation)g(and)f (de\034nes)g(a)g(state)g(for)f(all)h(connections.)46 b(In)31 b(Net\034lter)i(p)s(ossible)e(states)h(of)382 4629 y(a)e(connection)i(are:)382 4842 y Fm(New:)46 b Fl(This)30 b(state)h(indicates,)g(that)g(the)g(pac)m(k)m(et)h(is)e (part)h(of)f(a)h(connection)h(that)f(has)609 4955 y(not)g(b)s(een)f (registered)i(\(seen\))e(b)s(efore.)382 5143 y Fm(Established:)45 b Fl(This)h(state)g(indicates)g(that)g(the)f(pac)m(k)m(et)i(is)e(part)h (of)f(an)h(already)609 5255 y(established)31 b(comm)m(unication.)1854 5652 y(3)p eop end %%Page: 4 7 TeXDict begin 4 6 bop 382 548 a Fm(Related:)46 b Fl(This)37 b(state)g(indicates)h(that)f(the)g(pac)m(k)m(et)h(is)f(related)g(to)g (an)g(already)h(es-)609 661 y(tablished)d(connection)g(but)g(not)f (part)g(hereof.)52 b(This)33 b(is)h(useful)f(for)h(proto)s(cols)609 774 y(that)26 b(established)h(new)f(connections,)i(suc)m(h)e(as)g (passiv)m(e)f(ftp)h(data)g(streams)g(and)609 887 y(ICMP)31 b(pac)m(k)m(ets.)382 1074 y Fm(In)m(v)-6 b(alid:)45 b Fl(A)34 b(pac)m(k)m(et)j(mark)m(ed)f(in)m(v)-5 b(alid)36 b(means)g(that)g(the)f(pac)m(k)m(et)i(is)d(someho)m(w)j(mal-)609 1187 y(formed.)44 b(Malformed)32 b(pac)m(k)m(ets)g(are)g(usually)f(pac) m(k)m(ets)h(that)g(do)s(es)f(not)g(con\034rm)609 1300 y(to)g(e\033ectiv)m(e)g(RF)m(C's.)523 1513 y(By)e(using)h(these)g (states,)g(it)g(is)f(p)s(ossible)g(to)h(create)h(a)f(v)m(ery)f(tigh)m (t)i(securit)m(y)g(p)s(olicy)382 1626 y(with)g(only)f(a)h(small)f(set)g (of)g(rules.)382 1866 y Fm(3.2.1)103 b(Setting)35 b(up)f(a)h(Lin)m(ux)g (\034rew)m(all)382 2037 y Fl(The)h(most)g(common)i(w)m(a)m(y)f(to)f (de\034ne)g(a)g(\034rew)m(all,)j(is)d(to)g(ha)m(v)m(e)h(a)f(list)g(of)g (rules)g(to)g(b)s(e)382 2150 y(tra)m(v)m(ersed)j(for)e(eac)m(h)h(pac)m (k)m(et)h(hitting)g(the)e(\034rew)m(all.)64 b(A)37 b(\034rew)m(all)i (rule)e(consists)g(of)g(a)382 2263 y(set)30 b(of)g(conditions)h(and)g (an)f(action.)42 b(If)29 b(the)h(conditions)i(of)e(a)g(rule)h(is)e (meet,)i(then)g(the)382 2376 y(action)j(is)e(executed)i(on)f(that)h (pac)m(k)m(et.)49 b(Usually)33 b(the)g(action)h(is)f(either)g(to)g (accept)h(or)382 2489 y(reject)27 b(a)f(pac)m(k)m(et,)j(and)e(is)f (therefore)h(usually)f(called)i(the)e Fj(tar)-5 b(get)37 b Fl(of)26 b(a)g(rule.)40 b(Examples)382 2602 y(of)30 b(conditions)i(on)f(a)g(rule)g(is:)42 b(the)31 b(source)g(address)g(of) f(a)h(pac)m(k)m(et,)i(the)e(destination)h(of)382 2715 y(a)e(pac)m(k)m(et)i(etc.)523 2828 y(The)37 b(list)836 2795 y Fi(1)912 2828 y Fl(of)g(rules)g(is)f(tra)m(v)m(ersed)i(un)m(til) g(the)f(pac)m(k)m(et)h(is)f(either)g(accepted)h(or)f(re-)382 2941 y(jected,)h(and)e(pro)s(cessing)g(stops.)58 b(If)35 b(no)h(rules)g(applies)h(to)f(the)h(pac)m(k)m(et,)i(the)d(default)382 3053 y(p)s(olicy)30 b(of)g(the)h(c)m(hain)g(determines)h(if)e(the)g (pac)m(k)m(et)i(is)e(accepted)i(or)e(rejected.)523 3166 y(In)37 b(Lin)m(ux,)j(the)d(list)g(of)g(rules)g(is)g(main)m(tained)i (in)e(the)g(Lin)m(ux)i(k)m(ernel)f(itself,)g(and)382 3279 y(a)f(userspace)h(program,)j Fj(iptables)p Fl(,)f(is)d(used)h(to)f (manage)i(rules.)62 b(As)37 b(the)g(placemen)m(t)382 3392 y(of)c(rules)h(in)g(the)g(list)g(is)f(vital)h(to)g(the)g(op)s (eration)h(of)e(the)h(\034rew)m(all,)j(it)d(can)g(b)s(e)f(a)h(non-)382 3505 y(trivial)h(job)g(to)g(implemen)m(t)i(complex)f(rule-sets)f(in)g (Lin)m(ux.)55 b(F)-8 b(or)36 b(more)f(information)382 3618 y(of)30 b(iptables/Net\034lter)i(see)e([4)q(,)g(2].)p 382 5317 1196 4 v 486 5371 a Fh(1)520 5403 y Fg(In)25 b(Lin)n(ux)g(called)h(a)g Ff(chain)1854 5652 y Fl(4)p eop end %%Page: 5 8 TeXDict begin 5 7 bop 382 548 a Fn(4)131 b(FIAIF)382 751 y Fl(This)29 b(section)h(will)g(describ)s(e)f(the)h(design)g(goals) f(of)g(FIAIF,)f Fj(FIAIF)j(is)g(an)g(intel)5 b(ligent)382 864 y(\034r)-5 b(ewal)5 b(l)k Fl([5)q(],)30 b(a)h(to)s(ol)f(to)h(setup) f(a)g(\034rew)m(all)i(under)g(Lin)m(ux.)382 1107 y Fk(4.1)112 b(Design)382 1279 y Fl(The)30 b(idea)h(b)s(ehind)g(FIAIF)d(is)i(that)h (it)f(is)g(to)s(o)f(hard)i(to)f(setup)h(a)f(complex,)h(y)m(et)f(secure) 382 1392 y(\034rew)m(all)j(under)f(Lin)m(ux.)44 b(Doing)32 b(so)f(requires)g(deep)h(insigh)m(t)g(in)m(to)g(building)h(a)e(\034rew) m(all)382 1505 y(and)g(complete)h(understanding)h(of)d(the)h(Lin)m(ux)h (\034rew)m(alling)g(mo)s(dules,)g(Net\034lter)f(and)382 1618 y(iptables.)523 1730 y(The)g(foremost)g(requiremen)m(t)h(of)f (FIAIF)e(is)h(that)h(it)g(should)g(b)s(e)f(secure)h(and)g(easy)382 1843 y(to)h(con\034gure.)48 b(If)31 b(FIAIF)g(is)h(to)s(o)g(di\036cult) i(to)e(con\034gure,)j(errors)d(are)h(more)g(lik)m(ely)f(to)382 1956 y(o)s(ccur)e(and)h(an)g(insecure)g(\034rew)m(all)h(migh)m(t)f (result.)523 2069 y(Also)38 b(it)h(is)f(a)g(requiremen)m(t)j(that)e (FIAIF)e(is)h(expansible)h(and)g(\035exible.)66 b(FIAIF)382 2182 y(should)27 b(b)s(e)f(able)h(to)g(handle)h(b)s(oth)e(simple)h(and) g(complex)h(net)m(w)m(ork)g(con\034gurations)g(in)382 2295 y(an)i(generic)i(manner.)382 2535 y Fm(4.1.1)103 b(Zones)382 2707 y Fl(T)-8 b(o)33 b(satisfy)f(extendabilit)m(y)i(a)f (new)g(term,)i Fj(zones)p Fl(,)e(is)f(in)m(tro)s(duced.)50 b(A)32 b(zone)h(de\034nes)g(a)382 2820 y(net)m(w)m(ork)c(to)f(whic)m(h) h(the)f(\034rew)m(all)h(is)f(connected,)i(and)e(enables)g(the)g (administrator)h(to)382 2932 y(setup)h(di\033eren)m(t)i(securit)m(y)f (p)s(olicies)g(for)f(eac)m(h)h(zone.)523 3158 y(The)36 b(securit)m(y)g(p)s(olicies)g(for)g(eac)m(h)g(zone)h(has)e(b)s(een)h(c) m(hosen)g(to)g(primarally)h(limit)382 3271 y(the)e(tra\036c)g(en)m (tering)i(a)d(zone,)i(and)f(not)g(restricting)h(net)m(w)m(ork)g (tra\036c)g(coming)f(from)382 3384 y(mac)m(hines)e(within)g(a)f(zone.) 47 b(This)32 b(has)g(b)s(een)g(c)m(hosen,)h(as)f(it)g(enables)h(to)f (administra-)382 3497 y(tor)g(to)f(add)h(new)g(zone)g(de\034nitions)h (to)e(an)h(existing)f(con\034guration)j(without)f(ha)m(ving)382 3610 y(to)f(mo)s(dify)g(the)h(con\034guration)i(of)d(other)h(zones,)g (to)f(either)i(allo)m(w)f(or)g(den)m(y)g(net)m(w)m(ork)382 3723 y(comm)m(unication.)523 3949 y(On)h(\034gure)h(1)f(on)g(the)g (follo)m(wing)h(page)g(is)e(an)h(example)h(of)e(a)h(net)m(w)m(ork)i (split)e(in)m(to)382 4062 y(three)d(zones:)382 4249 y Fm(External)k(zone)46 b Fl(:)40 b(This)30 b(zone)h(de\034nes)g(the)g (whole)g(In)m(ternet.)382 4437 y Fm(In)m(ternal)k(zone)45 b Fl(:)60 b(This)40 b(zone)h(de\034nes)f(all)h(mac)m(hines)g(on)f(a)g (LAN.)g(The)h(primary)609 4550 y(function)30 b(of)f(the)h(\034rew)m (all)h(is)e(to)h(protect)h(mac)m(hines)f(on)g(the)g(LAN)f(from)h(unau-) 609 4663 y(thorised)h(access)f(from)h(the)g(In)m(ternet.)382 4850 y Fm(Demilitarised)j(zone)46 b Fl(:)62 b(A)41 b(demilitarised)i (zone)f(de\034nes)g(a)f(group)h(of)f(mac)m(hines)609 4963 y(whic)m(h)25 b(runs)f(services)f(exp)s(osed)g(to)h(the)f(In)m (ternet.)40 b(Examples)24 b(of)f(these)h(services)609 5076 y(es)30 b(are:)41 b(Login)31 b(serv)m(er,)g(W)-8 b(eb-serv)m(er,)32 b(Mail)e(gatew)m(a)m(y)i(etc.)41 b(As)30 b(users)g(from)g(the)609 5189 y(In)m(ternet)38 b(can)f(gain)g(access)f (to)g(these)h(serv)m(er,)h(v)m(ery)f(strict)g(securit)m(y)g(m)m(ust)g (b)s(e)1854 5652 y(5)p eop end %%Page: 6 9 TeXDict begin 6 8 bop 609 548 a Fl(in)29 b(place,)h(under)g(the)f (assumption)h(that)f(these)g(services)g(are)g(not)g(100)g(p)s(ercen)m (t)609 661 y(secure)850 628 y Fi(2)890 661 y Fl(.)797 1779 y @beginspecial 0 @llx 0 @lly 1036 @urx 453 @ury 2590 @rwi @setspecial %%BeginDocument: fig/zones.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: fig/zones.dia %%Creator: Dia v0.97.2 %%CreationDate: Sat Jan 19 18:15:01 2013 %%For: afu %%Orientation: Portrait %%Magnification: 1.0000 %%BoundingBox: 0 0 1036 453 %%BeginSetup %%EndSetup %%EndComments %%BeginProlog [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def /cp {closepath} bind def /c {curveto} bind def /f {fill} bind def /a {arc} bind def /ef {eofill} bind def /ex {exch} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth pop} bind def /tr {translate} bind def /ellipsedict 8 dict def ellipsedict /mtrx matrix put /ellipse { ellipsedict begin /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc savematrix setmatrix end } def /mergeprocs { dup length 3 -1 roll dup length dup 5 1 roll 3 -1 roll add array cvx dup 3 -1 roll 0 exch putinterval dup 4 2 roll putinterval } bind def /dpi_x 300 def /dpi_y 300 def /conicto { /to_y exch def /to_x exch def /conic_cntrl_y exch def /conic_cntrl_x exch def currentpoint /p0_y exch def /p0_x exch def /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def /p2_x p1_x to_x p0_x sub 1 3 div mul add def /p2_y p1_y to_y p0_y sub 1 3 div mul add def p1_x p1_y p2_x p2_y to_x to_y curveto } bind def /start_ol { gsave 1.1 dpi_x div dup scale} bind def /end_ol { closepath fill grestore } bind def 28.346000 -28.346000 scale 2.780060 -18.331250 translate %%EndProlog 0.100000 slw [] 0 sd [] 0 sd 0 slc 0 slj 0.080000 slw 0 slc 0 slj [] 0 sd 0.701961 0.701961 0.701961 srgb n 14.750813 13.048900 m 14.750813 15.560859 l 15.827367 15.560859 l 15.827367 13.048900 l f 0.000000 0.000000 0.000000 srgb n 14.750813 13.048900 m 14.750813 15.560859 l 15.827367 15.560859 l 15.827367 13.048900 l cp s 0.010000 slw 0 slc 0 slj [] 0 sd n 14.858468 13.199618 m 14.858468 13.486699 l 15.719711 13.486699 l 15.719711 13.199618 l cp s 0 slc 0 slj [] 0 sd n 14.858468 13.486699 m 14.858468 13.773780 l 15.719711 13.773780 l 15.719711 13.486699 l cp s 0 slc 0 slj [] 0 sd n 14.858468 13.773780 m 14.858468 14.060861 l 15.719711 14.060861 l 15.719711 13.773780 l cp s 0 slc 0 slj [] 0 sd n 14.858468 14.060861 m 14.858468 14.347942 l 15.719711 14.347942 l 15.719711 14.060861 l cp s 0 slc 0 slj [] 0 sd n 14.858468 14.405358 m 14.858468 14.577607 l 15.396745 14.577607 l 15.396745 14.405358 l cp s 0 slc 0 slj [] 0 sd 0.000000 1.000000 0.000000 srgb n 15.665884 14.434066 0.037679 0.037679 0 360 ellipse f 0.000000 0.000000 0.000000 srgb n 15.665884 14.434066 0.037679 0.037679 0 360 ellipse cp s 0 slc 0 slj [] 0 sd 1.000000 1.000000 0.000000 srgb n 15.665884 14.548898 0.037679 0.037679 0 360 ellipse f 0.000000 0.000000 0.000000 srgb n 15.665884 14.548898 0.037679 0.037679 0 360 ellipse cp s 0 slc 0 slj [] 0 sd 1.000000 1.000000 1.000000 srgb n 15.450573 14.462774 m 15.450573 14.577607 l 15.579759 14.577607 l 15.579759 14.462774 l f 0.000000 0.000000 0.000000 srgb n 15.450573 14.462774 m 15.450573 14.577607 l 15.579759 14.577607 l 15.579759 14.462774 l cp s 0 slc 0 slj [] 0 sd n 14.930239 14.807271 m 14.930239 15.435261 l s 0 slc 0 slj [] 0 sd n 15.109664 14.807271 m 15.109664 15.435261 l s 0 slc 0 slj [] 0 sd n 15.289090 14.807271 m 15.289090 15.435261 l s 0 slc 0 slj [] 0 sd n 15.468516 14.807271 m 15.468516 15.435261 l s 0 slc 0 slj [] 0 sd n 15.647941 14.807271 m 15.647941 15.435261 l s 0 slc 0 slj [] 0 sd n 15.827367 14.807271 m 15.827367 15.435261 l s 0 slc 0 slj [] 0 sd 0.600000 0.600000 0.600000 srgb n 14.535502 15.776170 m 14.750813 15.345548 l 14.750813 15.560859 l 15.827367 15.560859 l 15.827367 15.345548 l 16.114448 15.776170 l ef 0.000000 0.000000 0.000000 srgb n 14.535502 15.776170 m 14.750813 15.345548 l 14.750813 15.560859 l 15.827367 15.560859 l 15.827367 15.345548 l 16.114448 15.776170 l cp s 0.100000 slw [] 0 sd [] 0 sd 0 slc 0 slj 0.100000 slw 0 slc 0 slj [] 0 sd 1.000000 1.000000 1.000000 srgb n 0.347692 13.420057 m -0.716389 13.396670 -2.780060 13.887790 -2.489856 14.940191 c -2.199655 15.992591 -0.813124 16.226449 -0.232716 15.922431 c 0.347692 15.618405 -1.135573 17.395783 1.701978 17.863516 c 4.539504 18.331250 5.990525 17.582876 5.571341 17.044983 c 5.152157 16.507089 8.054199 18.307863 9.408485 17.278849 c 10.762771 16.249836 8.021954 15.267604 8.602362 15.407924 c 9.182770 15.548245 10.956240 15.361151 10.375832 13.607150 c 9.795423 11.853149 4.571749 13.209577 5.152157 12.952323 c 5.732566 12.695070 4.281545 11.408800 2.475856 11.666053 c 0.670141 11.923309 0.542065 12.390131 0.348595 13.419145 c 0.347692 13.420057 l ef 0.000000 0.000000 0.000000 srgb n 0.347692 13.420057 m -0.716389 13.396670 -2.780060 13.887790 -2.489856 14.940191 c -2.199655 15.992591 -0.813124 16.226449 -0.232716 15.922431 c 0.347692 15.618405 -1.135573 17.395783 1.701978 17.863516 c 4.539504 18.331250 5.990525 17.582876 5.571341 17.044983 c 5.152157 16.507089 8.054199 18.307863 9.408485 17.278849 c 10.762771 16.249836 8.021954 15.267604 8.602362 15.407924 c 9.182770 15.548245 10.956240 15.361151 10.375832 13.607150 c 9.795423 11.853149 4.571749 13.209577 5.152157 12.952323 c 5.732566 12.695070 4.281545 11.408800 2.475856 11.666053 c 0.670141 11.923309 0.542065 12.390131 0.348595 13.419145 c 0.347692 13.420057 l s gsave 1.953812 14.752053 translate 0.035278 -0.035278 scale start_ol 1536 2624 moveto 1536 192 lineto 2240 192 lineto 2309 192 2338 165 conicto 2368 139 2368 96 conicto 2368 55 2338 27 conicto 2309 0 2240 0 conicto 640 0 lineto 571 0 541 27 conicto 512 55 512 96 conicto 512 139 541 165 conicto 571 192 640 192 conicto 1344 192 lineto 1344 2624 lineto 640 2624 lineto 571 2624 541 2650 conicto 512 2677 512 2720 conicto 512 2763 541 2789 conicto 571 2816 640 2816 conicto 2240 2816 lineto 2309 2816 2338 2789 conicto 2368 2763 2368 2720 conicto 2368 2677 2338 2650 conicto 2309 2624 2240 2624 conicto 1536 2624 lineto end_ol grestore gsave 2.338450 14.752053 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 2.723088 14.752053 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 3.107726 14.752053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 3.492364 14.752053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 3.877002 14.752053 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 4.261640 14.752053 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 4.646278 14.752053 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore gsave 5.030916 14.752053 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 5.415554 14.752053 translate 0.035278 -0.035278 scale start_ol 2368 2112 moveto 2376 1943 lineto 758 192 lineto 2240 192 lineto 2240 448 lineto 2240 517 2266 546 conicto 2293 576 2336 576 conicto 2378 576 2405 546 conicto 2432 517 2432 448 conicto 2430 0 lineto 512 0 lineto 504 171 lineto 2121 1920 lineto 768 1920 lineto 768 1664 lineto 768 1595 749 1565 conicto 731 1536 704 1536 conicto 647 1536 611 1565 conicto 576 1595 576 1664 conicto 576 2112 lineto 2368 2112 lineto end_ol grestore gsave 5.800192 14.752053 translate 0.035278 -0.035278 scale start_ol 2560 1055 moveto 2560 592 2232 264 conicto 1904 -64 1441 -64 conicto 974 -64 647 265 conicto 320 594 320 1055 conicto 320 1518 647 1847 conicto 974 2176 1441 2176 conicto 1904 2176 2232 1848 conicto 2560 1520 2560 1055 conicto 2368 1056 moveto 2368 1442 2097 1713 conicto 1826 1984 1440 1984 conicto 1054 1984 783 1711 conicto 512 1439 512 1056 conicto 512 675 783 401 conicto 1054 128 1440 128 conicto 1826 128 2097 400 conicto 2368 673 2368 1056 conicto end_ol grestore gsave 6.184831 14.752053 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 6.569469 14.752053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 3.493812 15.552053 translate 0.035278 -0.035278 scale start_ol 1408 1185 moveto 1408 1462 1468 1772 conicto 1529 2083 1700 2490 conicto 1871 2897 1950 2982 conicto 1974 3008 2008 3008 conicto 2051 3008 2081 2979 conicto 2112 2950 2112 2909 conicto 2112 2885 2095 2856 conicto 1828 2370 1714 1975 conicto 1600 1580 1600 1185 conicto 1600 788 1714 393 conicto 1828 -2 2095 -486 conicto 2112 -515 2112 -539 conicto 2112 -580 2080 -610 conicto 2048 -640 2006 -640 conicto 1974 -640 1950 -614 conicto 1875 -532 1706 -134 conicto 1537 263 1472 569 conicto 1408 875 1408 1185 conicto end_ol grestore gsave 3.878450 15.552053 translate 0.035278 -0.035278 scale start_ol 1088 2624 moveto 1088 192 lineto 2432 192 lineto 2432 960 lineto 2432 1029 2459 1058 conicto 2486 1088 2529 1088 conicto 2570 1088 2597 1059 conicto 2624 1031 2624 960 conicto 2624 0 lineto 384 0 lineto 315 0 285 27 conicto 256 55 256 96 conicto 256 139 285 165 conicto 315 192 384 192 conicto 896 192 lineto 896 2624 lineto 384 2624 lineto 315 2624 285 2650 conicto 256 2677 256 2720 conicto 256 2763 285 2789 conicto 315 2816 384 2816 conicto 1600 2816 lineto 1669 2816 1698 2789 conicto 1728 2763 1728 2720 conicto 1728 2677 1698 2650 conicto 1669 2624 1600 2624 conicto 1088 2624 lineto end_ol grestore gsave 4.263088 15.552053 translate 0.035278 -0.035278 scale start_ol 2208 960 moveto 729 960 lineto 445 192 lineto 832 192 lineto 901 192 930 165 conicto 960 139 960 96 conicto 960 55 930 27 conicto 901 0 832 0 conicto 128 0 lineto 59 0 29 27 conicto 0 55 0 96 conicto 0 139 29 165 conicto 59 192 128 192 conicto 242 192 lineto 1141 2624 lineto 576 2624 lineto 507 2624 477 2650 conicto 448 2677 448 2720 conicto 448 2763 477 2789 conicto 507 2816 576 2816 conicto 1733 2816 lineto 2691 192 lineto 2816 192 lineto 2885 192 2914 165 conicto 2944 139 2944 96 conicto 2944 55 2914 27 conicto 2885 0 2816 0 conicto 2112 0 lineto 2042 0 2013 27 conicto 1984 55 1984 96 conicto 1984 139 2013 165 conicto 2042 192 2112 192 conicto 2488 192 lineto 2208 960 lineto 2138 1152 moveto 1600 2624 lineto 1344 2624 lineto 800 1152 lineto 2138 1152 lineto end_ol grestore gsave 4.647726 15.552053 translate 0.035278 -0.035278 scale start_ol 2432 0 moveto 2214 0 lineto 704 2496 lineto 704 192 lineto 1088 192 lineto 1158 192 1187 165 conicto 1216 139 1216 96 conicto 1216 55 1187 27 conicto 1158 0 1088 0 conicto 384 0 lineto 314 0 285 27 conicto 256 55 256 96 conicto 256 139 285 165 conicto 314 192 384 192 conicto 512 192 lineto 512 2624 lineto 256 2624 lineto 187 2624 157 2650 conicto 128 2677 128 2720 conicto 128 2763 157 2789 conicto 187 2816 256 2816 conicto 730 2816 lineto 2240 320 lineto 2240 2624 lineto 1856 2624 lineto 1787 2624 1757 2650 conicto 1728 2677 1728 2720 conicto 1728 2763 1756 2789 conicto 1785 2816 1856 2816 conicto 2560 2816 lineto 2629 2816 2658 2789 conicto 2688 2763 2688 2720 conicto 2688 2677 2658 2650 conicto 2629 2624 2560 2624 conicto 2432 2624 lineto 2432 0 lineto end_ol grestore gsave 5.032364 15.552053 translate 0.035278 -0.035278 scale start_ol 1536 1183 moveto 1536 906 1475 596 conicto 1415 287 1244 -121 conicto 1073 -529 994 -611 conicto 970 -640 936 -640 conicto 893 -640 862 -610 conicto 832 -580 832 -539 conicto 832 -515 849 -486 conicto 1116 -2 1230 393 conicto 1344 788 1344 1183 conicto 1344 1580 1230 1975 conicto 1116 2370 849 2856 conicto 832 2885 832 2909 conicto 832 2950 864 2979 conicto 896 3008 938 3008 conicto 970 3008 994 2982 conicto 1069 2900 1238 2502 conicto 1407 2105 1471 1799 conicto 1536 1493 1536 1183 conicto end_ol grestore 0.100000 slw [] 0 sd [] 0 sd 0 slc 0 slj 0.100000 slw 0 slc 0 slj [] 0 sd 1.000000 1.000000 1.000000 srgb n 11.190919 4.370057 m 9.750257 4.346670 6.956250 4.837790 7.349158 5.890191 c 7.742061 6.942591 9.619288 7.176449 10.405104 6.872431 c 11.190919 6.568405 9.182724 8.345783 13.024489 8.813516 c 16.866220 9.281250 18.830760 8.532876 18.263226 7.994983 c 17.695693 7.457089 21.624771 9.257863 23.458341 8.228849 c 25.291911 7.199836 21.581115 6.217604 22.366931 6.357924 c 23.152746 6.498245 25.553850 6.311151 24.768034 4.557150 c 23.982219 2.803149 16.909877 4.159577 17.695693 3.902323 c 18.481508 3.645070 16.516969 2.358800 14.072244 2.616053 c 11.627484 2.873309 11.454080 3.340131 11.192142 4.369145 c 11.190919 4.370057 l ef 0.000000 0.000000 0.000000 srgb n 11.190919 4.370057 m 9.750257 4.346670 6.956250 4.837790 7.349158 5.890191 c 7.742061 6.942591 9.619288 7.176449 10.405104 6.872431 c 11.190919 6.568405 9.182724 8.345783 13.024489 8.813516 c 16.866220 9.281250 18.830760 8.532876 18.263226 7.994983 c 17.695693 7.457089 21.624771 9.257863 23.458341 8.228849 c 25.291911 7.199836 21.581115 6.217604 22.366931 6.357924 c 23.152746 6.498245 25.553850 6.311151 24.768034 4.557150 c 23.982219 2.803149 16.909877 4.159577 17.695693 3.902323 c 18.481508 3.645070 16.516969 2.358800 14.072244 2.616053 c 11.627484 2.873309 11.454080 3.340131 11.192142 4.369145 c 11.190919 4.370057 l s gsave 13.288587 5.702053 translate 0.035278 -0.035278 scale start_ol 704 192 moveto 704 2624 lineto 576 2624 lineto 507 2624 477 2650 conicto 448 2677 448 2720 conicto 448 2763 477 2789 conicto 507 2816 576 2816 conicto 1636 2816 lineto 1884 2816 2089 2710 conicto 2295 2604 2403 2469 conicto 2588 2241 2684 1986 conicto 2752 1800 2752 1548 conicto 2752 1268 lineto 2752 958 2618 666 conicto 2485 375 2173 159 conicto 1941 0 1636 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 704 192 lineto 896 192 moveto 1633 192 lineto 1889 192 2112 343 conicto 2335 495 2447 745 conicto 2560 995 2560 1224 conicto 2560 1592 lineto 2560 1782 2500 1930 conicto 2413 2178 2253 2340 conicto 2166 2475 1997 2549 conicto 1828 2624 1633 2624 conicto 896 2624 lineto 896 192 lineto end_ol grestore gsave 13.673225 5.702053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 14.057863 5.702053 translate 0.035278 -0.035278 scale start_ol 512 2112 moveto 512 1911 lineto 767 2176 1025 2176 conicto 1180 2176 1297 2095 conicto 1414 2015 1493 1852 conicto 1627 2015 1765 2095 conicto 1903 2176 2042 2176 conicto 2260 2176 2390 2032 conicto 2560 1846 2560 1626 conicto 2560 192 lineto 2816 192 lineto 2885 192 2914 165 conicto 2944 139 2944 96 conicto 2944 55 2914 27 conicto 2885 0 2816 0 conicto 2368 0 lineto 2368 1622 lineto 2368 1779 2273 1881 conicto 2178 1984 2054 1984 conicto 1942 1984 1818 1899 conicto 1694 1815 1536 1568 conicto 1536 192 lineto 1792 192 lineto 1861 192 1890 165 conicto 1920 139 1920 96 conicto 1920 55 1890 27 conicto 1861 0 1792 0 conicto 1344 0 lineto 1344 1607 lineto 1344 1771 1249 1877 conicto 1154 1984 1036 1984 conicto 927 1984 821 1913 conicto 674 1813 512 1568 conicto 512 192 lineto 768 192 lineto 837 192 866 165 conicto 896 139 896 96 conicto 896 55 866 27 conicto 837 0 768 0 conicto 64 0 lineto -5 0 -34 27 conicto -64 55 -64 96 conicto -64 139 -34 165 conicto -5 192 64 192 conicto 320 192 lineto 320 1920 lineto 64 1920 lineto -5 1920 -34 1947 conicto -64 1974 -64 2016 conicto -64 2057 -34 2084 conicto -5 2112 64 2112 conicto 512 2112 lineto end_ol grestore gsave 14.442501 5.702053 translate 0.035278 -0.035278 scale start_ol 1536 3136 moveto 1536 2624 lineto 1216 2624 lineto 1216 3136 lineto 1536 3136 lineto 1536 2112 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 1920 lineto 768 1920 lineto 701 1920 670 1947 conicto 640 1974 640 2015 conicto 640 2058 669 2085 conicto 698 2112 768 2112 conicto 1536 2112 lineto end_ol grestore gsave 14.827139 5.702053 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore gsave 15.211777 5.702053 translate 0.035278 -0.035278 scale start_ol 1536 3136 moveto 1536 2624 lineto 1216 2624 lineto 1216 3136 lineto 1536 3136 lineto 1536 2112 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 1920 lineto 768 1920 lineto 701 1920 670 1947 conicto 640 1974 640 2015 conicto 640 2058 669 2085 conicto 698 2112 768 2112 conicto 1536 2112 lineto end_ol grestore gsave 15.596415 5.702053 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 15.981053 5.702053 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 16.365691 5.702053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 16.750329 5.702053 translate 0.035278 -0.035278 scale start_ol 1536 3136 moveto 1536 2624 lineto 1216 2624 lineto 1216 3136 lineto 1536 3136 lineto 1536 2112 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 1920 lineto 768 1920 lineto 701 1920 670 1947 conicto 640 1974 640 2015 conicto 640 2058 669 2085 conicto 698 2112 768 2112 conicto 1536 2112 lineto end_ol grestore gsave 17.134967 5.702053 translate 0.035278 -0.035278 scale start_ol 2368 2112 moveto 2376 1943 lineto 758 192 lineto 2240 192 lineto 2240 448 lineto 2240 517 2266 546 conicto 2293 576 2336 576 conicto 2378 576 2405 546 conicto 2432 517 2432 448 conicto 2430 0 lineto 512 0 lineto 504 171 lineto 2121 1920 lineto 768 1920 lineto 768 1664 lineto 768 1595 749 1565 conicto 731 1536 704 1536 conicto 647 1536 611 1565 conicto 576 1595 576 1664 conicto 576 2112 lineto 2368 2112 lineto end_ol grestore gsave 17.519605 5.702053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 17.904243 5.702053 translate 0.035278 -0.035278 scale start_ol 2432 3008 moveto 2432 192 lineto 2688 192 lineto 2758 192 2787 165 conicto 2816 139 2816 96 conicto 2816 55 2787 27 conicto 2758 0 2688 0 conicto 2240 0 lineto 2240 411 lineto 1885 -64 1337 -64 conicto 1059 -64 805 82 conicto 551 228 403 498 conicto 256 768 256 1055 conicto 256 1344 403 1613 conicto 551 1882 805 2029 conicto 1059 2176 1339 2176 conicto 1875 2176 2240 1703 conicto 2240 2816 lineto 1984 2816 lineto 1914 2816 1885 2834 conicto 1856 2852 1856 2880 conicto 1856 2935 1885 2971 conicto 1914 3008 1984 3008 conicto 2432 3008 lineto 2240 1056 moveto 2240 1447 1975 1715 conicto 1710 1984 1345 1984 conicto 978 1984 713 1715 conicto 448 1447 448 1056 conicto 448 668 713 398 conicto 978 128 1345 128 conicto 1710 128 1975 398 conicto 2240 668 2240 1056 conicto end_ol grestore gsave 18.288881 5.702053 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 18.673519 5.702053 translate 0.035278 -0.035278 scale start_ol 2432 0 moveto 512 0 lineto 512 284 lineto 2112 2607 lineto 2112 2624 lineto 832 2624 lineto 832 2048 lineto 832 1978 796 1949 conicto 761 1920 704 1920 conicto 677 1920 658 1949 conicto 640 1978 640 2048 conicto 640 2816 lineto 2304 2816 lineto 2304 2539 lineto 704 214 lineto 704 192 lineto 2240 192 lineto 2240 896 lineto 2240 966 2266 995 conicto 2293 1024 2336 1024 conicto 2379 1024 2405 995 conicto 2432 966 2432 896 conicto 2432 0 lineto end_ol grestore gsave 19.058157 5.702053 translate 0.035278 -0.035278 scale start_ol 2560 1055 moveto 2560 592 2232 264 conicto 1904 -64 1441 -64 conicto 974 -64 647 265 conicto 320 594 320 1055 conicto 320 1518 647 1847 conicto 974 2176 1441 2176 conicto 1904 2176 2232 1848 conicto 2560 1520 2560 1055 conicto 2368 1056 moveto 2368 1442 2097 1713 conicto 1826 1984 1440 1984 conicto 1054 1984 783 1711 conicto 512 1439 512 1056 conicto 512 675 783 401 conicto 1054 128 1440 128 conicto 1826 128 2097 400 conicto 2368 673 2368 1056 conicto end_ol grestore gsave 19.442795 5.702053 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 19.827433 5.702053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 14.251087 6.502053 translate 0.035278 -0.035278 scale start_ol 1408 1185 moveto 1408 1462 1468 1772 conicto 1529 2083 1700 2490 conicto 1871 2897 1950 2982 conicto 1974 3008 2008 3008 conicto 2051 3008 2081 2979 conicto 2112 2950 2112 2909 conicto 2112 2885 2095 2856 conicto 1828 2370 1714 1975 conicto 1600 1580 1600 1185 conicto 1600 788 1714 393 conicto 1828 -2 2095 -486 conicto 2112 -515 2112 -539 conicto 2112 -580 2080 -610 conicto 2048 -640 2006 -640 conicto 1974 -640 1950 -614 conicto 1875 -532 1706 -134 conicto 1537 263 1472 569 conicto 1408 875 1408 1185 conicto end_ol grestore gsave 14.635725 6.502053 translate 0.035278 -0.035278 scale start_ol 2240 2617 moveto 2240 2683 lineto 2240 2754 2266 2785 conicto 2293 2816 2336 2816 conicto 2379 2816 2405 2783 conicto 2432 2750 2432 2673 conicto 2432 2127 lineto 2432 2050 2405 2017 conicto 2379 1984 2336 1984 conicto 2295 1984 2268 2015 conicto 2242 2047 2240 2118 conicto 2228 2337 2029 2512 conicto 1830 2688 1508 2688 conicto 1168 2688 968 2525 conicto 768 2362 768 2101 conicto 768 1979 824 1878 conicto 880 1778 973 1715 conicto 1066 1653 1183 1615 conicto 1300 1578 1549 1536 conicto 1967 1470 2110 1391 conicto 2301 1308 2398 1144 conicto 2496 981 2496 759 conicto 2496 417 2220 176 conicto 1945 -64 1478 -64 conicto 954 -64 640 255 conicto 640 137 lineto 640 64 613 32 conicto 587 0 544 0 conicto 503 0 475 31 conicto 448 63 448 135 conicto 448 695 lineto 448 769 474 800 conicto 501 832 544 832 conicto 585 832 611 803 conicto 638 775 640 710 conicto 652 490 877 309 conicto 1102 128 1483 128 conicto 1863 128 2083 298 conicto 2304 469 2304 760 conicto 2304 917 2227 1039 conicto 2150 1161 1998 1232 conicto 1893 1282 1522 1344 conicto 1012 1429 794 1603 conicto 576 1778 576 2100 conicto 576 2420 831 2650 conicto 1087 2880 1506 2880 conicto 1932 2880 2240 2617 conicto end_ol grestore gsave 15.020363 6.502053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 15.405001 6.502053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 15.789639 6.502053 translate 0.035278 -0.035278 scale start_ol 1659 0 moveto 1349 0 lineto 549 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 1152 2112 lineto 1221 2112 1250 2085 conicto 1280 2058 1280 2016 conicto 1280 1975 1250 1947 conicto 1221 1920 1152 1920 conicto 752 1920 lineto 1472 192 lineto 1536 192 lineto 2256 1920 lineto 1856 1920 lineto 1787 1920 1757 1947 conicto 1728 1974 1728 2016 conicto 1728 2057 1757 2084 conicto 1787 2112 1856 2112 conicto 2688 2112 lineto 2759 2112 2787 2085 conicto 2816 2058 2816 2016 conicto 2816 1975 2787 1947 conicto 2759 1920 2688 1920 conicto 2459 1920 lineto 1659 0 lineto end_ol grestore gsave 16.174277 6.502053 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 16.558915 6.502053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 16.943553 6.502053 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 17.328191 6.502053 translate 0.035278 -0.035278 scale start_ol 704 2112 moveto 704 1735 lineto 887 1954 1097 2065 conicto 1307 2176 1592 2176 conicto 1895 2176 2151 2032 conicto 2407 1888 2547 1630 conicto 2688 1373 2688 1089 conicto 2688 639 2372 319 conicto 2056 0 1595 0 conicto 1046 0 704 441 conicto 704 -704 lineto 1216 -704 lineto 1285 -704 1314 -730 conicto 1344 -757 1344 -800 conicto 1344 -841 1314 -868 conicto 1285 -896 1216 -896 conicto 256 -896 lineto 187 -896 157 -869 conicto 128 -843 128 -800 conicto 128 -757 157 -730 conicto 187 -704 256 -704 conicto 512 -704 lineto 512 1920 lineto 256 1920 lineto 187 1920 157 1947 conicto 128 1974 128 2016 conicto 128 2057 157 2084 conicto 187 2112 256 2112 conicto 704 2112 lineto 2496 1089 moveto 2496 1458 2236 1721 conicto 1977 1984 1602 1984 conicto 1226 1984 965 1719 conicto 704 1455 704 1089 conicto 704 721 965 456 conicto 1226 192 1602 192 conicto 1974 192 2235 455 conicto 2496 718 2496 1089 conicto end_ol grestore gsave 17.712829 6.502053 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 18.097467 6.502053 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 18.482105 6.502053 translate 0.035278 -0.035278 scale start_ol 1024 888 moveto 1024 0 lineto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 832 192 lineto 832 2816 lineto 576 2816 lineto 507 2816 477 2843 conicto 448 2870 448 2912 conicto 448 2953 477 2980 conicto 507 3008 576 3008 conicto 1024 3008 lineto 1024 1114 lineto 2046 1920 lineto 1984 1920 lineto 1915 1920 1885 1947 conicto 1856 1975 1856 2016 conicto 1856 2058 1885 2085 conicto 1915 2112 1984 2112 conicto 2560 2112 lineto 2630 2112 2659 2085 conicto 2688 2058 2688 2016 conicto 2688 1975 2659 1947 conicto 2630 1920 2560 1920 conicto 2325 1920 lineto 1413 1195 lineto 2459 192 lineto 2688 192 lineto 2758 192 2787 165 conicto 2816 139 2816 96 conicto 2816 55 2787 27 conicto 2758 0 2688 0 conicto 1984 0 lineto 1915 0 1885 27 conicto 1856 55 1856 96 conicto 1856 139 1885 165 conicto 1915 192 1984 192 conicto 2216 192 lineto 1274 1085 lineto 1024 888 lineto end_ol grestore gsave 18.866743 6.502053 translate 0.035278 -0.035278 scale start_ol 1536 1183 moveto 1536 906 1475 596 conicto 1415 287 1244 -121 conicto 1073 -529 994 -611 conicto 970 -640 936 -640 conicto 893 -640 862 -610 conicto 832 -580 832 -539 conicto 832 -515 849 -486 conicto 1116 -2 1230 393 conicto 1344 788 1344 1183 conicto 1344 1580 1230 1975 conicto 1116 2370 849 2856 conicto 832 2885 832 2909 conicto 832 2950 864 2979 conicto 896 3008 938 3008 conicto 970 3008 994 2982 conicto 1069 2900 1238 2502 conicto 1407 2105 1471 1799 conicto 1536 1493 1536 1183 conicto end_ol grestore 0.100000 slw [] 0 sd [] 0 sd 0 slc 0 slj 0.100000 slw 0 slc 0 slj [] 0 sd 1.000000 1.000000 1.000000 srgb n 23.100060 12.938250 m 22.030532 12.914474 19.956300 13.413773 20.247989 14.483699 c 20.539675 15.553626 21.933302 15.791377 22.516681 15.482297 c 23.100060 15.173207 21.609203 16.980184 24.461277 17.455707 c 27.313324 17.931230 28.771771 17.170394 28.350442 16.623542 c 27.929113 16.076691 30.846007 17.907454 32.207223 16.861304 c 33.568440 15.815154 30.813597 14.816565 31.396975 14.959222 c 31.980354 15.101879 33.762900 14.911670 33.179521 13.128459 c 32.596143 11.345249 27.345734 12.724265 27.929113 12.462728 c 28.512492 12.201190 27.054045 10.893500 25.239115 11.155038 c 23.424159 11.416577 23.295427 11.891173 23.100967 12.937323 c 23.100060 12.938250 l ef 0.000000 0.000000 0.000000 srgb n 23.100060 12.938250 m 22.030532 12.914474 19.956300 13.413773 20.247989 14.483699 c 20.539675 15.553626 21.933302 15.791377 22.516681 15.482297 c 23.100060 15.173207 21.609203 16.980184 24.461277 17.455707 c 27.313324 17.931230 28.771771 17.170394 28.350442 16.623542 c 27.929113 16.076691 30.846007 17.907454 32.207223 16.861304 c 33.568440 15.815154 30.813597 14.816565 31.396975 14.959222 c 31.980354 15.101879 33.762900 14.911670 33.179521 13.128459 c 32.596143 11.345249 27.345734 12.724265 27.929113 12.462728 c 28.512492 12.201190 27.054045 10.893500 25.239115 11.155038 c 23.424159 11.416577 23.295427 11.891173 23.100967 12.937323 c 23.100060 12.938250 l s gsave 25.497207 13.896425 translate 0.035278 -0.035278 scale start_ol 832 1344 moveto 832 192 lineto 2368 192 lineto 2368 768 lineto 2368 837 2394 866 conicto 2421 896 2464 896 conicto 2507 896 2533 866 conicto 2560 837 2560 768 conicto 2560 0 lineto 384 0 lineto 315 0 285 27 conicto 256 55 256 96 conicto 256 139 285 165 conicto 315 192 384 192 conicto 640 192 lineto 640 2624 lineto 384 2624 lineto 315 2624 285 2650 conicto 256 2677 256 2720 conicto 256 2763 285 2789 conicto 315 2816 384 2816 conicto 2432 2816 lineto 2432 2112 lineto 2432 2043 2405 2013 conicto 2379 1984 2336 1984 conicto 2293 1984 2266 2013 conicto 2240 2043 2240 2112 conicto 2240 2624 lineto 832 2624 lineto 832 1536 lineto 1536 1536 lineto 1536 1792 lineto 1536 1861 1563 1890 conicto 1590 1920 1633 1920 conicto 1674 1920 1701 1890 conicto 1728 1861 1728 1792 conicto 1728 1088 lineto 1728 1019 1701 989 conicto 1674 960 1633 960 conicto 1590 960 1563 989 conicto 1536 1019 1536 1088 conicto 1536 1344 lineto 832 1344 lineto end_ol grestore gsave 25.881845 13.896425 translate 0.035278 -0.035278 scale start_ol 1594 1118 moveto 2528 192 lineto 2611 192 2633 184 conicto 2655 176 2671 151 conicto 2688 126 2688 96 conicto 2688 55 2657 27 conicto 2627 0 2555 0 conicto 1925 0 lineto 1853 0 1822 27 conicto 1792 55 1792 96 conicto 1792 139 1825 165 conicto 1858 192 1936 192 conicto 2288 192 lineto 1474 998 lineto 665 192 lineto 1013 192 lineto 1087 192 1119 165 conicto 1152 139 1152 96 conicto 1152 55 1121 27 conicto 1091 0 1022 0 conicto 386 0 lineto 317 0 286 27 conicto 256 55 256 96 conicto 256 126 272 151 conicto 289 176 310 184 conicto 332 192 416 192 conicto 1350 1122 lineto 544 1920 lineto 462 1920 440 1929 conicto 418 1938 401 1963 conicto 384 1988 384 2017 conicto 384 2058 413 2085 conicto 442 2112 512 2112 conicto 1026 2112 lineto 1096 2112 1124 2085 conicto 1152 2058 1152 2015 conicto 1152 1974 1122 1947 conicto 1093 1920 1020 1920 conicto 785 1920 lineto 1470 1241 lineto 2151 1920 lineto 1922 1920 lineto 1854 1920 1823 1947 conicto 1792 1974 1792 2017 conicto 1792 2058 1821 2085 conicto 1850 2112 1920 2112 conicto 2434 2112 lineto 2502 2112 2531 2085 conicto 2560 2058 2560 2015 conicto 2560 1988 2543 1963 conicto 2526 1938 2504 1929 conicto 2482 1920 2400 1920 conicto 1594 1118 lineto end_ol grestore gsave 26.266483 13.896425 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 26.651121 13.896425 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 27.035759 13.896425 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 27.420397 13.896425 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 27.805035 13.896425 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 28.189673 13.896425 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore gsave 28.574311 13.896425 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 26.267207 14.696425 translate 0.035278 -0.035278 scale start_ol 2368 2112 moveto 2376 1943 lineto 758 192 lineto 2240 192 lineto 2240 448 lineto 2240 517 2266 546 conicto 2293 576 2336 576 conicto 2378 576 2405 546 conicto 2432 517 2432 448 conicto 2430 0 lineto 512 0 lineto 504 171 lineto 2121 1920 lineto 768 1920 lineto 768 1664 lineto 768 1595 749 1565 conicto 731 1536 704 1536 conicto 647 1536 611 1565 conicto 576 1595 576 1664 conicto 576 2112 lineto 2368 2112 lineto end_ol grestore gsave 26.651845 14.696425 translate 0.035278 -0.035278 scale start_ol 2560 1055 moveto 2560 592 2232 264 conicto 1904 -64 1441 -64 conicto 974 -64 647 265 conicto 320 594 320 1055 conicto 320 1518 647 1847 conicto 974 2176 1441 2176 conicto 1904 2176 2232 1848 conicto 2560 1520 2560 1055 conicto 2368 1056 moveto 2368 1442 2097 1713 conicto 1826 1984 1440 1984 conicto 1054 1984 783 1711 conicto 512 1439 512 1056 conicto 512 675 783 401 conicto 1054 128 1440 128 conicto 1826 128 2097 400 conicto 2368 673 2368 1056 conicto end_ol grestore gsave 27.036483 14.696425 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 27.421121 14.696425 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 27.805759 14.696425 translate 0.035278 -0.035278 scale start_ol end_ol grestore gsave 25.304707 15.496425 translate 0.035278 -0.035278 scale start_ol 1408 1185 moveto 1408 1462 1468 1772 conicto 1529 2083 1700 2490 conicto 1871 2897 1950 2982 conicto 1974 3008 2008 3008 conicto 2051 3008 2081 2979 conicto 2112 2950 2112 2909 conicto 2112 2885 2095 2856 conicto 1828 2370 1714 1975 conicto 1600 1580 1600 1185 conicto 1600 788 1714 393 conicto 1828 -2 2095 -486 conicto 2112 -515 2112 -539 conicto 2112 -580 2080 -610 conicto 2048 -640 2006 -640 conicto 1974 -640 1950 -614 conicto 1875 -532 1706 -134 conicto 1537 263 1472 569 conicto 1408 875 1408 1185 conicto end_ol grestore gsave 25.689345 15.496425 translate 0.035278 -0.035278 scale start_ol 1536 2624 moveto 1536 192 lineto 2240 192 lineto 2309 192 2338 165 conicto 2368 139 2368 96 conicto 2368 55 2338 27 conicto 2309 0 2240 0 conicto 640 0 lineto 571 0 541 27 conicto 512 55 512 96 conicto 512 139 541 165 conicto 571 192 640 192 conicto 1344 192 lineto 1344 2624 lineto 640 2624 lineto 571 2624 541 2650 conicto 512 2677 512 2720 conicto 512 2763 541 2789 conicto 571 2816 640 2816 conicto 2240 2816 lineto 2309 2816 2338 2789 conicto 2368 2763 2368 2720 conicto 2368 2677 2338 2650 conicto 2309 2624 2240 2624 conicto 1536 2624 lineto end_ol grestore gsave 26.073983 15.496425 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 26.458621 15.496425 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 26.843259 15.496425 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 27.227897 15.496425 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 27.612535 15.496425 translate 0.035278 -0.035278 scale start_ol 768 2112 moveto 768 1856 lineto 988 2037 1165 2106 conicto 1342 2176 1564 2176 conicto 1804 2176 2001 2076 conicto 2141 2003 2254 1833 conicto 2368 1663 2368 1485 conicto 2368 192 lineto 2624 192 lineto 2693 192 2722 165 conicto 2752 139 2752 96 conicto 2752 55 2722 27 conicto 2693 0 2624 0 conicto 1920 0 lineto 1850 0 1821 27 conicto 1792 55 1792 96 conicto 1792 139 1821 165 conicto 1850 192 1920 192 conicto 2176 192 lineto 2176 1461 lineto 2176 1681 2011 1832 conicto 1847 1984 1572 1984 conicto 1362 1984 1208 1909 conicto 1054 1834 768 1536 conicto 768 192 lineto 1024 192 lineto 1093 192 1122 165 conicto 1152 139 1152 96 conicto 1152 55 1122 27 conicto 1093 0 1024 0 conicto 320 0 lineto 251 0 221 27 conicto 192 55 192 96 conicto 192 139 221 165 conicto 251 192 320 192 conicto 576 192 lineto 576 1920 lineto 320 1920 lineto 251 1920 221 1947 conicto 192 1974 192 2016 conicto 192 2057 221 2084 conicto 251 2112 320 2112 conicto 768 2112 lineto end_ol grestore gsave 27.997173 15.496425 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 28.381811 15.496425 translate 0.035278 -0.035278 scale start_ol 1024 2112 moveto 2112 2112 lineto 2181 2112 2210 2085 conicto 2240 2058 2240 2016 conicto 2240 1975 2210 1947 conicto 2181 1920 2112 1920 conicto 1024 1920 lineto 1024 548 lineto 1024 369 1158 248 conicto 1293 128 1552 128 conicto 1747 128 1974 186 conicto 2202 245 2328 318 conicto 2374 347 2404 347 conicto 2441 347 2468 318 conicto 2496 290 2496 251 conicto 2496 217 2466 187 conicto 2393 112 2110 24 conicto 1827 -64 1568 -64 conicto 1231 -64 1031 104 conicto 832 272 832 558 conicto 832 1920 lineto 456 1920 lineto 383 1920 351 1947 conicto 320 1974 320 2017 conicto 320 2058 351 2085 conicto 383 2112 456 2112 conicto 832 2112 lineto 832 2686 lineto 832 2756 859 2786 conicto 886 2816 927 2816 conicto 970 2816 997 2786 conicto 1024 2756 1024 2686 conicto 1024 2112 lineto end_ol grestore gsave 28.766449 15.496425 translate 0.035278 -0.035278 scale start_ol 1536 1183 moveto 1536 906 1475 596 conicto 1415 287 1244 -121 conicto 1073 -529 994 -611 conicto 970 -640 936 -640 conicto 893 -640 862 -610 conicto 832 -580 832 -539 conicto 832 -515 849 -486 conicto 1116 -2 1230 393 conicto 1344 788 1344 1183 conicto 1344 1580 1230 1975 conicto 1116 2370 849 2856 conicto 832 2885 832 2909 conicto 832 2950 864 2979 conicto 896 3008 938 3008 conicto 970 3008 994 2982 conicto 1069 2900 1238 2502 conicto 1407 2105 1471 1799 conicto 1536 1493 1536 1183 conicto end_ol grestore 0.100000 slw [] 0 sd [] 0 sd 0 slc n 15.325000 13.048900 m 15.301900 8.963990 l s 0.100000 slw [] 0 sd [] 0 sd 0 slc n 14.806200 14.331300 m 10.485000 14.264900 l s 0.100000 slw [] 0 sd [] 0 sd 0 slc n 15.856300 14.331300 m 20.214000 14.308300 l s gsave 13.785000 16.926100 translate 0.035278 -0.035278 scale start_ol 1024 1344 moveto 1024 192 lineto 1728 192 lineto 1797 192 1826 165 conicto 1856 139 1856 96 conicto 1856 55 1826 27 conicto 1797 0 1728 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 832 192 lineto 832 2624 lineto 576 2624 lineto 507 2624 477 2650 conicto 448 2677 448 2720 conicto 448 2763 482 2793 conicto 507 2816 576 2816 conicto 2752 2816 lineto 2752 2112 lineto 2752 2043 2725 2013 conicto 2698 1984 2657 1984 conicto 2614 1984 2587 2013 conicto 2560 2043 2560 2112 conicto 2560 2624 lineto 1024 2624 lineto 1024 1536 lineto 1728 1536 lineto 1728 1792 lineto 1728 1861 1755 1890 conicto 1782 1920 1825 1920 conicto 1866 1920 1893 1890 conicto 1920 1861 1920 1792 conicto 1920 1088 lineto 1920 1019 1893 989 conicto 1866 960 1825 960 conicto 1782 960 1755 989 conicto 1728 1019 1728 1088 conicto 1728 1344 lineto 1024 1344 lineto end_ol grestore gsave 14.169638 16.926100 translate 0.035278 -0.035278 scale start_ol 1536 3136 moveto 1536 2624 lineto 1216 2624 lineto 1216 3136 lineto 1536 3136 lineto 1536 2112 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 1920 lineto 768 1920 lineto 701 1920 670 1947 conicto 640 1974 640 2015 conicto 640 2058 669 2085 conicto 698 2112 768 2112 conicto 1536 2112 lineto end_ol grestore gsave 14.554276 16.926100 translate 0.035278 -0.035278 scale start_ol 1216 2112 moveto 1216 1594 lineto 1618 1964 1818 2070 conicto 2018 2176 2188 2176 conicto 2372 2176 2530 2032 conicto 2688 1888 2688 1814 conicto 2688 1760 2657 1730 conicto 2627 1700 2580 1700 conicto 2556 1700 2539 1708 conicto 2522 1717 2475 1791 conicto 2389 1927 2325 1955 conicto 2261 1984 2200 1984 conicto 2065 1984 1875 1872 conicto 1685 1760 1216 1325 conicto 1216 192 lineto 2112 192 lineto 2182 192 2211 165 conicto 2240 139 2240 96 conicto 2240 55 2211 27 conicto 2182 0 2112 0 conicto 512 0 lineto 443 0 413 27 conicto 384 54 384 96 conicto 384 137 412 164 conicto 441 192 512 192 conicto 1024 192 lineto 1024 1920 lineto 640 1920 lineto 571 1920 541 1947 conicto 512 1974 512 2016 conicto 512 2057 540 2084 conicto 569 2112 640 2112 conicto 1216 2112 lineto end_ol grestore gsave 14.938914 16.926100 translate 0.035278 -0.035278 scale start_ol 2560 1024 moveto 512 1024 lineto 565 621 838 374 conicto 1111 128 1515 128 conicto 1739 128 1985 205 conicto 2231 283 2386 411 conicto 2431 448 2465 448 conicto 2503 448 2531 418 conicto 2560 388 2560 347 conicto 2560 306 2522 267 conicto 2408 146 2117 41 conicto 1826 -64 1520 -64 conicto 1006 -64 663 277 conicto 320 618 320 1103 conicto 320 1544 642 1860 conicto 965 2176 1441 2176 conicto 1932 2176 2248 1855 conicto 2565 1534 2560 1024 conicto 2368 1216 moveto 2308 1557 2051 1770 conicto 1794 1984 1440 1984 conicto 1086 1984 830 1773 conicto 575 1562 512 1216 conicto 2368 1216 lineto end_ol grestore gsave 15.323552 16.926100 translate 0.035278 -0.035278 scale start_ol 2140 0 moveto 1939 0 lineto 1440 1264 lineto 941 0 lineto 740 0 lineto 305 1920 lineto 256 1920 lineto 187 1920 157 1947 conicto 128 1974 128 2016 conicto 128 2057 157 2084 conicto 187 2112 256 2112 conicto 704 2112 lineto 773 2112 802 2085 conicto 832 2058 832 2016 conicto 832 1975 802 1947 conicto 773 1920 704 1920 conicto 501 1920 lineto 864 320 lineto 1344 1536 lineto 1536 1536 lineto 2016 320 lineto 2383 1920 lineto 2176 1920 lineto 2109 1920 2078 1947 conicto 2048 1974 2048 2016 conicto 2048 2057 2077 2084 conicto 2106 2112 2176 2112 conicto 2624 2112 lineto 2694 2112 2723 2085 conicto 2752 2058 2752 2016 conicto 2752 1975 2723 1947 conicto 2694 1920 2624 1920 conicto 2580 1920 lineto 2140 0 lineto end_ol grestore gsave 15.708190 16.926100 translate 0.035278 -0.035278 scale start_ol 2048 0 moveto 2048 296 lineto 1604 -64 1099 -64 conicto 733 -64 526 117 conicto 320 298 320 561 conicto 320 849 592 1064 conicto 864 1280 1385 1280 conicto 1526 1280 1691 1263 conicto 1856 1246 2048 1209 conicto 2048 1552 lineto 2048 1727 1893 1855 conicto 1739 1984 1430 1984 conicto 1194 1984 767 1821 conicto 692 1792 670 1792 conicto 632 1792 604 1822 conicto 576 1853 576 1898 conicto 576 1941 600 1966 conicto 633 2004 870 2070 conicto 1243 2176 1434 2176 conicto 1814 2176 2027 1984 conicto 2240 1792 2240 1550 conicto 2240 192 lineto 2496 192 lineto 2566 192 2595 165 conicto 2624 139 2624 96 conicto 2624 55 2595 27 conicto 2566 0 2496 0 conicto 2048 0 lineto 2048 1009 moveto 1904 1050 1742 1069 conicto 1581 1088 1402 1088 conicto 955 1088 703 898 conicto 512 757 512 560 conicto 512 378 657 253 conicto 803 128 1082 128 conicto 1348 128 1577 232 conicto 1806 337 2048 565 conicto 2048 1009 lineto end_ol grestore gsave 16.092828 16.926100 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore gsave 16.477466 16.926100 translate 0.035278 -0.035278 scale start_ol 1536 3008 moveto 1536 192 lineto 2304 192 lineto 2374 192 2403 165 conicto 2432 139 2432 96 conicto 2432 55 2403 27 conicto 2374 0 2304 0 conicto 576 0 lineto 507 0 477 27 conicto 448 55 448 96 conicto 448 139 477 165 conicto 507 192 576 192 conicto 1344 192 lineto 1344 2816 lineto 768 2816 lineto 701 2816 670 2843 conicto 640 2870 640 2913 conicto 640 2954 669 2981 conicto 698 3008 768 3008 conicto 1536 3008 lineto end_ol grestore showpage %%EndDocument @endspecial 1044 2075 a(Figure)i(1:)40 b(A)30 b(net)m(w)m(ork)i(split) f(in)m(to)g(three)g(zones)382 2432 y Fm(4.1.2)103 b(Statefull)35 b(\034rew)m(alling)382 2604 y Fl(As)27 b(Lin)m(ux)i(supp)s(orts)e (statefull)h(insp)s(ection)g(of)g(all)g(pac)m(k)m(ets)g(en)m(tering)i (and/or)e(lea)m(ving)382 2716 y(the)39 b(\034rew)m(all,)k (con\034guration)e(of)e(a)g(zone)h(only)f(concerns)g(pac)m(k)m(ets)i (with)e(the)g Fj(NEW)382 2829 y Fl(state,)28 b(as)f(explained)h(in)g (section)g(3.2)f(on)h(page)g(3.)39 b(Related)28 b(and)f(established)h (pac)m(k)m(ets)382 2942 y(are)39 b(automatically)g(accepted.)66 b(The)39 b(reason)f(for)g(this)h(design)f(is)g(that)h(it)f(allo)m(ws)h (a)382 3055 y(bi-directional)c(comm)m(unication)g(b)s(et)m(w)m(een)g(t) m(w)m(o)f(zones,)g(ev)m(en)f(if)f(one)h(zone)h(do)s(es)e(not)382 3168 y(p)s(ermit)h(comm)m(unication)i(en)m(tering)g(from)d(an)m(y)i (zone,)f(but)g(only)g(if)f(the)h(comm)m(unica-)382 3281 y(tion)e(is)f(initiated)i(from)e(a)h(trusted)g(zone.)41 b(The)31 b(goal)g(is)f(to)g(k)m(eep)h(zone)g(con\034guration)382 3394 y(v)m(ery)i(simple.)50 b(The)33 b(dogma)i(is:)45 b Fj(\020If)35 b(no)g(c)-5 b(ommunic)g(ation)35 b(must)g(exist,)h(do)f (not)g(al)5 b(low)382 3507 y(it)32 b(in)f(the)i(\034rst)f(plac)-5 b(e\021)7 b Fl(.)382 3747 y Fm(4.1.3)103 b(Net)m(w)m(ork)35 b(address)g(translation)382 3918 y Fl(Apart)23 b(from)g(con)m(trolling) i(the)e(connections)h(that)f(can)g(b)s(e)g(established)g(from)g(one)g (zone)382 4031 y(to)37 b(another,)j(zones)d(also)g(con)m(trol)i(net)m (w)m(ork)f(address)f(translation)h(\(NA)-8 b(T\).)38 b(NA)-8 b(T)37 b(is)382 4144 y(used)30 b(to)h(alter)g(source)g(and)f (destination)i(of)e(IP)g(datagrams.)382 4388 y Fk(4.2)112 b(Implemen)m(tation)382 4559 y Fl(FIAIF)25 b(is)g(implemen)m(ted)k(as)c (a)h(shell)g(script,)i(using)e(the)g Fj(Bourne)k(again)e(shel)5 b(l)p Fl(,)27 b(BASH,)382 4672 y(in)m(terpreter.)40 b(The)25 b(reason)f(for)g(this)g(language)i(is,)f(that)f(it)h(allo)m(ws)f(a)g (minimal)i(installa-)382 4785 y(tion)d(of)g(soft)m(w)m(are)h(on)f(the)h (\034rew)m(all)g(and)g(is)e(platform)i(indep)s(enden)m(t.)40 b(Other)24 b(languages)382 4898 y(suc)m(h)37 b(as)f(C++)i(or)f(Ja)m(v) -5 b(a)37 b(migh)m(t)h(ha)m(v)m(e)g(b)s(een)f(a)f(b)s(etter)h(c)m (hoice)h(of)f(language)h(from)e(a)382 5011 y(programmers)e(p)s(oin)m(t) f(of)f(view,)h(but)g(in)m(tro)s(duces)h(a)e(list)g(of)g(problems)i (when)f(p)s(orting)382 5124 y(to)28 b(other)h(platforms.)41 b(Ja)m(v)-5 b(a)29 b(requires)f(a)h(ja)m(v)-5 b(a)28 b(virtual)h(mac)m(hine)h(to)e(b)s(e)g(installed,)i(and)p 382 5203 1196 4 v 486 5257 a Fh(2)520 5288 y Fg(Practise)23 b(has)f(sho)n(wn)h(that)e(no)h(soft)n(w)n(are)h(is)g(without)f(bugs,)h (and)e(can)h(in)g(w)n(orst)h(case,)g(ha)n(v)n(e)f(bugs)382 5380 y(that)j(allo)n(w)j(users)e(to)f(gain)i(con)n(trol)f(o)n(v)n(er)f (the)h(underlying)f(op)r(erating)h(system)1854 5652 y Fl(6)p eop end %%Page: 7 10 TeXDict begin 7 9 bop 382 548 a Fl(C++)28 b(w)m(ould)h(require)f(sev)m (eral)h(dynamic)f(libraries)h(to)e(b)s(e)h(installed,)h(whic)m(h)g(ma)m (y)f(not)382 661 y(b)s(e)i(desirable)h(on)g(a)f(\034rew)m(all.)382 947 y Fn(5)131 b(Con\034guration)382 1150 y Fl(FIAIF)31 b(is)h(con)m(trolled)j(b)m(y)e(m)m(ultiple)h(con\034guration)g (\034les.)47 b(When)33 b(\034aif)g(is)f(started,)h(it)382 1263 y(reads)26 b(the)g(\034le)g Fe(/etc/fiaif/fiai)o(f.c)o(on)o(f)p Fl(.)33 b(This)25 b(\034les)h(holds)g(most)g(global)h(con-)382 1376 y(\034guration)c(directiv)m(es,)h(and)e(references)g(to)g (additional)h(con\034guration)h(\034les)d(including)382 1489 y(zone)31 b(con\034guration)h(\034les.)382 1732 y Fk(5.1)112 b(Zone)38 b(sp)s(eci\034cation)382 1904 y Fl(In)31 b(order)g(for)g(FIAIF)f(to)h(kno)m(w)h(whic)m(h)g(zone)g (con\034guration)h(\034les)e(to)h(use,)f(eac)m(h)h(zone)382 2017 y(name)21 b(m)m(ust)g(b)s(e)f(listed)g(in)h(FIAIF)e(global)i (con\034guration)h(\034le,)h(named)e Fe(/etc/fiaif/fiaif)o(.c)o(on)o(f) p Fl(.)382 2130 y(This)28 b(\034le)g(con)m(tains)h(m)m(ultiple)h (global)f(con\034guration)h(directiv)m(es.)41 b(In)27 b(this)h(\034le,)h(a)f(con-)382 2243 y(\034guration)j(directiv)m(e)g Fe(ZONE)d Fl(should)i(b)s(e)f(set)h(to)f(a)h(list)g(of)f(iden)m (ti\034ers)i(for)e(all)h(enabled)382 2356 y(zones.)39 b(These)24 b(iden)m(ti\034ers)i(m)m(ust)g(matc)m(h)f(the)g(name)g(as)f (sp)s(eci\034ed)h(in)g(the)g(corrosp)s(ond-)382 2468 y(ing)g(zone)h(con\034guration)h(\034le.)39 b(F)-8 b(or)26 b(eac)m(h)g(zone)g(iden)m(ti\034er,)i Fe()p Fl(,)23 b(a)i(con\034guration)382 2581 y(directiv)m(e)32 b(sp)s(ecifying)e(the) g(name)i(of)e(the)h(con\034guration)h(\034le)f(m)m(ust)g(b)s(e)f (presen)m(t.)42 b(The)382 2694 y(form)30 b(of)g(these)h (con\034guration)h(directiv)m(es)g(are:)40 b Fe(CONF_=)p Fl(.)382 2934 y Fm(Example:)382 3122 y Fe(ZONE="INT)i(EXT") 382 3235 y(CONF_INT='zone.)o(in)o(t')382 3348 y(CONF_EXT='zone.)o(ex)o (t')382 3535 y Fl(In)38 b(the)i(example)f(ab)s(o)m(v)m(e,)j(t)m(w)m(o)f (zones)e(are)g(enabled.)67 b(The)40 b(zones)f(are)g(named)h Fe(INT)382 3648 y Fl(and)34 b Fe(EXT)p Fl(.)e(The)i(con\034guration)h (\034le)f(for)f(zone)h Fe(INT)e Fl(is)h(called)h Fe(zone.int)p Fl(,)c(and)k(the)382 3761 y(con\034guration)c(\034le)e(for)g(zone)g Fe(EXT)e Fl(is)i(called)h Fe(zone.ext)p Fl(.)35 b(It)28 b(is)f(imp)s(ortan)m(t)j(that)e(the)382 3874 y(name)35 b(sp)s(eci\034ed)f(within)h(the)f(con\034guration)i(\034les)e(corresp)s (ond)h(to)f(the)g(iden)m(ti\034er)i(in)382 3987 y(the)31 b(global)g(con\034guration)h(\034le.)523 4100 y(The)26 b(next)f(section)h(will)g(describ)s(e)g(in)f(detail)h(ho)m(w)h(to)e (setup)h(a)f(zone)h(con\034guration)382 4213 y(\034le.)382 4499 y Fn(6)131 b(Con\034guring)43 b(a)h(zone)382 4702 y Fl(In)36 b(this)g(section)h(the)g(syn)m(tax)f(of)g(rules)h(will)g(b)s (e)f(presen)m(ted,)j(and)e(examples)g(will)g(b)s(e)382 4815 y(giv)m(en.)382 5059 y Fk(6.1)112 b(De\034nitions)382 5230 y Fl(All)23 b(rules)g(are)g(de\034ned)i(b)m(y)e(using)g(a)g(k)m (eyw)m(ord)h(and)g(an)f(assignmen)m(t.)40 b(Three)23 b(categories)382 5343 y(of)30 b(k)m(eyw)m(ords)h(exists:)1854 5652 y(7)p eop end %%Page: 8 11 TeXDict begin 8 10 bop 382 548 a Fm(Simple:)44 b Fl(These)c(are)f (simple)g(k)m(eyw)m(ords)h(that)g(can)f(only)g(b)s(e)g(assigned)g(one)g (v)-5 b(alue.)609 661 y(These)31 b(k)m(eyw)m(ords)g(are)g(used)f(on)h (the)f(form)h Fe(KEYWORD=value)p Fl(.)382 848 y Fm(Arra)m(y:)45 b Fl(Arra)m(y)23 b(k)m(eyw)m(ords)h(de\034nes)f(an)g(arra)m(y)h(of)e (rules.)38 b(The)23 b(k)m(eyw)m(ord)h(is)f(indexed)g(b)m(y)609 961 y(p)s(ost\034xing)32 b(it)g(with)h Fe([n])p Fl(,)e(where)i Fe(n)e Fl(is)g(the)i(p)s(osition)f(in)g(the)g(arra)m(y)-8 b(.)47 b(The)32 b(\034rst)609 1074 y(elemen)m(t)f(in)f(the)g(arra)m(y)g (is)f(one,)h(no)f(indexes)h(m)m(ust)g(b)s(e)f(left)g(out)h(in)g(a)f (sequence.)609 1187 y(If)g(t)m(w)m(o)i(rules)f(ha)m(v)m(e)h(the)f(same) g(index,)g(there)g(is)g(no)g(guaran)m(tee)h(on)f(whic)m(h)h(rules)609 1300 y(will)g(b)s(e)f(c)m(hosen.)382 1488 y Fm(Sets:)46 b Fl(Keyw)m(ord)f(sets)e(are)h(on)g(the)g(form)g Fe(KEYWORD_)o(=v)o(al)o(ue)p Fl(,)609 1601 y(where)33 b(the)f(iden)m (ti\034er)i(can)f(b)s(e)e(replaced)j(b)m(y)e(an)m(y)g(string.)46 b(In)32 b(sets)f(there)i(is)e(no)609 1714 y(sp)s(eci\034ed)k(order)h (of)e(the)h(rules.)54 b(If)34 b(t)m(w)m(o)i(iden)m(tical)h(rule)e (names)g(are)g(sp)s(eci\034ed,)609 1826 y(only)c(one)f(will)h(b)s(e)f (used)h(in)f(a)g(non-deterministic)j(fashion.)382 2039 y(The)25 b(syn)m(tax)g(of)f(all)i(rules)f(will)g(b)s(e)f(presen)m(ted)j (as)d(BNF.)h(Before)g(presen)m(ting)h(the)f(rules,)382 2152 y(a)g(list)h(of)f(de\034nitions)h(will)g(b)s(e)f(giv)m(en,)j(whic) m(h)e(will)g(b)s(e)f(used)h(when)g(sp)s(ecifying)f(the)h(syn-)382 2265 y(tax)k(of)g(the)h(rules:)382 2579 y Fd(h)p Fj(zone_name)7 b Fd(i)31 b Fl(::=)46 b(.string.)41 b Fd(h)p Fj(zone)7 b Fd(i)31 b Fl(::=)f Fd(h)p Fj(zone_name)7 b Fd(i)31 b Fl(|)g('ALL')382 2785 y Fd(h)p Fj(byteint)9 b Fd(i)30 b Fl(::=)46 b(0..255)382 2991 y Fd(h)p Fj(shortint)9 b Fd(i)30 b Fl(::=)46 b(0..65535)382 3197 y Fd(h)p Fj(int)9 b Fd(i)30 b Fl(::=)46 b(0..4294967295)382 3403 y Fd(h)p Fj(hexint)9 b Fd(i)31 b Fl(::=)46 b(00..FF)382 3609 y Fd(h)p Fj(b)-5 b(o)g(ol)9 b Fd(i)33 b Fl(::=)46 b('0')30 b(|)h('1')382 3814 y Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(byteint)9 b Fd(i)q Fl(.)p Fd(h)p Fj(byteint)g Fd(i)p Fl(.)p Fd(h)p Fj(byteint)g Fd(i)q Fl(.)p Fd(h)p Fj(byteint)g Fd(i)30 b(h)p Fj(mask)10 b Fd(i)447 3927 y Fl(|)91 b Fd(h)p Fj(name)32 b(of)g(machine)7 b Fd(i)382 4133 y(h)p Fj(mac_addr)-5 b(ess)7 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(hexint)9 b Fd(i)p Fl(:)p Fd(h)p Fj(hexint)g Fd(i)q Fl(:)p Fd(h)p Fj(hexint)g Fd(i)q Fl(:)p Fd(h)p Fj(hexint)g Fd(i)q Fl(:)p Fd(h)p Fj(hexint)g Fd(i)q Fl(:)p Fd(h)p Fj(hexint)g Fd(i)382 4339 y(h)p Fj(mask)h Fd(i)31 b Fl(::=)46 b('/')30 b(0..32)h(|)g Fd(h)p Fj(empty)8 b Fd(i)382 4545 y(h)p Fj(p)-5 b(ort_name)7 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(shortint)9 b Fd(i)30 b Fl(|)h Fd(h)p Fj(servic)-5 b(e_name)7 b Fd(i)382 4751 y(h)p Fj(p)-5 b(ort_r)g(ange)7 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(shortint)9 b Fd(i)o Fl(':')p Fd(h)p Fj(shortint)g Fd(i)382 4956 y(h)p Fj(p)-5 b(ort_opt)9 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(p)-5 b(ort_name)7 b Fd(i)32 b Fl(|)e Fd(h)p Fj(p)-5 b(ort_r)g(ange)7 b Fd(i)447 5069 y Fl(|)91 b Fd(h)p Fj(p)-5 b(ort_opt)9 b Fd(i)31 b Fl(',')g Fd(h)p Fj(p)-5 b(ort_opt)9 b Fd(i)382 5275 y(h)p Fj(p)-5 b(ort)9 b Fd(i)31 b Fl(::=)46 b('ALL')31 b(|)f Fd(h)p Fj(p)-5 b(ort_opt)9 b Fd(i)1854 5652 y Fl(8)p eop end %%Page: 9 12 TeXDict begin 9 11 bop 382 548 a Fd(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(byteint)9 b Fd(i)31 b Fl(|)f Fd(h)p Fj(icmp_name)7 b Fd(i)447 661 y Fl(|)91 b Fd(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)31 b Fl(',')g Fd(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)382 867 y(h)p Fj(icmp_name)-5 b(d_typ)g(e)7 b Fd(i)32 b Fl(::=)46 b('icmp-net-unreac)m(hable')35 b(|)30 b('icmp-host-unreac)m(hable')447 980 y(|)91 b('icmp-p)s (ort-unreac)m(hable')34 b(|)c('icmp-proto-unreac)m(hable')447 1093 y(|)91 b('icmp-net-prohibited')34 b(|)c('icmp-host-prohibited')382 1298 y Fd(h)p Fj(pr)-5 b(oto)g(c)g(ol)9 b Fd(i)33 b Fl(::=)46 b('ALL')31 b(|)g Fd(h)p Fj(byteint)9 b Fd(i)30 b Fl(|)g('icmp')i Fd(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)447 1411 y Fl(|)91 b('udp')31 b Fd(h)p Fj(p)-5 b(ort)9 b Fd(i)447 1524 y Fl(|)91 b('tcp')31 b Fd(h)p Fj(p)-5 b(ort)9 b Fd(i)382 1730 y(h)p Fj(sr)-5 b(c_dst_ip)6 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)r Fl('=>')p Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)382 1936 y(h)p Fj(p)-5 b(olicy)8 b Fd(i)31 b Fl(::=)46 b('A)m(CCEPT')33 b(|)d('REJECT')i(|)e('DR)m(OP') 447 2049 y(|)91 b('A)m(CCEPT_LOG')33 b(|)d('REJECT_NOLOG')j(|)d('DR)m (OP_NOLOG')447 2162 y(|)91 b('LOG')382 2367 y Fd(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(pr)-5 b(oto)g(c)g(ol)9 b Fd(i)33 b(h)p Fj(sr)-5 b(c_dst_ip)6 b Fd(i)382 2580 y Fl(A)43 b(rule)i(consists)e(of)h(an)g(action/p)s (olicy)h(and)f(a)g(set)g(of)f(matc)m(hes)i(whic)m(h)g(m)m(ust)g(b)s(e) 382 2693 y(ful\034lled)39 b(in)g(order)g(for)f(the)h(action/p)s(olicy)g (to)g(b)s(e)f(applied)i(to)e(the)h(connection.)66 b(If)382 2806 y(this)30 b(is)g(the)h(case,)f(it)h(is)f(said)g(that)h(the)g (rules)f Fj(matches)38 b Fl(the)31 b(connection.)523 2919 y(The)j Fe()c Fl(de\034nes)k(a)g(general)h(connection)g (matc)m(h)h(used)e(throughout)382 3032 y(the)29 b(con\034guration)j (\034les.)40 b(The)29 b(\034rst)g(argumen)m(t)i()g(matc)m (hes)f(connections)382 3145 y(of)f(this)h(t)m(yp)s(e.)40 b(If)29 b(the)h(proto)s(col)g(is)f(either)i Fe(tcp)d Fl(or)i Fe(udp)e Fl(then)i(the)g(p)s(ort)g(sp)s(eci\034es)f(the)382 3257 y(destination)34 b(p)s(ort.)48 b(If)32 b(the)h(proto)s(col)g(is)g Fe(icmp)d Fl(a)j(icmp)h(t)m(yp)s(e)e(is)h(required.)48 b(The)34 b(last)382 3370 y(argumen)m(t)29 b Fe()22 b Fl(sp)s(eci\034es)27 b(the)h(source)f(and)h(destination)h(ip)e (address)h(of)382 3483 y(the)38 b(connection,)k(i.e.)63 b(the)38 b(source)g(ip)g(address)g(m)m(ust)g(matc)m(h)h(the)g (initiator)g(of)e(the)382 3596 y(connection,)32 b(and)f(the)f (destination)i(for)e(the)h(endp)s(oin)m(t)h(of)e(the)g(connection.)382 3840 y Fk(6.2)112 b(Zone)38 b(de\034nition)382 4011 y Fl(T)-8 b(o)42 b(setup)f(a)g(zone,)k(sev)m(eral)c(parameters)i(are)e (required)h(in)f(order)h(to)f(iden)m(tify)h(the)382 4124 y(zone.)f(The)31 b(parameters)g(are)g(all)g(on)f(simple)h(form,)f(and)h (are)g(listed)g(b)s(elo)m(w.)382 4364 y Fm(NAME)91 b Fl(This)33 b(iden)m(ti\034es)h(the)f(name)g(of)f(the)g(zone.)48 b(The)33 b(name)g(m)m(ust)g(b)s(e)f(unique,)382 4477 y(and)37 b(m)m(ust)g(b)s(e)f(iden)m(tical)j(to)d(the)h(name)g(as)g(sp)s (eci\034ed)f(in)h(the)g(global)g(con\034guration)382 4590 y(\034le.)382 4703 y(Example:)k Fe(NAME=EXT)382 4943 y Fm(DEV)90 b Fl(This)33 b(parameter)i(sp)s(eci\034es)e(the)g(net) m(w)m(ork)i(in)m(terface)f(to)f(whic)m(h)h(the)f(zone)h(is)382 5056 y(connected.)382 5169 y(Example:)41 b Fe(DEV=eth0)1854 5652 y Fl(9)p eop end %%Page: 10 13 TeXDict begin 10 12 bop 382 548 a Fm(D)m(YNAMIC)91 b Fl(If)26 b(the)h(in)m(terface)h(as)e(sp)s(eci\034ed)h(b)m(y)g(the)g Fe(DEV)e Fl(parameter)k(obtains)e(its)382 661 y(ip)21 b(address)g(from)h(a)f(dhcp)g(serv)m(er,)j(or)d(can)h(ha)m(v)m(e)g(its) f(ip)g(address)g(c)m(hanged)i(dynamically)-8 b(,)382 774 y(D)m(YNAMIC)30 b(m)m(ust)h(b)s(e)f(enabled.)382 952 y Fd(h)p Fj(dynamic)5 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(b)-5 b(o)g(ol)9 b Fd(i)382 1142 y Fl(Example:)41 b Fe(DYNAMIC=0)382 1379 y Fm(DHCP_SER)-12 b(VER)90 b Fl(T)-8 b(o)27 b(sp)s(ecify)f(that)i(the)f(\034rew)m(all)h(also)f(acts)g(as)g (a)g(dhcp)g(serv)m(er,)382 1492 y(this)f(parameter)j(should)e(b)s(e)f (set)g(to)h(one,)h(in)f(order)g(for)f(dhcp)i(queries)e(to)h(b)s(e)f (accepted)382 1605 y(from)k(mac)m(hines)i(in)f(the)f(curren)m(t)i (zone.)382 1783 y Fd(h)p Fj(dhcp_server)10 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(b)-5 b(o)g(ol)9 b Fd(i)382 1973 y Fl(Example:)41 b Fe(DHCP_SERVER=1)382 2209 y Fm(GLOBAL)91 b Fl(The)24 b(global)h(parameter)h(sp)s(eci\034es)e(if)g(the)g(in)m (terface)i(connects)e(the)h(\034re-)382 2322 y(w)m(all)i(to)g(the)g(In) m(ternet.)40 b(If)26 b(the)h(in)m(terface)g(do)s(es)f(connect)i(the)f (\034rew)m(all)h(to)e(the)h(In)m(ternet)382 2435 y(then)k(global)g (should)g(b)s(e)f(set)g(to)g(one.)382 2614 y Fd(h)p Fj(glob)-5 b(al)9 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(b)-5 b(o)g(ol)9 b Fd(i)382 2804 y Fl(Example:)41 b Fe(GLOBAL=1)382 3030 y Fl(The)36 b(follo)m(wing)h(parameters)g(are)f(only)g(required)g(if)f (the)h(zone)g(is)g(sp)s(eci\034ed)g(as)f(non-)382 3142 y(dynamic,)c(that)g(is)f Fe(DYNAMIC=0)p Fl(.)382 3379 y Fm(IP)90 b Fl(The)24 b Fe(IP)f Fl(should)h(b)s(e)g(set)f(the)i (primary)f(ip)g(of)f(the)i(in)m(terface)g(of)e(the)h(curren)m(t)i (zone.)382 3492 y(Example:)41 b Fe(IP=1.2.3.4)382 3728 y Fm(NET)91 b Fl(Sp)s(eci\034es)28 b(the)g(address)g(of)g(the)g(net)m (w)m(ork)h(to)f(whic)m(h)h(this)f(zone)g(is)g(connected.)382 3841 y(Example:)41 b Fe(IP=1.2.3.2)382 4078 y Fm(MASK)91 b Fl(Sp)s(eci\034es)31 b(the)f(net)m(w)m(ork)i(mask)f(of)e(the)i (address)g(in)f(dotted)h(notation.)382 4191 y(Example:)41 b Fe(IP=255.255.255.2)o(52)382 4427 y Fm(BCAST)90 b Fl(Sp)s(eci\034es) 31 b(the)g(broadcast)g(address)g(of)e(the)i(net)m(w)m(ork)h(for)e(this) h(zone.)382 4540 y(Example:)41 b Fe(IP=1.2.3.6)382 4780 y Fk(6.3)112 b(Zone)38 b(access)382 4951 y Fl(The)45 b(access)f(rules)h(are)g(the)g(cen)m(tral)h(rules)f(in)g(the)g(zone.)84 b(These)45 b(de\034nes)g(access)382 5064 y(b)s(et)m(w)m(een)32 b(other)g(zones)f(and)g(the)h(\034rew)m(all)g(itself.)42 b(All)31 b(zone)g(access)g(rules)g(are)g(arra)m(ys,)382 5177 y(whic)m(h)e(are)f(pro)s(cessed)f(sequen)m(tially)-8 b(.)41 b(It)27 b(is)g(highly)h(recommended)i(to)e(ha)m(v)m(e)g(an)g Fj(c)-5 b(atch)382 5290 y(al)5 b(l)43 b Fl(rule)35 b(as)f(the)g(last)g (rule,)i(sp)s(ecifying)d(a)i(default)f(p)s(olicy)g(for)g(pac)m(k)m(ets) h(not)g(co)m(v)m(ered)382 5403 y(b)m(y)30 b(previous)h(rules.)1831 5652 y(10)p eop end %%Page: 11 14 TeXDict begin 11 13 bop 382 548 a Fm(6.3.1)103 b(Input)34 b(rules)382 720 y Fl(The)44 b(input)f(rules)h(con)m(trol)h(access)e (from)g(mac)m(hines)h(lo)s(cated)g(in)f(the)h(zone)g(to)f(the)382 832 y(\034rew)m(all)32 b(itself.)40 b(Input)31 b(rules)f(are)h(sp)s (eci\034ed)f(as)g(an)h(arra)m(y)g(named)g Fe(INPUT)p Fl(:)382 1009 y Fd(h)p Fj(input)9 b Fd(i)30 b Fl(::=)46 b Fd(h)p Fj(p)-5 b(olicy)8 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)382 1197 y Fl(The)22 b(p)s(olicy)f(de\034nes)h(whether)h(to)e (drop,)j(reject)e(or)f(accept)i(connections)f(that)g(matc)m(hes)382 1310 y(this)30 b(rule.)382 1550 y Fm(Example)382 1737 y Fe(INPUT[0]="ACCEP)o(T)48 b(tcp)53 b(25,80,443,22)c(0.0.0.0/0=>0.0.0) o(.0)o(/0)o(")382 1850 y(INPUT[1]="DROP)f(ALL)53 b(0.0.0.0/0=>0.0.)o (0.0)o(/0)o(")382 2038 y Fl(This)29 b(will)h(accept)h(only)e(h)m(ttp,)i (h)m(ttps,)f(sm)m(tp)h(\(mail)f(transfer\))g(and)f(ssh)g(access)h(to)f (the)382 2151 y(\034rew)m(all)38 b(itself.)59 b(An)m(y)37 b(other)g(pac)m(k)m(et)h(originating)h(from)e(the)g(zone)g(destined)g (to)g(the)382 2264 y(\034rew)m(all)32 b(itself)e(will)h(b)s(e)f (discarded.)382 2504 y Fm(6.3.2)103 b(Output)35 b(rules)382 2676 y Fl(The)30 b(output)h(rules)f(determines)g(access)g(from)g(the)g (\034rew)m(all)h(to)f(mac)m(hines)h(lo)s(cated)f(in)382 2788 y(the)h(zone.)41 b(Output)31 b(rules)g(are)f(sp)s(eci\034ed)h(as)f (an)g(arra)m(y)h(named)h Fe(FORWARD)p Fl(:)382 2965 y Fd(h)p Fj(output)9 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(p)-5 b(olicy)8 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)382 3153 y Fl(The)22 b(p)s(olicy)f(de\034nes)h(whether)h(to)e(drop,)j (reject)e(or)f(accept)i(connections)f(that)g(matc)m(hes)382 3266 y(this)30 b(rule.)382 3506 y Fm(Example)382 3693 y Fe(OUTPUT[0]="ACCE)o(PT)48 b(tcp)53 b(22)h(0.0.0.0/0=>0.0)o(.0)o(.0)o (/0)o(")382 3806 y(OUTPUT[1]="REJE)o(CT)48 b(ALL)53 b(0.0.0.0/0=>0.0.)o (0.)o(0/)o(0")382 3994 y Fl(This)34 b(will)g(allo)m(w)g(the)g(\034rew)m (all)i(only)d(to)h(initiate)h(ssh)e(comm)m(unication)j(to)e(mac)m (hines)382 4107 y(lo)s(cated)h(within)h(the)g(zone.)55 b(All)34 b(other)i(comm)m(unication)i(initiated)e(b)m(y)g(the)f (\034rew)m(all)382 4220 y(to)30 b(mac)m(hines)i(in)f(this)f(zone)h(is)f (prohibited,)i(and)f(pac)m(k)m(ets)g(are)g(blo)s(c)m(k)m(ed.)382 4460 y Fm(6.3.3)103 b(F)-9 b(orw)m(ard)35 b(rules)382 4632 y Fl(The)h(forw)m(ard)h(rules)f(restricts)g(access)g(from)f(mac)m (hines)j(lo)s(cated)e(in)g(other)g(zones)g(to)382 4744 y(this)30 b(zone.)41 b(F)-8 b(orw)m(ard)33 b(rules)d(are)h(sp)s (eci\034ed)f(as)g(an)h(arra)m(y)g(named)g Fe(FORWARD)p Fl(:)382 4921 y Fd(h)p Fj(forwar)-5 b(d)9 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(zone)7 b Fd(i)30 b(h)p Fj(p)-5 b(olicy)8 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)382 5109 y Fl(The)35 b(\034rst)g(argumen)m(t)h(sp)s(eci\034es)f(the)g (source)g(zone)g(of)f(the)h(connection.)56 b(The)35 b(p)s(olicy)382 5222 y(de\034nes)28 b(whether)h(to)f(drop,)h(reject)g(or)f(accept)g (connections)i(that)e(matc)m(hes)h(this)f(rule.)1831 5652 y(11)p eop end %%Page: 12 15 TeXDict begin 12 14 bop 382 548 a Fm(Example)382 694 y Fe(FORWARD[0]="ALL)48 b(ACCEPT)j(tcp)j(22)f(0.0.0.0/0=>0.0.)o(0.0)o (/0)o(")382 807 y(FORWARD[1]="DRO)o(P)48 b(ALL)53 b(0.0.0.0/0=>0.0.0)o (.0)o(/0)o(")382 953 y Fl(Mac)m(hines)29 b(lo)s(cated)g(in)f(other)h (zones)f(are)h(only)f(allo)m(w)m(ed)i(to)e(initiate)i(ssh)d(comm)m (unica-)382 1066 y(tion)f(to)f(mac)m(hines)i(lo)s(cated)f(in)g(this)f (zone.)40 b(An)m(y)25 b(other)h(comm)m(unication)j(initiated)d(b)m(y) 382 1179 y(mac)m(hines)36 b(in)e(zones)h(di\033eren)m(t)g(from)g(this)f (zone)h(to)g(mac)m(hines)g(in)g(the)g(presen)m(t)g(zone)382 1292 y(are)c(silen)m(tly)g(dropp)s(ed.)382 1524 y Fm(6.3.4)103 b(Reply)34 b(rules)382 1696 y Fl(Reply)24 b(rules)g(sp)s(eci\034es)g(a) g(sp)s(ecial)h(resp)s(onse)f(to)g(connection)i(attempts)f(to)f(the)h (\034rew)m(all)382 1809 y(itself,)37 b(b)s(efore)f(dropping)i(the)e (connection.)60 b(The)36 b(resp)s(onses)g(usually)g(mean)h(that)f(a)382 1922 y(p)s(ort)30 b(or)h(proto)s(col)g(is)f(not)g(a)m(v)-5 b(ailable)32 b(on)f(the)f(system.)382 2074 y Fd(h)p Fj(r)-5 b(eply)8 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(zone)7 b Fd(i)30 b(h)p Fj(icmp_typ)-5 b(e)7 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)447 2187 y Fl(|)91 b Fd(h)p Fj(zone)7 b Fd(i)31 b Fl('tcp-reset')g('tcp')g Fd(h)p Fj(p)-5 b(ort)9 b Fd(i)31 b(h)p Fj(sr)-5 b(c_dst_ip)6 b Fd(i)382 2350 y Fl(The)29 b(\034rst)g(argumen)m(t)i(sp)s(eci\034es)e(the)g(resp)s(onse)g(to)g (the)g(connection)i(attempt.)41 b(The)29 b(2.)382 2463 y(argumen)m(t)j(serv)m(es)e(as)g(conditions)i(of)e(the)g(rule.)41 b(A)30 b(sp)s(ecial)g('tcp-reset')i(can)e(b)s(e)g(used,)382 2575 y(only)g(if)g(the)h(proto)s(col)g(is)f(sp)s(eci\034ed)h(as)f(tcp.) 382 2808 y Fm(Example)382 2954 y Fe(REPLY_AUTH="EXT)48 b(tcp-reset)i(tcp)j(auth)g(0.0.0.0/0=>0.0.)o(0.)o(0/)o(0")382 3100 y Fl(This)26 b(example)h(sp)s(eci\034es)f(that)h(queries)f(to)h (the)f(auth)h(daemon)g(should)g(b)s(e)f(resp)s(onded)382 3213 y(b)m(y)36 b Fe(tcp-reset)p Fl(.)55 b(Man)m(y)36 b(services)g(on)h(the)f(In)m(ternet)i(mak)m(es)e(an)h(auth)g(request)f (on)382 3326 y(hosts)27 b(that)h(mak)m(es)g(use)g(of)f(the)h(services.) 40 b(The)28 b(\034rst)f(line)h(sp)s(eeds)g(this)f(pro)s(cess)g(up)h(b)m (y)382 3439 y(resetting)j(the)g(connection,)h(instead)f(of)f(silen)m (tly)h(dropping)g(pac)m(k)m(ets.)382 3671 y Fm(6.3.5)103 b(Limit)35 b(rules)382 3843 y Fl(Limit)c(rules)e(serv)m(es)h(as)f(an)h (supplemen)m(t)h(to)f(input)g(and)h(forw)m(ard)f(rules.)41 b(Lin)m(ux)30 b(rules)382 3956 y(allo)m(ws)35 b(only)g(limited)g (acceptance)h(of)e(pac)m(k)m(ets,)j(used)e(in)f(order)h(to)g(a)m(v)m (oid)h Fj(Denial)g(of)382 4069 y(servic)-5 b(e)39 b Fl(attac)m(ks.)i (The)31 b(rules)f(are)h(on)f(the)h(form)g Fe()p Fl(,)c(as)j(giv)m(en)h(b)s(elo)m(w.)382 4221 y Fd(h)p Fj(r)-5 b(ate)7 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(int)9 b Fd(i)29 b(h)p Fj(r)-5 b(ate_opt)9 b Fd(i)382 4410 y(h)p Fj(r)-5 b(ate_opt)9 b Fd(i)32 b Fl(::=)46 b('/second')31 b(|)f('/min)m(ute')i(|)f('/hour')g(|)f('/da)m(y')i(|)e Fd(h)p Fj(empty)8 b Fd(i)382 4599 y(h)p Fj(burst)h Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(int)9 b Fd(i)382 4789 y(h)p Fj(limit)g Fd(i)29 b Fl(::=)46 b Fd(h)p Fj(zone)7 b Fd(i)31 b(h)p Fj(p)-5 b(olicy)8 b Fd(i)32 b(h)p Fj(r)-5 b(ate)7 b Fd(i)31 b(h)p Fj(burst)9 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)382 4951 y Fl(The)28 b Fe()d Fl(and)j Fe()c Fl(sp)s(eci\034es)k(the)g(maxim)m(um)h(a)m(v)m(erage)g(matc)m(hing)h (rate,)382 5064 y(and)i(the)g(initial)g(pac)m(k)m(ets)h(to)f(matc)m(h.) 45 b(The)33 b Fe()28 b Fl(sp)s(eci\034es)k(the)g(source)g(zone)g (for)382 5177 y(pac)m(k)m(ets)26 b(that)f(can)h(b)s(e)e(matc)m(hed)j(b) m(y)e(this)g(rule.)39 b(If)24 b(the)i(source)f(zone)h(equals)e(that)i (zone)382 5290 y(for)37 b(whic)m(h)i(the)f(rule)f(is)g(sp)s(eci\034ed,) j(then)e(the)g(rule)g(is)f(applied)h(for)f(requests)h(to)f(the)382 5403 y(\034rew)m(all)32 b(itself.)1831 5652 y(12)p eop end %%Page: 13 16 TeXDict begin 13 15 bop 382 548 a Fm(Example)382 695 y Fe(LIMIT_PING="EXT)48 b(DROP)k(1/second)f(3)j(icmp)f(echo-request)c (\\)382 808 y(0.0.0.0/0=>0.0.)o(0.)o(0/)o(0")382 955 y Fl(This)38 b(example)h(will)f(drop)h(ping's)f(arriving)h(faster)f (than)g(one)h(p)s(er)e(second,)k(with)d(a)382 1068 y(maxim)m(um)32 b(of)e(three.)382 1304 y Fk(6.4)112 b(Net)m(w)m(ork)36 b(address)j(translation)f(rules)382 1475 y Fl(The)32 b(net)m(w)m(ork)h(address)f(translation)h(rules)e(are)h(used)g(to)g (alter)g(either)g(the)g(source)g(or)382 1588 y(the)37 b(destination)g(of)f(a)h(pac)m(k)m(et.)60 b(This)36 b(can)h(b)s(e)f (used)h(to)f(redirect)i(requests)e(and)h(for)382 1701 y(masquerading.)382 1933 y Fm(6.4.1)103 b(Redirect)382 2105 y Fl(Redirect)30 b(rules)f(can)g(alter)h(the)g(destination)g(of)f (connection)i(attempts.)41 b(These)29 b(rules)382 2218 y(only)e(apply)g(pac)m(k)m(ets)h(originating)h(from)e(the)g(curren)m(t) h(zone.)40 b(Redirect)28 b(rules)f(are)g(sets)382 2331 y(of)j(rules)g(on)h(the)g(form)f Fe(redirect)d Fl(as)j(giv)m(en)h(b)s (elo)m(w.)382 2484 y Fd(h)p Fj(addr)-5 b(ess_opt)9 b Fd(i)32 b Fl(::=)46 b(',')30 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(addr)-5 b(ess_opt)9 b Fd(i)447 2597 y Fl(|)91 b Fd(h)p Fj(empty)8 b Fd(i)382 2786 y(h)p Fj(r)-5 b(e)g(dir_dest)9 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(addr)-5 b(ess_opt)9 b Fd(i)382 2976 y(h)p Fj(r)-5 b(e)g(dir)g(e)g(ct)9 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)31 b(h)p Fj(r)-5 b(e)g(dir_dest)9 b Fd(i)32 b(h)p Fj(p)-5 b(ort)9 b Fd(i)382 3140 y Fl(If)41 b(pac)m(k)m(ets)i(originating)g(from)f(the)h(curren)m (t)g(zone)g(matc)m(hes)g Fe()p Fl(,)d(then)382 3253 y(the)29 b(destination)h(of)f(the)g(pac)m(k)m(ets)h(are)f(c)m (hanged)i(to)e(the)g(destination)h(as)f(sp)s(eci\034ed)g(b)m(y)382 3365 y Fe()49 b()p Fl(.)36 b(If)26 b(a)h(range)h(of)e(ip)h(addresses)g(is)f(sp)s(eci\034ed)h(for)g(the)g (new)382 3478 y(destination,)g(then)e(redirection)h(will)g(b)s(e)e (done)h(to)g(eac)m(h)h(ip)e(in)h(a)g(round)g(robin)g(fashion.)382 3591 y(This)30 b(is)g(often)h(used)f(to)h(load)g(balance)g(serv)m(ers.) 382 3824 y Fm(Example)382 3971 y Fe(REDIRECT_SSH="t)o(cp)48 b(:22)53 b(10.0.0.1:22")382 4118 y Fl(This)30 b(will)h(redirect)h(an)m (y)e(ssh)g(queries)g(to)h(b)s(e)f(redirect)h(to)g(address)f(10.0.0.1.) 382 4350 y Fm(6.4.2)103 b(Masquerading/SNA)-9 b(T)382 4522 y Fl(Masquerading)37 b(is)f(used)g(when)h(no)f(public)h(net)m(w)m (ork)h(is)e(a)m(v)-5 b(ailable.)59 b(It)36 b(c)m(hanges)h(the)382 4635 y(source)f(ip)g(and)h(source)f(p)s(ort)g(of)g(an)m(y)g(pac)m(k)m (et)h(coming)g(from)f(this)g(zone.)58 b(The)36 b(rules)382 4748 y(are)31 b(sets)e(on)i(the)g(form)f Fe()d Fl(as)j(giv)m(en)i(b)s(elo)m(w.)382 4901 y Fd(h)p Fj(snat)9 b Fd(i)30 b Fl(::=)46 b(\()30 b Fd(h)p Fj(zone)j(name)7 b Fd(i)30 b Fl(|)h Fd(h)p Fj(ip)6 b Fd(i)30 b Fl(\))g Fd(h)p Fj(pr)-5 b(oto_p)g(ort_ip)6 b Fd(i)382 5064 y Fl(The)25 b Fe()22 b Fl(sp)s(eci\034es)i(the)g (destination)i(zone)e(of)g(the)h(pac)m(k)m(ets.)39 b(All)24 b(pac)m(k)m(ets)382 5177 y(originating)g(from)f(the)g(curren)m(t)i (zone)e(to)m(w)m(ard)i(the)e(sp)s(eci\034ed)g(zone)g(are)g (masqueraded,)382 5290 y(and)42 b(will)f(ha)m(v)m(e)h(their)g(source)g (address)f(c)m(hanged)i(to)e(the)h(ip)f(address)h(of)e(the)i(zone)382 5403 y(sp)s(eci\034ed,)31 b(in)f(a)g(round)i(robin)f(manner.)1831 5652 y(13)p eop end %%Page: 14 17 TeXDict begin 14 16 bop 382 548 a Fm(Example)382 732 y Fe(SNAT[0]="EXT)49 b(ALL)k(0.0.0.0/0=>0.0.)o(0.)o(0/0)o(")523 916 y Fl(In)43 b(this)g(example,)48 b(all)43 b(pac)m(k)m(ets)i(send)e (from)g(the)h(curren)m(t)h(zone)f(to)f(zone)h Fe(EXT)382 1029 y Fl(will)35 b(b)s(e)g(masqueraded,)i(and)e(the)g(source)g(of)g (the)g(pac)m(k)m(ets)h(will)f(b)s(e)g(c)m(hanged)h(to)f(the)382 1142 y(ip)i(of)g(zone)g Fe(EXT)p Fl(.)f(The)h(source)h(p)s(orts)e(will) i(b)s(e)e(c)m(hanged)j(to)e(b)s(e)g(with)g(in)g(the)h(range)382 1255 y Fc([32768)23 b Fd(\000)d Fc(65535])p Fl(.)382 1497 y Fk(6.5)112 b(Miscellaneous)40 b(rules)382 1669 y Fm(6.5.1)103 b(P)m(ac)m(k)m(et)36 b(marking)382 1841 y Fl(P)m(ac)m(k)m(et)28 b(marking)f(is)f(used)g(to)g(mark)g(pac)m(k)m (ets)i(going)e(through)i(the)e(\034rew)m(all.)41 b(This)26 b(can)382 1954 y(b)s(e)k(used)g(b)m(y)h(external)g(programs)g(suc)m(h)g (as)f(tra\036c)h(shaping.)523 2067 y(Rules)41 b(for)h(marking)h(is)e (sp)s(eci\034ed)i(through)g(an)f(arra)m(y)h Fe(MARK)p Fl(.)d(The)i(syn)m(tax)g(of)382 2179 y(mark)30 b(rules)h(are)g(sp)s (eci\034ed)f(b)s(elo)m(w)h(as)f Fe()p Fl(.)382 2377 y Fd(h)p Fj(mark_value)7 b Fd(i)33 b Fl(::=)46 b Fd(h)p Fj(int)9 b Fd(i)382 2581 y(h)p Fj(mark)h Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(zone)7 b Fd(i)31 b(h)p Fj(mark_value)7 b Fd(i)32 b(h)p Fj(pr)-5 b(oto_ip)6 b Fd(i)523 2789 y Fl(P)m(ac)m(k)m(ets)28 b(originating)g(from)e(the)g(curren)m(t)i(zone)e (destined)h(for)f(the)g(sp)s(eci\034ed)h(zone,)382 2902 y(and)21 b(that)f(matc)m(hes)i(the)f Fe(proto_ip)16 b Fl(are)21 b(mark)m(ed)g(with)g(the)g(v)-5 b(alue)20 b Fe()p Fl(.)382 3142 y Fm(Example)382 3326 y Fe(MARK[0]="ALL)49 b(1)54 b(tcp)f(ALL)g(0.0.0.0/0=>0.0.0)o(.0)o(/0)o (")382 3510 y Fl(This)37 b(rule)h(will)g(mark)f(an)m(y)h(pac)m(k)m(ets) g(lea)m(ving)g(the)g(curren)m(t)g(zone)g(with)g(mark)f(v)-5 b(alue)382 3623 y('1'.)382 3862 y Fm(6.5.2)103 b(T)-9 b(ra\036c)35 b(monitoring)382 4034 y Fl(This)h(rule)h(is)f(used)h(to)f (monitor)i(tra\036c)f(going)h(in)m(to)f(or)g(lea)m(ving)g(the)g(curren) m(t)h(zone.)382 4147 y(Monitored)31 b(pac)m(k)m(ets)h(are)e(logged)i (to)e(the)h(system)f(log)g(for)g(later)h(insp)s(ection.)523 4260 y(Monitoring)38 b(is)f(done)h(on)f(a)g(p)s(er)g(ip)g(basis.)61 b(Only)37 b(one)g(en)m(try)h(can)g(exist)e(and)i(is)382 4372 y(called)31 b Fe(WATCH_IP)p Fl(.)c(The)j(grammar)i(is)e(sp)s (eci\034ed)h(as)f Fe()p Fl(.)382 4570 y Fd(h)p Fj(watch_ip)6 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(watch_ip)6 b Fd(i)31 b Fl(|)f Fd(h)p Fj(empty)8 b Fd(i)382 4809 y Fm(Example)382 4993 y Fe(WATCH_IP=''10.0)o(.0)o(.1)48 b(10.0.0.2'')382 5177 y Fl(An)m(y)38 b(pac)m(k)m(et)h(going)g(in)m(to)f(or)h(lea)m(ving)f (the)h(curren)m(t)g(zone)g(either)f(destined)h(or)f(orig-)382 5290 y(inating)e(from)g(ip)g(address)f Fe(10.0.0.1)d Fl(or)k(ip)g(address)f Fe(10.0.0.2)d Fl(are)k(logged)g(to)382 5403 y(the)31 b(system)e(log.)1831 5652 y(14)p eop end %%Page: 15 18 TeXDict begin 15 17 bop 382 548 a Fm(6.5.3)103 b(Den)m(ying)34 b(comm)m(unication)g(to)h(MA)m(C)g(addresses)382 720 y Fl(Comm)m(unication)25 b(with)d(mac)m(hines)i(ha)m(ving)e(a)g(sp)s (eci\034c)g(MA)m(C)g(address)g(can)h(b)s(e)e(prohib-)382 832 y(ited.)39 b(Due)24 b(to)h(the)f(nature)i(of)d(Ethernet,)28 b(only)c(pac)m(k)m(ets)h(receiv)m(ed)h(from)e(the)h(o\033ending)382 945 y(mac)m(hine)32 b(can)f(b)s(e)f(prohibited.)523 1058 y(T)-8 b(o)21 b(prohibit)h(comm)m(unication)h(from)d(a)h(list)f(of)g (MA)m(C)g(addresses,)j(a)d(single)h(v)-5 b(ariable)382 1171 y Fe(MAC_DROP)26 b Fl(is)k(used.)41 b(The)31 b(grammar)g(is)f(sp)s (eci\034ed)h(as)f Fe(mac_drop)c Fl(b)s(elo)m(w.)382 1359 y Fd(h)p Fj(mac_dr)-5 b(op)6 b Fd(i)32 b Fl(::=)46 b Fd(h)p Fj(mac_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(mac_dr)-5 b(op)6 b Fd(i)32 b Fl(|)e Fd(h)p Fj(empty)8 b Fd(i)382 1597 y Fm(Example)382 1774 y Fe(MAC_DROP=''12:2)o(3:)o(34)o(:4)o(5:)o (56:)o(67)o('')382 1950 y Fl(This)22 b(will)g(drop)g(all)g(pac)m(k)m (ets)h(originating)g(from)f(the)g(in)m(ternal)i(zone)e(from)g(the)g (mac)m(hine)382 2063 y(with)31 b(MA)m(C)f(address)h Fe(12:23:34:45:56)o (:6)o(7)p Fl(.)382 2301 y Fm(6.5.4)103 b(Den)m(ying)34 b(comm)m(unication)g(to)h(IP)f(addresses)382 2472 y Fl(T)-8 b(o)30 b(den)m(y)g(comm)m(unication)i(to)e(and)g(from)f(a)g(mac)m(hine) i(in)f(the)g(zone,)g(it)f(is)g(p)s(ossible)g(to)382 2585 y(sp)s(ecify)g(a)i(list)f(of)g(ip)g(addresses)h(whose)f(pac)m(k)m(ets)i (are)e(to)h(b)s(e)f(dropp)s(ed.)523 2698 y(This)43 b(is)g(sp)s (eci\034ed)h(b)m(y)g(the)f(v)-5 b(ariable)45 b Fe(IP_DROP)p Fl(.)40 b(The)k(grammar)g(is)f(sp)s(eci\034ed)382 2811 y(b)s(elo)m(w)31 b(as)f Fe()p Fl(.)382 2999 y Fd(h)p Fj(ip_dr)-5 b(op_alt)9 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(ip_dr)-5 b(op)6 b Fd(i)382 3200 y(h)p Fj(ip_dr)-5 b(op)6 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_dr)-5 b(op_alt)9 b Fd(i)31 b Fl(|)g Fd(h)p Fj(empty)8 b Fd(i)382 3438 y Fm(Example)382 3615 y Fe(IP_DROP=''10.0.)o(0.)o(10)o('')382 3791 y Fl(This)40 b(will)g(drop)g(all)g(comm)m(unication)j(to)c(and)h(from)g(a)g(mac)m (hine)h(with)g(ip)e(address)382 3904 y Fe(10.0.0.10)p Fl(.)382 4142 y Fm(6.5.5)103 b(Clearing)35 b(ECN)g(bits)f(from)g(pac)m (k)m(ets)382 4313 y Fl(Eexplicit)29 b(congestion)h(noti\034cation,)g (RF)m(C3168,)g(w)m(as)f(de\034ned)g(as)f(an)g(in)m(ternet)i(stan-)382 4426 y(dard)35 b(in)g(Septem)m(b)s(er)i(2001.)54 b(Unfortunatly)35 b(man)m(y)h(serv)m(ers)f(still)f(drops)h(all)g(pac)m(k)m(ets)382 4539 y(with)42 b(the)g(ECN)g(bits)f(set.)74 b(As)41 b(a)h(w)m (ork-arround)h(for)f(this)f(problem,)46 b(this)c(option)382 4652 y(allo)m(ws)30 b(the)f(sp)s(eci\034cation)h(of)e(a)h(list)g(of)g (serv)m(ers)g(that)g(do)s(es)g(not)g(accept)h(pac)m(k)m(ets)g(with)382 4765 y(the)h(ECN)f(bits)h(set,)f(and)h(clears)f(the)h(bits.)523 4878 y(The)21 b(list)f(of)g(serv)m(ers)h(is)f(sp)s(eci\034ed)h(b)m(y)f (the)h(v)-5 b(ariable)21 b Fe(ECN_REMOVE)p Fl(.)16 b(The)21 b(grammar)382 4991 y(is)30 b(sp)s(eci\034ed)g(b)s(elo)m(w)i(as)e Fe()p Fl(.)382 5179 y Fd(h)p Fj(ip_dr)-5 b(op_alt)9 b Fd(i)31 b Fl(::=)46 b Fd(h)p Fj(ip_addr)-5 b(ess)7 b Fd(i)32 b(h)p Fj(ip_dr)-5 b(op)6 b Fd(i)382 5380 y(h)p Fj(e)-5 b(cn_r)g(emove)7 b Fd(i)34 b Fl(::=)46 b Fd(h)p Fj(ip_dr)-5 b(op_alt)9 b Fd(i)31 b Fl(|)f Fd(h)p Fj(empty)8 b Fd(i)1831 5652 y Fl(15)p eop end %%Page: 16 19 TeXDict begin 16 18 bop 382 548 a Fm(Example)382 696 y Fe(ECN_REMOVE=''10)o(.0)o(.0)o(.1)o(0')o(')382 845 y Fl(This)31 b(will)h(strip)f(o\033)g(the)h(ECN)f(bits)g(in)h(all)f (pac)m(k)m(ets)h(destined)g(to)f(the)h(mac)m(hine)h(with)382 958 y(ip)d(address)h Fe(10.0.0.10)p Fl(.)382 1237 y Fn(7)131 b(Example)43 b(setup)382 1440 y Fl(When)36 b(FIAIF)e(is)i(started,)h (it)f(reads)g Fe(/etc/fiaif/fiai)o(f.)o(con)o(f)p Fl(.)50 b(This)36 b(is)f(the)382 1553 y(global)24 b(con\034guration)h(\034le.) 38 b(It)22 b(de\034nes)i(the)f(zones)g(a)m(v)-5 b(ailable,)26 b(and)d(a)g(n)m(um)m(b)s(er)h(of)f(other)382 1665 y(global)28 b(settings,)f(suc)m(h)h(as)e Fj(typ)-5 b(e)30 b(of)f(servic)-5 b(e)35 b Fl(\(TOS\))28 b(settings,)g(references)f(to)g(reserv)m(ed)382 1778 y(and)k(priv)-5 b(ate)31 b(net)m(w)m(orks.)523 1891 y(The)h(default)h(\(the)f(sample)h(con\034guration)h(\034les,)e(see)g (app)s(endix)g(B)g(on)g(page)g(20\))382 2004 y(sets)45 b(up)g(an)h(external)g(zone)g(EXT,)g(whic)m(h)h(is)e(y)m(our)h(In)m (ternet)h(connection.)87 b(T)-8 b(w)m(o)382 2117 y(additional)39 b(zone)e(con\034guration)j(\034les)d(are)g(pro)m(vided:)56 b(an)37 b(in)m(ternal)i(zone,)h Fj(INT)p Fl(,)c(to)382 2230 y(describ)s(e)28 b(y)m(our)g(priv)-5 b(ate)28 b(net)m(w)m(ork,)i (and)e(a)g(demilitarized)h(zone,)g Fj(DMZ)p Fl(,)f(to)g(describ)s(e)f (a)382 2343 y(zone)f(in)f(whic)m(h)i(serv)m(ers)e(accessable)h(from)g (the)f(in)m(ternet)i(are)f(lo)s(cated.)39 b(In)25 b(the)h(default)382 2456 y(con\034guration)32 b(neither)g(are)e(used.)382 2689 y Fm(The)35 b(default)g(setup)g(of)f(the)h(External)g(zone)518 2837 y Fd(\017)46 b Fl(A)m(ccepts)31 b(dns)f(queries,)h(ssh,)f(h)m (ttp,)h(h)m(ttps)g(and)g(icmp-ping.)518 3009 y Fd(\017)46 b Fl(Limits)31 b(ping)g(to)g(1)f(p)s(er)g(sec,)g(with)h(a)g(start-v)-5 b(alue)31 b(of)f(3.)518 3181 y Fd(\017)46 b Fl(Close)31 b(comm)m(unication)i(with)e Fj(TCP-RESET)41 b Fl(on)31 b(authorization)h(requests.)382 3414 y Fm(The)j(default)g(setup)g(of)f (the)h(in)m(ternal)g(zone)518 3562 y Fd(\017)46 b Fl(Allo)m(ws)31 b(all)g(connections)g(from)g(this)f(zone)h(to)f(the)h(\034rew)m(all.) 518 3734 y Fd(\017)46 b Fl(Redirects)31 b(all)f(h)m(ttp)i(requests)e (to)g(a)h(transparen)m(t)h(pro)m(xy)-8 b(.)518 3906 y Fd(\017)46 b Fl(A)m(dds)26 b(Masquerading/NA)-8 b(T)26 b(for)f(all)h(connections)h(going)f(out)f(on)h(the)g(external)609 4019 y(in)m(terface.)518 4191 y Fd(\017)46 b Fl(Disallo)m(ws)35 b(an)m(y)g(new)g(pac)m(k)m(ets)h(from)f(an)m(y)f(other)i(zones)e (\(already)i(established)609 4304 y(connections)c(are)f(automatically)h (let)e(though\))382 4536 y Fm(The)35 b(default)g(setup)g(of)f(the)h (demilitarized)g(zone)518 4685 y Fd(\017)46 b Fl(A)m(ccept)31 b(www)g(and)g(h)m(ttps)g(requests)f(from)h(the)f(external)h(zone)g (\(In)m(ternet\).)518 4857 y Fd(\017)46 b Fl(No)35 b(comm)m(unication)j (with)d(the)h(\034rew)m(all)g(itself)f(is)g(allo)m(w)m(ed.)56 b(The)36 b(idea)f(b)s(eing)609 4970 y(that)26 b(a)f(crac)m(k)m(er's)i (gaining)g(access)e(to)g(a)h(mac)m(hine)h(in)e(the)h(DMZ,)f(do)s(es)g (not)h(p)s(ose)609 5083 y(a)31 b(securit)m(y)g(risk)e(for)h(an)m(y)h (other)g(zones)g(or)f(for)g(the)h(\034rew)m(all)h(itself.)518 5255 y Fd(\017)46 b Fl(A)m(ccept)24 b(only)f(ssh)g(from)g(the)h(in)m (ternal)g(zone.)39 b(This)23 b(w)m(a)m(y)h(mac)m(hines)h(in)e(the)h (DMZ)609 5368 y(can)31 b(b)s(e)f(administered.)1831 5652 y(16)p eop end %%Page: 17 20 TeXDict begin 17 19 bop 382 548 a Fn(8)131 b(Related)43 b(w)l(ork)382 751 y Fl(Man)m(y)29 b(to)s(ols)g(exists)f(to)h(help)g (setup)h(a)e(\034rew)m(all,)j(and)f(create)g(the)f(rules)g(necessary)g (for)382 864 y(Lin)m(ux.)41 b(In)30 b(general,)i(these)e(to)s(ols)g (can)h(b)s(e)f(categorized)i(in)m(to)g(t)m(w)m(o)f(ma)5 b(jor)31 b(categories:)382 1076 y Fm(Sp)s(eci\034c)j(to)s(ols:)45 b Fl(Man)m(y)31 b(\034rew)m(all)g(scripts)f(help)h(the)f(user)g(to)g (setup)g(a)g(\034rew)m(all)i(for)d(a)609 1189 y(sp)s(ecial)36 b(purp)s(ose.)57 b(These)37 b(to)s(ols)e(con)m(tain)j(no)e(or)g(v)m (ery)g(little)g(lev)m(el)h(of)f(con\034g-)609 1302 y(uration,)h(as)e (they)g(are)g(made)g(with)g(a)g(simple)g(purp)s(ose)g(in)g(mind.)55 b(Examples)609 1415 y(are)37 b(scripts)g(that)h(sets)e(up)h(a)g (masquerading)h(\034rew)m(all)h(with)e(only)g(one)g(in)m(ter-)609 1528 y(nal)d(net)m(w)m(ork.)53 b(Con\034guration)36 b(is)d(mainly)h (done)h(b)m(y)f(c)m(hanging)h(in)f(the)g(source)609 1641 y(co)s(de)28 b(\(usually)g(accompanied)h(with)g(go)s(o)s(d)e(commen)m (ts)i(of)e(where)i(and)f(what)g(to)609 1754 y(c)m(hange\).)42 b(These)29 b(scripts)f(are)h(usually)g(targeted)g(for)g(the)g(mass)f (public,)i(where)609 1867 y(a)g(\034rew)m(all)i(protects)f(a)g(single)f (home)h(LAN)f(from)g(attac)m(ks)h(from)g(the)f(In)m(ternet.)382 2054 y Fm(Generic)k(to)s(ols:)46 b Fl(T)-8 b(o)s(ols)31 b(that)g(are)g(extensible)g(and)h(not)f(limited)g(to)g(a)g(sp)s (eci\034c)g(net-)609 2167 y(w)m(ork)f(setup)f(fall)h(in)m(to)g(this)f (category)-8 b(.)41 b(Setup)30 b(is)f(usually)g(done)h(with)g(no)f(mo)s (d-)609 2280 y(i\034cations)k(to)f(the)g(source)g(co)s(de,)h(and)f (users)f(are)i(required)f(to)g(ha)m(v)m(e)h(extensiv)m(e)609 2393 y(kno)m(wledge)f(of)e(net)m(w)m(ork)i(setup)f(and)f(securit)m(y)h (issues.)382 2606 y(Hundreds)26 b(of)f(scripts)g(that)h(fall)f(in)m(to) h(the)g Fj(sp)-5 b(e)g(ci\034c)29 b(to)-5 b(ols)33 b Fl(exists,)26 b(while)g(only)f(v)m(ery)h(few)382 2718 y(are)31 b(generic)g(to)s(ols.)40 b(Of)30 b(these)h(can)f(b)s(e)g (named:)382 2931 y Fm(Shorew)m(all:)45 b Fl(Shorew)m(all[3)r(])32 b(seems)f(to)g(b)s(e)g(the)g(most)h(attractiv)m(e)h(alternativ)m(e)g (to)e(FI-)609 3044 y(AIF.)36 b(The)g(term)h(zones)f(are)h(also)f(used)g (in)h(this)f(pro)s(duct.)59 b(Con\034guration)38 b(is)609 3157 y(said)32 b(the)g(b)s(e)g(somewhat)h(more)f(di\036cult)h(than)g (FIAIF,)e(and)h(con\034guration)i(is)609 3270 y(not)d(split)f(in)m(to)i (zone)f(con\034guration)h(\034les.)382 3457 y Fm(Mandrak)m(e:)47 b(Multi)35 b(Net)m(w)m(ork)g(Firew)m(all:)46 b Fl(This)g(commercial)i (\034rew)m(all[6)r(])e(sup-)609 3570 y(p)s(orts)29 b(de\034nitions)h (of)f(m)m(ultiple)i(securit)m(y)f(zones,)f(supp)s(ort)g(for)g(virtual)h (priv)-5 b(ate)609 3683 y(net)m(w)m(orks)37 b(\(VPN\),)g (con\034gurable)g(through)g(a)f(w)m(eb)h(in)m(terface.)58 b(The)37 b(pro)s(duct)609 3796 y(is)g(commercial,)j(and)d(costs)g(in)g (the)g(area)h(of)e($2000.)61 b(As)36 b(Mandrak)m(esoft)i(has)609 3909 y(\034led)e(for)f(bankruptcy)-8 b(,)38 b(the)d(stabilit)m(y)h(in)g (using)f(this)g(commercial)i(\034rew)m(all)g(is)609 4022 y(somewhat)32 b(questionable.)1831 5652 y(17)p eop end %%Page: 18 21 TeXDict begin 18 20 bop 382 548 a Fn(9)131 b(Status)382 751 y Fl(The)21 b(\034rew)m(all)i(setup)e(to)s(ol)g(describ)s(ed)h(in)f (this)g(pap)s(er)g(is)g(under)h(constan)m(t)g(dev)m(elopmen)m(t.)382 864 y(It)29 b(has)g(b)s(een)g(dev)m(elop)s(ed)h(under)g(the)f(terms)h (of)e(the)i(Gn)m(u)f(public)h(license,)g(and)g(is)f(free)382 977 y(of)d(use)h(for)f(ev)m(ery)m(one.)41 b(Qualit)m(y)28 b(is)e(assured)h(through)h(man)m(y)f(users,)h(who)f(rep)s(ort)g(bac)m (k)382 1090 y(problems)34 b(and)f(incon)m(v)m(eniences.)51 b(As)32 b(of)g(no)m(w)i(the)g(\034rew)m(all)g(is)f(b)s(eing)g(bundled)h (with)382 1202 y(the)g(P)m(olish)g(Lin)m(ux)g(distribution,)i(and)d(is) g(curren)m(tly)i(b)s(eing)f(tested)f(for)g(inclusion)h(in)382 1315 y(Debian[1)q(].)382 1602 y Fn(10)131 b(F)-11 b(urther)44 b(w)l(ork)382 1805 y Fl(Con\034guring)27 b(b)m(y)e(c)m(hanging)j (directly)d(in)h(the)g(con\034guration)h(\034les)e(using)h(an)f(editor) h(re-)382 1918 y(quires)21 b(the)h(users)f(sp)s(eci\034c)h(kno)m (wledge)h(of)e(rule)h(and)g(con\034guration)i(syn)m(tax.)37 b(Creating)382 2031 y(a)30 b(user)h(in)m(terface)g(\(graphical)h(or)f (text)f(mo)s(de\),)h(migh)m(t)g(eliminate)h(suc)m(h)f(problems.)1831 5652 y(18)p eop end %%Page: 19 22 TeXDict begin 19 21 bop 382 548 a Fn(References)382 751 y Fl([1])46 b(Debian.)523 864 y(h)m(ttp://www.debian.org.)382 1051 y([2])g(Net\034lter.)523 1164 y(h)m(ttp://www.net\034lter.org.)382 1352 y([3])g(Shorew)m(all.)523 1465 y(h)m(ttp://www.shorew)m(all.net.) 382 1652 y([4])g(Osk)-5 b(ar)30 b(Andreasson.)41 b(Iptables)30 b(tutorial.)523 1765 y(h)m(ttp://iptables-tutorial.frozen)m (tux.net/ipt)q(ables-tut)q(orial.)q(h)m(tm)q(l.)382 1953 y([5])46 b(Anders)30 b(F)-8 b(ugmann.)42 b(Fiaif)30 b(is)g(an)h(in)m (telligen)m(t)i(\034rew)m(all.)523 2066 y(h)m(ttp://www.\034aif.net.) 382 2254 y([6])46 b(Mandrak)m(esoft.)41 b(Multi)30 b(net)m(w)m(ork)i (\034rew)m(all.)523 2366 y(h)m(ttp://www.mandrak)m(esoft.com/pro)s (ducts/mnf.)1831 5652 y(19)p eop end %%Page: 20 23 TeXDict begin 20 22 bop 382 548 a Fn(A)132 b(Usage)382 751 y Fl(FIAIF)22 b(installs)i(a)g(program)h(in)f Fe(/etc/init.d/fi)o (ai)o(f)p Fl(,)19 b(whic)m(h)25 b(is)e(used)h(to)g(con)m(trol)382 864 y(the)41 b(\034rew)m(all.)74 b(The)41 b(program)h(should)f(only)g (b)s(e)g(started)g(b)m(y)g(the)h Fj(r)-5 b(o)g(ot)50 b Fl(user.)72 b(The)382 977 y(program)31 b(accepts)g(the)g(follo)m (wing)h(argumen)m(ts.)382 1189 y Fb(start)p Fm(:)43 b Fl(This)23 b(will)h(sa)m(v)m(e)f(the)h(curren)m(t)h(\034rew)m(all)g (rules,)f(and)g(deplo)m(ys)g(the)f(new)h(\034rew)m(all)609 1302 y(as)30 b(describ)s(ed)h(b)m(y)g(the)f(con\034guration)j(\034les.) 382 1490 y Fb(stop)p Fm(:)43 b Fl(Remo)m(v)m(e)28 b(all)e(\034rew)m (all)i(rules,)g(and)e(restores)h(previously)f(sa)m(v)m(ed)h(\034rew)m (all)h(rules.)609 1603 y(This)j(can)f(only)h(b)s(e)f(used)g(if)g(the)h (\034rew)m(all)h(has)e(b)s(een)g(previously)h(started.)382 1790 y Fb(force-reload)p Fm(:)40 b Fl(This)20 b(option)h(is)f(the)h (same)f(as)g(start,)j(although)f(it)e(can)h(b)s(e)f(in)m(v)m(ok)m(ed) 609 1903 y(without)32 b(stopping)f(the)f(\034rew)m(all)i(\034rst.)382 2091 y Fb(restart)p Fm(:)42 b Fl(This)24 b(option)h(stops)f(and)h(then) f(restarts)h(the)f(\034rew)m(all.)40 b(Refer)24 b(to)g(starting)609 2204 y(and)31 b(stopping)g(FIAIF.)382 2391 y Fb(panic)p Fm(:)43 b Fl(Sh)m(ut)c(o\033)e(all)h(IP)f(tra\036c)h(-)g(do)g(not)g (accept)g(an)m(y)g(pac)m(k)m(ets)g(from)g(an)m(ywhere)609 2504 y(for)43 b(an)m(y)f(reason.)78 b(This)43 b(can)g(b)s(e)f(used,)k (for)c(example,)47 b(if)42 b(unin)m(vited)i(guests)609 2617 y(are)e(disco)m(v)m(ered)h(on)f(the)g(system)g(to)f(quic)m(kly)h (close)g(the)g(\034rew)m(all)h(and)f(start)609 2730 y(analyzing)31 b(log)g(\034les.)382 2918 y Fb(status)p Fm(:)42 b Fl(Lists)31 b(all)f(rules)h(in)f(the)h(\034rew)m(all.)382 3105 y Fb(test)p Fm(:)43 b Fl(Chec)m(k)d(the)g(rules)f(in)h(the)f (con\034guration)j(\034les.)67 b(All)39 b(rules)g(are)h(written)g(to) 609 3218 y(the)35 b(\034le)g(sp)s(eci\034ed)g(in)g(the)g Fe(TEST_FILE)30 b Fl(parameter)36 b(in)f(the)g(global)g(con\034gu-)609 3331 y(ration)k(\034le.)65 b(This)38 b(can)h(b)s(e)f(useful)g(to)g(see) g(that)h(the)g(syn)m(tax)f(of)g(the)h(rules)f(is)609 3444 y(correct)43 b(b)s(efore)f(deplo)m(ying)h(the)f(\034rew)m(all.)76 b(An)m(y)42 b(errors)g(will)g(b)s(e)g(written)g(to)609 3557 y Fe(stdout)p Fl(.)36 b(Besides)26 b(testing,)h(it)e(also)h(runs)f (a)h(sanit)m(y)g(c)m(hec)m(k)h(on)e(the)h(net)m(w)m(orking)609 3670 y(con\034guration.)382 3956 y Fn(B)132 b(Con\034guration)43 b(\034les)382 4159 y Fl(Con\034guration)23 b(\034les)f(are)f(placed)i (under)f Fe(/etc/fiaif)16 b Fl(b)m(y)22 b(the)f(default)h (installation.)382 4403 y Fk(B.1)112 b(\034aif.conf)382 4519 y Fa(##########################################################)o (########)o(#########)o(####)382 4578 y(#)30 b(FIAIF)f(global)g (configuration)g(file.)382 4636 y(#)h(Version)f($Id:)g(fiaif.conf,v)g (1.37)g(2003/05/24)g(22:50:51)g(afu)h(Exp)f($)382 4694 y(##########################################################)o (########)o(#########)o(####)382 4810 y(##)h(Reserved)f(\(illegal\))f (and)i(private)f(networks)382 4868 y(##)h(See:)f(www.iana.com)382 4926 y(RESERVED_NETWORKS=reserved_networks)382 4984 y (PRIVATE_NETWORKS=private_networks)382 5101 y (LOOPBACK_NET="127.0.0.1/255.0.0.0")382 5159 y (SERVICES="/etc/services")382 5275 y (##########################################################)o(########) o(#########)o(####)382 5333 y(#)h(Search)f(path)g(for)h(binaries)382 5391 y(##########################################################)o (########)o(#########)o(####)1831 5652 y Fl(20)p eop end %%Page: 21 24 TeXDict begin 21 23 bop 382 548 a Fa (BIN_PATH=/sbin:/usr/sbin:/usr/local/sbin)382 664 y (##########################################################)o(########) o(#########)o(####)382 722 y(#)30 b(User)f(configurable)g(parameters) 382 780 y(##########################################################)o (########)o(#########)o(####)382 897 y(##)h(Activate)f(fiaif?)382 955 y(##)h(Set)f(this)h(VARIABLE)f(to)g(0)h(or)g(delete)f(the)g(line)h (to)g(enable)f(FIAIF.)382 1013 y(DONT_START=1)382 1129 y(##)h(Configuration)e(directory.)h(All)g(configuration)g(files)g(are)h (read)f(from)g(this)382 1187 y(##)h(directory.)382 1245 y(CONF_DIR=/etc/fiaif/)382 1362 y(##)g(Zone)f(names.)g(Only)h(these)f (zones)g(are)h(used.)382 1420 y(##)g(You)f(must)h(have)f(a)h (CONF_)e(entry)i(for)f(each)h(below.)382 1478 y(ZONES="EXT)f (INT")382 1594 y(##)h(Zone)f(cofiguration)g(files.)382 1652 y(##)h(The)f(files)g(are)h(expected)f(to)h(be)f(found)h(in)f (CONF_DIR)382 1710 y(##)h(Use:)f(CONF_XXX=)382 1768 y(CONF_INT=zone.int)382 1826 y(CONF_EXT=zone.ext)382 1885 y(CONF_DMZ=zone.dmz)382 2001 y(##)h(Use)f(iptables-save)g(and)g (iptables)g(restore)g(to)h(speed)f(up)382 2059 y(##)h(Startup)f (scripts.)g(You)g(should)g(leave)h(this)f(setting)g(to)h(0.)382 2117 y(##)g(Use:)f(SAVE_STATE=0|1)382 2175 y(SAVE_STATE=1)382 2291 y(##)h(Change)f(values)g(in)h(/proc/sys/net/)1400 2300 y(*)382 2350 y(##)g(When)f(issuing)g(a)h('fiaif)f(test')g(a)h (list)g(of)f(errors)h(and)f(warnings)g(are)h(displayed.)382 2408 y(##)g(The)f(SET_PROC_ERRORS,)f(specifies)h(that)h(FIAIF)f(should) g(correct)g(the)h(errors,)f(and)382 2466 y(##)h(The)f (SET_PROC_WARNINGS,)f(specifies)h(that)g(FIAIF)h(should)f(correct)g (the)g(warnings.)382 2524 y(##)h(SET_PROC_ERRORS=<0|1>)382 2582 y(##)g(SET_PROC_WARNINGS=<0|1>)382 2640 y(SET_PROC_ERRORS=1)382 2698 y(SET_PROC_WARNINGS=0)382 2814 y(##)g(Enable)f(TC)g(for)h(any)g (zone.)382 2873 y(##)g(Overrides)e(ENABLE_TC)h(in)h(zone)f (configurations.)382 2931 y(##)h(Use:)f(ENABLE_TC=<0|1>)382 2989 y(ENABLE_TC=0)382 3105 y(##)h(File)f(to)h(which)f(commands)g(are)h (written)f(when)g(making)g(a)h(test.)382 3163 y(##)g(TEST_FILE=)382 3221 y(TEST_FILE="/tmp/fiaif.out")382 3337 y(##)i(If)f(set)h(to)f(one)h(the)g(default)f(policy)g(of)h(all)f (standard)g(chains)g(\(input,)g(output)382 3396 y(##)h(and)f(forward\)) g(will)h(be)f(to)h(ACCEPT)f(unmatched)g(packets.)382 3454 y(##)h(If)f(set)h(to)f(zero,)h(the)f(policy)h(will)f(be)h(to)f (DROP)h(these)f(packets,)g(which)g(should)382 3512 y(##)h(be)f(the)h (default.)382 3570 y(##)g(DEBUG=<0|1>)382 3628 y(DEBUG=0)382 3744 y(##)g(Set)f(to)h(one,)f(to)h(enable)f(logging)g(via)h(ulogd.)382 3802 y(##)g(You)f(need)h(to)f(have)h(the)f(ulogd)h(installed,)e(to)i (enable)f(this)h(functionality)382 3861 y(##)g(Note:)f(does)g(not)h (work)f(correctly)g(with)h(kernel)f(2.4.18.)382 3919 y(##)h(ENABLE_ULOGD=<0|1>)382 3977 y(ENABLE_ULOG=0)382 4093 y(##)g(Set)f(to)h(one)f(if)h(dropped)f(or)h(rejected)f(packets)g (should)g(be)h(logged.)382 4151 y(##)g(VERBOSE=<0|1>)382 4209 y(VERBOSE=1)382 4325 y(##)g(Prefix)f(to)g(pre-pend)g(to)h(log)g (messages)382 4384 y(##)g(Use:)f(LOG_PREFIX="FIAIF_")382 4442 y(##)89 b(This)30 b(will)f(cause)h(log)f(messages)g(to)h(have)f ([FIAIF_DROP])g(or)g([FIAIF_MARTIAN])g(\(etc\))382 4500 y(##)89 b(as)30 b(their)f(marker)382 4558 y(LOG_PREFIX="FIAIF_")382 4674 y(##)h(Limit)f(the)g(number)h(of)f(log-messages)g(when)g(packets)g (are)h(dropped.)382 4732 y(##)g(Lower)f(to)h(avoid)f(spamming)g(the)g (logs.)382 4790 y(##)h(Use:)f(LOG_LEVEL=)382 4848 y(##)h(Use:)f(LOG_LIMIT=)382 4907 y(##)h(Use:)f (LOG_BURST=)382 4965 y(##)89 b(LEVEL)30 b(:)f(defines)h(the)f (level)g(\(or)h(priority\))f(of)h(the)f(logged)382 5023 y(##)328 b(messages)29 b(-)h(See)g(syslog.conf\(5\))e(for)i(more)382 5081 y(##)328 b(If)30 b(ulog)g(is)f(enabled,)g(the)h(value)f(must)h(be) f(in)h(the)f(range)382 5139 y(##)179 b(1..32)382 5197 y(##)89 b(LIMIT)30 b(:)f(Maximum)59 b(average)30 b(matching)f(rate:)g (specified)g(as)g(a)h(number,)382 5255 y(##)328 b(with)30 b(an)g(optional)f('/second',)f('/minute',)h('/hour',)g(or)h('/day')382 5313 y(##)328 b(suffix.)382 5372 y(##)89 b(BURST)30 b(:)f(Maximum)59 b(initial)g(number)h(of)29 b(packets)g(to)h(match:)f(this)1831 5652 y Fl(21)p eop end %%Page: 22 25 TeXDict begin 22 24 bop 382 548 a Fa(##)328 b(number)30 b(is)f(incrementedby)g(one)g(every)h(time)59 b(the)g(limit)382 606 y(##)328 b(specified)59 b(above)30 b(is)f(not)h(reached,)f(up)g(to) h(this)g(number.)382 664 y(LOG_LEVEL=CRIT)382 722 y (LOG_LIMIT=10/minute)382 780 y(LOG_BURST=10)382 897 y(##)g(Load)f (modules)g(upon)h(starting)f(the)g(firewall.)g(The)h(modules)f(will)g (be)382 955 y(##)h(unloaded,)e(when)i(the)f(firewall)g(is)h(stopped.) 382 1013 y(##)g(MODULES=[module_name])1102 1022 y(*)382 1071 y(MODULES="ip_nat_ftp")382 1187 y(##)g(The)f(following)g(lines)g (allows)h(users)f(specified)g(commands)g(to)382 1245 y(##)h(be)f(executed)g(before)g(and)h(after)f(FIAIF)h(is)f (started/stopped.)382 1303 y(##)h(This)f(can)h(be)f(used)h(to)f(e.g.)h (insert)f(additional)g(rules)g(for)h(traffic)f(counters,)382 1362 y(##)h(And)f(then)h(save/restore)e(these.)382 1420 y(##)i(Use:)382 1478 y(##)89 b (__SCTIPT[N]=)382 1594 y(#PRE_START_SCRIPT[0]="")382 1652 y(#PRE_START_SCRIPT[1]="")382 1710 y(#POST_START_SCRIPT[0]="")382 1768 y(#POST_START_SCRIPT[1]="")382 1885 y(#PRE_STOP_SCRIPT[0]="")382 1943 y(#PRE_STOP_SCRIPT[1]="")382 2001 y(#POST_STOP_SCRIPT[0]="")382 2059 y(#POST_STOP_SCRIPT[1]="")382 2175 y(##)k(Specify)f(localtion)g(of)g("Type)h(Of)f(Services")g(file.) 382 2233 y(##)h(This)f(can)h(either)f(be)g(empty)h(or)f(a)h(file.)382 2291 y(TOS_FILE=type_of_services)382 2408 y(##)g(Specify)f(aliases)g (file.)382 2466 y(##)h(In)f(this)h(file,)f(aliases)g(for)h(IP)f (numbers)g(can)h(be)g(specified.)382 2524 y(ALIASES=aliases)382 2767 y Fk(B.2)112 b(reserv)m(ed_net)m(w)m(orks)382 2898 y Fa(#)30 b($Id:)f(reserved_networks,v)f(1.36)h(2010/06/10)g(21:48:23)g (afu)h(Exp)f($)382 3015 y(#)h(This)f(file)h(contains)f(a)g(list)h(of)f (networks)g(reserved)g(by)h(IANA.)382 3073 y(#)g(The)f(list)h(can)f(be) h(found)f(at:)382 3131 y(#)89 b (http://www.iana.org/assignments/ipv4-address-space)382 3189 y(#)30 b(For)f(additional)g(information)g(see)g(RFC3330)382 3305 y(0.0.0.0/8)382 3363 y(5.0.0.0/8)382 3421 y(23.0.0.0/8)382 3479 y(36.0.0.0/7)382 3538 y(39.0.0.0/8)382 3596 y(42.0.0.0/8)382 3654 y(49.0.0.0/8)382 3712 y(100.0.0.0/6)382 3770 y(104.0.0.0/7)382 3828 y(106.0.0.0/8)382 3886 y(127.0.0.0/8)382 3944 y(169.254.0.0/16)382 4002 y(179.0.0.0/8)382 4061 y(185.0.0.0/8)382 4119 y(192.0.2.0/24)382 4177 y(198.18.0.0/15)382 4235 y(223.0.0.0/8)382 4293 y(240.0.0.0/4)382 4536 y Fk(B.3)112 b(priv)-6 b(ate_net)m(w)m(orks)382 4667 y Fa(#)30 b($Id:)f(private_networks,v)f(1.3)i(2003/02/13)e (22:15:11)h(afu)h(Exp)f($)382 4784 y(#)h(This)f(file)h(contains)f(the)g (list)h(of)f(all)h(networks)382 4842 y(#)g(reserved)f(for)g(private)g (use.)382 4900 y(#)h(Please)f(see)g(RFC1918)h(for)f(details.)382 5016 y(10.0.0.0/8)382 5074 y(127.0.0.0/8)382 5132 y(172.16.0.0/12)382 5191 y(192.168.0.0/16)1831 5652 y Fl(22)p eop end %%Page: 23 26 TeXDict begin 23 25 bop 382 548 a Fk(B.4)112 b(t)m(yp)s(e_of_services) 382 677 y Fa(##)30 b(Set)f(Type)h(of)f(services)g(fields)g(on)h(some)g (packages)f(from)g(the)h(server.)382 735 y(##)g(These)f(values)g(are)h (based)f(on)h(RFC)f(1060/1349.)382 793 y(##)h(Note)f(that)g(ssh)h (automatically)e(sets)i(the)f(TOS)h(value.)382 910 y(##)g(The)f(syntax) g(is:)382 968 y(##)h(TOS_FOO=")h()g([)h(any)f(|)h (port[,port])1967 977 y(*)2026 968 y(|)g(ICMP)f(type)g(specifier)g(]") 382 1026 y(##)h(Where:)382 1084 y(##)89 b(TOS_type)29 b(is:)h(Minimize-Delay|Maximize-Throughput|)382 1142 y(##)478 b(Maximize-Reliability|Minimize-Cost|)382 1200 y(##)g(Normal-Service)382 1258 y(##)89 b(protocol)29 b(is:)h(Any)f(protocol)g(specified)g(in)h(/etc/protocols,)382 1316 y(##)478 b(or)30 b(a)f(protocol)g(number)382 1375 y(##)89 b(port)30 b(specification)e(is)i(either:)382 1433 y(##)89 b(-)30 b(any:)g(matching)f(any)g(packet)g(with)h(the)f (specified)g(protocol.)382 1491 y(##)478 b(-)30 b(A)f(list)h(of)g (ports,)f(if)g(TCP)h(or)g(UDP)f(is)h(specified.)382 1549 y(##)478 b(-)30 b(An)f(ICMP)h(type)f(or)h(number,)f(if)h(the)f (protocol)g(is)h(ICMP.)382 1723 y (TOS_MINIMIZE_DELAY_TCP="Minimize-Delay)c(tcp)j(ftp,telnet")382 1781 y(TOS_MAXIMIZE_THROUGHPUT_TCP="Maximize-Throughput)24 b(tcp)30 b(ftp-data,smtp,imap,imaps,pop3,pop3s,cvspserver,rsync")382 1840 y(TOS_MAXIMIZE_RELIABILITY_TCP="Maximize-Reliability)24 b(tcp")382 1898 y(TOS_MINIMIZE_COST_TCP="Minimize-Cost)i(tcp)j(nntp") 382 1956 y(TOS_NORMAL_SERVICE_TCP="Normal-Service)d(tcp)j(www,https") 382 2072 y(TOS_MINIMIZE_DELAY_UDP="Minimize-Delay)d(udp)j (domain,ntp,tftp")382 2130 y (TOS_MAXIMIZE_THROUGHPUT_UDP="Maximize-Throughput)24 b(udp")382 2188 y(TOS_MAXIMIZE_RELIABILITY_UDP="Maximize-Reliability)g (udp")382 2246 y(TOS_MINIMIZE_COST_UDP="Minimize-Cost)i(udp)j(snmp")382 2304 y(TOS_NORMAL_SERVICE_UDP="Normal-Service)d(udp)j(bootps,bootpc") 382 2421 y(TOS_MAXIMIZE_RELIABILITY_IGMP="Maximize-Reliability)24 b(igmp)30 b(any")382 2479 y(TOS_NORMAL_SERVICE_EGP="Normal-Service)c (egp)j(any")382 2722 y Fk(B.5)112 b(zone.ext)382 2839 y Fa(##########################################################)o (########)o(#########)o(###)382 2897 y(##)30 b(Example)f(zone)g (configuration)g(file.)382 2955 y(##)h(Read)f(all)h(configuration)e (parameters,)h(and)g(modify)g(to)h(suit)g(your)f(needs.)382 3013 y(##########################################################)o (########)o(#########)o(###)382 3130 y(##)h(A)f(sample)h(zone)f (configuration)f(to)i(control)f(traffic)g(to)h(the)g(internet)382 3246 y(##)g(Name)f(of)h(the)f(zone.)h(Must)f(match)g(the)h(name)f(in)h (fiaif.conf.)382 3304 y(NAME=EXT)382 3362 y(##)g(Network)f(interface)g (name)382 3420 y(DEV=eth0)382 3536 y(##)h(DYNAMIC:)148 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(can)f(change)h(during)f (operation)g(or)382 3595 y(##)418 b(if)30 b(the)f(IP)h(address)f(is)h (unknown)f(when)g(fiaif)h(is)f(started.)382 3653 y(##)h(GLOBAL:)178 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(if)f(this)h(zone)f(connects)g (you)h(to)f(the)382 3711 y(##)418 b(internet.)29 b(Set)h(to)f(zero)h (for)f(private)g(networks.)382 3769 y(DYNAMIC=1)382 3827 y(GLOBAL=1)382 3943 y(##)h(Network)f(information.)f(Nessesary)h(only)h (if)f(DYNAMIC=0)382 4001 y(#IP=80.196.xxx.xxx)382 4059 y(#MASK=255.255.255.252)382 4118 y(#NET=80.196.xxx.xxx/255.255.255.252) 382 4176 y(#BCAST=80.196.xxx.xxx)382 4292 y(##)h(IP_EXTRA)f(specifies)f (that)i(the)f(interface)g(has)h(multiple)f(IP)h(addresses;)382 4350 y(##)g(all)f(the)h(interface's)e(extra)i(IP's)f(should)g(be)h (listed)f(here.)382 4408 y(IP_EXTRA="")382 4466 y(##)h(Specifies)e (extra)i(networks)f(in)g(this)h(zone)f(\(besides)g(NET\).)382 4524 y(NET_EXTRA="")382 4641 y(##)h(Specify)f(if)g(the)h(zone)f(should) h(respond)f(to)g(DHCP)h(queries.)382 4699 y(##)g(This)f(is)h(usefull)f (if)g(a)h(DHCP)g(server)f(is)h(running)f(on)g(the)h(firewall.)382 4757 y(##)g(Remember)f(to)g(set)h(this)f(only)h(in)f(the)h(zone)f(for)h (which)f(the)h(DHCP)f(server)g(is)h(running.)382 4815 y(DHCP_SERVER=0)382 4931 y(##)g(The)f(descriptions)g(of)g(packets)g (coming)h(IN)f(to)h(the)g(interface)e(specifed)h(in)h(DEV)g(and)f (NETWORK)g(to)h(drop|accept|reject)382 4989 y(##)g(Use:)f (INPUT[N]=")e([:port]])2686 4998 y(*)2716 4989 y(]>)f(ip[/mask]>")382 5047 y(INPUT[0]="ACCEPT)h(tcp)i (smtp,www,https,ssh)d(0.0.0.0/0=>0.0.0.0/0")382 5106 y(INPUT[1]="ACCEPT)h(icmp)h(echo-request)g(0.0.0.0/0=>0.0.0.0/0")382 5164 y(#INPUT[2]="ACCEPT)f(igmp)h(0.0.0.0/0=>224.0.0.0/4")382 5222 y(INPUT[2]="DROP)f(ALL)i(0.0.0.0/0=>0.0.0.0/0")382 5338 y(##)g(The)f(descriptions)g(of)g(packets)g(going)h(OUT)f(of)h(the) g(interface)e(specifed)h(in)h(DEV)g(and)f(NETWORK)g(to)h (drop|accept|reject)382 5396 y(##)g(Use:)f (OUTPUT[N]=")d([:port]])2716 5405 y(*)2746 5396 y(]>)e(ip[/mask]>")1831 5652 y Fl(23)p eop end %%Page: 24 27 TeXDict begin 24 26 bop 382 548 a Fa(OUTPUT[0]="ACCEPT)28 b(ALL)h(0.0.0.0/0=>0.0.0.0/0")382 664 y(##)h(Forward)f(rules.)g (Specify)g(where)g(packets)g(entering)g(this)h(zone)f(may)h(originate)f (from.)382 722 y(##)h(Use:)f(FORWARD[N]=")e ()h([:port]])3075 731 y(*)3105 722 y(]>)d(ip[/mask]=>ip[/mask]")382 780 y(##)382 839 y(##)k(Use)f(this)h(to)f(protect)g(this)h(zone)382 897 y(##)g(Rules)f(are)g(read)h(in)g(the)f(order)g(they)h(are)f (written.)382 955 y(##)h(Default)f(is)g(to)h(accept)f(everything:)g (all)g(zones)h(are)f(allowd)h(to)f(talk)382 1013 y(##)h(with)f(the)h (Internet.)382 1071 y(FORWARD[0]="ALL)e(ACCEPT)h(ALL)h (0.0.0.0/0=>0.0.0.0/0")382 1187 y(##)g(Mark)f(rules.)g(Mark)h(packets)f (parsing)g(through)g(the)h(firewall.)382 1245 y(##)g(Use)f (MARK[N]=")f()g([:port]])2746 1254 y(*)2776 1245 y(]>)e(ip[/mask]>")382 1303 y(##)382 1362 y(##)j(MARK)f(packets)g(can)h(be)f(used)h(to)f(determine)g(how)h(a)g (packet)f(sould)g(be)h(routed.)382 1420 y(##)g(FIAIF)f(does)g(not)h (use)f(marking.)382 1478 y(#MARK[0]="ALL)f(1)i(tcp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 1536 y(#MARK[1]="ALL)f(2)i(udp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 1652 y(##)h(Make)f(special)g(replys)g(on)h (incoming)f(packets.)382 1710 y(##)h(Use:)f(REPLY_XXX=")f() h([:port]])2507 1719 y(*)2537 1710 y(]>)d(ip[/mask]>")382 1768 y(##)k(Where)f(type)g(can)h(be)g(one)f(of)h(the)f(following:)382 1826 y(##)89 b(icmp-net-unreachable,)28 b(icmp-host-unreachable,)f (icmp-port-unreachable,)382 1885 y(##)89 b(icmp-proto-unreachable,)28 b(icmp-net-prohibited,)f(icmp-host-prohibited)h(or)382 1943 y(##)89 b(tcp-reset)29 b(\(Only)h(valid)f(if)h(the)f(protocol)g (if)h(TCP\))382 2001 y(##)g(If)f(the)h(zone)f(equal)h(this)f(zone,)g (then)h(the)f(rules)h(apply)f(to)h(packets)f(originating)f(from)382 2059 y(##)i(this)f(network)g(towards)g(the)h(firewall)382 2117 y(REPLY_AUTH="EXT)e(tcp-reset)h(tcp)h(auth)f (0.0.0.0/0=>0.0.0.0/0")382 2175 y(REPLY_TRACEROUTE="EXT)e (icmp-port-unreachable)h(udp)i(33434:33464)e(0.0.0.0/0=>0.0.0.0/0")382 2291 y(##)i(Alter)f(the)g(destination)g(of)h(packets.)382 2350 y(##)g(Use:)f(REDIRECT_XXX=")i (ip[/mask]>)e(<[ipaddr[,ipaddr])2984 2359 y(*)3014 2350 y(])h([port]")382 2408 y(##)i(The)f(rule)h(applies)f (only)g(for)h(packet)f(originating)g(from)g(this)g(zone.)382 2466 y(#REDIRECT_SSH="tcp)f(22)h(0.0.0.0/0=>0.0.0.0/0)f(10.0.0.1)h(22") 382 2582 y(##)h(Log)f(all)h(traffic)f(for)g(these)h(IP)f(addresses)382 2640 y(##)h(Use)f(WATCH_IP="[IP[/MASK]])1221 2649 y(*)1251 2640 y(|[FILE]")382 2698 y(#WATCH_IP="111.111.111.111/32)e (222.222.222.222/24")382 2814 y(##)j(Strip)f(ECN)g(bits)h(from)f(all)h (packets)f(destined)g(for)h(specified)e(IP-addresses)382 2873 y(##)i(in)f(this)h(zone)382 2931 y(##)g(Use:)f (ECN_REMOVE="[IP[/MASK]])1311 2940 y(*)1341 2931 y(|[FILE]")382 2989 y(#ECN_REMOVE="111.111.111.111/32)d(222.222.222.222/24")382 3105 y(##)k(Dissalow)f(any)g(communication)g(with)g(specified)g (MAC-addresses)f(in)i(this)f(zone)382 3163 y(##)h(Use:)f (MAX_DROP="[MAC)f(address])1309 3172 y(*)1339 3163 y(|[FILE]")382 3221 y(##)i(Inserted)f(on)g(PREROUTING)g(chain)382 3279 y(#MAC_DROP="XX:XX:XX:XX:XX:XX)e(YY:YY:YY:YY:YY:YY")382 3396 y(##)j(Dissalow)f(any)g(communication)g(with)g(specified)g (IP-addresses)f(in)i(this)f(zone)382 3454 y(##)h(Use:)f (IP_DROP="[IP[/MASK]])1221 3463 y(*)1251 3454 y(|[FILE]")382 3512 y(#IP_DROP="111.111.111.111/32)e(222.222.222.222/24")382 3628 y(##)j(Change)f(the)g(source)h(address)f(of)g(a)h(packet)f (comming)g(from)h(this)f(zone.)382 3686 y(##)h(This)f(is)h(also)f (called)g(masquerading.)382 3744 y(##)h(Use:)f(SNAT[N]=")f ([:port]])2238 3753 y(*)2268 3744 y(]>)d(ip[/mask]>")382 3802 y(##)k(Where:)f(ZONE)119 b(:)60 b(Destination)28 b(zone.)i(The)f(source)g(of)h(matched)f (packets)g(is)382 3861 y(##)568 b(changed)29 b(to)g(all)h(ip)g(numbers) f(for)g(the)h(zone.)382 3919 y(##)g(Warning:)f(enabling)g(a)g(default)g (\(0.0.0.0=>0.0.0.0\))f(SNAT)i(rule)f(and)h(having)382 3977 y(##)g(GLOBAL=1)f(or)g(DYNAMIC=1)g(enables)g(NAT)h(for)1607 3986 y(*)1637 3977 y(all)1727 3986 y(*)1787 3977 y(zones)f(since)g (there)h(is)f(no)h(way)382 4035 y(##)g(to)f(know)h(the)f(networks)g (for)h(NAT)f(beforehand.)g(Be)h(sure)f(to)h(restrict)f(the)382 4093 y(##)h(FORWARD[x])e(rules)i(in)f(this)h(file)f(to)h(only)f (forward)g(traffic)h(from)f(this)g(network.)382 4151 y(#SNAT[0]="EXT)f(ALL)i(0.0.0.0/0=>0.0.0.0/0")382 4267 y(##)g(Limit)f(new)g(packets.)382 4325 y(##)h(Use:)f(LIMIT_XXX=") f()h()g()g()2595 4334 y(*)2625 4325 y(|<:port>]>)e(ip[/mask]>")382 4384 y(##)j(Where:)382 4442 y(##)89 b(ZONE)149 b(:)30 b(Is)g(the)f(zone)h(from)f(which)h(the)f(packet)g(originates.)g(This)g (can)h(be)g(this)f(zone)g(itself.)382 4500 y(##)89 b(POLICY)g(:)30 b(Is)g(waht)f(to)h(do)g(with)f(the)h(packet:)f(ACCEPT|REJECT|DROP)382 4558 y(##)89 b(LIMIT)119 b(:)30 b(Maximum)59 b(average)29 b(matching)g(rate:)h(specified)e(as)i(a)g(number,)59 b(with)g(an)90 b(optional)382 4616 y(##)418 b('/second',)29 b('/minute',)g('/hour',)g(or)g('/day')h(suffix.)382 4674 y(##)89 b(BURST)119 b(:)30 b(Maximum)59 b(initial)g(number)g(of)30 b(packets)f(to)h(match:)f(this)382 4732 y(##)418 b(number)29 b(gets)h(recharged)f(by)g(one)h(every)f(time)60 b(the)f(limit)382 4790 y(##)418 b(specified)59 b(above)29 b(is)h(not)f(reached,)g(up)h (to)g(this)f(number.)382 4848 y(##)89 b(PROTOCOL)29 b(:)h(The)g (protocol:)f(tcp|udp|icmp|all.)f(This)h(parameter)g(is)g(optional)382 4907 y(##)89 b(PORTS)119 b(:)30 b(If)g(protocol)f(is)g(tcp|udp:)g(A)h (list)g(of)f(ports)h(or)f(a)h(port)f(range.)382 4965 y(##)866 b(icmp)90 b(:)29 b(A)h(single)f(icmp)h(type.)382 5023 y(##)418 b(this)30 b(parameter)e(is)i(optional,)f(and)h(must)f (only)g(be)h(specified,)382 5081 y(##)418 b(if)30 b(a)g(protocol)f(is)g (specified.)382 5139 y(##)89 b(IP/MASK)59 b(:)30 b(If)g(PORTS)f(are)h (specified,)e(then)i(an)g(optional)f(IP/MASK)g(source)g(and)g(address)g (can)h(be)g(specified.)382 5197 y(LIMIT_PING="EXT)e(DROP)i(1/second)f (3)g(ICMP)h(echo-request)e(0.0.0.0/0=>0.0.0.0/0")1831 5652 y Fl(24)p eop end %%Page: 25 28 TeXDict begin 25 27 bop 382 548 a Fk(B.6)112 b(zone.in)m(t)382 665 y Fa(##########################################################)o (########)o(#########)o(###)382 723 y(##)30 b(Example)f(zone)g (configuration)g(file.)382 781 y(##)h(Read)f(all)h(configuration)e (parameters,)h(and)g(modify)g(to)h(suit)g(your)f(needs.)382 839 y(##########################################################)o (########)o(#########)o(###)382 955 y(##)h(A)f(sample)h(zone)f (configuration)f(to)i(control)f(traffic)g(to)h(and)g(from)f(an)h (internal)382 1013 y(##)g(network)f(\(reached)g(via)g(eth1\).)382 1130 y(##)h(Name)f(of)h(the)f(zone.)h(Must)f(match)g(the)h(name)f(in)h (fiaif.conf.)382 1188 y(NAME=INT)382 1246 y(##)g(Network)f(interface)g (name)382 1304 y(DEV=eth1)382 1420 y(##)h(DYNAMIC:)148 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(can)f(change)h(during)f (operation)g(or)382 1478 y(##)418 b(if)30 b(the)f(IP)h(address)f(is)h (unknown)f(when)g(fiaif)h(is)f(started.)382 1536 y(##)h(GLOBAL:)178 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(if)f(this)h(zone)f(connects)g (you)h(to)f(the)382 1595 y(##)418 b(internet.)29 b(Set)h(to)f(zero)h (for)f(private)g(networks.)382 1653 y(DYNAMIC=1)382 1711 y(GLOBAL=0)382 1827 y(##)h(Network)f(information.)f(Nessesary)h(only)h (if)f(DYNAMIC=0)382 1885 y(#IP=10.0.0.254)382 1943 y (#MASK=255.255.254.0)382 2001 y(#NET=10.0.0.254/255.255.254.0)382 2060 y(#BCAST=10.0.1.255)382 2176 y(##)h(IP_EXTRA)f(specifies)f(that)i (the)f(interface)g(has)h(multiple)f(IP)h(addresses;)382 2234 y(##)g(all)f(the)h(interface's)e(extra)i(IP's)f(should)g(be)h (listed)f(here.)382 2292 y(IP_EXTRA="")382 2350 y(##)h(Specifies)e (extra)i(networks)f(in)g(this)h(zone)f(\(besides)g(NET\).)382 2408 y(#NET_EXTRA="224.0.0.0/4")382 2524 y(##)h(Specify)f(if)g(the)h (zone)f(should)h(respond)f(to)g(DHCP)h(queries.)382 2583 y(##)g(This)f(is)h(usefull)f(if)g(a)h(DHCP)g(server)f(is)h(running)f (on)g(the)h(firewall.)382 2641 y(##)g(Remember)f(to)g(set)h(this)f (only)h(in)f(the)h(zone)f(for)h(which)f(the)h(DHCP)f(server)g(is)h (running.)382 2699 y(DHCP_SERVER=0)382 2815 y(##)g(The)f(descriptions)g (of)g(packets)g(coming)h(IN)f(to)h(the)g(interface)e(specifed)h(in)h (DEV)g(and)f(NETWORK)g(to)h(drop|accept|return)382 2873 y(##)g(Use:)f(INPUT[N]=")e([:port]])2686 2882 y(*)2716 2873 y(]>)f(ip[/mask]=>ip[/mask]")382 2931 y(INPUT[0]="ACCEPT)h(ALL)i (0.0.0.0/0=>0.0.0.0/0")382 3047 y(##)g(The)f(descriptions)g(of)g (packets)g(going)h(OUT)f(of)h(the)g(interface)e(specifed)h(in)h(DEV)g (and)f(NETWORK)g(to)h(drop|accept|return)382 3106 y(##)g(Use:)f (OUTPUT[N]=")d([:port]])2716 3115 y(*)2746 3106 y(]>)e(ip[/mask]>")382 3164 y(OUTPUT[0]="ACCEPT)h(ALL)h (0.0.0.0/0=>0.0.0.0/0")382 3280 y(##)h(Forward)f(rules.)g(Specify)g (where)g(packets)g(entering)g(this)h(zone)f(may)h(originate)f(from.)382 3338 y(##)h(Use:)f(FORWARD[N]=")e()h ([:port]])3075 3347 y(*)3105 3338 y(]>)d(ip[/mask]>")382 3396 y(##)382 3454 y(##)k(Use)f(this)h(to)f(protect)g(a)h(zone.)382 3512 y(##)g(Rules)f(are)g(read)h(in)g(the)f(order)g(they)h(are)f (written.)382 3571 y(##)h(Default)f(is)g(to)h(drop)f(everything,)g (accepting)g(only)g(related)h(and)f(establihed)g(connections.)382 3629 y(FORWARD[0]="ALL)f(DROP)i(ALL)f(0.0.0.0/0=>0.0.0.0/0")382 3745 y(##)h(Mark)f(rules.)g(Mark)h(packets)f(parsing)g(through)g(the)h (firewall.)382 3803 y(##)g(Use)f(MARK[N]=")f() g([:port]])2746 3812 y(*)2776 3803 y(]>)e(ip[/mask]>")382 3861 y(##)382 3919 y(##)j(MARK)f(packets)g(can)h(be)f(used)h(to)f(determine) g(how)h(a)g(packet)f(sould)g(be)h(routed.)382 3977 y(##)g(FIAIF)f(does) g(not)h(use)f(marking.)382 4035 y(#MARK[0]="ALL)f(1)i(tcp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 4094 y(#MARK[1]="ALL)f(2)i(udp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 4210 y(##)h(Make)f(special)g(replys)g(on)h (incoming)f(packets.)382 4268 y(##)h(Use:)f(REPLY_XXX=")f() h([:port]])2507 4277 y(*)2537 4268 y(]>)d(ip[/mask]>")382 4326 y(##)k(Where)f(type)g(can)h(be)g(one)f(of)h(the)f(following:)382 4384 y(##)89 b(icmp-net-unreachable,)28 b(icmp-host-unreachable,)f (icmp-port-unreachable,)382 4442 y(##)89 b(icmp-proto-unreachable,)28 b(icmp-net-prohibited,)f(icmp-host-prohibited)h(or)382 4500 y(##)89 b(tcp-reset)29 b(\(Only)h(valid)f(if)h(the)f(protocol)g (if)h(TCP\))382 4558 y(##)g(If)f(the)h(zone)f(equal)h(this)f(zone,)g (then)h(the)f(rules)h(apply)f(to)h(packets)f(originating)f(from)382 4617 y(##)i(this)f(network)g(towards)g(the)h(firewall)382 4675 y(#REPLY_AUTH="ALL)e(tcp-reset)h(tcp)g(auth)h (0.0.0.0/0=>0.0.0.0/0")382 4791 y(##)g(Alter)f(the)g(destination)g(of)h (packets.)382 4849 y(##)g(Use:)f(REDIRECT_XXX=")i(ip[/mask]>)e(<[ipaddr[,ipaddr])2984 4858 y(*)3014 4849 y(])h([port]>")382 4907 y(##)i(The)f(rule)h(applies) f(only)g(for)h(packet)f(originating)g(from)g(this)g(zone.)382 4965 y(#REDIRECT_PROXY="tcp)f(80)h(0.0.0.0/0=>0.0.0.0/0)f(127.0.0.1)h (3128")382 5082 y(##)h(Log)f(all)h(traffic)f(for)g(these)h(IP)f (addresses)382 5140 y(##)h(Use)f(WATCH_IP="[IP[/MASK]])1221 5149 y(*)1251 5140 y(|[FILE]")382 5198 y(#WATCH_IP="111.111.111.111/32) e(222.222.222.222/24")382 5314 y(##)j(Strip)f(ECN)g(bits)h(from)f(all)h (packets)f(destined)g(for)h(specified)e(IP-addresses)382 5372 y(##)i(in)f(this)h(zone)1831 5652 y Fl(25)p eop end %%Page: 26 29 TeXDict begin 26 28 bop 382 548 a Fa(##)30 b(Use:)f (ECN_REMOVE="[IP[/MASK]])1311 557 y(*)1341 548 y(|[FILE]")382 606 y(#ECN_REMOVE="111.111.111.111/32)d(222.222.222.222/24")382 722 y(##)k(Dissalow)f(any)g(communication)g(with)g(specified)g (MAC-addresses)f(in)i(this)f(zone)382 780 y(##)h(Use:)f(MAX_DROP="[MAC) f(address])1309 789 y(*)1339 780 y(|[FILE]")382 839 y(##)i(Inserted)f (on)g(PREROUTING)g(chain)382 897 y(#MAC_DROP="XX:XX:XX:XX:XX:XX)e (YY:YY:YY:YY:YY:YY")382 1013 y(##)j(Dissalow)f(any)g(communication)g (with)g(specified)g(IP-addresses)f(in)i(this)f(zone)382 1071 y(##)h(Use:)f(IP_DROP="[IP[/MASK]])1221 1080 y(*)1251 1071 y(|[FILE]")382 1129 y(#IP_DROP="111.111.111.111/32)e (222.222.222.222/24")382 1245 y(##)j(Change)f(the)g(source)h(address)f (of)g(a)h(packet)f(comming)g(from)h(this)f(zone.)382 1303 y(##)h(This)f(is)h(also)f(called)g(masquerading.)382 1362 y(##)h(Use:)f(SNAT[N]=")f([:port]])2238 1371 y(*)2268 1362 y(]>)d(ip[/mask]>")382 1420 y(##)k(Where:)f(ZONE)119 b(:)60 b(Destination)28 b(zone.)i(The)f(source)g(of)h(matched)f (packets)g(is)382 1478 y(##)568 b(changed)29 b(to)g(all)h(ip)g(numbers) f(for)g(the)h(zone.)382 1536 y(##)g(Warning:)f(enabling)g(a)g(default)g (\(0.0.0.0=>0.0.0.0\))f(SNAT)i(rule)f(and)h(having)382 1594 y(##)g(GLOBAL=1)f(or)g(DYNAMIC=1)g(enables)g(NAT)h(for)1607 1603 y(*)1637 1594 y(all)1727 1603 y(*)1787 1594 y(zones)f(since)g (there)h(is)f(no)h(way)382 1652 y(##)g(to)f(know)h(the)f(networks)g (for)h(NAT)f(beforehand.)g(Be)h(sure)f(to)h(restrict)f(the)382 1710 y(##)h(FORWARD[x])e(rules)i(in)f(zone.ext)g(to)h(only)f(forward)h (traffic)f(from)g(this)g(network.)382 1768 y(SNAT[0]="EXT)f(ALL)i (0.0.0.0/0=>0.0.0.0/0")382 1885 y(##)g(Limit)f(new)g(packets.)382 1943 y(##)h(Use:)f(LIMIT_XXX=")f()h()g()g ()2595 1952 y(*)2625 1943 y(|<:port>]>)e (ip[/mask]>")382 2001 y(##)j(Where:)382 2059 y(##)89 b(ZONE)149 b(:)30 b(Is)g(the)f(zone)h(from)f(which)h(the)f (packet)g(originates.)g(This)g(can)h(be)g(this)f(zone)g(itself.)382 2117 y(##)89 b(POLICY)g(:)30 b(Is)g(what)f(to)h(do)g(with)f(the)h (packet:)f(ACCEPT|REJECT|DROP)382 2175 y(##)89 b(LIMIT)119 b(:)30 b(Maximum)59 b(average)29 b(matching)g(rate:)h(specified)e(as)i (a)g(number,)f(with)g(an)h(optional)382 2233 y(##)418 b('/second',)29 b('/minute',)g('/hour',)g(or)g('/day')h(suffix.)382 2291 y(##)89 b(BURST)119 b(:)30 b(Maximum)59 b(initial)g(number)g(of)30 b(packets)f(to)h(match:)f(this)382 2350 y(##)418 b(number)29 b(gets)h(recharged)f(by)g(one)h(every)f(time)60 b(the)f(limit)382 2408 y(##)418 b(specified)59 b(above)29 b(is)h(not)f(reached,)g(up)h (to)g(this)f(number.)382 2466 y(##)89 b(PROTOCOL)29 b(:)h(The)g (protocol:)f(tcp|udp|icmp|all.)f(This)h(parameter)g(is)g(optional)382 2524 y(##)89 b(PORTS)119 b(:)30 b(If)g(protocol)f(is)g(tcp|udp:)g(A)h (list)g(of)f(ports)h(or)f(a)h(port)f(range.)382 2582 y(##)866 b(icmp)90 b(:)29 b(A)h(single)f(icmp)h(type.)382 2640 y(##)418 b(this)30 b(parameter)e(is)i(optional,)f(and)h(must)f (only)g(be)h(specified,)382 2698 y(##)418 b(if)30 b(a)g(protocol)f(is)g (specified.)382 2756 y(##)89 b(IP/MASK)59 b(:)30 b(If)g(PORTS)f(are)h (specified,)e(then)i(an)g(optional)f(IP/MASK)g(source)g(and)g(address)g (can)h(be)g(specified.)382 2814 y(#LIMIT_PING="EXT)e(DROP)h(1/second)g (3)h(ICMP)g(echo-request)e(0.0.0.0/0=>0.0.0.0/0")382 3116 y Fk(B.7)112 b(zone.dmz)382 3233 y Fa (##########################################################)o(########) o(#########)o(###)382 3291 y(##)30 b(Example)f(zone)g(configuration)g (file.)382 3349 y(##)h(Read)f(all)h(configuration)e(parameters,)h(and)g (modify)g(to)h(suit)g(your)f(needs.)382 3407 y (##########################################################)o(########) o(#########)o(###)382 3523 y(##)h(The)f(DMZ)h(\(DeMilitarized)e(Zone\)) h(is)h(the)g(most)f(restricted)g(network,)382 3581 y(##)h(since)f(it)h (exposes)f(partly)g(unsecure)g(services)g(to)h(the)f(Internet.)382 3640 y(##)h(No)f(connections)g(are)g(allowed)h(in)f(either)g(direction) g(between)g(the)h(firewall)f(and)g(this)h(zone.)382 3698 y(##)g(The)f(idea)h(is,)f(that)h(if)f(any)h(hacker)f(gains)g(access)h (to)f(a)h(machine)f(in)h(the)f(DMZ,)382 3756 y(##)h(This)f(does)g(not)h (pose)f(a)h(security)f(risk)h(for)f(any)h(other)f(zones,)g(only)h(the)f (firewall)382 3814 y(##)h(itself.)382 3872 y(##)g(To)f(administer)g (the)h(machines)f(within)g(the)g(zone,)h('ssh')f(is)h(allowed)f(from)g (the)382 3930 y(##)h(Internal)f(zone.)382 3988 y(##)h(The)f(zone)h(is)f (not)h(activated)f(in)g(the)h(default)f(fiaif.conf.)g(To)g(do)h(this)f (please)h(add)f(DMZ)h(to)382 4046 y(##)g(ZONES)f(variable.)382 4163 y(##)h(Name)f(of)h(the)f(zone.)h(Must)f(match)g(the)h(name)f(in)h (fiaif.conf.)382 4221 y(NAME=DMZ)382 4279 y(##)g(Network)f(interface)g (name)382 4337 y(DEV=eth2)382 4453 y(##)h(DYNAMIC:)148 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(can)f(change)h(during)f (operation)g(or)382 4511 y(##)418 b(if)30 b(the)f(IP)h(address)f(is)h (unknown)f(when)g(fiaif)h(is)f(started.)382 4569 y(##)h(GLOBAL:)178 b(Set)30 b(to)f('1')h(if)g(the)f(IP)h(if)f(this)h(zone)f(connects)g (you)h(to)f(the)382 4628 y(##)418 b(internet.)29 b(Set)h(to)f(zero)h (for)f(private)g(networks.)382 4686 y(DYNAMIC=0)382 4744 y(GLOBAL=1)382 4860 y(##)h(Network)f(information.)f(Nessesary)h(only)h (if)f(DYNAMIC=0)382 4918 y(IP=80.203.xxx.xxx)382 4976 y(MASK=255.255.255.0)382 5034 y(NET=80.203.xxx.xxx/255.255.255.0)382 5092 y(BCAST=80.203.xxx.xxx)382 5209 y(##)h(IP_EXTRA)f(specifies)f (that)i(the)f(interface)g(has)h(multiple)f(IP)h(addresses;)382 5267 y(##)g(all)f(the)h(interface's)e(extra)i(IP's)f(should)g(be)h (listed)f(here.)382 5325 y(IP_EXTRA="")382 5383 y(##)h(Specifies)e (extra)i(networks)f(in)g(this)h(zone)f(\(besides)g(NET\).)1831 5652 y Fl(26)p eop end %%Page: 27 30 TeXDict begin 27 29 bop 382 548 a Fa(NET_EXTRA="")382 664 y(##)30 b(Specify)f(if)g(the)h(zone)f(should)h(respond)f(to)g(DHCP) h(queries.)382 722 y(##)g(This)f(is)h(usefull)f(if)g(a)h(DHCP)g(server) f(is)h(running)f(on)g(the)h(firewall.)382 780 y(##)g(Remember)f(to)g (set)h(this)f(only)h(in)f(the)h(zone)f(for)h(which)f(the)h(DHCP)f (server)g(is)h(running.)382 839 y(DHCP_SERVER=0)382 955 y(##)g(The)f(descriptions)g(of)g(packets)g(coming)h(IN)f(to)h(the)g (interface)e(specifed)h(in)h(DEV)g(and)f(NETWORK)g(to)h (drop|accept|reject)382 1013 y(##)g(Use:)f (INPUT[N]=")e([:port]])2686 1022 y(*)2716 1013 y(]>)f(ip[/mask]>")382 1071 y(INPUT[0]="REJECT)h(ALL)i (0.0.0.0/0=>0.0.0.0/0")382 1187 y(##)g(The)f(descriptions)g(of)g (packets)g(going)h(OUT)f(of)h(the)g(interface)e(specifed)h(in)h(DEV)g (and)f(NETWORK)g(to)h(drop|accept|reject)382 1245 y(##)g(Use:)f (OUTPUT[N]=")d([:port]])2716 1254 y(*)2746 1245 y(]>)e(ip[/mask]>")382 1303 y(OUTPUT[0]="REJECT)h(ALL)h (0.0.0.0/0=>0.0.0.0/0")382 1420 y(##)h(Forward)f(rules.)g(Specify)g (where)g(packets)g(entering)g(this)h(zone)f(may)h(originate)f(from.)382 1478 y(##)h(Use:)f(FORWARD[N]=")e()h ([:port]])3075 1487 y(*)3105 1478 y(]>)d(ip[/mask]>")382 1536 y(##)382 1594 y(##)k(Use)f(this)h(to)f(protect)g(this)h(zone.)382 1652 y(##)g(Rules)f(are)g(read)h(in)g(the)f(order)g(they)h(are)f (written.)382 1710 y(##)h(Default)f(is)g(to)h(only)f(allow)h(www)f(and) h(https.)382 1768 y(##)g(Zone)f(int)h(are)f(also)h(allows)f(ssh)g (connections)382 1826 y(FORWARD[0]="ALL)f(ACCEPT)h(tcp)h(www,https)f (0.0.0.0/0=>0.0.0.0/0")382 1885 y(FORWARD[1]="INT)f(ACCEPT)h(tcp)h(ssh) f(0.0.0.0/0=>0.0.0.0/0")382 1943 y(FORWARD[2]="ALL)f(DROP)i(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 2059 y(##)h(Mark)f(rules.)g(Mark)h(packets)f (parsing)g(through)g(the)h(firewall.)382 2117 y(##)g(Use)f (MARK[N]=")f()g([:port]])2746 2126 y(*)2776 2117 y(]>)e(ip[/mask]>")382 2175 y(##)382 2233 y(##)j(MARK)f(packets)g(can)h(be)f(used)h(to)f(determine)g(how)h(a)g (packet)f(sould)g(be)h(routed.)382 2291 y(##)g(FIAIF)f(does)g(not)h (use)f(marking.)382 2350 y(#MARK[0]="ALL)f(1)i(tcp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 2408 y(#MARK[1]="ALL)f(2)i(udp)g(ALL)f (0.0.0.0/0=>0.0.0.0/0")382 2524 y(##)h(Make)f(special)g(replys)g(on)h (incoming)f(packets.)382 2582 y(##)h(Use:)f(REPLY_XXX=")f() h([:port]])2507 2591 y(*)2537 2582 y(]>)d(ip[/mask]>")382 2640 y(##)k(Where)f(type)g(can)h(be)g(one)f(of)h(the)f(following:)382 2698 y(##)89 b(icmp-net-unreachable,)28 b(icmp-host-unreachable,)f (icmp-port-unreachable,)382 2756 y(##)89 b(icmp-proto-unreachable,)28 b(icmp-net-prohibited,)f(icmp-host-prohibited)h(or)382 2814 y(##)89 b(tcp-reset)29 b(\(Only)h(valid)f(if)h(the)f(protocol)g (if)h(TCP\))382 2873 y(##)g(If)f(the)h(zone)f(equal)h(this)f(zone,)g (then)h(the)f(rules)h(apply)f(to)h(packets)382 2931 y(##)g(originating) e(from)i(this)f(network)g(towards)g(the)h(firewall)382 2989 y(REPLY_AUTH="DMZ)e(tcp-reset)h(tcp)h(auth)f (0.0.0.0/0=>0.0.0.0/0")382 3047 y(REPLY_TRACEROUTE="DMZ)e (icmp-port-unreachable)h(udp)i(33434:33464)e(0.0.0.0/0=>0.0.0.0/0")382 3163 y(##)i(Alter)f(the)g(destination)g(of)h(packets.)382 3221 y(##)g(Use:)f(REDIRECT_XXX=")i (ip[/mask]>)e(<[ipaddr[,ipaddr])2984 3230 y(*)3014 3221 y(])h([port]")382 3279 y(##)i(The)f(rule)h(applies)f (only)g(for)h(packet)f(originating)g(from)g(this)g(zone.)382 3337 y(#REDIRECT_PROXY="tcp)f(80)h(0.0.0.0/0=>0.0.0.0/0)f(127.0.0.1)h (3128")382 3454 y(##)h(Log)f(all)h(traffic)f(for)g(these)h(IP)f (addresses)382 3512 y(##)h(Use)f(WATCH_IP="[IP[/MASK]])1221 3521 y(*)1251 3512 y(|[FILE]")382 3570 y(#WATCH_IP="111.111.111.111/32) e(222.222.222.222/24")382 3686 y(##)j(Strip)f(ECN)g(bits)h(from)f(all)h (packets)f(destined)g(for)h(specified)e(IP-addresses)382 3744 y(##)i(in)f(this)h(zone)382 3802 y(##)g(Use:)f (ECN_REMOVE="[IP[/MASK]])1311 3811 y(*)1341 3802 y(|[FILE]")382 3861 y(#ECN_REMOVE="111.111.111.111/32)d(222.222.222.222/24")382 3977 y(##)k(Dissalow)f(any)g(communication)g(with)g(specified)g (MAC-addresses)f(in)i(this)f(zone)382 4035 y(##)h(Use:)f (MAX_DROP="[MAC)f(address])1309 4044 y(*)1339 4035 y(|[FILE]")382 4093 y(##)i(Inserted)f(on)g(PREROUTING)g(chain)382 4151 y(#MAC_DROP="XX:XX:XX:XX:XX:XX)e(YY:YY:YY:YY:YY:YY")382 4267 y(##)j(Dissalow)f(any)g(communication)g(with)g(specified)g (IP-addresses)f(in)i(this)f(zone)382 4325 y(##)h(Use:)f (IP_DROP="[IP[/MASK]])1221 4334 y(*)1251 4325 y(|[FILE]")382 4384 y(#IP_DROP="111.111.111.111/32)e(222.222.222.222/24")382 4500 y(##)j(Change)f(the)g(source)h(address)f(of)g(a)h(packet)f (comming)g(from)h(this)f(zone.)382 4558 y(##)h(This)f(is)h(also)f (called)g(masquerading.)382 4616 y(##)h(Use:)f(SNAT[N]=")f ([:port]])2238 4625 y(*)2268 4616 y(]>)d(ip[/mask]>")382 4674 y(##)k(Where:)f(ZONE)119 b(:)60 b(Destination)28 b(zone.)i(The)f(source)g(of)h(matched)f (packets)g(is)382 4732 y(##)568 b(changed)29 b(to)g(all)h(ip)g(numbers) f(for)g(the)h(zone.)382 4790 y(##)g(Warning:)f(enabling)g(a)g(default)g (\(0.0.0.0=>0.0.0.0\))f(SNAT)i(rule)f(and)h(having)382 4848 y(##)g(GLOBAL=1)f(or)g(DYNAMIC=1)g(enables)g(NAT)h(for)1607 4857 y(*)1637 4848 y(all)1727 4857 y(*)1787 4848 y(zones)f(since)g (there)h(is)f(no)h(way)382 4907 y(##)g(to)f(know)h(the)f(networks)g (for)h(NAT)f(beforehand.)g(Be)h(sure)f(to)h(restrict)f(the)382 4965 y(##)h(FORWARD[x])e(rules)i(in)f(zone.ext)g(to)h(only)f(forward)h (traffic)f(from)g(this)g(network.)382 5023 y(#SNAT[0]="EXT)f(ALL)i (0.0.0.0/0=>0.0.0.0/0")382 5139 y(##)g(Limit)f(new)g(packets.)382 5197 y(##)h(Use:)f(LIMIT_XXX=")f()h()g()g ()2595 5206 y(*)2625 5197 y(|<:port>]>)e (ip[/mask]>")382 5255 y(##)j(Where:)382 5313 y(##)89 b(ZONE)149 b(:)30 b(Is)g(the)f(zone)h(from)f(which)h(the)f (packet)g(originates.)g(This)g(can)h(be)g(this)f(zone)g(itself.)382 5372 y(##)89 b(POLICY)g(:)30 b(Is)g(waht)f(to)h(do)g(with)f(the)h (packet:)f(ACCEPT|REJECT|DROP)1831 5652 y Fl(27)p eop end %%Page: 28 31 TeXDict begin 28 30 bop 382 548 a Fa(##)89 b(LIMIT)119 b(:)30 b(Maximum)59 b(average)29 b(matching)g(rate:)h(specified)e(as)i (a)g(number,)59 b(with)g(an)90 b(optional)382 606 y(##)418 b('/second',)29 b('/minute',)g('/hour',)g(or)g('/day')h(suffix.)382 664 y(##)89 b(BURST)119 b(:)30 b(Maximum)59 b(initial)g(number)g(of)30 b(packets)f(to)h(match:)f(this)382 722 y(##)418 b(number)29 b(gets)h(recharged)f(by)g(one)h(every)f(time)60 b(the)f(limit)382 780 y(##)418 b(specified)59 b(above)29 b(is)h(not)f(reached,)g(up)h(to) g(this)f(number.)382 839 y(##)89 b(PROTOCOL)29 b(:)h(The)g(protocol:)f (tcp|udp|icmp|all.)f(This)h(parameter)g(is)g(optional)382 897 y(##)89 b(PORTS)119 b(:)30 b(If)g(protocol)f(is)g(tcp|udp:)g(A)h (list)g(of)f(ports)h(or)f(a)h(port)f(range.)382 955 y(##)866 b(icmp)90 b(:)29 b(A)h(single)f(icmp)h(type.)382 1013 y(##)418 b(this)30 b(parameter)e(is)i(optional,)f(and)h(must)f(only)g (be)h(specified,)382 1071 y(##)418 b(if)30 b(a)g(protocol)f(is)g (specified.)382 1129 y(##)89 b(IP/MASK)59 b(:)30 b(If)g(PORTS)f(are)h (specified,)e(then)i(an)g(optional)f(IP/MASK)g(source)g(and)g(address)g (can)h(be)g(specified.)382 1187 y(LIMIT_PING="EXT)e(DROP)i(5/second)f (10)g(TCP)h(www,https)f(0.0.0.0/0=>0.0.0.0/0")1831 5652 y Fl(28)p eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF fiaif-1.23.1/doc/fiaif/main.bib0000640000175000017500000003773311571724545015437 0ustar calvincalvin% Used @Misc{aiva02linux, author = {Tigran Aivazian}, title = {Linux Kernel 2.4 Internals}, month = {August}, year = {2002}, note = {\\http://www.moses.uklinux.net/patches/lki.html} } @inproceedings{bansal01analysis, author = {Nikhil Bansal and Mor Harchol-Balter}, title = {Analysis of {SRPT} scheduling: investigating unfairness}, booktitle = {{SIGMETRICS}/Performance}, pages = {279--290}, year = {2001}, url = {citeseer.nj.nec.com/425064.html} } % Used @inproceedings{blumofe94scheduling, author = {R. Blumofe and C. Leiserson}, title = {Scheduling multithreaded computations by work stealing}, booktitle = {Proceedings of the 35th Annual Symposium on Foundations of Computer Science, Santa Fe, New Mexico.}, pages = {356--368}, year = {1994}, month = {November} } % Used @Book{bovet01kernel, author = {Daniel P. Bovet and Marco Cesati}, editor = {Andy Oram}, title = {Understanding the Linux kernel}, publisher = {O'Reilly \& {Associates, Inc.}}, year = {2001}, } % Used @article{dandamudi99performance, author = {Sivarama P. Dandamudi and Samir Ayachi}, title = {Performance of Hierarchical Processor Scheduling in Shared-Memory Multiprocessor Systems}, journal = {IEEE Transactions on Computers}, volume = {48}, number = {11}, pages = {1202--1213}, year = {1999}, url = {citeseer.nj.nec.com/71210.html} } % OPTnote = {\\The article compares hierarchical processor scheduling to % traditional time-sharing and space-sharing scheduling on % non-uniform memory access systems (NUMA). The main purpose % of HSP is to avoid queue access congestion, and the % simulation results presented includes this % parameter.} @Article{dans97numa, author = {S.P. Dandamudi and P. Cheng S.}, title = {Performance impact of run queue organization and synchronization on large-scale NUMA multiprocessor systems}, journal = {Journal of Systems Architecture}, year = {1997}, volume = {43}, number = {6--7}, pages = {491--511} } @misc{ed-performance, author = {Robert D. Blimofe and Dionosios Papadopoulos}, title = {The Performance of Work Stealing in Multiprogrammed Environments}, institution = {Department of computer sciences, the university of Texas at Austin}, url = {citeseer.nj.nec.com/103560.html} } % Used @inproceedings{el90multimodel, author = "Scott, Micha{}el L. and LeBlanc, Thomas J. and Marsh, Brian D.", title = "Multi-Model Parallel Programming in {P}syche", booktitle = "Proc.\ 2nd Annual {ACM} {SIGPLAN} Symp.\ on Principles and Practice of Parallel Programming", address = "Seattle, WA ({USA})", pages = "70--78", year = "1990" } @inproceedings{fatourou99new, author = {Panagiota Fatourou and Paul G. Spirakis}, title = {A New Scheduling Algorithm for General Strict Multithreaded Computations}, booktitle = {International Symposium on Distributed Computing}, pages = {297--311}, year = {1999} } @article{frgelamu96, author = {Paulo M. Franca and Michel Gendreau and Gilbert Laporte and Felipe M. Muller}, title = {A tabu search heuristic for the multiprocessor scheduling problem with sequence dependent setup times}, journal = {International Journal of Production Economics}, volume = {43}, number = {2--3}, pages = {79--89}, year= {1996} } @article{girtar99poly, author = {Eberhard Girlich and Alexander G. Tarnowski}, title = {On polynomial solvability of two multiprocessor scheduling problems}, journal = {Mathematical Methods of Operations Research}, volume = {50}, number = {1}, pages = {27--51}, year = {1999}, publisher = {Physica-Verlag} } @Article{gubrka00preempt, author = {Xiaotie Deng Nian Gu and T. Brecht and Kaicheng Lu}, title = {Preemptive scheduling of parallel jobs on multiprocessors}, journal = {SIAM Journal on Computing Issue}, year = {2000}, volume = {30}, number = {1}, pages = {145--160}, } % used @Article{haldar91, author = {S. Haldar and D. K. Subramanian}, title = {Fairness in processor scheduling in time sharing systems}, journal = {Operating Systems Review}, year = {1991}, volume = {Vol 25. Issue 1.}, pages = {4--18}, } % Used @TechReport{hamlil99strategies, author = {Babak Hamidzadeh and David J. Lilja}, title = {Dynamic Scheduling Strategies for Shared-Memory Multiprocessors}, institution = {Department of Computer Science, University of Science \& Technology, Clear Water Bay, Kowloon, Hong Kong and Department of Electrical Engineering, University of Minnesota, Minneapolis, MN 55455}, year = {1999} } % Used @misc{feitelson97job, author = {D. Feitelson}, title = {Job Scheduling in Multiprogrammed Parallel Systems IBM Research Report RC}, text = {Feitelson, D.: Job Scheduling in Multiprogrammed Parallel Systems IBM Research Report RC 19970, Second Revision (1997)}, year = {1997} } % % OPTnote = {A deep and excact description of many wildly used % scheduling theories, and references of where these are % implemented. The conclusion is firm and precise, and does not % leave any doubt. A very good paper. The paper does not include any % data-analysis or practival experiements.} % @PhdThesis{ingram00integrated, author = {D. Ingram}, title = {Integrated Quality of Service Management}, school = {University of Cambridge}, year = {2000}, month = {August}, url = {citeseer.nj.nec.com/ingram00integrated.html} } % Used @article{jiaant01approx, author = {Jianer Chen and Antonio Miranda}, title = {A Polynomial Time Approximation Scheme for General Multiprocessor Job Scheduling}, journal = {SIAM Journal on Computing}, volume = {31}, number = {1}, pages = {1--17}, year = {2001} } % Used @article{kay88fair, author = "J. Kay and P. Lauder", title = "A fair share scheduler", journal = "Communications of the ACM", volume = "31", number = "1", pages = "44--55", year = "1988", url = "citeseer.nj.nec.com/kay88fair.html" } @Manual{kernelapi, title = {The Linux Kernel API}, note = "\\http://kernelnewbies.org/documents/kdoc/kernel-api/linuxkernelapi.html" } % Used @Misc{krav01linux, author = {Mike Kravetz and Hubertus Franke}, title = {Multi-Queue Scheduler for Linux}, howpublished = {IBM Linux Technology Center}, year = {2001}, note= {\\http://lse.sourceforge.net/scheduling/mq1.html} } @Misc{linuxsource, author = {Linux Thorvalds et. al.}, title = {Linux v. 2.4.18 kernel source}, year = {2002}, note = {\\http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.18.tar.gz} } % Used @article{liu98worstcase, author = {Zhen Liu}, title = {Worst-case analysis of scheduling heuristics of parallel systems}, journal = {Parallel Computing}, volume = {24}, number = {5--6}, pages = {863--891}, year = {1998} } @techreport{ markatos93localitybased, author = {Evangelos P. Markatos and Thomas J. LeBlanc}, title = {Locality-Based Scheduling in Shared-Memory Multiprocessors}, number = {94}, year = {1993}, url = {citeseer.nj.nec.com/markatos93localitybased.html}, institution = {{FORTH-ICS / TR-094}} } % OPTnote = {Schduling descissions based on knowladge of cache locality.}, % Used @misc{micah-surplus, author = {Abhishek Chandra Micah}, title = {Surplus Fair Scheduling: A Proportional-Share CPU Scheduling Algorithm for Symmetric Multiprocessors}, url = {http://citeseer.nj.nec.com/479999.html} } % Used @inproceedings{mitzenmacher98analyses, author = "Michael Mitzenmacher", title = "Analyses of Load Stealing Models Based on Differential Equations", booktitle = "{ACM} Symposium on Parallel Algorithms and Architectures", pages = "212--221", year = "1998", url = "citeseer.nj.nec.com/135295.html" } @InProceedings{nieh-virtualtime, author = {Jason Nieh and Chris Waill and Hua Zhong}, title = {Virtual-Time Round-Robin: An {O}(1) Proportional Share Scheduler}, booktitle = {Proceedings of the 2001 USENIX Annual Technical Conferencen}, year = {2001}, month = {June}, url = "citeseer.nj.nec.com/nieh01virtualtime.html" } @InProceedings{phedandoli96cache, author = {James Philbin and Jan Edler and Otto J. Anshus and Craig C. Douglas and Kai Li}, title = {Thread scheduling for cache locality}, booktitle = {Proceedings of the seventh international conference on Architectural support for programming languages and operating systems}, pages = {60--71}, year = {1996}, publisher = {ACM Press} } @misc{posix01ieee, key = {IEEE Std. 1003.1-2001}, author = {}, title = {Information technology--Portable Operating System Interface (POSIX): System Interfaces, Issue 6}, year = {2001}, organization = {IEEE} } % Used @article{ritchie74unix, author = "Dennis Ritchie and Ken Thompson", title = "The {UNIX} Time-Sharing System", journal = "Communications of the ACM", volume = "17", number = "7", pages = "365--375", year = "1974" } % Used @Book{rubi98device, author = {Alessandro Rubini}, editor = {Andy Oram and Ellen Siever}, title = {Linux device drivers}, publisher = {O'Reilly \& {Associates, Inc.}}, year = {1998}, } @Article{seen97dynamic, author = {C. Severance and R. Enbody}, title = {Comparing gang scheduling with dynamic space sharing on symmetric multiprocessors using automatic self-allocating threads (ASAT)}, journal = {Parallel Processing Symposium, 1997. Proceedings., 11th International}, year = {1997}, pages = {288--292} } % OPTnote = {\\The article compares three scheduling algorithms: Free, % gang and ASAT, and examines how well they schedule a % mix of single-threaded and multi-threaded jobs. The % algorithms are implemented on an SGI system, and % tested with different mix of jobs} % Used @inproceedings{silva00improving, author = {Fabricio Alves Barbosa da Silva and Isaac D. Scherson}, title = {Improving Parallel Job Scheduling Using Runtime Measurements}, booktitle = {JSSPP}, pages = {18--38}, year = {2000} } % OPTnote = {\\This article examines the possibility to improve I/O bound % jobs, by categorizing jobs, using a gang % scheduler. Categorizing is done by runtime measuring the % behavior of a job wrt. I/O operations. Results are % simulated, and shows a performance improvement on I/O bound % jobs.} % Used @techreport{markatos92using, author = {E. P. Markatos and T. J. LeBlanc}, title = {Using Processor Affinity in Loop Scheduling on Shared-Memory Multiprocessors}, number = {TR410}, year = {1992}, url = {citeseer.nj.nec.com/markatos92using.html}, institution = {} } % OPTnote = "Describes loop scheduling and cache affinity", % Used @article{silva01efficient, author = {Fabricio Alves Barbosa da Silva and Isaac D. Scherson}, title = {Efficient Parallel Job Scheduling Using Gang Service}, journal = {International Journal of Foundations of Computer Science}, volume = {12}, number = {3}, pages = {265--284}, year = {2001} } % OPTnote = {\\The article describes a generalized gang scheduler % (Concurrent gang scheduling), for scheduling gangs of jobs on % distributed memory multiprocessor systems. The objective is to find % a scheduler, that compares to standard UNIX schedulers % wrt. fx. I/O-intensive jobs. Simulations are done to evaluate % scheduler strategies." } @book{stallings2001, author = {Stallings, William}, title = {Operating systems}, edition = {fourth }, publisher = {Prentice Hall}, year = {2001}, signature = {Books: Stallings}, isbn = {0-13-031999-9} } % OPTnote = {Quick overview over both realtime and non-realtime scheduling. % The book describes some historical notes, and describes % implementations in wellknown operating systems.} % used @book{tanenbaum1997, author = {Tanenbaum, Andrew S. and Woodhull, Albert S.}, title = {Operating systems: Design and implementation}, edition = {Second }, publisher = {Prentice Hall}, year = {1997}, isbn = {0-13-630195-9} } % OPTnote = {Quick overview over both realtime and nonrealtime scheduling. % The book describes some historical notes, and describes % implementations in wellknown operating systems.} % Used @Article{yuelil97alloc, author = {K.K. Yue and D.J. Lilja}, title = {An effective processor allocation strategy for multiprogrammed shared-memory multiprocessors}, journal = {IEEE Transactions on Parallel and Distributed Systems}, year = {1997}, OPTkey = {}, volume = {8}, number = {12}, pages = {1246--1258}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @Book{gre00multi, author = {Gregory R. Andrews}, title = {Foundations of Multithreaded, Parallel, and Distrubuted Programming}, publisher = {Addison-Westley}, year = {2000}, } % used @misc{dimitrios-efficient, author = "Elefetherios D. Polychronopoulos and Dimitrios S. Nikolopoulos and Theodore S. Papatheodorou and Nacho Navarro and Jesus Labarta Xavier Martorell", title = "An Efficient Kernel-level Scheduling Methodology for Multiprogrammed Shared Memory Multiprocessors", url = "citeseer.nj.nec.com/430963.html" } % used @MastersThesis{wu93processor, author = {Chee-Shong Wu}, title = {Processor scheduling in multiprogrammed shared memory numa multiprocessors}, school = {Department of Computer Science, University of Toronto}, year = {1993}, note = {Describes some models for process execution time.} } @Misc{andreasson, OPTkey = {}, author = {Oskar Andreasson}, title = {Iptables Tutorial}, OPTmonth = {}, OPTyear = {}, OPTannote = {}, note = {\\http://iptables-tutorial.frozentux.net/iptables-tutorial.html} } @Misc{netfilter, OPTkey = {}, Optauthor = {}, title = {Netfilter}, OPTmonth = {}, OPTyear = {}, OPTannote = {}, note = {\\http://www.netfilter.org} } @Misc{fiaif, OPTkey = {}, author = {Anders Fugmann}, title = {FIAIF is an intelligent firewall}, OPTmonth = {}, OPTyear = {}, note = {\\http://www.fiaif.net}, OPTannote = {} } @Misc{debian, OPTkey = {}, OPTauthor = {}, title = {Debian}, OPThowpublished = {}, OPTmonth = {}, OPTyear = {}, note = {\\http://www.debian.org}, OPTannote = {} } @Misc{mnf, OPTkey = {}, author = {Mandrakesoft}, title = {Multi Network Firewall}, OPThowpublished = {}, OPTmonth = {}, OPTyear = {}, note = {\\http://www.mandrakesoft.com/products/mnf}, OPTannote = {} } @Misc{shorewall, OPTkey = {}, OPTauthor = {}, title = {Shorewall}, OPThowpublished = {}, OPTmonth = {}, OPTyear = {}, note = {\\http://www.shorewall.net}, OPTannote = {} } fiaif-1.23.1/doc/fiaif/conffiles.tex0000640000175000017500000000152111571724545016511 0ustar calvincalvin\section{Configuration files}\label{app:default} Configuration files are placed under \verb|/etc/fiaif| by the default installation. \subsection{fiaif.conf}\label{app:fiaif.conf} \begin{tiny} \verbatiminput{../../conf/fiaif.conf} \end{tiny} \subsection{reserved\_networks} \begin{tiny} \verbatiminput{conf/reserved-networks} \end{tiny} \subsection{private\_networks} \begin{tiny} \verbatiminput{conf/private-networks} \end{tiny} \subsection{type\_of\_services} \begin{tiny} \verbatiminput{conf/type-of-services} \end{tiny} \subsection{zone.ext}\label{app:zone.ext} \begin{tiny} \verbatimtabinput{../../conf/zone.ext} \end{tiny} \subsection{zone.int}\label{app:zone.int} \begin{tiny} \verbatimtabinput{../../conf/zone.int} \end{tiny} \subsection{zone.dmz}\label{app:zone.dmz} \begin{tiny} \verbatimtabinput{../../conf/zone.dmz} \end{tiny} fiaif-1.23.1/doc/fiaif/fiaif.tex0000640000175000017500000000627712076552225015627 0ustar calvincalvin%***************************************************************************** % Head of main file, to be used thwn makin ps files. % % Source : $RCSfile: psheader.tex,v $ % Date : $Date: 2002/12/01 21:43:02 $ % Version : $Revision: 1.1 $ % Author : $Author: afu $ % Contains : Head of main file %***************************************************************************** \documentclass[a4paper,11pt]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} %***************************************************************************** % Tail part of main file. % % Source : $RCSfile: main.tex,v $ % Date : $Date: 2003/12/02 22:42:35 $ % Version : $Revision: 1.16 $ % Author : $Author: afu $ % Contains : Tail part of main file %***************************************************************************** %\include{psheader.tex} \usepackage{graphicx} % package for the gray levels \usepackage{tabularx, float} \usepackage{longtable} \usepackage{array} \usepackage{fancyhdr} %\usepackage{booktabs} % Tables \usepackage{courier} \usepackage{amsmath} \usepackage{varioref} \usepackage{makeidx} % Index. \usepackage{moreverb} \usepackage{syntax} %\usepackage[notindex,notlot,notlof]{tocbibind} %\usepackage{listings} % listings package for code inclusion %% \lstset{captionpos=b, % Set captions at the bottom of the listing %% float=tb, % Set listings to float %% indent=1cm, % Inden listings by 1cm. %% basicstyle=\normalsize\ttfamily, %% keywordstyle=\normalsize\bfseries\ttfamily, %% identifierstyle=\normalsize\ttfamily, %% commentstyle=\normalsize\ttfamily\itshape, %% stringstyle=\normalsize\ttfamily, %% } %\newcommand{\lstverb}[1]{\lstinline[captionpos=,float=,indent=]|#1|} \vrefwarning % Names \newcommand{\chapref}[1]{chapter\ \vref{#1}} \newcommand{\secref}[1]{section\ \vref{#1}} \newcommand{\figref}[1]{figure\ \vref{#1}} \newcommand{\appref}[1]{appendix\ \vref{#1}} \newcommand{\tableref}[1]{table\ \vref{#1}} \newcommand{\listref}[1]{listing\ \vref{#1}} \newcommand{\eqnref}[1]{equation\ \vref{#1}} \newcommand{\Chapref}[1]{Chapter\ \vref{#1}} \newcommand{\Secref}[1]{Section\ \vref{#1}} \newcommand{\Figref}[1]{Figure\ \vref{#1}} \newcommand{\Appref}[1]{Appendix\ \vref{#1}} \newcommand{\Tableref}[1]{Table\ \vref{#1}} \newcommand{\Listref}[1]{Listing\ \vref{#1}} \newcommand{\Eqnref}[1]{Equation\ \vref{#1}} \newcommand{\tit}[1]{\textit{#1}} \newcommand{\minix}{MINIX} \newcommand{\linux}{Linux} \newcommand{\bs}[1]{\boldsymbol{#1}} \newcommand{\ruledef}[2]{\textbf{#1}=#2} \newpage \makeindex \title{Linux Firewalling and FIAIF} \author{Anders Peter Fugmann\\ \texttt{anders@fugmann.net}} \date{Version 1.0.4} \begin{document} \maketitle \thispagestyle{empty} \mbox{} \newpage \pagenumbering{roman} \tableofcontents \newpage \pagenumbering{arabic} \setcounter{page}{1} \input{layout} \newpage \bibliographystyle{plain} %\addcontentsline{toc}{chapter}{Bibliography} %\addcontentsline{toc}{chapter}{\numberline{}Bibliography} \bibliography{main} \newpage \appendix \input{usage} \input{conffiles} \end{document} fiaif-1.23.1/doc/fiaif/usage.tex0000640000175000017500000000276612076545774015667 0ustar calvincalvin\section{Usage} FIAIF installs a program in \verb|/etc/init.d/fiaif|, which is used to control the firewall. The program should only be started by the \textit{root} user. The program accepts the following arguments. \begin{description} \item[\texttt{start}:] This will save the current firewall rules, and deploys the new firewall as described by the configuration files. \item[\texttt{stop}:] Remove all firewall rules, and restores previously saved firewall rules. This can only be used if the firewall has been previously started. \item[\texttt{force-reload}:] This option is the same as start, although it can be invoked without stopping the firewall first. \item[\texttt{restart}:] This option stops and then restarts the firewall. Refer to starting and stopping FIAIF. \item[\texttt{panic}:] Shut off all IP traffic - do not accept any packets from anywhere for any reason. This can be used, for example, if uninvited guests are discovered on the system to quickly close the firewall and start analyzing log files. \item[\texttt{status}:] Lists all rules in the firewall. \item[\texttt{test}:] Check the rules in the configuration files. All rules are written to the file specified in the \verb|TEST_FILE| parameter in the global configuration file. This can be useful to see that the syntax of the rules is correct before deploying the firewall. Any errors will be written to \verb|stdout|. Besides testing, it also runs a sanity check on the networking configuration. \end{description} fiaif-1.23.1/doc/fiaif/fiaif.blg0000640000175000017500000000202412076552225015555 0ustar calvincalvinThis is BibTeX, Version 0.99d (TeX Live 2012/Debian) Capacity: max_strings=35307, hash_size=35307, hash_prime=30011 The top-level auxiliary file: fiaif.aux The style file: plain.bst Database file #1: main.bib Warning--to sort, need author or key in netfilter Warning--to sort, need author or key in shorewall Warning--to sort, need author or key in debian You've used 6 entries, 2118 wiz_defined-function locations, 517 strings with 4363 characters, and the built_in function-call counts, 1097 in all, are: = -- 96 > -- 24 < -- 0 + -- 12 - -- 6 * -- 32 := -- 156 add.period$ -- 15 call.type$ -- 6 change.case$ -- 21 chr.to.int$ -- 0 cite$ -- 9 duplicate$ -- 42 empty$ -- 136 format.name$ -- 6 if$ -- 250 int.to.chr$ -- 0 int.to.str$ -- 6 missing$ -- 0 newline$ -- 30 num.names$ -- 6 pop$ -- 66 preamble$ -- 1 purify$ -- 15 quote$ -- 0 skip$ -- 36 stack$ -- 0 substring$ -- 30 swap$ -- 6 text.length$ -- 0 text.prefix$ -- 0 top$ -- 0 type$ -- 24 warning$ -- 3 while$ -- 6 width$ -- 7 write$ -- 50 (There were 3 warnings) fiaif-1.23.1/doc/fiaif/fiaif.ilg0000640000175000017500000000032112076552225015562 0ustar calvincalvinThis is makeindex, version 2.15 [TeX Live 2012] (kpathsea + Thai support). Scanning input file fiaif.idx...done (0 entries accepted, 0 rejected). Nothing written in fiaif.ind. Transcript written in fiaif.ilg. fiaif-1.23.1/doc/fiaif/main.tex0000640000175000017500000000532011571724545015466 0ustar calvincalvin%***************************************************************************** % Tail part of main file. % % Source : $RCSfile: main.tex,v $ % Date : $Date: 2003/12/02 22:42:35 $ % Version : $Revision: 1.16 $ % Author : $Author: afu $ % Contains : Tail part of main file %***************************************************************************** %\include{psheader.tex} \usepackage{graphicx} % package for the gray levels \usepackage{tabularx, float} \usepackage{longtable} \usepackage{array} \usepackage{fancyhdr} %\usepackage{booktabs} % Tables \usepackage{courier} \usepackage{amsmath} \usepackage{varioref} \usepackage{makeidx} % Index. \usepackage{moreverb} \usepackage{syntax} %\usepackage[notindex,notlot,notlof]{tocbibind} %\usepackage{listings} % listings package for code inclusion %% \lstset{captionpos=b, % Set captions at the bottom of the listing %% float=tb, % Set listings to float %% indent=1cm, % Inden listings by 1cm. %% basicstyle=\normalsize\ttfamily, %% keywordstyle=\normalsize\bfseries\ttfamily, %% identifierstyle=\normalsize\ttfamily, %% commentstyle=\normalsize\ttfamily\itshape, %% stringstyle=\normalsize\ttfamily, %% } %\newcommand{\lstverb}[1]{\lstinline[captionpos=,float=,indent=]|#1|} \vrefwarning % Names \newcommand{\chapref}[1]{chapter\ \vref{#1}} \newcommand{\secref}[1]{section\ \vref{#1}} \newcommand{\figref}[1]{figure\ \vref{#1}} \newcommand{\appref}[1]{appendix\ \vref{#1}} \newcommand{\tableref}[1]{table\ \vref{#1}} \newcommand{\listref}[1]{listing\ \vref{#1}} \newcommand{\eqnref}[1]{equation\ \vref{#1}} \newcommand{\Chapref}[1]{Chapter\ \vref{#1}} \newcommand{\Secref}[1]{Section\ \vref{#1}} \newcommand{\Figref}[1]{Figure\ \vref{#1}} \newcommand{\Appref}[1]{Appendix\ \vref{#1}} \newcommand{\Tableref}[1]{Table\ \vref{#1}} \newcommand{\Listref}[1]{Listing\ \vref{#1}} \newcommand{\Eqnref}[1]{Equation\ \vref{#1}} \newcommand{\tit}[1]{\textit{#1}} \newcommand{\minix}{MINIX} \newcommand{\linux}{Linux} \newcommand{\bs}[1]{\boldsymbol{#1}} \newcommand{\ruledef}[2]{\textbf{#1}=#2} \newpage \makeindex \title{Linux Firewalling and FIAIF} \author{Anders Peter Fugmann\\ \texttt{anders@fugmann.net}} \date{Version 1.0.4} \begin{document} \maketitle \thispagestyle{empty} \mbox{} \newpage \pagenumbering{roman} \tableofcontents \newpage \pagenumbering{arabic} \setcounter{page}{1} \input{layout} \newpage \bibliographystyle{plain} %\addcontentsline{toc}{chapter}{Bibliography} %\addcontentsline{toc}{chapter}{\numberline{}Bibliography} \bibliography{main} \newpage \appendix \input{usage} \input{conffiles} \end{document} fiaif-1.23.1/doc/fiaif/fiaif.log0000640000175000017500000003647312076552226015612 0ustar calvincalvinThis is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=latex 2013.1.19) 19 JAN 2013 18:15 entering extended mode restricted \write18 enabled. %&-line parsing enabled. **fiaif.tex (./fiaif.tex LaTeX2e <2011/06/27> Babel and hyphenation patterns for english, dumylang, nohyphenation, cr oatian, bulgarian, ukrainian, russian, slovak, czech, danish, dutch, finnish, f rench, basque, ngerman, german, swissgerman, ngerman-x-2012-05-30, german-x-201 2-05-30, monogreek, greek, ibycus, ancientgreek, hungarian, italian, latin, mon golian, mongolianlmc, nynorsk, bokmal, indonesian, esperanto, coptic, welsh, ir ish, interlingua, serbian, serbianc, slovenian, friulan, romansh, estonian, rom anian, armenian, uppersorbian, turkish, afrikaans, icelandic, kurmanji, polish, portuguese, galician, catalan, spanish, swedish, loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2007/10/19 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo File: size11.clo 2007/10/19 v1.4h Standard LaTeX file (size option) ) \c@part=\count79 \c@section=\count80 \c@subsection=\count81 \c@subsubsection=\count82 \c@paragraph=\count83 \c@subparagraph=\count84 \c@figure=\count85 \c@table=\count86 \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 ) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty Package: inputenc 2008/03/30 v1.1d Input encoding file \inpenc@prehook=\toks14 \inpenc@posthook=\toks15 (/usr/share/texlive/texmf-dist/tex/latex/base/latin1.def File: latin1.def 2008/03/30 v1.1d Input encoding file )) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty Package: fontenc 2005/09/27 v1.99g Standard LaTeX package (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file LaTeX Font Info: Redeclaring font encoding T1 on input line 43. )) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty Package: keyval 1999/03/16 v1.13 key=value parser (DPC) \KV@toks@=\toks16 ) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty Package: trig 1999/03/16 v1.09 sin cos tan (DPC) ) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live ) Package graphics Info: Driver file: dvips.def on input line 91. (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) )) \Gin@req@height=\dimen103 \Gin@req@width=\dimen104 ) (/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty Package: tabularx 1999/01/07 v2.07 `tabularx' package (DPC) (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty Package: array 2008/09/09 v2.4c Tabular extension package (FMi) \col@sep=\dimen105 \extrarowheight=\dimen106 \NC@list=\toks17 \extratabsurround=\skip43 \backup@length=\skip44 ) \TX@col@width=\dimen107 \TX@old@table=\dimen108 \TX@old@col=\dimen109 \TX@target=\dimen110 \TX@delta=\dimen111 \TX@cols=\count87 \TX@ftn=\toks18 ) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty Package: float 2001/11/08 v1.3d Float enhancements (AL) \c@float@type=\count88 \float@exts=\toks19 \float@box=\box26 \@float@everytoks=\toks20 \@floatcapt=\box27 ) (/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC) \LTleft=\skip45 \LTright=\skip46 \LTpre=\skip47 \LTpost=\skip48 \LTchunksize=\count89 \LTcapwidth=\dimen112 \LT@head=\box28 \LT@firsthead=\box29 \LT@foot=\box30 \LT@lastfoot=\box31 \LT@cols=\count90 \LT@rows=\count91 \c@LT@tables=\count92 \c@LT@chunks=\count93 \LT@p@ftn=\toks21 ) (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty \fancy@headwidth=\skip49 \f@ncyO@elh=\skip50 \f@ncyO@erh=\skip51 \f@ncyO@olh=\skip52 \f@ncyO@orh=\skip53 \f@ncyO@elf=\skip54 \f@ncyO@erf=\skip55 \f@ncyO@olf=\skip56 \f@ncyO@orf=\skip57 ) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/courier.sty Package: courier 2005/04/12 PSNFSS-v9.2a (WaS) ) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty Package: amsmath 2000/07/18 v2.13 AMS math features \@mathmargin=\skip58 For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty Package: amstext 2000/06/29 v2.01 (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty File: amsgen.sty 1999/11/30 v2.0 \@emptytoks=\toks22 \ex@=\dimen113 )) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty Package: amsbsy 1999/11/29 v1.2d \pmbraise@=\dimen114 ) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty Package: amsopn 1999/12/14 v2.01 operator names ) \inf@bad=\count94 LaTeX Info: Redefining \frac on input line 211. \uproot@=\count95 \leftroot@=\count96 LaTeX Info: Redefining \overline on input line 307. \classnum@=\count97 \DOTSCASE@=\count98 LaTeX Info: Redefining \ldots on input line 379. LaTeX Info: Redefining \dots on input line 382. LaTeX Info: Redefining \cdots on input line 467. \Mathstrutbox@=\box32 \strutbox@=\box33 \big@size=\dimen115 LaTeX Font Info: Redeclaring font encoding OML on input line 567. LaTeX Font Info: Redeclaring font encoding OMS on input line 568. \macc@depth=\count99 \c@MaxMatrixCols=\count100 \dotsspace@=\muskip10 \c@parentequation=\count101 \dspbrk@lvl=\count102 \tag@help=\toks23 \row@=\count103 \column@=\count104 \maxfields@=\count105 \andhelp@=\toks24 \eqnshift@=\dimen116 \alignsep@=\dimen117 \tagshift@=\dimen118 \tagwidth@=\dimen119 \totwidth@=\dimen120 \lineht@=\dimen121 \@envbody=\toks25 \multlinegap=\skip59 \multlinetaggap=\skip60 \mathdisplay@stack=\toks26 LaTeX Info: Redefining \[ on input line 2666. LaTeX Info: Redefining \] on input line 2667. ) (/usr/share/texlive/texmf-dist/tex/latex/tools/varioref.sty Package: varioref 2011/10/02 v1.4z package for extended references (FMi) \c@vrcnt=\count106 ) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty Package: makeidx 2000/03/29 v1.0m Standard LaTeX package ) (/usr/share/texlive/texmf-dist/tex/latex/moreverb/moreverb.sty Package: moreverb 2008/06/03 v2.3a `more' verbatim facilities (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements \every@verbatim=\toks27 \verbatim@line=\toks28 \verbatim@in@stream=\read1 ) \tab@position=\count107 \tab@size=\count108 \listing@line=\count109 ) (/usr/share/texlive/texmf-dist/tex/latex/mdwtools/syntax.sty Package: syntax 1996/05/17 1.07 Syntax typesetting (MDW) \grammarparsep=\skip61 \grammarindent=\dimen122 \sdstartspace=\skip62 \sdendspace=\skip63 \sdmidskip=\skip64 \sdtokskip=\skip65 \sdfinalskip=\skip66 \sdrulewidth=\dimen123 \sdcirclediam=\dimen124 \sdindent=\dimen125 ) \@indexfile=\write3 \openout3 = `fiaif.idx'. Writing index file fiaif.idx (./fiaif.aux) \openout1 = `fiaif.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 86. LaTeX Font Info: ... okay on input line 86. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 86. LaTeX Font Info: ... okay on input line 86. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 86. LaTeX Font Info: ... okay on input line 86. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 86. LaTeX Font Info: ... okay on input line 86. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 86. LaTeX Font Info: ... okay on input line 86. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 86. LaTeX Font Info: ... okay on input line 86. LaTeX Font Info: Try loading font information for T1+pcr on input line 88. (/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. ) [1 ] (./fiaif.toc [1]) \tf@toc=\write4 \openout4 = `fiaif.toc'. [2] (./layout.tex (./preface.tex) [1] (./introduction.tex) [2] (./iptables.tex [3]) [4] (./firewall.tex Underfull \hbox (badness 10000) in paragraph at lines 21--25 [] Underfull \hbox (badness 10000) in paragraph at lines 26--32 [] [5] File: fig/zones.eps Graphic file (type eps) [6] Overfull \hbox (69.30356pt too wide) in paragraph at lines 94--104 \T1/cmr/m/n/10.95 name must be listed in FI-AIF global con-fig-u-ra-tion file, named []\T1/pcr/m/n/10.95 /etc/fiaif/fiaif.conf\T1/cmr/m/n/10.95 . [] ) (./rules.tex [7] Underfull \hbox (badness 10000) in paragraph at lines 26--29 [] [8] [9] Underfull \hbox (badness 10000) in paragraph at lines 148--150 [] [10] Overfull \hbox (1.34956pt too wide) in paragraph at lines 199--199 []\T1/pcr/m/n/10.95 INPUT[0]="ACCEPT tcp 25,80,443,22 0.0.0.0/0=>0.0.0.0/0" [] [11] Overfull \hbox (7.91956pt too wide) in paragraph at lines 263--263 []\T1/pcr/m/n/10.95 REPLY_AUTH="EXT tcp-reset tcp auth 0.0.0.0/0=>0.0.0.0/0" [] [12] [13] Overfull \hbox (0.13194pt too wide) in paragraph at lines 374--377 \T1/cmr/m/n/10.95 and that matches the []\T1/pcr/m/n/10.95 proto_ip \T1/cmr/m/n /10.95 are marked with the value []\T1/pcr/m/n/10.95 \T1/cmr/m/n/10 .95 . [] [14] [15]) (./configuration.tex LaTeX Font Info: Try loading font information for OMS+cmr on input line 17. (/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions ) LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available (Font) Font shape `OMS/cmsy/m/n' tried instead on input line 17. ) [16] (./related.tex) [17] (./conclusion.tex)) [18] (./fiaif.bbl) [19] (./usage.tex LaTeX Font Info: Font shape `T1/pcr/bx/n' in size <10.95> not available (Font) Font shape `T1/pcr/b/n' tried instead on input line 7. ) (./conffiles.tex File: ../../conf/fiaif.conf (verbatim) [20] [21] File: conf/reserved-networks (verbatim) File: conf/private-networks (verbatim) File: conf/type-of-services (verbatim) [22] Overfull \hbox (21.59903pt too wide) in paragraph at lines 22--22 []\T1/pcr/m/n/6 TOS_MAXIMIZE_THROUGHPUT_TCP="Maximize-Throughput tcp ftp-data,s mtp,imap,imaps,pop3,pop3s,cvspserver,rsync"[] [] Overfull \hbox (25.19902pt too wide) in paragraph at lines 27--27 []\T1/pcr/m/n/6 ## The descriptions of packets coming IN to the interface speci fed in DEV and NETWORK to drop|accept|reject[] [] Overfull \hbox (14.39905pt too wide) in paragraph at lines 27--27 []\T1/pcr/m/n/6 ## Use: INPUT[N]=" [:port]]*]> ip[/mask]>"[] [] Overfull \hbox (25.19902pt too wide) in paragraph at lines 27--27 []\T1/pcr/m/n/6 ## The descriptions of packets going OUT of the interface speci fed in DEV and NETWORK to drop|accept|reject[] [] Overfull \hbox (17.99904pt too wide) in paragraph at lines 27--27 []\T1/pcr/m/n/6 ## Use: OUTPUT[N]=" [:port]]*]> ip[/mask]>"[] [] [23] Overfull \hbox (53.99895pt too wide) in paragraph at lines 27--27 []\T1/pcr/m/n/6 ## Use: FORWARD[N]=" [:port]]*]> ip[/mask]=>ip[/mask]"[] [] Overfull \hbox (21.59903pt too wide) in paragraph at lines 27--27 []\T1/pcr/m/n/6 ## Use MARK[N]=" [:port]]*]> ip[/mask]>"[] [] Overfull \hbox (32.399pt too wide) in paragraph at lines 27--27 []\T1/pcr/m/n/6 ## Use: LIMIT_XXX=" *|<:port>]> ip[/mask]>"[] [] Overfull \hbox (3.59908pt too wide) in paragraph at lines 27--27 []\T1/pcr/m/n/6 ## IP/MASK : If PORTS are specified, then an optional IP/MAS K source and address can be specified.[] [] [24] Overfull \hbox (25.19902pt too wide) in paragraph at lines 32--32 []\T1/pcr/m/n/6 ## The descriptions of packets coming IN to the interface speci fed in DEV and NETWORK to drop|accept|return[] [] Overfull \hbox (7.19907pt too wide) in paragraph at lines 32--32 []\T1/pcr/m/n/6 ## Use: INPUT[N]=" [:port]]*]> ip[/mask]=>ip[/mask]"[] [] Overfull \hbox (25.19902pt too wide) in paragraph at lines 32--32 []\T1/pcr/m/n/6 ## The descriptions of packets going OUT of the interface speci fed in DEV and NETWORK to drop|accept|return[] [] Overfull \hbox (17.99904pt too wide) in paragraph at lines 32--32 []\T1/pcr/m/n/6 ## Use: OUTPUT[N]=" [:port]]*]> ip[/mask]>"[] [] Overfull \hbox (61.19893pt too wide) in paragraph at lines 32--32 []\T1/pcr/m/n/6 ## Use: FORWARD[N]=" [:port]]*]> ip[/mask]>"[] [] Overfull \hbox (21.59903pt too wide) in paragraph at lines 32--32 []\T1/pcr/m/n/6 ## Use MARK[N]=" [:port]]*]> ip[/mask]>"[] [] [25] Overfull \hbox (32.399pt too wide) in paragraph at lines 32--32 []\T1/pcr/m/n/6 ## Use: LIMIT_XXX=" *|<:port>]> ip[/mask]>"[] [] Overfull \hbox (3.59908pt too wide) in paragraph at lines 32--32 []\T1/pcr/m/n/6 ## IP/MASK : If PORTS are specified, then an optional IP/MAS K source and address can be specified.[] [] [26] Overfull \hbox (25.19902pt too wide) in paragraph at lines 37--37 []\T1/pcr/m/n/6 ## The descriptions of packets coming IN to the interface speci fed in DEV and NETWORK to drop|accept|reject[] [] Overfull \hbox (14.39905pt too wide) in paragraph at lines 37--37 []\T1/pcr/m/n/6 ## Use: INPUT[N]=" [:port]]*]> ip[/mask]>"[] [] Overfull \hbox (25.19902pt too wide) in paragraph at lines 37--37 []\T1/pcr/m/n/6 ## The descriptions of packets going OUT of the interface speci fed in DEV and NETWORK to drop|accept|reject[] [] Overfull \hbox (17.99904pt too wide) in paragraph at lines 37--37 []\T1/pcr/m/n/6 ## Use: OUTPUT[N]=" [:port]]*]> ip[/mask]>"[] [] Overfull \hbox (61.19893pt too wide) in paragraph at lines 37--37 []\T1/pcr/m/n/6 ## Use: FORWARD[N]=" [:port]]*]> ip[/mask]>"[] [] Overfull \hbox (21.59903pt too wide) in paragraph at lines 37--37 []\T1/pcr/m/n/6 ## Use MARK[N]=" [:port]]*]> ip[/mask]>"[] [] Overfull \hbox (32.399pt too wide) in paragraph at lines 37--37 []\T1/pcr/m/n/6 ## Use: LIMIT_XXX=" *|<:port>]> ip[/mask]>"[] [] [27] Overfull \hbox (3.59908pt too wide) in paragraph at lines 37--37 []\T1/pcr/m/n/6 ## IP/MASK : If PORTS are specified, then an optional IP/MAS K source and address can be specified.[] [] ) [28] (./fiaif.aux) ) Here is how much of TeX's memory you used: 2314 strings out of 493629 26566 string characters out of 3148996 93160 words of memory out of 3000000 5504 multiletter control sequences out of 15000+200000 19915 words of font info for 51 fonts, out of 3000000 for 9000 935 hyphenation exceptions out of 8191 28i,8n,43p,222b,310s stack positions out of 5000i,500n,10000p,200000b,50000s Output written on fiaif.dvi (31 pages, 86816 bytes). fiaif-1.23.1/doc/fiaif/pdfheader.tex0000640000175000017500000000110411571724545016460 0ustar calvincalvin%***************************************************************************** % Head of main file, to be used thwn makin pdf files. % % Source : $RCSfile: pdfheader.tex,v $ % Date : $Date: 2002/12/03 15:14:39 $ % Version : $Revision: 1.2 $ % Author : $Author: afu $ % Contains : Head of main file %***************************************************************************** \documentclass[dvipdfm,a4paper,11pt]{article} \usepackage[dvips]{graphicx} \usepackage[usenames,dvipsnames]{color} \usepackage[dvipdfm]{hyperref} \usepackage[latin1]{inputenc} fiaif-1.23.1/doc/fiaif/preface.tex0000640000175000017500000000116111571724545016146 0ustar calvincalvin\section{Preface} \subsection{Summary} In this paper a general overview of firewalling is presented, and some basic terms used in the Linux firewall implementation is given. Based on requirements of a firewall, a design is presented which will ease the setup of a firewall. The resulting implementation is briefly described and configuration is explaind in detail. \subsection{Prerequisites} In this paper, it is assumed that the reader is familiar with network theory, routing and network traffic. Basic Linux knowledge is preferable in order to setup the software described in this paper, though not a requirement. fiaif-1.23.1/doc/fiaif/Makefile0000640000175000017500000000743111571724545015465 0ustar calvincalvin############################################################# # Makefile to latex files # # Thanks to http://www.light.utoronto.ca/stok/linux.html # # # # $Source: /home/cvsd/var/lib/cvs/fiaif/fiaif/doc/fiaif/Makefile,v $ # # $Revision: 1.12 $ # # $Author: afu $ # ############################################################# COMPILER = latex .SUFFIXES: .dia .fig .eps .latex .gnuplot .pdf .pstex .ps .tex .bbl .ind .aux .PHONY: xdvi pdf ps gv print dvi spell clean view html dvihelper conffiles TARGET = fiaif TEXFILES = preface introduction layout iptables \ main rules firewall conclusion related conffiles usage \ configuration FIGS = fig/zones BIBFILE = main conffiles: rm -fr conf mkdir conf cp ../../conf/private_networks conf/private-networks cp ../../conf/reserved_networks conf/reserved-networks cp ../../conf/type_of_services conf/type-of-services $(TARGET).dvi: psheader.tex $(addsuffix .eps, $(FIGS)) \ $(addsuffix .tex, $(TEXFILES)) ${MISC_FILES} $(BIBFILE).bib \ conffiles cat psheader.tex main.tex > $(TARGET).tex make dvihelper rm -fr conf $(TARGET).pdf: pdfheader.tex $(addsuffix .eps, $(FIGS)) \ $(addsuffix .tex, $(TEXFILES)) ${MISC_FILES} $(BIBFILE).bib \ conffiles cat pdfheader.tex main.tex > $(TARGET).tex make dvihelper dvipdft -e -p a5 -r 1200 -o $(TARGET).pdf $(TARGET).dvi dvihelper: $(addsuffix .eps, $(FIGS)) $(addsuffix .tex, $(TEXFILES)) \ ${MISC_FILES} fiaif.tex ${COMPILER} $(TARGET).tex bibtex $(TARGET) makeindex $(TARGET) ${COMPILER} $(TARGET).tex if grep "Rerun" $(TARGET).log > /dev/null || \ grep "undefined references" $(TARGET).log; then \ ${COMPILER} $(TARGET).tex; \ fi html: $(TARGET).dvi latex2html -split +2 -scalable_fonts -info "" \ -local_icons -html_version 4.0,math \ -dir $(HTML_DIR) $(TARGET).tex > /dev/null xdvi: $(TARGET).dvi xdvi $(TARGET)& pdf: $(TARGET).pdf acroread $(TARGET).pdf & ps: $(TARGET).ps print: $(TARGET).dvi dvips -f $(TARGET) | psbook | pstops "2:0L(1h,0)+1L(1h,.5h)" |lpr view: gv gv: $(TARGET).ps gv $(TARGET).ps dvi: $(TARGET).dvi .tex.aux: $(basename $<).tex ${COMPILER} $< .bib.bbl: $(basename $<).aux bibtex $< .idx.ind: $(basename $<) makeindex $< .dvi.ps: dvips $< -o $@ .fig.latex: fig2dev -L latex $< $@ .fig.eps: fig2dev -L eps $< $@ .dia.eps: dia --nosplash --export=$@ $< .gnuplot.latex: gnuplot $< .gnuplot.eps: gnuplot $< .eps.pdf: epstopdf $< .fig.pstex: fig2dev -L pstex $< $@; \ fig2dev -L pstex_t -p $(notdir $(basename $<)).pstex $< $(notdir $(basename $@)).pstex_t .gnuplot.pstex: gnuplot $< ; \ mv $(notdir $(basename $<)).ps $(notdir $(basename $<)).pstex ; \ sed -e "s/psfile=\(.*\)ps/psfile=\1pstex/" \ $(notdir $(basename $<)).pstex_t > temp.pstex_t ; \ mv temp.pstex_t $(notdir $(basename $<)).pstex_t .pstex.pdf: epstopdf $<; \ sed -e "s/\\special{psfile=\(.*\)pstex/\\pdfimage{\1pdf/" \ $(notdir $(basename $<)).pstex_t > temp.pstex_t;\ mv temp.pstex_t $(notdir $(basename $<)).pstex_t .gnuplot.pdf: gnuplot $< ; \ epstopdf $(notdir $(basename $<)).ps ; \ grep "psfile=" $(notdir $(basename $<)).pstex_t | \ sed -e '1i\' -e '\\begin{picture}(0,0)' \ -e '1a\' -e '\\end{picture}' \ -e "s/\\special{psfile=\(.*\)ps.*}/\\pdfimage{\1pdf}/" \ > temp1 ;\ sed -e "/psfile=/d" $(notdir $(basename $<)).pstex_t > temp2 ;\ cat temp1 temp2 > $(notdir $(basename $<)).pstex_t ;\ rm temp1 temp2 .PHONY: clean clean: rm -f *.dvi *.log *.bak *.aux *.bbl *.blg *.ps *.pdf *.latex \ *.pstex *.pstex_t *.toc fiaif.ps *.idx *.ind *.ilg rm -fr conf find . -name \*~ | xargs rm -f find . -name \*.eps | xargs rm -f fiaif-1.23.1/doc/fiaif/rules.tex0000640000175000017500000003551212076545752015704 0ustar calvincalvin\section{Configuring a zone} In this section the syntax of rules will be presented, and examples will be given. \subsection{Definitions} All rules are defined by using a keyword and an assignment. Three categories of keywords exists: % Mention why different types exist. \begin{description} \item [Simple:] These are simple keywords that can only be assigned one value. These keywords are used on the form \verb|KEYWORD=value|. \item [Array:] Array keywords defines an array of rules. The keyword is indexed by postfixing it with \verb|[n]|, where \verb|n| is the position in the array. The first element in the array is one, no indexes must be left out in a sequence. If two rules have the same index, there is no guarantee on which rules will be chosen. \item [Sets:] Keyword sets are on the form \verb|KEYWORD_=value|, where the identifier can be replaced by any string. In sets there is no specified order of the rules. If two identical rule names are specified, only one will be used in a non-deterministic fashion. \end{description} The syntax of all rules will be presented as BNF. Before presenting the rules, a list of definitions will be given, which will be used when specifying the syntax of the rules:\\ \begin{grammar} ::= .string. ::= | 'ALL' ::= 0..255 ::= 0..65535 ::= 0..4294967295 ::= 00..FF ::= '0' | '1' ::= ... \alt ::= ::::: ::= '/' 0..32 | ::= | ::= ':' ::= | \alt ',' ::= 'ALL' | ::= | \alt ',' ::= 'icmp-net-unreachable' | 'icmp-host-unreachable' \alt 'icmp-port-unreachable' | 'icmp-proto-unreachable' \alt 'icmp-net-prohibited' | 'icmp-host-prohibited' ::= 'ALL' | | 'icmp' \alt 'udp' \alt 'tcp' ::= '=>' ::= 'ACCEPT' | 'REJECT' | 'DROP' \alt 'ACCEPT_LOG' | 'REJECT_NOLOG' | 'DROP_NOLOG' \alt 'LOG' ::= \end{grammar} A rule consists of an action/policy and a set of matches which must be fulfilled in order for the action/policy to be applied to the connection. If this is the case, it is said that the rules \textit{matches} the connection. The \verb|| defines a general connection match used throughout the configuration files. The first argument matches connections of this type. If the protocol is either \verb|tcp| or \verb|udp| then the port specifies the destination port. If the protocol is \verb|icmp| a icmp type is required. The last argument \verb|| specifies the source and destination ip address of the connection, i.e. the source ip address must match the initiator of the connection, and the destination for the endpoint of the connection. \subsection{Zone definition} To setup a zone, several parameters are required in order to identify the zone. The parameters are all on simple form, and are listed below. \paragraph{NAME} This identifies the name of the zone. The name must be unique, and must be identical to the name as specified in the global configuration file. \noindent Example: \verb|NAME=EXT| \paragraph{DEV} This parameter specifies the network interface to which the zone is connected. \noindent Example: \verb|DEV=eth0| \paragraph{DYNAMIC} If the interface as specified by the \verb|DEV| parameter obtains its ip address from a dhcp server, or can have its ip address changed dynamically, DYNAMIC must be enabled. \begin{grammar} ::= \end{grammar} \noindent Example: \verb|DYNAMIC=0| \paragraph{DHCP_SERVER} To specify that the firewall also acts as a dhcp server, this parameter should be set to one, in order for dhcp queries to be accepted from machines in the current zone. \begin{grammar} ::= \end{grammar} \noindent Example: \verb|DHCP_SERVER=1| \paragraph{GLOBAL} The global parameter specifies if the interface connects the firewall to the Internet. If the interface does connect the firewall to the Internet then global should be set to one. \begin{grammar} ::= \end{grammar} \noindent Example: \verb|GLOBAL=1|\\ \noindent The following parameters are only required if the zone is specified as non-dynamic, that is \verb|DYNAMIC=0|. \paragraph{IP} The \verb|IP| should be set the primary ip of the interface of the current zone. \noindent Example: \verb|IP=1.2.3.4| \paragraph{NET} Specifies the address of the network to which this zone is connected. \noindent Example: \verb|IP=1.2.3.2| \paragraph{MASK} Specifies the network mask of the address in dotted notation. \noindent Example: \verb|IP=255.255.255.252| \paragraph{BCAST} Specifies the broadcast address of the network for this zone. \noindent Example: \verb|IP=1.2.3.6| \subsection{Zone access} The access rules are the central rules in the zone. These defines access between other zones and the firewall itself. All zone access rules are arrays, which are processed sequentially. It is highly recommended to have an \textit{catch all} rule as the last rule, specifying a default policy for packets not covered by previous rules. \subsubsection{Input rules} The input rules control access from machines located in the zone to the firewall itself. Input rules are specified as an array named \verb|INPUT|: \begin{grammar} ::= \end{grammar} The policy defines whether to drop, reject or accept connections that matches this rule. \paragraph{Example} \begin{verbatim} INPUT[0]="ACCEPT tcp 25,80,443,22 0.0.0.0/0=>0.0.0.0/0" INPUT[1]="DROP ALL 0.0.0.0/0=>0.0.0.0/0" \end{verbatim} This will accept only http, https, smtp (mail transfer) and ssh access to the firewall itself. Any other packet originating from the zone destined to the firewall itself will be discarded. \subsubsection{Output rules} The output rules determines access from the firewall to machines located in the zone. Output rules are specified as an array named \verb|FORWARD|: \begin{grammar} ::= \end{grammar} The policy defines whether to drop, reject or accept connections that matches this rule. \paragraph{Example} \begin{verbatim} OUTPUT[0]="ACCEPT tcp 22 0.0.0.0/0=>0.0.0.0/0" OUTPUT[1]="REJECT ALL 0.0.0.0/0=>0.0.0.0/0" \end{verbatim} This will allow the firewall only to initiate ssh communication to machines located within the zone. All other communication initiated by the firewall to machines in this zone is prohibited, and packets are blocked. \subsubsection{Forward rules} The forward rules restricts access from machines located in other zones to this zone. Forward rules are specified as an array named \verb|FORWARD|: \begin{grammar} ::= \end{grammar} The first argument specifies the source zone of the connection. The policy defines whether to drop, reject or accept connections that matches this rule. \paragraph{Example} \begin{verbatim} FORWARD[0]="ALL ACCEPT tcp 22 0.0.0.0/0=>0.0.0.0/0" FORWARD[1]="DROP ALL 0.0.0.0/0=>0.0.0.0/0" \end{verbatim} Machines located in other zones are only allowed to initiate ssh communication to machines located in this zone. Any other communication initiated by machines in zones different from this zone to machines in the present zone are silently dropped. \subsubsection{Reply rules} Reply rules specifies a special response to connection attempts to the firewall itself, before dropping the connection. The responses usually mean that a port or protocol is not available on the system. \begin{grammar} ::= \alt 'tcp-reset' 'tcp' \end{grammar} The first argument specifies the response to the connection attempt. The 2. argument serves as conditions of the rule. A special 'tcp-reset' can be used, only if the protocol is specified as tcp. \paragraph{Example} \begin{verbatim} REPLY_AUTH="EXT tcp-reset tcp auth 0.0.0.0/0=>0.0.0.0/0" \end{verbatim} This example specifies that queries to the auth daemon should be responded by \verb|tcp-reset|. Many services on the Internet makes an auth request on hosts that makes use of the services. The first line speeds this process up by resetting the connection, instead of silently dropping packets. \subsubsection{Limit rules} Limit rules serves as an supplement to input and forward rules. Linux rules allows only limited acceptance of packets, used in order to avoid \textit{Denial of service} attacks. The rules are on the form \verb||, as given below. \begin{grammar} ::= ::= '/second' | '/minute' | '/hour' | '/day' | ::= ::= \end{grammar} The \verb|| and \verb|| specifies the maximum average matching rate, and the initial packets to match. The \verb|| specifies the source zone for packets that can be matched by this rule. If the source zone equals that zone for which the rule is specified, then the rule is applied for requests to the firewall itself. \paragraph{Example} \begin{verbatim} LIMIT_PING="EXT DROP 1/second 3 icmp echo-request \ 0.0.0.0/0=>0.0.0.0/0" \end{verbatim} This example will drop ping's arriving faster than one per second, with a maximum of three. \subsection{Network address translation rules} The network address translation rules are used to alter either the source or the destination of a packet. This can be used to redirect requests and for masquerading. \subsubsection{Redirect} Redirect rules can alter the destination of connection attempts. These rules only apply packets originating from the current zone. Redirect rules are sets of rules on the form \verb|redirect| as given below. \begin{grammar} ::= ',' \alt ::= ::= \end{grammar} If packets originating from the current zone matches \verb||, then the destination of the packets are changed to the destination as specified by \verb| |. If a range of ip addresses is specified for the new destination, then redirection will be done to each ip in a round robin fashion. This is often used to load balance servers. \paragraph{Example} \begin{verbatim} REDIRECT_SSH="tcp :22 10.0.0.1:22" \end{verbatim} This will redirect any ssh queries to be redirect to address 10.0.0.1. \subsubsection{Masquerading/SNAT} Masquerading is used when no public network is available. It changes the source ip and source port of any packet coming from this zone. The rules are sets on the form \verb|| as given below. \begin{grammar} ::= ( | ) \end{grammar} The \verb|| specifies the destination zone of the packets. All packets originating from the current zone toward the specified zone are masqueraded, and will have their source address changed to the ip address of the zone specified, in a round robin manner. \paragraph{Example} \begin{verbatim} SNAT[0]="EXT ALL 0.0.0.0/0=>0.0.0.0/0" \end{verbatim} In this example, all packets send from the current zone to zone \verb|EXT| will be masqueraded, and the source of the packets will be changed to the ip of zone \verb|EXT|. The source ports will be changed to be with in the range $[32768-65535]$. \subsection{Miscellaneous rules} \subsubsection{Packet marking} Packet marking is used to mark packets going through the firewall. This can be used by external programs such as traffic shaping. Rules for marking is specified through an array \verb|MARK|. The syntax of mark rules are specified below as \verb||. \begin{grammar} ::= ::= \end{grammar} Packets originating from the current zone destined for the specified zone, and that matches the \verb|proto_ip| are marked with the value \verb||. \paragraph{Example} \begin{verbatim} MARK[0]="ALL 1 tcp ALL 0.0.0.0/0=>0.0.0.0/0" \end{verbatim} This rule will mark any packets leaving the current zone with mark value '1'. \subsubsection{Traffic monitoring} This rule is used to monitor traffic going into or leaving the current zone. Monitored packets are logged to the system log for later inspection. Monitoring is done on a per ip basis. Only one entry can exist and is called \verb|WATCH_IP|. The grammar is specified as \verb||. \begin{grammar} ::= \end{grammar} \paragraph{Example} \begin{verbatim} WATCH_IP=''10.0.0.1 10.0.0.2'' \end{verbatim} Any packet going into or leaving the current zone either destined or originating from ip address \verb|10.0.0.1| or ip address \verb|10.0.0.2| are logged to the system log. \subsubsection{Denying communication to MAC addresses} Communication with machines having a specific MAC address can be prohibited. Due to the nature of Ethernet, only packets received from the offending machine can be prohibited. To prohibit communication from a list of MAC addresses, a single variable \verb|MAC_DROP| is used. The grammar is specified as \verb|mac_drop| below. \begin{grammar} ::= | \end{grammar} \paragraph{Example} \begin{verbatim} MAC_DROP=''12:23:34:45:56:67'' \end{verbatim} This will drop all packets originating from the internal zone from the machine with MAC address \verb|12:23:34:45:56:67|. \subsubsection{Denying communication to IP addresses} To deny communication to and from a machine in the zone, it is possible to specify a list of ip addresses whose packets are to be dropped. This is specified by the variable \verb|IP_DROP|. The grammar is specified below as \verb||. \begin{grammar} ::= ::= | \end{grammar} \paragraph{Example} \begin{verbatim} IP_DROP=''10.0.0.10'' \end{verbatim} This will drop all communication to and from a machine with ip address \verb|10.0.0.10|. \subsubsection{Clearing ECN bits from packets} Eexplicit congestion notification, RFC3168, was defined as an internet standard in September 2001. Unfortunatly many servers still drops all packets with the ECN bits set. As a work-arround for this problem, this option allows the specification of a list of servers that does not accept packets with the ECN bits set, and clears the bits. The list of servers is specified by the variable \verb|ECN_REMOVE|. The grammar is specified below as \verb||. \begin{grammar} ::= ::= | \end{grammar} \paragraph{Example} \begin{verbatim} ECN_REMOVE=''10.0.0.10'' \end{verbatim} This will strip off the ECN bits in all packets destined to the machine with ip address \verb|10.0.0.10|. fiaif-1.23.1/doc/fiaif/fig/0000750000175000017500000000000012077210610014545 5ustar calvincalvinfiaif-1.23.1/doc/fiaif/fig/zones.dia0000640000175000017500000000230611571724545016403 0ustar calvincalvin‹íY[oÛ6~ϯ”—P(‘%ª‰StÙ: (º‡f/{1h‹¶¹È’@Ñq܇ýö‘²ê«ìÊŠ†®sرuÄïžËÇCêöÝó4±ž¸,D–öl<Ûâé0‹E:îÙ<|¸¦ö»»‹ÛX°·ú=–ljéia~õì‰Rù[×Ïç YLe$b îþÍ’„¹ú&×¾Û3Å–˜RR fŠ[)›òž=`ÃDZÌfi\fI&­'–ôìËQù²Ý»[wkl=TÎr.W(Ó<+„–©E¾#Ûg>+Q¡%éøîò½¹TY]h¤_M™‹´‚’œ%Ëi @BMg1è%éEv‚"Š~žI%™PÒ ËÎÒ%˜’3Þª²DÇcÏ Ø`$”Êꬱ¤¨5ÃÝJ§fZÆRÄqC´;j.b5é?·ŸÜ`ÑàIbð• "U-Zùv&b^òî¦pw䤒ºL_‹¿e—[Km [pYý´¦5«òI•éË{³Á_|¨*«?q5Ïä£umýÊS.uØîµn­IZWÙœË7öš¬5U‹¸gÿFÖåöÕy¶Ž€&Äx>šFÔà «œ*–޾†D¡_Bz4º€SGÿ§QØXOø´?Ìdº¢è—›]b–±_€„4"'!M¸OT †Hÿ5¦¯I6ïï­x­Ùp”ˆ¼?ɤø’¥Š%'ÑÚAyå˃/Ku’jC´ÃøÅÕÇ÷ŸÞœ…úÀ'†ŽnBBÁ³æPt*‡%»éî†A·oº."'ˆBD:áÏvFcO H¯ìyvìù3×<'Óã±õgI¡Ÿ¹ÔS¶r&ÏŒJu8òÈYS)>yïZÂŽîi„I'{÷mȬ»¼E A„!êfïÞÎìã½(õ‚NØ4Cüʦ?›þò\õ¢¦µ.®–Í)WgÆ£(E¡9£4ðÿÇ<úYÓUÌd¬‰ô£Hy ú'óhu$Òá(ˆÀÀ¡ ‚8„7Fƒ^çJQ„š‡'MûTòPreface’(Ø31ŽŽ¤ ™š‘>Tòó$•Hd ó3 ó3ecrm1095º1.1Ž‘W_¼Summary‘y6‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š1ŽŽ¡‘>Tò1.2Ž‘W_¼Prerequisites‘‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š1ŽŽ¦‘.Ì2Ž‘>TòIn§troXïduction’ ŠÌ2ŽŽ¦‘.3Ž‘>TòFirew§alls’ ”Z3ŽŽ¡‘>Tòº3.1Ž‘W_¼PurpM_ose–¡kof“a“rew² all‘;Œ‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š3ŽŽ¡‘>Tò3.2Ž‘W_¼Netlter‘0‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š3ŽŽ¡‘W_¼3.2.1Ž‘z7Setting–¡kup“a“Linš² ux“rew˜allQH‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š4ŽŽ¦‘.Ì4Ž‘>TòFIAIF’.æ…5ŽŽ¡‘>Tòº4.1Ž‘W_¼Design‘*ö‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š5ŽŽ¡‘W_¼4.1.1Ž‘z7Zones‘v‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š5ŽŽ¡‘W_¼4.1.2Ž‘z7Statefull‘¡krew² alling‘> ‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š6ŽŽ¡‘W_¼4.1.3Ž‘z7Net•² w“ork–¡kaddress“translation‘q^‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š6ŽŽ¡‘>Tò4.2Ž‘W_¼Implemen² tation‘¢ò‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š6ŽŽ¦‘.Ì5Ž‘>TòConguration’DÍ7ŽŽ¡‘>Tòº5.1Ž‘W_¼Zone‘¡kspM_ecication‘Ø‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š7ŽŽ¦‘.Ì6Ž‘>TòConguring–+¡a“zone’êOQ7ŽŽ¡‘>Tòº6.1Ž‘W_¼Denitions‘Îß‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š7ŽŽ¡‘>Tò6.2Ž‘W_¼Zone‘¡kdenition‘A«‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘š9ŽŽ¡‘>Tò6.3Ž‘W_¼Zone‘¡kaccess‘x"‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô10ŽŽ¡‘W_¼6.3.1Ž‘z7Input‘¡krules‘ja‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô11ŽŽ¡‘W_¼6.3.2Ž‘z7Output‘¡krules‘%#‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô11ŽŽ¡‘W_¼6.3.3Ž‘z7F‘ÿãorw² ard‘¡krules‘‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô11ŽŽ¡‘W_¼6.3.4Ž‘z7Reply‘¡krules‘ Ò‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô12ŽŽ¡‘W_¼6.3.5Ž‘z7Limit‘¡krules‘¬‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô12ŽŽ¡‘>Tò6.4Ž‘W_¼Net•² w“ork–¡kaddress“translation“rules‘µC‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô13ŽŽ¡‘W_¼6.4.1Ž‘z7Redirect‘¹d‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô13ŽŽ¡‘W_¼6.4.2Ž‘z7Masquerading/SNA‘ÿãT‘ñ8‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô13ŽŽ¡‘>Tò6.5Ž‘W_¼Miscellaneous‘¡krules‘kƒ‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô14ŽŽ¡‘W_¼6.5.1Ž‘z7P•² ac“k“et‘¡kmarking‘«‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô14ŽŽ¡‘W_¼6.5.2Ž‘z7T‘ÿãrac‘¡kmonitoring‘™¿‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô14ŽŽ¡‘W_¼6.5.3Ž‘z7Den•² ying›¡kcomm“unication˜to˜MA“C˜addresses‘"‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô15ŽŽ¡‘W_¼6.5.4Ž‘z7Den•² ying›¡kcomm“unication˜to˜IP˜addresses‘}¶‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô15ŽŽ¡‘W_¼6.5.5Ž‘z7Clearing–¡kECN“bits“from“pac•² k“ets‘耑¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô15ŽŽ¦‘.Ì7Ž‘>TòExample‘+¡setup’úý16ŽŽ¦‘.8Ž‘>TòRelated‘+¡w§ork’+017ŽŽŽŸ’à|©ºiŽŽŒ‹U ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ì9Ž‘>TòStatus’(ƒD18ŽŽ¤|æ‘.10Ž‘>TòF‘þõ1urther‘+¡w§ork’Å418ŽŽ¡‘.AŽ‘>TòUsage’*-20ŽŽ¡‘.BŽ‘>TòConguration‘+¡les’æÃ\20ŽŽ¤ ™š‘>TòºB.1Ž‘W_¼aif.conf‘\‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô20ŽŽ¡‘>TòB.2Ž‘W_¼reserv•² ed_net“w“orks‘Le‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô22ŽŽ¡‘>TòB.3Ž‘W_¼priv‘ÿeBate_net•² w“orks‘𤑼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô22ŽŽ¡‘>TòB.4Ž‘W_¼t² ypM_e_of_services‘sG‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô23ŽŽ¡‘>TòB.5Ž‘W_¼zone.ext‘ž&‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô23ŽŽ¡‘>TòB.6Ž‘W_¼zone.in² t‘nb‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô25ŽŽ¡‘>TòB.7Ž‘W_¼zone.dmz‘û‘¼É.ŽŽ–€@‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ“‘¼É.ŽŽ‘’ô26ŽŽŽŸ’ÞùRiiŽŽŒ‹!5 ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ë1Ž‘EÁPrefaceŽŸ×B‘.ó%¥!¢N ecbx1200Ð1.1Ž‘L¾SummaryŽ©«‘.ºIn–î|this›î}papM_er“a˜general“o•² v“erview‘î|of˜rew“alling‘î|is˜presen“ted,‘Àand˜some‘î|basicޤ ™š‘.terms–•Œused“in“the“Linš² ux“rew˜all‘•implemen˜tation“is“giv˜en.‘ÒòBased“on“require-Ž¡‘.menš² ts–C¨of‘C§a“rew˜all,‘¬6a›C§design“is˜presenš² ted“whic˜h›C§will“ease˜the“setup˜of“aŽ¡‘.rewš² all.‘²AThe–3zresulting“implemen˜tation›3yis“briey“describM_ed˜and“congurationŽ¡‘.is–¡kexplaind“in“detail.ŽŸQŽ‘.Ð1.2Ž‘L¾Prerequisitesަ‘.ºIn–¨]this“papM_er,‘ªit“is“assumed›¨^that“the“reader“is“familiar˜with“net•² w“ork‘¨]theory‘ÿã,Ž¡‘.routing–ýand“net•² w“ork‘ütrac.‘ÌmBasic›ýLin“ux˜kno“wledge˜is˜preferable‘üin˜order˜toŽ¡‘.setup–¡kthe“soft•² w“are–¡kdescribšM_ed“in“this“pap˜er,“though“not“a“requiremen² t.ŽŽŸ’ßG-1ŽŽŒ‹*å ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ë2Ž‘EÁInctropœductionŽŸpÜ‘.ºT–ÿãoM_daš² y“,‘ñ[ev˜er–®+more“mac˜hines“and“pM_eople“are‘®,connected“to“the“In˜ternet“andޤ ™š‘.hac•² k“ers›¾con“tin“ually˜tries˜to˜in“v‘ÿeBade˜mac“hines˜connected‘½to˜the˜In“ternet.‘NàAsŽ¡‘.still–„ more“pšM_eople“gains“access“to“the“In•² ternet,‘½0hac“king–„ b˜ecomes“more“frequen² t,Ž¡‘.and–AÛfoM_cus›AÚon“securit² y˜on“serv•² ers˜ha“v“e–AÛbM_ecome“a˜necessit•² y‘ÿã.‘¸6Securit“y˜can‘AÛbM_eŽ¡‘.divided–¡kin² to“three“parts.ŽŸ™š‘.ÌApplication‘+¡securit§y:ŽŽ’¥{ÀºApplications–æéusually›æêenforce“some“kind˜of“securit² yŽ¡‘I`b² y–6¬restricting›6­users“in˜terms“of“functionalit² y˜and“access˜to“mac² hines.Ž¡‘I`An–Á,example›Á-of“this˜is“a˜w•² eb-serv“er.‘6+A‘Á%simple‘Á,w“eb-serv“er˜only‘Á,expM_osesŽ¡‘I`a–ùdened›ù€set“of˜les“to˜the“In² ternet,‘and˜only“a˜problem“in˜the“soft•² w“areŽ¡‘I`w•² ould›¡kgiv“e˜remote˜users˜access˜to˜other˜than˜the˜said˜les.Ž©™š‘.ÌUser‘+¡securit§y:ŽŽ‘cçºIf–mµa“remote“user“is‘m´able“to“circum•² v“en“t–mµthe“securit² y“impM_osedŽ¡‘I`bš² y–ïËsome“program“(b˜y‘ïÊexploiting“a“bug“in“the“soft˜w˜are),‘Cbthe“user“isŽ¡‘I`still–ƒ³restricted“to“the“righ² ts“of“the“user“who“started“the“started.‘ÌÿAs“anŽ¡‘I`example,‘sa›yuw•² eb-serv“er–ytis˜usually˜stated˜as˜the˜users“ó&–¤ð ó3 ó3ecti1095Ñnob–ÿqîo“dyº,‘swhic² h˜hasŽ¡‘I`vš² ery–¡klimited“righ˜ts“in“terms“of“reading“and“executing“programs.ަ‘.ÌNet•§w“ork‘+¡securit“y:ŽŽ’”¯'ºThis–ýÕis“the“lo•² w“est›ýÕlev“el‘ýÔof˜securit“y‘ÿã.‘ `By˜con“trolling˜com-Ž¡‘I`m•² unication›)¥bM_et“w“een‘)¦remote˜mac“hines‘)¦and˜In“ternet‘)¦services,‘Ašunsafe˜ap-Ž¡‘I`plications–¡kcan“bM_e“protected“against“un² trusted“access.ŽŸ™š‘?This–~ipapM_er“will‘~jconcenš² trate“on“net˜w˜ork“securit˜y“in“terms‘~jof“dening“aŽ¡‘.methoM_dology–Ÿ%for“describing“a‘Ÿ$rewš² all,‘Þ“and“implemen˜ting“the“methoM_dologyŽ¡‘.under‘¡kLin² ux.ŽŽŸ’ßG-2ŽŽŒ‹.Š ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ë3Ž‘EÁFirewcallsŽŸpÜ‘.ºThis–îsection“will“describšM_e“the“purp˜ose“of“a“rewš² all“and“outline“ho˜w“the“Lin˜uxޤ ™š‘.rewš² alling–¡kcoM_de“w˜orks.Ž©QŽ‘.Ð3.1Ž‘L¾Purp_úose–¸of“a“rew allŽŸ«‘.ºA‘ÚÛrewš² all–Úéis“usually“placed‘Úêin“fron˜t“of“a‘Úêgroup“of“mac˜hines“and‘Úêits“primaryŽ¡‘.function–üis“to“conš² trol“comm˜unication“from“and“to“this“group“of“mac˜hines.Ž¡‘.Comm•² unication›?bM_et“w“een‘>t“w“o˜mac“hines‘>o“v“er˜the‘>In“ternet˜is–>a˜stream“of˜pac² k-Ž¡‘.ets–5Ó(datagrams)›5Òsend“in“bM_oth˜directions.‘”The“rew² all“examines˜all“pac•² k“etsŽ¡‘.that–Uis›U abM_out“to˜bM_e“routed˜through“the˜mac² hine“and,‘dSbased“on˜a“set˜of“rules,Ž¡‘.determines–1´if›1µthe“pac•² k“et˜is‘1´allo“w“ed˜to–1´pass˜through“the˜mac² hine“or˜not.‘±ªThisŽ¡‘.functionalit² y–¡kis“often“referred“as“a“Ñp‘ÿqîacket‘ã=lterº.Ž¡‘?The–\secondary›]function“of“a˜rew² all“is˜to“moM_dify“the˜pac•² k“ets‘\passingŽ¡‘.through–<the“rew² all.‘¦çThis“is‘<called“ÑNetwork‘q>addr–ÿqîess›q=tr“anslation˜(NA‘ÿ*åT)º,‘<asŽ¡‘.the–0tmoM_dications›0uusually“applies“to˜either“sender“or˜receiv² er“informationŽ¡‘.conš² tained–(in‘)the“pac˜k˜ets.‘ NA‘ÿãT‘ can“for›)example“bM_e˜used“to˜alloš² w“mac˜hinesŽ¡‘.without–tsa›ttpublic“addressable˜Inš² ternet“protoM_col“(IP)‘t>n˜um˜bM_er,‘©5to‘ttaccess“theŽ¡‘.Inš² ternet–¬Úthrough“a–¬Ùrew˜all,‘ï¶b˜y“using–¬Úthe“IP-n˜um˜bM_er“of“the‘¬Ùrew˜all“as“theŽ¡‘.sender–vPiden² tication.‘ȉThis›vQis“also˜called“ip“masquerading,‘~ðas“it˜disguises“theŽ¡‘.address–¡kof“the“macš² hines“bM_ehind“the“rew˜all.ަ‘.Ð3.2Ž‘L¾NetlterŽŸ«‘.ºThe–¡krewš² all“implemen˜ted“in“Lin˜ux“is“called“ÑNetlterº.Ž¡‘?Netlter–_êimplemenš² ts‘_ébM_oth“a“pac˜k˜et›_élter“and“NA‘ÿãT‘_wand“is˜a“statefullŽ¡‘.rew•² all.‘õÃStatefull›«´rew“alls˜dieren“tiates˜from˜non-statefull‘«µrew“alls˜b“y˜ha“v-Ž¡‘.ing–\okno² wledge›\nof“the˜state“of˜all“connections“made˜though“the˜rew² all.‘òAŽ¡‘.non-statefull–òÕrewš² all‘òÖexamines“pac˜k˜ets“individually‘ÿã,‘G0without‘òÖkno˜wledge“ofŽ¡‘.previous›send‘pac•² k“ets˜and–has,‘_Øfor˜example,‘_Ùno˜information“abM_out˜whic² hŽ¡‘.mac•² hine›¬instan“tiated˜the˜comm“unication.‘ö¬This‘¬means˜that˜in˜order˜for˜ma-Ž¡‘.cš² hines–|ébM_ehind“a“rew˜all“to“bM_e“able“to“comm˜unicate“fully“with“mac˜hine“onŽ¡‘.the–‹$Inš² ternet,‘˜almost“all‘‹#pac˜k˜ets“m˜ust“bM_e“allo˜w˜ed‘‹#though“the“rew˜all‘‹#in“bM_othŽ¡‘.directions–¡kand“thš² us“greatly“degrading“the“securit˜y“impM_osed“b˜y“the“rew˜all.Ž¡‘?As–ËŸsaid,‘Ö-a“statefull‘Ë rewš² all“main˜tains“a›Ë history“of˜established“comm² uni-Ž¡‘.cation–Ìband“denes›Ìaa“state“for“all“connections.‘WËIn“Netlter˜pM_ossible“states“ofŽ¡‘.a–¡kconnection“are:ŽŸ™š‘.ÌNew:ŽŽ‘OzíºThis›¤„state–¤…indicates,‘¥Jthat“the˜pac•² k“et˜is˜part–¤…of˜a˜connection“that˜hasŽ¡‘I`not–¡kbšM_een“registered“(seen)“b˜efore.ŽŸ™š‘.ÌEstablished:ŽŽ‘u~¶ºThis–rstate›rindicates“that“the“pac•² k“et˜is–rpart“of˜an“alreadyŽ¡‘I`established‘¡kcomm² unication.ŽŽŸ’ßG-3ŽŽŒ‹6Ÿ ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÌRelated:ŽŽ‘aBºThis–hstate›hindicates“that“the“pac•² k“et˜is–hrelated“to“an˜already“es-ޤ ™š‘I`tablished– connection› but“not“part˜hereof.‘¿This“is“useful˜for“protoM_colsŽ¡‘I`that–restablished“new“connections,‘/ sucš² h“as“passiv˜e‘sftp“data“streams“andŽ¡‘I`ICMP‘¡kpac•² k“ets.ŽŸ™š‘.ÌIn§v‘ÿN!alid:ŽŽ‘\ºA‘5ãpac•² k“et›6 mark“ed˜in“v‘ÿeBalid˜means˜that˜the˜pac“k“et˜is˜someho“w˜mal-Ž¡‘I`formed.‘*Malformed›½pac•² k“ets˜are˜usually˜pac“k“ets˜that˜doM_es˜not˜conrmŽ¡‘I`to–¡keectivš² e“RF˜C's.ŽŸ™š‘?By–Ž_using“these“states,‘’.it“is“pM_ossible“to‘Ž^create“a“vš² ery“tigh˜t“securit˜y“pM_olicyŽ¡‘.with–¡konly“a“small“set“of“rules.ŽŸë(‘.Ì3.2.1Ž‘T9ÀSetting–+¡up“a“Linš§ux“rew˜allŽŸ«‘.ºThe–NÐmost›NÏcommon“w•² a“y–NÐto“dene˜a“rewš² all,‘z)is“to“ha˜v˜e›NÏa“list“of“rules˜to“bM_eŽ¡‘.tra•² v“ersed–{for“eac•² h›{pac“k“et–{hitting“the“rew•² all.‘dA‘zçrew“all–{rule˜consists“of“aŽ¡‘.set–žof“conditions›žand“an“action.‘ÕÄIf“the“conditions“of˜a“rule“is“meet,‘ž±then“theŽ¡‘.action–ñåis“executed›ñæon“that“pac•² k“et.‘ÈVUsually–ñåthe“action“is“either˜to“accept“orŽ¡‘.reject‘(‚a›(ƒpac•² k“et,‘@±and˜is–(‚therefore˜usually“called“the˜Ñtar‘ÿqîget‘2¦ºof˜a“rule.‘®šExamplesŽ¡‘.of–°yconditions“on“a“rule“is:‘õthe“source“address“of“a“pac•² k“et,‘´=the–°ydestination“ofŽ¡‘.a›¡kpac•² k“et˜etc.Ž¡‘?The–gklistŸü¾ó'¦÷²"ecrm0800Ò1ŽŽ‘ ''ºof“rules‘glis“tra•² v“ersed›gkun“til˜the˜pac“k“et˜is‘gleither˜accepted˜or˜re-Ž¡‘.jected,›}Šand–Q„proM_cessing“stops.‘ç2If“no“rules“applies“to“the“pac•² k“et,˜the‘Q„defaultŽ¡‘.pM_olicy–¡kof“the“cš² hain“determines“if“the“pac˜k˜et“is“accepted“or“rejected.Ž¡‘?In–påLinš² ux,‘¤Äthe“list“of‘pærules“is“main˜tained“in‘pæthe“Lin˜ux“k˜ernel“itself,‘¤ÄandŽ¡‘.a›}ìuserspace‘}íprogram,–µ Ñiptablesº,“is˜used–}íto˜manage“rules.‘lkAs“the˜placemen² tŽ¡‘.of– rules“in“the“list‘ is“vital“to“the“opšM_eration“of“the“rew² all,‘%hit“can“b˜e“a“non-Ž¡‘.trivial–.;job“to“implemenš² t“complex“rule-sets“in‘.:Lin˜ux.‘}WF‘ÿãor“more“informationŽ¡‘.of–¡kiptables/Netlter“see“[4Ž‘q¦,“2Ž‘ ].Ž‘. Ì°Î‰ffÿpŸ LÍ‘ zíŸü-=ó.º7Lecrm0600Ù1ŽŽŽ‘¥]ó(Ù.œŒ ecrm0900ÓIn–$Lin¾foremost›¨=requiremen² t“of“FIAIF‘¨do“not˜al‘ŽlowŽ¡‘.it–ã=in“the“rst“plac‘ÿqîe‘Õº.ŽŸë(‘.Ì4.1.3Ž‘T9ÀNet•§w“ork–+¡address“translationަ‘.ºApart–¶‚from›¶con² trolling“the˜connections“that˜can“bM_e˜established“from˜one“zoneŽ¡‘.to–mÜanother,‘ ùzones“also“con•² trol›mÝnet“w“ork–mÜaddress“translation˜(NA›ÿãT).“NA˜T‘m¨isŽ¡‘.used–¡kto“alter“source“and“destination“of“IP“datagrams.ŽŸQŽ‘.Ð4.2Ž‘L¾Implemen tationަ‘.ºFIAIF‘wis–™implemen² ted›šas“a˜shell“script,‘5using˜the“ÑBourne–gvagain“shel‘Žlº,‘5BASH,Ž¡‘.in² terpreter.‘–_The–ßÑreason›ßÒfor“this“language˜is,‘Šthat“it˜allo² ws“a˜minimal“installa-Ž¡‘.tion–½¥of“soft•² w“are–½¥on“the“rewš² all“and“is“platform“indepM_enden˜t.‘ŠûOther“languagesŽ¡‘.sucš² h–dèas‘dçC++“or“Ja˜v‘ÿeBa‘dçmigh˜t“ha˜v˜e“bšM_een‘dça“b˜etter›dçc² hoice“of“language˜from“aŽ¡‘.programmers–âEpM_oinš² t‘âFof“view,‘ò|but“in˜troM_duces“a›âFlist“of“problems˜when“pM_ortingŽ¡‘.to–cvother“platforms.‘Â@Jaš² v‘ÿeBa“requires“a“ja˜v‘ÿeBa“virtual“mac˜hine‘cwto“bM_e“installed,‘oÚandŽ‘.Ÿ ‡T‰ffÿpŸ LÍ‘ zíŸü-=Ù2ŽŽŽ‘¥]ÓPractise– +has“shoš¾º,‘ùa“congurationŽ¡‘.directivš² e–¤ñspM_ecifying“the“name‘¤òof“the“conguration“le“m˜ust“bM_e‘¤òpresen˜t.‘áyTheŽ¡‘.form–¡kof“these“conguration“directiv² es“are:‘ÖçÛCONF_=º.ŽŸë(‘.ÌExample:Ž©™š‘.ÛZONE="INT‘‘ëEXT"Ž¡‘.CONF_INT='zone.int'Ž¡‘.CONF_EXT='zone.ext'ަ‘.ºIn–©ùthe›©øexample“abM_o•² v“e,‘ìt“w“o–©ùzones“are˜enabled.‘ðThe˜zones“are˜named“ÛINTŽ¡‘.ºand–ÿjÛEXTº.“The‘ÿiconguration“le“for“zone“ÛINT‘ÿQºis“called“Ûzone.intº,‘éand“theŽ¡‘.conguration–Ule›Ufor“zone“ÛEXT‘Uºis˜called“Ûzone.extº.‘½vIt“is“impM_ortan² t˜that“theŽ¡‘.name–9spM_ecied›8within“the“conguration“les˜correspM_ond“to“the˜iden² tier“inŽ¡‘.the–¡kglobal“conguration“le.Ž¡‘?The– next“section› will“describM_e“in“detail“ho² w“to˜setup“a“zone“congurationŽ¡‘.le.ŽŸ"7‘.Ë6Ž‘EÁConguring–G\a“zoneŽŸpÜ‘.ºIn–\]this›\\section“the“syn² tax˜of“rules“will˜bM_e“presen² ted,‘‹and“examples˜will“bM_eŽ¡‘.giv² en.ŽŸQŽ‘.Ð6.1Ž‘L¾DenitionsŽŸ«‘.ºAll–Áƒrules“are“dened‘Á‚bš² y“using“a“k˜eyw˜ord“and“an“assignmen˜t.‘ŒDThree“categoriesŽ¡‘.of›¡kk•² eyw“ords˜exists:ŽŽŸ’ßG-7ŽŽŒ‹ao ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÌSimple:ŽŽ‘[ñ–ºThese–«4are“simple“k•² eyw“ords–«4that‘«5can“only“bM_e“assigned“one“v‘ÿeBalue.ޤ ™š‘I`These›¡kk•² eyw“ords˜are˜used˜on˜the˜form˜ÛKEYWORD=valueº.Ž©™š‘.ÌArra§y:ŽŽ‘VùøºArra•² y›¸Òk“eyw“ords–¸Ñdenes˜an“arra² y˜of“rules.‘‰_The“k•² eyw“ord˜is‘¸Ñindexed˜b“yŽ¡‘I`pM_ostxing–Ôit›Ôwith“Û[n]º,‘à®where“Ûn˜ºis“the˜pM_osition“in˜the“arra² y‘ÿã.‘nºThe“rstŽ¡‘I`elemenš² t–„´in‘„³the“arra˜y›„³is“one,‘Šrno˜indexes“m² ust˜bM_e“left˜out“in˜a“sequence.Ž¡‘I`If›ޝt•² w“o˜rules˜ha“v“e˜the˜same˜index,‘’nthere˜is˜no˜guaran“tee˜on˜whic“h˜rulesŽ¡‘I`will–¡kbM_e“c² hosen.ަ‘.ÌSets:ŽŽ‘MkCºKeyw² ord–@ósets“are‘@ôon“the“form“ÛKEYWORD_=valueº,Ž¡‘I`where–Ôlthe“idenš² tier‘Ôkcan“bM_e“replaced“b˜y“an˜y›Ôkstring.‘oêIn“sets˜there“is“noŽ¡‘I`spM_ecied–)order“of“the“rules.‘oVIf“t•² w“o›)iden“tical˜rule˜names˜are˜spM_ecied,Ž¡‘I`only–¡kone“will“bM_e“used“in“a“non-deterministic“fashion.ŽŸ™š‘.The–÷¿syn² tax“of›÷Àall“rules“will“bM_e˜presen² ted“as“BNF.“Before˜presen² ting“the“rules,Ž¡‘.a– ×list› Öof“denitions“will˜bšM_e“giv•² en,‘(ôwhic“h– ×will“b˜e‘ Öused“when“sp˜ecifying‘ Öthe“syn-Ž¡‘.tax–¡kof“the“rules:Ž¡¤™šŸ±I‘.ó#!",š ó3 cmsy10ÎhÑzone_name‘ÒWÎiŽ‘qﹺ::=ŽŽ’…î .string.‘ÖçÎhÑzone‘ÒWÎiŽ‘&虺::=‘¡kÎhÑzone_name‘ÒWÎiŽ‘G‘$º|‘¡k'ALL'Ž¡©1I‘.ÎhÑbyteint‘ $ÎiŽ‘[º::=ŽŽ‘oo0..255Ž¡¦‘.ÎhÑshortint‘ $ÎiŽ‘_ùûº::=ŽŽ‘søL0..65535Ž¡¦‘.ÎhÑint‘ $ÎiŽ‘H<¼º::=ŽŽ‘\; 0..4294967295Ž¡¦‘.ÎhÑhexint‘ $ÎiŽ‘WÈñº::=ŽŽ‘kÇB00..FFŽ¡¦‘.ÎhÑb–ÿqîo“ol‘"\ÎiŽ‘M Jº::=ŽŽ‘a ›'0'–¡k|“'1'Ž¡¦‘.ÎhÑip_addr‘ÿqîess‘æ ÎiŽ‘nÓÙº::=ŽŽ’‚Ò*ÎhÑbyteint‘ $ÎiŽ’¬Nݺ.ÎhÑbyteint‘ $ÎiŽ–)|³º.ÎhÑbyteint‘ $ÎiŽ“º.ÎhÑbyteint‘ $ÎiŽ‘-hÑmask‘-¨ÎiŽŽŸ ™š‘5Üžº|Ž‘CƘÎhÑname–ã=of“machine‘ÒWÎiŽŽ¡¦‘.hÑmac_addr‘ÿqîess‘æ ÎiŽ‘y_îº::=ŽŽ’^?ÎhÑhexint‘ $ÎiŽ’³…ź:ÎhÑhexint‘ $ÎiŽ–&'†º:ÎhÑhexint‘ $ÎiŽ“º:ÎhÑhexint‘ $ÎiŽ“º:ÎhÑhexint‘ $ÎiŽ“º:ÎhÑhexint‘ $ÎiŽŽ¡¦‘.hÑmask‘-¨ÎiŽ‘S3]º::=ŽŽ‘g1®'/'–¡k0..32“|“ÎhÑempty‘÷‹ÎiŽŽ¡¦‘.hÑp‘ÿqîort_name‘ÒWÎiŽ‘o“ìº::=ŽŽ’ƒ’=ÎhÑshortint‘ $ÎiŽ’µŒ8º|‘¡kÎhÑservic‘ÿqîe_name‘ÒWÎiŽŽ¡¦‘.hÑp–ÿqîort_r“ange‘ÒWÎiŽ‘o¸/º::=ŽŽ’ƒ¶€ÎhÑshortint‘ $ÎiŽ’²º':'ÎhÑshortint‘ $ÎiŽŽ¡¦‘.hÑp‘ÿqîort_opt‘ $ÎiŽ‘døšº::=ŽŽ‘xöëÎhÑp‘ÿqîort_name‘ÒWÎiŽ’ºŠ×º|‘¡kÎhÑp–ÿqîort_r“ange‘ÒWÎiŽŽŸ ™š‘5Üžº|Ž‘CƘÎhÑp‘ÿqîort_opt‘ $ÎiŽ‘z¿2º','‘¡kÎhÑp‘ÿqîort_opt‘ $ÎiŽŽ¡¦‘.hÑp‘ÿqîort‘ $ÎiŽ‘Mí²º::=ŽŽ‘aì'ALL'–¡k|“ÎhÑp‘ÿqîort_opt‘ $ÎiŽŽ¡ŽŸ’ßG-º8ŽŽŒ‹ jî ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÎhÑicmp_typ‘ÿqîe‘ÒWÎiŽ‘lñº::=ŽŽ’€ïhÎhÑbyteint‘ $ÎiŽ’® †º|‘¡kÎhÑicmp_name‘ÒWÎiŽŽ¤ ™š‘5Üžº|Ž‘CƘÎhÑicmp_typ‘ÿqîe‘ÒWÎiŽ’‚·¯º','‘¡kÎhÑicmp_typ‘ÿqîe‘ÒWÎiŽŽ©™šŸ1I‘.hÑicmp_name–ÿqîd_typ“e‘ÒWÎiŽ’“κ::=ŽŽ’§ÌÐ'icmp-net-unreacš² hable'–¡k|“'icmp-host-unreac˜hable'Ž¡‘5Üž|Ž‘CƘ'icmp-pM_ort-unreacš² hable'–¡k|“'icmp-proto-unreac˜hable'Ž¡‘5Üž|Ž‘CƘ'icmp-net-prohibited'–¡k|“'icmp-host-prohibited'ަŸ1I‘.ÎhÑpr–ÿqîoto“c“ol‘"\ÎiŽ‘_Ë'º::=ŽŽ‘sÉx'ALL'–¡k|“ÎhÑbyteint‘ $ÎiŽ‘0¿‰º|“'icmp'“ÎhÑicmp_typ‘ÿqîe‘ÒWÎiŽŽ¡‘5Üžº|Ž‘CƘ'udp'‘¡kÎhÑp‘ÿqîort‘ $ÎiŽŽ¡‘5Üžº|Ž‘CƘ'tcp'‘¡kÎhÑp‘ÿqîort‘ $ÎiŽŽ¦¤1I‘.hÑsr‘ÿqîc_dst_ip‘­6ÎiŽ‘oo‹º::=ŽŽ’ƒmÜÎhÑip_addr‘ÿqîess‘æ ÎiŽ’À Jº'=>'ÎhÑip_addr‘ÿqîess‘æ ÎiŽŽ¦¡‘.hÑp‘ÿqîolicy‘÷‹ÎiŽ‘V "º::=ŽŽ‘j s'Aš² CCEPT'–¡k|“'REJECT'“|“'DR˜OP'ޤ ™š‘5Üž|Ž‘CƘ'Aš² CCEPT_LOG'–¡k|“'REJECT_NOLOG'“|“'DR˜OP_NOLOG'Ž¡‘5Üž|Ž‘CƘ'LOG'ަŸ1I‘.ÎhÑpr‘ÿqîoto_ip‘­6ÎiŽ‘dT£º::=ŽŽ‘xRôÎhÑpr–ÿqîoto“c“ol‘"\ÎiŽ’ªhÑsr‘ÿqîc_dst_ip‘­6ÎiŽŽŸ™š‘.ºA‘Brule–B†consists“of›B‡an“action/pM_olicy˜and“a˜set“of˜matcš² hes“whic˜h‘B‡m˜ust“bM_eŽ¡‘.fullled–›:in››;order“for“the“action/pM_olicy˜to“bM_e“applied˜to“the“connection.‘ÄUIfŽ¡‘.this–¡kis“the“case,“it“is“said“that“the“rules“Ñmatches‘ˆ ºthe“connection.Ž¡‘?The–æÛ›åºdenes“a˜general“connection˜matc² h“used˜throughoutŽ¡‘.the–{žconguration“les.‘ÊNThe“rst“argumenš² t““matc˜hes“connectionsŽ¡‘.of–‹òthis“t² ypšM_e.‘Ï¿If“the“proto˜col“is“either“Ûtcp“ºor“Ûudp“ºthen“the“p˜ort“sp˜ecies“theŽ¡‘.destination–ì‘pšM_ort.‘¸XIf“the‘ìproto˜col“is“Ûicmp‘ìºa“icmp“t² yp˜e‘ìis“required.‘¸XThe“lastŽ¡‘.argumen² t–E¶Û“ºspM_ecies“the“source“and“destination“ip“address“ofŽ¡‘.the–‡ºconnection,‘ÁMi.e.‘‰Òthe“source›‡¹ip“address˜mš² ust“matc˜h›‡¹the“initiator˜of“theŽ¡‘.connection,–¡kand“the“destination“for“the“endpM_oin² t“of“the“connection.ŽŸQŽ‘.Ð6.2Ž‘L¾Zone‘¸denitionŽŸ«‘.ºT‘ÿão–íÓsetup›íÔa“zone,‘@îsev² eral“parameters“are˜required“in˜order“to˜iden² tify“theŽ¡‘.zone.‘ÖçThe–¡kparameters“are“all“on“simple“form,“and“are“listed“bM_elo² w.Ž©ë(‘.ÌNAME‘ ãLºThis–áZiden² ties“the›áYname“of“the“zone.‘–³The“name˜m² ust“bM_e“unique,Ž¡‘.and–`amš² ust“bM_e“iden˜tical“to“the“name‘``as“spM_ecied“in“the“global“congurationŽ¡‘.le.Ž¡‘.Example:‘ÖçÛNAME=EXTަ‘.ÌDEV‘ ãLºThis–ñŒparameter›ñspM_ecies“the˜net•² w“ork›ñŒin“terface˜to‘ñwhic“h˜the‘ñzone˜isŽ¡‘.connected.Ž¡‘.Example:‘ÖçÛDEV=eth0ŽŽŸ’ßG-º9ŽŽŒ‹ u! ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÌD§YNAMIC‘ ãLºIf–0Dthe“inš² terface‘0Cas“spM_ecied“b˜y“the“ÛDEV‘0&ºparameter“obtains“itsޤ ™š‘.ip–… address›…!from“a“dhcp“serv² er,‘½ýor“can˜ha•² v“e–… its“ip“address˜c² hanged“dynamically‘ÿã,Ž¡‘.D•² YNAMIC›¡km“ust˜bM_e˜enabled.Ž©#óže‘.ÎhÑdynamic‘Ÿ—ÎiŽ‘bxŒº::=ŽŽ‘vvÝÎhÑb–ÿqîo“ol‘"\ÎiŽŽŸׯ‘.ºExample:‘ÖçÛDYNAMIC=0ŽŸ|@‘.ÌDHCP_SER‘þœBVER‘ ãLºT‘ÿão–6ºspM_ecify“that“the“rewš² all“also‘6»acts“as“a“dhcp“serv˜er,Ž¡‘.this–-Ïparameter“should›-ÎbM_e“set“to“one,‘Dîin“order“for“dhcp“queries˜to“bM_e“acceptedŽ¡‘.from–¡kmacš² hines“in“the“curren˜t“zone.ަže‘.ÎhÑdhcp_server‘-¨ÎiŽ‘uçûº::=ŽŽ’‰æLÎhÑb–ÿqîo“ol‘"\ÎiŽŽ©ׯ‘.ºExample:‘ÖçÛDHCP_SERVER=1ŽŸ|@‘.ÌGLOBAL‘ ãLºThe–ážglobal›áŸparameter“spM_ecies˜if“the˜in² terface“connects˜the“re-Ž¡‘.wš² all–* to“the“In˜ternet.‘¯If“the“in˜terface“doM_es“connect“the‘* rew˜all“to“the“In˜ternetŽ¡‘.then–¡kglobal“should“bM_e“set“to“one.ŽŸ#òže‘.ÎhÑglob‘ÿqîal‘"\ÎiŽ‘Ua׺::=ŽŽ‘i`(ÎhÑb–ÿqîo“ol‘"\ÎiŽŽ¦‘.ºExample:‘ÖçÛGLOBAL=1Ž¡¡‘.ºThe–E7follo² wing›E8parameters“are“only˜required“if“the˜zone“is“spM_ecied˜as“non-Ž¡‘.dynamic,–¡kthat“is“ÛDYNAMIC=0º.Ž©|@‘.ÌIP‘ ãLºThe–ØeÛIP‘Ø2ºshould“bM_e“set“the“primary“ip“of‘Øfthe“inš² terface“of“the“curren˜t“zone.Ž¡‘.Example:‘ÖçÛIP=1.2.3.4ŽŸ|?‘.ÌNET‘ ãLºSpM_ecies–S¿the›SÀaddress“of“the“net•² w“ork˜to›S¿whic“h˜this˜zone‘SÀis˜connected.Ž¡‘.Example:‘ÖçÛIP=1.2.3.2ަ‘.ÌMASK‘ ãLºSpM_ecies–¡kthe“net•² w“ork–¡kmask“of“the“address“in“dotted“notation.Ž¡‘.Example:‘ÖçÛIP=255.255.255.252ަ‘.ÌBCAST‘ ãLºSpM_ecies–¡kthe“broadcast“address“of“the“net•² w“ork–¡kfor“this“zone.Ž¡‘.Example:‘ÖçÛIP=1.2.3.6ŽŸ⦑.Ð6.3Ž‘L¾Zone‘¸accessŽŸ«‘.ºThe–Yaccess›Yrules“are“the˜cen² tral“rules˜in“the“zone.‘ ÿTThese˜denes“accessŽ¡‘.bM_et•² w“een–±ßother›±Þzones“and˜the“rew² all˜itself.‘BAll˜zone“access˜rules“are˜arra² ys,Ž¡‘.whicš² h–K¶are‘K·proM_cessed“sequen˜tially‘ÿã.‘ºVIt“is“highly‘K·recommended“to“ha˜v˜e‘K·an“Ñc‘ÿqîatchŽ¡‘.al‘Žl‘8îºrule–’as“the‘‘last“rule,‘3ÜspšM_ecifying“a“default“p˜olicy‘‘for“pac•² k“ets–’not“co•² v“eredŽ¡‘.b² y–¡kprevious“rules.ŽŽŸ’ÜŽZ10ŽŽŒ‹ z ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ì6.3.1Ž‘T9ÀInput‘+¡rulesŽŸ«‘.ºThe–-§input›-¨rules“con² trol˜access“from˜mac² hines“loM_cated“in˜the“zone˜to“theޤ ™š‘.rewš² all–¡kitself.‘ÖçInput“rules“are“spM_ecied“as“an“arra˜y“named“ÛINPUTº:ŽŸ™šž±I‘.ÎhÑinput‘ $ÎiŽ‘Sž«º::=ŽŽ‘gœüÎhÑp‘ÿqîolicy‘÷‹ÎiŽ’©hÑpr‘ÿqîoto_ip‘­6ÎiŽŽ©™š‘.ºThe–Ž-pM_olicy“denes“whether›Ž,to“drop,‘Å:reject“or˜accept“connections“that“matc² hesŽ¡‘.this‘¡krule.ŽŸë(‘.ÌExampleަ‘.ÛINPUT[0]="ACCEPT–‘ëtcp“25,80,443,22“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.INPUT[1]="DROP–‘ëALL“0.0.0.0/0=>0.0.0.0/0"ަ‘.ºThis–†Gwill“accept“only“h•² ttp,‘‹µh“ttps,‘‹´sm“tp–†G(mail“transfer)“and“ssh“access“to“theŽ¡‘.rew•² all›d¸itself.‘ ÌAn“y˜other‘d·pac“k“et˜originating–d·from˜the“zone˜destined“to˜theŽ¡‘.rew² all–¡kitself“will“bM_e“discarded.ŽŸë(‘.Ì6.3.2Ž‘T9ÀOutput‘+¡rulesŽŸ«‘.ºThe–Áoutput›Ârules“determines“access˜from“the˜rewš² all“to“mac˜hines‘ÂloM_cated“inŽ¡‘.the–¡kzone.‘ÖçOutput“rules“are“spM_ecied“as“an“arra² y“named“ÛFORWARDº:ŽŸ™šž±I‘.ÎhÑoutput‘ $ÎiŽ‘Y,º::=ŽŽ‘m*nÎhÑp‘ÿqîolicy‘÷‹ÎiŽ’•6hÑpr‘ÿqîoto_ip‘­6ÎiŽŽ¦‘.ºThe–Ž-pM_olicy“denes“whether›Ž,to“drop,‘Å:reject“or˜accept“connections“that“matc² hesŽ¡‘.this‘¡krule.ŽŸë(‘.ÌExampleަ‘.ÛOUTPUT[0]="ACCEPT–‘ëtcp“22“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.OUTPUT[1]="REJECT–‘ëALL“0.0.0.0/0=>0.0.0.0/0"ަ‘.ºThis–½will“alloš² w‘¼the“rew˜all“only“to“initiate“ssh‘¼comm˜unication“to“mac˜hinesŽ¡‘.loM_cated–0»within›0ºthe“zone.‘„ÖAll˜other“comm² unication˜initiated“b² y˜the“rew² allŽ¡‘.to–¡kmacš² hines“in“this“zone“is“prohibited,“and“pac˜k˜ets“are“bloM_c˜k˜ed.ŽŸë(‘.Ì6.3.3Ž‘T9ÀF‘þõ1orw§ard‘+¡rulesŽŸ«‘.ºThe–Hñforwš² ard“rules“restricts“access“from“mac˜hines“loM_cated“in“other“zones“toŽ¡‘.this–¡kzone.‘ÖçF‘ÿãorwš² ard“rules“are“spM_ecied“as“an“arra˜y“named“ÛFORWARDº:ŽŸ™šž±I‘.ÎhÑforwar‘ÿqîd‘"\ÎiŽ‘_Òº::=ŽŽ‘s#ÎhÑzone‘ÒWÎiŽ’•(ÕhÑp‘ÿqîolicy‘÷‹ÎiŽ’½4÷hÑpr‘ÿqîoto_ip‘­6ÎiŽŽ¦‘.ºThe–&Örst“argumen² t“spšM_ecies‘&×the“source“zone“of“the“connection.‘g)The“p˜olicyŽ¡‘.denes–UUwhether›UVto“drop,‘dreject˜or“accept“connections˜that“matc² hes˜this“rule.ŽŽŸ’ÜŽZ11ŽŽŒ‹ ˆx ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÌExampleޤµ‘.ÛFORWARD[0]="ALL–‘ëACCEPT“tcp“22“0.0.0.0/0=>0.0.0.0/0"Ž© ™š‘.FORWARD[1]="DROP–‘ëALL“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.ºMac² hines–]ÿloM_cated›^in“other˜zones“are˜only“allo•² w“ed˜to–]ÿinitiate˜ssh“comm² unica-ަ‘.tion– Hto“macš² hines‘ IloM_cated“in“this“zone.‘¤†An˜y“other‘ Icomm˜unication“initiated“b˜yަ‘.macš² hines–Sin“zones“dieren˜t“from“this“zone“to“mac˜hines“in“the“presen˜t“zoneަ‘.are–¡ksilen² tly“droppM_ed.ŽŸú‘.Ì6.3.4Ž‘T9ÀReply‘+¡rulesŽŸ«‘.ºReply–åUrules“spšM_ecies‘åTa“sp˜ecial“resp˜onse“to“connection“attempts‘åTto“the“rew² allަ‘.itself,‘€JbM_efore–S¸dropping›S·the“connection.‘íÌThe˜respM_onses“usually˜mean“that˜aަ‘.pšM_ort–¡kor“proto˜col“is“not“a² v‘ÿeBailable“on“the“system.ŽŸšlŸýµd‘.ÎhÑr‘ÿqîeply‘÷‹ÎiŽ‘Q¾Wº::=ŽŽ‘e¼¨ÎhÑzone‘ÒWÎiŽ’‡ÎZhÑicmp_typ‘ÿqîe‘ÒWÎiŽ’Æ¿qhÑpr‘ÿqîoto_ip‘­6ÎiŽŽ¦‘5Üžº|Ž‘CƘÎhÑzone‘ÒWÎiŽ‘eØJº'tcp-reset'–¡k'tcp'“ÎhÑp‘ÿqîort‘ $ÎiŽ‘#hÑsr‘ÿqîc_dst_ip‘­6ÎiŽŽŸžˆ‘.ºThe–vrst“argumen² t“spšM_ecies“the“resp˜onse“to“the“connection“attempt.‘ÈpThe“2.ަ‘.argumen•² t›Ÿûserv“es–Ÿüas˜conditions˜of˜the“rule.‘ÖlA˜spM_ecial˜'tcp-reset'˜can“bM_e˜used,ަ‘.only–¡kif“the“protošM_col“is“sp˜ecied“as“tcp.ŽŸúœ‘.ÌExampleŽ¡‘.ÛREPLY_AUTH="EXT–‘ëtcp-reset“tcp“auth“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.ºThis–"îexample›"ïspM_ecies“that˜queries“to˜the“auth˜daemon“should˜bšM_e“resp˜ondedަ‘.b•² y›YÌÛtcp-resetº.‘ Man“y˜services–YÍon˜the“In•² ternet˜mak“es–YÍan˜auth“request˜onަ‘.hosts–NÔthat“mak² es“use“of“the“services.‘»`The“rst“line“spšM_eeds“this“pro˜cess“up“b² yަ‘.resetting–¡kthe“connection,“instead“of“silenš² tly“dropping“pac˜k˜ets.ŽŸú‘.Ì6.3.5Ž‘T9ÀLimit‘+¡rulesŽŸ«‘.ºLimit–‹¬rules›‹­serv² es“as˜an“supplemen² t˜to“input˜and“forw•² ard˜rules.‘ϨLin“ux‘‹¬rulesަ‘.alloš² ws– Šonly“limited“acceptance“of“pac˜k˜ets,‘@Rused“in“order“to“a˜v˜oid“ÑDenial‘Wóofަ‘.servic‘ÿqîe‘sºattacš² ks.‘ÖçThe–¡krules“are“on“the“form“Ûº,“as“giv˜en“bM_elo˜w.ޤšlŸýµd‘.ÎhÑr‘ÿqîate‘ÒWÎiŽ‘M'Óº::=ŽŽ‘a&$ÎhÑint‘ $ÎiŽ‘{bàhÑr‘ÿqîate_opt‘ $ÎiŽŽ¡©2‘.hÑr‘ÿqîate_opt‘ $ÎiŽ‘djˆº::=ŽŽ‘xhÙ'/second'–¡k|“'/minš² ute'“|“'/hour'“|“'/da˜y'“|“ÎhÑempty‘÷‹ÎiŽŽ¡Ÿ2‘.hÑburst‘ $ÎiŽ‘R¦ º::=ŽŽ‘f¤\ÎhÑint‘ $ÎiŽŽ¡¦‘.hÑlimit‘ $ÎiŽ‘Q\º::=ŽŽ‘e­ÎhÑzone‘ÒWÎiŽ’‡/_hÑp‘ÿqîolicy‘÷‹ÎiŽ’¯;hÑr‘ÿqîate‘ÒWÎiŽ’ÎcThÑburst‘ $ÎiŽ’ó _hÑpr‘ÿqîoto_ip‘­6ÎiŽŽŸž‡‘.ºThe–Q¼Û›Q»ºand“Û˜ºspM_ecies“the˜maximš² um“a˜v˜erage‘Q»matc˜hing“rate,ޤ ™š‘.and–Èsthe“initial“pac•² k“ets‘Èrto›Èsmatc“h.‘KÿThe˜Û˜ºspM_ecies‘Èrthe˜source˜zone˜forŽ¡‘.pac•² k“ets–ûfthat“can‘ûgbM_e“matcš² hed“b˜y“this“rule.‘Ÿ‘If“the“source“zone‘ûgequals“that“zoneŽ¡‘.for–{“whic² h›{”the“rule“is“spM_ecied,‘²then“the“rule˜is“applied“for“requests˜to“theŽ¡‘.rew² all‘¡kitself.ŽŽŸ’ÜŽZ12ŽŽŒ‹ ‘d ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÌExampleŽŸµ2‘.ÛLIMIT_PING="EXT–‘ëDROP“1/second“3“icmp“echo-request“\ޤ ™š‘.0.0.0.0/0=>0.0.0.0/0"ŽŸµ1‘.ºThis–Óexample“will“drop“ping's“arriving‘Ôfaster“than“one“pM_er“second,‘Èíwith“aŽ¡‘.maxim² um–¡kof“three.ŽŸep‘.Ð6.4Ž‘L¾Net• w“ork–¸address“translation“rulesŽ©«‘.ºThe›È net•² w“ork˜address–Ètranslation˜rules˜are˜used˜to˜alter“either˜the˜source˜orŽ¡‘.the–\;destination“of›\:a“pac•² k“et.‘WThis˜can–\;bM_e“used“to“redirect˜requests“and“forŽ¡‘.masquerading.ŽŸÿ ‘.Ì6.4.1Ž‘T9ÀRedirectަ‘.ºRedirect–}¿rules“can“alter“the‘}¾destination“of“connection“attempts.‘ËThese“rulesŽ¡‘.only›7»apply‘7ºpac•² k“ets˜originating˜from‘7ºthe˜curren“t˜zone.‘³¬Redirect˜rules‘7ºare˜setsŽ¡‘.of–¡krules“on“the“form“Ûredirect“ºas“givš² en“bM_elo˜w.ŽŸŸŸýÌá‘.ÎhÑaddr‘ÿqîess_opt‘ $ÎiŽ‘tËÙº::=ŽŽ’ˆÊ*','‘¡kÎhÑip_addr‘ÿqîess‘æ ÎiŽ‘DuDhÑaddr‘ÿqîess_opt‘ $ÎiŽŽ¡‘5Üžº|Ž‘CƘÎhÑempty‘÷‹ÎiŽŽ¤ŸŸ6Í‘.hÑr–ÿqîe“dir_dest‘ $ÎiŽ‘l º::=ŽŽ’€ ÐÎhÑip_addr‘ÿqîess‘æ ÎiŽ’Àß©hÑaddr‘ÿqîess_opt‘ $ÎiŽŽ¡Ÿ6Α.hÑr–ÿqîe“dir“e“ct‘ $ÎiŽ‘]ž,º::=ŽŽ‘qœ}ÎhÑpr‘ÿqîoto_ip‘­6ÎiŽ’§ñ hÑr–ÿqîe“dir_dest‘ $ÎiŽ’åþŸhÑp‘ÿqîort‘ $ÎiŽŽŸº¶‘.ºIf›pac•² k“ets˜originating˜from˜the˜curren“t˜zone˜matc“hes˜Ûº,‘_'thenޤ ™š‘.the–urdestination“of›uqthe“pac•² k“ets–urare“c² hanged“to“the˜destination“as“spM_ecied“b² yŽ¡‘.Û‘‘ëº.‘²žIf–4a›4range“of“ip“addresses˜is“spM_ecied“for˜the“newŽ¡‘.destination,‘then–ð¤redirection“will›ð¥bM_e“done˜to“eac² h˜ip“in˜a“round˜robin“fashion.Ž¡‘.This–¡kis“often“used“to“load“balance“serv² ers.ŽŸÿ ‘.ÌExampleŽŸµ1‘.ÛREDIRECT_SSH="tcp–‘ë:22“10.0.0.1:22"ŽŸµ2‘.ºThis–¡kwill“redirect“an² y“ssh“queries“to“bM_e“redirect“to“address“10.0.0.1.ŽŸÿ ‘.Ì6.4.2Ž‘T9ÀMasquerading/SNA‘þõ1Tަ‘.ºMasquerading–U‡is“used“when‘Uˆno“public“net•² w“ork–U‡is“aš² v‘ÿeBailable.‘ó“ºas“givš² en“bM_elo˜w.ŽŸŸŸýÌá‘.ÎhÑsnat‘ $ÎiŽ‘NæSº::=ŽŽ‘bä¤(‘¡kÎhÑzone‘ã=name‘ÒWÎiŽ‘C ”º|‘¡kÎhÑip‘­6ÎiŽ‘Vñº)‘¡kÎhÑpr–ÿqîoto_p“ort_ip‘­6ÎiŽŽŸº¶‘.ºThe–äÅÛ“ºspM_ecies“the‘äÄdestination“zone“of“the“pac•² k“ets.‘˜All‘äÅpac“k“etsŽ¡‘.originating–·²from“the‘·³currenš² t“zone“to˜w˜ard“the“spM_ecied‘·³zone“are“masqueraded,Ž¡‘.and–ð'will“ha•² v“e–ð'their“source“address“c² hanged‘ð&to“the“ip“address“of“the“zoneŽ¡‘.spM_ecied,–¡kin“a“round“robin“manner.ŽŽŸ’ÜŽZ13ŽŽŒ‹  ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÌExampleޤ*Ÿ‘.ÛSNAT[0]="EXT–‘ëALL“0.0.0.0/0=>0.0.0.0/0"Ž¡‘?ºIn–1'this“example,‘•all“pac•² k“ets–1'send“from“the“curren² t‘1&zone“to“zone“ÛEXTޤ ™š‘.ºwill–+gbM_e›+fmasqueraded,‘Måand“the“source˜of“the˜pac•² k“ets–+gwill˜bM_e“c² hanged˜to“theŽ¡‘.ip–nof“zone›nÛEXTº.“The“source“pM_orts“will˜bšM_e“c² hanged“to“b˜e“with‘nin“the“rangeŽ¡‘.óKñ`y ó3 cmr10¹[32768–nìΓ¹65535]º.ŽŸ<¢‘.Ð6.5Ž‘L¾Miscellaneous‘¸rulesޤ«‘.Ì6.5.1Ž‘T9ÀP•§ac“k“et‘+¡markingŽ¡‘.ºP•² ac“k“et–marking“is“used“to‘mark“pac•² k“ets–going“through“the“rew² all.‘«vThis“canޤ ™š‘.bM_e–¡kused“bš² y“external“programs“suc˜h“as“trac“shaping.Ž¡‘?Rules–$for›%marking“is“spM_ecied“through˜an“arra² y“ÛMARKº.“The˜syn² tax“ofŽ¡‘.mark–¡krules“are“spšM_ecied“b˜elo² w“as“Ûº.ŽŸƒgŸBN‘.ÎhÑmark_value‘ÒWÎiŽ‘sw(º::=ŽŽ’‡uyÎhÑint‘ $ÎiŽŽ©ƒhŸ‘.hÑmark‘-¨ÎiŽ‘SVáº::=ŽŽ‘gU2ÎhÑzone‘ÒWÎiŽ’‰fähÑmark_value‘ÒWÎiŽ’ÎÞ hÑpr‘ÿqîoto_ip‘­6ÎiŽŽŸm‘?ºP•² ac“k“ets–éoriginating“from“the“curren² t“zone“destined“for“the“spM_ecied“zone,Ž¡‘.and–kïthat“matcš² hes“the“Ûproto_ip“ºare“mark˜ed“with“the“v‘ÿeBalue“Ûº.ŽŸÖ;‘.ÌExampleޤ*Ÿ‘.ÛMARK[0]="ALL–‘ë1“tcp“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.ºThis–u,rule›u-will“mark˜anš² y“pac˜k˜ets‘u-lea˜ving“the“curren˜t›u-zone“with˜mark“v‘ÿeBalueޤ ™š‘.'1'.ŽŸÖ<‘.Ì6.5.2Ž‘T9ÀT‘þõ1rac‘+¡monitoringŽŸ«‘.ºThis–]rrule›]qis“used˜to“monitor“trac˜going“in² to“or˜lea² ving“the˜curren² t“zone.Ž¡‘.Monitored›¡kpac•² k“ets˜are˜logged˜to˜the˜system˜log˜for˜later˜inspM_ection.Ž¡‘?Monitoring–qŽis“done›qon“a“pM_er“ip“basis.‘GOOnly“one“en² try“can˜exist“and“isŽ¡‘.called–¡kÛWATCH_IPº.“The“grammar“is“spM_ecied“as“Ûº.ަŸBM‘.ÎhÑwatch_ip‘­6ÎiŽ‘f÷yº::=ŽŽ‘zõÊÎhÑip_addr‘ÿqîess‘æ ÎiŽ’»É£hÑwatch_ip‘­6ÎiŽ’ôÁº|‘¡kÎhÑempty‘÷‹ÎiŽŽŸÖ<‘.ÌExampleޤ*Ÿ‘.ÛWATCH_IP=''10.0.0.1‘‘ë10.0.0.2''Ž¡‘.ºAn•² y›‰µpac“k“et˜going˜in“to˜or˜lea“ving‘‰¶the˜curren“t˜zone˜either˜destined˜or˜orig-ޤ ™š‘.inating–BAfrom›BBip“address˜Û10.0.0.1“ºor˜ip“address˜Û10.0.0.2“ºare˜logged“toŽ¡‘.the–¡ksystem“log.ŽŽŸ’ÜŽZ14ŽŽŒ‹§} ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ì6.5.3Ž‘T9ÀDen•§ying›+¡comm“unication˜to˜MA“C˜addressesŽŸ«‘.ºCommš² unication–öwith“mac˜hines‘õha˜ving“a“spM_ecic“MA˜C‘´address‘õcan“bM_e“prohib-ޤ ™š‘.ited.‘˜UDue›å¶to–åµthe“nature“of˜Ethernet,‘ @only“pac•² k“ets‘åµreceiv“ed˜from–åµthe“oendingŽ¡‘.mac² hine–¡kcan“bM_e“prohibited.Ž¡‘?T‘ÿão–mgprohibit“commš² unication“from“a‘mflist“of“MA˜C‘maddresses,‘«a“single“v‘ÿeBariableŽ¡‘.ÛMAC_DROP–¡kºis“used.‘ÖçThe“grammar“is“spšM_ecied“as“Ûmac_drop“ºb˜elo² w.ŽŸSÆŸT%‘.ÎhÑmac_dr‘ÿqîop‘­6ÎiŽ‘kDƒº::=ŽŽ‘BÔÎhÑmac_addr‘ÿqîess‘æ ÎiŽ’Ê¢ÂhÑmac_dr‘ÿqîop‘­6ÎiŽ’çEº|‘¡kÎhÑempty‘÷‹ÎiŽŽ©©U‘.ÌExampleŽŸden•² y‘ƒ=comm“unication˜to˜and˜from‘ƒ=a˜mac“hine˜in–ƒ=the˜zone,‘‰Git˜is“pM_ossible˜toŽ¡‘.spšM_ecify–¡ka“list“of“ip“addresses“whose“pac•² k“ets–¡kare“to“b˜e“dropp˜ed.Ž¡‘?This–3is“spšM_ecied“b² y“the“v‘ÿeBariable“ÛIP_DROPº.“The“grammar“is“sp˜eciedŽ¡‘.bM_elo² w–¡kas“Ûº.ޤSÆŸT%‘.ÎhÑip_dr‘ÿqîop_alt‘ $ÎiŽ‘uYëº::=ŽŽ’‰X<ÎhÑip_addr‘ÿqîess‘æ ÎiŽ’Ê,hÑip_dr‘ÿqîop‘­6ÎiŽŽ¡Ÿëu‘.hÑip_dr‘ÿqîop‘­6ÎiŽ‘`¸nº::=ŽŽ‘t¶¿ÎhÑip_dr‘ÿqîop_alt‘ $ÎiŽ’¼ªº|‘¡kÎhÑempty‘÷‹ÎiŽŽ¦‘.ÌExampleŽŸº.ޤSÆŸT%‘.ÎhÑip_dr‘ÿqîop_alt‘ $ÎiŽ‘uYëº::=ŽŽ’‰X<ÎhÑip_addr‘ÿqîess‘æ ÎiŽ’Ê,hÑip_dr‘ÿqîop‘­6ÎiŽŽ¡Ÿëu‘.hÑe–ÿqîcn_r“emove‘ÒWÎiŽ‘tLCº::=ŽŽ’ˆJ”ÎhÑip_dr‘ÿqîop_alt‘ $ÎiŽ’Ï¤º|‘¡kÎhÑempty‘÷‹ÎiŽŽŽŸ’ÜŽZº15ŽŽŒ‹°R ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÌExampleޤáV‘.ÛECN_REMOVE=''10.0.0.10''Ž¡‘.ºThis–»owill“strip›»po“the“ECN‘»hbits˜in“all“pac•² k“ets–»odestined“to˜the“mac² hine“withޤ ™š‘.ip–¡kaddress“Û10.0.0.10º.ŽŸ!›k‘.Ë7Ž‘EÁExample‘G\setupŽŸpÜ‘.ºWhen–GXFIAIF‘G.is›GYstarted,‘pÔit“reads˜Û/etc/fiaif/fiaif.confº.‘ȯThis˜is“theŽ¡‘.global›º\conguration–º]le.‘‰âIt“denes˜the“zones˜a² v‘ÿeBailable,‘è“and“a˜n•² um“bM_er‘º]of˜otherŽ¡‘.global–3ûsettings,‘IÞsuc² h‘3úas“Ñtyp›ÿqîe–~Ãof“servic˜e‘Rº(TOS)‘3ßsettings,‘IÞreferences‘3úto‘3ûreserv² edŽ¡‘.and–¡kpriv‘ÿeBate“net•² w“orks.Ž¡‘?The–Ðódefault“(the›Ðòsample“conguration“les,‘ÜÕsee“appM_endix“B˜on“page“20)Ž¡‘.sets–rðup“an“external“zone“EXT,“whicš² h‘rïis“y˜our“In˜ternet“connection.‘ KvT‘ÿãw˜oŽ¡‘.additional–uzone“conguration“les“are“proš² vided:‘~an“in˜ternal“zone,‘©çÑINTº,“toŽ¡‘.describM_e–M"yš² our‘M!priv‘ÿeBate“net˜w˜ork,›]ýand“a‘M!demilitarized“zone,˜ÑDMZº,“to‘M!describM_e“aŽ¡‘.zone–ùin‘úwhicš² h“serv˜ers“accessable“from‘úthe“in˜ternet“are–úloM_cated.‘£kIn“the‘ùdefaultŽ¡‘.conguration–¡kneither“are“used.ŽŸ]‘.ÌThe–+¡default“setup“of“the“External“zoneޤáV‘>lÐÎŽŽŽ‘I`ºAš² ccepts–¡kdns“queries,“ssh,“h˜ttp,“h˜ttps“and“icmp-ping.ŽŸ¶K‘>lÐÎŽŽŽ‘I`ºLimits–¡kping“to“1“pM_er“sec,“with“a“start-v‘ÿeBalue“of“3.Ž©¶L‘>lÐÎŽŽŽ‘I`ºClose–¡kcomm² unication“with“ÑTCP-RESET‘Jºon“authorization“requests.ŽŸ\‘.ÌThe–+¡default“setup“of“the“in§ternal“zoneŽ¡‘>lÐÎŽŽŽ‘I`ºAlloš² ws–¡kall“connections“from“this“zone“to“the“rew˜all.ަ‘>lÐÎŽŽŽ‘I`ºRedirects–¡kall“hš² ttp“requests“to“a“transparen˜t“pro˜xy‘ÿã.ަ‘>lÐÎŽŽŽ‘I`ºA² dds–"Masquerading/NA‘ÿãT‘ûfor“all“connections“going“out“on“the“externalޤ ™š‘I`in² terface.Ž©¶K‘>lÐÎŽŽŽ‘I`ºDisallo•² ws›"¨an“y‘"§new˜pac“k“ets˜from‘"§an“y˜other˜zones‘"§(already˜establishedŽ¡‘I`connections–¡kare“automatically“let“though)ŽŸ\‘.ÌThe–+¡default“setup“of“the“demilitarized“zoneŽŸáW‘>lÐÎŽŽŽ‘I`ºAš² ccept–¡kwww“and“h˜ttps“requests“from“the“external“zone“(In˜ternet).ަ‘>lÐÎŽŽŽ‘I`ºNo–1]commš² unication“with‘1\the“rew˜all“itself“is–1\allo˜w˜ed.‘†½The“idea‘1]bM_eingŽ¡‘I`that–æa“crac•² k“er's›çgaining–æaccess“to“a˜mac² hine“in“the“DMZ,˜došM_es“not“p˜oseŽ¡‘I`a–¡ksecuritš² y“risk“for“an˜y“other“zones“or“for“the“rew˜all“itself.ŽŸ¶L‘>lÐÎŽŽŽ‘I`ºA² ccept–Ã$only›Ã#ssh“from“the˜in² ternal“zone.‘ŒÐThis˜w•² a“y›Ã$mac“hines˜in‘Ã#the˜DMZŽ¡‘I`can–¡kbM_e“administered.ŽŽŸ’ÜŽZ16ŽŽŒ‹ºR ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ë8Ž‘EÁRelated‘G\wcorkŽŸpÜ‘.ºManš² y–uÂtoM_ols“exists‘uÁto“help“setup“a“rew˜all,‘~}and“create“the‘uÁrules“necessary“forޤ ™š‘.Lin² ux.‘ÖçIn–¡kgeneral,“these“tošM_ols“can“b˜e“categorized“inš² to“t˜w˜o“ma‘š½jor“categories:Ž©™š‘.ÌSp•Xïecic‘+¡to“ols:ŽŽ‘~Ä(ºMan•² y›•Ûrew“all–•Úscripts˜help˜the˜user“to˜setup˜a˜rew² all“for˜aŽ¡‘I`sp•M_ecial›MJpurp“ose.‘Ú„These˜to“ols˜con•² tain‘MKno˜or˜v“ery˜little˜lev“el˜of˜cong-Ž¡‘I`uration,‘L¤as–*fthey“are›*emade“with˜a“simple“purpM_ose˜in“mind.‘q×ExamplesŽ¡‘I`are–kOscripts“that“sets“up“a‘kNmasquerading“rewš² all“with“only“one“in˜ter-Ž¡‘I`nal› ³net•² w“ork.‘½Conguration˜is˜mainly‘ ²done˜b“y‘ ²c“hanging˜in‘ ²the˜sourceŽ¡‘I`cošM_de–O (usually“accompanied“with“go˜o˜d“commen² ts“of“where“and“what“toŽ¡‘I`c² hange).‘Ä…These–jFscripts“are“usually“targeted“for“the‘jGmass“public,‘uMwhereŽ¡‘I`a–žÞrewš² all“protects“a“single“home“LAN“from“attac˜ks“from“the“In˜ternet.ŽŸ™š‘.ÌGeneric‘+¡toXïols:ŽŽ‘¡–ºT‘ÿãoM_ols–®Œthat›®‹are“extensible˜and“not˜limited“to˜a“spM_ecic˜net-Ž¡‘I`wš² ork–~Šsetup“fall“in˜to“this“category‘ÿã.‘ËGSetup“is“usually“done“with“no“moM_d-Ž¡‘I`ications–ÏYto›ÏXthe“source˜coM_de,‘ÚÔand˜users“are˜required“to˜ha•² v“e‘ÏYextensiv“eŽ¡‘I`knoš² wledge–¡kof“net˜w˜ork“setup“and“securit˜y“issues.ަ‘.Hundreds–&of›'scripts“that˜fall“in² to˜the“Ñsp–ÿqîe“cic‘T°to“ols‘ìÆºexists,‘%5while–&only˜v² ery“fewŽ¡‘.are–¡kgeneric“tošM_ols.‘ÖçOf“these“can“b˜e“named:ަ‘.ÌShorew§all:ŽŽ‘kªŽºShorewš² all[3Ž‘q¦]–½5seems“to‘½4bM_e“the“most“attractiv˜e‘½4alternativ˜e“to“FI-Ž¡‘I`AIF.–UyThe›Uxterm“zones˜are“also˜used“in˜this“proM_duct.‘óConguration“isŽ¡‘I`said–Ñ the›Ñ bM_e“somewhat˜more“dicult“than˜FIAIF,“and˜conguration“isŽ¡‘I`not–¡ksplit“in² to“zone“conguration“les.ŽŸ™š‘.ÌMandrak•§e:‘^Multi›+¡Net“w“ork˜Firew“all:ŽŽ’øâºThis–.commercial“rew² all[6Ž‘q¦]“sup-Ž¡‘I`pšM_orts–{3denitions“of“m•² ultiple‘{4securit“y–{3zones,‘‚Øsupp˜ort“for“virtual“priv‘ÿeBateŽ¡‘I`net•² w“orks–L=(VPN),›Lthe“users“spM_ecic“knoš² wledge“of“rule“and“conguration“syn˜tax.‘|.CreatingŽ¡‘.a–¡kuser“inš² terface“(graphical“or“text“moM_de),“migh˜t“eliminate“suc˜h“problems.ŽŽŸ’ÜŽZ18ŽŽŒ‹Î' ¨ÌÞ ýu3" lÌÞ ý·3"‘.ËReferencesŽŸpÜ‘.º[1]ŽŽ‘>øœDebian.ޤ ™š‘>øœh² ttp://www.debian.org.Ž©™š‘.[2]ŽŽ‘>øœNetlter.Ž¡‘>øœh² ttp://www.netlter.org.ަ‘.[3]ŽŽ‘>øœShorew² all.Ž¡‘>øœh•² ttp://www.shorew“all.net.ަ‘.[4]ŽŽ‘>øœOsk‘ÿeBar–¡kAndreasson.‘ÔIptables“tutorial.Ž¡‘>øœh•² ttp://iptables-tutorial.frozen“tux.net/iptables-tutorial.h“tml.ަ‘.[5]ŽŽ‘>øœAnders–¡kF‘ÿãugmann.‘ÔFiaif“is“an“in•² telligen“t‘¡krew“all.Ž¡‘>øœh² ttp://www.aif.net.ަ‘.[6]ŽŽ‘>øœMandrak•² esoft.‘ÔMulti›¡knet“w“ork˜rew“all.Ž¡‘>øœh•² ttp://www.mandrak“esoft.com/proM_ducts/mnf.ŽŽŸ’ÜŽZ19ŽŽŒ‹Ñó ¨ÌÞ ýu3" lÌÞ ý·3"‘.ËAŽ‘IÊ‹UsageŽŸpÜ‘.ºFIAIF‘Õ1installs›Õfa–Õeprogram“in˜Û/etc/init.d/fiaifº,‘þ3whic² h˜is“used˜to“con² trolޤ ™š‘.the–åèrewš² all.‘¤^The‘åçprogram“should“only“bM_e“started“b˜y“the‘åçÑr–ÿqîo“ot‘ð ºuser.‘¤^TheŽ¡‘.program–¡kaccepts“the“folloš² wing“argumen˜ts.ŽŸ™š‘.ó1‰š ó3 pcrb8tÜstartÌ:ŽŽ‘WÌôºThis–Äewill“sa•² v“e‘Ädthe›Äecurren“t˜rew“all˜rules,‘ð™and˜deplo“ys‘Ädthe˜new˜rew“allŽ¡‘I`as–¡kdescribM_ed“b² y“the“conguration“les.Ž©™š‘.ÜstopÌ:ŽŽ‘Q; ºRemo•² v“e–&#all“rew² all›&$rules,‘>Ëand“restores“previously˜sa•² v“ed›&#rew“all˜rules.Ž¡‘I`This–¡kcan“only“bšM_e“used“if“the“rew² all“has“b˜een“previously“started.ަ‘.Üforce-reloadÌ:ŽŽ’…ÊaºThis–lÆoption›lÇis“the“same˜as“start,‘ª‚although“it“can˜bM_e“in•² v“ok“edŽ¡‘I`without–¡kstopping“the“rew² all“rst.ަ‘.ÜrestartÌ:ŽŽ‘dðʺThis–áPoption›áOstops“and˜then“restarts˜the“rew² all.‘–ÞRefer˜to“startingŽ¡‘I`and–¡kstopping“FIAIF.ަ‘.ÜpanicÌ:ŽŽ‘WÌôºShš² ut–~Öo“all“IP‘~trac“-“do“not“accept“an˜y“pac˜k˜ets“from“an˜ywhereŽ¡‘I`for–1an² y“reason.‘ A8This“can“bM_e“used,›xbfor“example,˜if“unin² vited“guestsŽ¡‘I`are›ÿdisco•² v“ered˜on˜the˜system˜to‘ÿquic“kly˜close˜the˜rew“all˜and˜startŽ¡‘I`analyzing–¡klog“les.ަ‘.ÜstatusÌ:ŽŽ‘^^ߺLists–¡kall“rules“in“the“rew² all.ަ‘.ÜtestÌ:ŽŽ‘Q; ºChec² k–³üthe›³ýrules“in˜the“conguration˜les.‘›All˜rules“are˜written“toŽ¡‘I`the–$Õle›$ÔspM_ecied“in“the˜ÛTEST_FILE‘$³ºparameter“in“the˜global“congu-Ž¡‘I`ration–•“le.‘³`This“can“bM_e“useful›•”to“see“that“the“syn² tax“of˜the“rules“isŽ¡‘I`correct–ùbM_efore‘údeploš² ying“the“rew˜all.‘õ’An˜y“errors“will‘úbM_e“written“toŽ¡‘I`Ûstdoutº.‘¥¢Besides– ›testing,‘++it“also“runs“a“sanitš² y“c˜hec˜k“on“the“net˜w˜orkingŽ¡‘I`conguration.ŽŸ"7‘.ËBŽ‘I«Conguration‘G\lesŽŸpÜ‘.ºConguration–ŠPles›ŠQare“placed˜under“Û/etc/fiaif˜ºb² y“the˜default“installation.ŽŸQŽ‘.ÐB.1Ž‘O–Éaif.confŽŸó‘.ó2‰š pcrr8tÝ###############################################################################ޤ‘.#–™™FIAIF“global“configuration“file.Ž¡‘.#–™™Version“$Id:“fiaif.conf,v“1.37“2003/05/24“22:50:51“afu“Exp“$Ž¡‘.###############################################################################Ž¡¡‘.##–™™Reserved“(illegal)“and“private“networksŽ¡‘.##–™™See:“www.iana.comŽ¡‘.RESERVED_NETWORKS=reserved_networksŽ¡‘.PRIVATE_NETWORKS=private_networksŽ¡¡‘.LOOPBACK_NET="127.0.0.1/255.0.0.0"Ž¡‘.SERVICES="/etc/services"Ž¡¡‘.###############################################################################Ž¡‘.#–™™Search“path“for“binariesŽ¡‘.###############################################################################ŽŽŸ’ÜŽZº20ŽŽŒ‹Ô ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÝBIN_PATH=/sbin:/usr/sbin:/usr/local/sbinޤ¡‘.###############################################################################Ž¡‘.#–™™User“configurable“parametersŽ¡‘.###############################################################################Ž¡¡‘.##–™™Activate“fiaif?Ž¡‘.##–™™Set“this“VARIABLE“to“0“or“delete“the“line“to“enable“FIAIF.Ž¡‘.DONT_START=1Ž¡¡‘.##–™™Configuration“directory.“All“configuration“files“are“read“from“thisŽ¡‘.##‘™™directory.Ž¡‘.CONF_DIR=/etc/fiaif/Ž¡¡‘.##–™™Zone“names.“Only“these“zones“are“used.Ž¡‘.##–™™You“must“have“a“CONF_“entry“for“each“below.Ž¡‘.ZONES="EXT‘™™INT"Ž¡¡‘.##–™™Zone“cofiguration“files.Ž¡‘.##–™™The“files“are“expected“to“be“found“in“CONF_DIRŽ¡‘.##–™™Use:“CONF_XXX=Ž¡‘.CONF_INT=zone.intŽ¡‘.CONF_EXT=zone.extŽ¡‘.CONF_DMZ=zone.dmzŽ¡¡‘.##–™™Use“iptables-save“and“iptables“restore“to“speed“upŽ¡‘.##–™™Startup“scripts.“You“should“leave“this“setting“to“0.Ž¡‘.##–™™Use:“SAVE_STATE=0|1Ž¡‘.SAVE_STATE=1Ž¡¡‘.##–™™Change“values“in“/proc/sys/net/*Ž¡‘.##–™™When“issuing“a“'fiaif“test'“a“list“of“errors“and“warnings“are“displayed.Ž¡‘.##–™™The“SET_PROC_ERRORS,“specifies“that“FIAIF“should“correct“the“errors,“andŽ¡‘.##–™™The“SET_PROC_WARNINGS,“specifies“that“FIAIF“should“correct“the“warnings.Ž¡‘.##‘™™SET_PROC_ERRORS=<0|1>Ž¡‘.##‘™™SET_PROC_WARNINGS=<0|1>Ž¡‘.SET_PROC_ERRORS=1Ž¡‘.SET_PROC_WARNINGS=0Ž¡¡‘.##–™™Enable“TC“for“any“zone.Ž¡‘.##–™™Overrides“ENABLE_TC“in“zone“configurations.Ž¡‘.##–™™Use:“ENABLE_TC=<0|1>Ž¡‘.ENABLE_TC=0Ž¡¡‘.##–™™File“to“which“commands“are“written“when“making“a“test.Ž¡‘.##–™™TEST_FILE=Ž¡‘.TEST_FILE="/tmp/fiaif.out"Ž¡¡‘.##–™™If“set“to“one“the“default“policy“of“all“standard“chains“(input,“outputŽ¡‘.##–™™and“forward)“will“be“to“ACCEPT“unmatched“packets.Ž¡‘.##–™™If“set“to“zero,“the“policy“will“be“to“DROP“these“packets,“which“shouldŽ¡‘.##–™™be“the“default.Ž¡‘.##‘™™DEBUG=<0|1>Ž¡‘.DEBUG=0Ž¡¡‘.##–™™Set“to“one,“to“enable“logging“via“ulogd.Ž¡‘.##–™™You“need“to“have“the“ulogd“installed,“to“enable“this“functionalityŽ¡‘.##–™™Note:“does“not“work“correctly“with“kernel“2.4.18.Ž¡‘.##‘™™ENABLE_ULOGD=<0|1>Ž¡‘.ENABLE_ULOG=0Ž¡¡‘.##–™™Set“to“one“if“dropped“or“rejected“packets“should“be“logged.Ž¡‘.##‘™™VERBOSE=<0|1>Ž¡‘.VERBOSE=1Ž¡¡‘.##–™™Prefix“to“pre-pend“to“log“messagesŽ¡‘.##–™™Use:“LOG_PREFIX="FIAIF_"Ž¡‘.##‘ ÌËThis–™™will“cause“log“messages“to“have“[FIAIF_DROP]“or“[FIAIF_MARTIAN]“(etc)Ž¡‘.##‘ ÌËas–™™their“markerŽ¡‘.LOG_PREFIX="FIAIF_"Ž¡¡‘.##–™™Limit“the“number“of“log-messages“when“packets“are“dropped.Ž¡‘.##–™™Lower“to“avoid“spamming“the“logs.Ž¡‘.##–™™Use:“LOG_LEVEL=Ž¡‘.##–™™Use:“LOG_LIMIT=Ž¡‘.##–™™Use:“LOG_BURST=Ž¡‘.##‘ ÌËLEVEL–™™:“defines“the“level“(or“priority)“of“the“loggedŽ¡‘.##‘'™“messages–™™-“See“syslog.conf(5)“for“moreŽ¡‘.##‘'™“If–™™ulog“is“enabled,“the“value“must“be“in“the“rangeŽ¡‘.##‘™–1..32Ž¡‘.##‘ ÌËLIMIT–™™:“Maximum‘32average“matching“rate:“specified“as“a“number,Ž¡‘.##‘'™“with–™™an“optional“'/second',“'/minute',“'/hour',“or“'/day'Ž¡‘.##‘'™“suffix.Ž¡‘.##‘ ÌËBURST–™™:“Maximum–32initial“number“of–™™packets“to“match:“thisŽŽŸ’ÜŽZº21ŽŽŒ‹ß§ ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ý##‘'™“number–™™is“incrementedby“one“every“time–32the“limitޤ‘.##‘'™“specified‘32above–™™is“not“reached,“up“to“this“number.Ž¡‘.LOG_LEVEL=CRITŽ¡‘.LOG_LIMIT=10/minuteŽ¡‘.LOG_BURST=10Ž¡¡‘.##–™™Load“modules“upon“starting“the“firewall.“The“modules“will“beŽ¡‘.##–™™unloaded,“when“the“firewall“is“stopped.Ž¡‘.##‘™™MODULES=[module_name]*Ž¡‘.MODULES="ip_nat_ftp"Ž¡¡‘.##–™™The“following“lines“allows“users“specified“commands“toŽ¡‘.##–™™be“executed“before“and“after“FIAIF“is“started/stopped.Ž¡‘.##–™™This“can“be“used“to“e.g.“insert“additional“rules“for“traffic“counters,Ž¡‘.##–™™And“then“save/restore“these.Ž¡‘.##‘™™Use:Ž¡‘.##‘ ÌË__SCTIPT[N]=Ž¡¡‘.#PRE_START_SCRIPT[0]=""Ž¡‘.#PRE_START_SCRIPT[1]=""Ž¡‘.#POST_START_SCRIPT[0]=""Ž¡‘.#POST_START_SCRIPT[1]=""Ž¡¡‘.#PRE_STOP_SCRIPT[0]=""Ž¡‘.#PRE_STOP_SCRIPT[1]=""Ž¡‘.#POST_STOP_SCRIPT[0]=""Ž¡‘.#POST_STOP_SCRIPT[1]=""Ž¡¡‘.##–™™Specify“localtion“of“"Type“Of“Services"“file.Ž¡‘.##–™™This“can“either“be“empty“or“a“file.Ž¡‘.TOS_FILE=type_of_servicesŽ¡¡‘.##–™™Specify“aliases“file.Ž¡‘.##–™™In“this“file,“aliases“for“IP“numbers“can“be“specified.Ž¡‘.ALIASES=aliasesŽ©QŽ‘.ÐB.2Ž‘O–Éreserv• ed_net“w“orksŽŸÇ–‘.Ý#–™™$Id:“reserved_networks,v“1.36“2010/06/10“21:48:23“afu“Exp“$Ž¡¡‘.#–™™This“file“contains“a“list“of“networks“reserved“by“IANA.Ž¡‘.#–™™The“list“can“be“found“at:Ž¡‘.#‘ ÌËhttp://www.iana.org/assignments/ipv4-address-spaceŽ¡‘.#–™™For“additional“information“see“RFC3330Ž¡¡‘.0.0.0.0/8Ž¡‘.5.0.0.0/8Ž¡‘.23.0.0.0/8Ž¡‘.36.0.0.0/7Ž¡‘.39.0.0.0/8Ž¡‘.42.0.0.0/8Ž¡‘.49.0.0.0/8Ž¡‘.100.0.0.0/6Ž¡‘.104.0.0.0/7Ž¡‘.106.0.0.0/8Ž¡‘.127.0.0.0/8Ž¡‘.169.254.0.0/16Ž¡‘.179.0.0.0/8Ž¡‘.185.0.0.0/8Ž¡‘.192.0.2.0/24Ž¡‘.198.18.0.0/15Ž¡‘.223.0.0.0/8Ž¡‘.240.0.0.0/4ަ‘.ÐB.3Ž‘O–Épriv‘ÿ@ ate_net• w“orksŽŸÇ–‘.Ý#–™™$Id:“private_networks,v“1.3“2003/02/13“22:15:11“afu“Exp“$Ž¡¡‘.#–™™This“file“contains“the“list“of“all“networksŽ¡‘.#–™™reserved“for“private“use.Ž¡‘.#–™™Please“see“RFC1918“for“details.Ž¡¡‘.10.0.0.0/8Ž¡‘.127.0.0.0/8Ž¡‘.172.16.0.0/12Ž¡‘.192.168.0.0/16ŽŽŸ’ÜŽZº22ŽŽŒ‹ìæ ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÐB.4Ž‘O–Ét yp_úe_of_servicesŽŸ‘Ò‘.Ý##–™™Set“Type“of“services“fields“on“some“packages“from“the“server.ޤ‘.##–™™These“values“are“based“on“RFC“1060/1349.Ž¡‘.##–™™Note“that“ssh“automatically“sets“the“TOS“value.Ž¡¡‘.##–™™The“syntax“is:Ž¡‘.##–™™TOS_FOO="“[“any“|“port[,port]*“|“ICMP“type“specifier“]"Ž¡‘.##‘™™Where:Ž¡‘.##‘ ÌËTOS_type–™™is:“Minimize-Delay|Maximize-Throughput|Ž¡‘.##‘9™Maximize-Reliability|Minimize-Cost|Ž¡‘.##‘9™Normal-ServiceŽ¡‘.##‘ ÌËprotocol–™™is:“Any“protocol“specified“in“/etc/protocols,Ž¡‘.##‘9™or–™™a“protocol“numberŽ¡‘.##‘ ÌËport–™™specification“is“either:Ž¡‘.##‘ ÌË-–™™any:“matching“any“packet“with“the“specified“protocol.Ž¡‘.##‘9™-–™™A“list“of“ports,“if“TCP“or“UDP“is“specified.Ž¡‘.##‘9™-–™™An“ICMP“type“or“number,“if“the“protocol“is“ICMP.Ž¡¡¡‘.TOS_MINIMIZE_DELAY_TCP="Minimize-Delay–™™tcp“ftp,telnet"Ž¡‘.TOS_MAXIMIZE_THROUGHPUT_TCP="Maximize-Throughput–™™tcp“ftp-data,smtp,imap,imaps,pop3,pop3s,cvspserver,rsync"Ž¡‘.TOS_MAXIMIZE_RELIABILITY_TCP="Maximize-Reliability‘™™tcp"Ž¡‘.TOS_MINIMIZE_COST_TCP="Minimize-Cost–™™tcp“nntp"Ž¡‘.TOS_NORMAL_SERVICE_TCP="Normal-Service–™™tcp“www,https"Ž¡¡‘.TOS_MINIMIZE_DELAY_UDP="Minimize-Delay–™™udp“domain,ntp,tftp"Ž¡‘.TOS_MAXIMIZE_THROUGHPUT_UDP="Maximize-Throughput‘™™udp"Ž¡‘.TOS_MAXIMIZE_RELIABILITY_UDP="Maximize-Reliability‘™™udp"Ž¡‘.TOS_MINIMIZE_COST_UDP="Minimize-Cost–™™udp“snmp"Ž¡‘.TOS_NORMAL_SERVICE_UDP="Normal-Service–™™udp“bootps,bootpc"Ž¡¡‘.TOS_MAXIMIZE_RELIABILITY_IGMP="Maximize-Reliability–™™igmp“any"Ž¡‘.TOS_NORMAL_SERVICE_EGP="Normal-Service–™™egp“any"ŽŸQŽ‘.ÐB.5Ž‘O–Ézone.extŽŸó‘.Ý##############################################################################Ž¡‘.##–™™Example“zone“configuration“file.Ž¡‘.##–™™Read“all“configuration“parameters,“and“modify“to“suit“your“needs.Ž¡‘.##############################################################################Ž¡¡‘.##–™™A“sample“zone“configuration“to“control“traffic“to“the“internetŽ¡¡‘.##–™™Name“of“the“zone.“Must“match“the“name“in“fiaif.conf.Ž¡‘.NAME=EXTŽ¡‘.##–™™Network“interface“nameŽ¡‘.DEV=eth0Ž¡¡‘.##–™™DYNAMIC:‘ÿýSet“to“'1'“if“the“IP“can“change“during“operation“orŽ¡‘.##‘2f^if–™™the“IP“address“is“unknown“when“fiaif“is“started.Ž¡‘.##–™™GLOBAL:‘™–Set“to“'1'“if“the“IP“if“this“zone“connects“you“to“theŽ¡‘.##‘2f^internet.–™™Set“to“zero“for“private“networks.Ž¡‘.DYNAMIC=1Ž¡‘.GLOBAL=1Ž¡¡‘.##–™™Network“information.“Nessesary“only“if“DYNAMIC=0Ž¡‘.#IP=80.196.xxx.xxxŽ¡‘.#MASK=255.255.255.252Ž¡‘.#NET=80.196.xxx.xxx/255.255.255.252Ž¡‘.#BCAST=80.196.xxx.xxxŽ¡¡‘.##–™™IP_EXTRA“specifies“that“the“interface“has“multiple“IP“addresses;Ž¡‘.##–™™all“the“interface's“extra“IP's“should“be“listed“here.Ž¡‘.IP_EXTRA=""Ž¡‘.##–™™Specifies“extra“networks“in“this“zone“(besides“NET).Ž¡‘.NET_EXTRA=""Ž¡¡‘.##–™™Specify“if“the“zone“should“respond“to“DHCP“queries.Ž¡‘.##–™™This“is“usefull“if“a“DHCP“server“is“running“on“the“firewall.Ž¡‘.##–™™Remember“to“set“this“only“in“the“zone“for“which“the“DHCP“server“is“running.Ž¡‘.DHCP_SERVER=0Ž¡¡‘.##–™™The“descriptions“of“packets“coming“IN“to“the“interface“specifed“in“DEV“and“NETWORK“to“drop|accept|rejectŽ¡‘.##–™™Use:“INPUT[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.INPUT[0]="ACCEPT–™™tcp“smtp,www,https,ssh“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.INPUT[1]="ACCEPT–™™icmp“echo-request“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.#INPUT[2]="ACCEPT–™™igmp“0.0.0.0/0=>224.0.0.0/4"Ž¡‘.INPUT[2]="DROP–™™ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™The“descriptions“of“packets“going“OUT“of“the“interface“specifed“in“DEV“and“NETWORK“to“drop|accept|rejectŽ¡‘.##–™™Use:“OUTPUT[N]="[:port]]*]>“ip[/mask]>"ŽŽŸ’ÜŽZº23ŽŽŒ‹õè ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÝOUTPUT[0]="ACCEPT–™™ALL“0.0.0.0/0=>0.0.0.0/0"ޤ¡‘.##–™™Forward“rules.“Specify“where“packets“entering“this“zone“may“originate“from.Ž¡‘.##–™™Use:“FORWARD[N]="[:port]]*]>“ip[/mask]=>ip[/mask]"Ž¡‘.##Ž¡‘.##–™™Use“this“to“protect“this“zoneŽ¡‘.##–™™Rules“are“read“in“the“order“they“are“written.Ž¡‘.##–™™Default“is“to“accept“everything:“all“zones“are“allowd“to“talkŽ¡‘.##–™™with“the“Internet.Ž¡‘.FORWARD[0]="ALL–™™ACCEPT“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Mark“rules.“Mark“packets“parsing“through“the“firewall.Ž¡‘.##–™™Use“MARK[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.##Ž¡‘.##–™™MARK“packets“can“be“used“to“determine“how“a“packet“sould“be“routed.Ž¡‘.##–™™FIAIF“does“not“use“marking.Ž¡‘.#MARK[0]="ALL–™™1“tcp“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.#MARK[1]="ALL–™™2“udp“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Make“special“replys“on“incoming“packets.Ž¡‘.##–™™Use:“REPLY_XXX="[:port]]*]>“ip[/mask]>"Ž¡‘.##–™™Where“type“can“be“one“of“the“following:Ž¡‘.##‘ ÌËicmp-net-unreachable,–™™icmp-host-unreachable,“icmp-port-unreachable,Ž¡‘.##‘ ÌËicmp-proto-unreachable,–™™icmp-net-prohibited,“icmp-host-prohibited“orŽ¡‘.##‘ ÌËtcp-reset–™™(Only“valid“if“the“protocol“if“TCP)Ž¡‘.##–™™If“the“zone“equal“this“zone,“then“the“rules“apply“to“packets“originating“fromŽ¡‘.##–™™this“network“towards“the“firewallŽ¡‘.REPLY_AUTH="EXT–™™tcp-reset“tcp“auth“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.REPLY_TRACEROUTE="EXT–™™icmp-port-unreachable“udp“33434:33464“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Alter“the“destination“of“packets.Ž¡‘.##–™™Use:“REDIRECT_XXX="ip[/mask]>“<[ipaddr[,ipaddr]*]“[port]"Ž¡‘.##–™™The“rule“applies“only“for“packet“originating“from“this“zone.Ž¡‘.#REDIRECT_SSH="tcp–™™22“0.0.0.0/0=>0.0.0.0/0“10.0.0.1“22"Ž¡¡‘.##–™™Log“all“traffic“for“these“IP“addressesŽ¡‘.##–™™Use“WATCH_IP="[IP[/MASK]]*|[FILE]"Ž¡‘.#WATCH_IP="111.111.111.111/32‘™™222.222.222.222/24"Ž¡¡‘.##–™™Strip“ECN“bits“from“all“packets“destined“for“specified“IP-addressesŽ¡‘.##–™™in“this“zoneŽ¡‘.##–™™Use:“ECN_REMOVE="[IP[/MASK]]*|[FILE]"Ž¡‘.#ECN_REMOVE="111.111.111.111/32‘™™222.222.222.222/24"Ž¡¡‘.##–™™Dissalow“any“communication“with“specified“MAC-addresses“in“this“zoneŽ¡‘.##–™™Use:“MAX_DROP="[MAC“address]*|[FILE]"Ž¡‘.##–™™Inserted“on“PREROUTING“chainŽ¡‘.#MAC_DROP="XX:XX:XX:XX:XX:XX‘™™YY:YY:YY:YY:YY:YY"Ž¡¡‘.##–™™Dissalow“any“communication“with“specified“IP-addresses“in“this“zoneŽ¡‘.##–™™Use:“IP_DROP="[IP[/MASK]]*|[FILE]"Ž¡‘.#IP_DROP="111.111.111.111/32‘™™222.222.222.222/24"Ž¡¡‘.##–™™Change“the“source“address“of“a“packet“comming“from“this“zone.Ž¡‘.##–™™This“is“also“called“masquerading.Ž¡‘.##–™™Use:“SNAT[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.##–™™Where:“ZONE‘fd:‘32Destination“zone.“The“source“of“matched“packets“isŽ¡‘.##‘Df[changed–™™to“all“ip“numbers“for“the“zone.Ž¡‘.##–™™Warning:“enabling“a“default“(0.0.0.0=>0.0.0.0)“SNAT“rule“and“havingŽ¡‘.##–™™GLOBAL=1“or“DYNAMIC=1“enables“NAT“for“*all*“zones“since“there“is“no“wayŽ¡‘.##–™™to“know“the“networks“for“NAT“beforehand.“Be“sure“to“restrict“theŽ¡‘.##–™™FORWARD[x]“rules“in“this“file“to“only“forward“traffic“from“this“network.Ž¡‘.#SNAT[0]="EXT–™™ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Limit“new“packets.Ž¡‘.##–™™Use:“LIMIT_XXX="*|<:port>]>“ip[/mask]>"Ž¡‘.##‘™™Where:Ž¡‘.##‘ ÌËZONE‘ÿý:–™™Is“the“zone“from“which“the“packet“originates.“This“can“be“this“zone“itself.Ž¡‘.##– ÌËPOLICY“:–™™Is“waht“to“do“with“the“packet:“ACCEPT|REJECT|DROPŽ¡‘.##‘ ÌËLIMIT‘fd:–™™Maximum›32average“matching“rate:“specified“as“a“number,˜with˜an‘ ÌËoptionalŽ¡‘.##‘2f^'/second',–™™'/minute',“'/hour',“or“'/day'“suffix.Ž¡‘.##‘ ÌËBURST‘fd:›™™Maximum–32initial“number“of˜packets˜to˜match:˜thisŽ¡‘.##‘2f^number–™™gets“recharged“by“one“every“time–32the“limitŽ¡‘.##‘2f^specified‘32above–™™is“not“reached,“up“to“this“number.Ž¡‘.##‘ ÌËPROTOCOL–™™:“The“protocol:“tcp|udp|icmp|all.“This“parameter“is“optionalŽ¡‘.##‘ ÌËPORTS‘fd:–™™If“protocol“is“tcp|udp:“A“list“of“ports“or“a“port“range.Ž¡‘.##‘hfUicmp‘ ÌË:–™™A“single“icmp“type.Ž¡‘.##‘2f^this–™™parameter“is“optional,“and“must“only“be“specified,Ž¡‘.##‘2f^if–™™a“protocol“is“specified.Ž¡‘.##‘ ÌËIP/MASK‘32:–™™If“PORTS“are“specified,“then“an“optional“IP/MASK“source“and“address“can“be“specified.Ž¡‘.LIMIT_PING="EXT–™™DROP“1/second“3“ICMP“echo-request“0.0.0.0/0=>0.0.0.0/0"ŽŽŸ’ÜŽZº24ŽŽŒ‹y ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÐB.6Ž‘O–Ézone.in tŽŸó‘.Ý##############################################################################ޤ‘.##–™™Example“zone“configuration“file.Ž¡‘.##–™™Read“all“configuration“parameters,“and“modify“to“suit“your“needs.Ž¡‘.##############################################################################Ž¡¡‘.##–™™A“sample“zone“configuration“to“control“traffic“to“and“from“an“internalŽ¡‘.##–™™network“(reached“via“eth1).Ž¡¡‘.##–™™Name“of“the“zone.“Must“match“the“name“in“fiaif.conf.Ž¡‘.NAME=INTŽ¡‘.##–™™Network“interface“nameŽ¡‘.DEV=eth1Ž¡¡‘.##–™™DYNAMIC:‘ÿýSet“to“'1'“if“the“IP“can“change“during“operation“orŽ¡‘.##‘2f^if–™™the“IP“address“is“unknown“when“fiaif“is“started.Ž¡‘.##–™™GLOBAL:‘™–Set“to“'1'“if“the“IP“if“this“zone“connects“you“to“theŽ¡‘.##‘2f^internet.–™™Set“to“zero“for“private“networks.Ž¡‘.DYNAMIC=1Ž¡‘.GLOBAL=0Ž¡¡‘.##–™™Network“information.“Nessesary“only“if“DYNAMIC=0Ž¡‘.#IP=10.0.0.254Ž¡‘.#MASK=255.255.254.0Ž¡‘.#NET=10.0.0.254/255.255.254.0Ž¡‘.#BCAST=10.0.1.255Ž¡¡‘.##–™™IP_EXTRA“specifies“that“the“interface“has“multiple“IP“addresses;Ž¡‘.##–™™all“the“interface's“extra“IP's“should“be“listed“here.Ž¡‘.IP_EXTRA=""Ž¡‘.##–™™Specifies“extra“networks“in“this“zone“(besides“NET).Ž¡‘.#NET_EXTRA="224.0.0.0/4"Ž¡¡‘.##–™™Specify“if“the“zone“should“respond“to“DHCP“queries.Ž¡‘.##–™™This“is“usefull“if“a“DHCP“server“is“running“on“the“firewall.Ž¡‘.##–™™Remember“to“set“this“only“in“the“zone“for“which“the“DHCP“server“is“running.Ž¡‘.DHCP_SERVER=0Ž¡¡‘.##–™™The“descriptions“of“packets“coming“IN“to“the“interface“specifed“in“DEV“and“NETWORK“to“drop|accept|returnŽ¡‘.##–™™Use:“INPUT[N]="[:port]]*]>“ip[/mask]=>ip[/mask]"Ž¡‘.INPUT[0]="ACCEPT–™™ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™The“descriptions“of“packets“going“OUT“of“the“interface“specifed“in“DEV“and“NETWORK“to“drop|accept|returnŽ¡‘.##–™™Use:“OUTPUT[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.OUTPUT[0]="ACCEPT–™™ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Forward“rules.“Specify“where“packets“entering“this“zone“may“originate“from.Ž¡‘.##–™™Use:“FORWARD[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.##Ž¡‘.##–™™Use“this“to“protect“a“zone.Ž¡‘.##–™™Rules“are“read“in“the“order“they“are“written.Ž¡‘.##–™™Default“is“to“drop“everything,“accepting“only“related“and“establihed“connections.Ž¡‘.FORWARD[0]="ALL–™™DROP“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Mark“rules.“Mark“packets“parsing“through“the“firewall.Ž¡‘.##–™™Use“MARK[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.##Ž¡‘.##–™™MARK“packets“can“be“used“to“determine“how“a“packet“sould“be“routed.Ž¡‘.##–™™FIAIF“does“not“use“marking.Ž¡‘.#MARK[0]="ALL–™™1“tcp“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.#MARK[1]="ALL–™™2“udp“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Make“special“replys“on“incoming“packets.Ž¡‘.##–™™Use:“REPLY_XXX="[:port]]*]>“ip[/mask]>"Ž¡‘.##–™™Where“type“can“be“one“of“the“following:Ž¡‘.##‘ ÌËicmp-net-unreachable,–™™icmp-host-unreachable,“icmp-port-unreachable,Ž¡‘.##‘ ÌËicmp-proto-unreachable,–™™icmp-net-prohibited,“icmp-host-prohibited“orŽ¡‘.##‘ ÌËtcp-reset–™™(Only“valid“if“the“protocol“if“TCP)Ž¡‘.##–™™If“the“zone“equal“this“zone,“then“the“rules“apply“to“packets“originating“fromŽ¡‘.##–™™this“network“towards“the“firewallŽ¡‘.#REPLY_AUTH="ALL–™™tcp-reset“tcp“auth“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Alter“the“destination“of“packets.Ž¡‘.##–™™Use:“REDIRECT_XXX="ip[/mask]>“<[ipaddr[,ipaddr]*]“[port]>"Ž¡‘.##–™™The“rule“applies“only“for“packet“originating“from“this“zone.Ž¡‘.#REDIRECT_PROXY="tcp–™™80“0.0.0.0/0=>0.0.0.0/0“127.0.0.1“3128"Ž¡¡‘.##–™™Log“all“traffic“for“these“IP“addressesŽ¡‘.##–™™Use“WATCH_IP="[IP[/MASK]]*|[FILE]"Ž¡‘.#WATCH_IP="111.111.111.111/32‘™™222.222.222.222/24"Ž¡¡‘.##–™™Strip“ECN“bits“from“all“packets“destined“for“specified“IP-addressesŽ¡‘.##–™™in“this“zoneŽŽŸ’ÜŽZº25ŽŽŒ‹j ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ý##–™™Use:“ECN_REMOVE="[IP[/MASK]]*|[FILE]"ޤ‘.#ECN_REMOVE="111.111.111.111/32‘™™222.222.222.222/24"Ž¡¡‘.##–™™Dissalow“any“communication“with“specified“MAC-addresses“in“this“zoneŽ¡‘.##–™™Use:“MAX_DROP="[MAC“address]*|[FILE]"Ž¡‘.##–™™Inserted“on“PREROUTING“chainŽ¡‘.#MAC_DROP="XX:XX:XX:XX:XX:XX‘™™YY:YY:YY:YY:YY:YY"Ž¡¡‘.##–™™Dissalow“any“communication“with“specified“IP-addresses“in“this“zoneŽ¡‘.##–™™Use:“IP_DROP="[IP[/MASK]]*|[FILE]"Ž¡‘.#IP_DROP="111.111.111.111/32‘™™222.222.222.222/24"Ž¡¡‘.##–™™Change“the“source“address“of“a“packet“comming“from“this“zone.Ž¡‘.##–™™This“is“also“called“masquerading.Ž¡‘.##–™™Use:“SNAT[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.##–™™Where:“ZONE‘fd:‘32Destination“zone.“The“source“of“matched“packets“isŽ¡‘.##‘Df[changed–™™to“all“ip“numbers“for“the“zone.Ž¡‘.##–™™Warning:“enabling“a“default“(0.0.0.0=>0.0.0.0)“SNAT“rule“and“havingŽ¡‘.##–™™GLOBAL=1“or“DYNAMIC=1“enables“NAT“for“*all*“zones“since“there“is“no“wayŽ¡‘.##–™™to“know“the“networks“for“NAT“beforehand.“Be“sure“to“restrict“theŽ¡‘.##–™™FORWARD[x]“rules“in“zone.ext“to“only“forward“traffic“from“this“network.Ž¡‘.SNAT[0]="EXT–™™ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Limit“new“packets.Ž¡‘.##–™™Use:“LIMIT_XXX="*|<:port>]>“ip[/mask]>"Ž¡‘.##‘™™Where:Ž¡‘.##‘ ÌËZONE‘ÿý:–™™Is“the“zone“from“which“the“packet“originates.“This“can“be“this“zone“itself.Ž¡‘.##– ÌËPOLICY“:–™™Is“what“to“do“with“the“packet:“ACCEPT|REJECT|DROPŽ¡‘.##‘ ÌËLIMIT‘fd:–™™Maximum‘32average“matching“rate:“specified“as“a“number,“with“an“optionalŽ¡‘.##‘2f^'/second',–™™'/minute',“'/hour',“or“'/day'“suffix.Ž¡‘.##‘ ÌËBURST‘fd:›™™Maximum–32initial“number“of˜packets˜to˜match:˜thisŽ¡‘.##‘2f^number–™™gets“recharged“by“one“every“time–32the“limitŽ¡‘.##‘2f^specified‘32above–™™is“not“reached,“up“to“this“number.Ž¡‘.##‘ ÌËPROTOCOL–™™:“The“protocol:“tcp|udp|icmp|all.“This“parameter“is“optionalŽ¡‘.##‘ ÌËPORTS‘fd:–™™If“protocol“is“tcp|udp:“A“list“of“ports“or“a“port“range.Ž¡‘.##‘hfUicmp‘ ÌË:–™™A“single“icmp“type.Ž¡‘.##‘2f^this–™™parameter“is“optional,“and“must“only“be“specified,Ž¡‘.##‘2f^if–™™a“protocol“is“specified.Ž¡‘.##‘ ÌËIP/MASK‘32:–™™If“PORTS“are“specified,“then“an“optional“IP/MASK“source“and“address“can“be“specified.Ž¡‘.#LIMIT_PING="EXT–™™DROP“1/second“3“ICMP“echo-request“0.0.0.0/0=>0.0.0.0/0"Ž¡ŸQŽ‘.ÐB.7Ž‘O–Ézone.dmzŽŸó‘.Ý##############################################################################Ž¡‘.##–™™Example“zone“configuration“file.Ž¡‘.##–™™Read“all“configuration“parameters,“and“modify“to“suit“your“needs.Ž¡‘.##############################################################################Ž¡¡‘.##–™™The“DMZ“(DeMilitarized“Zone)“is“the“most“restricted“network,Ž¡‘.##–™™since“it“exposes“partly“unsecure“services“to“the“Internet.Ž¡‘.##–™™No“connections“are“allowed“in“either“direction“between“the“firewall“and“this“zone.Ž¡‘.##–™™The“idea“is,“that“if“any“hacker“gains“access“to“a“machine“in“the“DMZ,Ž¡‘.##–™™This“does“not“pose“a“security“risk“for“any“other“zones,“only“the“firewallŽ¡‘.##‘™™itself.Ž¡‘.##–™™To“administer“the“machines“within“the“zone,“'ssh'“is“allowed“from“theŽ¡‘.##–™™Internal“zone.Ž¡‘.##–™™The“zone“is“not“activated“in“the“default“fiaif.conf.“To“do“this“please“add“DMZ“toŽ¡‘.##–™™ZONES“variable.Ž¡¡‘.##–™™Name“of“the“zone.“Must“match“the“name“in“fiaif.conf.Ž¡‘.NAME=DMZŽ¡‘.##–™™Network“interface“nameŽ¡‘.DEV=eth2Ž¡¡‘.##–™™DYNAMIC:‘ÿýSet“to“'1'“if“the“IP“can“change“during“operation“orŽ¡‘.##‘2f^if–™™the“IP“address“is“unknown“when“fiaif“is“started.Ž¡‘.##–™™GLOBAL:‘™–Set“to“'1'“if“the“IP“if“this“zone“connects“you“to“theŽ¡‘.##‘2f^internet.–™™Set“to“zero“for“private“networks.Ž¡‘.DYNAMIC=0Ž¡‘.GLOBAL=1Ž¡¡‘.##–™™Network“information.“Nessesary“only“if“DYNAMIC=0Ž¡‘.IP=80.203.xxx.xxxŽ¡‘.MASK=255.255.255.0Ž¡‘.NET=80.203.xxx.xxx/255.255.255.0Ž¡‘.BCAST=80.203.xxx.xxxŽ¡¡‘.##–™™IP_EXTRA“specifies“that“the“interface“has“multiple“IP“addresses;Ž¡‘.##–™™all“the“interface's“extra“IP's“should“be“listed“here.Ž¡‘.IP_EXTRA=""Ž¡‘.##–™™Specifies“extra“networks“in“this“zone“(besides“NET).ŽŽŸ’ÜŽZº26ŽŽŒ‹)K ¨ÌÞ ýu3" lÌÞ ý·3"‘.ÝNET_EXTRA=""ޤ¡‘.##–™™Specify“if“the“zone“should“respond“to“DHCP“queries.Ž¡‘.##–™™This“is“usefull“if“a“DHCP“server“is“running“on“the“firewall.Ž¡‘.##–™™Remember“to“set“this“only“in“the“zone“for“which“the“DHCP“server“is“running.Ž¡‘.DHCP_SERVER=0Ž¡¡‘.##–™™The“descriptions“of“packets“coming“IN“to“the“interface“specifed“in“DEV“and“NETWORK“to“drop|accept|rejectŽ¡‘.##–™™Use:“INPUT[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.INPUT[0]="REJECT–™™ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™The“descriptions“of“packets“going“OUT“of“the“interface“specifed“in“DEV“and“NETWORK“to“drop|accept|rejectŽ¡‘.##–™™Use:“OUTPUT[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.OUTPUT[0]="REJECT–™™ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Forward“rules.“Specify“where“packets“entering“this“zone“may“originate“from.Ž¡‘.##–™™Use:“FORWARD[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.##Ž¡‘.##–™™Use“this“to“protect“this“zone.Ž¡‘.##–™™Rules“are“read“in“the“order“they“are“written.Ž¡‘.##–™™Default“is“to“only“allow“www“and“https.Ž¡‘.##–™™Zone“int“are“also“allows“ssh“connectionsŽ¡‘.FORWARD[0]="ALL–™™ACCEPT“tcp“www,https“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.FORWARD[1]="INT–™™ACCEPT“tcp“ssh“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.FORWARD[2]="ALL–™™DROP“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Mark“rules.“Mark“packets“parsing“through“the“firewall.Ž¡‘.##–™™Use“MARK[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.##Ž¡‘.##–™™MARK“packets“can“be“used“to“determine“how“a“packet“sould“be“routed.Ž¡‘.##–™™FIAIF“does“not“use“marking.Ž¡‘.#MARK[0]="ALL–™™1“tcp“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.#MARK[1]="ALL–™™2“udp“ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Make“special“replys“on“incoming“packets.Ž¡‘.##–™™Use:“REPLY_XXX="[:port]]*]>“ip[/mask]>"Ž¡‘.##–™™Where“type“can“be“one“of“the“following:Ž¡‘.##‘ ÌËicmp-net-unreachable,–™™icmp-host-unreachable,“icmp-port-unreachable,Ž¡‘.##‘ ÌËicmp-proto-unreachable,–™™icmp-net-prohibited,“icmp-host-prohibited“orŽ¡‘.##‘ ÌËtcp-reset–™™(Only“valid“if“the“protocol“if“TCP)Ž¡‘.##–™™If“the“zone“equal“this“zone,“then“the“rules“apply“to“packetsŽ¡‘.##–™™originating“from“this“network“towards“the“firewallŽ¡‘.REPLY_AUTH="DMZ–™™tcp-reset“tcp“auth“0.0.0.0/0=>0.0.0.0/0"Ž¡‘.REPLY_TRACEROUTE="DMZ–™™icmp-port-unreachable“udp“33434:33464“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Alter“the“destination“of“packets.Ž¡‘.##–™™Use:“REDIRECT_XXX="ip[/mask]>“<[ipaddr[,ipaddr]*]“[port]"Ž¡‘.##–™™The“rule“applies“only“for“packet“originating“from“this“zone.Ž¡‘.#REDIRECT_PROXY="tcp–™™80“0.0.0.0/0=>0.0.0.0/0“127.0.0.1“3128"Ž¡¡‘.##–™™Log“all“traffic“for“these“IP“addressesŽ¡‘.##–™™Use“WATCH_IP="[IP[/MASK]]*|[FILE]"Ž¡‘.#WATCH_IP="111.111.111.111/32‘™™222.222.222.222/24"Ž¡¡‘.##–™™Strip“ECN“bits“from“all“packets“destined“for“specified“IP-addressesŽ¡‘.##–™™in“this“zoneŽ¡‘.##–™™Use:“ECN_REMOVE="[IP[/MASK]]*|[FILE]"Ž¡‘.#ECN_REMOVE="111.111.111.111/32‘™™222.222.222.222/24"Ž¡¡‘.##–™™Dissalow“any“communication“with“specified“MAC-addresses“in“this“zoneŽ¡‘.##–™™Use:“MAX_DROP="[MAC“address]*|[FILE]"Ž¡‘.##–™™Inserted“on“PREROUTING“chainŽ¡‘.#MAC_DROP="XX:XX:XX:XX:XX:XX‘™™YY:YY:YY:YY:YY:YY"Ž¡¡‘.##–™™Dissalow“any“communication“with“specified“IP-addresses“in“this“zoneŽ¡‘.##–™™Use:“IP_DROP="[IP[/MASK]]*|[FILE]"Ž¡‘.#IP_DROP="111.111.111.111/32‘™™222.222.222.222/24"Ž¡¡‘.##–™™Change“the“source“address“of“a“packet“comming“from“this“zone.Ž¡‘.##–™™This“is“also“called“masquerading.Ž¡‘.##–™™Use:“SNAT[N]="[:port]]*]>“ip[/mask]>"Ž¡‘.##–™™Where:“ZONE‘fd:‘32Destination“zone.“The“source“of“matched“packets“isŽ¡‘.##‘Df[changed–™™to“all“ip“numbers“for“the“zone.Ž¡‘.##–™™Warning:“enabling“a“default“(0.0.0.0=>0.0.0.0)“SNAT“rule“and“havingŽ¡‘.##–™™GLOBAL=1“or“DYNAMIC=1“enables“NAT“for“*all*“zones“since“there“is“no“wayŽ¡‘.##–™™to“know“the“networks“for“NAT“beforehand.“Be“sure“to“restrict“theŽ¡‘.##–™™FORWARD[x]“rules“in“zone.ext“to“only“forward“traffic“from“this“network.Ž¡‘.#SNAT[0]="EXT–™™ALL“0.0.0.0/0=>0.0.0.0/0"Ž¡¡‘.##–™™Limit“new“packets.Ž¡‘.##–™™Use:“LIMIT_XXX="*|<:port>]>“ip[/mask]>"Ž¡‘.##‘™™Where:Ž¡‘.##‘ ÌËZONE‘ÿý:–™™Is“the“zone“from“which“the“packet“originates.“This“can“be“this“zone“itself.Ž¡‘.##– ÌËPOLICY“:–™™Is“waht“to“do“with“the“packet:“ACCEPT|REJECT|DROPŽŽŸ’ÜŽZº27ŽŽŒ‹:’ ¨ÌÞ ýu3" lÌÞ ý·3"‘.Ý##‘ ÌËLIMIT‘fd:–™™Maximum›32average“matching“rate:“specified“as“a“number,˜with˜an‘ ÌËoptionalޤ‘.##‘2f^'/second',–™™'/minute',“'/hour',“or“'/day'“suffix.Ž¡‘.##‘ ÌËBURST‘fd:›™™Maximum–32initial“number“of˜packets˜to˜match:˜thisŽ¡‘.##‘2f^number–™™gets“recharged“by“one“every“time–32the“limitŽ¡‘.##‘2f^specified‘32above–™™is“not“reached,“up“to“this“number.Ž¡‘.##‘ ÌËPROTOCOL–™™:“The“protocol:“tcp|udp|icmp|all.“This“parameter“is“optionalŽ¡‘.##‘ ÌËPORTS‘fd:–™™If“protocol“is“tcp|udp:“A“list“of“ports“or“a“port“range.Ž¡‘.##‘hfUicmp‘ ÌË:–™™A“single“icmp“type.Ž¡‘.##‘2f^this–™™parameter“is“optional,“and“must“only“be“specified,Ž¡‘.##‘2f^if–™™a“protocol“is“specified.Ž¡‘.##‘ ÌËIP/MASK‘32:–™™If“PORTS“are“specified,“then“an“optional“IP/MASK“source“and“address“can“be“specified.Ž¡‘.LIMIT_PING="EXT–™™DROP“5/second“10“TCP“www,https“0.0.0.0/0=>0.0.0.0/0"ŽŽŸ’ÜŽZº28ŽŽŒøMƒ’À;è¨ÌÞ–ó2‰š pcrr8tó1‰š ó3 pcrb8tó0‰š ó3 pcrr8tó/Ò,í ecti0900ó.º7Lecrm0600ó(Ù.œŒ ecrm0900ó'¦÷²"ecrm0800ó&–¤ð ó3 ó3ecti1095ó%¥!¢N ecbx1200ó#!",š ó3 cmsy10ó!íÄ]] ó3 ó3ecbx1095ó &Lt$ffffecbx1440ó‰š pcrr8tóÓ·å ecrm1200óUªsÉG®G®ecrm1728ó$•Hd ó3 ó3ecrm1095óKñ`y ó3 cmr10ùQlßßßßßßfiaif-1.23.1/doc/fiaif/firewall.tex0000640000175000017500000001273011571724545016352 0ustar calvincalvin\section{FIAIF} This section will describe the design goals of FIAIF, \textit{FIAIF is an intelligent firewall}\cite{fiaif}, a tool to setup a firewall under Linux. \subsection{Design} The idea behind FIAIF is that it is too hard to setup a complex, yet secure firewall under Linux. Doing so requires deep insight into building a firewall and complete understanding of the Linux firewalling modules, Netfilter and iptables. The foremost requirement of FIAIF is that it should be secure and easy to configure. If FIAIF is too difficult to configure, errors are more likely to occur and an insecure firewall might result. Also it is a requirement that FIAIF is expansible and flexible. FIAIF should be able to handle both simple and complex network configurations in an generic manner. \subsubsection{Zones} To satisfy extendability a new term, \textit{zones}, is introduced. A zone defines a network to which the firewall is connected, and enables the administrator to setup different security policies for each zone.\\ The security policies for each zone has been chosen to primarally limit the traffic entering a zone, and not restricting network traffic coming from machines within a zone. This has been chosen, as it enables to administrator to add new zone definitions to an existing configuration without having to modify the configuration of other zones, to either allow or deny network communication.\\ On \figref{fig:zones} is an example of a network split into three zones: \begin{description} \item[External zone]: This zone defines the whole Internet. \item[Internal zone]: This zone defines all machines on a LAN. The primary function of the firewall is to protect machines on the LAN from unauthorised access from the Internet. \item[Demilitarised zone]: A demilitarised zone defines a group of machines which runs services exposed to the Internet. Examples of these services es are: Login server, Web-server, Mail gateway etc. As users from the Internet can gain access to these server, very strict security must be in place, under the assumption that these services are not 100 percent secure\footnote{Practise has shown that no software is without bugs, and can in worst case, have bugs that allow users to gain control over the underlying operating system}. \end{description} \begin{figure}[!h] \begin{center} \includegraphics[scale=0.25]{fig/zones} \end{center} \caption{\label{fig:zones}A network split into three zones} \end{figure} \subsubsection{Statefull firewalling} As Linux supports statefull inspection of all packets entering and/or leaving the firewall, configuration of a zone only concerns packets with the \textit{NEW} state, as explained in \secref{sec:netfilter}. Related and established packets are automatically accepted. The reason for this design is that it allows a bi-directional communication between two zones, even if one zone does not permit communication entering from any zone, but only if the communication is initiated from a trusted zone. The goal is to keep zone configuration very simple. The dogma is: \textit{``If no communication must exist, do not allow it in the first place''}. \subsubsection{Network address translation} % This should go in a general section. Apart from controlling the connections that can be established from one zone to another, zones also control network address translation (NAT). NAT is used to alter source and destination of IP datagrams. \subsection{Implementation} FIAIF is implemented as a shell script, using the \textit{Bourne again shell}, BASH, interpreter. The reason for this language is, that it allows a minimal installation of software on the firewall and is platform independent. Other languages such as C++ or Java might have been a better choice of language from a programmers point of view, but introduces a list of problems when porting to other platforms. Java requires a java virtual machine to be installed, and C++ would require several dynamic libraries to be installed, which may not be desirable on a firewall. \section{Configuration} FIAIF is controlled by multiple configuration files. When fiaif is started, it reads the file \verb|/etc/fiaif/fiaif.conf|. This files holds most global configuration directives, and references to additional configuration files including zone configuration files. \subsection{Zone specification} In order for FIAIF to know which zone configuration files to use, each zone name must be listed in FIAIF global configuration file, named \verb|/etc/fiaif/fiaif.conf|. This file contains multiple global configuration directives. In this file, a configuration directive \verb|ZONE| should be set to a list of identifiers for all enabled zones. These identifiers must match the name as specified in the corrosponding zone configuration file. For each zone identifier, \verb||, a configuration directive specifying the name of the configuration file must be present. The form of these configuration directives are: \verb|CONF_=|. \paragraph{Example:} \begin{verbatim} ZONE="INT EXT" CONF_INT='zone.int' CONF_EXT='zone.ext' \end{verbatim} In the example above, two zones are enabled. The zones are named \verb|INT| and \verb|EXT|. The configuration file for zone \verb|INT| is called \verb|zone.int|, and the configuration file for zone \verb|EXT| is called \verb|zone.ext|. It is important that the name specified within the configuration files correspond to the identifier in the global configuration file. The next section will describe in detail how to setup a zone configuration file. fiaif-1.23.1/doc/fiaif/fiaif.toc0000640000175000017500000001001512076552226015576 0ustar calvincalvin\contentsline {section}{\numberline {1}Preface}{1} \contentsline {subsection}{\numberline {1.1}Summary}{1} \contentsline {subsection}{\numberline {1.2}Prerequisites}{1} \contentsline {section}{\numberline {2}Introduction}{2} \contentsline {section}{\numberline {3}Firewalls}{3} \contentsline {subsection}{\numberline {3.1}Purpose of a firewall}{3} \contentsline {subsection}{\numberline {3.2}Netfilter}{3} \contentsline {subsubsection}{\numberline {3.2.1}Setting up a Linux firewall}{4} \contentsline {section}{\numberline {4}FIAIF}{5} \contentsline {subsection}{\numberline {4.1}Design}{5} \contentsline {subsubsection}{\numberline {4.1.1}Zones}{5} \contentsline {subsubsection}{\numberline {4.1.2}Statefull firewalling}{6} \contentsline {subsubsection}{\numberline {4.1.3}Network address translation}{6} \contentsline {subsection}{\numberline {4.2}Implementation}{6} \contentsline {section}{\numberline {5}Configuration}{7} \contentsline {subsection}{\numberline {5.1}Zone specification}{7} \contentsline {paragraph}{Example:}{7} \contentsline {section}{\numberline {6}Configuring a zone}{7} \contentsline {subsection}{\numberline {6.1}Definitions}{7} \contentsline {subsection}{\numberline {6.2}Zone definition}{9} \contentsline {paragraph}{NAME}{9} \contentsline {paragraph}{DEV}{9} \contentsline {paragraph}{DYNAMIC}{10} \contentsline {paragraph}{DHCP\@uscore .SERVER}{10} \contentsline {paragraph}{GLOBAL}{10} \contentsline {paragraph}{IP}{10} \contentsline {paragraph}{NET}{10} \contentsline {paragraph}{MASK}{10} \contentsline {paragraph}{BCAST}{10} \contentsline {subsection}{\numberline {6.3}Zone access}{10} \contentsline {subsubsection}{\numberline {6.3.1}Input rules}{11} \contentsline {paragraph}{Example}{11} \contentsline {subsubsection}{\numberline {6.3.2}Output rules}{11} \contentsline {paragraph}{Example}{11} \contentsline {subsubsection}{\numberline {6.3.3}Forward rules}{11} \contentsline {paragraph}{Example}{12} \contentsline {subsubsection}{\numberline {6.3.4}Reply rules}{12} \contentsline {paragraph}{Example}{12} \contentsline {subsubsection}{\numberline {6.3.5}Limit rules}{12} \contentsline {paragraph}{Example}{13} \contentsline {subsection}{\numberline {6.4}Network address translation rules}{13} \contentsline {subsubsection}{\numberline {6.4.1}Redirect}{13} \contentsline {paragraph}{Example}{13} \contentsline {subsubsection}{\numberline {6.4.2}Masquerading/SNAT}{13} \contentsline {paragraph}{Example}{14} \contentsline {subsection}{\numberline {6.5}Miscellaneous rules}{14} \contentsline {subsubsection}{\numberline {6.5.1}Packet marking}{14} \contentsline {paragraph}{Example}{14} \contentsline {subsubsection}{\numberline {6.5.2}Traffic monitoring}{14} \contentsline {paragraph}{Example}{14} \contentsline {subsubsection}{\numberline {6.5.3}Denying communication to MAC addresses}{15} \contentsline {paragraph}{Example}{15} \contentsline {subsubsection}{\numberline {6.5.4}Denying communication to IP addresses}{15} \contentsline {paragraph}{Example}{15} \contentsline {subsubsection}{\numberline {6.5.5}Clearing ECN bits from packets}{15} \contentsline {paragraph}{Example}{16} \contentsline {section}{\numberline {7}Example setup}{16} \contentsline {paragraph}{The default setup of the External zone}{16} \contentsline {paragraph}{The default setup of the internal zone}{16} \contentsline {paragraph}{The default setup of the demilitarized zone}{16} \contentsline {section}{\numberline {8}Related work}{17} \contentsline {section}{\numberline {9}Status}{18} \contentsline {section}{\numberline {10}Further work}{18} \contentsline {section}{\numberline {A}Usage}{20} \contentsline {section}{\numberline {B}Configuration files}{20} \contentsline {subsection}{\numberline {B.1}fiaif.conf}{20} \contentsline {subsection}{\numberline {B.2}reserved\_networks}{22} \contentsline {subsection}{\numberline {B.3}private\_networks}{22} \contentsline {subsection}{\numberline {B.4}type\_of\_services}{23} \contentsline {subsection}{\numberline {B.5}zone.ext}{23} \contentsline {subsection}{\numberline {B.6}zone.int}{25} \contentsline {subsection}{\numberline {B.7}zone.dmz}{26} fiaif-1.23.1/doc/DHCP.txt0000640000175000017500000000215211571724545014221 0ustar calvincalvin/* $Id: DHCP.txt,v 1.3 2002/12/31 12:47:23 afu Exp $ */ This document describes how to setup a zone for an interface configured via DHCP. DHCP is a method for dynamically assigning ip numbers to machines on a network. It is used for almost all dial up connections, and on some LAN's. FIAIF can easilly handle dhcp configured interfaces, even if the interfaces are not up at the point when FIAIF is started. To configure FIAIF for DHCP interfaces, you must point DEV to the interface name of the DHCP interface, and set DYNAMIC=1. IP, NET, etc. is not used when DYNAMIC=1. If the interface connects you to the internet, and the interface will be assigned a public valid IP number by you ISP, then you should set GLOBAL=1 also in the configuration file coverting the dynamically configured interface. There have been reported problems when starting FIAIF-traffic shaping for an interface that is not up yet, but is yet to be confirmed. It is adviced that is the interface is static (i.e. IP, NET, etc is known at the time when FIAIF is started, and will not change) DYNAMIC should be set to '0', as this improves security. fiaif-1.23.1/doc/faq.txt0000640000175000017500000001241312076546226014252 0ustar calvincalvinQ: What is FIAIF? A: In short, FIAIF is a set of scripts that, based on the configuration files, calls iptables to setup a firewall on the machine. You should read the introduction to learn more. Q: What is FIAIF an abbreviation for? A: FIAIF Is An Intelligent Firewall. Q: What is the official address of the official web-page for fiaif? A: The address is: http://www.fíaif.net. Q: Is there a mailing list for FIAIF? A: Yes, look under "Mailing list" on FIAIF webpage. Q: How much does FIAIF cost to use in a production environment? A: FIAIF is written under the GPL license, so it costs you nothing. Q: Will you setup FIAIF for me? A: No, but I will be happy to help you in the process. If you need support or advice on a professional level, you could hire me as a consultant. Q: Do I need extensive iptables knowledge? A: No, but you need to know how basic firewalling and networking theory, in order to exploit FIAIF to the fullest. Q: I have multiple network interfaces, can FIAIF handle this? A: This is what FIAIF was wrote to do. So the answer is certainly yes. Q: Can I forward requests to machine behind the firewall when using SNAT/MASQUERADING? A: Insert a REDIRECT rule in the zone the packet hits first. Then allow the packet to be forwarded, by adding a FORWARD line in the zone for which the packet is destined. Q: How do I setup a transparent proxy (using squid), and redirect all outgoing http-requests to this? A: In the zone from which the http requests originates, put in the line: 'REDIRECT_PROXY="tcp 80 0.0.0.0/0=>0.0.0.0/0 127.0.0.1 3128"' (Replacing 127.0.0.1 with th ip address of the server running the squid proxy, if not the same as the firewall). Then make sure you have the following settings in squid.conf: 'httpd_accel_host virtual', 'httpd_accel_port 80', 'httpd_accel_with_proxy on' and 'httpd_accel_uses_host_header on'. Please also make sure that squid listens on a real ip and not 127.0.0.1, as this will not work. Q: Can I forward requests to the firewall itself to another machine in the same zone as the request was made from. A: Yes, this functionality has been implemented in FIAIF verson 1.4.3-0pre2 Q: Can I make a REDIRECT_RULE to redirect to localhost? A: Yes, this functionality has been implemented in FIAIF verson 1.4.3-0pre2 Q: Does FIAIF handle VPN setups? A: Yes, but it is limited to how much iptables can handle. To get IPsec up and running you must make sure you are forwarding (both ways) protocol 50 (ESP), protocol 51 (AH) and UDP sport 500 / dport 500 (IKE). Also IPSec only works with NAT if in tunnel mode. Transport mode does not work with NAT'ing firewalls. Q: I'm having problem with ftp to external sites. Please help. A: You need to insert ip_conntrack_ftp and ip_nat_ftp modules into the kernel. The easiest way to do this is to specify 'MODULES="ip_conntrack_ftp ip_nat_ftp"' in /etc/fiaif/fiaif.conf Q: Why is the system log spammed with ACK,FIN and like entries? A: Due to a "feature" in the linux firewalling code, connections are closed as soon as one end sends a FIN packet. The RFC states that you may or may not respond to this packet. Therefore when the answer "ACK,FIN" arrives, it is no longer related to any established connections. you can saftly disregard these entries. Q: How do I avoid dropped packets to be logged to every console? A: To avoid this, try issuing the command 'dmesg -n 1'. For more information see dmesg(8). Q: I have two Internet connections. Can I use FIAIF to handle this? A: Yes and no. FIAIF handles only the firewall rules - not routing decisions, not QOS / TRaffic shaping.) First use 'ip' from iproute2 package, and setup the routing. When you got the routing setup correctly, configure FIAIF to control access to the system and networks. Q: If FIAIF does not handle routing, when where should I go to find more information on this? A: Try the "Linux 2.4 Advanced Routing HOWTO" (http://www.linuxguruz.org/iptables/howto/2.4routing.html), and "Linux Advanced Routing & Traffic Control" (http://lartc.org/). Q: Will FIAIF ever be able to handle routing setup? A: Maybe - It depends on how much time I get, and if I have something to test in on. If someone would be willing to donate me a second internet connection, the I would be happy to try. Q: Something does not work, what do I do? A: Check that your system works without FIAIF. Lots of problems are generally because of routins setup faults. FIAIF will not configure anything else that iptables (Linux firewall rules). Q: Something still does not work, what do I do? A: First recheck your configuration files, then post a mail to the list. Before posting, read the "Mailing List" section on the FIAIF webpage. Q: Will functionality 'foo' ever be implemented? A: Maybe. If it can be done in a generic manner, and there is a reason for the functionality, then the answer is usually yes. Remember that FIAIF can be extended with custom scripts very easily by using the PRE and POST scripts. Q: What major companies are using FIAIF? A: That I will not tell you. The reason is that if a hacker know the make of a firewall it can help him to break it in case of undiscovered/unresolved bugs. Q: Will this FAQ be extended to include more entries? A: Depends on you. If you have questions you would like to have answered here, please send them to me and they will be added (if appropiate). fiaif-1.23.1/doc/reporting_bugs.txt0000640000175000017500000000503711571724545016541 0ustar calvincalvin/* $Id: reporting_bugs.txt,v 1.5 2003/03/10 01:03:52 afu Exp $ */ This document describes how to report bugs in FIAIF. Similar guidelines should be followed when asking for help on configuration of FIAIF. All bugs should be send to the FIAIF mailing list [1]. Before reporting a bug, please read through the mailing list archives [2] to see if the bug has been reported before and/or if a solutions has been presented. When sending a bug report, please make the subject of the email short and precise like "[BUG] AUTOCONF misreading network information". The mail should contain the following information: 1) A clear description of the problem. Do not use slang or cut off corners in the description. Write in as clear and precise English as possible. It is no problem if you are not fluently in English, as long as you try. 2) A description of what have been done in order to solve the problem (or why you think that you have found a bug). At least give the indication that you have actually spend a little time trying to solve the problem you have found. Remember that FIAIF is free, and no one on the list are getting payed for looking into your problem. Therefore you must be willing to spend some time yourself in order to solve the problem. 3) Usually it is a good idea to make a sketch of the network setup. E.g: __________ Internet - eth0 | |----eth1(192.68.1.0/24) -----------------| Firewall | LAN (a.b.c.d) |__________|----eth2(192.68.1.0/24) 4) The output from: $ iptables --version $ uname -a $ bash --version $ lsmod $ cat /usr/share/fiaif/VERSION If any lines were logged to the system log by FIAIF related to the problem, these should be included in the post as well. 5) If necessary, attach your FIAIF configuration files. A general note on security. Please mask out any public IP's in emails send to the list. Providing both configuration and public IP's may help abusers to hack your site. When posting to the list, please remember to do a follow up, when the problem/bug has been resolved. Something like: "Thanks - Version 5.4 seems not to have the bug." or "Problem found - I had two INPUT rules with the same number". If you solve the problem yourself a followup is also important. Remember to give the solution, as a help for future users. [1] fiaif@fiaif.net [2] https://www.fiaif.net/pipermail/fiaif/