mirror of
				https://github.com/gfwlist/gfwlist.git
				synced 2025-11-04 08:37:27 +00:00 
			
		
		
		
	U2NyaXB0Cg==
This commit is contained in:
		
							parent
							
								
									1e2cf10439
								
							
						
					
					
						commit
						a75ab263ce
					
				
							
								
								
									
										65
									
								
								addChecksum.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										65
									
								
								addChecksum.pl
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,65 @@
 | 
			
		||||
#!/usr/bin/perl
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# This is a reference script to add checksums to downloadable               #
 | 
			
		||||
# subscriptions. The checksum will be validated by AutoProxy on download    #
 | 
			
		||||
# and checksum mismatches (broken downloads) will be rejected.              #
 | 
			
		||||
#                                                                           #
 | 
			
		||||
# To add a checksum to a subscription file, run the script like this:       #
 | 
			
		||||
#                                                                           #
 | 
			
		||||
#   perl addChecksum.pl subscription.txt                                    #
 | 
			
		||||
#                                                                           #
 | 
			
		||||
# Note: your subscription file should be saved in UTF-8 encoding, otherwise #
 | 
			
		||||
# the generated checksum might be incorrect.                                #
 | 
			
		||||
#                                                                           #
 | 
			
		||||
#############################################################################
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
use warnings;
 | 
			
		||||
use Digest::MD5 qw(md5_base64);
 | 
			
		||||
 | 
			
		||||
die "Usage: $^X $0 subscription.txt\n" unless @ARGV;
 | 
			
		||||
 | 
			
		||||
my $file = $ARGV[0];
 | 
			
		||||
my $data = readFile($file);
 | 
			
		||||
 | 
			
		||||
# Remove already existing checksum
 | 
			
		||||
$data =~ s/^.*!\s*checksum[\s\-:]+([\w\+\/=]+).*\n//gmi;
 | 
			
		||||
 | 
			
		||||
# Calculate new checksum: remove all CR symbols and empty
 | 
			
		||||
# lines and get an MD5 checksum of the result (base64-encoded,
 | 
			
		||||
# without the trailing = characters).
 | 
			
		||||
my $checksumData = $data;
 | 
			
		||||
$checksumData =~ s/\r//g;
 | 
			
		||||
$checksumData =~ s/\n+/\n/g;
 | 
			
		||||
 | 
			
		||||
# Calculate new checksum
 | 
			
		||||
my $checksum = md5_base64($checksumData);
 | 
			
		||||
 | 
			
		||||
# Insert checksum into the file
 | 
			
		||||
$data =~ s/(\r?\n)/$1! Checksum: $checksum$1/;
 | 
			
		||||
 | 
			
		||||
writeFile($file, $data);
 | 
			
		||||
 | 
			
		||||
