MESSAGE
DATE | 2017-02-24 |
FROM | Ruben Safir
|
SUBJECT | Re: [Learn] decision making tree for a euler walk
|
From learn-bounces-at-nylxs.com Fri Feb 24 11:22:36 2017 Return-Path: X-Original-To: archive-at-mrbrklyn.com Delivered-To: archive-at-mrbrklyn.com Received: from www.mrbrklyn.com (www.mrbrklyn.com [96.57.23.82]) by mrbrklyn.com (Postfix) with ESMTP id DFF04161315; Fri, 24 Feb 2017 11:22:35 -0500 (EST) X-Original-To: learn-at-nylxs.com Delivered-To: learn-at-nylxs.com Received: from [10.0.0.62] (flatbush.mrbrklyn.com [10.0.0.62]) by mrbrklyn.com (Postfix) with ESMTP id 9BA68161315; Fri, 24 Feb 2017 11:20:54 -0500 (EST) To: Christopher League , "learn-at-nylxs.com" References: <319ecec7-f60a-a905-c6a4-9749c89b9404-at-mrbrklyn.com> <87bmtrzost.fsf-at-contrapunctus.net> From: Ruben Safir Message-ID: <4838c68f-2f58-7c6f-3b01-2e5b74cad1e2-at-mrbrklyn.com> Date: Fri, 24 Feb 2017 11:20:54 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <87bmtrzost.fsf-at-contrapunctus.net> Content-Type: multipart/mixed; boundary="------------5AA4C3CE234FA216655AEA23" X-Mailman-Approved-At: Fri, 24 Feb 2017 11:22:32 -0500 Subject: Re: [Learn] decision making tree for a euler walk X-BeenThere: learn-at-nylxs.com X-Mailman-Version: 2.1.17 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: learn-bounces-at-nylxs.com Sender: "Learn"
This is a multi-part message in MIME format. --------------5AA4C3CE234FA216655AEA23 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit
On 02/24/2017 08:44 AM, Christopher League wrote: > > Send a pic of the graph you were using? Might have a few minutes to try > something today. > > CL >
I sent it but here it is again. It is a minor tweak at this point, but I'm just beat.
> Ruben Safir writes: > >> I'm just not quiet solving this. I think it walked the tree correctly >> but my tunnel count is a wee bit off. >> >> >> -- >> So many immigrant groups have swept through our town >> that Brooklyn, like Atlantis, reaches mythological >> proportions in the mind of the world - RI Safir 1998 >> http://www.mrbrklyn.com >> >> DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002 >> http://www.nylxs.com - Leadership Development in Free Software >> http://www2.mrbrklyn.com/resources - Unpublished Archive >> http://www.coinhangout.com - coins! >> http://www.brooklyn-living.com >> >> Being so tracked is for FARM ANIMALS and and extermination camps, >> but incompatible with living as a free human being. -RI Safir 2013 >> Island A 5 >> Island B 4 >> Island C 2 >> Island D 1 >> Island E 4 >> Island F 2 >> Island G 2 >> Found odd number 1 >> Found odd number 2 >> Is it walkable ==> 1 >> TOP Node =>Island A >> Starting Node==>Island A >> Pushing =>Tunnel A >> Pushing =>Tunnel F >> Pushing =>Tunnel D >> Pushing =>Tunnel G >> Pushing =>Tunnel C >> Traveling Path==>Tunnel C >> Current Tunnel Count is==>1 >> Starting Node==>Island E >> Pushing =>Tunnel B >> Pushing =>Tunnel H >> Pushing =>Tunnel I >> Traveling Path==>Tunnel I >> Current Tunnel Count is==>2 >> Starting Node==>Island C >> Pushing =>Tunnel J >> Traveling Path==>Tunnel J >> Current Tunnel Count is==>3 >> Starting Node==>Island D >> Size of Attached is =>0 Tunnel Count is =>3 >> Out of while loop : Size of Attached is =>0 For Node Island D >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island C >> RETURNED ** >> Traveling Path==>Tunnel H >> Current Tunnel Count is==>2 >> Starting Node==>Island G >> Pushing =>Tunnel G >> Traveling Path==>Tunnel G >> Current Tunnel Count is==>3 >> Starting Node==>Island A >> Pushing =>Tunnel A >> Pushing =>Tunnel F >> Pushing =>Tunnel D >> Traveling Path==>Tunnel D >> Current Tunnel Count is==>4 >> Starting Node==>Island F >> Pushing =>Tunnel E >> Traveling Path==>Tunnel E >> Current Tunnel Count is==>5 >> Starting Node==>Island B >> Pushing =>Tunnel A >> Pushing =>Tunnel F >> Pushing =>Tunnel B >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>6 >> Starting Node==>Island E >> Pushing =>Tunnel I >> Traveling Path==>Tunnel I >> Current Tunnel Count is==>7 >> Starting Node==>Island C >> Pushing =>Tunnel J >> Traveling Path==>Tunnel J >> Current Tunnel Count is==>8 >> Starting Node==>Island D >> Size of Attached is =>0 Tunnel Count is =>8 >> Out of while loop : Size of Attached is =>0 For Node Island D >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island C >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island E >> RETURNED ** >> Traveling Path==>Tunnel F >> Current Tunnel Count is==>6 >> Starting Node==>Island A >> Pushing =>Tunnel A >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>7 >> Starting Node==>Island B >> Pushing =>Tunnel B >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>8 >> Starting Node==>Island E >> Pushing =>Tunnel I >> Traveling Path==>Tunnel I >> Current Tunnel Count is==>9 >> Starting Node==>Island C >> Pushing =>Tunnel J >> Traveling Path==>Tunnel J >> Current Tunnel Count is==>10 >> Starting Node==>Island D >> Size of Attached is =>0 Tunnel Count is =>10 >> ***Returned TRUE*** >> Size of Attached is =>0 >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island C >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island E >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>7 >> Starting Node==>Island A >> Pushing =>Tunnel F >> Traveling Path==>Tunnel F >> Current Tunnel Count is==>8 >> Starting Node==>Island B >> Pushing =>Tunnel B >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>9 >> Starting Node==>Island E >> Pushing =>Tunnel I >> Traveling Path==>Tunnel I >> Current Tunnel Count is==>10 >> Starting Node==>Island C >> Size of Attached is =>0 Tunnel Count is =>10 >> ***Returned TRUE*** >> Size of Attached is =>0 >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island E >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island F >> RETURNED ** >> Traveling Path==>Tunnel F >> Current Tunnel Count is==>6 >> Starting Node==>Island B >> Pushing =>Tunnel A >> Pushing =>Tunnel E >> Pushing =>Tunnel B >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>7 >> Starting Node==>Island E >> Size of Attached is =>0 Tunnel Count is =>7 >> Out of while loop : Size of Attached is =>0 For Node Island E >> RETURNED ** >> Traveling Path==>Tunnel E >> Current Tunnel Count is==>7 >> Starting Node==>Island F >> Pushing =>Tunnel D >> Traveling Path==>Tunnel D >> Current Tunnel Count is==>8 >> Starting Node==>Island A >> Pushing =>Tunnel A >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>9 >> Starting Node==>Island B >> Pushing =>Tunnel B >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>10 >> Starting Node==>Island E >> Size of Attached is =>0 Tunnel Count is =>10 >> ***Returned TRUE*** >> Size of Attached is =>0 >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island F >> RETURNED ** >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>8 >> Starting Node==>Island A >> Pushing =>Tunnel D >> Traveling Path==>Tunnel D >> Current Tunnel Count is==>9 >> Starting Node==>Island F >> Pushing =>Tunnel E >> Traveling Path==>Tunnel E >> Current Tunnel Count is==>10 >> Starting Node==>Island B >> Size of Attached is =>0 Tunnel Count is =>10 >> ***Returned TRUE*** >> Size of Attached is =>0 >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island F >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>8 >> Starting Node==>Island B >> Pushing =>Tunnel F >> Traveling Path==>Tunnel F >> Current Tunnel Count is==>9 >> Starting Node==>Island A >> Pushing =>Tunnel D >> Traveling Path==>Tunnel D >> Current Tunnel Count is==>10 >> Starting Node==>Island F >> Size of Attached is =>0 Tunnel Count is =>10 >> ***Returned TRUE*** >> Size of Attached is =>0 >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island G >> RETURNED ** >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>7 >> Starting Node==>Island B >> Pushing =>Tunnel A >> Pushing =>Tunnel F >> Traveling Path==>Tunnel F >> Current Tunnel Count is==>8 >> Starting Node==>Island A >> Pushing =>Tunnel A >> Pushing =>Tunnel G >> Traveling Path==>Tunnel G >> Current Tunnel Count is==>9 >> Starting Node==>Island G >> Pushing =>Tunnel H >> Traveling Path==>Tunnel H >> Current Tunnel Count is==>10 >> Starting Node==>Island E >> Size of Attached is =>0 Tunnel Count is =>10 >> ***Returned TRUE*** >> Size of Attached is =>0 >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island G >> RETURNED ** >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>10 >> Starting Node==>Island B >> Size of Attached is =>0 Tunnel Count is =>10 >> ***Returned TRUE*** >> Size of Attached is =>0 >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>10 >> Starting Node==>Island A >> Pushing =>Tunnel F >> Pushing =>Tunnel G >> Traveling Path==>Tunnel G >> Current Tunnel Count is==>11 >> Starting Node==>Island G >> Size of Attached is =>0 Tunnel Count is =>11 >> Out of while loop : Size of Attached is =>0 For Node Island G >> RETURNED ** >> Traveling Path==>Tunnel F >> Current Tunnel Count is==>11 >> Starting Node==>Island B >> Size of Attached is =>0 Tunnel Count is =>11 >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island E >> RETURNED ** >> Traveling Path==>Tunnel G >> Current Tunnel Count is==>8 >> Starting Node==>Island G >> Size of Attached is =>0 Tunnel Count is =>8 >> Out of while loop : Size of Attached is =>0 For Node Island G >> RETURNED ** >> Traveling Path==>Tunnel D >> Current Tunnel Count is==>8 >> Starting Node==>Island F >> Size of Attached is =>0 Tunnel Count is =>8 >> Out of while loop : Size of Attached is =>0 For Node Island F >> RETURNED ** >> Traveling Path==>Tunnel F >> Current Tunnel Count is==>8 >> Starting Node==>Island B >> Pushing =>Tunnel A >> Pushing =>Tunnel B >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>9 >> Starting Node==>Island E >> Pushing =>Tunnel C >> Traveling Path==>Tunnel C >> Current Tunnel Count is==>10 >> Starting Node==>Island A >> Pushing =>Tunnel A >> Pushing =>Tunnel D >> Pushing =>Tunnel G >> Traveling Path==>Tunnel G >> Current Tunnel Count is==>11 >> Starting Node==>Island G >> Size of Attached is =>0 Tunnel Count is =>11 >> Out of while loop : Size of Attached is =>0 For Node Island G >> RETURNED ** >> Traveling Path==>Tunnel D >> Current Tunnel Count is==>11 >> Starting Node==>Island F >> Size of Attached is =>0 Tunnel Count is =>11 >> Out of while loop : Size of Attached is =>0 For Node Island F >> RETURNED ** >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>11 >> Starting Node==>Island B >> Size of Attached is =>0 Tunnel Count is =>11 >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island E >> RETURNED ** >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>9 >> Starting Node==>Island A >> Pushing =>Tunnel D >> Pushing =>Tunnel G >> Pushing =>Tunnel C >> Traveling Path==>Tunnel C >> Current Tunnel Count is==>10 >> Starting Node==>Island E >> Pushing =>Tunnel B >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>11 >> Starting Node==>Island B >> Size of Attached is =>0 Tunnel Count is =>11 >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island E >> RETURNED ** >> Traveling Path==>Tunnel G >> Current Tunnel Count is==>10 >> Starting Node==>Island G >> Size of Attached is =>0 Tunnel Count is =>10 >> ***Returned TRUE*** >> Size of Attached is =>1 >> RETURNED ** >> Traveling Path==>Tunnel D >> Current Tunnel Count is==>11 >> Starting Node==>Island F >> Size of Attached is =>0 Tunnel Count is =>11 >> Out of while loop : Size of Attached is =>0 For Node Island F >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Traveling Path==>Tunnel A >> Current Tunnel Count is==>9 >> Starting Node==>Island B >> Pushing =>Tunnel F >> Pushing =>Tunnel B >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>10 >> Starting Node==>Island E >> Pushing =>Tunnel C >> Traveling Path==>Tunnel C >> Current Tunnel Count is==>11 >> Starting Node==>Island A >> Pushing =>Tunnel F >> Pushing =>Tunnel D >> Traveling Path==>Tunnel D >> Current Tunnel Count is==>12 >> Starting Node==>Island F >> Size of Attached is =>0 Tunnel Count is =>12 >> Out of while loop : Size of Attached is =>0 For Node Island F >> RETURNED ** >> Traveling Path==>Tunnel F >> Current Tunnel Count is==>12 >> Starting Node==>Island B >> Size of Attached is =>0 Tunnel Count is =>12 >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island E >> RETURNED ** >> Traveling Path==>Tunnel F >> Current Tunnel Count is==>10 >> Starting Node==>Island A >> Pushing =>Tunnel D >> Pushing =>Tunnel C >> Traveling Path==>Tunnel C >> Current Tunnel Count is==>11 >> Starting Node==>Island E >> Pushing =>Tunnel B >> Traveling Path==>Tunnel B >> Current Tunnel Count is==>12 >> Starting Node==>Island B >> Size of Attached is =>0 Tunnel Count is =>12 >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island E >> RETURNED ** >> Traveling Path==>Tunnel D >> Current Tunnel Count is==>11 >> Starting Node==>Island F >> Size of Attached is =>0 Tunnel Count is =>11 >> Out of while loop : Size of Attached is =>0 For Node Island F >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island B >> RETURNED ** >> Out of while loop : Size of Attached is =>0 For Node Island A >> /* >> * ===================================================================================== >> * >> * Filename: euler.cpp >> * >> * Description: Demonstration Program for Eulers Konisgburg problem >> * using a path decision tree >> * >> * Version: 1.0 >> * Created: 02/12/2017 10:21:23 AM >> * Revision: none >> * Compiler: gcc >> * >> * Author: Ruben Safir (mn), ruben-at-mrbrklyn.com >> * Company: NYLXS Inc >> * >> * ===================================================================================== >> */ >> >> #include "nodes.h" >> #include >> #include >> /*Create all the nodes */ >> /* data can be anything useful to describe a node. In this case >> * it will be an int to represent degree (or number of connections */ >> >> tree::Node A {"Island A", 0}; >> tree::Node B {"Island B", 0}; >> tree::Node C {"Island C", 0}; >> tree::Node D {"Island D", 0}; >> tree::Node E {"Island E", 0}; >> tree::Node F {"Island F", 0}; >> tree::Node G {"Island G", 0}; >> >> tree::Node * city[] = {&A, &B, &C, &D, &E, &F, &G}; >> /* For Edges, we use an open/close integer. zero is open. Once it is crossed >> * we can close it setting it to one */ >> >> tree::Edge a {"Tunnel A", 0}; >> tree::Edge b {"Tunnel B", 0}; >> tree::Edge c {"Tunnel C", 0}; >> tree::Edge d {"Tunnel D", 0}; >> tree::Edge e {"Tunnel E", 0}; >> tree::Edge f {"Tunnel F", 0}; >> tree::Edge g {"Tunnel G", 0}; >> tree::Edge h {"Tunnel H", 0}; >> tree::Edge i {"Tunnel I", 0}; >> tree::Edge j {"Tunnel J", 0}; >> >> /* Creating all the predicates */ >> tree::Predicate crossing_1 {A,B,a}; >> tree::Predicate crossing_5 {B,E,b}; >> tree::Predicate crossing_10 {A,E,c}; >> tree::Predicate crossing_4 {A,F,d}; >> tree::Predicate crossing_3 {B,F,e}; >> tree::Predicate crossing_2 {A,B,f}; >> tree::Predicate crossing_6 {A,G,g}; >> tree::Predicate crossing_7 {E,G,h}; >> tree::Predicate crossing_8 {E,C,i}; >> tree::Predicate crossing_9 {C,D,j}; >> tree::Predicate * crossings[] = {&crossing_1 ,&crossing_2 ,&crossing_3 ,&crossing_4 ,&crossing_5 ,&crossing_6 ,&crossing_7 ,&crossing_8 ,&crossing_9 ,&crossing_10}; >> >> int tunnel_count = 0; >> >> int is_euler(tree::Node ** city ) >> { >> int odd = 0; >> int size = 7; >> for(int i=0;i>> // std::cout << "__LINE__ " << __LINE__ << std::endl; >> if( (city[i]->data % 2) == 1 ) >> { >> odd++; >> std::cout << "Found odd number " << odd << std::endl; >> } >> } >> if(odd == 0 || odd == 2){ >> return true; >> } >> return false; >> } >> >> bool testnode(tree::Node* in, int isodd) >> { >> //std::vector *> attached; >> std::stack *> attached; >> if(isodd == 1) >> { >> //start on the first crossing and find matching nodes from our selected odd node_path >> std::cout << "Starting Node==>" << in->get_name() << std::endl; >> >> for(int index = 0; index< 10; index++) >> { >> //find all the attached nodes and crossings >> if( (crossings[index]->search_for_matching_node(in) ) && (crossings[index]->c.data == 0) ) >> { >> std::cout << "\tPushing =>" << crossings[index]->c.get_name() << std::endl; >> attached.push(crossings[index]); >> } >> } >> //have we reached an end? >> if(attached.size() == 0) >> { >> std::cout << "\tSize of Attached is =>" << attached.size() << " "; >> std::cout << "\tTunnel Count is =>" << tunnel_count << std::endl; >> if(tunnel_count == 10) >> { >> return true; >> } >> >> } >> //Search the attached crossings for a working path >> tree::Predicate * tmp; >> while(! attached.empty() ) >> { >> //check all the paths >> tmp = attached.top(); >> std::cout << "\t\tTraveling Path==>" << tmp->c.get_name() << std::endl; >> attached.pop(); >> tunnel_count++; >> std::cout << "\t\tCurrent Tunnel Count is==>" << tunnel_count << std::endl; >> tmp->c.data = 1; >> //recursion >> if(testnode(tmp->next(in), isodd) ) >> { >> std::cout << "\t\t\t\t\t***Returned TRUE***" << std::endl; >> std::cout << "\t\t\t\t\tSize of Attached is =>" << attached.size() << std::endl; >> }else{ >> tmp->c.data = 0; >> tunnel_count--; >> } >> std::cout << "RETURNED **" << std::endl; >> } >> std::cout << "\tOut of while loop : Size of Attached is =>" << attached.size() << " "; >> std::cout << "For Node " << in->get_name() << std::endl; >> // std::cout << __LINE__ << std::endl; >> >> } >> >> return false; >> } >> >> int main(int argc, char * argv[]) >> { >> std::cout << A.get_name() << " " << A.data << std::endl; >> std::cout << B.get_name() << " " << B.data << std::endl; >> std::cout << C.get_name() << " " << C.data << std::endl; >> std::cout << D.get_name() << " " << D.data << std::endl; >> std::cout << E.get_name() << " " << E.data << std::endl; >> std::cout << F.get_name() << " " << F.data << std::endl; >> std::cout << G.get_name() << " " << G.data << std::endl; >> std::cout << "Is it walkable ==> " << is_euler(city) << std::endl; >> >> //Find an odd degree nodes >> int cntr = 0; >> int isodd =0; >> // tree::Node * cur; >> tree::Node * start; >> std::stack < tree::Node * > node_path; >> //store the attached crossings for future reference >> while( ( (city[cntr]->data % 2) == 0 ) && cntr < 7 ) >> { >> cntr++; >> } >> if(cntr == 7 ) >> { >> start = city[0]; >> }else{ >> start = city[cntr]; >> isodd = 1; >> } >> >> node_path.push(start); >> std::cout << "TOP Node =>" << node_path.top()->get_name() << std::endl; >> testnode(start, isodd); >> // while(node_path.size() > 0){ >> // cur = node_path.top(); >> // node_path.pop(); >> >> // start = cur; >> // int flag = 0; //is it a valid node? >> // for(unsigned int index = 0; index < attached.size(); index++) >> // { >> // std::cout << "\t\tREADING =>" << attached[index]->c.get_name() << std::endl; >> // if(attached[index]->c.data == 0){ >> // cur = attached[index]->next(start); >> // std::cout << "\t\tCurrent Node=>" << cur->get_name() << std::endl; >> // node_path.push(cur); >> // std::cout << "\t\tPUSHING TOP Node =>" << node_path.top()->get_name() << std::endl; >> // attached[index]->c.data = 1; >> // flag = 1; //yes it is a valid node_path >> // } >> // } >> // if(flag == 0) >> // { >> // std::cout << "***BACKING OUT***" << std::endl; >> // node_path.pop(); //back out of the path >> // std::cout << "TOP Node =>" << node_path.top()->get_name() << std::endl; >> // attached[attached.size() - 1]->c.data = 2;//2 is dirty >> // attached.pop_back(); >> // attached.pop_back(); >> // } >> // } >> >> >> return EXIT_SUCCESS; >> } >> /* >> * ===================================================================================== >> * >> * Filename: nodes.h >> * >> * Description: Basic Node for Euler Graph >> * >> * Version: 1.0 >> * Created: 02/11/2017 06:14:42 PM >> * Revision: none >> * Compiler: gcc >> * >> * Author: Ruben Safir (mn), ruben-at-mrbrklyn.com >> * Company: NYLXS Inc - LIU Thesis >> * >> * ===================================================================================== >> */ >> >> #ifndef NODES_H >> #define NODES_H >> #include >> #include >> #include >> namespace tree { >> >> /* >> * ===================================================================================== >> * Class: Node >> * Description: This class describes a single node and its data >> * ===================================================================================== >> */ >> template < class T > >> class Node >> { >> public: >> >> /* ==================== LIFECYCLE ======================================= */ >> Node (std::string n, T d): data{d}, name{n} { >> >> }; /* constructor */ >> >> /* ==================== ACCESSORS ======================================= */ >> std::string get_name()const{ >> return name; >> } >> >> bool operator==( const Node first) const{ >> if(first.get_name() == name) >> { >> return true; >> } >> return false; >> }; >> bool operator==(Node *first) const { >> if(first->get_name() == name) >> { >> return true; >> } >> return false; >> }; >> >> /* ==================== MUTATORS ======================================= */ >> /* ==================== OPERATORS ======================================= */ >> /* ==================== DATA MEMBERS ======================================= */ >> T data; >> protected: >> >> private: >> std::string name; >> >> }; /* ---------- end of template class Node ---------- */ >> >> /* >> * ===================================================================================== >> * Class: Edges >> * Description: Bridges - usually I wouldn't make edges but we are being consistant >> * with the Luger description of the problem. >> * ===================================================================================== >> */ >> template < class T > >> class Edge >> { >> public: >> >> /* ==================== LIFECYCLE ======================================= */ >> Edge (std::string n, T d): data{d}, name{n}{}; /* constructor */ >> >> /* ==================== ACCESSORS ======================================= */ >> std::string get_name(){ >> return name; >> } >> >> /* ==================== MUTATORS ======================================= */ >> >> /* ==================== OPERATORS ======================================= */ >> >> /* ==================== DATA MEMBERS ======================================= */ >> T data; >> protected: >> >> private: >> std::string name; >> >> }; /* ---------- end of template class Edges ---------- */ >> template< class node_type, class bridge_type> >> class Predicate{ >> public: >> Predicate(Node& in_a, Node& in_b, Edge& in_c) >> : a{in_a}, b{in_b}, c{in_c}{ >> a.data++; >> b.data++; >> }; >> Node& a; >> Node& b; >> Edge& c; >> >> //== is true if we have a single matching node >> bool operator==(const Predicate *first) const >> { >> if( (first->a == a) || (first->a == b)|| (first->b == a) >> ||(first->b == b) ) >> { >> return true; >> } >> return false; >> }; >> bool operator==(const Node * first) const >> { >> if( ( *first == a) || (*first == b)|| (*first == a) >> ||(*first == b) ) >> { >> return true; >> } >> return false; >> }; >> >> bool search_for_matching_node(const Node * first) const >> { >> if( (*first == a)|| (*first==b) || (*first == a) || (*first == b ) ) >> { >> return true; >> } >> return false; >> }; >> >> Node * next(const Node * first) >> { >> if(*first == a){ >> return &b; >> } >> return &a; >> } >> }; >> >> }//close of namespace tree >> >> #endif >> #include "nodes.h" >> #include >> >> XX:=gcc >> CXXFLAGS:=-Wall -ggdb -pg >> LDFLAGS:= -pg -pthread >> >> konigsburg: euler.o nodes.o >> $(CXX) $(CXXFLAGS) $(LDFLAGS) -o konisgburg.exe euler.o nodes.o >> >> euler: euler.cpp >> $(CXX) $(CXXFLAGS) $(LDFLAGS) -c euler.cpp >> >> nodes: nodes.cpp nodes.h >> $(CXX) $(CXXFLAGS) $(LDFLAGS) -c nodes.cpp >> >> include make.deps >> make.deps: *.cpp; ${CXX} ${CXXFLAGS} -M *.cpp >$-at- >
-- So many immigrant groups have swept through our town that Brooklyn, like Atlantis, reaches mythological proportions in the mind of the world - RI Safir 1998 http://www.mrbrklyn.com
DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002 http://www.nylxs.com - Leadership Development in Free Software http://www2.mrbrklyn.com/resources - Unpublished Archive http://www.coinhangout.com - coins! http://www.brooklyn-living.com
Being so tracked is for FARM ANIMALS and and extermination camps, but incompatible with living as a free human being. -RI Safir 2013
--------------5AA4C3CE234FA216655AEA23 Content-Type: application/x-dia-diagram; name="rubensberg.dia" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rubensberg.dia"
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRpYTpkaWFncmFtIHht bG5zOmRpYT0iaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvIj4KICA8ZGlh OmRpYWdyYW1kYXRhPgogICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYmFja2dyb3VuZCI+CiAg ICAgIDxkaWE6Y29sb3IgdmFsPSIjZmZmZmZmIi8+CiAgICA8L2RpYTphdHRyaWJ1dGU+CiAg ICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJwYWdlYnJlYWsiPgogICAgICA8ZGlhOmNvbG9yIHZh bD0iIzAwMDA5OSIvPgogICAgPC9kaWE6YXR0cmlidXRlPgogICAgPGRpYTphdHRyaWJ1dGUg bmFtZT0icGFwZXIiPgogICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJwYXBlciI+CiAgICAg ICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CiAgICAgICAgICA8ZGlhOnN0cmluZz4j TGV0dGVyIzwvZGlhOnN0cmluZz4KICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAg PGRpYTphdHRyaWJ1dGUgbmFtZT0idG1hcmdpbiI+CiAgICAgICAgICA8ZGlhOnJlYWwgdmFs PSIyLjUzOTk5OTk2MTg1MzAyNzMiLz4KICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAg ICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYm1hcmdpbiI+CiAgICAgICAgICA8ZGlhOnJlYWwg dmFsPSIyLjUzOTk5OTk2MTg1MzAyNzMiLz4KICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAg ICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibG1hcmdpbiI+CiAgICAgICAgICA8ZGlhOnJl YWwgdmFsPSIyLjUzOTk5OTk2MTg1MzAyNzMiLz4KICAgICAgICA8L2RpYTphdHRyaWJ1dGU+ CiAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0icm1hcmdpbiI+CiAgICAgICAgICA8ZGlh OnJlYWwgdmFsPSIyLjUzOTk5OTk2MTg1MzAyNzMiLz4KICAgICAgICA8L2RpYTphdHRyaWJ1 dGU+CiAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iaXNfcG9ydHJhaXQiPgogICAgICAg ICAgPGRpYTpib29sZWFuIHZhbD0idHJ1ZSIvPgogICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4K ICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJzY2FsaW5nIj4KICAgICAgICAgIDxkaWE6 cmVhbCB2YWw9IjEiLz4KICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgPGRpYTph dHRyaWJ1dGUgbmFtZT0iZml0dG8iPgogICAgICAgICAgPGRpYTpib29sZWFuIHZhbD0iZmFs c2UiLz4KICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDwvZGlhOmNvbXBvc2l0ZT4K ICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImdyaWQiPgog ICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJncmlkIj4KICAgICAgICA8ZGlhOmF0dHJpYnV0 ZSBuYW1lPSJ3aWR0aF94Ij4KICAgICAgICAgIDxkaWE6cmVhbCB2YWw9IjEiLz4KICAgICAg ICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0id2lkdGhf eSI+CiAgICAgICAgICA8ZGlhOnJlYWwgdmFsPSIxIi8+CiAgICAgICAgPC9kaWE6YXR0cmli dXRlPgogICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InZpc2libGVfeCI+CiAgICAgICAg ICA8ZGlhOmludCB2YWw9IjEiLz4KICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAg PGRpYTphdHRyaWJ1dGUgbmFtZT0idmlzaWJsZV95Ij4KICAgICAgICAgIDxkaWE6aW50IHZh bD0iMSIvPgogICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgICA8ZGlhOmNvbXBvc2l0 ZSB0eXBlPSJjb2xvciIvPgogICAgICA8L2RpYTpjb21wb3NpdGU+CiAgICA8L2RpYTphdHRy aWJ1dGU+CiAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJjb2xvciI+CiAgICAgIDxkaWE6Y29s b3IgdmFsPSIjZDhlNWU1Ii8+CiAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICA8ZGlhOmF0dHJp YnV0ZSBuYW1lPSJndWlkZXMiPgogICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJndWlkZXMi PgogICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImhndWlkZXMiLz4KICAgICAgICA8ZGlh OmF0dHJpYnV0ZSBuYW1lPSJ2Z3VpZGVzIi8+CiAgICAgIDwvZGlhOmNvbXBvc2l0ZT4KICAg IDwvZGlhOmF0dHJpYnV0ZT4KICA8L2RpYTpkaWFncmFtZGF0YT4KICA8ZGlhOmxheWVyIG5h bWU9IkJhY2tncm91bmQiIHZpc2libGU9InRydWUiIGFjdGl2ZT0idHJ1ZSI+CiAgICA8ZGlh Om9iamVjdCB0eXBlPSJVTUwgLSBOb2RlIiB2ZXJzaW9uPSIwIiBpZD0iTzAiPgogICAgICA8 ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfcG9zIj4KICAgICAgICA8ZGlhOnBvaW50IHZhbD0i Niw0Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFt ZT0ib2JqX2JiIj4KICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjUuOTUsMy40NTs4LjY1 LDUuODUiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBu YW1lPSJtZXRhIj4KICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJkaWN0Ii8+CiAgICAg IDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZWxlbV9jb3Ju ZXIiPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSI2LDQiLz4KICAgICAgPC9kaWE6YXR0cmli dXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbGVtX3dpZHRoIj4KICAgICAgICA8 ZGlhOnJlYWwgdmFsPSIyLjA5OTk5OTk5OTk5OTk5OTYiLz4KICAgICAgPC9kaWE6YXR0cmli dXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbGVtX2hlaWdodCI+CiAgICAgICAg PGRpYTpyZWFsIHZhbD0iMS44Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRp YTphdHRyaWJ1dGUgbmFtZT0ibGluZV9jb2xvdXIiPgogICAgICAgIDxkaWE6Y29sb3IgdmFs PSIjMDAwMDAwIi8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1 dGUgbmFtZT0iZmlsbF9jb2xvdXIiPgogICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjZmZmZmZm Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0i bmFtZSI+CiAgICAgICAgPGRpYTpjb21wb3NpdGUgdHlwZT0idGV4dCI+CiAgICAgICAgICA8 ZGlhOmF0dHJpYnV0ZSBuYW1lPSJzdHJpbmciPgogICAgICAgICAgICA8ZGlhOnN0cmluZz4j QSM8L2RpYTpzdHJpbmc+CiAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgICA8 ZGlhOmF0dHJpYnV0ZSBuYW1lPSJmb250Ij4KICAgICAgICAgICAgPGRpYTpmb250IGZhbWls eT0ic2FucyIgc3R5bGU9IjAiIG5hbWU9IkhlbHZldGljYSIvPgogICAgICAgICAgPC9kaWE6 YXR0cmlidXRlPgogICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iaGVpZ2h0Ij4KICAg ICAgICAgICAgPGRpYTpyZWFsIHZhbD0iMC44MDAwMDAwMDAwMDAwMDAwNCIvPgogICAgICAg ICAgPC9kaWE6YXR0cmlidXRlPgogICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0icG9z Ij4KICAgICAgICAgICAgPGRpYTpwb2ludCB2YWw9IjYuNSw1LjA5NSIvPgogICAgICAgICAg PC9kaWE6YXR0cmlidXRlPgogICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29sb3Ii PgogICAgICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICAgICAgPC9k aWE6YXR0cmlidXRlPgogICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYWxpZ25tZW50 Ij4KICAgICAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgogICAgICAgICAgPC9kaWE6YXR0 cmlidXRlPgogICAgICAgIDwvZGlhOmNvbXBvc2l0ZT4KICAgICAgPC9kaWE6YXR0cmlidXRl PgogICAgPC9kaWE6b2JqZWN0PgogICAgPGRpYTpvYmplY3QgdHlwZT0iVU1MIC0gTm9kZSIg dmVyc2lvbj0iMCIgaWQ9Ik8xIj4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3Bv cyI+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjE3LDQiLz4KICAgICAgPC9kaWE6YXR0cmli dXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgogICAgICAgIDxkaWE6 cmVjdGFuZ2xlIHZhbD0iMTYuOTUsMy40NTsxOC45OSw1Ljg1Ii8+CiAgICAgIDwvZGlhOmF0 dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibWV0YSI+CiAgICAgICAgPGRp YTpjb21wb3NpdGUgdHlwZT0iZGljdCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAg IDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1fY29ybmVyIj4KICAgICAgICA8ZGlhOnBvaW50 IHZhbD0iMTcsNCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmli dXRlIG5hbWU9ImVsZW1fd2lkdGgiPgogICAgICAgIDxkaWE6cmVhbCB2YWw9IjEuNDM5OTk5 OTk5OTk5OTk5OSIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmli dXRlIG5hbWU9ImVsZW1faGVpZ2h0Ij4KICAgICAgICA8ZGlhOnJlYWwgdmFsPSIxLjgiLz4K ICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5l X2NvbG91ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAgPC9k aWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJmaWxsX2NvbG91ciI+ CiAgICAgICAgPGRpYTpjb2xvciB2YWw9IiNmZmZmZmYiLz4KICAgICAgPC9kaWE6YXR0cmli dXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIj4KICAgICAgICA8ZGlhOmNv bXBvc2l0ZSB0eXBlPSJ0ZXh0Ij4KICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InN0 cmluZyI+CiAgICAgICAgICAgIDxkaWE6c3RyaW5nPiNCIzwvZGlhOnN0cmluZz4KICAgICAg ICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImZv bnQiPgogICAgICAgICAgICA8ZGlhOmZvbnQgZmFtaWx5PSJzYW5zIiBzdHlsZT0iMCIgbmFt ZT0iSGVsdmV0aWNhIi8+CiAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgICA8 ZGlhOmF0dHJpYnV0ZSBuYW1lPSJoZWlnaHQiPgogICAgICAgICAgICA8ZGlhOnJlYWwgdmFs PSIwLjgwMDAwMDAwMDAwMDAwMDA0Ii8+CiAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAg ICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJwb3MiPgogICAgICAgICAgICA8ZGlhOnBv aW50IHZhbD0iMTcuNSw1LjA5NSIvPgogICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAg ICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29sb3IiPgogICAgICAgICAgICA8ZGlhOmNv bG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICAg ICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYWxpZ25tZW50Ij4KICAgICAgICAgICAgPGRpYTpl bnVtIHZhbD0iMCIvPgogICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICAgIDwvZGlh OmNvbXBvc2l0ZT4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgPC9kaWE6b2JqZWN0Pgog ICAgPGRpYTpvYmplY3QgdHlwZT0iVU1MIC0gTm9kZSIgdmVyc2lvbj0iMCIgaWQ9Ik8yIj4K ICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CiAgICAgICAgPGRpYTpwb2lu dCB2YWw9IjEwLDE4Ljk1Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTph dHRyaWJ1dGUgbmFtZT0ib2JqX2JiIj4KICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9Ijku OTUsMTguNDsxMS45OTc1LDIwLjgiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8 ZGlhOmF0dHJpYnV0ZSBuYW1lPSJtZXRhIj4KICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBl PSJkaWN0Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUg bmFtZT0iZWxlbV9jb3JuZXIiPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMCwxOC45NSIv PgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVs ZW1fd2lkdGgiPgogICAgICAgIDxkaWE6cmVhbCB2YWw9IjEuNDQ3NSIvPgogICAgICA8L2Rp YTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1faGVpZ2h0Ij4K ICAgICAgICA8ZGlhOnJlYWwgdmFsPSIxLjgiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgog ICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX2NvbG91ciI+CiAgICAgICAgPGRpYTpj b2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlh OmF0dHJpYnV0ZSBuYW1lPSJmaWxsX2NvbG91ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9 IiNmZmZmZmYiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0 ZSBuYW1lPSJuYW1lIj4KICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJ0ZXh0Ij4KICAg ICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InN0cmluZyI+CiAgICAgICAgICAgIDxkaWE6 c3RyaW5nPiNDIzwvZGlhOnN0cmluZz4KICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAg ICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImZvbnQiPgogICAgICAgICAgICA8ZGlhOmZv bnQgZmFtaWx5PSJzYW5zIiBzdHlsZT0iMCIgbmFtZT0iSGVsdmV0aWNhIi8+CiAgICAgICAg ICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJoZWln aHQiPgogICAgICAgICAgICA8ZGlhOnJlYWwgdmFsPSIwLjgwMDAwMDAwMDAwMDAwMDA0Ii8+ CiAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBu YW1lPSJwb3MiPgogICAgICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMTAuNSwyMC4wNDUiLz4K ICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5h bWU9ImNvbG9yIj4KICAgICAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAg ICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9 ImFsaWdubWVudCI+CiAgICAgICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KICAgICAgICAg IDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgICA8L2RpYTpjb21wb3NpdGU+CiAgICAgIDwvZGlh OmF0dHJpYnV0ZT4KICAgIDwvZGlhOm9iamVjdD4KICAgIDxkaWE6b2JqZWN0IHR5cGU9IlVN TCAtIE5vZGUiIHZlcnNpb249IjAiIGlkPSJPMyI+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5h bWU9Im9ial9wb3MiPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSIyNS4xNSw0Ljc1Ii8+CiAg ICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX2Ji Ij4KICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjI1LjEsNC4yOzI3LjQsNi42Ii8+CiAg ICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibWV0YSI+ CiAgICAgICAgPGRpYTpjb21wb3NpdGUgdHlwZT0iZGljdCIvPgogICAgICA8L2RpYTphdHRy aWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1fY29ybmVyIj4KICAgICAg ICA8ZGlhOnBvaW50IHZhbD0iMjUuMTUsNC43NSIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+ CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1fd2lkdGgiPgogICAgICAgIDxkaWE6 cmVhbCB2YWw9IjEuNjk5OTk5OTk5OTk5OTkyMiIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+ CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1faGVpZ2h0Ij4KICAgICAgICA8ZGlh OnJlYWwgdmFsPSIxLjgiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0 dHJpYnV0ZSBuYW1lPSJsaW5lX2NvbG91ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMw MDAwMDAiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBu YW1lPSJmaWxsX2NvbG91ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9IiNmZmZmZmYiLz4K ICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJuYW1l Ij4KICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJ0ZXh0Ij4KICAgICAgICAgIDxkaWE6 YXR0cmlidXRlIG5hbWU9InN0cmluZyI+CiAgICAgICAgICAgIDxkaWE6c3RyaW5nPiNEIzwv ZGlhOnN0cmluZz4KICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgICAgIDxkaWE6 YXR0cmlidXRlIG5hbWU9ImZvbnQiPgogICAgICAgICAgICA8ZGlhOmZvbnQgZmFtaWx5PSJz YW5zIiBzdHlsZT0iMCIgbmFtZT0iSGVsdmV0aWNhIi8+CiAgICAgICAgICA8L2RpYTphdHRy aWJ1dGU+CiAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJoZWlnaHQiPgogICAgICAg ICAgICA8ZGlhOnJlYWwgdmFsPSIwLjgwMDAwMDAwMDAwMDAwMDA0Ii8+CiAgICAgICAgICA8 L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJwb3MiPgog ICAgICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMjUuNjUsNS44NDUiLz4KICAgICAgICAgIDwv ZGlhOmF0dHJpYnV0ZT4KICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImNvbG9yIj4K ICAgICAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAgICAgIDwvZGlh OmF0dHJpYnV0ZT4KICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImFsaWdubWVudCI+ CiAgICAgICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KICAgICAgICAgIDwvZGlhOmF0dHJp YnV0ZT4KICAgICAgICA8L2RpYTpjb21wb3NpdGU+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4K ICAgIDwvZGlhOm9iamVjdD4KICAgIDxkaWE6b2JqZWN0IHR5cGU9IlVNTCAtIE5vZGUiIHZl cnNpb249IjAiIGlkPSJPNCI+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3Mi PgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSI1Ljg1LDEyLjYiLz4KICAgICAgPC9kaWE6YXR0 cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgogICAgICAgIDxk aWE6cmVjdGFuZ2xlIHZhbD0iNS44LDEyLjA1OzcuODA1LDE0LjQ1Ii8+CiAgICAgIDwvZGlh OmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibWV0YSI+CiAgICAgICAg PGRpYTpjb21wb3NpdGUgdHlwZT0iZGljdCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAg ICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1fY29ybmVyIj4KICAgICAgICA8ZGlhOnBv aW50IHZhbD0iNS44NSwxMi42Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRp YTphdHRyaWJ1dGUgbmFtZT0iZWxlbV93aWR0aCI+CiAgICAgICAgPGRpYTpyZWFsIHZhbD0i MS40MDUiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBu YW1lPSJlbGVtX2hlaWdodCI+CiAgICAgICAgPGRpYTpyZWFsIHZhbD0iMS44Ii8+CiAgICAg IDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV9jb2xv dXIiPgogICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjMDAwMDAwIi8+CiAgICAgIDwvZGlhOmF0 dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZmlsbF9jb2xvdXIiPgogICAg ICAgIDxkaWE6Y29sb3IgdmFsPSIjZmZmZmZmIi8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4K ICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CiAgICAgICAgPGRpYTpjb21wb3Np dGUgdHlwZT0idGV4dCI+CiAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJzdHJpbmci PgogICAgICAgICAgICA8ZGlhOnN0cmluZz4jRSM8L2RpYTpzdHJpbmc+CiAgICAgICAgICA8 L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJmb250Ij4K ICAgICAgICAgICAgPGRpYTpmb250IGZhbWlseT0ic2FucyIgc3R5bGU9IjAiIG5hbWU9Ikhl bHZldGljYSIvPgogICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICAgICAgPGRpYTph dHRyaWJ1dGUgbmFtZT0iaGVpZ2h0Ij4KICAgICAgICAgICAgPGRpYTpyZWFsIHZhbD0iMC44 MDAwMDAwMDAwMDAwMDAwNCIvPgogICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICAg ICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0icG9zIj4KICAgICAgICAgICAgPGRpYTpwb2ludCB2 YWw9IjYuMzUsMTMuNjk1Ii8+CiAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAg ICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJjb2xvciI+CiAgICAgICAgICAgIDxkaWE6Y29sb3Ig dmFsPSIjMDAwMDAwIi8+CiAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgICA8 ZGlhOmF0dHJpYnV0ZSBuYW1lPSJhbGlnbm1lbnQiPgogICAgICAgICAgICA8ZGlhOmVudW0g dmFsPSIwIi8+CiAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgICAgPC9kaWE6Y29t cG9zaXRlPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICA8L2RpYTpvYmplY3Q+CiAgICA8 ZGlhOm9iamVjdCB0eXBlPSJVTUwgLSBOb2RlIiB2ZXJzaW9uPSIwIiBpZD0iTzUiPgogICAg ICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfcG9zIj4KICAgICAgICA8ZGlhOnBvaW50IHZh bD0iMjQuNTUsMTIuMiIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0 cmlidXRlIG5hbWU9Im9ial9iYiI+CiAgICAgICAgPGRpYTpyZWN0YW5nbGUgdmFsPSIyNC41 LDExLjY1OzI2LjQ2NzUsMTQuMDUiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8 ZGlhOmF0dHJpYnV0ZSBuYW1lPSJtZXRhIj4KICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBl PSJkaWN0Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUg bmFtZT0iZWxlbV9jb3JuZXIiPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSIyNC41NSwxMi4y Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0i ZWxlbV93aWR0aCI+CiAgICAgICAgPGRpYTpyZWFsIHZhbD0iMS4zNjc0OTk5OTk5OTk5OTk5 Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0i ZWxlbV9oZWlnaHQiPgogICAgICAgIDxkaWE6cmVhbCB2YWw9IjEuODAwMDAwMDAwMDAwMDAw NyIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9 ImxpbmVfY29sb3VyIj4KICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgogICAg ICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImZpbGxfY29s b3VyIj4KICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iI2ZmZmZmZiIvPgogICAgICA8L2RpYTph dHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im5hbWUiPgogICAgICAgIDxk aWE6Y29tcG9zaXRlIHR5cGU9InRleHQiPgogICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFt ZT0ic3RyaW5nIj4KICAgICAgICAgICAgPGRpYTpzdHJpbmc+I0YjPC9kaWE6c3RyaW5nPgog ICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFt ZT0iZm9udCI+CiAgICAgICAgICAgIDxkaWE6Zm9udCBmYW1pbHk9InNhbnMiIHN0eWxlPSIw IiBuYW1lPSJIZWx2ZXRpY2EiLz4KICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAg ICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImhlaWdodCI+CiAgICAgICAgICAgIDxkaWE6cmVh bCB2YWw9IjAuODAwMDAwMDAwMDAwMDAwMDQiLz4KICAgICAgICAgIDwvZGlhOmF0dHJpYnV0 ZT4KICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InBvcyI+CiAgICAgICAgICAgIDxk aWE6cG9pbnQgdmFsPSIyNS4wNSwxMy4yOTUiLz4KICAgICAgICAgIDwvZGlhOmF0dHJpYnV0 ZT4KICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImNvbG9yIj4KICAgICAgICAgICAg PGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4K ICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImFsaWdubWVudCI+CiAgICAgICAgICAg IDxkaWE6ZW51bSB2YWw9IjAiLz4KICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAg ICA8L2RpYTpjb21wb3NpdGU+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgIDwvZGlhOm9i amVjdD4KICAgIDxkaWE6b2JqZWN0IHR5cGU9IlVNTCAtIE5vZGUiIHZlcnNpb249IjAiIGlk PSJPNiI+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgogICAgICAgIDxk aWE6cG9pbnQgdmFsPSIyMy43LDIwLjQiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAg ICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgogICAgICAgIDxkaWE6cmVjdGFuZ2xl IHZhbD0iMjMuNjUsMTkuODU7MjUuNzQ1LDIyLjI1Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0 ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibWV0YSI+CiAgICAgICAgPGRpYTpjb21w b3NpdGUgdHlwZT0iZGljdCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6 YXR0cmlidXRlIG5hbWU9ImVsZW1fY29ybmVyIj4KICAgICAgICA8ZGlhOnBvaW50IHZhbD0i MjMuNywyMC40Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1 dGUgbmFtZT0iZWxlbV93aWR0aCI+CiAgICAgICAgPGRpYTpyZWFsIHZhbD0iMS40OTUwMDAw MDAwMDAwMDAxIi8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1 dGUgbmFtZT0iZWxlbV9oZWlnaHQiPgogICAgICAgIDxkaWE6cmVhbCB2YWw9IjEuOCIvPgog ICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVf Y29sb3VyIj4KICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICA8L2Rp YTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImZpbGxfY29sb3VyIj4K ICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iI2ZmZmZmZiIvPgogICAgICA8L2RpYTphdHRyaWJ1 dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im5hbWUiPgogICAgICAgIDxkaWE6Y29t cG9zaXRlIHR5cGU9InRleHQiPgogICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ic3Ry aW5nIj4KICAgICAgICAgICAgPGRpYTpzdHJpbmc+I0cjPC9kaWE6c3RyaW5nPgogICAgICAg ICAgPC9kaWE6YXR0cmlidXRlPgogICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZm9u dCI+CiAgICAgICAgICAgIDxkaWE6Zm9udCBmYW1pbHk9InNhbnMiIHN0eWxlPSIwIiBuYW1l PSJIZWx2ZXRpY2EiLz4KICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgICAgIDxk aWE6YXR0cmlidXRlIG5hbWU9ImhlaWdodCI+CiAgICAgICAgICAgIDxkaWE6cmVhbCB2YWw9 IjAuODAwMDAwMDAwMDAwMDAwMDQiLz4KICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAg ICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InBvcyI+CiAgICAgICAgICAgIDxkaWE6cG9p bnQgdmFsPSIyNC4yLDIxLjQ5NSIvPgogICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAg ICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29sb3IiPgogICAgICAgICAgICA8ZGlhOmNv bG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICAg ICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYWxpZ25tZW50Ij4KICAgICAgICAgICAgPGRpYTpl bnVtIHZhbD0iMCIvPgogICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICAgIDwvZGlh OmNvbXBvc2l0ZT4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgPC9kaWE6b2JqZWN0Pgog ICAgPGRpYTpvYmplY3QgdHlwZT0iVU1MIC0gTWVzc2FnZSIgdmVyc2lvbj0iMCIgaWQ9Ik83 Ij4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CiAgICAgICAgPGRpYTpw b2ludCB2YWw9IjguNjQ5NjMsNC45Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAg PGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX2JiIj4KICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2 YWw9IjguNTk5NjMsNC41OzE3LjA1LDUuNiIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAg ICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im1ldGEiPgogICAgICAgIDxkaWE6Y29tcG9zaXRl IHR5cGU9ImRpY3QiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJp YnV0ZSBuYW1lPSJjb25uX2VuZHBvaW50cyI+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9Ijgu NjQ5NjMsNC45Ii8+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjE3LDQuOSIvPgogICAgICA8 L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHRfY29sb3Vy Ij4KICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICA8L2RpYTphdHRy aWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfY29sb3VyIj4KICAgICAg ICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAg ICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHQiPgogICAgICAgIDxkaWE6c3RyaW5nPiN0 dW5uZWwgYSM8L2RpYTpzdHJpbmc+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRp YTphdHRyaWJ1dGUgbmFtZT0idHlwZSI+CiAgICAgICAgPGRpYTplbnVtIHZhbD0iMyIvPgog ICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHRf cG9zIj4KICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMTIuODI0OCw1LjQiLz4KICAgICAgPC9k aWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmNvbm5lY3Rpb25zPgogICAgICAgIDxkaWE6Y29u bmVjdGlvbiBoYW5kbGU9IjAiIHRvPSJPMCIgY29ubmVjdGlvbj0iOCIvPgogICAgICAgIDxk aWE6Y29ubmVjdGlvbiBoYW5kbGU9IjEiIHRvPSJPMSIgY29ubmVjdGlvbj0iMyIvPgogICAg ICA8L2RpYTpjb25uZWN0aW9ucz4KICAgIDwvZGlhOm9iamVjdD4KICAgIDxkaWE6b2JqZWN0 IHR5cGU9IlVNTCAtIE1lc3NhZ2UiIHZlcnNpb249IjAiIGlkPSJPOCI+CiAgICAgIDxkaWE6 YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxNi45 NTA1LDUuNDkyNjEiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJp YnV0ZSBuYW1lPSJvYmpfYmIiPgogICAgICAgIDxkaWE6cmVjdGFuZ2xlIHZhbD0iNy41MjA5 NSw1LjQyMjQ5OzE3LjAyMDYsMTIuODgzMiIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAg ICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im1ldGEiPgogICAgICAgIDxkaWE6Y29tcG9zaXRl IHR5cGU9ImRpY3QiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJp YnV0ZSBuYW1lPSJjb25uX2VuZHBvaW50cyI+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjE2 Ljk1MDUsNS40OTI2MSIvPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSI3LjgwNDYyLDEyLjUz NTgiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1l PSJ0ZXh0X2NvbG91ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAg ICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX2Nv bG91ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAgPC9kaWE6 YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0ZXh0Ij4KICAgICAgICA8 ZGlhOnN0cmluZz4jdHVubmVsIGIjPC9kaWE6c3RyaW5nPgogICAgICA8L2RpYTphdHRyaWJ1 dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InR5cGUiPgogICAgICAgIDxkaWE6ZW51 bSB2YWw9IjAiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0 ZSBuYW1lPSJ0ZXh0X3BvcyI+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjEyLjM3NzUsOS41 MTQxOCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6Y29ubmVjdGlvbnM+ CiAgICAgICAgPGRpYTpjb25uZWN0aW9uIGhhbmRsZT0iMCIgdG89Ik8xIiBjb25uZWN0aW9u PSI4Ii8+CiAgICAgICAgPGRpYTpjb25uZWN0aW9uIGhhbmRsZT0iMSIgdG89Ik80IiBjb25u ZWN0aW9uPSI4Ii8+CiAgICAgIDwvZGlhOmNvbm5lY3Rpb25zPgogICAgPC9kaWE6b2JqZWN0 PgogICAgPGRpYTpvYmplY3QgdHlwZT0iVU1MIC0gTWVzc2FnZSIgdmVyc2lvbj0iMCIgaWQ9 Ik85Ij4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CiAgICAgICAgPGRp YTpwb2ludCB2YWw9IjYuNjM2MzcsMTIuMDUwMiIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+ CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9iYiI+CiAgICAgICAgPGRpYTpyZWN0 YW5nbGUgdmFsPSI1LjUxOTQ3LDUuNzc2NTM7OC4xMTE5NywxMi4xMDMiLz4KICAgICAgPC9k aWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJtZXRhIj4KICAgICAg ICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJkaWN0Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4K ICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29ubl9lbmRwb2ludHMiPgogICAgICAgIDxk aWE6cG9pbnQgdmFsPSI2LjYzNjM3LDEyLjA1MDIiLz4KICAgICAgICA8ZGlhOnBvaW50IHZh bD0iNi45OTUwNyw1Ljg0OTU1Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRp YTphdHRyaWJ1dGUgbmFtZT0idGV4dF9jb2xvdXIiPgogICAgICAgIDxkaWE6Y29sb3IgdmFs PSIjMDAwMDAwIi8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1 dGUgbmFtZT0ibGluZV9jb2xvdXIiPgogICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjMDAwMDAw Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0i dGV4dCI+CiAgICAgICAgPGRpYTpzdHJpbmc+I3R1bm5lbCBjIzwvZGlhOnN0cmluZz4KICAg ICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4K ICAgICAgICA8ZGlhOmVudW0gdmFsPSIwIi8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAg ICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0idGV4dF9wb3MiPgogICAgICAgIDxkaWE6cG9pbnQg dmFsPSI2LjgxNTcyLDkuNDQ5ODgiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8 ZGlhOmNvbm5lY3Rpb25zPgogICAgICAgIDxkaWE6Y29ubmVjdGlvbiBoYW5kbGU9IjAiIHRv PSJPNCIgY29ubmVjdGlvbj0iOCIvPgogICAgICAgIDxkaWE6Y29ubmVjdGlvbiBoYW5kbGU9 IjEiIHRvPSJPMCIgY29ubmVjdGlvbj0iOCIvPgogICAgICA8L2RpYTpjb25uZWN0aW9ucz4K ICAgIDwvZGlhOm9iamVjdD4KICAgIDxkaWE6b2JqZWN0IHR5cGU9IlVNTCAtIE1lc3NhZ2Ui IHZlcnNpb249IjAiIGlkPSJPMTAiPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpf cG9zIj4KICAgICAgICA8ZGlhOnBvaW50IHZhbD0iOC42NDkyOSw1LjYyMTIiLz4KICAgICAg PC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgog ICAgICAgIDxkaWE6cmVjdGFuZ2xlIHZhbD0iOC41ODMxNiw1LjU1NTA3OzI0LjcxMDIsMTMu MTU0NCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5h bWU9Im1ldGEiPgogICAgICAgIDxkaWE6Y29tcG9zaXRlIHR5cGU9ImRpY3QiLz4KICAgICAg PC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJjb25uX2VuZHBv aW50cyI+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjguNjQ5MjksNS42MjEyIi8+CiAgICAg ICAgPGRpYTpwb2ludCB2YWw9IjI0LjUwMDEsMTIuNzY5MiIvPgogICAgICA8L2RpYTphdHRy aWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHRfY29sb3VyIj4KICAgICAg ICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAg ICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfY29sb3VyIj4KICAgICAgICA8ZGlhOmNv bG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6 YXR0cmlidXRlIG5hbWU9InRleHQiPgogICAgICAgIDxkaWE6c3RyaW5nPiN0dW5uZWwgZCM8 L2RpYTpzdHJpbmc+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1 dGUgbmFtZT0idHlwZSI+CiAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgogICAgICA8L2Rp YTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHRfcG9zIj4KICAg ICAgICA8ZGlhOnBvaW50IHZhbD0iMTYuNTc0Nyw5LjY5NTE5Ii8+CiAgICAgIDwvZGlhOmF0 dHJpYnV0ZT4KICAgICAgPGRpYTpjb25uZWN0aW9ucz4KICAgICAgICA8ZGlhOmNvbm5lY3Rp b24gaGFuZGxlPSIwIiB0bz0iTzAiIGNvbm5lY3Rpb249IjgiLz4KICAgICAgICA8ZGlhOmNv bm5lY3Rpb24gaGFuZGxlPSIxIiB0bz0iTzUiIGNvbm5lY3Rpb249IjgiLz4KICAgICAgPC9k aWE6Y29ubmVjdGlvbnM+CiAgICA8L2RpYTpvYmplY3Q+CiAgICA8ZGlhOm9iamVjdCB0eXBl PSJVTUwgLSBNZXNzYWdlIiB2ZXJzaW9uPSIwIiBpZD0iTzExIj4KICAgICAgPGRpYTphdHRy aWJ1dGUgbmFtZT0ib2JqX3BvcyI+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjI1LjIzMzcs MTIuMiIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5h bWU9Im9ial9iYiI+CiAgICAgICAgPGRpYTpyZWN0YW5nbGUgdmFsPSIxNy40MjI2LDUuNDYz MDc7MjUuMzA0MiwxMi4yNzA1Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRp YTphdHRyaWJ1dGUgbmFtZT0ibWV0YSI+CiAgICAgICAgPGRpYTpjb21wb3NpdGUgdHlwZT0i ZGljdCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5h bWU9ImNvbm5fZW5kcG9pbnRzIj4KICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMjUuMjMzNywx Mi4yIi8+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjE3LjcyLDUuOCIvPgogICAgICA8L2Rp YTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHRfY29sb3VyIj4K ICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICA8L2RpYTphdHRyaWJ1 dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfY29sb3VyIj4KICAgICAgICA8 ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAg IDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHQiPgogICAgICAgIDxkaWE6c3RyaW5nPiN0dW5u ZWwgZSM8L2RpYTpzdHJpbmc+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTph dHRyaWJ1dGUgbmFtZT0idHlwZSI+CiAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgogICAg ICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHRfcG9z Ij4KICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMjEuNDc2OSw5LjUiLz4KICAgICAgPC9kaWE6 YXR0cmlidXRlPgogICAgICA8ZGlhOmNvbm5lY3Rpb25zPgogICAgICAgIDxkaWE6Y29ubmVj dGlvbiBoYW5kbGU9IjAiIHRvPSJPNSIgY29ubmVjdGlvbj0iMSIvPgogICAgICAgIDxkaWE6 Y29ubmVjdGlvbiBoYW5kbGU9IjEiIHRvPSJPMSIgY29ubmVjdGlvbj0iNiIvPgogICAgICA8 L2RpYTpjb25uZWN0aW9ucz4KICAgIDwvZGlhOm9iamVjdD4KICAgIDxkaWE6b2JqZWN0IHR5 cGU9IlVNTCAtIE1lc3NhZ2UiIHZlcnNpb249IjAiIGlkPSJPMTIiPgogICAgICA8ZGlhOmF0 dHJpYnV0ZSBuYW1lPSJvYmpfcG9zIj4KICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMTcsNCIv PgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9i al9iYiI+CiAgICAgICAgPGRpYTpyZWN0YW5nbGUgdmFsPSI4LjA1LDMuNjsxNy4wNSw0Ljci Lz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJt ZXRhIj4KICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJkaWN0Ii8+CiAgICAgIDwvZGlh OmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29ubl9lbmRwb2ludHMi PgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxNyw0Ii8+CiAgICAgICAgPGRpYTpwb2ludCB2 YWw9IjguMSw0Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1 dGUgbmFtZT0idGV4dF9jb2xvdXIiPgogICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjMDAwMDAw Ii8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0i bGluZV9jb2xvdXIiPgogICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjMDAwMDAwIi8+CiAgICAg IDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0idGV4dCI+CiAg ICAgICAgPGRpYTpzdHJpbmc+I3R1bm5lbCBmIzwvZGlhOnN0cmluZz4KICAgICAgPC9kaWE6 YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KICAgICAgICA8 ZGlhOmVudW0gdmFsPSIwIi8+CiAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KICAgICAgPGRpYTph dHRyaWJ1dGUgbmFtZT0idGV4dF9wb3MiPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMi41 NSw0LjUiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmNvbm5lY3Rpb25z PgogICAgICAgIDxkaWE6Y29ubmVjdGlvbiBoYW5kbGU9IjAiIHRvPSJPMSIgY29ubmVjdGlv bj0iMCIvPgogICAgICAgIDxkaWE6Y29ubmVjdGlvbiBoYW5kbGU9IjEiIHRvPSJPMCIgY29u bmVjdGlvbj0iMiIvPgogICAgICA8L2RpYTpjb25uZWN0aW9ucz4KICAgIDwvZGlhOm9iamVj dD4KICAgIDxkaWE6b2JqZWN0IHR5cGU9IlVNTCAtIE1lc3NhZ2UiIHZlcnNpb249IjAiIGlk PSJPMTMiPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfcG9zIj4KICAgICAgICA8 ZGlhOnBvaW50IHZhbD0iOC4xLDUuOCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAg IDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9iYiI+CiAgICAgICAgPGRpYTpyZWN0YW5nbGUg dmFsPSI4LjAyOTMzLDUuNzI5MzM7MjQuMDA5OCwyMC43MjYyIi8+CiAgICAgIDwvZGlhOmF0 dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibWV0YSI+CiAgICAgICAgPGRp YTpjb21wb3NpdGUgdHlwZT0iZGljdCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAg IDxkaWE6YXR0cmlidXRlIG5hbWU9ImNvbm5fZW5kcG9pbnRzIj4KICAgICAgICA8ZGlhOnBv aW50IHZhbD0iOC4xLDUuOCIvPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSIyMy43LDIwLjQi Lz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0 ZXh0X2NvbG91ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAg PC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX2NvbG91 ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAgPC9kaWE6YXR0 cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0ZXh0Ij4KICAgICAgICA8ZGlh OnN0cmluZz4jdHVubmVsIGcjPC9kaWE6c3RyaW5nPgogICAgICA8L2RpYTphdHRyaWJ1dGU+ CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InR5cGUiPgogICAgICAgIDxkaWE6ZW51bSB2 YWw9IjAiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBu YW1lPSJ0ZXh0X3BvcyI+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjE1LjksMTMuNiIvPgog ICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6Y29ubmVjdGlvbnM+CiAgICAgICAg PGRpYTpjb25uZWN0aW9uIGhhbmRsZT0iMCIgdG89Ik8wIiBjb25uZWN0aW9uPSI3Ii8+CiAg ICAgICAgPGRpYTpjb25uZWN0aW9uIGhhbmRsZT0iMSIgdG89Ik82IiBjb25uZWN0aW9uPSIw Ii8+CiAgICAgIDwvZGlhOmNvbm5lY3Rpb25zPgogICAgPC9kaWE6b2JqZWN0PgogICAgPGRp YTpvYmplY3QgdHlwZT0iVU1MIC0gTWVzc2FnZSIgdmVyc2lvbj0iMCIgaWQ9Ik8xNCI+CiAg ICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgogICAgICAgIDxkaWE6cG9pbnQg dmFsPSIyMy42NDk2LDIwLjk1MjIiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8 ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgogICAgICAgIDxkaWE6cmVjdGFuZ2xlIHZh bD0iNy41OTkwNywxMy42NTkyOzIzLjcxNTQsMjEuMDE4Ii8+CiAgICAgIDwvZGlhOmF0dHJp YnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibWV0YSI+CiAgICAgICAgPGRpYTpj b21wb3NpdGUgdHlwZT0iZGljdCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxk aWE6YXR0cmlidXRlIG5hbWU9ImNvbm5fZW5kcG9pbnRzIj4KICAgICAgICA8ZGlhOnBvaW50 IHZhbD0iMjMuNjQ5NiwyMC45NTIyIi8+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjcuODA0 NzMsMTQuMDQ1OCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmli dXRlIG5hbWU9InRleHRfY29sb3VyIj4KICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAw MCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9 ImxpbmVfY29sb3VyIj4KICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgogICAg ICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHQiPgog ICAgICAgIDxkaWE6c3RyaW5nPiN0dW5uZWwgaCM8L2RpYTpzdHJpbmc+CiAgICAgIDwvZGlh OmF0dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0idHlwZSI+CiAgICAgICAg PGRpYTplbnVtIHZhbD0iMCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6 YXR0cmlidXRlIG5hbWU9InRleHRfcG9zIj4KICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMTUu NzI3MiwxNy45OTkiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmNvbm5l Y3Rpb25zPgogICAgICAgIDxkaWE6Y29ubmVjdGlvbiBoYW5kbGU9IjAiIHRvPSJPNiIgY29u bmVjdGlvbj0iOCIvPgogICAgICAgIDxkaWE6Y29ubmVjdGlvbiBoYW5kbGU9IjEiIHRvPSJP NCIgY29ubmVjdGlvbj0iOCIvPgogICAgICA8L2RpYTpjb25uZWN0aW9ucz4KICAgIDwvZGlh Om9iamVjdD4KICAgIDxkaWE6b2JqZWN0IHR5cGU9IlVNTCAtIE1lc3NhZ2UiIHZlcnNpb249 IjAiIGlkPSJPMTUiPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfcG9zIj4KICAg ICAgICA8ZGlhOnBvaW50IHZhbD0iNy4xNzYyNSwxNC40NDk2Ii8+CiAgICAgIDwvZGlhOmF0 dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX2JiIj4KICAgICAgICA8 ZGlhOnJlY3RhbmdsZSB2YWw9IjcuMTA3MDEsMTQuMzgwMzsxMC4zMTU2LDE4LjkzOTQiLz4K ICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJtZXRh Ij4KICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJkaWN0Ii8+CiAgICAgIDwvZGlhOmF0 dHJpYnV0ZT4KICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29ubl9lbmRwb2ludHMiPgog ICAgICAgIDxkaWE6cG9pbnQgdmFsPSI3LjE3NjI1LDE0LjQ0OTYiLz4KICAgICAgICA8ZGlh OnBvaW50IHZhbD0iOS45NTM4NiwxOC42NzgiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgog ICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0ZXh0X2NvbG91ciI+CiAgICAgICAgPGRpYTpj b2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlh OmF0dHJpYnV0ZSBuYW1lPSJsaW5lX2NvbG91ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9 IiMwMDAwMDAiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0 ZSBuYW1lPSJ0ZXh0Ij4KICAgICAgICA8ZGlhOnN0cmluZz4jdHVubmVsIGkjPC9kaWE6c3Ry aW5nPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9 InR5cGUiPgogICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KICAgICAgPC9kaWE6YXR0cmli dXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0ZXh0X3BvcyI+CiAgICAgICAgPGRp YTpwb2ludCB2YWw9IjguNTY1MDYsMTcuMDYzOCIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+ CiAgICAgIDxkaWE6Y29ubmVjdGlvbnM+CiAgICAgICAgPGRpYTpjb25uZWN0aW9uIGhhbmRs ZT0iMCIgdG89Ik80IiBjb25uZWN0aW9uPSI4Ii8+CiAgICAgICAgPGRpYTpjb25uZWN0aW9u IGhhbmRsZT0iMSIgdG89Ik8yIiBjb25uZWN0aW9uPSI4Ii8+CiAgICAgIDwvZGlhOmNvbm5l Y3Rpb25zPgogICAgPC9kaWE6b2JqZWN0PgogICAgPGRpYTpvYmplY3QgdHlwZT0iVU1MIC0g TWVzc2FnZSIgdmVyc2lvbj0iMCIgaWQ9Ik8xNiI+CiAgICAgIDxkaWE6YXR0cmlidXRlIG5h bWU9Im9ial9wb3MiPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMS45OTc5LDE4LjY2NTci Lz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJv YmpfYmIiPgogICAgICAgIDxkaWE6cmVjdGFuZ2xlIHZhbD0iMTEuOTI3Miw2LjE1OTM1OzI1 LjQwOTIsMTguNzM2MyIvPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxkaWE6YXR0 cmlidXRlIG5hbWU9Im1ldGEiPgogICAgICAgIDxkaWE6Y29tcG9zaXRlIHR5cGU9ImRpY3Qi Lz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJj b25uX2VuZHBvaW50cyI+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjExLjk5NzksMTguNjY1 NyIvPgogICAgICAgIDxkaWE6cG9pbnQgdmFsPSIyNS4xMDAyLDYuNDg2MzYiLz4KICAgICAg PC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0ZXh0X2NvbG91 ciI+CiAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAgPC9kaWE6YXR0 cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX2NvbG91ciI+CiAgICAg ICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KICAgICAgPC9kaWE6YXR0cmlidXRlPgog ICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0ZXh0Ij4KICAgICAgICA8ZGlhOnN0cmluZz4j dHVubmVsIGojPC9kaWE6c3RyaW5nPgogICAgICA8L2RpYTphdHRyaWJ1dGU+CiAgICAgIDxk aWE6YXR0cmlidXRlIG5hbWU9InR5cGUiPgogICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4K ICAgICAgPC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0ZXh0 X3BvcyI+CiAgICAgICAgPGRpYTpwb2ludCB2YWw9IjE4LjU0OSwxMy4wNzYiLz4KICAgICAg PC9kaWE6YXR0cmlidXRlPgogICAgICA8ZGlhOmNvbm5lY3Rpb25zPgogICAgICAgIDxkaWE6 Y29ubmVjdGlvbiBoYW5kbGU9IjAiIHRvPSJPMiIgY29ubmVjdGlvbj0iOCIvPgogICAgICAg IDxkaWE6Y29ubmVjdGlvbiBoYW5kbGU9IjEiIHRvPSJPMyIgY29ubmVjdGlvbj0iOCIvPgog ICAgICA8L2RpYTpjb25uZWN0aW9ucz4KICAgIDwvZGlhOm9iamVjdD4KICA8L2RpYTpsYXll cj4KPC9kaWE6ZGlhZ3JhbT4K --------------5AA4C3CE234FA216655AEA23 Content-Type: image/svg+xml; name="rubensberg.svg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rubensberg.svg"
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9y Zy8xOTk5L3hsaW5rIiB3aWR0aD0iNDE0cHQiIGhlaWdodD0iMzc5cHQiIHZpZXdCb3g9IjAg MCA0MTQgMzc5IiB2ZXJzaW9uPSIxLjEiPgo8ZGVmcz4KPGc+CjxzeW1ib2wgb3ZlcmZsb3c9 InZpc2libGUiIGlkPSJnbHlwaDAtMCI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9 Ik0gMC42NDA2MjUgMi4yOTY4NzUgTCAwLjY0MDYyNSAtOS4xNzE4NzUgTCA3LjE0MDYyNSAt OS4xNzE4NzUgTCA3LjE0MDYyNSAyLjI5Njg3NSBaIE0gMS4zNzUgMS41NzgxMjUgTCA2LjQy MTg3NSAxLjU3ODEyNSBMIDYuNDIxODc1IC04LjQzNzUgTCAxLjM3NSAtOC40Mzc1IFogTSAx LjM3NSAxLjU3ODEyNSAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUi IGlkPSJnbHlwaDAtMSI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gNC40Mzc1 IC04LjIxODc1IEwgMi43MDMxMjUgLTMuNSBMIDYuMTg3NSAtMy41IFogTSAzLjcxODc1IC05 LjQ4NDM3NSBMIDUuMTcxODc1IC05LjQ4NDM3NSBMIDguNzgxMjUgMCBMIDcuNDUzMTI1IDAg TCA2LjU5Mzc1IC0yLjQzNzUgTCAyLjMxMjUgLTIuNDM3NSBMIDEuNDUzMTI1IDAgTCAwLjEw OTM3NSAwIFogTSAzLjcxODc1IC05LjQ4NDM3NSAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3Zl cmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDAtMiI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9u ZTsiIGQ9Ik0gMi41NjI1IC00LjUzMTI1IEwgMi41NjI1IC0xLjA0Njg3NSBMIDQuNjA5Mzc1 IC0xLjA0Njg3NSBDIDUuMzA0Njg4IC0xLjA0Njg3NSA1LjgxNjQwNiAtMS4xODc1IDYuMTQw NjI1IC0xLjQ2ODc1IEMgNi40NzI2NTYgLTEuNzU3ODEyIDYuNjQwNjI1IC0yLjIwMzEyNSA2 LjY0MDYyNSAtMi43OTY4NzUgQyA2LjY0MDYyN |
|