<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.macinstruct.com/~d/styles/rss2titles.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.macinstruct.com/~d/styles/itemtitles.css" type="text/css" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" xml:base="http://www.macinstruct.com">
<channel>
 <title>Macinstruct Code Mojo</title>
 <link>http://www.macinstruct.com/codemojo</link>
 <description />
 <language>en</language>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.macinstruct.com/codemojo" type="application/rss+xml" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.macinstruct.com%2Fcodemojo" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.macinstruct.com%2Fcodemojo" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.macinstruct.com%2Fcodemojo" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.rojo.com/add-subscription?resource=http%3A%2F%2Ffeeds.macinstruct.com%2Fcodemojo" src="http://blog.rojo.com/RojoWideRed.gif">Subscribe with Rojo</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.macinstruct.com/codemojo" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.macinstruct.com%2Fcodemojo" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.macinstruct.com%2Fcodemojo" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.macinstruct.com%2Fcodemojo" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
 <title>Create Sitemaps with SiteOrbiter</title>
 <link>http://www.macinstruct.com/node/243</link>
 <description>&lt;p&gt;Janet Fouts&lt;br /&gt;
Thursday, February 7, 2007&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Websites are getting larger and larger, and keeping track of them as they evolve can be a hassle. If you're a web developer, you'll want to create what's called a &lt;a href="http://en.wikipedia.org/wiki/Site_map"&gt;site map&lt;/a&gt;, a special file that lists all of the pages of your website in an hierarchical order. This file can be submitted to search engines to help them index your website. But how the heck are you supposed to create one on your Mac?&lt;/p&gt;
&lt;p&gt;Enter a native Mac application called &lt;a href="http://www.siteorbiter.cc/"&gt;SiteOrbiter&lt;/a&gt;. SiteOrbiter is freeware (registration required) and requires Mac OS 10.1 or later. This application will index your files, create an XML site map for Google and other search engines, and also create a visual sitemap that can be saved as a PDF.&lt;/p&gt;
&lt;p&gt;Here's how to do it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download SiteOrbiter from &lt;a href="http://www.siteorbiter.cc/index.html" title="http://www.siteorbiter.cc/index.html"&gt;http://www.siteorbiter.cc/index.html&lt;/a&gt;. To install the application, open the disk image and drag SiteOrbiter to your Applications folder.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;When you open SiteOrbiter for the first time, you'll be greeted by the SiteOrbiter Assistant. Enter the URL of the website you'd like to index or, if it's located on your Mac's hard drive, click the Browse button and select the top level directory.
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/siteorbiter/siteorbiter1.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;SiteOrbiter will start indexing your website. This could take a while, especially if you have a large website. You'll see files flashing by in the status display in the upper-left corner of the screen (below).
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/siteorbiter/siteorbiter2.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Once SiteOrbiter has finished indexing your website, you'll see a graphical representation of your website in the main window.
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/siteorbiter/siteorbiter3.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Save your sitemap for search engines by selecting Save from the File menu. You can also export the graphical representation of your website by selecting "Extract to PDF" from the File menu.
&lt;p&gt;You can also export the data as a sitemap for Google by selecting "Generate Site Map" from the Reports and Maps menu.
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Taking Another Look at the SiteOrbiter Assistant&lt;/h4&gt;
&lt;p&gt;Now that you've created your very own sitemap with SiteOrbiter, it's time to take a look under SiteOrbiter's hood. We'll start by reexamining the SiteOrbiter Assistant. What do all of those options actually do? &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/siteorbiter/siteorbiter1.jpg"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;User Agent:&lt;/b&gt; This menu is especially interesting. You can appear to the server to be using any agent you like. If, for example, your site is designed to deliver different dynamic data to different browsers, you can generate a site map of what each of those browsers are being delivered and check for accuracy of your sniffer scripts.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Maximum Recursive Depth:&lt;/b&gt; This option allows you decide how deep to decend into the bowels of the website. If you're not sure, start with 8 or 10 and see if a lot of pages are missing. If so, you can adjust as necessary.&lt;br /&gt;
&lt;br&gt;
&lt;li&gt;
&lt;li&gt;&lt;b&gt;Copy Remote Site:&lt;/b&gt; You can also use SiteOrbiter to download a remote website to your Mac's hard drive. Use this cautiously. It can take a while to download, and if the site isn't yours please don't violate any copyrights!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Configuring SiteOrbiter's Preferences&lt;/h4&gt;
&lt;p&gt;The settings you configure in SiteOrbiter's preferences can have a huge effect on the size of your sitemap. Here are some of the options you need to know about:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/siteorbiter/siteorbiter4.jpg"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Download Folder:&lt;/b&gt;Select the folder you want to use as an archive.&lt;br /&gt;
Note: If you download a site, and you move the files, SiteOrbiter will download the entire site again when you next request a download. If not, SiteOrbiter will only download files that have been modified.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Only Include:&lt;/b&gt;You can set this to include, for example, only HTML, PHP or maybe just SWF files.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Treat Links with Arguments:&lt;/b&gt; Each argument will be recorded as a seperate page. (I.e.: &lt;i&gt;http://www.mysite.com/index.pl?today&lt;/i&gt; and &lt;i&gt;http://www.mysite.com/index.pl?tomorrow&lt;/i&gt; would each be separate pages.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Understanding SiteOrbiter's Toolbar&lt;/h4&gt;
&lt;p&gt;You know what we're talking about. What exactly is that unholy mass of buttons on SiteOrbiter's main window? &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/siteorbiter/siteorbiter5.jpg"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Index/Stop:&lt;/b&gt; Clicking this will re-index your website or, if SiteOrbiter is currently re-indexing, stop the re-indexing process.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Browser:&lt;/b&gt; Highlight a page and click Browser to display that page in a browser window.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Up, Left, Down, Right:&lt;/b&gt; Moves the map around in the window. You can also use the scrollbars.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hide Map:&lt;/b&gt; For a large site, redrawing the map can be a processor hog, so you can turn it off to improve performance.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Download:&lt;/b&gt; Again, please be judicious. This can be a boon when you are taking over a website, and you'll have the site map as well. Once you've downloaded the site you can use this feature to keep your disk copy up to date. SiteOrbiter will only download differences after the initial download.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Transcript:&lt;/b&gt; This shows header information. Useful with dynamic pages and scripts.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Only HTML:&lt;/b&gt; Ignores non-HTML files in the map view.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Select Lock:&lt;/b&gt; You can lock a node to keep it open even as you click on other nodes. Think of it as a placeholder.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Names:&lt;/b&gt; Turned off by default, this will show the names associated with the nodes.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Selected:&lt;/b&gt; Shows just the info for the selected node.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Zoom:&lt;/b&gt; Zoom out for a macro view or in on a particular node.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Using the Map Window&lt;/h4&gt;
&lt;p&gt;SiteOrbiter's real power becomes apparent when you start manipulating your sitemap. There are several view options that will help you view your website.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/siteorbiter/siteorbiter6.jpg"&gt;&lt;/p&gt;
&lt;p&gt;You can view all of the objects in the map, or a subset. Subset is the default setting. To switch views, just click the display mode link in the lower right hand corner. You can select from Tree, Concentric Circles, Subset or lower left. You can also click and drag nodes on the map to better organize them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Subset mode:&lt;/b&gt; Clicking on a link in the map window will select that link and you can then view any links related to that "node." This makes it simple to quickly see the relationships between objects in the site, and you'll see outbound and inbound links.&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;All Objects:&lt;/b&gt; This display mode can be quite daunting on a larger site, but it makes it easy to spot orphaned pages and get a very high level view of the site. The home page is always identified as the starting object, but you can use "show from" mode to select a particular node and show the site from that viewpoint.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;That's pretty much it. All in all, SiteOrbiter is a useful tool for getting a grip on the loose ends that may be lolling around in your website, and it can also give you a lot of insight into who's linking to your site and what pages they are linking to. Combine that with your traffic stats and you'll have a much better picture of what your users are up to!&lt;br /&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Meet Your Macinstructor&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Janet Fouts is a web developer and designer who provides tech support for a bevy of clients and friends who need a little help with their Macs. In Code Mojo she will be sharing her web development tools and tips to make your life a bit easier. You can contact Janet at &lt;a href="mailto:macinstruct@tatudigital.com"&gt;macinstruct@tatudigital.com&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=WL9GdME"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=WL9GdME" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=A8XQwje"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=A8XQwje" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=6l5a6ye"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=6l5a6ye" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <pubDate>Wed, 06 Feb 2008 21:44:56 -0700</pubDate>
 <dc:creator>mcone</dc:creator>
 <guid isPermaLink="false">243 at http://www.macinstruct.com</guid>
</item>
<item>
 <title>Set Up a Wireless Captive Portal Server</title>
 <link>http://www.macinstruct.com/node/188</link>
 <description>&lt;p&gt;David Miller&lt;br /&gt;
Wednesday, July 25, 2007&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;What does a captive portal server, also called a NAC (Network Access Control) do? It can sandbox any wireless connection until some form of authentication is provided. These servers are used in many cafes and public places that offer wireless internet. For example, when you try to connect to the wireless network at Starbucks, it will force your web browser to the same page - no matter what URL you enter. Until you authenticate, you can't go anywhere on the Internet. &lt;/p&gt;
&lt;p&gt;There are some great commercial solutions out there that work really well, but implementing 802.1X port security can cost lots of money and time. Companies like &lt;a href="http://www.infoblox.com/"&gt;Infoblox&lt;/a&gt; provide an appliance, and when coupled with solutions like &lt;a href="http://bigfix.com/"&gt;Bigfix&lt;/a&gt; can provide a very robust and transparent network security model. Pitney Bowes has implemented a system were an unknown user can attach their laptop and get one of two services: Either simple port 80 access for 8 hours, or the option to register and automatically have their computer scanned patched/updated to comply with the companies policies. This is all transparent.&lt;/p&gt;
&lt;p&gt;So what do you do if you don't have the resources or the money to buy one of these solutions? You can still implement some control over DHCP assignment. The goal is to eliminate the unknown on your network. In our case, we will use the Ethernet MAC address of the client's NIC as a way of authentication. Each network interface card has its own unique address, and it looks something like this: 00:30:65:88:01:93. When an unknown computer is placed on the network that asks for an IP through DHCP it will receive one that is restricted. No matter what web page the user tries, we will always show them a pre-defined page. When a computer that has its MAC address defined on the server asks for an IP, it will be given the correct TCP/IP settings to use the network.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This is not secure, and will not prevent someone from stealing a working IP on your network. If the user is savvy enough they can find the TCP/IP info on another computer and use it. If you are looking for that kind of security, then this article is not enough for you. Check out Infoblox or another commercial solution.&lt;/p&gt;
&lt;p&gt;Here's how to do it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make sure the Mac you are using has all os updates and security patches applied.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;From the Apple menu, select System Preferences.  Select Network.  Turn off all unused configurations. The interface we will be using is the Built-in Ethernet.
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/portal/portal1.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Select Built-in Ethernet and click Duplicate.  Click Rename and add your dummy subnet.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Edit the interfaces to have the correct subnets.
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/portal/portal2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/portal/portal3.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Make sure you are logged in as an admin to use the sudo command. You will need to use a text editor like VI, Pico, Emacs, or TextWrangler to create and edit the config files needed.
&lt;p&gt;Download the latest version of DHCP from &lt;a href="http://www.isc.org/index.pl?/sw/dhcp/" title="http://www.isc.org/index.pl?/sw/dhcp/"&gt;http://www.isc.org/index.pl?/sw/dhcp/&lt;/a&gt;. The latest version at the time of this article is 3.0.6. You will need to have the GCC compiler installed. Install the Xcode developer software that came with your Mac or latest Mac OS X install disks.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Once you have downloaded the DHCP source, double-click on the .gz file to unzip and untar the directory. Launch the Terminal application (located in /Applications/Utilities). Use the "cd" command to change to the dhcp directory you just expanded. The easiest way is to type "cd" and drag and drop the dhcp directory into the Terminal window.  Here's an example:
&lt;p&gt;&lt;code&gt;cd /Users/dmc/Desktop/Downloads/dhcp-3.0.6/&lt;/code&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Now type the following and hit return.
&lt;p&gt;&lt;code&gt;./configure&lt;/code&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Type the following and hit return.
&lt;p&gt;&lt;code&gt;make&lt;/code&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Type the following and hit return.
&lt;p&gt;&lt;code&gt;sudo make install&lt;/code&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Setting Up DHCP&lt;/h4&gt;
&lt;p&gt;You now should have a working DHCPd package installed on the Mac. The next step is to set up the dhcpd.conf file that lives in /etc. The below example will do just that.&lt;/p&gt;
&lt;p&gt;Here's how the thing works:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hand out static IPs in the 10.0.1.0 range to hosts that we have the Ethernet hardware address of (MAC address).&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Hand out dummy IPs in the 192.168.50.0 range that will force all host names to resolve back to our captive portal server. This will force any http requests to show the page we want people to see.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You should read the man page for dhcpd.conf to gain an understanding of the options and commands used here.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
======================begin dhcpd.conf===========================&lt;br /&gt;
# dhcpd.conf&lt;br /&gt;
# this file should be located in /etc&lt;br /&gt;
default-lease-time 900;&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
deny client-updates;&lt;/p&gt;
&lt;p&gt;shared-network "mynet" {&lt;br /&gt;
# This is the dummy network&lt;br /&gt;
subnet 192.168.50.0 netmask 255.255.255.0 {&lt;br /&gt;
range 192.168.50.2 192.168.50.253;&lt;br /&gt;
max-lease-time 7200;&lt;br /&gt;
option subnet-mask 255.255.255.0;&lt;br /&gt;
option broadcast-address 192.168.50.255;&lt;br /&gt;
option domain-name-servers 192.168.50.1;&lt;br /&gt;
option routers 192.168.50.1;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;# This is the real network&lt;br /&gt;
subnet 10.0.1.0 netmask 255.255.255.0 {&lt;br /&gt;
max-lease-time 21600;&lt;br /&gt;
option subnet-mask 255.255.255.0;&lt;br /&gt;
option broadcast-address 10.0.1.255;&lt;br /&gt;
option routers 10.0.1.1;&lt;br /&gt;
option domain-name-servers 10.0.1.251;&lt;br /&gt;
option domain-name "example.com";&lt;br /&gt;
}&lt;br /&gt;
# This is a sample reserved host entry&lt;br /&gt;
host example1 {&lt;br /&gt;
hardware ethernet 00:30:65:88:01:93;&lt;br /&gt;
fixed-address 10.0.1.5;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;host example2 {&lt;br /&gt;
hardware ethernet 00:16:cb:91:16:93;&lt;br /&gt;
fixed-address 10.0.1.6;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
======================end dhcpd.conf===========================&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create the dhcpd.leases file using the following command:
&lt;p&gt;&lt;code&gt;sudo touch /var/db/dhcpd.leases&lt;/code&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;To test the the DHCP server, run the following command in a Terminal window:
&lt;p&gt;&lt;code&gt;sudo /usr/sbin/dhcpd -f -d en0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The above command runs DHCPd in the foreground using the -f option and in debug mode using the -d option. This allows you to see all actions the DHCP server is performing. Populate the dhcpd.conf with the MAC addresses of the hosts you want.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;
Alternatively, you can also assign random IPs from the real network if you don't care who gets what IP. To do this, leave out the the "fixed-address" line of the reserved host. in the real network section add a line to deny unknown clients and add a range of addresses to hand out like so:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
}&lt;br /&gt;
# This is the real network&lt;br /&gt;
subnet 10.0.1.0 netmask 255.255.255.0 {&lt;br /&gt;
max-lease-time 21600;&lt;br /&gt;
range 10.0.1.2 10.0.1.250&lt;br /&gt;
deny unknown-clients;&lt;br /&gt;
option subnet-mask 255.255.255.0;&lt;br /&gt;
option broadcast-address 10.0.1.255;&lt;br /&gt;
option routers 10.0.1.1;&lt;br /&gt;
option domain-name-servers 10.0.1.251;&lt;br /&gt;
option domain-name "example.com";&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sdmachelp.com/downloads/cps/org.isc.dhcpd.plist"&gt;Here is a launchdaemon plist file&lt;/a&gt; you can use to launch dhcpd at boot. Place it in /Library/LaunchDaemons.
&lt;p&gt;To load the file into launchd, type the following command into Terminal:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/bin/launchctl load -w /Library/LaunchDaemons/org.isc.dhcpd.plist&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To unload and keep dhcpd from launching at boot, type the following command into Terminal:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/bin/launchctl unload -w /Library/LaunchDaemons/org.isc.dhcpd.plist&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Set Up the Dummy DNS Server&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;First create a file in /etc called rndc.key. This file will keep BIND from complaining that it is missing. Since you will not be updating, the DNS we can use a generic file and not include anything in the named.conf.
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
======================begin rndc.key===========================&lt;br /&gt;
key "rndc-key" {&lt;br /&gt;
algorithm hmac-md5;&lt;br /&gt;
secret "8E48raKxqEVCtKYFxA+loQ==";&lt;br /&gt;
};&lt;/p&gt;
&lt;p&gt;======================end rndc.key===========================&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;You will need to create the following named.conf file in /etc:
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
======================begin named.conf===========================&lt;/p&gt;
&lt;p&gt;acl dummynets { 192.168.50.0/24; 192.168.51.0/24; };&lt;/p&gt;
&lt;p&gt;options {&lt;br /&gt;
directory "/var/named";&lt;br /&gt;
auth-nxdomain no; # conform to RFC1035&lt;br /&gt;
notify no;&lt;br /&gt;
allow-query { dummynets; };&lt;br /&gt;
allow-recursion { none; };&lt;br /&gt;
allow-transfer { none; };&lt;br /&gt;
max-ncache-ttl 60;&lt;br /&gt;
};&lt;/p&gt;
&lt;p&gt;logging {&lt;br /&gt;
category default {&lt;br /&gt;
_default_log;&lt;br /&gt;
};&lt;/p&gt;
&lt;p&gt;channel _default_log {&lt;br /&gt;
file "/Library/Logs/named.log";&lt;br /&gt;
severity info;&lt;br /&gt;
print-time yes;&lt;br /&gt;
};&lt;br /&gt;
};&lt;/p&gt;
&lt;p&gt;zone "." IN {&lt;br /&gt;
type master;&lt;br /&gt;
file "db.fakeroot";&lt;br /&gt;
allow-query { dummynets; };&lt;/p&gt;
&lt;p&gt;};&lt;/p&gt;
&lt;p&gt;======================end named.conf===========================&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The above says to use db.fakeroot as the root dns zone file. The "acl dummynets { 192.168.50.0/24; 192.168.51.0/24; };" tells that only our dummy subnet can request queries.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Now we need to create the db.fakeroot zone file in /var/named.
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
======================begin db.fakeroot===========================&lt;/p&gt;
&lt;p&gt;$TTL 7200&lt;/p&gt;
&lt;p&gt;@ IN SOA hostname.exapmle.com user.example.com (&lt;br /&gt;
1 ; Serial&lt;br /&gt;
3600 ; Refresh every 1 hours&lt;br /&gt;
1800 ; Retry every 30 minutes&lt;br /&gt;
604800 ; Expire after 7 days&lt;br /&gt;
1 ) ; TTL 1 second&lt;/p&gt;
&lt;p&gt;IN NS 192.168.50.1&lt;/p&gt;
&lt;p&gt;IN A 192.168.50.1&lt;br /&gt;
* IN A 192.168.50.1&lt;/p&gt;
&lt;p&gt;======================end db.fakeroot===========================&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The above zone file resolves all hostnames back to 192.168.50.1&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Apple has included a launch daemon plist that can be used to start and stop the named service. Unfortunately, it doesn’t work, because it launches named before all the network stuff is loaded at boot. Until we get a fix, we will use the old style startup item. &lt;a href="http://www.sdmachelp.com/downloads/cps/BIND.zip"&gt;Download this file&lt;/a&gt;, unzip it and place the BIND folder in /Library/Startupitems/. This will make sure named is launched at startup.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Test the DNS service by typing the following command on a host computer that has been given one of the dummy IPs:
&lt;p&gt;&lt;code&gt;host www.cnn.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It should resolve to 192.168.50.1
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Set Up Apache to Redirect Missing Paths&lt;/h4&gt;
&lt;p&gt;The line you want to edit in your httpd.conf file looks like the following:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#ErrorDocument 404 /missing.html&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Change it to:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ErrorDocument 404 /&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Create a simple index.html page that tells the user to contact you for proper access and save it to /Library/webserver/Documents. Turn on personal websharing in the sharing system prefs pane to start Apache.&lt;/p&gt;
&lt;p&gt;You can get pretty creative using CGI and have users fill out a form that gives you their information.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;
&lt;b&gt;Meet Your Macinstructor&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;David Miller has been supporting Macs since the mid '90s.  He has worked for large ISPs and DOE sites, and he's currently working as a Unix systems administrator.  He has graciously allowed Macinstruct to reprint this tutorial, which was originally written for his personal website: &lt;a href="http://www.sdmachelp.com/" title="http://www.sdmachelp.com/"&gt;http://www.sdmachelp.com/&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=zjWur8U1"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=zjWur8U1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=UdOJXFwY"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=UdOJXFwY" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=vl3PzQ1s"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=vl3PzQ1s" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <pubDate>Wed, 25 Jul 2007 01:42:21 -0600</pubDate>
 <dc:creator>mcone</dc:creator>
 <guid isPermaLink="false">188 at http://www.macinstruct.com</guid>
</item>
<item>
 <title>Create a Web Development Environment With MAMP</title>
 <link>http://www.macinstruct.com/node/182</link>
 <description>&lt;p&gt;Matthew Cone&lt;br /&gt;
Wednesday, July 18, 2007&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Those of us who have websites know that we need a development environment to work on new features, make changes, and just experiment.  If you're creating static HTML pages, you don't need much - you can create the pages on your Mac and preview them locally in your web browser or a with WYSIWYG application like &lt;a href="http://www.apple.com/ilife/iweb/"&gt;iWeb&lt;/a&gt;.  However, things are a bit more complicated if you're working with web applications that use PHP and MySQL.  &lt;/p&gt;
&lt;p&gt;In that case, you're going to want to use &lt;a href="http://www.mamp.info"&gt;MAMP&lt;/a&gt;, a free web development environment for your Mac.  MAMP comes with everything you need, including Apache, PHP, MySQL, and even the buzzword-compliant acronym.  (MAMP, by the way, stands for Mac, Apache, MySQL, and PHP.)  It's not suitable for a production web server, but it's perfect for your home Mac.  &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/mamp/mamp1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;We'll show you how to install and configure MAMP on your Mac.  To spice things up a little, we'll also install &lt;a href="http://drupal.org"&gt;Drupal&lt;/a&gt;, an open source content management system (CMS) that powers the likes of &lt;a href="http://www.theonion.com"&gt;The Onion&lt;/a&gt;, &lt;a href="http://www.twit.tv"&gt;TWiT.tv&lt;/a&gt;, &lt;a href="http://www.maclife.com"&gt;Mac|Life&lt;/a&gt;, and yes, even &lt;a href="http://www.macinstruct.com"&gt;Macinstruct&lt;/a&gt;.&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Install and Configure MAMP&lt;/h4&gt;
&lt;p&gt;Installing MAMP is a pretty straightforward process.  The installer is graphical, and MAMP keeps itself contained to a single folder in your Applications folder, which is really nice.  Here's how to install:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.mamp.info"&gt;Download MAMP&lt;/a&gt; from living-e.  It could take a bit longer to download than other applications - our MAMP download weighed in at a hefty 109 MB.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Double-click on the MAMP disk image to mount it on your Mac.  Drag the MAMP folder to your Applications folder.  Leave MAMP in your Applications folder and don't nest it in other folders.  (The server applications require this.)
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/mamp/mamp2.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Launch MAMP by double-clicking the MAMP icon in the MAMP folder.  Once the MAMP window appears, click Start Servers to get everything going.  When you see green lights, you know you're good to go.
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/mamp/mamp3.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;MAMP will open a web page in your default web browser.  &lt;i&gt;This web page contains important information! Do not close this web page until you have jotted down all of the information you need.&lt;/i&gt;  The page also contains links to phpMyAdmin and SQLiteManager.
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/mamp/mamp4.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;That's it!  Now you can start installing your web site.  (Applications &gt; MAMP &gt; htpdocs)  Your website can be found at: &lt;a href="http://localhost:8888" title="http://localhost:8888"&gt;http://localhost:8888&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Install and Configure Drupal&lt;/h4&gt;
&lt;p&gt;Now that we have MAMP working, we need to put it to use.  You can host anything you want - content management systems such as &lt;a href="http://www.wordpress.org"&gt;WordPress&lt;/a&gt; will work perfectly.  We're going to use &lt;a href="http://www.drupal.org"&gt;Drupal&lt;/a&gt; as an example.  Here's how you can install it, too:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.drupal.org"&gt;Download&lt;/a&gt; Drupal from the official website.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Uncompress the zip file in: Applications &gt; MAMP &gt; htdocs.  Cutting and pasting all of the Drupal files into the home directory is a good idea.  To do this, take all of the files in the Drupal folder (ours is called "drupal-5.1") and drag them to the htdocs folder.&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;With your web browser, visit &lt;a href="http://localhost:8888" title="http://localhost:8888"&gt;http://localhost:8888&lt;/a&gt;.  If everything worked, you should see a web page like the one below.
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/mamp/mamp5.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Set the database type to mysql.  In the Database name box, type &lt;i&gt;test&lt;/i&gt;.  We could create a new database, but it's easier just to use test - a database MAMP creates by default.  The database username and password is root.  If everything works, you'll see a &lt;i&gt;Drupal installation complete&lt;/i&gt; message on the next page.
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/mamp/mamp6.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;We'd like to say that you're finished, but you're actually just getting started.  Customizing Drupal can be a long, painstaking task.  &lt;a href="http://www.ibm.com/developerworks/ibm/osource/index.html"&gt;Click here&lt;/a&gt; for a wonderful tutorial on using Drupal.
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/mamp/mamp7.jpg"&gt;&lt;br /&gt;
&lt;br&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;XAMPP: The MAMP Alternative&lt;/h4&gt;
&lt;p&gt;If you don't like MAMP, be sure to try &lt;a href="http://www.apachefriends.org/en/xampp-macosx.html"&gt;XAMPP&lt;/a&gt;, another free Mac web development environment.  We don't think XAMPP is quite as polished as MAMP, but it does have a number of features that MAMP doesn't, so if you're a hardcore tinkerer, you better check out XAMPP!&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;
&lt;b&gt;Meet Your Macinstructor&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Matthew Cone is a technical writer living and working in Albuquerque, New Mexico.  In his free time, he does the desert rat thing and hikes and road bikes around the Southwest.  The rest of the time, he studies straw-bale houses, reads Anarchist philosophy, and pretends to not be working.  You can email him at: &lt;a href="mailto:matt@macinstruct.com"&gt;matt@macinstruct.com&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=JCykoTa1"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=JCykoTa1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=7IjDYEeS"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=7IjDYEeS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=kCw3sTRL"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=kCw3sTRL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <pubDate>Wed, 18 Jul 2007 02:30:16 -0600</pubDate>
 <dc:creator>mcone</dc:creator>
 <guid isPermaLink="false">182 at http://www.macinstruct.com</guid>
</item>
<item>
 <title>Software Piracy: Black Beard &amp; Captain Kidd!</title>
 <link>http://www.macinstruct.com/node/67</link>
 <description>&lt;p&gt;Joe Wilkins&lt;br /&gt;
Wednesday, March 7, 2007&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;In keeping with a recent article about piracy in the &lt;a href="http://www.runrev.com/"&gt;Runtime Revolution Newsletter&lt;/a&gt;, I've chosen to reprint an article I wrote in 2000 for the original Macinstruct website. It is still quite relevant and on target. Last week's Code Mojo article presented me with significant issues - more than I had originally thought - but I will be back next week reviewing some of the scripting that was done in the Coloring Book application.&lt;br /&gt;
-Joe&lt;/i&gt;&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Real or fictional? Sinister or comical? Pirates are no joke! They do serious harm! An act of piracy is committed when someone takes anything that isn't theirs and uses it for their own purposes. It seems different than outright stealing; but, for the life of me, I don't see how or why! Once upon a time, such acts were performed only on the high seas; while today's pirates perform theirs over the Internet, not the ocean waves. &lt;/p&gt;
&lt;p&gt;The modern pirate is fettered with neither eye patches nor peg-legs, though the eyes do blur at times and the legs go to sleep from lack of use. Using computer software without a proper, valid authorization, a license, is an act of piracy. Software pirates are every bit as bad as those who hold up banks or liquor stores at gun point. In some respects they are even worse, since they rarely get caught, are rarely prosecuted, yet do severe, real damage to the lives of other people.&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Why Am I Talking About Piracy on Macinstruct?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Because new Mac users frequent this site to learn about their Macs, and the use of Mac software, and that is what I am going to discuss. Piracy is but one of several important considerations to which many users are never adequately exposed. At this time I will cover copyrights and piracy. New, as you may be to the world of Mac software, you have most likely been exposed to situations in which you should have read a license agreement before clicking on a product installer's "I Agree" button. If you are like most of us, you maybe read the first one you encountered, but have assumed that all of the others are "exactly" the same. That may not necessarily be the case.&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Freeware&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Though there is no need to Register this type of software, it is a good idea to do so, since you may get a break on new versions if the owner chooses to change to shareware or commercial releases. You may, at least, be notified when new, free versions are issued. This software's license probably comes with some limitations, so read the terms of the agreement. The usual limitations are that you may not sell it to anyone and, when you give it to someone, you must include all of the items that come with it - such as "Read Me" files. So, it is still possible to be guilty of pirating free software. You must obey the terms of your free license. In some cases you will not be allowed to include the product on software collection CDs that are sold for profit, but an email to the owner will usually get you permission to do so, as long as the proper recognition is provided and you send them a free copy of your CD. After all, "exposure and distribution" is the name of the game, and we all need as much of it as we can get.&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Shareware&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;When you pay the shareware fee, usually less than $25US, you will be registered and licensed by the owner of the product's copyright, and often entitled to subsequent upgrades for free, or to minor upgrades for free, and major upgrades for a reduced fee. Again, read the terms of the agreement. Once more, even though you will actually be encouraged to pass the product along to your friends and associates, there are usually some limitations as to the manner in which you may do this. The same limitations I mentioned for freeware distribution normally apply to shareware as well. If you do not pay the shareware fee, and you use the product contrary to the licensing agreement, you have pirated the software. Most shareware permits you to use the product for some specified period of time to determine whether you wish to have a permanent license, or not. If you plan to leave it on your hard drive, you should pay the shareware fee - even if you only use it once in a blue moon, or on every February 29th.&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Commercial Software&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In most instances, you will pay for the product before you receive it and you may choose not to register with the owner if that is your pleasure, but I would again recommend that you do so. &lt;/p&gt;
&lt;p&gt;It is pretty difficult to "accidentally" pirate this kind of software. If a friend "loans" you a copy of one of their software products; or, heaven forbid, "sells" you a copy without providing everything that they acquired when purchasing it, and you do anything more than try it out - which I think is reasonable, though it may be against the letter of the licensee's agreement, then you are using a pirated copy. &lt;/p&gt;
&lt;p&gt;Almost any reasonable software publisher will want you to demo their products with a friend, even to the extent of "loaning" them a copy, so long as they are told in no uncertain terms that they must purchase their own license if they decide to keep the product on their hard drive. I have mixed feelings about someone keeping a copy around on some removable media - just in case they eventually decide to license it. From a strictly legal point of view, I believe that would be piracy as well, but I think you may have to search your own conscience on this one. My feeling - just feeling mind you - is that if you produce something a second time using a product, then you must license it regardless of how you have it "hanging around."&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Copy Protection&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;First, the disclaimer.  I am not an expert on copyright law, and have no training in that area. I do not pretend to offer legal advice on that or related subjects, though the reader may feel that I have and do. There are many views on these subjects. You might want to do a search for "copyrights" to check out the many diverse opinions regarding both copyrights and piracy. You will also find an interesting topic called "copylefts."&lt;/p&gt;
&lt;p&gt;Regardless of how a product is distributed, all software was created by someone and is the intellectual property of the entity proclaiming the copyright on and/or in their software, or other work. It is not required that the item, claimed as the copyrighted property of that entity, be registered; but, in the case of disputes, registration makes the copyright entitlement much easier to prove, and subsequently enforced if need be. Registering a copyright does not need to be an expensive process handled by an attorney. You can do it yourself by completing the appropriate forms and paying the required, nominal fee.&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;In Conclusion&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We like to think of the Macintosh community as somehow "better" than those who only use PCs. In many respects this has been demonstrated by the paucity of viruses to be found infecting our Macintoshes. For the most part, I think you will also find that Mac users are more inclined to pay their rightful shareware fees. I would like to think this to be true about the larger act of piracy as well - that we do it much less. It would be terrific if we didn't do it at all!&lt;/p&gt;
&lt;p&gt;It is unfortunate when some software developers have to resort to exotic registration schemes and/or hardware "dongles" to protect their intellectual property - and it is still theirs. We are only allowed to borrow it for a specified period of time, and under very specific conditions. Taking these extra measures makes their software more difficult to use, and more expensive to produce for all of us.&lt;/p&gt;
&lt;p&gt;Reward those who produce exceptional software at reasonable prices. Pay the shareware fees, register your acquisitions, adhere to the conditions of the licensing agreements, and provide the owner with intelligent feedback so that they may improve their products and make them even more useful for us. Promote the best software among your friends and associates; let them know when you've received excellent support. Be just as vocal when you find someone using unauthorized software. It can be done in such a manner as to point out the problem, without embarrassing them. Sometimes, a mere reference to the fact that you received a discount on your last upgrade, because you had registered yours, will stimulate them into doing the same. Always assume that it was an oversight on their part, but never ignore it completely. We all have a major investment in time and money in the best personal computer "system" to be found. Let's make sure that it stays healthy from top to bottom by doing our part. We may not like the law, but it is the law - for now.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;
&lt;b&gt;Meet Your Macinstructor&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Joe Wilkins is a licensed architect who produces all of his work on Macs (yes, even when all he had to work with was a Mac Plus, floppy disks and a wide carriage dot-matrix printer). He has produced his own "Picture" fonts, programmed 5 commercial applications, and chalked up more than twenty-two years of Mac experience - starting with the Lisa. He also authored the "University of HyperCard" on the original Macinstruct website.  Email him at &lt;a href="mailto:mepepetoo@macinstruct.com"&gt;mepepetoo@macinstruct.com&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=GCPAZ4gC"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=GCPAZ4gC" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=0CG7AKc1"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=0CG7AKc1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.macinstruct.com/~f/codemojo?a=7soFSPkq"&gt;&lt;img src="http://feeds.macinstruct.com/~f/codemojo?i=7soFSPkq" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <pubDate>Wed, 07 Mar 2007 01:49:49 -0700</pubDate>
 <dc:creator>mcone</dc:creator>
 <guid isPermaLink="false">67 at http://www.macinstruct.com</guid>
</item>
<item>
 <title>Rolling a Revolution Application</title>
 <link>http://www.macinstruct.com/node/61</link>
 <description>&lt;p&gt;Joe Wilkins&lt;br /&gt;
Wednesday, February 28, 2007&lt;br /&gt;
&lt;br&gt;&lt;br /&gt;
We left off &lt;a href="http://www.macinstruct.com/node/54"&gt;last week&lt;/a&gt; with having pretty much completed a completely new &lt;a href="http://www.runrev.com"&gt;Revolution&lt;/a&gt; stack, named the "San Diego Activities and Coloring Book." There were still a number of issues and more than a few scripting challenges to be resolved. I had assumed, somewhat naively, that the balance of the scripts would not be a great deal different than their HyperCard counterparts. As I dug in to completing them, I found that was not exactly to be the case. &lt;/p&gt;
&lt;p&gt;Admittedly, Revolution's scripting language, Transcript, is very much like HyperTalk, HyperCard's scripting language.  But, in order to create a stack that may be converted to standalone applications for a number of different platforms, it appears that it is necessary to use handlers that may then call different APIs for the various platforms that display that platform's unique objects; whether they be dialogs or other elements that appear on the screen that have their own unique appearances and methods of doing things. This means selecting handler names that belong to Revolution, but may then, based on the particular platform, call APIs from those platforms. This may not be exactly the way it is done, but the most likely. So, we find many of the keywords are prefaced by the letters "rev," the balance of the name being pretty much the same as it would be in HyperTalk, but not always or consistently. Hence, finding the right call is not always that easy. So here is the script that is being used for the button "File" of group "Coloring Book Menu Bar":&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/p&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;on menuPick pWhich&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;  switch pWhich&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;case&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; "New Coloring Book..."&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;ask &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;file "Enter Name for new Coloring Book and show where to place it."&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;it is empty &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;exit &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;menuPick&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;put &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;itemDelimiter &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;into savedDL&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;set &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;itemDelimiter &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;to "/"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;put &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;last item of it into stkName&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;set &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;itemDelimiter &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;to savedDL&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;revCopyFile stkName,it&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;go &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;stack it in a &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;new &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;window&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;set &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the&lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; name &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack to quote&amp;amp;stkName&amp;amp;quote&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;set &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;title &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack to quote&amp;amp;stkName&amp;amp;quote&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    break&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;  case "Open..."&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;answer&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; file "Select a Coloring Book to Open" &lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;--with type ".rev"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;it&lt;/span&gt;&lt;span style="color: #ff9900; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;is "Cancel" &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;exit &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;menuPick&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;go&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; it in a &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;new &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;window&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    break&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;  case "Close"&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;hide &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;this stack &lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;--it's still open, but not visible&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    break&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;case&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; "Save..."&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;get &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;long name &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack &lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;--Puts stack name and path into it&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    revCopyFile&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;(the&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;effective&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;fileName&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;this&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;stack),&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;it&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    break&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;case&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; "Save a Copy..."&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    answer folder "Select destination folder for backup: "&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; the &lt;/span&gt;&lt;span style="color: #ff9900; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;result&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; is "Cancel" &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;exit&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; menupick&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    revCopyFile (the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;effective&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;fileName&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; of this stack), it&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    break&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;case&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; "Page Setup..."&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;answer &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;printer&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    break&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;case&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; "Print Current"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;set &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;backcolor &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack to "white" &lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;--So we don't get a grayed backgound printout.&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;hide group &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;"Coloring Book Menu bar" &lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;--We don't want to have the Menu printed.&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00;"&gt;    -- Not all cards have the scrolling color field with it but for erasing color by whiting it&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;there is a fld "colorlist" and the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;visible&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; of fld "colorlist" &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;      &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;hide &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;fld "colorList"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;      &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;hide &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;btn "button"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00;"&gt;    end if&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;open &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;printing&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;thePaperSize is empty &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;doPrintThisCard (1224,792),72&lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    else&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;print&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;this&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;cd&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;-- After printing we restore the things we just hid&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;show&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;group&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; "Coloring Book Menu bar"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;there is a fld "colorlist" and not the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;visible&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; of fld "colorlist" &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;      show &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;fld "colorList"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;      show &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;btn "button"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;end if&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;close &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;printing&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    break&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;case&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; "Quit"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;put &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;name &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack into stkName&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;delete &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;first word of stkName&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;answer&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;"Are you sure you wish to Quit "&amp;amp;stkName&amp;amp;"?"&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;with&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;"Cancel"&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;or&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;"OK"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;it is "Cancel" &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;exit &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;menuPick&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;quit&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    break&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;  end switch&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;end&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; menuPick&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;  text-decoration: none;"&gt; &lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;on&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;doPrintThisCard&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;thePaperSize,theMargin&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00;"&gt;  -- set up defaults if no size and margin provided:&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;  if&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;thePaperSize&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;is&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;empty&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;put&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;printPaperSize&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;into&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;thePaperSize&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;  if&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;theMargin&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;is&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;empty&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;put&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;72&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;into&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;theMargin --72 Pixels per inch&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00;"&gt;  -- get the page area:&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;  set&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;printMargins&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;to&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; \&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;      theMargin,theMargin,theMargin,theMargin&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;  &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;put&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;theMargin,theMargin,&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; \&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;      item&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;1&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;thePaperSize&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;-&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;theMargin,&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; \&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;      item&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;2&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;thePaperSize&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;-&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;theMargin&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; \&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;      into&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;destinationRect&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;  &lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;--print into that rectangle:&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;  print&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;this&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;card&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;into&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;destinationRect&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;end&lt;/span&gt;&lt;span style="color: #663399; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;doPrintThisCard&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 11pt; line-height: 10pt; "&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;There are still some aspects of the above script that do not work exactly as I would like; particularly the "New Coloring Book" portion. Note that the backslash character is used to continue the previous statement on the next line; and, in some cases, lines. The scripts are automatically indented and colorized, using the Courier Font. I'm still using the defaults for all of these items, but they CAN be changed to suit the users preferences. Where else to set them than the Preferences menu in the Revolution (Application) menu?&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/cmn1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;But for the ones I mentioned, you'll need to click on the "Script Editor" in the left column above.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.macinstruct.com/new/images/columns/cmn2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;As you can see, there are a whole host of Preferences that you may make your own.&lt;/p&gt;
&lt;p&gt;I hadn't really intended to show much, if any, of the scripting for this stack, but I've decided that it is important that you see how similar it is to HyperTalk; so the following is the script that may be found in the Stack's script:&lt;br /&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/p&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;on &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;mousemove&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;-- To easily reset the cursor by moving the mouse to the top &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the &lt;/span&gt;&lt;span style="color: #ff9900; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;mouseV &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;&amp;lt; 11 &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;choose &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;Browse &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;tool &lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;end&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; mousemove&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;  text-decoration: none;"&gt; &lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;on&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; openstack&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;short name &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack is "About Coloring Book®" \&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;         &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;exit &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;openstack&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;global&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; gColor,gCyan,gEveningBlue,gGold,gMagenta,gDarkGreen,\&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;         gYellow, gOrange,gSalmon,gOrchid,gViolet,gBlack,\&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;         gRed,gSpringFrost,gBlue,gWhite&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;put&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; TheColor() into gColor&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;repeat with &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;i = 1 to 15&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;set &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;checkMark &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of menuItem i of button "Color" of the \&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;         &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;long name &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack to (false)&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;  end&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;repeat&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;set&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;checkMark&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; of menuitem gBlack of button "Color" of the\&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;         &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;long name &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack to true &lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; revSpeak "Welcome to " &amp;amp; the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;short name &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;choose &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;browse &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;tool&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;end openstack&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;  text-decoration: none;"&gt; &lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;on&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; openCard&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;  if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;short name &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack is not "About Coloring Book®" &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    if the number of this cd is 3 or 37 then enable button "Edit"&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    else&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;disable&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; button "Edit" of the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;effective name &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this stack&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    if the number of this cd is 11 then &lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;      repeat&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;with&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; c = 1 to 15&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;        put&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; "Field "&amp;amp;c into afld&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;        set&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;foreGroundColor&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; of  Field afld  to "Red"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;      end&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;repeat&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    end&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00;"&gt;  end if&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;end openCard&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;  text-decoration: none;"&gt; &lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;on&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; closeCard&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;global &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;gCurrentPicture&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;get &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;number &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;of this cd&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;there is a fld "Music Instructions" and the &lt;/span&gt;&lt;span style="color: #ff0000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;visible&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; of fld\&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  "Music Instructions" of cd it &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;hide &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;fld "Music Instructions" of cd it&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; it is 3 &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    revStopSpeech &lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;"&gt;    revUnloadSpeech&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;else if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;it is 13 or it is 32 or it is 33 or it is 34 &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    if &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;gCurrentPicture is not empty &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;      &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;doHidePict gCurrentPicture&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00;"&gt;    end if&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;end&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;end&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; closeCard&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt;  text-decoration: none;"&gt; &lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;on &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;arrowkey theKey&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;if &lt;/span&gt;&lt;span style="color: #ff9900; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;target &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;is empty &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;then &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;pass &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;arrowkey&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;switch &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;theKey&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;case&lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt; "up"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;go &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;cd 1&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;break&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;case &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;"down"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;go &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;cd 57&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;    &lt;/span&gt;&lt;span style="color: #0000ff; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;break&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;  &lt;/span&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; opacity: 1.00; "&gt;case &lt;/span&gt;&lt;span style="font-family: 'Courier', 'serif'; font-size: 10pt; line-height: 9pt; "&gt;"right"&lt;/span&gt;&lt;/div&gt;
&lt;div class="paragraph Body" style="line-height: 14pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify; "&gt;&lt;span style="color: #990000; font-family: 'Courier', 'serif'; font-size: 10pt; line-heig