sub readFile
 | 
			
		||||
{
 | 
			
		||||
  my $file = shift;
 | 
			
		||||
 | 
			
		||||
  open(local *FILE, "<", $file) || die "Could not read file '$file'";
 | 
			
		||||
  binmode(FILE);
 | 
			
		||||
  local $/;
 | 
			
		||||
  my $result = <FILE>;
 | 
			
		||||
  close(FILE);
 | 
			
		||||
 | 
			
		||||
  return $result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub writeFile
 | 
			
		||||
{
 | 
			
		||||
  my ($file, $contents) = @_;
 | 
			
		||||
 | 
			
		||||
  open(local *FILE, ">", $file) || die "Could not write file '$file'";
 | 
			
		||||
  binmode(FILE);
 | 
			
		||||
  print FILE $contents;
 | 
			
		||||
  close(FILE);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										334
									
								
								gfwlist.txt
									
									
									
									
									
								
							
							
						
						
									
										334
									
								
								gfwlist.txt
									
									
									
									
									
								
							@ -1,5 +1,5 @@
 | 
			
		||||
W0F1dG9Qcm94eSAwLjEuMF0KISBDaGVja3N1bTogMG5hc3Q2RStnRFFuWno1dnNjY3E1QQohIExh
 | 
			
		||||
c3QgTW9kaWZpZWQ6ICBXZWQsIDExIE1hciAyMDA5IDE1OjU5OjE2ICswODAwCiEgICAgIC0tLS1o
 | 
			
		||||
W0F1dG9Qcm94eSAwLjEuMF0KISBDaGVja3N1bTogSG1qUWxqZ2llbXJNdEpMdy9ZeVBodwohIExh
 | 
			
		||||
c3QgTW9kaWZpZWQ6ICBXZWQsIDExIE1hciAyMDA5IDE2OjM2OjEzICswODAwCiEgICAgIC0tLS1o
 | 
			
		||||
dHRwOi8vYXV0b3Byb3h5LWdmd2xpc3QuZ29vZ2xlY29kZS5jb20vCiEtLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tTnVtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9uc2YuMTEwbWIu
 | 
			
		||||
Y29tCnxodHRwOi8vd3d3LjFiYW8ub3JnCnxodHRwOi8vM2NjLmNjLwp8aHR0cDovL3d3dy4zY2Mu
 | 
			
		||||
@ -9,171 +9,171 @@ LS0tLS0tLS0tLS0tLS0Kd3d3LmFib2x1b3dhbmcuY29tCnxodHRwOi8vd3d3LmFib3V0dXMub3Jn
 | 
			
		||||
Ci5hbW5lc3R5Lm9yZwphbW5lc3R5dXNhLm9yZwp8aHR0cDovL3d3dy5hbW9paXN0LmNvbS8KfGh0
 | 
			
		||||
dHA6Ly93d3cuYW5keWxhdS5jb20KYW5vbnltaXplci5jb20KfGh0dHA6Ly9hbm9ueW1vdXNlLm9y
 | 
			
		||||
Zwp8aHR0cDovL25ld3MuYW9sLmNvbS8KfGh0dHA6Ly9wcm94eXB5LmFwcHNwb3QuY29tLwp8aHR0
 | 
			
		||||
cDovL3d3dy5hcml6b25hY2hpbmVzZS5jb20Kd3d3LmFzaWFkZW1vLm9yZwouYXRqLm9yZy50dwoK
 | 
			
		||||
IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tQi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmJh
 | 
			
		||||
aWR1LmpwLwp8aHR0cDovL3d3dy5iYXJuYWJ1LmNvLnVrCmJiYy5jby51aypjaGluZXNlCmJlaWpp
 | 
			
		||||
bmdzcHJpbmcuY29tCmJlc3Rmb3JjaGluYS5vcmcKYmlnbmV3cy5vcmcKLmJsaXAudHYKLmJsb2cu
 | 
			
		||||
Y29tLwp8aHR0cDovL3Jjb252ZXJzYXRpb24uYmxvZ3MuY29tLwp8aHR0cDovL3d3dy5ibG9nZ2Vy
 | 
			
		||||
LmNvbS9mZWVkcwp8aHR0cDovL2Jsb2dsaW5lcy5jb20KfGh0dHA6Ly93d3cuYmxvZ2xpbmVzLmNv
 | 
			
		||||
bQouYmxvZ3NvbWUuY29tCmJsb29vb29vb29nZ2VyLmJsb2dzcG90LmNvbQpjaGluYWdmdy5ibG9n
 | 
			
		||||
c3BvdC5jb20KeWV0YWFpLmJsb2dzcG90LmNvbQp8aHR0cDovL3d3dy5ib29rcy5jb20udHcvCmJv
 | 
			
		||||
eC5uZXQvc2hhcmVkL3ltY20zazBjeTgKYm94dW4uY29tCmJ1bGxvZ2dlci5jb20KCiEtLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLUMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL2Nh
 | 
			
		||||
b2Rhbi5uZXQKfGh0dHA6Ly93d3cuY2FybmVnaWVlbmRvd21lbnQub3JnCnd3dy5jY2R0ci5vcmcK
 | 
			
		||||
fGh0dHA6Ly93d3cuY2RlZi5vcmcKd3d3LmNkcDE5OTgub3JnCmNkcHd1Lm9yZwp3d3cuY2VjYy5n
 | 
			
		||||
b3YKfGh0dHA6Ly9jZ2lwcm94eS51cy8KfGh0dHA6Ly93d3cuY2dpcHJveHkudXMvCmNoaW5hY29t
 | 
			
		||||
bWVudHMub3JnCmNoaW5hZGlnaXRhbHRpbWVzLm5ldC8KY2hpbmFnZncub3JnCi5jaGluYXRpbWVz
 | 
			
		||||
LmNvbS8KY2hpbmF3YXkub3JnCmNoaW5lc2VuZXdzbmV0LmNvbQp8aHR0cDovL2Rldi5jaHJvbWl1
 | 
			
		||||
bS5vcmcvCnxodHRwOi8vYmxvZy5jaHJvbWl1bS5vcmcvCnBzaXBob24uY2l2aXNlYy5vcmcKfGh0
 | 
			
		||||
dHA6Ly93d3cuY2l2aXNlYy5vcmcKfGh0dHA6Ly9jb2RlcGFkLm9yZy8KfGh0dHA6Ly93d3cuY29v
 | 
			
		||||
bGxvdWQub3JnLnR3LwpjcmQtbmV0Lm9yZwpjdWlodWEub3JnCgohLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS1ELS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9hay4qLmRhaWx5bW90
 | 
			
		||||
aW9uLmNvbS8KbGlzdHMuZGViaWFuLm9yZwpkaXNjdXNzLmNvbS5oawp8aHR0cDovL3d3dy5kb2Ni
 | 
			
		||||
b29rLm9yZy8KZG91YmxlYWYuY29tCnd3dy5kb3dubG9hZC5jb20vRnJlZWdhdGUvMzAwMC0yMDg1
 | 
			
		||||
XzQtMTA0MTUzOTEuaHRtbAp8aHR0cDovL3d3dy5kcHAub3JnLnR3Lwpkdy13b3JsZC5kZQp8aHR0
 | 
			
		||||
cDovL3d3dy5keW5hd2ViaW5jLmNvbS8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUUtLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplZG9vcnMuY29tCnxodHRwOi8vd3d3LmVkdWJyaWRnZS5j
 | 
			
		||||
b20vCnxodHRwOi8vZW5kc29mdHBhdGVudHMub3JnLwpldHJlZS5vcmcvCgohLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS1GLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9mZWVkcy5m
 | 
			
		||||
ZWVkYnVybmVyLmNvbS8KfGh0dHA6Ly9mYXJtMS5zdGF0aWMuZmxpY2tyLmNvbS8KfGh0dHA6Ly9m
 | 
			
		||||
YXJtMi5zdGF0aWMuZmxpY2tyLmNvbS8KZnJlZWZvcnVtcy5vcmcvCmZyZWVtb3Jlbi5jb20vCnxo
 | 
			
		||||
dHRwOi8vd3d3LmZyZWVuZXQtY2hpbmEub3JnLwpmcmVlbmV0cHJvamVjdC5vcmcvCnxodHRwOi8v
 | 
			
		||||
d3d3LmZyZXNobWVhdC5uZXQvcHJvamVjdHMvZnJlZW5ldC8KZnJpZW5kZmVlZC5jb20lMkZlJTJG
 | 
			
		||||
CmZyaWVuZGZlZWQuY29tL2UvCnxodHRwOi8vd3d3LmZzdXJmLmNvbS8KLmZ1dHVyZWNoaW5hZm9y
 | 
			
		||||
dW0ub3JnCgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1HLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0KfGh0dHA6Ly93d3cuZ2xvYmFsaW50ZXJuZXRmcmVlZG9tLm9yZy8KfGh0dHA6Ly96aC5n
 | 
			
		||||
bG9iYWx2b2ljZXNvbmxpbmUub3JnLwpnb29nbGUuY29tKmFuYWx5dGljcyp6aC1DTgpmZWVkcHJv
 | 
			
		||||
eHkuZ29vZ2xlLmNvbQp8aHR0cDovL3BhZ2VzLmdvb2dsZS5jb20vCnxodHRwOi8vd3d3Lmdvb2ds
 | 
			
		||||
ZS5jb20vdXJsKmN0PWNsbmsKfGh0dHA6Ly9nb29nbGVibG9nLmJsb2dzcG90LmNvbS8KLmdvb2ds
 | 
			
		||||
ZXBhZ2VzLmNvbS8KZ3Bhc3MxLmNvbQp8aHR0cDovL3d3dy5ncHJveHkuY29tCnxodHRwOi8vd3d3
 | 
			
		||||
LmdyZWFzZXNwb3QubmV0LwpncmVhdC1maXJld2FsbC5jb20KfGh0dHA6Ly93d3cuZ3V0ZW5iZXJn
 | 
			
		||||
Lm9yZy8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUgtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLQp8aHR0cDovL2hhY2thZGF5LmNvbS8KfGh0dHA6Ly93d3cuaGVhcnR5aXQuY29tLwp8aHR0
 | 
			
		||||
cDovL3d3dy5oZW1pZGVtaS5jb20vCm15d2ViLmhpbmV0Lm5ldAp8aHR0cDovL3RpbWVzLmhpbmV0
 | 
			
		||||
Lm5ldC8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUktLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLQp8aHR0cDovL2kxLmhrLwp8aHR0cDovL3d3dy5pYW1maXNoZXIubmV0LwpocC5pbmZvc2Vl
 | 
			
		||||
ay5jby5qcC8KfGh0dHA6Ly93d3cuaW0udHYvCnxodHRwOi8vd3d3LmlubWVkaWFoay5uZXQvCnxo
 | 
			
		||||
dHRwOi8vd3d3LmludGVybmV0ZnJlZWRvbS5vcmcvCgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS1KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9qYWlrdS5jb20KfGh0dHA6Ly93
 | 
			
		||||
d3cuamFpa3UuY29tCi5qaXJ1YW4ubmV0CnxodHRwOi8vanByYTExMTMub3JnCgohLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS1LLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Ka2FuemhvbmdndW8u
 | 
			
		||||
Y29tCnxodHRwOi8vbG9nLmtlc28uY24vCnxodHRwOi8vd3d3LmttdC5vcmcudHcvCnxodHRwOi8v
 | 
			
		||||
d3d3Lmt6ZW5nLmluZm8vCgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1MLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0KbGliZXJ0eXRpbWVzLmNvbS50dwp8aHR0cDovL2NsZS5saW51eC5vcmcu
 | 
			
		||||
dHcvCnxodHRwOi8vd3d3LmxpdmVqb3VybmFsLmNvbQoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tTS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm1haWwtYXJjaGl2ZS5jb20KfGh0dHA6Ly9j
 | 
			
		||||
cS5tYWlsMTYzLnRvLwp8aHR0cDovL3d3dy5tYXRodHVubmVsLmNvbS8KfGh0dHA6Ly9tZW1lZGlh
 | 
			
		||||
LmNuLwoubWluZ2h1aS5vcmcKd3d3Lm1pbmdwYW8uY29tCm1pbmdwYW9uZXdzLmNvbQp8aHR0cDov
 | 
			
		||||
L3d3dy5taW5ncGFvbnkuY29tLwptaW56aHV6aG9uZ2d1by5vcmcKfGh0dHA6Ly93d3cubXBpbmV3
 | 
			
		||||
cy5jb20vCm5ld3MubXNuLmNvbS50dwp3d3cubXNuLmNvbS50dwp8aHR0cDovL214ZXhwcmVzcy50
 | 
			
		||||
d2Jicy5vcmcvCnxodHRwOi8vd3d3Lm15Y291bGQuY29tLwp8aHR0cDovL3ZpZHMubXlzcGFjZS5j
 | 
			
		||||
b20vCgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1OLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0KbmV0Y29sb255LmNvbQp8aHR0cDovL3d3dy5uZXdzdmluZS5jb20vCnxodHRwOi8vYmxvZy5u
 | 
			
		||||
aWhpbG9naWMuZGsvCnxodHRwOi8vdGFpd2FueWVzLm5pbmcuY29tL2dyb3VwL3RhaXdhbnBvd2Vy
 | 
			
		||||
Cm50ZHR2LmNvbQoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTy0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tCm9tbml0YWxrLgovb24uY2MvKgoub24uY2MvCm15Lm9wZXJhLmNvbQp8aHR0cDov
 | 
			
		||||
L29zZGlyLmNvbS8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVAtLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLQpwYndpa2kuY29tCnxodHRwOi8vbmV3cy5wY2hvbWUuY29tLnR3LwoucGVhY2Vm
 | 
			
		||||
aXJlLm9yZwpwZWFjZWhhbGwuY29tLgpwaGlsbHkuY29tCnBzaXBob24uY2EKfGh0dHA6Ly93d3cu
 | 
			
		||||
cHR0LmNjLwoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tUS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tCnxodHRwOi8vcGl4ZWwucXVhbnRzZXJ2ZS5jb20vCnxodHRwOi8vcXVrZS5jbgp8aHR0
 | 
			
		||||
cDovL3d3dy5xdWtlLmNuCnF4YmJzLm9yZy8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVIt
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL3d3dy5yc2Yub3JnLwp8aHR0cDovL3d3
 | 
			
		||||
dy5yc2YtY2hpbmVzZS5vcmcvCgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1TLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9zLnNjcmliZC5jb20vCm5ld3Muc2luYS5jb20udHcK
 | 
			
		||||
bmV3cy5zaW5hLmNvbS5oawp8aHR0cDovL3Jzcy5zbGFzaGRvdC5vcmcvCi5zb3VwLmlvLwp8aHR0
 | 
			
		||||
cDovL3BvcnRpczIxLnNwYWNlcy5saXZlLmNvbS8KfGh0dHA6Ly93YW5neWk2NC5zcGFjZXMubGl2
 | 
			
		||||
ZS5jb20vCnxodHRwOi8vd2VueXVuY2hhby5zcGFjZXMubGl2ZS5jb20vCnVzaW5mby5zdGF0ZS5n
 | 
			
		||||
b3YKCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LQp8aHR0cDovL3RhbnNpb2tzaW9rLmNvbS8KdGVjaG5vbG9naXplci5jb20KfGh0dHA6Ly93d3cu
 | 
			
		||||
dGVjaG5vcmF0aS5jb20vCnxodHRwOi8vdGhlcGlyYXRlYmF5Lm9yZy8KY2hpbmEuYmxvZ3MudGlt
 | 
			
		||||
ZS5jb20KdGlhbmFubWVubW90aGVyLm9yZwp0bGRwLm9yZwp0b3Jwcm9qZWN0Lm9yZwp8aHR0cDov
 | 
			
		||||
L2NzYWkudHNpbmdodWEuZWR1LmNuLwp8aHR0cDovL3R0dGFuLmNvbS8KdHVtYmxyLmNvbQouZ292
 | 
			
		||||
LnR3Lwp0d2lzdGVybm93LmNvbQp0d2l0dGVyLmNvbS9hbW9paXN0CnR3aXR0ZXIuY29tL2JpbGx6
 | 
			
		||||
aG9uZwp0d2l0dGVyLmNvbS9rY29tZQp0d2l0dGVyLmNvbS9zaGl6aGFvCnR3aXR0ZXIuY29tL1ZP
 | 
			
		||||
VENoaW5lc2UKdHdpdHRlci5jb20vemVuZ2ppbnlhbgp0d2l0dGVyLmNvbS96dW9sYQp8aHR0cDov
 | 
			
		||||
L2FwaXdpa2kudHdpdHRlci5jb20vCnxodHRwOi8vYmxvZy50d2l0dGVyLmNvbS8KfGh0dHA6Ly9k
 | 
			
		||||
ZXYudHdpdHRlci5jb20vCnxodHRwOi8vc3RhdHVzLnR3aXR0ZXIuY29tLwoKIS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tVS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnxodHRwOi8vYmxvZy51
 | 
			
		||||
ZG4uY29tLwp8aHR0cDovL2NpdHkudWRuLmNvbS8KfGh0dHA6Ly9wYXBlci51ZG4uY29tLwp1bmN5
 | 
			
		||||
Y2xvcGVkaWEuCnxodHRwOi8vdW5pZm91bmRyeS5jb20vCnxodHRwOi8vd3d3LnVua25vd25zcGFj
 | 
			
		||||
ZS5vcmcvCnxodHRwOi8vd3d3LnVybC5jb20udHcvCnxodHRwOi8vd3d3LmNhZmMudXNjb3VydHMu
 | 
			
		||||
Z292LwpodHRwOi8vZWFydGhxdWFrZS51c2dzLmdvdi9lcWNlbnRlci9yZWNlbnRlcXN3dy9NYXBz
 | 
			
		||||
LzEwLzEwNV8zMC5waHAKLnV3YW50cy5jb20KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVYt
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp2MmV4LmNvbQp8aHR0cDovL3d3dy52aXN1d29yZHMu
 | 
			
		||||
Y29tLwp8aHR0cDovL3d3dy52b2FuZXdzLmNvbS8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LVctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp3d3cud2FuZ3J1b3dhbmcub3JnCi53ZWJzaG90
 | 
			
		||||
cy5jb20vCndlbnh1ZWNpdHkuY29tLwp8aHR0cDovL3N0YXRpYy53ZXRwYWludC5jb20vCnxodHRw
 | 
			
		||||
Oi8vd3d3LndldHBhaW50LmNvbS8KfGh0dHA6Ly93d3cud2V0cGFpbnRpbmplY3RlZC5jb20vCnxo
 | 
			
		||||
dHRwOi8vd2lkZ2V0LndldHBhaW50c2Vydi51cy8KfGh0dHA6Ly9ldmNoay53aWtpYS5jb20vCndp
 | 
			
		||||
a2lkb3QuY29tCkBAc3RhdGljLndpa2lkb3QuY29tCi53aWtpbGVha3Mub3JnLwohLVdpa2lMZWFr
 | 
			
		||||
cyBJUAoqLzg4LjgwLjEzLjE2MC8qCnNlY3VyZS53aWtpbWVkaWEub3JnCgohLS0tLS0tLS0tLS0t
 | 
			
		||||
LXpoLldpa2lQZWRpYS0tLS0tCiEtLURhIEppIFl1YW4Kemgud2lraXBlZGlhLm9yZyolRTUlQTQl
 | 
			
		||||
QTclRTclQjQlODAlRTUlODUlODMKIS0tRGEgSmkgWXVhbiBTaGkgQmFvCnpoLndpa2lwZWRpYS5v
 | 
			
		||||
cmcqJUU1JUE0JUE3JUU3JUI0JTgwJUU1JTg1JTgzJUU2JTk5JTgyJUU1JUEwJUIxCiEtLURhIEpp
 | 
			
		||||
IFl1YW4gU2hpIEJhbzogemgtY24Kemgud2lraXBlZGlhLm9yZyolRTUlQTQlQTclRTclQkElQUEl
 | 
			
		||||
RTUlODUlODMlRTYlOTclQjYlRTYlOEElQTUKIS0tRGEgU2UgR3VvIEpJCnpoLndpa2lwZWRpYS5v
 | 
			
		||||
cmcqJUU1JUE0JUE3JUU4JUI1JUE2JUU1JTlCJUJEJUU5JTk5JTg1CiEtLUUgTHVvIFNpCnpoLndp
 | 
			
		||||
a2lwZWRpYS5vcmcqJUU0JUJGJTg0JUU3JUJEJTk3JUU2JTk2JUFGCiEtLUZhIEx1biBHb25nCnpo
 | 
			
		||||
Lndpa2lwZWRpYS5vcmcqJUU2JUIzJTk1JUU4JUJDJUFBJUU1JThBJTlGCiEtLUZhIEx1biBHb25n
 | 
			
		||||
OiB6aC1oYW5zCnpoLndpa2lwZWRpYS5vcmcqJUU2JUIzJTk1JUU4JUJEJUFFJUU1JThBJTlGCiEt
 | 
			
		||||
LUZhbmcgSHVvIENoYW5nIENoZW5nCnpoLndpa2lwZWRpYS5vcmcqJUU5JTk4JUIyJUU3JTgxJUFC
 | 
			
		||||
JUU5JTk1JUJGJUU1JTlGJThFCiEtLUh1YSBZdWFuIFJ1YW4gSmlhbgp6aC53aWtpcGVkaWEub3Jn
 | 
			
		||||
L3dpa2kvJUU4JThBJUIxJUU1JTlCJUFEJUU4JUJEJUFGJUU0JUJCJUI2CiEtLUh1YSBZdWFuIFdh
 | 
			
		||||
bmcKemgud2lraXBlZGlhLm9yZyolRTglOEElQjElRTUlOUIlQUQlRTclQkQlOTEKIS0tTGl1IFNp
 | 
			
		||||
IFNoaSBKaWFuCnpoLndpa2lwZWRpYS5vcmcqJUU1JTg1JUFEJUU1JTlCJTlCJUU0JUJBJThCJUU0
 | 
			
		||||
JUJCJUI2CiEtLU1laSBHdW8gWmhpIFlpbgp6aC53aWtpcGVkaWEub3JnKiVFNyVCRSU4RSVFNSU5
 | 
			
		||||
QiVCRCVFNCVCOSU4QiVFOSU5RiVCMwohLS1XZW4gQ2h1YW4gRGEgRGkgWmhlbgp6aC53aWtpcGVk
 | 
			
		||||
aWEub3JnKiVFNiVCMSVCNiVFNSVCNyU5RCVFNSVBNCVBNyVFNSU5QyVCMCVFOSU5QyU4NwohLS1X
 | 
			
		||||
dSBHdW8gSmllIEppIFpoZQp6aC53aWtpcGVkaWEub3JnKiVFNiU5NyVBMCVFNSU5QiVCRCVFNyU5
 | 
			
		||||
NSU4QyVFOCVBRSVCMCVFOCU4MCU4NQohLS1XdSBKaWUgV2FuZyBMdW8Kemgud2lraXBlZGlhLm9y
 | 
			
		||||
ZyolRTYlOTclQTAlRTclOTUlOEMlRTclQkQlOTElRTclQkIlOUMKIS0tWGkgWmFuZyBMaXUgV2Fu
 | 
			
		||||
ZyBaaGVuZyBGdQp6aC53aWtpcGVkaWEub3JnKiVFOCVBNSVCRiVFOCU5NyU4RiVFNiVCNSU4MSVF
 | 
			
		||||
NCVCQSVBMSVFNiU5NCVCRiVFNSVCQSU5QwohLS1aaG9uZyBHdW8gRGEgTHUgRmVuZyBTdW8gV2Vp
 | 
			
		||||
IEpJIE1laSBUaSBTaGkgSmlhbgp6aC53aWtpcGVkaWEub3JnKiVFNCVCOCVBRCVFNSU5QiVCRCVF
 | 
			
		||||
NSVBNCVBNyVFOSU5OSU4NiVFNSVCMCU4MSVFOSU5NCU4MSVFNyVCQiVCNCVFNSU5RiVCQSVFNSVB
 | 
			
		||||
QSU5MiVFNCVCRCU5MyVFNCVCQSU4QiVFNCVCQiVCNgohLS1aaG9uZyBHdW8gRGEgTHUgV2FuZyBM
 | 
			
		||||
dW8gRmVuZyBTdW8Kemgud2lraXBlZGlhLm9yZyolRTQlQjglQUQlRTUlOUMlOEIlRTUlQTQlQTcl
 | 
			
		||||
RTklOTklQjglRTclQjYlQjIlRTglQjclQUYlRTUlQjAlODElRTklOEUlOTYKIS0tWmhvbmcgR3Vv
 | 
			
		||||
IFdhbmcgTHVvIFNoZW4gQ2hhCnpoLndpa2lwZWRpYS5vcmcqJUU0JUI4JUFEJUU1JTlCJUJEJUU3
 | 
			
		||||
JUJEJTkxJUU3JUJCJTlDJUU1JUFFJUExJUU2JTlGJUE1CiEtLVpob25nIEh1YSBSZW4gTWluIEdv
 | 
			
		||||
bmcgSGUgR3VvIFdhbmcgTHVvIFNoZW4gQ2hhCnpoLndpa2lwZWRpYS5vcmcqJUU0JUI4JUFEJUU1
 | 
			
		||||
JThEJThFJUU0JUJBJUJBJUU2JUIwJTkxJUU1JTg1JUIxJUU1JTkyJThDJUU1JTlCJUJEJUU3JUJE
 | 
			
		||||
JTkxJUU3JUJCJTlDJUU1JUFFJUExJUU2JTlGJUE1CiEtLVppIFlvdSBNZW4Kemgud2lraXBlZGlh
 | 
			
		||||
Lm9yZyolRTglODclQUElRTclOTQlQjElRTklOTclQTgKIS0tWmkgWW91IFlhIFpob3UKemgud2lr
 | 
			
		||||
aXBlZGlhLm9yZyolRTglODclQUElRTclOTQlQjElRTQlQkElOUElRTYlQjQlQjIKIS0tWmkgWW91
 | 
			
		||||
IFlhIFpob3UgRGlhbiBUYWk6IHpoLWhhbnMKemgud2lraXBlZGlhLm9yZyolRTglODclQUElRTcl
 | 
			
		||||
OTQlQjElRTQlQkElOUElRTYlQjQlQjIlRTclOTQlQjUlRTUlOEYlQjAKCi53b3JkcHJlc3MuY29t
 | 
			
		||||
CkBAaHR0cDovL3Muc3RhdHMud29yZHByZXNzLmNvbS8KQEBodHRwOi8vczEud29yZHByZXNzLmNv
 | 
			
		||||
bS8KQEBodHRwOi8vc3RhdHMud29yZHByZXNzLmNvbS8KQEBodHRwOi8vd3d3LndvcmRwcmVzcy5j
 | 
			
		||||
b20KLnd1amllLm5ldAoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tWC0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tCnxodHRwOi8vd3d3LnhhbmdhLmNvbS8KfGh0dHA6Ly93d3cueGluaHVhbmV0
 | 
			
		||||
Lm9yZy8KfGh0dHA6Ly9ibG9nLnh1aXRlLm5ldC8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LVktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL2Jsb2cueWFtLmNvbS8KbmV3cy55
 | 
			
		||||
YW0uY29tCnxodHRwOi8vd3d3LnlvdXBhaS5vcmcvCnxodHRwOi8vd3d3LnlvdXItZnJlZWRvbS5u
 | 
			
		||||
ZXQvCnxodHRwczovL3d3dy55b3VyLWZyZWVkb20ubmV0Lwp5b3V0dWJlLmNvbQpAQHlvdXR1YmUu
 | 
			
		||||
Y29tL2dldF92aWRlbwp5dGh0Lm5ldC8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVotLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL2x1bnRhbi56YW9iYW8uY29tLwouemVuZ2pp
 | 
			
		||||
bnlhbi5vcmcKemVuZ2ppbnlhbi5zcGFjZXMubGl2ZS5jb20KenVvbGEuY29tCgohLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS1PdGhlci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIS0tZG9uZyB0YWkg
 | 
			
		||||
d2FuZwolRTUlOEElQTglRTYlODAlODElRTclQkQlOTEKZmFsdW5kYWZhCiEtZmEgbHVuIGRhIGZh
 | 
			
		||||
CiVFNiVCMyU5NSVFOCVCRCVBRSVFNSVBNCVBNyVFNiVCMyU5NQohLS1MaXUgWGlhbyBCbwolRTUl
 | 
			
		||||
ODglOTglRTYlOTklOTMlRTYlQjMlQTIKc2VhcmNoP3E9Y2FjaGUKc2VhcmNoP3E9c2FmZXdlYgpV
 | 
			
		||||
bHRyYXJlYWNoCgoKCiEtLS0tLS1VblNvcnRlZC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLQoKCgp8aHR0cDovL2Rsc3RhdHVzYmFyLnByb2JvYXJkczQzLmNvbS8KfGh0dHA6
 | 
			
		||||
Ly93d3cud3JldGNoLmNjLwp8aHR0cDovL21hb215Lm1vdGltZS5jb20vCnxodHRwOi8vY2guc2h2
 | 
			
		||||
b29uZy5jb20vCnxodHRwOi8vd3d3LmxhbmNza3kuY29tLwp8aHR0cDovL3d3dy5sZW5pbmxlZS5j
 | 
			
		||||
bi8KfGh0dHA6Ly93d3cuYm94Lm5ldC9zaGFyZWQvcDF0MG5meHpyZAp8aHR0cDovL3d3dy5yZmku
 | 
			
		||||
ZnIvYWN0dWNuL3BhZ2VzLzAwMS9ob21lY2hpbm9pcy5hc3AKfGh0dHA6Ly93d3cueXp6ay5jb20v
 | 
			
		||||
CnxodHRwOi8vd3d3LndlZWttYWcuaW5mby8KYmVuZGlrZW4ubmV0Ci5iYWRvbmdvLmNvbS8KLmVj
 | 
			
		||||
c3RhcnQuY29tLwp8aHR0cDovL2JzaWVnZWwuYXRoLmN4Lwp8aHR0cDovL3d3dy50eWNvb2wuY29t
 | 
			
		||||
Lwp3d3cubXNndWFuY2hhLmNvbQp8aHR0cDovL3d3dy5tZWV0dXAuY29tLwp8aHR0cDovL3d3dy5t
 | 
			
		||||
dWx0aXBseS5jb20vCnxodHRwOi8vdHJ1dmVvLmNvbS8KfGh0dHA6Ly9mdW5wLmNvbS8KfGh0dHA6
 | 
			
		||||
Ly93d3cub3hmYW0ub3JnLmhrLwp8aHR0cDovL3d3dy5zYWx2YXRpb24ub3JnLmhrLwp8aHR0cDov
 | 
			
		||||
L3d3dy50YWNlbS5vcmcvCi5waXhuZXQubmV0Lwp8aHR0cDovL215c2luYWJsb2cuY29tLwp8aHR0
 | 
			
		||||
cDovL3d3dy5rd29uZ3dhaC5jb20ubXkvCnxodHRwOi8vd3d3LmRhaWx5bW90aW9uLmNvbS8KfGh0
 | 
			
		||||
dHA6Ly9vcmllbnRhbGRhaWx5Lm9uLmNjLwp8aHR0cDovL25ld3MuZnR2LmNvbS50dy8KfGh0dHA6
 | 
			
		||||
Ly93d3cubWl0YmJzLmNvbS8KLmF0bmV4dC5jb20KfGh0dHA6Ly93d3cueHlzLm9yZy8KZ2FyZGVu
 | 
			
		||||
cDovL3d3dy5hcml6b25hY2hpbmVzZS5jb20Kd3d3LmFzaWFkZW1vLm9yZwouYXRqLm9yZy50dwou
 | 
			
		||||
YXRuZXh0LmNvbQoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tQi0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tCmJhaWR1LmpwLwp8aHR0cDovL3d3dy5iYXJuYWJ1LmNvLnVrCmJiYy5jby51aypj
 | 
			
		||||
aGluZXNlCmJlaWppbmdzcHJpbmcuY29tCmJlc3Rmb3JjaGluYS5vcmcKYmlnbmV3cy5vcmcKLmJs
 | 
			
		||||
aXAudHYKLmJsb2cuY29tLwp8aHR0cDovL3Jjb252ZXJzYXRpb24uYmxvZ3MuY29tLwp8aHR0cDov
 | 
			
		||||
L3d3dy5ibG9nZ2VyLmNvbS9mZWVkcwp8aHR0cDovL2Jsb2dsaW5lcy5jb20KfGh0dHA6Ly93d3cu
 | 
			
		||||
YmxvZ2xpbmVzLmNvbQouYmxvZ3NvbWUuY29tCmJsb29vb29vb29nZ2VyLmJsb2dzcG90LmNvbQpj
 | 
			
		||||
aGluYWdmdy5ibG9nc3BvdC5jb20KeWV0YWFpLmJsb2dzcG90LmNvbQp8aHR0cDovL3d3dy5ib29r
 | 
			
		||||
cy5jb20udHcvCmJveC5uZXQvc2hhcmVkL3ltY20zazBjeTgKYm94dW4uY29tCmJ1bGxvZ2dlci5j
 | 
			
		||||
b20KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LQp8aHR0cDovL2Nhb2Rhbi5uZXQKfGh0dHA6Ly93d3cuY2FybmVnaWVlbmRvd21lbnQub3JnCnd3
 | 
			
		||||
dy5jY2R0ci5vcmcKfGh0dHA6Ly93d3cuY2RlZi5vcmcKd3d3LmNkcDE5OTgub3JnCmNkcHd1Lm9y
 | 
			
		||||
Zwp3d3cuY2VjYy5nb3YKfGh0dHA6Ly9jZ2lwcm94eS51cy8KfGh0dHA6Ly93d3cuY2dpcHJveHku
 | 
			
		||||
dXMvCmNoaW5hY29tbWVudHMub3JnCmNoaW5hZGlnaXRhbHRpbWVzLm5ldC8KY2hpbmFnZncub3Jn
 | 
			
		||||
Ci5jaGluYXRpbWVzLmNvbS8KY2hpbmF3YXkub3JnCmNoaW5lc2VuZXdzbmV0LmNvbQp8aHR0cDov
 | 
			
		||||
L2Rldi5jaHJvbWl1bS5vcmcvCnxodHRwOi8vYmxvZy5jaHJvbWl1bS5vcmcvCnBzaXBob24uY2l2
 | 
			
		||||
aXNlYy5vcmcKfGh0dHA6Ly93d3cuY2l2aXNlYy5vcmcKfGh0dHA6Ly9jb2RlcGFkLm9yZy8KfGh0
 | 
			
		||||
dHA6Ly93d3cuY29vbGxvdWQub3JnLnR3LwpjcmQtbmV0Lm9yZwpjdWlodWEub3JnCgohLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS1ELS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9h
 | 
			
		||||
ay4qLmRhaWx5bW90aW9uLmNvbS8KbGlzdHMuZGViaWFuLm9yZwpkaXNjdXNzLmNvbS5oawp8aHR0
 | 
			
		||||
cDovL3d3dy5kb2Nib29rLm9yZy8KZG91YmxlYWYuY29tCnd3dy5kb3dubG9hZC5jb20vRnJlZWdh
 | 
			
		||||
dGUvMzAwMC0yMDg1XzQtMTA0MTUzOTEuaHRtbAp8aHR0cDovL3d3dy5kcHAub3JnLnR3Lwpkdy13
 | 
			
		||||
b3JsZC5kZQp8aHR0cDovL3d3dy5keW5hd2ViaW5jLmNvbS8KCiEtLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLUUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplZG9vcnMuY29tCnxodHRwOi8vd3d3
 | 
			
		||||
LmVkdWJyaWRnZS5jb20vCnxodHRwOi8vZW5kc29mdHBhdGVudHMub3JnLwpldHJlZS5vcmcvCgoh
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1GLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0
 | 
			
		||||
dHA6Ly9mZWVkcy5mZWVkYnVybmVyLmNvbS8KfGh0dHA6Ly9mYXJtMS5zdGF0aWMuZmxpY2tyLmNv
 | 
			
		||||
bS8KfGh0dHA6Ly9mYXJtMi5zdGF0aWMuZmxpY2tyLmNvbS8KZnJlZWZvcnVtcy5vcmcvCmZyZWVt
 | 
			
		||||
b3Jlbi5jb20vCnxodHRwOi8vd3d3LmZyZWVuZXQtY2hpbmEub3JnLwpmcmVlbmV0cHJvamVjdC5v
 | 
			
		||||
cmcvCnxodHRwOi8vd3d3LmZyZXNobWVhdC5uZXQvcHJvamVjdHMvZnJlZW5ldC8KZnJpZW5kZmVl
 | 
			
		||||
ZC5jb20lMkZlJTJGCmZyaWVuZGZlZWQuY29tL2UvCnxodHRwOi8vd3d3LmZzdXJmLmNvbS8KLmZ1
 | 
			
		||||
dHVyZWNoaW5hZm9ydW0ub3JnCgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1HLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly93d3cuZ2xvYmFsaW50ZXJuZXRmcmVlZG9tLm9yZy8K
 | 
			
		||||
fGh0dHA6Ly96aC5nbG9iYWx2b2ljZXNvbmxpbmUub3JnLwpnb29nbGUuY29tKmFuYWx5dGljcyp6
 | 
			
		||||
aC1DTgpmZWVkcHJveHkuZ29vZ2xlLmNvbQp8aHR0cDovL3BhZ2VzLmdvb2dsZS5jb20vCnxodHRw
 | 
			
		||||
Oi8vd3d3Lmdvb2dsZS5jb20vdXJsKmN0PWNsbmsKfGh0dHA6Ly9nb29nbGVibG9nLmJsb2dzcG90
 | 
			
		||||
LmNvbS8KLmdvb2dsZXBhZ2VzLmNvbS8KZ3Bhc3MxLmNvbQp8aHR0cDovL3d3dy5ncHJveHkuY29t
 | 
			
		||||
CnxodHRwOi8vd3d3LmdyZWFzZXNwb3QubmV0LwpncmVhdC1maXJld2FsbC5jb20KfGh0dHA6Ly93
 | 
			
		||||
d3cuZ3V0ZW5iZXJnLm9yZy8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUgtLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL2hhY2thZGF5LmNvbS8KfGh0dHA6Ly93d3cuaGVhcnR5
 | 
			
		||||
aXQuY29tLwp8aHR0cDovL3d3dy5oZW1pZGVtaS5jb20vCm15d2ViLmhpbmV0Lm5ldAp8aHR0cDov
 | 
			
		||||
L3RpbWVzLmhpbmV0Lm5ldC8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUktLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL2kxLmhrLwp8aHR0cDovL3d3dy5pYW1maXNoZXIubmV0
 | 
			
		||||
LwpocC5pbmZvc2Vlay5jby5qcC8KfGh0dHA6Ly93d3cuaW0udHYvCnxodHRwOi8vd3d3LmlubWVk
 | 
			
		||||
aWFoay5uZXQvCnxodHRwOi8vd3d3LmludGVybmV0ZnJlZWRvbS5vcmcvCgohLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS1KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9qYWlrdS5j
 | 
			
		||||
b20KfGh0dHA6Ly93d3cuamFpa3UuY29tCi5qaXJ1YW4ubmV0CnxodHRwOi8vanByYTExMTMub3Jn
 | 
			
		||||
CgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1LLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
 | 
			
		||||
a2FuemhvbmdndW8uY29tCnxodHRwOi8vbG9nLmtlc28uY24vCnxodHRwOi8vd3d3LmttdC5vcmcu
 | 
			
		||||
dHcvCnxodHRwOi8vd3d3Lmt6ZW5nLmluZm8vCgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1M
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KbGliZXJ0eXRpbWVzLmNvbS50dwp8aHR0cDovL2Ns
 | 
			
		||||
ZS5saW51eC5vcmcudHcvCnxodHRwOi8vd3d3LmxpdmVqb3VybmFsLmNvbQoKIS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tTS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm1haWwtYXJjaGl2ZS5j
 | 
			
		||||
b20KfGh0dHA6Ly9jcS5tYWlsMTYzLnRvLwp8aHR0cDovL3d3dy5tYXRodHVubmVsLmNvbS8KfGh0
 | 
			
		||||
dHA6Ly9tZW1lZGlhLmNuLwoubWluZ2h1aS5vcmcKd3d3Lm1pbmdwYW8uY29tCm1pbmdwYW9uZXdz
 | 
			
		||||
LmNvbQp8aHR0cDovL3d3dy5taW5ncGFvbnkuY29tLwptaW56aHV6aG9uZ2d1by5vcmcKfGh0dHA6
 | 
			
		||||
Ly93d3cubXBpbmV3cy5jb20vCm5ld3MubXNuLmNvbS50dwp3d3cubXNuLmNvbS50dwp8aHR0cDov
 | 
			
		||||
L214ZXhwcmVzcy50d2Jicy5vcmcvCnxodHRwOi8vd3d3Lm15Y291bGQuY29tLwp8aHR0cDovL3Zp
 | 
			
		||||
ZHMubXlzcGFjZS5jb20vCgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1OLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0KbmV0Y29sb255LmNvbQp8aHR0cDovL3d3dy5uZXdzdmluZS5jb20vCnxo
 | 
			
		||||
dHRwOi8vYmxvZy5uaWhpbG9naWMuZGsvCnxodHRwOi8vdGFpd2FueWVzLm5pbmcuY29tL2dyb3Vw
 | 
			
		||||
L3RhaXdhbnBvd2VyCm50ZHR2LmNvbQoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTy0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCm9tbml0YWxrLgovb24uY2MvKgoub24uY2MvCm15Lm9wZXJh
 | 
			
		||||
LmNvbQp8aHR0cDovL29zZGlyLmNvbS8KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVAtLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpwYndpa2kuY29tCnxodHRwOi8vbmV3cy5wY2hvbWUuY29t
 | 
			
		||||
LnR3LwoucGVhY2VmaXJlLm9yZwpwZWFjZWhhbGwuY29tLgpwaGlsbHkuY29tCnBzaXBob24uY2EK
 | 
			
		||||
fGh0dHA6Ly93d3cucHR0LmNjLwoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tUS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tCnxodHRwOi8vcGl4ZWwucXVhbnRzZXJ2ZS5jb20vCnxodHRwOi8v
 | 
			
		||||
cXVrZS5jbgp8aHR0cDovL3d3dy5xdWtlLmNuCnF4YmJzLm9yZy8KCiEtLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLVItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL3d3dy5yc2Yub3Jn
 | 
			
		||||
Lwp8aHR0cDovL3d3dy5yc2YtY2hpbmVzZS5vcmcvCgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS1TLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9zLnNjcmliZC5jb20vCm5ld3Mu
 | 
			
		||||
c2luYS5jb20udHcKbmV3cy5zaW5hLmNvbS5oawp8aHR0cDovL3Jzcy5zbGFzaGRvdC5vcmcvCi5z
 | 
			
		||||
b3VwLmlvLwp8aHR0cDovL3BvcnRpczIxLnNwYWNlcy5saXZlLmNvbS8KfGh0dHA6Ly93YW5neWk2
 | 
			
		||||
NC5zcGFjZXMubGl2ZS5jb20vCnxodHRwOi8vd2VueXVuY2hhby5zcGFjZXMubGl2ZS5jb20vCnVz
 | 
			
		||||
aW5mby5zdGF0ZS5nb3YKCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVQtLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLQp8aHR0cDovL3RhbnNpb2tzaW9rLmNvbS8KdGVjaG5vbG9naXplci5jb20K
 | 
			
		||||
fGh0dHA6Ly93d3cudGVjaG5vcmF0aS5jb20vCnxodHRwOi8vdGhlcGlyYXRlYmF5Lm9yZy8KY2hp
 | 
			
		||||
bmEuYmxvZ3MudGltZS5jb20KdGlhbmFubWVubW90aGVyLm9yZwp0bGRwLm9yZwp0b3Jwcm9qZWN0
 | 
			
		||||
Lm9yZwp8aHR0cDovL2NzYWkudHNpbmdodWEuZWR1LmNuLwp8aHR0cDovL3R0dGFuLmNvbS8KdHVt
 | 
			
		||||
YmxyLmNvbQouZ292LnR3Lwp0d2lzdGVybm93LmNvbQp0d2l0dGVyLmNvbS9hbW9paXN0CnR3aXR0
 | 
			
		||||
ZXIuY29tL2JpbGx6aG9uZwp0d2l0dGVyLmNvbS9rY29tZQp0d2l0dGVyLmNvbS9zaGl6aGFvCnR3
 | 
			
		||||
aXR0ZXIuY29tL1ZPVENoaW5lc2UKdHdpdHRlci5jb20vemVuZ2ppbnlhbgp0d2l0dGVyLmNvbS96
 | 
			
		||||
dW9sYQp8aHR0cDovL2FwaXdpa2kudHdpdHRlci5jb20vCnxodHRwOi8vYmxvZy50d2l0dGVyLmNv
 | 
			
		||||
bS8KfGh0dHA6Ly9kZXYudHdpdHRlci5jb20vCnxodHRwOi8vc3RhdHVzLnR3aXR0ZXIuY29tLwoK
 | 
			
		||||
IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnxo
 | 
			
		||||
dHRwOi8vYmxvZy51ZG4uY29tLwp8aHR0cDovL2NpdHkudWRuLmNvbS8KfGh0dHA6Ly9wYXBlci51
 | 
			
		||||
ZG4uY29tLwp1bmN5Y2xvcGVkaWEuCnxodHRwOi8vdW5pZm91bmRyeS5jb20vCnxodHRwOi8vd3d3
 | 
			
		||||
LnVua25vd25zcGFjZS5vcmcvCnxodHRwOi8vd3d3LnVybC5jb20udHcvCnxodHRwOi8vd3d3LmNh
 | 
			
		||||
ZmMudXNjb3VydHMuZ292LwpodHRwOi8vZWFydGhxdWFrZS51c2dzLmdvdi9lcWNlbnRlci9yZWNl
 | 
			
		||||
bnRlcXN3dy9NYXBzLzEwLzEwNV8zMC5waHAKLnV3YW50cy5jb20KCiEtLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLVYtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp2MmV4LmNvbQp8aHR0cDovL3d3
 | 
			
		||||
dy52aXN1d29yZHMuY29tLwp8aHR0cDovL3d3dy52b2FuZXdzLmNvbS8KCiEtLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLVctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp3d3cud2FuZ3J1b3dhbmcu
 | 
			
		||||
b3JnCi53ZWJzaG90cy5jb20vCndlbnh1ZWNpdHkuY29tLwp8aHR0cDovL3N0YXRpYy53ZXRwYWlu
 | 
			
		||||
dC5jb20vCnxodHRwOi8vd3d3LndldHBhaW50LmNvbS8KfGh0dHA6Ly93d3cud2V0cGFpbnRpbmpl
 | 
			
		||||
Y3RlZC5jb20vCnxodHRwOi8vd2lkZ2V0LndldHBhaW50c2Vydi51cy8KfGh0dHA6Ly9ldmNoay53
 | 
			
		||||
aWtpYS5jb20vCndpa2lkb3QuY29tCkBAc3RhdGljLndpa2lkb3QuY29tCi53aWtpbGVha3Mub3Jn
 | 
			
		||||
LwohLVdpa2lMZWFrcyBJUAoqLzg4LjgwLjEzLjE2MC8qCnNlY3VyZS53aWtpbWVkaWEub3JnCgoh
 | 
			
		||||
LS0tLS0tLS0tLS0tLXpoLldpa2lQZWRpYS0tLS0tCiEtLURhIEppIFl1YW4Kemgud2lraXBlZGlh
 | 
			
		||||
Lm9yZyolRTUlQTQlQTclRTclQjQlODAlRTUlODUlODMKIS0tRGEgSmkgWXVhbiBTaGkgQmFvCnpo
 | 
			
		||||
Lndpa2lwZWRpYS5vcmcqJUU1JUE0JUE3JUU3JUI0JTgwJUU1JTg1JTgzJUU2JTk5JTgyJUU1JUEw
 | 
			
		||||
JUIxCiEtLURhIEppIFl1YW4gU2hpIEJhbzogemgtY24Kemgud2lraXBlZGlhLm9yZyolRTUlQTQl
 | 
			
		||||
QTclRTclQkElQUElRTUlODUlODMlRTYlOTclQjYlRTYlOEElQTUKIS0tRGEgU2UgR3VvIEpJCnpo
 | 
			
		||||
Lndpa2lwZWRpYS5vcmcqJUU1JUE0JUE3JUU4JUI1JUE2JUU1JTlCJUJEJUU5JTk5JTg1CiEtLUUg
 | 
			
		||||
THVvIFNpCnpoLndpa2lwZWRpYS5vcmcqJUU0JUJGJTg0JUU3JUJEJTk3JUU2JTk2JUFGCiEtLUZh
 | 
			
		||||
IEx1biBHb25nCnpoLndpa2lwZWRpYS5vcmcqJUU2JUIzJTk1JUU4JUJDJUFBJUU1JThBJTlGCiEt
 | 
			
		||||
LUZhIEx1biBHb25nOiB6aC1oYW5zCnpoLndpa2lwZWRpYS5vcmcqJUU2JUIzJTk1JUU4JUJEJUFF
 | 
			
		||||
JUU1JThBJTlGCiEtLUZhbmcgSHVvIENoYW5nIENoZW5nCnpoLndpa2lwZWRpYS5vcmcqJUU5JTk4
 | 
			
		||||
JUIyJUU3JTgxJUFCJUU5JTk1JUJGJUU1JTlGJThFCiEtLUh1YSBZdWFuIFJ1YW4gSmlhbgp6aC53
 | 
			
		||||
aWtpcGVkaWEub3JnL3dpa2kvJUU4JThBJUIxJUU1JTlCJUFEJUU4JUJEJUFGJUU0JUJCJUI2CiEt
 | 
			
		||||
LUh1YSBZdWFuIFdhbmcKemgud2lraXBlZGlhLm9yZyolRTglOEElQjElRTUlOUIlQUQlRTclQkQl
 | 
			
		||||
OTEKIS0tTGl1IFNpIFNoaSBKaWFuCnpoLndpa2lwZWRpYS5vcmcqJUU1JTg1JUFEJUU1JTlCJTlC
 | 
			
		||||
JUU0JUJBJThCJUU0JUJCJUI2CiEtLU1laSBHdW8gWmhpIFlpbgp6aC53aWtpcGVkaWEub3JnKiVF
 | 
			
		||||
NyVCRSU4RSVFNSU5QiVCRCVFNCVCOSU4QiVFOSU5RiVCMwohLS1XZW4gQ2h1YW4gRGEgRGkgWmhl
 | 
			
		||||
bgp6aC53aWtpcGVkaWEub3JnKiVFNiVCMSVCNiVFNSVCNyU5RCVFNSVBNCVBNyVFNSU5QyVCMCVF
 | 
			
		||||
OSU5QyU4NwohLS1XdSBHdW8gSmllIEppIFpoZQp6aC53aWtpcGVkaWEub3JnKiVFNiU5NyVBMCVF
 | 
			
		||||
NSU5QiVCRCVFNyU5NSU4QyVFOCVBRSVCMCVFOCU4MCU4NQohLS1XdSBKaWUgV2FuZyBMdW8Kemgu
 | 
			
		||||
d2lraXBlZGlhLm9yZyolRTYlOTclQTAlRTclOTUlOEMlRTclQkQlOTElRTclQkIlOUMKIS0tWGkg
 | 
			
		||||
WmFuZyBMaXUgV2FuZyBaaGVuZyBGdQp6aC53aWtpcGVkaWEub3JnKiVFOCVBNSVCRiVFOCU5NyU4
 | 
			
		||||
RiVFNiVCNSU4MSVFNCVCQSVBMSVFNiU5NCVCRiVFNSVCQSU5QwohLS1aaG9uZyBHdW8gRGEgTHUg
 | 
			
		||||
RmVuZyBTdW8gV2VpIEpJIE1laSBUaSBTaGkgSmlhbgp6aC53aWtpcGVkaWEub3JnKiVFNCVCOCVB
 | 
			
		||||
RCVFNSU5QiVCRCVFNSVBNCVBNyVFOSU5OSU4NiVFNSVCMCU4MSVFOSU5NCU4MSVFNyVCQiVCNCVF
 | 
			
		||||
NSU5RiVCQSVFNSVBQSU5MiVFNCVCRCU5MyVFNCVCQSU4QiVFNCVCQiVCNgohLS1aaG9uZyBHdW8g
 | 
			
		||||
RGEgTHUgV2FuZyBMdW8gRmVuZyBTdW8Kemgud2lraXBlZGlhLm9yZyolRTQlQjglQUQlRTUlOUMl
 | 
			
		||||
OEIlRTUlQTQlQTclRTklOTklQjglRTclQjYlQjIlRTglQjclQUYlRTUlQjAlODElRTklOEUlOTYK
 | 
			
		||||
IS0tWmhvbmcgR3VvIFdhbmcgTHVvIFNoZW4gQ2hhCnpoLndpa2lwZWRpYS5vcmcqJUU0JUI4JUFE
 | 
			
		||||
JUU1JTlCJUJEJUU3JUJEJTkxJUU3JUJCJTlDJUU1JUFFJUExJUU2JTlGJUE1CiEtLVpob25nIEh1
 | 
			
		||||
YSBSZW4gTWluIEdvbmcgSGUgR3VvIFdhbmcgTHVvIFNoZW4gQ2hhCnpoLndpa2lwZWRpYS5vcmcq
 | 
			
		||||
JUU0JUI4JUFEJUU1JThEJThFJUU0JUJBJUJBJUU2JUIwJTkxJUU1JTg1JUIxJUU1JTkyJThDJUU1
 | 
			
		||||
JTlCJUJEJUU3JUJEJTkxJUU3JUJCJTlDJUU1JUFFJUExJUU2JTlGJUE1CiEtLVppIFlvdSBNZW4K
 | 
			
		||||
emgud2lraXBlZGlhLm9yZyolRTglODclQUElRTclOTQlQjElRTklOTclQTgKIS0tWmkgWW91IFlh
 | 
			
		||||
IFpob3UKemgud2lraXBlZGlhLm9yZyolRTglODclQUElRTclOTQlQjElRTQlQkElOUElRTYlQjQl
 | 
			
		||||
QjIKIS0tWmkgWW91IFlhIFpob3UgRGlhbiBUYWk6IHpoLWhhbnMKemgud2lraXBlZGlhLm9yZyol
 | 
			
		||||
RTglODclQUElRTclOTQlQjElRTQlQkElOUElRTYlQjQlQjIlRTclOTQlQjUlRTUlOEYlQjAKCi53
 | 
			
		||||
b3JkcHJlc3MuY29tCkBAaHR0cDovL3Muc3RhdHMud29yZHByZXNzLmNvbS8KQEBodHRwOi8vczEu
 | 
			
		||||
d29yZHByZXNzLmNvbS8KQEBodHRwOi8vc3RhdHMud29yZHByZXNzLmNvbS8KQEBodHRwOi8vd3d3
 | 
			
		||||
LndvcmRwcmVzcy5jb20KLnd1amllLm5ldAoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tWC0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnxodHRwOi8vd3d3LnhhbmdhLmNvbS8KfGh0dHA6Ly93
 | 
			
		||||
d3cueGluaHVhbmV0Lm9yZy8KfGh0dHA6Ly9ibG9nLnh1aXRlLm5ldC8KCiEtLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLVktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL2Jsb2cueWFt
 | 
			
		||||
LmNvbS8KbmV3cy55YW0uY29tCnxodHRwOi8vd3d3LnlvdXBhaS5vcmcvCnxodHRwOi8vd3d3Lnlv
 | 
			
		||||
dXItZnJlZWRvbS5uZXQvCnxodHRwczovL3d3dy55b3VyLWZyZWVkb20ubmV0Lwp5b3V0dWJlLmNv
 | 
			
		||||
bQpAQHlvdXR1YmUuY29tL2dldF92aWRlbwp5dGh0Lm5ldC8KCiEtLS0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLVotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL2x1bnRhbi56YW9iYW8u
 | 
			
		||||
Y29tLwouemVuZ2ppbnlhbi5vcmcKemVuZ2ppbnlhbi5zcGFjZXMubGl2ZS5jb20KenVvbGEuY29t
 | 
			
		||||
CgohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PdGhlci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
 | 
			
		||||
IS0tZG9uZyB0YWkgd2FuZwolRTUlOEElQTglRTYlODAlODElRTclQkQlOTEKZmFsdW5kYWZhCiEt
 | 
			
		||||
ZmEgbHVuIGRhIGZhCiVFNiVCMyU5NSVFOCVCRCVBRSVFNSVBNCVBNyVFNiVCMyU5NQohLS1MaXUg
 | 
			
		||||
WGlhbyBCbwolRTUlODglOTglRTYlOTklOTMlRTYlQjMlQTIKc2VhcmNoP3E9Y2FjaGUKc2VhcmNo
 | 
			
		||||
P3E9c2FmZXdlYgpVbHRyYXJlYWNoCgoKCiEtLS0tLS1VblNvcnRlZC0tLS0tLS0tLS0tLS0tLS0t
 | 
			
		||||
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp8aHR0cDovL2Rsc3RhdHVzYmFyLnByb2JvYXJkczQz
 | 
			
		||||
LmNvbS8KfGh0dHA6Ly93d3cud3JldGNoLmNjLwp8aHR0cDovL21hb215Lm1vdGltZS5jb20vCnxo
 | 
			
		||||
dHRwOi8vY2guc2h2b29uZy5jb20vCnxodHRwOi8vd3d3LmxhbmNza3kuY29tLwp8aHR0cDovL3d3
 | 
			
		||||
dy5sZW5pbmxlZS5jbi8KfGh0dHA6Ly93d3cuYm94Lm5ldC9zaGFyZWQvcDF0MG5meHpyZAp8aHR0
 | 
			
		||||
cDovL3d3dy5yZmkuZnIvYWN0dWNuL3BhZ2VzLzAwMS9ob21lY2hpbm9pcy5hc3AKfGh0dHA6Ly93
 | 
			
		||||
d3cueXp6ay5jb20vCnxodHRwOi8vd3d3LndlZWttYWcuaW5mby8KYmVuZGlrZW4ubmV0Ci5iYWRv
 | 
			
		||||
bmdvLmNvbS8KLmVjc3RhcnQuY29tLwp8aHR0cDovL2JzaWVnZWwuYXRoLmN4Lwp8aHR0cDovL3d3
 | 
			
		||||
dy50eWNvb2wuY29tLwp3d3cubXNndWFuY2hhLmNvbQp8aHR0cDovL3d3dy5tZWV0dXAuY29tLwp8
 | 
			
		||||
aHR0cDovL3d3dy5tdWx0aXBseS5jb20vCnxodHRwOi8vdHJ1dmVvLmNvbS8KfGh0dHA6Ly9mdW5w
 | 
			
		||||
LmNvbS8KfGh0dHA6Ly93d3cub3hmYW0ub3JnLmhrLwp8aHR0cDovL3d3dy5zYWx2YXRpb24ub3Jn
 | 
			
		||||
LmhrLwp8aHR0cDovL3d3dy50YWNlbS5vcmcvCi5waXhuZXQubmV0Lwp8aHR0cDovL215c2luYWJs
 | 
			
		||||
b2cuY29tLwp8aHR0cDovL3d3dy5rd29uZ3dhaC5jb20ubXkvCnxodHRwOi8vd3d3LmRhaWx5bW90
 | 
			
		||||
aW9uLmNvbS8KfGh0dHA6Ly9vcmllbnRhbGRhaWx5Lm9uLmNjLwp8aHR0cDovL25ld3MuZnR2LmNv
 | 
			
		||||
bS50dy8KfGh0dHA6Ly93d3cubWl0YmJzLmNvbS8KfGh0dHA6Ly93d3cueHlzLm9yZy8KZ2FyZGVu
 | 
			
		||||
bmV0d29ya3MuY29tCnNlY3JldGNoaW5hLmNvbQpkb25ndGFpd2FuZy5jb20Kc291bmRvZmhvcGUu
 | 
			
		||||
b3JnCmJvbGluLm5ldGZpcm1zLmNvbQp8aHR0cDovL3d3dy5yZmEub3JnLwplcG9jaHRpbWVzLmNv
 | 
			
		||||
bS8KZGFqaXl1YW4uY29tLwpjb21lZnJvbWNoaW5hLmNvbQpnb3BldGl0aW9uLmNvbQpjcmVhZGVy
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										99
									
								
								sendGFWList.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										99
									
								
								sendGFWList.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,99 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#
 | 
			
		||||
# A simple script help to maintain AutoProxy gfwList easily.
 | 
			
		||||
#
 | 
			
		||||
# Function:
 | 
			
		||||
#   Update local svn repository;
 | 
			
		||||
#   Commit decoded changes(by others in your team) to local git repository
 | 
			
		||||
#           with decoded message and authors name;
 | 
			
		||||
#   Update "Last Modified" time;
 | 
			
		||||
#   Update "Checksum";
 | 
			
		||||
#   Commit your changes to local git repository;
 | 
			
		||||
#   Commit your encoded changes to remote svn repository with encoded log.
 | 
			
		||||
# Usage:
 | 
			
		||||
#   Initialize:
 | 
			
		||||
#     $svn checkout https://autoproxy-gfwlist.googlecode.com/svn/trunk/ gfwList --username your-google-user-name
 | 
			
		||||
#     $cd gfwList
 | 
			
		||||
#     $git init
 | 
			
		||||
#     $base64 gfwlist.txt > list.txt
 | 
			
		||||
#     $git add list.txt
 | 
			
		||||
#     $git commit -a -m "init"
 | 
			
		||||
#   Normal Usage:
 | 
			
		||||
#     edit list.txt as usual;
 | 
			
		||||
#     $./synGfwList.sh "say something about this edit"
 | 
			
		||||
# Note:
 | 
			
		||||
#   1: You can use "git" to show, diff, log...what's you want;
 | 
			
		||||
#   2: "gfwlist.txt" is a fake file, do NOT commit "list.txt" to svn server;
 | 
			
		||||
#   3: Do NOT use any unicode character in the list, there is a known bug.
 | 
			
		||||
###############################################################################
 | 
			
		||||
 | 
			
		||||
# dependence
 | 
			
		||||
for cmd in sed date base64 gawk svn git
 | 
			
		||||
do
 | 
			
		||||
	which $cmd &> /dev/null;
 | 
			
		||||
	if [ $? -ne 0 ]; then
 | 
			
		||||
		echo "Depends on $cmd, please install it first.";
 | 
			
		||||
		exit 1;
 | 
			
		||||
	fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# get current revision number
 | 
			
		||||
oriLang=$LANG; export LANG="en_US";
 | 
			
		||||
curRevNum=$( svn info | gawk '/^Revision:/ { print $2 }' );
 | 
			
		||||
export LANG=$oriLang;
 | 
			
		||||
 | 
			
		||||
# save local modification
 | 
			
		||||
git diff > temp.patch &&
 | 
			
		||||
 | 
			
		||||
svn update &&
 | 
			
		||||
 | 
			
		||||
# get formated author and log information
 | 
			
		||||
log=$(svn log -r $curRevNum:HEAD) &&
 | 
			
		||||
log=$(echo $log | gawk -v RS='------------------------------------------------------------------------'\
 | 
			
		||||
  'NR > 3 { if (NF > 10) printf "%s:%s;", $3, $NF; }' ) &&
 | 
			
		||||
 | 
			
		||||
# convert from base64
 | 
			
		||||
i=0 &&
 | 
			
		||||
convertedLog="" &&
 | 
			
		||||
while [ "$log" != "" ]
 | 
			
		||||
do
 | 
			
		||||
  if (( $i%2 == 0 )); then # author
 | 
			
		||||
    temp=${log%%:*};
 | 
			
		||||
    convertedLog+=$temp;
 | 
			
		||||
    convertedLog+=":\"";
 | 
			
		||||
    log=${log#*:};
 | 
			
		||||
  else                # log, decode it
 | 
			
		||||
    temp=$( echo ${log%%;*} | base64 -d);
 | 
			
		||||
    convertedLog+=$temp;
 | 
			
		||||
    convertedLog+="\"; ";
 | 
			
		||||
    log=${log#*;};
 | 
			
		||||
  fi
 | 
			
		||||
  ((i++));
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# replace last ";" symbol to "."
 | 
			
		||||
convertedLog=$( echo $convertedLog | sed 's/;$/\./' ) &&
 | 
			
		||||
 | 
			
		||||
if [ "$convertedLog" != "" ]; then
 | 
			
		||||
  # modified by others, commit to local repository.
 | 
			
		||||
  # log format: author1:"message1"; author2:"message2"...
 | 
			
		||||
  base64 -d gfwlist.txt > list.txt &&
 | 
			
		||||
  git commit -a -m "$convertedLog" &&
 | 
			
		||||
 | 
			
		||||
  # apply local modification
 | 
			
		||||
  git apply temp.patch;
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# update date and checksum
 | 
			
		||||
sed -i s/"Last Modified:.*$"/"Last Modified:  $(date -R -r list.txt)"/ list.txt &&
 | 
			
		||||
./addChecksum.pl list.txt &&
 | 
			
		||||
 | 
			
		||||
# save self change to git
 | 
			
		||||
git commit -a -m "$*" &&
 | 
			
		||||
 | 
			
		||||
# commit to remote svn server
 | 
			
		||||
base64 list.txt > gfwlist.txt &&
 | 
			
		||||
svn ci -m $( echo "$*" | base64 ) &&
 | 
			
		||||
 | 
			
		||||
rm temp.patch;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user